R3 – Die Vektorgrafik-Erweiterung zum C 64
Mit dieser Basic-Erweiterung wird der Anwender in die Lage versetzt, auch die Vektorrechnung für hochauflösende Grafiken einzusetzen.
Das Programm »R3« erlaubt es dem Anwender, seinen C 64 für Vektorrechnung zu verwenden. So können komplizierteste mathematische Probleme mit Hilfe von Matrizen relativ leicht gelöst und grafisch dargestellt werden. Da eine solche mathematische Erweiterung sehr kompliziert ist, wurde schon vor ziemlich langer Zeit mit der Entwicklung von R3 begonnen.
Die ersten Vorstufen dieser Software liegen über ein Jahr zurück. Es folgte eine Evolutionsphase, während der sich das Programm samt Konzeption oft änderte. Dabei verdient besonders das Bildschirmkonzept stärkere Beachtung. Für den Programmierer ist es das günstigste, gleichzeitig Grafik und Text benutzen zu können. Auf sechs Textzeilen ist es deshalb möglich, im Direktmodus zu arbeiten, dabei Variablen, Vektoren und Matrizen ausgeben zu lassen, und vielleicht im Basic-Programmspeicher stehende Unterprogramme mit Übergabeparametern aufzurufen.
Darauf ausgerichtet ist auch die Grafikausgabe im oberen Bereich des Bildschirms. Es hätte eine Menge an Änderungen zur Folge, wollte man die Textzeilen abschalten, weil die Lösch- und die Zeichenroutinen speziell für den kleineren Grafik-Bildschirm entwickelt wurden.
Im Gebrauch der sechs Textzeilen stellte sich heraus, daß häufig beim Listen und bei sonstigen Ausgaben 1 bis 3 Zeilen unnötigerweise nach oben verschwanden; die Mitteilung »READY.« verbraucht allein eine Zeile ohne große Aussagekraft, denn wenn irgendwo noch ein Cursor blinkt, dann ist ja alles in Ordnung.
Die Ausgabe des »READY.« wurde also nach Möglichkeit (nicht überall) unterdrückt, ebenso das Setzen des Cursors unter die letzte Zeile, das 1 bis 2 freie Zeilen schafft und ebenso viele oben hinauswirft. (Besonders wichtig bei unerwarteten Fehlermeldungen im Direktmodus, wo man das, was oben hinausgerutscht ist, neu schreiben muß, wenn man den Text noch weiß.)
Einführung in die Vektorrechnung
Der relativ geringe Befehlsumfang hängt mit der im Laufe der Perfektionierung sehr lang gewordenen Gleichungsleseroutine zusammen. Immer wieder, wenn »R3« an die Grenzen des Speichers stieß, mußten unwichtige Unterprogramme gestrichen werden, denn auf die Vektor- und Matrizenrechnung kam es an. Schließlich wurde noch wegen eines Geschwindigkeitsvorteils von etwa 50 Prozent auf eine wählbare Dimension verzichtet und das Programm auf drei Dimensionen festgelegt. Das ermöglichte übrigens erst die Vektorkreuzmultiplikation und die Drehmatrix.
Das Programm »R3« benötigt soviel Arbeitsspeicher, daß, auch wegen der Organisation der vier Grafikseiten, der gesamte Computer-Speicher beansprucht wird und der Basic-Programmspeicher auf die Hälfte reduziert werden muß.
Die folgende Einführung kann übergehen, wer sich mit Vektoren auskennt. Es soll hier allen weniger Versierten an einem Beispiel die grundlegende Rechenweise erläutert werden. Ein Schatzplan könnte so lauten: Von der alten Eiche am Steinbruch 20 m nach Norden, 8 m nach Westen, 5 m tief graben.
Wir notieren die Koordinaten N, W, U; Schatz = [20, 8, 5] und begeben uns dorthin. Nun müssen wir aber feststellen, daß das Graben durch eine Straße behindert wird. Um auf Umwegen das Ziel doch noch zu erreichen, gibt es Möglichkeiten und sie haben eines gemeinsam: Die Summe der Wegestücke in N-Richtung muß 20 sein, die Summe der W-Anteile 8 und die Tiefe 5 m. Dann wird waagerecht oder schräg die Straße untertunnelt, während Kompaß, Lot und Zollstock zur Koordinatenbestimmung dienen könnten.
Solches Aneinandersetzen von Wegstücken ist Vektoraddition. Vektorsubtraktion bedeutet nichts weiter als eine Addition des zu subtrahierenden Vektors in umgekehrter Richtung.
Ebenso wie Addition funktioniert die Multiplikation mit einer Zahl: Der Vektor wird (Zahl)-mal aneinandergehängt beziehungsweise auf das (Zahl)-fache verlängert oder verkürzt.
Mit diesen Angaben können auch Gegenstände beschrieben werden, die irgendeine Ausdehnung haben, wobei die Ausdehnung mit »Weg« gleichgesetzt wird. Im folgenden ein Tip zum Aufbau von Gegenständen:
Am einfachsten sind Strukturen nach dem rechtwinkligen Muster aufzubauen:
A← = [10,0,0] : B← = [0,10,0] : C← = [0,0,10]
Solche Grundelemente kann man durch Multiplikation mit irgendwelchen Faktoren und Addition übersichtlich kombinieren
D← = P*A← + Q*B← + R*C←
Mit dem zweiten Vektor
E← = S*A← + T*B← + U*C←
ergibt das Linie
LINE D← , E← irgendwo im Raum. Dasselbe parallelverschoben woanders gezeichnet
LINE D← + F← , E← + F←
Der Vektor F← kann wie D← und E← von Faktoren abhängen und somit die Linie D← , E← im Raum versetzen. Natürlich ist das nur eine von zahlreichen Möglichkeiten, ein Vorhaben anzufangen. Es soll aber zeigen, daß es ratsam ist, sich an ein (anfangs beliebiges) Konzept zu halten.
Das Skalarprodukt ist die Summe der Produkte der Komponenten.
SK = A(1)B(1) + A(2)*B(2) + A(3)*B(3)
entspricht
SK = A← * B←
Mit Hilfe der Skalarmultiplikation kann man die absolute Länge eines Vektors berechnen:
L = SQR ( L← * L← ) Beweis: Pythagoras.
Das Vektorkreuzprodukt ist der Physik sehr nützlich, es gibt zum Beispiel beim Hebel das Moment an, wenn Hebel und angebrachte Kraft in beliebige Richtungen zeigen. Eine bekannte Definition lautet
\[\mathrm{K}{\leftarrow} = \det\begin{vmatrix} \mathrm{EX}{\leftarrow} & \mathrm{EY}{\leftarrow} & \mathrm{EZ}{\leftarrow} \\ \mathrm{A}(1) & \mathrm{A}(2) & \mathrm{A}(3) \\ \mathrm{B}(1) & \mathrm{B}(2) & \mathrm{B}(3) \end{vmatrix}\]
also
K← = [A(2)B(3)-A(3)*B(2),A(3)*B(1)-A(1)*B(3), A(1)*B(2)-A(2)*B(1)]
kürzer
K← = A← X B←
Das Vektorkreuzprodukt ist ein Vektor, der auf den multiplizierten Vektoren senkrecht steht. Es ist am größten, wenn die Vektoren einen Winkel von 90 Grad bilden und Null, wenn sie in gleiche Richtung zeigen.
Matrizen
Eine Matrix ist die Zusammenfassung der Faktoren, wenn zwischen zwei Vektoren die folgende Beziehung gelten soll:
Y(1)= A(1,1)*X(1) + A(1,2)*X(2) + A(1,3)*X(3)
Y(2)= A(2,1)*X(1) + A(2,2)*X(2) + A(2,3)*X(3)
Y(3)= A(3,1)*X(1) + A(3,2)*X(2) + A(3,3)*X(3)
Die Matrix lautet dann
A# = [A(1,1),A(1,2),A(1,3),A(2,1),...,A(3,3)]
und die Kurzschreibweise der obigen drei Gleichungen:
Y← = A# * X←
Werden die Matrizen untereinander multipliziert, so werden die Zeilen der einen Matrix wie Vektoren mit der anderen Matrix multipliziert, und die Ergebnisvektoren werden wieder zu einer Matrix zusammengestellt.
Die in der Grafik vielseitige Drehmatrix hat folgende Bewandtnis: Wird ein Vektor A← um die X-Achse um den Winkel P gedreht, so ist der gedrehte Vektor B←:
B(1)= A(1)
B(2)= A(2)*cos(P) + A(3)*sin (P)
B(3)=-A(2)*sin (P) + A(3)*cos(P)
Das ergibt nach der Definition der Matrix die Drehmatrix
M# = [1,0,0,0,cos(P),sin(P),0,-sin(P),cos(P)] oder kurz:
M# = @#X( P )
Genauso funktionieren die Drehmatrizen und die Y- und die Z-Achse.
Man kann Matrizen kippen, links unten nach rechts oben, Transponieren genannt, und invertieren. Das Invertieren ist eine umständliche Operation, die beim Umformen einer Vektor- oder Matrizengleichung das Hinüberbringen einer Matrix von einer Gleichungsseite auf die andere ermöglicht, da eine Division als Umkehrung der Multiplikation nicht möglich ist, also
(eine Seite) * R# = (andere Seite)
kommt gleich
(eine Seite) = (andere Seite) * ( R# I)
Das Verfahren zum Invertieren geht davon aus, daß das Produkt einer Matrix und ihrer Invertierten die sogenannte Einheitsmatrix ergibt,
\[\mathrm{R}\# * \mathrm{R}\#\,\mathrm{I} = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\]
die auch als Drehmatrix bei einem Winkel von Null auftaucht, also nichts ändert.
Was das Hebelmoment betrifft, wird man von dem Momentenvektor nur eine Komponente für die Drehung benötigen, da der drehbare Körper seine Drehachse eigentlich immer als Koordinatenachse hat (zum Beispiel ein Rad), und nur der Momentenanteil um diese Achse wirken kann.
So, soviel zur Matrizen- und Vektorrechnung. Nun soll uns das eigentliche Programm interessieren.
Räumliches Zeichnen
Das Programm »R3« verarbeitet Gleichungen mit dreidimensionalen Vektor- und Matrizenvariablen von vergleichbarer Komplexität wie der Commodore-Interpreter und zeichnet räumlich. Nur, so viele Anwendungen es für Vektorrechnung gibt, in so vielen Schreibweisen und Vereinbarungen unterscheiden sie sich. Bei dieser computerangepaßten Variante, die »←« für Vektoren und » #« für Matrizen benutzt sowie mit »$« Strings kennzeichnet, wird nicht zwischen Zeilen- und Spaltenvektoren unterschieden (das dürfte wohl nur Mathematiker stören); dafür unterscheiden sich die möglichen Arten, zwei Vektoren zu multiplizieren, durch das Verknüpfungszeichen:
»*« für skalare Multiplikation, ergibt das Skalarprodukt
»X« für Vektorkreuzmultiplikation, ergibt das Vektorprodukt, einen zu den multiplizierten Vektoren senkrechten Vektor.
Ebenfalls frei erfunden ist die Schreibweise für eine Drehmatrix:
@ #X(Winkel) verwandelt der R3-Interpreter in eine Matrix, die, mit einem Vektor multipliziert, diesen Vektor um (Winkel) die X-Achse gedreht, zum Produkt hat. Analog @ #Y(Winkel), @ #Z(Winkel).
Die Beispiele zeigen: Dies ist nicht die Vektorrechnung schlechthin, aber auf der Tastatur des Computers fanden sich plausible Zeichen zur Integrierung der neuen Parametertypen in die Grundarithmetik. Dabei beschränken sich die Unterschiede zum Normal-Basic auf ein Minimum. »FNF(X)« darf in Gleichungen nicht vorkommen, nur in LET-Statements und den anderen Basic-Kommandos, die keine R3-Elemente enthalten dürfen. Das Gleiche gilt für Stringfunktionen. Im übrigen funktioniert alles mathematisch Sinnvolle, zum Beispiel addiert man nur gleiche Parametertypen, und ein Klammerausdruck als Argument einer Basic-Funktion stellt einen Skalar dar.
Vektoren sind Parameter, die eine Größe mit Richtung beschreiben, wie zum Beispiel Koordinaten eines Punktes, seine Geschwindigkeit oder Beschleunigung oder eine Kraft (oder ...); mit der Vereinbarung einer X-Achse nach rechts, einer Y-Achse nach oben und einer Z-Achse nach vorne, Schreibweise [x,y,z], ist die Erdbeschleunigung
G← = [0,-9.81m/sec 2,0]
Andere Parameter als Vektoren sind Skalare, Größen ohne Richtungen, das heißt Zahlen und numerische Variablen wie bisher.
Dritte verwendete Parameterart sind Matrizen aus den Faktoren linearer Gleichungssysteme, die zwischen den Koordinaten zweier Vektoren eine Beziehung herstellen, bestehende Blöcke, mit (im Dreidimensionalen) 3 Zeilen und 3 Spalten, das heißt
B(1) = M(1,1)*A(1) + M(1,2)*A(2) + M(1,3)*A(3) und
B(2) = M(2,1)*A(1) + M(2,2)*A(2) + M(2,3)*A(3) und
B(3) = M(3,1)*A(1) + M(3,2)*A(2) + M(3,3)*A(3)
entspricht
B← = M# * A←
Ein Beispiel
Nach der Theorie wollen wir nun zur Praxis übergehen. In Listing 1 sehen Sie das MSE-Listing von R3, das nach dem Eintippen und Speichern mit »LOAD "R3",8« in den Computer geladen wird. Der Start erfolgt mit »RUN«, worauf sich R3 mit der Einschaltmeldung des C 64 meldet. Lediglich das »READY.« fehlt, was auf die, schon erwähnte, unterschiedliche Bildschirmstruktur zurückzuführen ist. Wir wollen jetzt die Anwendung dieser leistungsfähigen Basic-Erweiterung Schritt für Schritt lernen.
Dazu wird das Demo-Programm aus Listing 2 geladen und gestartet:
LOAD "RING",8 (Return)
RUN (Return)
Es wird jetzt viermal ein Ring gezeichnet, der sich anschließend dreht. Abbrechen läßt sich das mit Stop, der volle Textbildschirm erscheint wieder auf Stop/Restore. Zwei weitere, interessante Demonstrationsprogramme sind unter Listing 3 und 4 abgedruckt.
Für Vektoren und Matrizen kommen reguläre Arrays zum Einsatz, der erste Gebrauch eines Vektors XY← veranlaßt automatisch ein DIM XY (3), für eine Matrix XY # ein DIM XY (3,3). Um von Null verschiedene Zahlen hineinzubekommen, kann man schreiben:
(1) XY(1) = 7
XY(2) = 16.2
XY(3) = 5
(2) XY← = [7,16.2,5]
beziehungsweise
XY(1,1) = 12
XY(1,2) = 26
.
.
.
XY(3,3) = 4
oder
XY# = [12,26,6,1.5,...,4]
Zur Schreibweise arithmetischer Gleichungen ist zu ergänzen:
Links vom Gleichheitszeichen kann eine skalare, eine vektorielle oder eine Matrizenvariable stehen. Stimmt der Parametertyp des Ergebnisses der rechten Seite mit dem der linken nicht überein, folgt eine Fehlermeldung.
Die Auswirkungen der einzelnen Rechenoperationen auf die verschiedenen Operandenkombinationen macht eine Liste deutlich:
| Operation | Operanden | Ergebnis |
|---|---|---|
| +,– | gleiche Operanden | auch gleich |
| * | Skalar * Skalar | Skalar |
| Skalar * Vektor | Vektor | |
| Skalar * Matrix | Matrix | |
| Vektor * Skalar | Vektor | |
| Vektor * Vektor | Skalar | |
| Vektor * Matrix | Vektor | |
| Matrix * Skalar | Matrix | |
| Matrix * Vektor | Vektor | |
| Matrix * Matrix | Matrix | |
| X | Vektor X Vektor | Vektor |
| / | Skalar / Skalar | Skalar |
| Vektor / Skalar | Vektor | |
| Matrix / Skalar | Matrix | |
| Skalar Skalar | Skalar |
Weitere Operationen mit einem Operanden, nämlich mit Matrizen, sind im folgenden:
| T | Transportieren: Die Matrix wird an der Diagonalen nach rechts unten (Hauptdiagonale) gespiegelt. |
| I | Invertieren: Das Produkt einer Matrix und ihrer Invertierten ist eine, die aus Einsen auf der Hauptdiagonalen und sonst nur Nullen besteht. Wenn man einen Vektor oder eine Matrix damit multipliziert, bleibt der Vektor oder die Matrix identisch erhalten. Eine Multiplikation mit einer invertierten Matrix entspricht einer Division, die durch eine Matrix eigentlich nicht definiert ist. |
Der Befehlssatz von R3
| GRAF2 | schaltet Grafik ein mit HiRes-Bereich $2000 |
| GRAF6 | siehe oben $6000 |
| GRAFA | siehe oben $A000 |
| GRAFE | siehe oben $E000 |
| Im Grafikmodus funktioniert LOAD, SAVE und ähnliches nicht. | |
| Stop/Restore | schaltet wieder auf vollen Textbildschirm und ermöglicht File-Operationen (Floppy, Drucker) |
| CLEAR | löscht den Grafik-Bildschirm |
| PLOT-Vektor | zeichnet auf den Bildschirm einen Punkt als perspektivische Projektion der Koordinaten. Ist die dritte Koordinate Z = 0, so reicht der Bildschirm von -158 bis 158 in X-Richtung und von -71 bis 79 in Y-Richtung. Darunter befindet sich ein 6 Zeilen langes Textfenster. |
| LINE Vektor,Vektor | zeichnet eine Linie zwischen den Punkten, oder das, was davon im Sichtbereich liegt. |
Da Vektor- oder Matrizenvariablen nicht mit dem PRINT-Befehl ausgegeben werden können, ist das entsprechende Kommando die Angabe des Parameters und sonst nichts als ein Statement, zum Beispiel
G← (Return) im Direktmodus, beziehungsweise in einem Programm:
10 G← :REM VEKTOR G
Die Funktion RND(X) überschneidet sich mit R3 im Gebrauch von Zeropage-Speicherstellen und darf nicht benutzt werden. Indem aber Stimme 3 des SID bei Grafik stumm auf Rauschen geschaltet ist, läßt sich durch PEEK(54299) eine Zufalls-Integer-Zahl zwischen 0 und 255 generieren.
Eine besondere Syntax hat die Drehmatrix:
@ #X(Winkel) stellt eine Matrix dar, die bei Multiplikation mit einem Vektor diesen um (Winkel) um die X-Achse dreht, @ #Y(Winkel), @ #Z(Winkel) entsprechend um die Y- und Z-Achse.
Bei mehreren Drehungen um verschiedene Achsen nacheinander bedeutet jede neue Multiplikation mit einer Drehmatrix eine neue Drehung im absoluten Koordinatensystem und verdreht das vorige Bezugssystem. Als Beispiel sei hier auf das Demo-Programm »RING« aus Listing 2 verwiesen.
Der Radius vom Mittelpunkt sei der Vektor
RI← = [50,0,0]
Der Radius der Oberfläche von der Mittellinie sei
RA← = [10,0,0]
Der kleine Vektor sei um die Z-Achse um den Winkel I gedreht, am großen Vektor befestigt und alles zusammen werde um J um die Y-Achse gedreht:
R← = (RA← * #Z(I) + RI←) * #Y(J)
Um den Ring, der noch nach den absoluten Achsen ausgerichtet ist, im Raum zu kippen, multipliziere man R← noch mit einer vorbereiteten Konstanten Drehmatrix M#, die aus
M# = @ #X(pi/3) * @ #Y(pi/2) entsteht.
Anmerkung: Bekanntlich führen viele Wege nach Rom, und wer eine andere Vorgehensweise bevorzugen würde, wird unter den Möglichkeiten, die R3 bietet, seine Methode finden.
Zum Beispiel bietet es sich an, zu fertig berechneten Vektoren zum Zeichen noch einen unveränderlichen Vektor hinzuzuaddieren, damit die Entfernung und Position des Objektes durch Festlegen auf Größe und Zweck abgestimmt werden kann.
Die grafische Abbildung entsteht durch geschachtelte I,J-Schleifen in Verbindung mit dem LINE-Befehl, der zwei Koordinaten vom Mittelpunkt aus im Bildschirmraum miteinander verbindet, oder den PLOT-Befehl, der nur einen Punkt setzt.
Eine Befehlslösung für das Problem von verdeckten Linien: Zu jedem Paar I,J berechne man Punkte für I,J, und jeweils für das nächste I und das nächste J. Die Differenzen zwischen diesen Vektoren sind welche, die auf der Oberfläche des Ringes liegen, das Kreuzprodukt aus den Differenzen steht also senkrecht darauf. Wenn man dieses Kreuzprodukt noch mit der Richtung zum Betrachter skalar multipliziert, ist das Ergebnis nur positiv, wenn das betreffende Oberflächenstück zum Betrachter hinzeigt. Andernfalls sollen dann die LINE-Befehle, die das Oberflächenstück bilden, übersprungen werden.
SK = (R1← - R2←) X (R1← - R3←) * (R1← - BT←)
Der Standpunkt des Betrachters liegt im Programm R3 fest, BT← = [0,0,-300] ist der Vektor, der auf ihn zeigt.
Die Arbeitsweise von R3
Das Maschinenprogramm R3 belegt den Speicherbereich von $8000 bis $A000 und von $C000 bis $D000. Da es am Anfang eine Modul-Kennung besitzt, läßt es sich mit Reset oder »SYS 64738« wieder starten (das allererste Mal erfolgt das Starten mit »RUN«). Dabei wird die Speicherobergrenze nach $4400 heruntergelegt und der R3-Interpreter in den Basic-Interpreter eingekoppelt.
Der Interpreterteil ist die Speicherzentrale; das erste Zeichen eines Statements wird geprüft, ob es ein Basic-Token ist, falls ja, macht der Commodore-Interpreter weiter. Andernfalls handelt es sich entweder um einen Befehl in Buchstaben (vier Buchstaben sind signifikant) oder um eine Gleichung. Eine Gleichung wird nun verarbeitet, indem in sinnvoller Reihenfolge Operationszeichen und Parameter, also Variablen, Klammern, Zahlen, Basic-Funktionen (außer FNF(X) und RND(X)) erwartet werden.
Im zweiten Teil warten die verschiedenen Rechen-Subroutinen darauf, vom Interpreter aufgerufen zu werden, um zwei Parameter miteinander zu verknüpfen. Dazu werden außer den Parametern Kennzeichnungsbytes (Skalar, Vektor, Matrix) mit übergeben, nach denen je nach Verknüpfungszeichen verschiedene Algorithmen angesteuert oder verbotene Kombinationen, wie Skalar/Vektor, mit einer Fehlermeldung beantwortet werden.
Fand der Interpreter einen 4-Buchstaben-Befehl, so verzweigt er in eine der Subroutinen im dritten Teil: GRAF2/6/A/E, CLEAR, PLOT, LINE. Die Kommandos PLOT und LINE rufen einen Teil des Interpreters auf, der durch ein Flag vorübergehend zum Unterprogramm umfunktioniert wird und einen Ausdruck auswertet (vom Rang Vektor).
Haben diese Unterprogramme ihre Arbeit beendet, so springt der Interpreter mit einem String zurück zum Commodore-Betriebssystem.
Bei der Speicheradresse $4800 beginnt die R3-interne Parametertabelle für Zwischenergebnisse, Zähler und Sprungadressen. Weiter beginnt bei $4E00 ein Stack für Zwischenergebnisse, der bei Klammern und der Prioritätsregel Punkt- vor-Strich-Rechnung sehr lang werden kann. In der Regel beschränkt sich dieser Stack darauf, unter $6000 zu bleiben. Dort würde er sonst die Grafik beeinträchtigen, wie ein zu langes Basic-Programm die HiRes-Grafik bei $2000 nicht verträgt. (Abhilfe: notfalls GRAF2 beziehungsweise GRAF6 nicht benutzen.)
| $0000 | Zeropage u. ä. |
| $0400 | Text- beziehungsweise Farbspeicher bei GRAF2 |
| $0800 | Basic-Programmspeicher |
| $2000 | Hires-map GRAF2 |
| $4000 | |
| $4400 | Ende Basicspeicher/Farbe GRAF6 |
| $4800 | Beginn R3-Arbeitsspeicher |
| $6000 | Hires-Map GRAF6 |
| $8000 | Anfang Programm R3 |
| $8400 | Farbspeicher GRAFA |
| $8800 | weiter Programm R3 |
| $A000 | Hires-Map GRAFA gleichzeitig Basic-ROM |
| $C000 | Fortsetzung Programm R3 |
| $C400 | Farbspeicher GRAFE |
| $C800 | weiter Programm R3 |
| $D000 | VIC-Adreßbereich |
| $E000 | Hires-Map GRAFE gleichzeitig Kernel-ROM |
| Die allerwichtigsten Programmteile | ||
|---|---|---|
| $8009 | RSTAST | Einsprung für Reset |
| $8040 | RSET | Einsprung für Stop/Restore |
| $81C5 | INTROU | Interruptroutine für Grafik + Text-Bildschirm |
| $8236 | NEUWARM | Neuer Warmstart ohne READY. |
| $827B | NTIN | in $0308/0309 eingestellter Vektor zur Ausdrucksauswertung |
| $83A3 | ELEM | holt eine Zahl aus einem Feld (Array) |
| $881A | DINP | liest ein Array in eckigen Klammern ein |
| $8979 | WAHO | holt die Anfangsadresse eines Parameters |
| $8B1F | KLAMM | macht aus dem Inhalt einer Klammer einen Parameter |
| $8DB9 | DRA | führt Transponieren, Invertieren und Potenzieren sofort durch, da vorrangig |
| $8EF2 | SKAL,MATR,VEKT | Einsprung nach Ergebnistyp zum Auflösen einer Gleichung |
| $8F4C | AUSDR | berechnet für PLOT und LINE einen Vektorausdruck |
| $9204 | AUSG | Ausgabe eines Parameters |
| $92AC | COPY | überträgt Werte |
| $9322 | TRANS | transponiert Matrizen |
| $935C | ADDI | addiert und subtrahiert Parameter |
| $93C9 | MULTI | Multiplikation aller Kombinationen |
| $93F7 | MM1M2 | Multiplikation zweier Matrizen |
| $86B7 | MV1V2 | Multiplikation zweier Vektoren skalar |
| $9726 | MVVV | Multiplikation zweier Vektoren vektoriell |
| $98C9 | MV1M2 | Multiplikation Vektor mal Matrix |
| $9953 | INV | Inverse einer Matrix |
| $9037 | MM1V2 | Multiplikation Matrix mal Vektor |
| $9DAA | DIVIS | Division durch einen Skalar |
| $9E50 | ROTAT | bildet eine Drehmatrix |
| $C08C | LINE | zeichnet Linien |
| $CD1B | PLOT | zeichnet Punkte |
| $CE96 | CLEA | löscht Grafikbildschirm |
| $CEE1 | GRAF1 | schaltet Grafik ein oder um |
| $CF60 | POTNZ | potenziert Skalar mit Skalar |
| Auswahl wichtiger Parameter | ||
| $4800 | U | Anfang Arbeitsspeicher |
| U+11 | ERGART | Typ des Ergebnisses |
| U+12 | VARART | Typ des Parameters im Unterprogramm WAHO |
| U+13 | VARART1 | Typ des ersten Operanden |
| U+14 | VARART2 | Typ des zweiten Operanden |
| U+31 | ERG | Adresse des Ergebnisses |
| U+33 | MA1 | Adresse des ersten Operanden, dann Stack |
| U+47 | MA2 | Adresse des zweiten Operanden, dann Stack |
| U+187 | PRIO | Flag für Priorität Punkt- vor Strichrechnung |
| U+201 | KLAMEB | Schachteltiefe von Klammern |
| U+457 | X1 | nach PLOT- und LINE-Befehl sind hier die auf Z=0 projizierten und auf den Bildschirm begrenzten Koordinaten im 5-Byte-Speicherformat zu finden (eventuell interessant für Plotterbesitzer) |
| U+462 | Y1 | |
| U+472 | X2 | |
| U+477 | Y2 | |
| U+547 | ZERG | Zähler für Zwischenergebnis-Array-Stack |
Bei der Verteilung der Speicherbereiche für Parameter und Programm war noch zu berücksichtigen, daß jeder der vier Grafikmodi auch einen Speicherbereich für die Farbe benötigt; die Speicheraufteilung von »R3« zeigt Tabelle 1. In Tabelle 2 sind die wichtigsten Programmteile aufgeführt.
(U. Flügge/ks)PROGRAMM : R3 0801 2FE4 ----------------------------------- 0801 : 1E 08 C1 07 9E 20 28 32 65 0809 : 30 38 35 29 20 43 4F 4D BC 0811 : 50 41 43 54 20 46 43 31 01 0819 : AD 4D 54 42 00 00 00 00 CA 0821 : 00 00 00 00 20 53 E4 A2 97 0829 : 00 BD 7E 08 9D 3C 03 E8 42 0831 : E0 C0 D0 F5 A9 36 85 01 C8 0839 : 8D 20 D0 A9 00 A2 D0 85 A3 0841 : FB 86 FC A5 2D A6 2E 85 3F 0849 : FD 86 FE A0 00 F0 04 B1 58 0851 : FD 91 FB A9 F2 A2 08 E4 79 0859 : FE D0 02 C5 FD F0 13 A5 F8 0861 : FD D0 02 C6 FE C6 FD A5 89 0869 : FB D0 02 C6 FC C6 FB 4C B4 0871 : 50 08 A9 01 A2 08 85 2D 2B 0879 : 86 2E 4C 3C 03 20 9A 03 53 0881 : C9 CF D0 11 20 9A 03 C9 FF 0889 : 00 D0 04 A9 CF D0 1C AA 71 0891 : A9 00 4C 83 03 C9 BF D0 DD 0899 : 12 20 9A 03 C9 00 D0 04 AA 08A1 : A9 BF D0 07 AA 20 9A 03 5B 08A9 : 4C 83 03 20 A5 03 A9 00 95 08B1 : A2 D0 E4 FC D0 02 C5 FB C0 08B9 : D0 C3 A9 37 85 01 20 59 50 08C1 : A6 4C AE A7 E8 A0 00 91 E5 08C9 : 2D C8 CA D0 FA 88 98 38 EE 08D1 : 65 2D 85 2D 90 02 E6 2E E5 08D9 : 4C 6D 03 A0 00 B1 FB E6 FC 08E1 : FB D0 02 E6 FC 60 A0 00 F7 08E9 : 91 2D E6 2D D0 02 E6 2E 85 08F1 : 60 0D 08 0A 00 9E 28 32 15 08F9 : 30 36 34 29 CF 03 78 A0 AF 0901 : 00 84 04 A9 50 85 02 A9 06 0909 : 08 85 03 A9 80 85 05 B1 75 0911 : 02 91 04 C8 D0 F9 E6 03 74 0919 : E6 05 A5 05 C9 A0 D0 EF 51 0921 : A9 C0 85 05 B1 02 91 04 A6 0929 : C8 D0 F9 E6 03 E6 05 A5 7B 0931 : 05 C9 D0 D0 EF 58 4C E2 22 0939 : FC CF 04 09 80 40 80 C3 D3 0941 : C2 CD 38 30 8E 16 D0 20 1B 0949 : A3 FD 20 50 FD 20 15 FD 2E 0951 : 20 5B FF 58 20 53 E4 20 9A 0959 : A0 81 20 BF 00 E3 20 BE D7 0961 : 81 20 22 E4 A2 FB 9A D0 2E 0969 : 0E 4C A2 E3 20 CC FF A9 7E 0971 : 00 85 13 20 7A A6 58 A2 80 0979 : 80 4C 36 82 20 BC F6 20 01 0981 : E1 FF D0 0C 20 15 FD 20 FA 0989 : A3 FD 20 18 E5 4C 30 80 B8 0991 : 4C 72 FE 89 48 00 00 00 8C 0999 : 89 96 00 00 00 87 1E 00 22 09A1 : 00 00 88 1F 00 00 00 87 B6 09A9 : 20 00 00 00 88 20 00 00 53 09B1 : 00 63 09 70 5F 42 81 80 C2 09B9 : CF 03 4B 80 4B 00 4C 80 D4 09C1 : 4C 00 4D 80 4D 10 1B CD CE 09C9 : 8E C0 96 CE E1 CE 50 4C A5 09D1 : 4F 54 4C 49 4E 45 43 4C 3B 09D9 : 45 41 47 52 41 46 00 05 2B 09E1 : 41 52 49 54 48 4D 45 54 D5 09E9 : 49 C3 44 49 CD 41 52 52 23 09F1 : 41 59 20 4D 49 53 4D 41 77 09F9 : 54 43 C8 53 49 4E 47 55 5A 0A01 : 4C 41 52 20 4D 41 54 52 5B 0A09 : 49 D8 20 A3 83 A5 AC A4 9C 0A11 : AD 4C A2 BB 20 A3 83 A5 7D 0A19 : AC A4 AD 85 49 84 4A 4C AE 0A21 : D0 BB A9 00 8D 20 D0 8D 71 0A29 : 04 D4 8D 0B D4 A2 08 8E FC 0A31 : 11 D4 A2 F0 8E 14 D4 A2 95 0A39 : 8F 8E 18 D4 A0 81 8C 12 1C 0A41 : D4 8D 0E D4 8E 0F D4 A9 02 0A49 : 3B 8D 11 D0 A9 18 8D 18 6B 0A51 : D0 D0 2E 00 01 02 03 05 4B 0A59 : 06 07 08 0A 0B 0C 0D 0F 8A 0A61 : 10 11 12 14 15 16 17 19 92 0A69 : 1A 1B 1C 1E 1F 00 40 80 D0 0A71 : C0 01 02 04 08 10 20 40 B5 0A79 : 80 CF 04 20 00 04 A2 02 95 0A81 : AD 46 81 85 FE A0 00 84 60 0A89 : FD 84 97 AD 8B 80 91 FD 63 0A91 : C8 C4 97 D0 F9 E6 FE CA 24 0A99 : F0 04 10 F2 30 0D 48 A9 CE 0AA1 : F8 85 97 09 80 AA 68 D0 03 0AA9 : E5 F0 E3 78 A9 C8 8D 12 49 0AB1 : D0 AD 11 D0 29 7F 8D 11 9D 0AB9 : D0 AD 1A D0 8D 06 48 A9 7E 0AC1 : 81 8D 1A D0 A9 C5 A0 81 F8 0AC9 : 8D 14 03 8C 15 03 A9 06 CF 0AD1 : 85 FC A9 78 85 FB 58 A9 3B 0AD9 : 7B A0 82 8D 08 03 8C 09 D3 0AE1 : 03 A9 36 A0 82 8D 00 03 F5 0AE9 : 8C 01 03 A9 00 A0 44 8D 1D 0AF1 : 83 02 8C 84 02 A9 03 85 AD 0AF9 : 8D 85 8E 60 AD 19 D0 8D FA 0B01 : 19 D0 29 01 D0 03 4C 31 A6 0B09 : EA AD 11 D0 29 80 D0 27 50 0B11 : A0 10 8C 12 D0 A6 D6 E0 7E 0B19 : 13 B0 07 A2 13 86 D6 20 9B 0B21 : 6C E5 A2 C7 A9 9B A0 15 45 0B29 : 8E 00 DD 8D 11 D0 8C 18 DA 0B31 : D0 68 A8 68 AA 68 40 A0 9D 0B39 : 2F AD 8B 80 91 FB C8 10 6E 0B41 : FB A9 FC 2D 00 DD AE 44 28 0B49 : 81 E0 20 D0 04 09 03 D0 93 0B51 : 0E E0 60 D0 04 09 02 D0 34 0B59 : 06 E0 A0 D0 02 09 01 8D 99 0B61 : 00 DD A9 C8 8D 12 D0 A9 D3 0B69 : 3A A0 18 D0 BE 8A 10 03 9A 0B71 : 4C 7B A4 8A 0A AA BD 26 2E 0B79 : A3 85 22 BD 27 A3 85 23 0B 0B81 : 20 CC FF A9 00 85 13 20 F5 0B89 : 45 AB A0 00 B1 22 48 29 6C 0B91 : 7F 20 47 AB C8 68 10 F4 62 0B99 : 20 7A A6 A9 69 A0 A3 20 3F 0BA1 : 1E AB A9 0D 20 D2 FF A4 83 0BA9 : 3A C8 F0 03 20 C2 BD 4C 8B 0BB1 : 7B A4 A9 E0 A0 CF 00 85 98 0BB9 : 61 84 62 A9 00 A0 4E 8D 83 0BC1 : 23 4A 8C 24 4A A5 7A A4 B6 0BC9 : 7B 8D 00 48 8C 01 48 AD 61 0BD1 : A5 80 8D A4 80 A0 00 8C D4 0BD9 : C6 49 A2 00 20 73 00 86 97 0BE1 : 0C 85 45 91 61 20 79 00 30 0BE9 : 20 13 B1 B0 06 20 79 00 5D 0BF1 : 4C E7 A7 A2 00 86 0D 86 E4 0BF9 : 0E 20 73 00 90 05 20 13 CC 0C01 : B1 90 15 AA C8 91 61 C0 B5 0C09 : 03 D0 03 4C 16 83 20 73 A4 0C11 : 00 90 F1 20 13 B1 B0 EC 35 0C19 : 86 46 20 79 00 F0 29 C9 B9 0C21 : 5F D0 06 20 73 00 4C FE D4 0C29 : 8E C9 23 D0 06 20 73 00 AE 0C31 : 4C FA 8E C9 25 D0 06 20 08 0C39 : 8E 8A 4C F3 8E C9 B2 F0 82 0C41 : 07 C9 3D F0 03 4C 93 83 82 0C49 : 20 DD B0 4C F3 8E 8C 02 F7 0C51 : 48 86 46 A9 94 A0 80 85 FE 0C59 : 63 84 64 A0 00 B1 61 D1 E2 0C61 : 63 F0 03 4C 6C 83 C8 CC 26 0C69 : 02 48 D0 F1 A5 63 A4 64 D2 0C71 : 38 E9 94 AA 98 E9 80 4A 88 0C79 : A8 8A 6A 90 05 A2 1C 4C 81 0C81 : 3C 82 69 8C AA 98 69 80 00 0C89 : A8 8A 85 63 84 64 A0 00 32 0C91 : B1 63 8D 64 83 C8 B1 63 F0 0C99 : 8D 65 83 20 01 92 20 79 D6 0CA1 : 00 4C AE A7 E6 63 D0 02 39 0CA9 : E6 64 E6 63 D0 02 E6 64 69 0CB1 : E6 63 D0 02 E6 64 E6 63 B1 0CB9 : D0 02 E6 64 CE A4 80 D0 86 0CC1 : 07 A0 03 A6 46 4C D6 82 D5 0CC9 : 4C 23 83 AD 00 48 AC 01 34 0CD1 : 48 85 7A 84 7B 20 73 00 91 0CD9 : 4C E7 A7 18 79 B6 83 A8 B2 0CE1 : B9 BB 83 65 14 85 AC A9 79 0CE9 : 00 65 15 85 AD 60 00 04 78 0CF1 : 08 0C 10 00 05 0A 0F 14 09 0CF9 : 19 1E 23 28 2D 32 37 3C A9 0D01 : 41 46 4B 50 55 5A 5F 64 B1 0D09 : A2 53 8E 0C 48 20 79 00 E5 0D11 : 20 DD B0 20 A2 BB EE 24 5C 0D19 : 4A AD 23 4A AC 24 4A 85 6C 0D21 : 49 84 4A 20 D0 BB AD 23 2B 0D29 : 4A AC 24 4A 4C B4 8D CF 5C 0D31 : 08 BF FF 20 BF FF 20 BF 19 0D39 : FF 20 BF FF 20 A2 53 8E BA 0D41 : 0C 48 20 73 00 A9 A8 A0 19 0D49 : AE 4C B4 8D A9 00 A0 06 25 0D51 : 99 60 00 88 D0 FA 60 EE 70 0D59 : 24 4A AD 23 4A AC 24 4A A1 0D61 : 85 14 84 15 A9 01 85 8C 86 0D69 : A9 01 85 8B 20 73 00 20 43 0D71 : 9E AD 20 8D AD A5 8B A4 1F 0D79 : 8C 20 A3 83 A5 AC A4 AD 1C 0D81 : 85 49 84 4A 20 D0 BB A4 D6 0D89 : 8C 88 D0 10 A5 8B 20 A3 0E 0D91 : 83 A5 AC A4 AD 85 49 84 DC 0D99 : 4A 20 D0 BB 20 79 00 C9 00 0DA1 : 5D F0 02 D0 1D A6 8C CA E0 0DA9 : D0 18 A5 8B C5 8D F0 03 F3 0DB1 : 4C 36 8D A9 56 8D 0C 48 43 0DB9 : 20 73 00 AD 23 4A AC 24 C8 0DC1 : 4A 60 A6 8B E6 8B E4 8D D0 0DC9 : F0 0A 20 79 00 C9 2C F0 D6 0DD1 : 9B 4C 73 88 A6 8C E6 8C 04 0DD9 : E4 8D F0 0A 20 79 00 C9 63 0DE1 : 2C D0 CD 4C 2B 88 20 79 DD 0DE9 : 00 C9 5D F0 03 4C 36 8D CA 0DF1 : A9 4D 8D 0C 48 20 73 00 79 0DF9 : AD 23 4A AC 24 4A 4C B4 8F 0E01 : 8D 8D B9 48 8C BA 48 AD E7 0E09 : 21 48 AC 22 48 8D 7E 48 39 0E11 : 8C 7F 48 AD 2F 48 AC 30 6D 0E19 : 48 8D 8C 48 8C 8D 48 AD 06 0E21 : 1F 48 AC 20 48 8D 9A 48 7F 0E29 : 8C 9B 48 AD 0B 48 8D B7 E3 0E31 : 48 AD 0D 48 8D A8 48 AD 37 0E39 : 0E 48 8D A9 48 20 79 89 82 0E41 : 8D 21 48 8C 22 48 A9 7A 02 0E49 : A0 80 8D 2F 48 8C 30 48 AD 0E51 : EE 24 4A AD 23 4A AC 24 19 0E59 : 4A 8D 1F 48 8C 20 48 8D 41 0E61 : B9 48 8C BA 48 AD 0C 48 6B 0E69 : 8D 0D 48 A9 53 8D 0E 48 2F 0E71 : 20 CA 93 AD 0B 48 8D 0C D2 0E79 : 48 AD 9A 48 AC 9B 48 8D 2B 0E81 : 1F 48 8C 20 48 AD 7E 48 68 0E89 : AC 7F 48 8D 21 48 8C 22 83 0E91 : 48 AD 8C 48 AC 8D 48 8D 4F 0E99 : 2F 48 8C 30 48 AD A8 48 3B 0EA1 : 8D 0D 48 AD A9 48 8D 0E AC 0EA9 : 48 AD B7 48 8D 0B 48 AD 6C 0EB1 : B9 48 AC BA 48 60 A2 00 23 0EB9 : 20 73 00 86 0C 85 45 C9 F9 0EC1 : 40 D0 03 4C 51 9E C9 2E 41 0EC9 : D0 03 4C 2D 8A 20 79 00 63 0ED1 : 20 13 B1 90 03 4C 22 8A 29 0ED9 : 20 79 00 B0 03 4C 2D 8A 28 0EE1 : C9 2D D0 03 4C C4 88 C9 76 0EE9 : AB D0 03 4C C4 88 C9 2E 5B 0EF1 : D0 03 4C 2D 8A C9 2B D0 41 0EF9 : 03 4C 2D 8A C9 AA D0 03 FA 0F01 : 4C 2D 8A C9 28 D0 03 4C 6D 0F09 : 20 8B C9 5B D0 03 4C 1A 57 0F11 : 88 EA C9 FF D0 03 4C 00 D7 0F19 : 88 0A 48 AA 20 73 00 E0 6D 0F21 : 8F 90 03 4C B1 AF 20 79 4F 0F29 : 00 C9 28 F0 03 4C 1E 8F 60 0F31 : AD 0B 48 48 A2 53 8E 0B 94 0F39 : 48 20 20 8B 20 A2 BB 68 E2 0F41 : 8D 0B 48 68 A8 20 D6 AF B9 0F49 : EE 24 4A AD 23 4A AC 24 11 0F51 : 4A 85 49 84 4A 20 D0 BB A1 0F59 : AD 23 4A AC 24 4A 60 A2 1B 0F61 : 00 86 0D 86 0E 20 79 00 80 0F69 : B0 21 20 A7 8A A9 53 8D 05 0F71 : 0C 48 EE 24 4A AD 23 4A 15 0F79 : AC 24 4A 85 49 84 4A 20 9D 0F81 : D0 BB AD 23 4A AC 24 4A 2E 0F89 : 4C B4 8D A2 00 86 0D 86 5C 0F91 : 0E 20 73 00 90 05 20 13 64 0F99 : B1 90 0B AA 20 73 00 90 69 0FA1 : FB 20 13 B1 B0 F6 86 46 11 0FA9 : 20 79 00 D0 03 4C D0 83 7D 0FB1 : C9 5F D0 06 20 73 00 4C 55 0FB9 : 3F 8D C9 23 D0 06 20 73 3A 0FC1 : 00 4C 43 8D C9 25 F0 03 F9 0FC9 : 4C D0 83 A5 10 F0 03 4C 40 0FD1 : 08 AF A9 80 85 0E 05 45 93 0FD9 : 85 45 8A 09 80 AA 20 73 89 0FE1 : 00 4C DB B0 A0 00 20 79 92 0FE9 : 00 90 14 C9 2E F0 10 C9 AE 0FF1 : 2D F0 0C C9 AB F0 08 C9 C9 0FF9 : 2B F0 04 C9 AA D0 0D 99 6F 1001 : E0 CF 00 C8 20 73 00 90 A1 1009 : F7 C9 2E F0 F3 C9 45 D0 D3 1011 : 22 99 E0 CF 00 C8 20 73 E0 1019 : 00 90 10 C9 2D F0 0C C9 BD 1021 : AB F0 08 C9 2B F0 04 C9 5D 1029 : AA D0 09 99 E0 CF 00 C8 CF 1031 : 20 73 00 90 F7 A9 00 99 1D 1039 : E0 CF 00 A5 7A A4 7B 8D 8B 1041 : 03 48 8C 04 48 A9 E0 A0 A3 1049 : CF 00 85 7A 84 7B 20 79 61 1051 : 00 20 F3 BC 20 1B BC AD 1F 1059 : 03 48 AC 04 48 85 7A 84 D0 1061 : 7B 60 EE C9 48 EE C9 48 B5 1069 : AE C9 48 AD 21 48 9D 21 D1 1071 : 48 AD 22 48 9D 22 48 AD 89 1079 : 2F 48 9D 2F 48 AD 30 48 5D 1081 : 9D 30 48 AD 1F 48 9D D8 5A 1089 : 48 AD 20 48 9D D9 48 AD DE 1091 : 0D 48 9D 0D 48 AD 0E 48 86 1099 : 9D 0E 48 AD 0B 48 9D E6 3C 10A1 : 48 EE 24 4A AD 23 4A AC 29 10A9 : 24 4A 8D 1F 48 8C 20 48 34 10B1 : AD BB 48 9D BB 48 AD 5B 6D 10B9 : 91 9D CA 48 AD 5C 91 9D 14 10C1 : CB 48 AD 10 49 9D 10 49 72 10C9 : AD 11 49 9D 11 49 AD 1E 53 10D1 : 49 9D 1E 49 AD 1F 49 9D CE 10D9 : 1F 49 AD 2C 49 9D 2C 49 52 10E1 : AD 3A 49 9D 3A 49 AD 22 9A 10E9 : 91 9D 48 49 AD 23 91 9D FA 10F1 : 49 49 AD C6 90 9D 56 49 05 10F9 : AD C7 90 9D 57 49 AD 7E D5 1101 : 48 9D 7E 48 AD 7F 48 9D F4 1109 : 7F 48 AD 8C 48 9D 8C 48 DD 1111 : AD 8D 48 9D 8D 48 AD A8 6E 1119 : 48 9D A8 48 AD A9 48 9D E7 1121 : A9 48 AD 64 49 9D 64 49 8C 1129 : AD 65 49 9D 65 49 AD 80 E7 1131 : 49 9D 80 49 AD 81 49 9D D9 1139 : 81 49 AD 8E 49 9D 8E 49 EA 1141 : AD 9C 49 9D 9C 49 AD 9D 48 1149 : 49 9D 9D 49 AD AA 49 9D 82 1151 : AA 49 AD 40 8E 9D B8 49 5E 1159 : AD 41 8E 9D B9 49 20 4D FF 1161 : 8F AE C9 48 BD 64 49 BC 60 1169 : 65 49 8D 64 49 8C 65 49 84 1171 : BD 80 49 BC 81 49 8D 80 F2 1179 : 49 8C 81 49 BD 8E 49 8D 22 1181 : 8E 49 BD 9C 49 BC 9D 49 3A 1189 : 8D 9C 49 8C 9D 49 BD AA B9 1191 : 49 8D AA 49 BD B8 49 BC B5 1199 : B9 49 8D 40 8E 8C 41 8E D2 11A1 : BD A9 48 8D A9 48 BD A8 1C 11A9 : 48 8D A8 48 BD 8C 48 BC C6 11B1 : 8D 48 8D 8C 48 8C 8D 48 07 11B9 : BD 7E 48 BC 7F 48 8D 7E CC 11C1 : 48 8C 7F 48 BD 56 49 BC 65 11C9 : 57 49 8D C6 90 8C C7 90 AF 11D1 : BD 48 49 BC 49 49 8D 22 F6 11D9 : 91 8C 23 91 BD 10 49 BC A6 11E1 : 11 49 8D 10 49 8C 11 49 CC 11E9 : BD 1E 49 BC 1F 49 8D 1E 4E 11F1 : 49 8C 1F 49 BD 2C 49 8D EF 11F9 : 2C 49 BD 3A 49 8D 3A 49 FD 1201 : BD CA 48 BC CB 48 8D 5B B9 1209 : 91 8C 5C 91 BD BB 48 8D 20 1211 : BB 48 AD 0B 48 8D 0C 48 6F 1219 : BD 21 48 BC 22 48 8D 21 ED 1221 : 48 8C 22 48 BD 2F 48 BC 31 1229 : 30 48 8D 2F 48 8C 30 48 01 1231 : AD 1F 48 AC 20 48 8D C7 20 1239 : 49 8C C8 49 BD D8 48 BC 61 1241 : D9 48 8D 1F 48 8C 20 48 80 1249 : BD 0D 48 8D 0D 48 BD 0E 77 1251 : 48 8D 0E 48 BD E6 48 8D 3C 1259 : 0B 48 20 79 00 C9 29 F0 94 1261 : 03 4C 1E 8F 20 73 00 AD FD 1269 : C7 49 AC C8 49 CE C9 48 DC 1271 : CE C9 48 30 EC 4C B4 8D 5B 1279 : A9 B3 85 22 A9 80 4C 47 00 1281 : 82 A9 56 D0 02 A9 4D 8D 45 1289 : 0C 48 20 8D AD A6 2F A5 8B 1291 : 30 86 5F 85 60 C5 32 D0 2B 1299 : 04 E4 31 F0 1D A0 00 B1 B4 12A1 : 5F C8 C5 45 D0 06 A5 46 DF 12A9 : D1 5F F0 13 C8 B1 5F 18 90 12B1 : 65 5F AA C8 B1 5F 65 60 F6 12B9 : 90 D7 20 78 8E A0 01 C8 CF 12C1 : B1 5F 18 65 5F 85 24 C8 19 12C9 : B1 5F 65 60 85 25 C8 B1 97 12D1 : 5F 8D 0A 48 20 96 B1 AE 5D 12D9 : 0A 48 E0 02 F0 0C E0 01 75 12E1 : D0 0F A2 56 EC 0C 48 D0 9E 12E9 : 08 60 A2 4D EC 0C 48 F0 A6 12F1 : 05 A0 01 4C 6A 8D 8D 64 22 12F9 : 49 8C 65 49 20 79 00 C9 6C 1301 : 54 D0 07 A9 23 A0 93 4C D2 1309 : EC 8D C9 49 F0 1C C9 AE CC 1311 : D0 11 AD 0C 48 C9 53 F0 59 1319 : 03 4C 88 93 A9 6C A0 CF F7 1321 : 00 4C EC 8D AD 64 49 AC B1 1329 : 65 49 60 A9 54 A0 99 8D 4C 1331 : 40 8E 8C 41 8E EE 24 4A 89 1339 : AD 1F 48 AC 20 48 8D 80 99 1341 : 49 8C 81 49 AD 0B 48 8D C9 1349 : 8E 49 AD 21 48 AC 22 48 0E 1351 : 8D 9C 49 8C 9D 49 AD 0D 05 1359 : 48 8D AA 49 AD 0C 48 8D B3 1361 : 0B 48 AD 23 4A AC 24 4A 8F 1369 : 8D 1F 48 8C 20 48 A9 4D AF 1371 : 8D 0D 48 8D 0B 48 AD 64 BB 1379 : 49 AC 65 49 8D 21 48 8C B7 1381 : 22 48 20 01 92 AD 0B 48 43 1389 : 8D 0C 48 AD 80 49 AC 81 EC 1391 : 49 8D 1F 48 8C 20 48 AD B8 1399 : 8E 49 8D 0B 48 AD 9C 49 88 13A1 : AC 9D 49 8D 21 48 8C 22 EB 13A9 : 48 AD AA 49 8D 0D 48 20 3E 13B1 : 73 00 AD 23 4A AC 24 4A 23 13B9 : 4C B4 8D A9 A5 85 0C AD 0A 13C1 : 0C 48 C9 4D D0 04 A9 02 E5 13C9 : D0 06 C9 56 D0 06 A9 01 BF 13D1 : 85 0B D0 09 A9 B3 85 22 C4 13D9 : A9 80 4C 47 82 20 94 B1 9D 13E1 : 20 08 A4 A5 58 A4 59 8D 0E 13E9 : F1 8E 8C F2 8E A0 00 84 9A 13F1 : 72 A2 05 A5 45 91 5F 10 29 13F9 : 01 CA C8 A5 46 91 5F 10 D5 1401 : 02 CA CA 86 71 A5 0B C8 EE 1409 : C8 C8 91 5F 18 A6 8D E8 44 1411 : A9 00 C8 91 5F C8 8A 91 A8 1419 : 5F 20 4C B3 86 71 85 72 01 1421 : A4 22 C6 0B D0 E6 20 AA 03 1429 : B2 A9 00 85 0C AD F1 8E 74 1431 : AC F2 8E 60 00 00 A2 53 37 1439 : 8E 0B 48 D0 0F A2 4D D0 56 1441 : 02 A2 56 8E 0C 48 8E 0B 4F 1449 : 48 20 48 8D 8D 1F 48 8C 71 1451 : 20 48 20 79 00 D0 06 20 AB 1459 : 05 92 4C AE A7 C9 B2 F0 06 1461 : 09 A9 A6 85 22 A9 80 4C A3 1469 : 47 82 A9 00 8D C9 48 AD FF 1471 : 1F 48 AC 20 48 8D 1D 48 D9 1479 : 8C 1E 48 AD 0B 48 8D 1C 3D 1481 : 48 EE 24 4A AD 23 4A AC 09 1489 : 24 4A 8D 1F 48 8C 20 48 14 1491 : 20 79 89 8D 21 48 8C 22 4D 1499 : 48 AD 0C 48 8D 0D 48 20 67 14A1 : 79 00 C9 2C F0 09 C9 29 E3 14A9 : F0 05 20 79 00 D0 63 AD C3 14B1 : C6 49 D0 11 AD 0D 48 CD 72 14B9 : 0B 48 F0 0F A9 B3 85 22 99 14C1 : A9 80 4C 47 82 AD 0C 48 FD 14C9 : 8D 0B 48 AD 21 48 AC 22 EF 14D1 : 48 8D 33 48 8C 34 48 AD 9D 14D9 : 1F 48 AC 20 48 8D 35 48 A2 14E1 : 8C 36 48 AD 0B 48 8D 0C 91 14E9 : 48 20 AD 92 AD C9 48 F0 2B 14F1 : 0A 20 79 00 C9 29 F0 08 23 14F9 : 4C 1E 8F AD C6 49 F0 07 76 1501 : AD 1F 48 AC 20 48 60 20 EC 1509 : 79 00 F0 03 4C 1E 8F 4C AB 1511 : 79 91 C9 AA D0 0C A9 00 2F 1519 : 8D BB 48 A9 5D A0 93 4C 8D 1521 : 22 90 C9 AB D0 0C A9 00 87 1529 : 8D BB 48 A9 70 A0 93 4C CE 1531 : 22 90 C9 AC D0 0C A9 01 B9 1539 : 8D BB 48 A9 CA A0 93 4C 84 1541 : 22 90 C9 58 D0 0C A9 01 3F 1549 : 8D BB 48 A9 29 A0 97 4C 8A 1551 : 22 90 C9 AD D0 0C A9 01 F9 1559 : 8D BB 48 A9 AB A0 9D 4C DA 1561 : 22 90 4C 93 83 8D 5B 91 86 1569 : 8C 5C 91 20 79 89 8D 2F 04 1571 : 48 8C 30 48 AD 0C 48 8D 8C 1579 : 0E 48 20 79 00 C9 AA D0 7D 1581 : 03 4C 5A 91 C9 AB D0 03 B6 1589 : 4C 5A 91 C9 AC D0 07 A9 61 1591 : CA A0 93 4C 66 90 C9 58 DC 1599 : D0 07 A9 29 A0 97 4C 66 41 15A1 : 90 C9 AD D0 E3 A9 AB A0 17 15A9 : 9D 8D C6 90 8C C7 90 AD 75 15B1 : BB 48 D0 D4 AD 21 48 AC BD 15B9 : 22 48 8D 10 49 8C 11 49 35 15C1 : AD 1F 48 AC 20 48 8D 1E 5C 15C9 : 49 8C 1F 49 AD 0B 48 8D B9 15D1 : 2C 49 AD 0D 48 8D 3A 49 1B 15D9 : AD 2F 48 AC 30 48 8D 21 83 15E1 : 48 8C 22 48 AD 0E 48 8D 88 15E9 : 0D 48 20 79 89 8D 2F 48 A4 15F1 : 8C 30 48 AD 0C 48 8D 0E B2 15F9 : 48 EE 24 4A AD 23 4A AC 81 1601 : 24 4A 8D 1F 48 8C 20 48 8C 1609 : 20 CA 93 20 79 00 F0 5A 87 1611 : C9 AC D0 07 A9 CA A0 93 E0 1619 : 4C EB 90 C9 58 D0 07 A9 34 1621 : 29 A0 97 4C EB 90 C9 AD CF 1629 : D0 40 A9 AB A0 9D 8D 22 6B 1631 : 91 8C 23 91 AD 1F 48 AC 52 1639 : 20 48 8D 21 48 8C 22 48 07 1641 : AD 0B 48 8D 0D 48 EE 24 4F 1649 : 4A AD 23 4A AC 24 4A 8D AC 1651 : 1F 48 8C 20 48 20 79 89 3A 1659 : 8D 2F 48 8C 30 48 AD 0C 36 1661 : 48 8D 0E 48 20 CA 93 4C 3C 1669 : C8 90 AD 1F 48 AC 20 48 C4 1671 : 8D 2F 48 8C 30 48 AD 10 56 1679 : 49 AC 11 49 8D 21 48 8C A2 1681 : 22 48 EE 24 4A AD 23 4A 3B 1689 : AC 24 4A 8D 1F 48 8C 20 32 1691 : 48 AD 0B 48 8D 0E 48 AD 41 1699 : 3A 49 8D 0D 48 20 01 92 2C 16A1 : 20 79 00 D0 43 AD C6 49 E7 16A9 : F0 12 AD C9 48 D0 58 AD 0F 16B1 : 0B 48 8D 0C 48 AD 1F 48 C4 16B9 : AC 20 48 60 AD 0B 48 CD 83 16C1 : 1C 48 F0 03 4C 88 93 8D 10 16C9 : 0C 48 AD 1F 48 AC 20 48 44 16D1 : 8D 33 48 8C 34 48 AD 1D 12 16D9 : 48 AC 1E 48 8D 35 48 8C C5 16E1 : 36 48 20 AD 92 4C AE A7 8F 16E9 : C9 29 F0 51 C9 2C D0 1A 23 16F1 : AD C6 49 F0 12 AD C9 48 B8 16F9 : 30 0D AD 0B 48 8D 0C 48 2E 1701 : AD 1F 48 AC 20 48 60 4C 44 1709 : 1E 8F AD 1F 48 AC 20 48 39 1711 : 8D 33 48 8C 34 48 EE 24 65 1719 : 4A AD 23 4A AC 24 4A 8D 7C 1721 : 35 48 8C 36 48 8D 21 48 6A 1729 : 8C 22 48 AD 0B 48 8D 0C CF 1731 : 48 8D 0D 48 20 AD 92 20 86 1739 : 79 00 4C CF 00 8F AD C9 86 1741 : 48 F0 03 30 01 60 4C 1E 49 1749 : 8F AD 0B 48 C9 53 D0 14 1D 1751 : AD 1F 48 AC 20 48 20 A2 40 1759 : BB 20 DD BD 20 1E AB A9 48 1761 : 0D 4C D2 FF C9 56 F0 03 62 1769 : 4C 5B 92 A9 01 85 8B AD 02 1771 : 1F 48 AC 20 48 85 14 84 EE 1779 : 15 A5 8B A0 00 20 A3 83 EE 1781 : A5 AC A4 AD 20 A2 BB 20 A1 1789 : DD BD 20 1E AB A9 20 20 D9 1791 : D2 FF A6 8B E6 8B E4 8D F7 1799 : D0 DF A9 0D 4C D2 FF C9 54 17A1 : 4D F0 03 4C 1E 8F A9 03 BC 17A9 : 85 8E 18 A9 01 85 8B AD 76 17B1 : 1F 48 AC 20 48 85 14 84 2E 17B9 : 15 A9 01 85 8C A5 8B A4 01 17C1 : 8C 20 A3 83 A5 AC A4 AD 64 17C9 : 20 A2 BB 20 DD BD 20 1E B6 17D1 : AB A9 20 20 D2 FF E6 8C 3F 17D9 : A6 8C CA E4 8E D0 DE A9 53 17E1 : 0D 20 D2 FF E6 8B A6 8B 2F 17E9 : CA E4 8D F0 03 4C 75 92 34 17F1 : 60 18 AD 0C 48 C9 56 D0 18 17F9 : 09 A9 00 85 8E 8D D0 92 45 1801 : F0 0D C9 4D D0 4B A9 03 A8 1809 : 85 8E A9 01 8D D0 92 A9 5D 1811 : 01 85 8B A9 01 85 8C AD B7 1819 : 33 48 AC 34 48 85 14 84 2C 1821 : 15 A5 8B A4 8C 20 A3 83 E0 1829 : A5 AC A4 AD 20 A2 BB AD 64 1831 : 35 48 AC 36 48 85 14 84 86 1839 : 15 A5 8B A4 8C 20 DA 80 CE 1841 : A6 8C E6 8C E4 8E D0 CF 1E 1849 : 00 A6 8B E6 8B E4 8D D0 14 1851 : C3 60 AD 33 48 AC 34 48 61 1859 : 20 A2 BB AD 35 48 AC 36 24 1861 : 48 85 49 84 4A 4C D0 BB 10 1869 : AD 0C 48 C9 4D D0 30 A9 D7 1871 : 8B 8D E0 92 A9 8C 8D DE 40 1879 : 92 AD 21 48 AC 22 48 8D 4B 1881 : 33 48 8C 34 48 AD 1F 48 81 1889 : AC 20 48 8D 35 48 8C 36 3D 1891 : 48 20 C2 92 A9 8B 8D DE D7 1899 : 92 A9 8C 8D E0 92 60 4C 91 18A1 : 36 8D A9 67 A0 B8 8D 14 23 18A9 : 9D 8C 15 9D 8D BB 93 8C A3 18B1 : BC 93 4C 80 93 A9 50 A0 63 18B9 : B8 8D 14 9D 8C 15 9D 8D F4 18C1 : BB 93 8C BC 93 AD 0D 48 6C 18C9 : CD 0E 48 F0 09 A9 B3 85 85 18D1 : 22 A9 80 4C 47 82 8D 0B 46 18D9 : 48 C9 4D D0 0C A9 03 85 98 18E1 : 8E A9 01 8D EA 9C 4C E5 C6 18E9 : 9C C9 56 D0 03 4C DC 9C 59 18F1 : AD 2F 48 AC 30 48 20 A2 E9 18F9 : BB AD 21 48 AC 22 48 20 19 1901 : 67 B8 AD 1F 48 AC 20 48 0F 1909 : 85 49 84 4A 4C D0 BB A9 2B 1911 : 28 A0 BA 8D 94 96 8C 95 45 1919 : 96 AD 0D 48 C9 56 D0 03 6B 1921 : 4C 91 95 C9 4D F0 05 4C DD 1929 : AC 95 A9 01 AD 0E 48 C9 2A 1931 : 56 D0 03 4C 38 9D C9 4D 6C 1939 : F0 03 4C EB 95 A9 03 85 F9 1941 : 8D 85 8E 20 0F 88 AD 83 2B 1949 : 80 AC 84 80 85 14 84 15 86 1951 : A9 01 85 8B A9 01 85 8C 1F 1959 : A5 8B A4 8C 20 A3 83 A5 F7 1961 : AC A4 AD 85 49 84 4A 20 9D 1969 : D0 BB A6 8C E6 8C E4 8E D5 1971 : D0 E6 A6 8B E6 8B E4 8D 49 1979 : D0 DA A9 01 85 8B A9 01 9E 1981 : 85 8C AD 2F 48 AC 30 48 D9 1989 : 85 14 84 15 A5 8C A4 8B 44 1991 : 20 D0 80 AD 21 48 AC 22 3A 1999 : 48 85 14 84 15 A5 8B A4 2F 19A1 : 8C 20 A3 83 A5 AC A4 AD 44 19A9 : 20 28 BA AD 83 80 AC 84 3A 19B1 : 80 85 14 84 15 A5 8B A4 7F 19B9 : 8B 20 A3 83 A5 AC A4 AD 5B 19C1 : 20 67 B8 A5 AC A4 AD 85 29 19C9 : 49 84 4A 20 D0 BB 18 A5 82 19D1 : 8B 69 01 8D 07 48 AD 2F CB 19D9 : 48 AC 30 48 85 14 84 15 C2 19E1 : A5 8C AC 07 48 20 D0 80 A2 19E9 : AD 21 48 AC 22 48 85 14 71 19F1 : 84 15 A5 8B A4 8C 20 A3 51 19F9 : 83 A5 AC A4 AD 20 28 BA 00 1A01 : AD 83 80 AC 84 80 85 14 B0 1A09 : 84 15 A5 8B AC 07 48 20 57 1A11 : A3 83 A5 AC A4 AD 20 67 7C 1A19 : B8 A5 AC A4 AD 85 49 84 99 1A21 : 4A 20 D0 BB AE 07 48 EE 49 1A29 : 07 48 E4 8D F0 05 B0 03 3F 1A31 : 4C 91 94 18 A5 8B 69 01 CC 1A39 : 8D 08 48 A5 8B CD 08 48 69 1A41 : F0 5B AD 2F 48 AC 30 48 6B 1A49 : 85 14 84 15 A5 8C A4 8B 04 1A51 : 20 D0 80 AD 21 48 AC 22 FA 1A59 : 48 85 14 84 15 AD 08 48 69 1A61 : A4 8C 20 A3 83 A5 AC A4 29 1A69 : AD 20 28 BA AD 83 80 AC DA 1A71 : 84 80 85 14 84 15 AD 08 D1 1A79 : 48 A4 8B 20 A3 83 A5 AC 40 1A81 : A4 AD 20 67 B8 A5 AC A4 A6 1A89 : AD 85 49 84 4A 20 D0 BB 3C 1A91 : AE 08 48 EE 08 48 E4 8D A5 1A99 : B0 03 4C F6 94 A6 8C E6 3B 1AA1 : 8C E4 8D B0 03 4C 3D 94 C9 1AA9 : A6 8B E6 8B E4 8D B0 03 C3 1AB1 : 4C 39 94 AD 83 80 AC 84 6D 1AB9 : 80 8D 33 48 8C 34 48 A9 B5 1AC1 : 4D 8D 0C 48 8D 0B 48 AD 8F 1AC9 : 1F 48 AC 20 48 8D 35 48 92 1AD1 : 8C 36 48 4C AD 92 AD 0E 56 1AD9 : 48 C9 4D D0 03 4C CA 98 62 1AE1 : C9 56 D0 03 4C B8 96 C9 E2 1AE9 : 53 D0 03 4C 2E 96 4C 1E F4 1AF1 : 8F AD 0E 48 C9 4D D0 03 34 1AF9 : 4C 06 96 C9 56 D0 03 4C B8 1B01 : 49 96 C9 53 D0 03 4C C7 58 1B09 : 95 4C 1E 8F A9 53 8D 0B BF 1B11 : 48 AD 21 48 AC 22 48 20 BE 1B19 : A2 BB AD 2F 48 AC 30 48 25 1B21 : 20 28 BA AD 1F 48 AC 20 E1 1B29 : 48 85 49 84 4A 4C D0 BB D8 1B31 : AD 21 48 AC 22 48 8D 39 24 1B39 : 48 8C 3A 48 AD 2F 48 AC 2E 1B41 : 30 48 8D 37 48 8C 38 48 3A 1B49 : 4C 1E 96 AD 21 48 AC 22 4B 1B51 : 48 8D 37 48 8C 38 48 AD 3E 1B59 : 2F 48 AC 30 48 8D 39 48 44 1B61 : 8C 3A 48 A9 4D 8D 0B 48 50 1B69 : A9 03 85 8E A9 01 8D 72 85 1B71 : 96 D0 3F AD 21 48 AC 22 40 1B79 : 48 8D 39 48 8C 3A 48 AD F6 1B81 : 2F 48 AC 30 48 8D 37 48 64 1B89 : 8C 38 48 4C 61 96 AD 21 91 1B91 : 48 AC 22 48 8D 37 48 8C 8E 1B99 : 38 48 AD 2F 48 AC 30 48 82 1BA1 : 8D 39 48 8C 3A 48 A9 56 A8 1BA9 : 8D 0B 48 A9 00 85 8E 8D 85 1BB1 : 72 96 A9 01 85 8B A9 01 56 1BB9 : 85 8C AD 37 48 AC 38 48 32 1BC1 : 20 A2 BB AD 39 48 AC 3A D4 1BC9 : 48 85 14 84 15 A5 8B A4 5F 1BD1 : 8C 20 A3 83 A5 AC A4 AD 74 1BD9 : 20 28 BA AD 1F 48 AC 20 99 1BE1 : 48 85 14 84 15 A5 8B A4 77 1BE9 : 8C 20 DA 80 A6 8C E6 8C CF 1BF1 : E4 8E D0 C6 A6 8B E6 8B A3 1BF9 : E4 8D D0 BA 60 A9 53 8D EB 1C01 : 0B 48 20 0F 88 A9 4B A0 5F 1C09 : 48 85 49 84 4A 20 D0 BB 57 1C11 : A9 01 85 8B AD 21 48 AC 6C 1C19 : 22 48 85 14 84 15 A5 8B E2 1C21 : A0 00 20 D0 80 AD 2F 48 A6 1C29 : AC 30 48 85 14 84 15 A5 B5 1C31 : 8B A0 00 20 A3 83 A5 AC 57 1C39 : A4 AD 20 28 BA A9 4B A0 28 1C41 : 48 20 67 B8 A9 4B A0 48 92 1C49 : 85 49 84 4A 20 D0 BB A6 A2 1C51 : 8B E6 8B E4 8D D0 BD A9 78 1C59 : 4B A0 48 20 A2 BB AD 1F 07 1C61 : 48 AC 20 48 85 49 84 4A 5A 1C69 : 4C D0 BB 4C 88 93 A9 56 0E 1C71 : 8D 0B 48 CD 0D 48 D0 F3 8E 1C79 : CD 0E 48 D0 EE AD 21 48 EB 1C81 : AC 22 48 85 14 84 15 A9 0E 1C89 : 02 A0 00 20 D0 80 AD 2F 06 1C91 : 48 AC 30 48 85 14 84 15 7A 1C99 : A9 03 A0 00 20 A3 83 A5 64 1CA1 : AC A4 AD 20 28 BA AD 1F 5C 1CA9 : 48 AC 20 48 85 14 84 15 8E 1CB1 : A9 01 A0 00 20 DA 80 AD 39 1CB9 : 21 48 AC 22 48 85 14 84 78 1CC1 : 15 A9 03 A0 00 20 D0 80 C5 1CC9 : AD 2F 48 AC 30 48 85 14 39 1CD1 : 84 15 A9 02 A0 00 20 A3 5C 1CD9 : 83 A5 AC A4 AD 20 28 BA E0 1CE1 : AD 1F 48 AC 20 48 85 14 48 1CE9 : 84 15 A9 01 A0 00 20 A3 54 1CF1 : 83 A5 AC A4 AD 20 50 B8 95 1CF9 : A5 AC A4 AD 85 49 84 4A 1C 1D01 : 20 D0 BB AD 21 48 AC 22 79 1D09 : 48 85 14 84 15 A9 03 A0 95 1D11 : 00 20 D0 80 AD 2F 48 AC 34 1D19 : 30 48 85 14 84 15 A9 01 EB 1D21 : A0 00 20 A3 83 A5 AC A4 9F 1D29 : AD 20 28 BA AD 1F 48 AC 96 1D31 : 20 48 85 14 84 15 A9 02 F5 1D39 : A0 00 20 DA 80 AD 21 48 C7 1D41 : AC 22 48 85 14 84 15 A9 CE 1D49 : 01 A0 00 20 D0 80 AD 2F C5 1D51 : 48 AC 30 48 85 14 84 15 3A 1D59 : A9 03 A0 00 20 A3 83 A5 24 1D61 : AC A4 AD 20 28 BA AD 1F 1C 1D69 : 48 AC 20 48 85 14 84 15 4E 1D71 : A9 02 A0 00 20 A3 83 A5 BC 1D79 : AC A4 AD 20 50 B8 A5 AC A1 1D81 : A4 AD 85 49 84 4A 20 D0 43 1D89 : BB AD 21 48 AC 22 48 85 74 1D91 : 14 84 15 A9 01 A0 00 20 B7 1D99 : D0 80 AD 2F 48 AC 30 48 36 1DA1 : 85 14 84 15 A9 02 A0 00 21 1DA9 : 20 A3 83 A5 AC A4 AD 20 17 1DB1 : 28 BA AD 1F 48 AC 20 48 81 1DB9 : 85 14 84 15 A9 03 A0 00 41 1DC1 : 20 DA 80 AD 21 48 AC 22 6F 1DC9 : 48 85 14 84 15 A9 02 A0 51 1DD1 : 00 20 D0 80 AD 2F 48 AC F4 1DD9 : 30 48 85 14 84 15 A9 01 AB 1DE1 : A0 00 20 A3 83 A5 AC A4 5F 1DE9 : AD 20 28 BA AD 1F 48 AC 56 1DF1 : 20 48 85 14 84 15 A9 03 B7 1DF9 : A0 00 20 A3 83 A5 AC A4 77 1E01 : AD 20 50 B8 A5 AC A4 AD 97 1E09 : 85 49 84 4A 4C D0 BB 20 18 1E11 : 17 9E A9 01 85 8B A9 01 5F 1E19 : 85 8C AD 21 48 AC 22 48 77 1E21 : 85 14 84 15 A5 8B A0 00 AD 1E29 : 20 D0 80 AD 2F 48 AC 30 CF 1E31 : 48 85 14 84 15 A5 8C A4 CB 1E39 : 8B 20 A3 83 A5 AC A4 AD DB 1E41 : 20 28 BA AD 7F 80 AC 80 89 1E49 : 80 85 14 84 15 A5 8C A0 13 1E51 : 00 20 A3 83 A5 AC A4 AD 68 1E59 : 20 67 B8 A5 AC A4 AD 85 C1 1E61 : 49 84 4A 20 D0 BB A6 8C 22 1E69 : E6 8C E4 8D D0 AC A6 8B A4 1E71 : E6 8B E4 8D D0 A0 AD 7F CF 1E79 : 80 AC 80 80 8D 33 48 8C 2C 1E81 : 34 48 AD 1F 48 AC 20 48 24 1E89 : 8D 35 48 8C 36 48 A9 56 4D 1E91 : 8D 0C 48 8D 0B 48 4C AD 68 1E99 : 92 AD 0C 48 C9 4D F0 03 DF 1EA1 : 4C 36 8D A9 01 85 8B A0 4D 1EA9 : 05 A9 00 99 61 48 99 67 44 1EB1 : 48 88 D0 F7 A9 01 8D 08 59 1EB9 : 48 AD 21 48 AC 22 48 85 31 1EC1 : 14 84 15 A5 8B AC 08 48 E0 1EC9 : 20 D0 80 AD 83 80 AC 84 1F 1ED1 : 80 85 14 84 15 A5 8B AC AF 1ED9 : 08 48 20 DA 80 AE 08 48 97 1EE1 : EE 08 48 E4 8D D0 D2 A6 7A 1EE9 : 8B E6 8B E4 8D F0 03 4C 6C 1EF1 : 6F 99 A9 01 85 8B 20 0F 0B 1EF9 : 88 A9 6D A0 48 85 49 84 A4 1F01 : 4A 20 D0 BB A9 01 8D 72 C5 1F09 : 48 AC 72 48 B9 61 48 F0 F7 1F11 : 03 4C 40 9A A9 01 8D 73 5D 1F19 : 48 AC 73 48 B9 67 48 F0 77 1F21 : 03 4C 33 9A AD 72 48 AC 53 1F29 : 73 48 20 A3 83 A5 AC A4 9E 1F31 : AD 20 A2 BB A9 00 85 66 8C 1F39 : A9 5C A0 48 85 49 84 4A 8B 1F41 : 20 D0 BB A9 6D A0 48 20 2B 1F49 : A2 BB A9 00 85 66 A9 5C 1E 1F51 : A0 48 20 5B BC 30 03 4C 7B 1F59 : 33 9A A5 AC A4 AD 20 A2 56 1F61 : BB A9 6D A0 48 85 49 84 3F 1F69 : 4A 20 D0 BB AD 72 48 8D 19 1F71 : 5A 48 AD 73 48 8D 5B 48 B8 1F79 : AE 73 48 EE 73 48 E4 8D F9 1F81 : F0 03 4C D4 99 AE 72 48 0A 1F89 : EE 72 48 E4 8D F0 03 4C 64 1F91 : C4 99 A9 6D A0 48 20 A2 4C 1F99 : BB A5 61 F0 03 4C 64 9A F7 1FA1 : A9 C1 85 22 A9 80 4C 47 2F 1FA9 : 82 AD 5B 48 AC 5A 48 99 D4 1FB1 : 61 48 AD 5A 48 AC 5B 48 D5 1FB9 : 99 67 48 A9 6D A0 48 20 8A 1FC1 : A2 BB A9 BC A0 B9 20 0F B9 1FC9 : BB AD 5A 48 AC 5B 48 20 01 1FD1 : A3 83 A5 AC A4 AD 85 49 95 1FD9 : 84 4A 20 D0 BB A9 01 8D CD 1FE1 : 08 48 AD 08 48 CD 5A 48 67 1FE9 : D0 03 4C 19 9B A9 01 8D 97 1FF1 : 09 48 AD 09 48 CD 5B 48 9C 1FF9 : D0 03 4C 0C 9B AD 08 48 B7 2001 : AC 5B 48 20 A3 83 A5 AC B7 2009 : A4 AD 20 A2 BB AD 5A 48 03 2011 : AC 09 48 20 A3 83 A5 AC 9E 2019 : A4 AD 20 28 BA A9 74 A0 AD 2021 : 48 85 49 84 4A 20 D0 BB 6F 2029 : A9 6D A0 48 20 A2 BB A9 13 2031 : 74 A0 48 20 0F BB AD 08 A1 2039 : 48 AC 09 48 20 A3 83 A5 9B 2041 : AC A4 AD 20 50 B8 A5 AC 69 2049 : A4 AD 85 49 84 4A 20 D0 0B 2051 : BB AE 09 48 EE 09 48 E4 D1 2059 : 8D F0 03 4C AD 9A AE 08 23 2061 : 48 EE 08 48 E4 8D F0 03 B0 2069 : 4C 9D 9A A9 01 8D 72 48 36 2071 : AD 72 48 CD 5A 48 F0 22 13 2079 : A9 6D A0 48 20 A2 BB AD 6B 2081 : 72 48 AC 5B 48 20 A3 83 C9 2089 : A5 AC A4 AD 20 0F BB A5 18 2091 : AC A4 AD 85 49 84 4A 20 CD 2099 : D0 BB AE 72 48 EE 72 48 97 20A1 : E4 8D D0 CC A9 01 8D 73 D9 20A9 : 48 AD 73 48 CD 5B 48 F0 68 20B1 : 25 A9 6D A0 48 20 A2 BB A2 20B9 : AD 5A 48 AC 73 48 20 A3 7C 20C1 : 83 A5 AC A4 AD 20 0F BB 66 20C9 : 20 B4 BF 00 A5 AC A4 AD E1 20D1 : 85 49 84 4A 20 D0 BB AE 3A 20D9 : 73 48 EE 73 48 E4 8D D0 1E 20E1 : C9 A6 8B E6 8B E4 8D F0 B5 20E9 : 03 4C B1 99 A9 01 85 8B 82 20F1 : A4 8B B9 61 48 8D 72 48 41 20F9 : C5 8B D0 03 4C 26 9C A8 D2 2101 : 99 61 48 A9 01 8D 07 48 BB 2109 : AD 72 48 AC 07 48 20 A3 11 2111 : 83 A5 AC A4 AD 8D 50 48 40 2119 : 8C 51 48 20 A2 BB A9 79 06 2121 : A0 48 85 49 84 4A 20 D0 2D 2129 : BB A5 8B AC 07 48 20 A3 AA 2131 : 83 A5 AC A4 AD 8D 55 48 74 2139 : 8C 56 48 20 A2 BB AD 50 66 2141 : 48 AC 51 48 85 49 84 4A 86 2149 : 20 D0 BB A9 79 A0 48 20 F3 2151 : A2 BB AD 55 48 AC 56 48 BB 2159 : 85 49 84 4A 20 D0 BB AE C2 2161 : 07 48 EE 07 48 E4 8D F0 ED 2169 : 03 4C C2 9B A6 8B E6 8B 30 2171 : E4 8D F0 03 4C AA 9B A9 94 2179 : 01 85 8B A4 8B B9 67 48 69 2181 : 8D 73 48 C5 8B D0 03 4C 76 2189 : B1 9C A8 99 67 48 A9 01 47 2191 : 8D 07 48 AD 07 48 AC 73 B6 2199 : 48 20 A3 83 A5 AC A4 AD F8 21A1 : 8D 50 48 8C 51 48 20 A2 17 21A9 : BB A9 79 A0 48 85 49 84 8A 21B1 : 4A 20 D0 BB AD 07 48 A4 34 21B9 : 8B 20 A3 83 A5 AC A4 AD 5B 21C1 : 8D 55 48 8C 56 48 20 A2 0A 21C9 : BB AD 50 48 AC 51 48 85 F9 21D1 : 49 84 4A 20 D0 BB A9 79 77 21D9 : A0 48 20 A2 BB AD 55 48 09 21E1 : AC 56 48 85 49 84 4A 20 9D 21E9 : D0 BB AE 07 48 EE 07 48 CC 21F1 : E4 8D F0 03 4C 4D 9C A6 27 21F9 : 8B E6 8B E4 8D F0 03 4C 7C 2201 : 35 9C AD 83 80 AC 84 80 E1 2209 : 8D 33 48 8C 34 48 AD 1F 4E 2211 : 48 AC 20 48 8D 35 48 8C 7D 2219 : 36 48 A9 4D 8D 0C 48 4C 7A 2221 : AD 92 A9 00 85 8E 8D EA 5B 2229 : 9C 85 8E A9 01 85 8B A9 1E 2231 : 01 85 8C AD 2F 48 AC 30 16 2239 : 48 85 14 84 15 A5 8B A4 CF 2241 : 8C 20 D0 80 AD 21 48 AC 80 2249 : 22 48 85 14 84 15 A5 8B 12 2251 : A4 8C 20 A3 83 A5 AC A4 19 2259 : AD 20 67 B8 AD 1F 48 AC 56 2261 : 20 48 85 14 84 15 A5 8B 28 2269 : A4 8C 20 DA 80 A6 8C E6 F4 2271 : 8C E4 8E D0 BE A6 8B E6 4A 2279 : 8B E4 8D D0 B2 60 20 17 D1 2281 : 9E A9 01 85 8B A9 01 85 FA 2289 : 8C AD 21 48 AC 22 48 85 45 2291 : 14 84 15 A5 8B A4 8C 20 32 2299 : D0 80 AD 2F 48 AC 30 48 36 22A1 : 85 14 84 15 A5 8C A0 00 35 22A9 : 20 A3 83 A5 AC A4 AD 20 17 22B1 : 28 BA AD 7F 80 AC 80 80 02 22B9 : 85 14 84 15 A5 8B A0 00 45 22C1 : 20 A3 83 A5 AC A4 AD 20 2F 22C9 : 67 B8 A5 AC A4 AD 85 49 EC 22D1 : 84 4A 20 D0 BB A6 8C E6 8D 22D9 : 8C E4 8D D0 AC A6 8B E6 51 22E1 : 8B E4 8D D0 A0 4C 31 99 C0 22E9 : A9 B0 85 22 A9 80 4C 47 EE 22F1 : 82 AD 0E 48 C9 53 F0 03 D7 22F9 : 4C 1E 8F AD 21 48 AC 22 39 2301 : 48 8D 39 48 8C 3A 48 AD 7E 2309 : 2F 48 AC 30 48 8D 37 48 EC 2311 : 8C 38 48 A9 0F A0 BB 8D 01 2319 : 94 96 8C 95 96 AD 0D 48 6A 2321 : C9 4D D0 06 8D 0B 48 4C 71 2329 : 23 96 C9 56 D0 06 8D 0B 5E 2331 : 48 4C 66 96 C9 53 F0 03 0D 2339 : 4C 1E 8F 8D 0B 48 AD 2F 32 2341 : 48 AC 30 48 20 A2 BB AD 56 2349 : 21 48 AC 22 48 20 0F BB 37 2351 : AD 1F 48 AC 20 48 85 49 22 2359 : 84 4A 4C D0 BB AC 80 80 54 2361 : AD 7F 80 85 64 84 65 D0 40 2369 : 02 C6 65 C6 64 A0 29 A9 44 2371 : 00 91 64 88 D0 FB 60 20 13 2379 : A3 83 A5 AC A4 AD 4C A2 0B 2381 : BB 20 A3 83 A5 AC A4 AD 53 2389 : 60 20 A3 83 A5 AC A4 AD 00 2391 : 85 49 84 4A 4C D0 BB 20 A0 2399 : 73 00 C9 23 F0 03 4C 88 4C 23A1 : 93 A9 4D 8D 0C 48 20 73 78 23A9 : 00 C9 58 F0 03 4C D3 9E E1 23B1 : AD 85 80 AC 86 80 20 39 36 23B9 : CF 00 20 70 C0 A9 74 A0 0B 23C1 : 48 85 49 84 4A 20 D0 BB 0F 23C9 : 20 64 E2 AD 85 80 AC 86 A6 23D1 : 80 85 14 84 15 A9 02 A0 91 23D9 : 02 20 DA 80 A9 03 A0 03 ED 23E1 : 20 43 9E A9 74 A0 48 20 2D 23E9 : A2 BB 20 6B E2 A9 02 A0 A3 23F1 : 03 20 43 9E 20 B4 BF 00 50 23F9 : A9 03 A0 02 20 43 9E A9 76 2401 : BC A0 B9 20 A2 BB A9 01 30 2409 : A0 01 20 43 9E A9 4D 8D 22 2411 : 0C 48 AD 85 80 AC 86 80 E6 2419 : 4C B4 8D C9 59 F0 03 4C 1E 2421 : 00 C0 AD 87 80 AC 88 80 6E 2429 : 20 39 CF 00 20 70 C0 A9 B6 2431 : 74 A0 48 85 49 84 4A 20 DA 2439 : D0 BB 20 64 E2 AD 87 80 36 2441 : AC 88 80 85 14 84 15 A9 0F 2449 : 01 A0 01 20 DA 80 A9 03 3D 2451 : A0 03 20 43 9E A9 74 A0 2E 2459 : 48 20 A2 BB 20 6B E2 A9 0E 2461 : 03 A0 01 20 43 9E 20 B4 0C 2469 : BF 00 A9 01 A0 03 20 43 DC 2471 : 9E A9 BC A0 B9 20 A2 BB C6 2479 : A9 02 A0 02 20 43 9E A9 76 2481 : 4D 8D 0C 48 AD 87 80 AC 13 2489 : 88 80 4C B4 8D CF BC C9 D9 2491 : 5A F0 03 4C 88 93 AD 89 9D 2499 : 80 AC 8A 80 20 39 CF 00 2D 24A1 : 20 70 C0 A9 74 A0 48 85 D7 24A9 : 49 84 4A 20 D0 BB 20 64 FF 24B1 : E2 AD 89 80 AC 8A 80 85 08 24B9 : 14 84 15 A9 01 A0 01 20 E3 24C1 : DA 80 A9 02 A0 02 20 43 A7 24C9 : 9E A9 74 A0 48 20 A2 BB F4 24D1 : 20 6B E2 A9 01 A0 02 20 F2 24D9 : 43 9E 20 B4 BF 00 A9 02 B1 24E1 : A0 01 20 43 9E A9 BC A0 DE 24E9 : B9 20 A2 BB A9 03 A0 03 0E 24F1 : 20 43 9E A9 4D 8D 0C 48 92 24F9 : AD 89 80 AC 8A 80 4C B4 68 2501 : 8D 20 73 00 C9 28 F0 03 23 2509 : 4C 1E 8F AD 0B 48 48 A9 65 2511 : 53 8D 0B 48 20 20 8B 20 68 2519 : A2 BB 68 8D 0B 48 60 A9 2C 2521 : 01 8D C6 49 AD 23 4A AC 3A 2529 : 24 4A 8D 1F 48 8C 20 48 B4 2531 : 20 4D 8F 8D 21 48 8C 22 58 2539 : 48 AD 0C 48 C9 56 F0 03 7D 2541 : 4C 1E 8F 20 79 00 C9 2C 9B 2549 : D0 F6 AD 21 48 AC 22 48 27 2551 : 85 14 84 15 A9 01 A0 00 C9 2559 : 20 D0 80 A9 C9 A0 49 85 08 2561 : 49 84 4A 20 D0 BB A9 02 19 2569 : A0 00 20 31 9E 20 B4 BF 75 2571 : 00 A9 CE A0 49 85 49 84 FC 2579 : 4A 20 D0 BB A9 03 A0 00 B4 2581 : 20 31 9E A9 D3 A0 49 85 89 2589 : 49 84 4A 20 D0 BB EE 24 9A 2591 : 4A AD 23 4A AC 24 4A 8D F4 2599 : 1F 48 8C 20 48 20 4D 8F DD 25A1 : 8D 2F 48 8C 30 48 A9 00 55 25A9 : 8D C6 49 AD 0C 48 C9 56 78 25B1 : F0 03 4C AF C0 AD 2F 48 F3 25B9 : AC 30 48 85 14 84 15 A9 4D 25C1 : 01 A0 00 20 D0 80 A9 D8 80 25C9 : A0 49 85 49 84 4A 20 D0 55 25D1 : BB A9 02 A0 00 20 31 9E F9 25D9 : 20 B4 BF 00 A9 DD A0 49 E2 25E1 : 85 49 84 4A 20 D0 BB A9 40 25E9 : 03 A0 00 20 31 9E A9 E2 B5 25F1 : A0 49 85 49 84 4A 20 D0 7D 25F9 : BB A9 D3 A0 49 20 A2 BB 29 2601 : A9 5C A0 80 20 5B BC 10 00 2609 : 17 A9 E2 A0 49 20 A2 BB 59 2611 : A9 5C A0 80 20 5B BC 10 10 2619 : 01 60 20 59 CB 4C A0 C1 A3 2621 : A9 E2 A0 49 20 A2 BB A9 E6 2629 : 5C A0 80 20 5B BC 10 03 DB 2631 : 20 3A CC A9 D3 A0 49 20 7E 2639 : A2 BB A9 57 A0 80 20 67 6B 2641 : B8 A5 61 D0 07 A9 75 A0 13 2649 : 80 20 A2 BB A9 57 A0 80 D2 2651 : 20 0F BB A9 E7 A0 49 85 D0 2659 : 49 84 4A 20 D0 BB A9 E2 D2 2661 : A0 49 20 A2 BB A9 57 A0 AA 2669 : 80 20 67 B8 A5 61 D0 07 A1 2671 : A9 75 A0 80 20 A2 BB A9 66 2679 : 57 A0 80 20 0F BB A9 EC 94 2681 : A0 49 85 49 84 4A 20 D0 0D 2689 : BB A9 C9 A0 49 20 A2 BB 37 2691 : A9 E7 A0 49 20 28 BA A9 01 2699 : C9 A0 49 85 49 84 4A 20 D7 26A1 : D0 BB A9 CE A0 49 20 A2 AD 26A9 : BB A9 E7 A0 49 20 28 BA F2 26B1 : A9 CE A0 49 85 49 84 4A 5C 26B9 : 20 D0 BB A9 D8 A0 49 20 5D 26C1 : A2 BB A9 EC A0 49 20 28 6E 26C9 : BA A9 D8 A0 49 85 49 84 91 26D1 : 4A 20 D0 BB A9 DD A0 49 75 26D9 : 20 A2 BB A9 EC A0 49 20 A8 26E1 : 28 BA A9 DD A0 49 85 49 89 26E9 : 84 4A 20 D0 BB A9 00 8D D9 26F1 : 19 4A 8D 1A 4A A9 CE A0 44 26F9 : 49 20 A2 BB A9 DD A0 49 11 2701 : 20 50 B8 A9 F6 A0 49 85 51 2709 : 49 84 4A 20 D0 BB A9 C9 50 2711 : A0 49 20 A2 BB A9 D8 A0 60 2719 : 49 20 50 B8 A9 F1 A0 49 DD 2721 : 85 49 84 4A 20 D0 BB A5 78 2729 : 61 D0 07 A9 75 A0 80 20 88 2731 : A2 BB A9 F6 A0 49 20 0F ED 2739 : BB A5 61 D0 07 A9 75 A0 0E 2741 : 80 20 A2 BB A9 00 A0 4A A3 2749 : 85 49 84 4A 20 D0 BB A9 A8 2751 : C9 A0 49 20 A2 BB 46 66 AF 2759 : A9 66 A0 80 20 5B BC 30 9E 2761 : 3F EE 19 4A A9 C9 A0 49 A5 2769 : 20 A2 BB 20 39 BC A9 66 BA 2771 : A0 80 20 28 BA A9 C9 A0 C0 2779 : 49 85 49 84 4A 20 D0 BB C8 2781 : A9 D8 A0 49 20 50 B8 A9 A2 2789 : 00 A0 4A 20 28 BA A9 DD 2B 2791 : A0 49 20 50 B8 A9 CE A0 3D 2799 : 49 85 49 84 4A 20 D0 BB E8 27A1 : A9 CE A0 49 20 A2 BB 46 95 27A9 : 66 A9 61 A0 80 20 5B BC 40 27B1 : 30 51 EE 1A 4A A9 CE A0 F7 27B9 : 49 20 A2 BB 20 39 BC A9 44 27C1 : 61 A0 80 20 28 BA A9 CE 33 27C9 : A0 49 85 49 84 4A 20 D0 55 27D1 : BB A9 DD A0 49 20 50 B8 35 27D9 : A9 0F A0 4A 85 49 84 4A C4 27E1 : 20 D0 BB A9 00 A0 4A 20 FC 27E9 : A2 BB A9 0F A0 4A 20 0F B0 27F1 : BB A9 D8 A0 49 20 50 B8 13 27F9 : A9 C9 A0 49 85 49 84 4A 21 2801 : 20 D0 BB A9 D8 A0 49 20 A5 2809 : A2 BB 46 66 A9 66 A0 80 39 2811 : 20 5B BC 4C 00 C8 CF 7C 16 2819 : BF FF 20 BF FF 20 BF FF D8 2821 : 20 BF FF 20 30 6C AD 19 74 2829 : 4A F0 2B A9 C9 A0 49 20 F2 2831 : A2 BB 20 39 BC A9 14 A0 8B 2839 : 4A 85 49 84 4A 20 D0 BB 89 2841 : A9 D8 A0 49 20 A2 BB 20 EE 2849 : 39 BC A9 14 A0 4A 20 28 FA 2851 : BA A5 66 30 01 60 A9 D8 E9 2859 : A0 49 20 A2 BB 20 39 BC 15 2861 : A9 66 A0 80 20 28 BA A9 F7 2869 : D8 A0 49 85 49 84 4A 20 B6 2871 : D0 BB A9 C9 A0 49 20 50 38 2879 : B8 A9 00 A0 4A 20 28 BA D6 2881 : A9 CE A0 49 20 50 B8 A9 9D 2889 : DD A0 49 85 49 84 4A 20 DB 2891 : D0 BB A9 DD A0 49 20 A2 7F 2899 : BB 46 66 A9 61 A0 80 20 A3 28A1 : 5B BC 10 03 4C 0C C9 AD 66 28A9 : 1A 4A F0 2B A9 CE A0 49 B0 28B1 : 20 A2 BB 20 39 BC A9 14 5D 28B9 : A0 4A 85 49 84 4A 20 D0 C6 28C1 : BB A9 DD A0 49 20 A2 BB 74 28C9 : 20 39 BC A9 14 A0 4A 20 9A 28D1 : 28 BA A5 66 30 01 60 A9 6C 28D9 : DD A0 49 20 A2 BB 20 39 58 28E1 : BC A9 61 A0 80 20 28 BA FD 28E9 : A9 DD A0 49 85 49 84 4A 1B 28F1 : 20 D0 BB A9 CE A0 49 20 F5 28F9 : 50 B8 A5 61 D0 07 A9 75 12 2901 : A0 80 20 A2 BB A9 0F A0 C4 2909 : 4A 85 49 84 4A 20 D0 BB 59 2911 : A9 00 A0 4A 20 A2 BB A9 85 2919 : 0F A0 4A 20 0F BB A9 C9 18 2921 : A0 49 20 50 B8 A9 D8 A0 F5 2929 : 49 85 49 84 4A 20 D0 BB 78 2931 : A9 C9 A0 49 20 A2 BB 46 A3 2939 : 66 A9 70 A0 80 20 5B BC 94 2941 : 30 01 60 A9 D8 A0 49 20 37 2949 : A2 BB 46 66 A9 70 A0 80 C9 2951 : 20 5B BC 30 01 60 A9 CE AB 2959 : A0 49 20 A2 BB 46 66 A9 D5 2961 : 6B A0 80 20 5B BC 30 01 9F 2969 : 60 A9 DD A0 49 20 A2 BB C1 2971 : 46 66 A9 6B A0 80 20 5B 07 2979 : BC 30 01 60 A9 C9 A0 49 98 2981 : 20 A2 BB 20 9B BC A5 65 E6 2989 : A4 64 18 69 A0 8D 1B 4A 0A 2991 : 90 01 C8 8C 1C 4A A9 D8 D2 2999 : A0 49 20 A2 BB 20 9B BC DF 29A1 : A5 65 A4 64 18 69 A0 8D 19 29A9 : 1F 4A 90 01 C8 8C 20 4A 38 29B1 : A9 CE A0 49 20 A2 BB 20 59 29B9 : 9B BC A5 65 A4 64 18 69 69 29C1 : 50 8D 1D 4A 90 01 C8 8C B6 29C9 : 1E 4A A9 DD A0 49 20 A2 4C 29D1 : BB 20 9B BC A5 65 A4 64 FC 29D9 : 18 69 50 8D 21 4A 90 01 14 29E1 : C8 8C 22 4A AC 1D 4A C0 20 29E9 : C8 B0 10 AD 1B 4A AE 1C BA 29F1 : 4A F0 0B E0 01 D0 04 C9 CC 29F9 : 40 90 03 4C 48 B2 8C 41 9B 2A01 : 81 8D 3F 81 8E 40 81 85 45 2A09 : 14 86 15 98 4A 4A 4A AA 2E 2A11 : BD 19 81 85 AD 8A 29 03 46 2A19 : AA BD 33 81 85 AC 98 29 11 2A21 : 07 18 65 AC 85 AC A5 14 A0 2A29 : 29 F8 85 63 AD 44 81 05 A9 2A31 : AD 85 AD 18 A5 AC 65 63 2B 2A39 : 85 AC A5 AD 65 15 85 AD A4 2A41 : A5 14 29 07 49 07 AA BD 0F 2A49 : 37 81 85 AB A0 00 08 78 33 2A51 : A5 01 85 FD 29 FC 85 01 2A 2A59 : A5 AB 11 AC 91 AC A5 FD BF 2A61 : 85 01 58 28 A4 6F AC 21 3D 2A69 : 4A C0 C8 B0 10 AD 1F 4A DB 2A71 : AE 20 4A F0 0B E0 01 D0 3D 2A79 : 04 C9 40 90 03 4C 48 B2 9D 2A81 : 48 AD 40 81 4A AD 3F 81 F2 2A89 : 6A 4A 4A 85 6F 68 48 38 27 2A91 : ED 3F 81 48 8A ED 40 81 A3 2A99 : 85 6C B0 0A 68 49 FF 69 65 2AA1 : 01 48 A9 00 E5 6C 85 6A DD 2AA9 : 85 6E 68 85 69 85 6D 68 79 2AB1 : 8D 3F 81 8E 40 81 98 18 B3 2AB9 : ED 41 81 90 04 49 FF 69 17 2AC1 : FE 85 6B 8C 41 81 66 6C 81 2AC9 : 38 E5 69 AA A9 FF E5 6A AA 2AD1 : 85 70 A4 6F B0 2C 0A 10 5A 2AD9 : 16 06 AB 90 0E 26 AB A5 FB 2AE1 : AC 88 38 E9 08 85 AC B0 DD 2AE9 : 02 C6 AD D0 14 F0 12 46 71 2AF1 : AB 90 0E 66 AB A5 AC C8 61 2AF9 : 18 69 08 85 AC 90 02 E6 9E 2B01 : AD 38 A5 6D 65 6B 85 6D 84 2B09 : A5 6E E9 00 85 6E 84 6F 1C 2B11 : A0 00 08 78 A5 01 85 FD 37 2B19 : 29 FC 85 01 A5 AB 11 AC 97 2B21 : 91 AC A5 FD 85 01 58 28 43 2B29 : A4 6F E8 D0 06 E6 70 D0 D4 2B31 : 02 F0 49 A5 6C B0 9F 30 DD 2B39 : 1B A5 AC 29 07 F0 05 18 B3 2B41 : A9 FF 90 04 A9 C7 C6 AD DE 2B49 : 65 AC 85 AC A5 AD E9 00 6B 2B51 : 85 AD 50 1B A5 AC 29 07 97 2B59 : C9 07 F0 05 38 A9 00 B0 B5 2B61 : 04 A9 38 E6 AD 65 AC 85 E8 2B69 : AC A9 00 65 AD 85 AD 18 84 2B71 : A5 6D 65 69 85 6D A5 6E 8B 2B79 : 65 6A 50 90 60 A9 C9 A0 F5 2B81 : 49 20 A2 BB A9 D8 A0 49 71 2B89 : 20 50 B8 A9 F1 A0 49 85 89 2B91 : 49 84 4A 20 D0 BB A9 CE E2 2B99 : A0 49 20 A2 BB A9 DD A0 FC 2BA1 : 49 20 50 B8 A9 F6 A0 49 8D 2BA9 : 85 49 84 4A 20 D0 BB A9 08 2BB1 : D3 A0 49 20 A2 BB A9 E2 9F 2BB9 : A0 49 20 50 B8 A5 61 D0 F0 2BC1 : 07 A9 75 A0 80 20 A2 BB 19 2BC9 : A9 FB A0 49 85 49 84 4A 0A 2BD1 : 20 D0 BB A9 F1 A0 49 20 07 2BD9 : 0F BB A9 05 A0 4A 85 49 D6 2BE1 : 84 4A 20 D0 BB A9 FB A0 E7 2BE9 : 49 20 A2 BB A9 F6 A0 49 CA 2BF1 : 20 0F BB A9 0A A0 4A 85 97 2BF9 : 49 84 4A 20 D0 BB A9 5C 65 2C01 : A0 80 20 A2 BB A9 D3 A0 D7 2C09 : 49 85 49 84 4A 20 D0 BB 58 2C11 : A9 D3 A0 49 20 A2 BB A9 4E 2C19 : E2 A0 49 20 50 B8 A9 0A 27 2C21 : A0 4A 20 28 BA A9 DD A0 A5 2C29 : 49 20 50 B8 A9 CE A0 49 D4 2C31 : 85 49 84 4A 20 D0 BB A9 90 2C39 : D3 A0 49 20 A2 BB A9 E2 27 2C41 : A0 49 20 50 B8 A9 05 A0 C6 2C49 : 4A 20 28 BA A9 D8 A0 49 7B 2C51 : 20 50 B8 A9 C9 A0 49 85 CE 2C59 : 49 84 4A 4C D0 BB A9 C9 26 2C61 : A0 49 20 A2 BB A9 D8 A0 B0 2C69 : 49 20 50 B8 A9 F1 A0 49 2D 2C71 : 85 49 84 4A 20 D0 BB A9 D0 2C79 : CE A0 49 20 A2 BB A9 DD 58 2C81 : A0 49 20 50 B8 A9 F6 A0 CE 2C89 : 49 85 49 84 4A 20 D0 BB D8 2C91 : A9 D3 A0 49 20 A2 BB A9 CE 2C99 : E2 A0 49 20 50 B8 A5 61 46 2CA1 : D0 07 A9 75 A0 80 20 A2 E2 2CA9 : BB A9 FB A0 49 85 49 84 3B 2CB1 : 4A 20 D0 BB A9 F1 A0 49 F6 2CB9 : 20 0F BB A9 05 A0 4A 85 0E 2CC1 : 49 84 4A 20 D0 BB A9 FB 6C 2CC9 : A0 49 20 A2 BB A9 F6 A0 90 2CD1 : 49 20 0F BB A9 0A A0 4A 68 2CD9 : 85 49 84 4A 20 D0 BB A9 38 2CE1 : 5C A0 80 20 A2 BB A9 E2 26 2CE9 : A0 49 85 49 84 4A 20 D0 75 2CF1 : BB A9 D3 A0 49 20 A2 BB 21 2CF9 : A9 E2 A0 49 20 50 B8 A9 1F 2D01 : 0A A0 4A 20 28 BA A9 CE 8F 2D09 : A0 49 20 67 B8 A9 DD A0 D4 2D11 : 49 85 49 84 4A 20 D0 BB 60 2D19 : A9 D3 A0 49 20 A2 BB A9 56 2D21 : E2 A0 49 20 50 B8 A9 05 25 2D29 : A0 4A 20 28 BA A9 C9 A0 5D 2D31 : 49 20 67 B8 A9 D8 A0 49 F2 2D39 : 85 49 84 4A 4C D0 BB A9 5B 2D41 : 01 8D C6 49 AD 23 4A AC 5A 2D49 : 24 4A 8D 1F 48 8C 20 48 D4 2D51 : 20 4D 8F 8D 21 48 8C 22 78 2D59 : 48 A9 00 8D C6 49 AD 0C AD 2D61 : 48 C9 56 F0 03 4C 1E 8F 6C 2D69 : AD 21 48 AC 22 48 85 14 F1 2D71 : 84 15 A9 03 A0 00 20 D0 77 2D79 : 80 A9 57 A0 80 20 67 B8 D0 2D81 : A5 61 D0 07 A9 75 A0 80 B6 2D89 : 20 A2 BB A5 66 10 01 60 4A 2D91 : A9 57 A0 80 20 0F BB A9 DB 2D99 : E7 A0 49 85 49 84 4A 20 F5 2DA1 : D0 BB A9 01 A0 00 20 31 C6 2DA9 : 9E A9 E7 A0 49 20 28 BA D5 2DB1 : A9 C9 A0 49 85 49 84 4A D9 2DB9 : 20 D0 BB A9 02 A0 00 20 CB 2DC1 : 31 9E A9 E7 A0 49 20 28 CE 2DC9 : BA 20 B4 BF 00 A9 CE A0 82 2DD1 : 49 85 49 84 4A 20 D0 BB 20 2DD9 : A9 C9 A0 49 20 A2 BB 46 4B 2DE1 : 66 A9 70 A0 80 20 5B BC 3C 2DE9 : 30 03 4C 95 CE A9 CE A0 17 2DF1 : 49 20 A2 BB 46 66 A9 6B 7F 2DF9 : A0 80 20 5B BC 30 03 4C 3F 2E01 : 95 CE A9 C9 A0 49 20 A2 BB 2E09 : BB A9 70 A0 80 20 67 B8 E1 2E11 : 20 9B BC A5 64 A4 65 8D FF 2E19 : 1C 4A 8C 1B 4A A9 CE A0 4F 2E21 : 49 20 A2 BB A9 6B A0 80 14 2E29 : 20 67 B8 20 9B BC A5 64 2E 2E31 : A4 65 8D 1E 4A 8C 1D 4A C1 2E39 : AC 1D 4A C0 C8 B0 10 AD CC 2E41 : 1B 4A AE 1C 4A F0 0B E0 CB 2E49 : 01 D0 04 C9 40 90 03 4C 1A 2E51 : 48 B2 8C 41 81 8D 3F 81 C2 2E59 : 8E 40 81 85 14 86 15 98 13 2E61 : 4A 4A 4A AA BD 19 81 85 6E 2E69 : AD 8A 29 03 AA BD 33 81 6E 2E71 : 85 AC 98 29 07 18 65 AC B8 2E79 : 85 AC A5 14 29 F8 85 63 77 2E81 : AD 44 81 05 AD 85 AD 18 3F 2E89 : A5 AC 65 63 85 AC A5 AD FA 2E91 : 65 15 85 AD A5 14 29 07 46 2E99 : 49 07 AA BD 37 81 85 AB B5 2EA1 : A0 00 08 78 A5 01 85 FD C7 2EA9 : 29 FC 85 01 A5 AB 11 AC 27 2EB1 : 91 AC A5 FD 85 01 58 28 D3 2EB9 : A4 6F 60 AD 44 81 85 FE 47 2EC1 : A0 00 84 FD A2 20 98 91 F3 2EC9 : FD C8 D0 FB E6 FE E6 6B B7 2ED1 : CA D0 F4 A2 02 AD 46 81 3E 2ED9 : 85 FE A0 00 84 FD 84 97 7F 2EE1 : AD 8B 80 91 FD C8 C4 97 0E 2EE9 : D0 F9 E6 FE CA F0 04 10 B4 2EF1 : F2 30 0D 48 A9 F8 85 97 EF 2EF9 : 09 80 AA 68 D0 E5 F0 E3 C2 2F01 : 20 73 00 D0 FB 60 AD 15 99 2F09 : 03 C9 81 F0 03 20 E8 80 45 2F11 : 20 73 00 F0 48 AE 00 DD BF 2F19 : C9 32 D0 07 8A 09 03 A0 4F 2F21 : 20 D0 28 C9 36 D0 09 8A 10 2F29 : 29 FC 09 02 A0 60 D0 1B D9 2F31 : C9 41 D0 09 8A 29 FC 09 E8 2F39 : 01 A0 A0 D0 0E C9 45 F0 F3 2F41 : 05 A2 11 4C 3C 82 8A 29 BA 2F49 : FC A0 E0 8C 44 81 8D 00 E5 2F51 : DD 98 38 E9 1C 8D 46 81 10 2F59 : 20 73 00 D0 FB 60 85 14 4E 2F61 : 84 15 20 0F 88 A9 01 85 3F 2F69 : 8B A9 01 85 8C A5 8B A4 27 2F71 : 8C 20 43 9E A6 8C E6 8C 35 2F79 : E4 8D D0 F1 A6 8B E6 8B 10 2F81 : E4 8D D0 E5 60 AD 21 48 A5 2F89 : AC 22 48 8D 64 49 8C 65 98 2F91 : 49 20 79 89 AE 0C 48 E0 A8 2F99 : 53 F0 03 4C 88 93 8E 0B 24 2FA1 : 48 AD 64 49 AC 65 49 20 5D 2FA9 : A2 BB AD 72 49 AC 73 49 3D 2FB1 : 20 78 BF 00 AD 64 49 AC 7A 2FB9 : 65 49 85 49 84 4A 4C D0 BB 2FC1 : BB CF FF CF FF CF FF CF 7C 2FC9 : FF CF FF CF FF CF FF CF C8 2FD1 : FF CF FF CF FF CF FF CF D0 2FD9 : FF CF FF CF FF CF FF CF D8 2FE1 : FF CF FF 4F
1 rem r i n g 10 bt_=[0,0,-300]:ra_=[-80,0,0]:ri_=[-20,0,0]:dx=~/12:ps=~/6:m#=@#y(ps)*@#x(-ps) 20 e_=[0,10,100]:graf2:gosub30:graf6:gosub30:grafa:gosub30:grafe:gosub30:goto100 30 clea:fori=uto2*~stepdx:v#=@#y(i):ve#=@#y(i+dx) 40 forj=0to2*~stepps:w#=@#z(j):we#=@#z(j+ps) 50 x_=(ra_+ri_*w#)*v#*m#+e_:y_=(ra_+ri_*w#)*ve#*m#+e_:z_=(ra_+ri_*we#)*v#*m#+e_ 60 w_=(ra_+ri_*we#)*ve#*m#+e_ 80 f=(y_-x_)x(z_-x_)*(x_-bt_):iff<0then95 90 linex_,y_:linex_,z_:liney_,w_:linez_,w_ 95 next:next:u=u+dx/4:return 100 gosub110:graf2:gosub110:graf6:gosub110:grafa:gosub110:grafe:goto100 110 fori=0to28:next:return
1 REM R I N G 10 BT←=[0,0,-300]:RA←=[-80,0,0]:RI←=[-20,0,0]:DX=π/12:PS=π/6:M#=@#Y(PS)*@#X(-PS) 20 E←=[0,10,100]:GRAF2:GOSUB 30:GRAF6:GOSUB 30:GRAFA:GOSUB 30:GRAFE:GOSUB 30:GOTO 100 30 CLEA:FOR I=U TO2*πSTEP DX:V#=@#Y(I):VE#=@#Y(I+DX) 40 FOR J=0 TO2*πSTEP PS:W#=@#Z(J):WE#=@#Z(J+PS) 50 X←=(RA←+RI←*W#)*V#*M#+E←:Y←=(RA←+RI←*W#)*VE#*M#+E←:Z←=(RA←+RI←*WE#)*V#*M#+E← 60 W←=(RA←+RI←*WE#)*VE#*M#+E← 80 F=(Y←-X←)X(Z←-X←)*(X←-BT←):IF F<0 THEN95 90 LINEX←,Y←:LINEX←,Z←:LINEY←,W←:LINEZ←,W← 95 NEXT :NEXT :U=U+DX/4:RETURN 100 GOSUB 110:GRAF2:GOSUB 110:GRAF6:GOSUB 110:GRAFA:GOSUB 110:GRAFE:GOTO 100 110 FOR I=0 TO28:NEXT :RETURN
1 rem g l o b u s 5 ps=~/18:a_=[700,0,0]:r#=@#z(~/9)*@#x(-~/3):rem a_=radius,r#=lage 10 o_=[0,0,-700]:q_=o_*1.5:e_=[100,-450,1200]:rem o_,q_=achse,e_=postion mitpkt 15 bt_=[0,0,-300]:rem pos d betrachters 20 graf2:gosub30:graf6:gosub30:grafa:gosub30:grafe:gosub30:goto100:rem 4 zchngn 30 clear:r#=r#*@#z(ps/4):rem gedreht 35 lineq_*r#+e_,o_*r#+e_:rem achse 40 fori=-~/2+1e-7to0stepps:forj=0to6.2stepps:rem laengen- und breiteneinteilung 50 u#=@#y(i):v#=@#z(j):un#=@#y(i+ps):vn#=@#z(j+ps):rem fuer vier punkte 60 x_=a_*u#*v#*r#+e_:y_=a_*un#*v#*r#+e_:z_=a_*u#*vn#*r#+e_:k_=a_*un#*vn#*r#+e_ 70 f=((y_-x_)x(z_-x_))*(x_-bt_):iff>0then90:rem unsichtbar 80 linex_,y_:linex_,z_:liney_,k_:linez_,k_ 90 next:next:return 100 graf2:gosub110:grafe:gosub110:grafa:gosub110:graf6:gosub111:goto100: film 110 fori=0to33:next:return 111 fori=0to29:next:return
1 REM G L O B U S 5 PS=π/18:A←=[700,0,0]:R#=@#Z(π/9)*@#X(-π/3):REM A←=RADIUS,R#=LAGE 10 O←=[0,0,-700]:Q←=O←*1.5:E←=[100,-450,1200]:REM O←,Q←=ACHSE,E←=POSTION MITPKT 15 BT←=[0,0,-300]:REM POS D BETRACHTERS 20 GRAF2:GOSUB 30:GRAF6:GOSUB 30:GRAFA:GOSUB 30:GRAFE:GOSUB 30:GOTO 100:REM 4 ZCHNGN 30 CLEAR:R#=R#*@#Z(PS/4):REM GEDREHT 35 LINEQ←*R#+E←,O←*R#+E←:REM ACHSE 40 FOR I=-π/2+1E-7 TO0STEP PS:FOR J=0 TO6.2STEP PS:REM LAENGEN- UND BREITENEINTEILUNG 50 U#=@#Y(I):V#=@#Z(J):UN#=@#Y(I+PS):VN#=@#Z(J+PS):REM FUER VIER PUNKTE 60 X←=A←*U#*V#*R#+E←:Y←=A←*UN#*V#*R#+E←:Z←=A←*U#*VN#*R#+E←:K←=A←*UN#*VN#*R#+E← 70 F=((Y←-X←)X(Z←-X←))*(X←-BT←):IF F>0 THEN90:REM UNSICHTBAR 80 LINEX←,Y←:LINEX←,Z←:LINEY←,K←:LINEZ←,K← 90 NEXT :NEXT :RETURN 100 GRAF2:GOSUB 110:GRAFE:GOSUB 110:GRAFA:GOSUB 110:GRAF6:GOSUB 111:GOTO 100: FILM 110 FOR I=0 TO33:NEXT :RETURN 111 FOR I=0 TO29:NEXT :RETURN
1 rem a l l e e 2 rt#=@#z(~/8):rd_=[0,60,0]:r_=rd_ 4 l_=[0,0,8030]:st_=[-260,0,0]:sh_=[0,180,0]:sd_=2*st_ 5 dl_=[0,0,160]:rt_=[-81.5,-82,0]:ru_=[-78.5,-82,0] 10 rs_=[-80,-82,0]:rv_=[-162,0,0] 20 e_=[0,0,1e20]:graf2:gosub30:graf6:gosub30:grafa:gosub30:grafe:gosub30:goto40: 25 horizont und strassenraender 30 clea:linerv_,-rv_:liners_+rv_,rs_+rv_+e_:liners_-rv_,rs_-rv_+e_:return 40 rt_=rt_+l_:rs_=rs_+l_:ru_=ru_+l_:fori=0to12 50 graf2:gosub60:graf6:gosub60:grafa:gosub60:grafe:gosub60:next:goto100 : 55 mittellinie und baeume 60 rs_=rs_-dl_:rt_=rt_-dl_:ru_=ru_-dl_:liners_,rs_+1.3*dl_:linert_,rt_+1.3*dl_ 70 lineru_,ru_+1.3*dl_ 76 liners_+st_,rs_+st_+sh_:liners_-st_,rs_-st_+sh_ 80 x_=rs_-st_+sh_+rd_:gosub90:return 90 fork=0to15:rf_=r_:r_=r_*rt#:linerf_+x_,r_+x_:linerf_+x_+sd_,r_+x_+sd_:next:return 95 film 100 gosub111:graf2:gosub110:graf6:gosub110:grafa:gosub110:grafe:goto100 110 fori=0to46:next:return 111 fori=0to42:next:return
1 REM A L L E E 2 RT#=@#Z(π/8):RD←=[0,60,0]:R←=RD← 4 L←=[0,0,8030]:ST←=[-260,0,0]:SH←=[0,180,0]:SD←=2*ST← 5 DL←=[0,0,160]:RT←=[-81.5,-82,0]:RU←=[-78.5,-82,0] 10 RS←=[-80,-82,0]:RV←=[-162,0,0] 20 E←=[0,0,1E20]:GRAF2:GOSUB 30:GRAF6:GOSUB 30:GRAFA:GOSUB 30:GRAFE:GOSUB 30:GOTO 40: 25 HOR IZON T UND STRASSENRAEND ER 30 CLEA:LINERV←,-RV←:LINERS←+RV←,RS←+RV←+E←:LINERS←-RV←,RS←-RV←+E←:RETURN 40 RT←=RT←+L←:RS←=RS←+L←:RU←=RU←+L←:FOR I=0 TO12 50 GRAF2:GOSUB 60:GRAF6:GOSUB 60:GRAFA:GOSUB 60:GRAFE:GOSUB 60:NEXT :GOTO 100 : 55 MITTELLINIE UND BAEUME 60 RS←=RS←-DL←:RT←=RT←-DL←:RU←=RU←-DL←:LINERS←,RS←+1.3*DL←:LINERT←,RT←+1.3*DL← 70 LINERU←,RU←+1.3*DL← 76 LINERS←+ST←,RS←+ST←+SH←:LINERS←-ST←,RS←-ST←+SH← 80 X←=RS←-ST←+SH←+RD←:GOSUB 90:RETURN 90 FOR K=0 TO15:RF←=R←:R←=R←*RT#:LINERF←+X←,R←+X←:LINERF←+X←+SD←,R←+X←+SD←:NEXT :RETURN 95 FILM 100 GOSUB 111:GRAF2:GOSUB 110:GRAF6:GOSUB 110:GRAFA:GOSUB 110:GRAFE:GOTO 100 110 FOR I=0 TO46:NEXT :RETURN 111 FOR I=0 TO42:NEXT :RETURN