Schneller geht's kaum
Dieses Mal haben wir für Sie ein neues Spitzen-Betriebssystem für den C 64. Ohne zusätzlichen Hardware-Aufwand ist der eingebaute Schnellader für die 1541/70/71 das Schnellste, was wir bisher in den Händen hatten. Aber Exos V3 kann noch viel mehr...

Hypra-Load stellte 1984 einen neuen Geschwindigkeitsrekord in der Arbeit mit dem Diskettenlaufwerk 1541 auf. Hier wurden Ladezeiten erreicht, die bis zum sechsfachen der Originalgeschwindigkeit betrugen.
Unser neues System, Exos V3, leistet noch sehr viel mehr. Es kann Programme bis zu 14mal schneller von einer Diskette laden, enthält eine eingebaute RAM-Floppy, mehrere nützliche Befehle zum bequemen Arbeiten mit dem Bildschirmeditor des Commodore-Basic und einen Zusatzspeicher, der das Umschalten zwischen mehreren Bildschirmseiten ermöglicht.
Die Besonderheiten von Exos V3 sind damit aber noch lange nicht aufgezählt. Interessant an dem Beschleuniger ist nämlich, daß keinerlei Parallelkabel zwischen den Computer und das Diskettenlaufwerk geschaltet werden muß. Das neue System arbeitet, wie Hypra-Load, über den seriellen Bus und erreicht Geschwindigkeiten, die sogar gängige Floppy-Speeder mit Parallelkabel übertreffen. Ihre ganze Arbeit besteht im Einsetzen eines EPROMs im Computer. Sie benötigen keinerlei zusätzliche Hardware und gehen somit auch keinerlei Risiko bei dem sehr empfindlichen Diskettenlaufwerk ein. Ein Aufschrauben der Floppy-Station entfällt.
Haben Sie keine Floppy 1541, so brauchen Sie auf die Arbeit mit Exos V3 nicht zu verzichten. Es funktioniert auch mit der 1570 und der 1571 einwandfrei.
Haben Sie bei bestimmten Programmen Ärger mit dem Laden, so können Sie den Schnellader und auch die Zusatzfunktionen des Systems stufenweise zurück-, beziehungsweise ausschalten. Hiermit wird eine gute Kompatibilität zu käuflicher Software erreicht.
Die Redaktion war überzeugt: Exos V3 hat es verdient, Listing des Monats zu werden.
Eine Bemerkung noch am Schluß: Da die eingebauten RAM-Floppies des Exos V3 den RAM-Bereich unter dem Betriebssystem verwenden, sollten Sie sich das neue System auf jeden Fall in ein EPROM brennen. Für den C 64 benötigen Sie dabei ein EPROM vom Typ 2764 (mit Adaptersockel). Der C 128 benötigt ein EPROM 27128, da hier zusätzlich der Basic-Interpreter im EPROM integriert werden muß. In der Anleitung zum Programm (im Listing-Teil) werden die nötigen Schritte zum Programmieren des EPROMs genau beschrieben.
(J. Schemmel/ks)Schneller geht's kaum
Exos V3 ist der schnellste serielle Floppy-Speeder, der bisher bekannt ist. Ihnen steht aber neben 14mal schneller laden noch ein sehr leistungsfähiges Betriebssystem mit vielen Erweiterungen zur Verfügung.
Nach dem Abtippen des MSE-Listings (Listing 1) haben Sie ein Maschinenprogramm mit einer Basic-Zeile vor sich. Speichern Sie dieses erst einmal sicherheitshalber auf Diskette ab. Als nächstes vergewissern Sie sich, daß Sie das Originalbetriebssystem des C 64 (oder C 128 im C 64-Modus) eingeschaltet haben. Jetzt können Sie das Programm mit RUN starten. Nach kurzer Zeit meldet sich der Computer mit READY zurück. Ab Adresse $2000 (8192) bis $3FFF (16383) liegt nun das neue Betriebssystem im Speicher. Sie können es mit einem Monitor (zum Beispiel SMON: S"EXOS V3",2000,4000) speichern. Die nächsten Schritte hängen von Ihrem EPROM-Brenner ab. Belegt er den Speicherbereich von $2000 bis $4000 nicht, können Sie das EPROM direkt programmieren. Ansonsten müssen Sie das neue Betriebssystem entweder speichern und mit Hilfe der Software des EPROM-Programmiergeräts wieder laden, oder Sie verschieben es mit einem Monitor in einen, von Ihrem EPROM-Programmiergerät unbenutzten Bereich. Achtung! Ohne Adressenumrechnung verschieben!
Das EPROM (für den C 64 ein 2764, für den C 128 ein 27128) mit Exos V3 kann in jede Betriebssystem-Umschaltplatine oder in einen Adaptersockel gesteckt werden. Der Bau eines Adaptersockels wurde im 64'er schon mehrmals beschrieben (Ausgabe 3/1986, Seite 63).
Jetzt können Sie Ihren Computer einschalten. Hat der Einbau geklappt, meldet sich Ihr C 64 mit einer neuen Einschaltmeldung und hellgrauer Schrift auf schwarzem Grund. Aufgrund der schnellen Reset-Routine muß die Einschaltmeldung sofort nach dem Einschalten erscheinen.
Um Ihr neues Betriebssystem auch voll nutzen zu können, sollten Sie die folgende Anleitung gut durchlesen. Die Kurzanleitung in Tabellenform ist nur zum schnellen Nachschlagen gedacht.
Der Schnellader beschleunigt die LOAD-Routine Ihres Computers um den Faktor 12 bis 14. Dieser variiert mit den Spuren auf der Diskette, auf denen sich das Programm befindet. Programme auf den äußeren Spuren, also den Spuren mit den niedrigen Spurnummern, werden schneller geladen als solche auf den inneren Spuren (höhere Spurnummern). Allerdings handelt es sich hier nur um eine Differenz von etwa 20 Prozent. Ein 200 Blöcke langes Programm wird in knapp zwölf Sekunden geladen, wenn es auf den äußeren Spuren liegt. Befindet es sich dagegen ganz innen auf der Diskette, dauert der Ladevorgang etwa 14,5 Sekunden. Um diese Ladegeschwindigkeit zu erreichen, ist keinerlei Umkopieren oder Umformatieren der Diskette notwendig.
Während des Ladevorgangs ist der Bildschirm abgeschaltet. Der Ladevorgang kann trotzdem jederzeit durch Drücken der <RUN/STOP>-Taste unterbrochen werden. Während des Ladens ist die Tastaturabfrage noch aktiv. Alle gedrückten Tasten werden in den Tastaturpuffer übernommen. Sie können also während des Ladevorgangs RUN oder LIST eingeben. Der Befehl wird dann nach Beendigung des Ladens ausgeführt.
Da der Schnellader auf größtmögliche Kompatibilität ausgelegt wurde, kann er die meisten Programme, auch mehrteilige, einwandfrei laden. Kein Schnellader kann aber hundertprozentig kompatibel sein. Sollte es also Probleme geben, so kann man Exos V3 auch abschalten. Doch dazu später mehr.
Das Directory wird ohne Programmverlust, das heißt direkt in den Bildschirmspeicher, geladen. Der Befehl dafür lautet LOAD"$",8. Im Programmodus wird das Directory automatisch wieder normal geladen, um die Kompatibilität zum Original-Betriebssystem zu gewährleisten.
Die Funktionstasten wurden mit häufig gebrauchten Befehlen belegt. Die genaue Belegung finden Sie in der Kurzanleitung (Tabelle 1).
| Befehl | Funktion |
|---|---|
| <CTRL+K> | Fehlerkanal des Diskettenlaufwerks anzeigen |
| <CTRL+O> | OLD-Funktion |
| <CTRL+U> | RAM unter dem Basic-ROM SAVEn |
| <CTRL+S> | Basic-Programm in die RAM-Floppy übertragen |
| <CTRL+L> | Basic-Programm aus der RAM-Floppy zurückholen |
| <CTRL+V> | Basic-Programm und Inhalt der RAM-Floppy vertauschen |
| <CTRL+F> | IRQ-Frequenz der Floppy-Station erhöhen |
| <CTRL+X> | Basic-Programm ab aktueller Stelle LISTen |
| <CTRL+Z> | Basic-Programm 50 Zeilen vor der aktuellen Stelle LISTen |
| <CBM+F1> und <CBM+F3> | Zwischenspeichern von Bildschirminhalten in die Zusatzspeicher |
| <CBM+F5> und <CBM+F7> | Zurückholen von Bildschirminhalten aus den Zusatzspeichern |
| <CTRL+A> | Schnellader abschalten |
<CTRL+K> zeigt den Floppy-Fehlerkanal auf dem Bildschirm an. <CTRL+O> holt ein versehentlich durch NEW oder RESET gelöschtes Basic-Programm zurück (OLD). Es ist danach wieder vollkommen LIST- und editierfähig. Die OLD-Routine richtet sich beim Zurückholen nach der aktuellen Startadresse des Basic-Speichers. Somit können auch Programme, die mit verschobenem Basic-Anfang arbeiten, zurückgeholt werden.
<CTRL+U> erlaubt das SAVEn des RAMs unter dem Basic-ROM. Das hört sich etwas unverständlich an, hat aber folgenden Grund: Hat man ein Programm im Speicher, das länger als 151 Blöcke auf der Diskette ist, liegt sein Ende in dem RAM unter dem Basic-ROM. Man erkennt dies daran, daß der Computer einen »OUT OF MEMORY ERROR« ausgibt, falls man versucht, ein weiteres Programm zu laden. Diese Fehlermeldung trifft auch zu, denn die Endadresse des geladenen Programms ist größer als die Endadresse des Basic-Speichers. Will man dieses Programm nun mit dem SAVE-Befehl abspeichern, entsteht folgendes Problem: Hinter dem Basic-Speicher folgt das Basic-ROM. Unter dem Basic-ROM liegt allerdings auch ein RAM-Bereich. Dieses RAM kann allerdings von Basic aus nur beschrieben werden. Beim Lesen erhält man immer Werte aus dem Basic-ROM. Dies kann man sehr leicht nachprüfen. Gibt man POKE 45000,2 ein und danach PRINT PEEK(45000), so erhält man eine Zahl ungleich 2 zurück. Doch jetzt wieder zurück zu unserem Programm. Sein Ende liegt also im RAM unter dem Basic-ROM. Speichert man es nun mit der SAVE-Routine ab, liest diese die Programm-Bytes genauso wie der PEEK-Befehl aus dem Speicher des Computers. Es werden also die Werte aus dem Basic-ROM gelesen und auf die Diskette gespeichert. Das Ende des Programmes unter dem Basic-ROM fehlt nun auf der Diskette.
Durch Druck auf <CTRL+U> kann die Save-Routine unter Exos V3 so umgeschaltet werden, daß sie auch das RAM unter dem Basic-ROM richtig abspeichert. Nach Druck auf <CTRL+U> können jetzt auch Programme, die länger als 151 Blöcke sind, mit SAVE abgespeichert werden. Durch <RUN/STOP> und <RESTORE> wird diese Funktion wieder abgeschaltet.
Die RAM-Floppy des Exos V3 ist zwar keine vollwertige RAM-Floppy, wie man sie üblicherweise auf größeren Computer-Systemen findet, sie erlaubt aber eine sinnvolle Nutzung der 24 KByte Speicher, die in einem C 64 unter Basic normalerweise keinerlei Funktion haben.
Mit der RAM-Floppy können Basic-Programme in vier verschiedene RAM-Bereiche gespeichert und daraus wieder geladen werden. Die Bereiche eins bis drei können gleichzeitig verwendet werden, während bei einer Benutzung des vierten Bereichs die ersten drei Bereiche nicht mehr verwendet werden dürfen.
Es können sich also maximal vier Basic-Programme gleichzeitig im Speicher befinden.
Die Bedienung der RAM-Floppy geschieht wieder über <CTRL>-Tastenkombinationen. Mit <CTRL+S> wird ein Basic-Programm in die RAM-Floppy übertragen. Mit <CTRL+L> wird ein Programm aus der RAM-Floppy in den Basic-Speicher geladen, und mit <CTRL+V> wird das aktuelle Basic-Programm mit dem aus der RAM-Floppy vertauscht. Die beiden letzten Befehle führen automatisch ein OLD aus, um alle Adressen des Interpreters an das geladene Basic-Programm anzupassen.
Die Auswahl des gewünschten RAM-Floppy-Bereichs geschieht über ein kleines Menü, das bei den obigen <CTRL>-Kombinationen erscheint:
(0) 20K B0-FF
(1) 4K B0-BF
(2) 4K C0-CF
(3) 12K D0-FF
Einfach die entsprechende Zifferntaste drücken, und die Funktion wird mit dem gewählten Bereich ausgeführt. Drückt man eine andere Taste, so wird die RAM-Floppy-Funktion abgebrochen. <CTRL+F> erhöht die IRQ-Frequenz der Floppy-Station. Das bewirkt, daß der Schreib-Lese-Kopf des Laufwerks schneller bewegt wird. In der Praxis bedeutet dies, daß alle Disketten-Befehle, die viele Kopfbewegungen ausführen, schneller werden, zum Beispiel: S(cratch), V(alidate) und so weiter.
<CTRL+X> LISTet ein Basic-Programm ab der zuletzt bearbeiteten Zeile auf. Wenn Sie zum Beispiel beim AufLISTen eines Basic-Programms einen Fehler entdecken, mit <RUN/STOP> anhalten und den Fehler verbessern, können Sie das Programm mit <CTRL+X> ab der korrigierten Zeile weiter aufLISTen, ohne einen Befehl eingeben zu müssen. Nicht immer läßt sich jedoch die Adresse der zuletzt bearbeiteten Zeile rekonstruieren. In diesem Fall LISTet <CTRL+X> das Programm von Anfang an. In sehr seltenen Fällen kann es auch vorkommen, daß das Betriebssystem die falsche Adresse nicht erkennt und Unsinn geLISTet wird. <CTRL+Z> arbeitet genauso wie <CTRL+X>, lediglich wird hier 50 Zeilen vor der zuletzt bearbeiteten Zeile mit dem LISTen angefangen.
Das Betriebssystem Exos V3 verwaltet insgesamt vier verschiedene Bildschirmspeicher. Sie liegen von $A000 bis $AFFF (40960 bis 45055) unter dem Basic-ROM. Mit <CTRL> und einer der vier Funktionstasten (<F1>, <F3>, <F5> und <F7>) kann man den Bildschirminhalt mit einem der vier Zusatzspeicher vertauschen und so wichtige Ergebnisse oder Programmteile immer schnell griffbereit haben.
Mit <CBM+F1> oder <CBM+F3> kann der Bildschirminhalt in den dritten oder vierten Zusatzspeicher gespeichert werden, ohne daß dabei sein Inhalt verändert wird. <CBM+F5> oder <CBM+F7> sind jeweils die Umkehrfunktionen dazu. Mit ihnen wird der Inhalt des entsprechenden Zwischenspeichers in den normalen Bildschirmspeicher kopiert, ohne daß der Inhalt des Zwischenspeichers verändert wird.
<CTRL+A> schaltet den Schnellader ab. Es wird danach wieder mit der Original LOAD-Routine geladen.
Mit <RUN/STOP+RESTORE> wird er wieder eingeschaltet. Diese Funktion gestattet es auch, Programme zu laden, die mit dem Schnellader nicht laufen würden.
Der Reset wurde durch Weglassen des meistens überflüssigen RAM-Tests stark beschleunigt. Er dauert jetzt nur noch Bruchteile von Sekunden.
Trotzdem wird auch weiterhin geprüft, ob ein EPROM im Modulbereich (ab $8000) eingeschaltet ist, und danach das Basic-Speicherende entsprechend herabgesetzt. Ohne Modul sind also, wie immer, 38911 Basic-Bytes frei, mit Modul nur noch 30719.
Statt der normalen »LOADING« Meldung der Laderoutine wird jetzt »LOADING TO ADR« ausgegeben, wobei mit »ADR« die Adresse gemeint ist, an die das Programm geladen wird. Bei Basic-Programmen ist das normalerweise 2049.
Das Bildschirmscrollen kann jetzt nicht nur mit <CTRL> verlangsamt sondern mit <CBM> auch ganz gestoppt werden.
Mit <SHIFT+RUN/STOP> wird das erste Programm von Diskette geladen und gestartet.
Ein eventueller Reset-Schutz wird durch gleichzeitiges Drücken von <CTRL> und eines Reset-Tasters ignoriert
Bei der Eingabe von LOAD oder SAVE muß man keine Geräteadresse angeben. Es wird dann automatisch mit der Geräteadresse 8 und der Sekundäradresse 1 (,8,1) geladen. So, jetzt fehlt nur noch eine Abschaltmöglichkeit für all die neuen Funktionen, damit das gesamte System möglichst kompatibel bleibt.
Zum Abschalten benötigt das Betriebssystem eine Speicherstelle, in der es nachschauen kann, ob eine Funktion ein- oder ausgeschaltet ist. Dazu wurde die Speicherstelle Null gewählt.
Da zwei Bit dieser Speicherstelle unbenutzt sind, wurden sie für unsere Funktion eingesetzt. Bit 6 ist für den Schnellader zuständig, während Bit 7 die Funktionstasten, die <CTRL>-Kombinationen und das Directory-Laden übernimmt.
Ist das entsprechende Bit gelöscht, ist die zugehörige Funktion eingeschaltet, hat das Bit den Wert 1, ist sie folgerichtig aus.
Um Bit 6 (Schnellader) brauchen Sie sich nicht zu kümmern, <CTRL+A> erledigt dies für sie.
Für Bit 7 reicht ein
POKE 0, PEEK(0) OR 128
Wenn Sie alles auch wieder einschalten wollen, genügt ein Druck auf <RUN/STOP+RESTORE>.
(J. Schemmel/ks)PROGRAMM : EXOS-LISTING 0801 1178 ----------------------------------- 0801 : 0D 08 C2 07 9E 32 30 36 4C 0809 : 31 00 00 00 A9 00 85 59 9E 0811 : 85 57 A9 E0 85 58 A9 20 CA 0819 : 85 5A A9 6D 85 5B A9 08 CD 0821 : 85 5C A0 00 B1 57 91 59 CB 0829 : C8 D0 F9 E6 5A E6 58 D0 94 0831 : F3 A0 00 B1 5B 85 59 C8 83 0839 : B1 5B F0 2F 38 E9 C0 85 9B 0841 : 5A C8 B1 5B A8 85 FC 18 B2 0849 : A5 5B 69 03 85 5B A5 5C D9 0851 : 69 00 85 5C 88 B1 5B 91 4E 0859 : 59 98 D0 F8 18 A5 5B 65 38 0861 : FC 85 5B A5 5C 69 00 85 C7 0869 : 5C 90 C6 60 DA E1 01 08 9C 0871 : DC E1 01 01 7C E4 19 20 32 0879 : 43 36 34 20 49 4D 50 52 CD 0881 : 4F 56 45 44 20 42 59 20 8F 0889 : 45 58 4F 53 20 56 33 20 FA 0891 : 9B E4 03 20 42 59 9F E4 9A 0899 : 08 4A 2E 53 43 48 45 4D E2 08A1 : 4D A8 E4 01 4C 35 E5 01 A4 08A9 : 0F E8 E5 02 C9 FB EE E5 EA 08B1 : 03 20 EB F0 F4 E5 02 FF 64 08B9 : F0 35 E9 03 20 B8 FC 4C 73 08C1 : E9 01 20 15 EA 01 01 1D CB 08C9 : EB 01 03 06 EC 04 E3 E0 F7 08D1 : E1 E2 7B EC 04 E7 E4 E5 7F 08D9 : E6 D9 EC 02 00 00 BB EE F4 08E1 : 29 78 84 01 A6 5C B1 5D 56 08E9 : 91 5F C8 D0 F9 E6 5E E6 94 08F1 : 60 CA D0 F2 A9 37 85 01 B5 08F9 : 58 60 78 84 01 A6 5C B1 4A 0901 : 5D 48 B1 5F 91 5D 68 91 A3 0909 : 5F C8 E5 EE 74 F3 E6 5E 63 0911 : E6 60 CA D0 EC A9 37 85 F8 0919 : 01 58 60 C9 E4 90 14 C9 4E 0921 : E8 B0 3D 38 E9 E4 0A 0A BA 0929 : 18 69 A0 85 60 20 2B EF 62 0931 : 4C A2 FC C9 E0 90 29 20 BE 0939 : 2B EF AA BD 47 EE E0 E2 F3 0941 : B0 04 85 60 D0 06 85 5E 71 0949 : A9 04 85 60 4C 94 FC A8 10 0951 : AC A8 AC A0 00 84 5D 84 33 0959 : 5F A2 04 86 5E 86 5C 60 28 0961 : C9 16 D0 09 20 72 EF 20 20 0969 : A2 FC 4C 6A EF C9 17 D0 35 0971 : 06 20 72 EF 4C 94 FC C9 13 0979 : 0C 18 D0 3C 20 72 EF A5 EE 0981 : 5D 5A EF 5A 5F 85 5F 86 FF 0989 : 5D A5 5E A6 60 85 60 86 E6 0991 : 5E 20 94 FC A9 0F 8D 77 FC 0999 : 02 E6 C6 60 A9 00 85 5F 3B 09A1 : A5 2B A6 2C 85 5D 86 5E 25 09A9 : A2 FF E8 BD AA EF 20 D2 8D 09B1 : FF D0 F7 20 42 F1 F0 FB 8A 09B9 : C9 30 90 60 C9 34 B0 5C 84 09C1 : 20 D2 FF AA A9 0D 20 D2 C9 09C9 : FF BD BA EF 85 5C BD BE 03 09D1 : EF 85 60 60 0D 3C 12 30 02 09D9 : 92 3E 20 32 30 4B B5 EF ED 09E1 : 97 42 30 2D 46 46 0D 3C 8E 09E9 : 12 31 92 3E 20 34 4B 20 11 09F1 : 42 30 2D 42 46 0D 3C 12 C1 09F9 : 32 92 3E 20 34 4B 20 43 AD 0A01 : 30 2D 43 46 0D 3C 12 33 C3 0A09 : 92 3E 20 31 32 4B 20 44 6F 0A11 : 30 2D 46 46 0D 00 50 10 64 0A19 : 10 30 B0 B0 C0 D0 C9 18 6D 0A21 : D0 06 20 34 F0 4C C3 A6 51 0A29 : C9 1A D0 41 20 34 F0 A2 08 0A31 : 32 C6 60 A0 FD B1 5F F0 BF 0A39 : 03 88 D0 F9 C8 84 5E 18 4E 0A41 : A5 5F 65 5E 85 5F A5 60 66 0A49 : 69 00 85 60 C5 2C F0 06 AD 0A51 : CA D0 DE 4C C3 A6 A5 2B 23 0A59 : 85 5F A5 2C 85 60 D0 F3 03 0A61 : C6 60 A0 FF B1 5F 08 E6 83 0A69 : 60 28 D0 EA 60 C9 06 D0 7D 0A71 : 03 4C 32 F7 AA 68 68 8A CA 0A79 : 4D F0 55 20 20 20 8A 53 6C 0A81 : D9 34 30 39 36 2A 31 32 85 0A89 : 9D 00 9D 85 93 4C C9 00 01 0A91 : 0D 86 52 55 4E 3A 00 0D F1 0A99 : 8C 43 4C CF 37 3A 4F D0 F8 0AA1 : 37 2C 38 2C 31 35 2C 22 34 0AA9 : 22 00 14 87 4C 4F 41 44 8E 0AB1 : 22 22 00 14 8B 53 41 56 6C 0AB9 : 45 22 22 00 14 89 53 D9 27 0AC1 : 33 32 37 36 38 00 0D 88 6B 0AC9 : 93 4C CF 22 24 22 2C 38 2F 0AD1 : A3 F0 01 0D D9 F0 17 4C E8 0AD9 : CF 22 3A 2A 22 2C 38 2C 4A 0AE1 : 31 3A 58 20 08 F9 4C 28 1B 0AE9 : F5 A2 00 BD D8 F0 F1 F0 A6 0AF1 : 15 D2 FF E8 E0 0C D0 F5 2A 0AF9 : A2 06 78 60 EA FF FF FF 77 0B01 : 0D 52 55 4E 3A 0D 87 F3 69 0B09 : 01 08 89 F3 02 90 F3 09 76 0B11 : F4 3D 60 20 20 F4 D0 03 B3 0B19 : A9 FF 60 4C 02 FD EA 20 5F 0B21 : 20 F4 D0 F7 68 68 4C 66 B6 0B29 : FE A2 00 8E 03 DC CA 8E AA 0B31 : 02 DC A9 7F 8D 00 DC AD A3 0B39 : 01 DC C9 FB 60 A5 00 29 20 0B41 : 3F 85 00 6C 00 A0 A5 00 6C 0B49 : 29 3F 85 00 6C 02 A0 B7 3C 0B51 : F4 01 F7 C9 F4 02 2C F7 FD 0B59 : FA F4 02 4A F7 50 F5 06 7D 0B61 : EA EA EA A9 02 60 DB F5 2F 0B69 : 02 9A FB F9 F5 01 F7 2C 96 0B71 : F7 3E 20 32 F7 4C D5 F3 F7 0B79 : A5 BA 20 0C ED A9 FF 20 71 0B81 : B9 ED A0 06 B9 E3 F8 20 F9 0B89 : DD ED 88 10 F7 4C FE ED 3B 0B91 : 24 00 50 03 4C E1 FF A0 3F 0B99 : 00 B1 BB C9 24 D0 09 A5 D2 0BA1 : 9D C9 80 D0 EF 4C 1E FB 2F 0BA9 : 68 68 A9 EA 85 5D A9 F8 E9 0BB1 : 6B F7 51 5E A9 00 85 5F A7 0BB9 : A9 04 85 60 A9 0F 85 B6 68 0BC1 : A5 BA 20 0C ED A9 FF 20 B9 0BC9 : B9 ED A0 02 B9 DA F8 20 78 0BD1 : DD ED 88 10 F7 A5 5F 20 33 0BD9 : DD ED A5 60 20 DD ED A9 1E 0BE1 : 23 20 DD ED A0 00 B1 5D D5 0BE9 : 20 DD ED C8 C0 23 D0 F6 E3 0BF1 : 20 FE ED 18 A5 5D 69 23 40 0BF9 : 85 5D A5 5E 69 00 85 5E CB 0C01 : A5 5F 69 23 BD F7 1A 5F D7 0C09 : A5 60 69 00 85 60 C6 B6 1D 0C11 : D0 B0 A5 BA 20 0C ED A9 67 0C19 : FF 20 B9 ED A0 00 B9 DD 01 0C21 : F8 D8 F7 31 DD ED C8 C0 9B 0C29 : 05 D0 F5 20 FE ED 78 AD B4 0C31 : 00 DD 85 5A AD 11 D0 29 C5 0C39 : EF 8D 11 D0 38 A5 AE E9 8C 0C41 : 02 85 58 A5 AF E9 00 85 26 0C49 : 59 20 87 EA A4 C6 F0 0D 50 0C51 : B9 76 02 C9 03 0A F8 14 8C 0C59 : 06 20 A3 F8 4C 36 F6 2C 22 0C61 : 00 DD 30 12 70 06 20 A3 9D 0C69 : F8 4C 04 F7 1F F8 36 A3 61 0C71 : F8 A9 40 85 90 4C A9 F5 FD 0C79 : 70 E7 A9 20 8D 00 DD 2C F4 0C81 : 00 DD 50 FB A9 00 8D 00 D4 0C89 : DD 85 B5 20 B1 F8 A9 FE 22 0C91 : 85 A4 A5 5F 85 95 0A 85 F6 0C99 : B4 26 B5 18 A5 5F 65 59 6E 0CA1 : AA 38 A5 58 E5 57 F8 94 02 0CA9 : 5B 8A E5 B5 85 5C A6 5E 0C 0CB1 : F0 0F CA 86 A4 8A 18 65 76 0CB9 : 5B 85 AE A5 5C 69 00 85 53 0CC1 : AF A0 00 A5 95 F0 04 A5 B1 0CC9 : 5D 91 5B C8 84 B6 20 B1 C1 0CD1 : F8 A4 B6 A2 03 C4 A4 B0 68 0CD9 : 0C A5 95 D0 04 C0 01 F0 63 0CE1 : 04 B5 5D 91 5B C8 C0 FE 46 0CE9 : B0 07 CA 10 E8 84 B6 D0 01 0CF1 : DD 4C FD F7 A5 5A 8D 00 D6 0CF9 : DD AD 11 D0 09 10 8D 11 75 0D01 : D0 60 2C 00 DD 70 FB A0 9F 0D09 : 03 EA A6 01 AD 00 DD 4A 32 0D11 : 4A EA EA 0D 00 DD 4A 4A D9 0D19 : EA EA 0D 00 DD 4A 4A EA EB 0D21 : EA 0D 00 DD 99 5D 00 88 E3 0D29 : 10 E2 60 57 2D 4D 4D 2D 7A 0D31 : 45 00 04 20 0F 01 1C 07 F3 0D39 : 57 2D 4D A5 EC F8 2D 85 85 0D41 : 06 A5 19 85 07 A9 00 85 DA 0D49 : FB 8D 00 18 A9 4C 8D 00 41 0D51 : 03 A9 3B 8D 01 03 A9 04 80 0D59 : 8D 02 03 A9 E0 85 00 A5 63 0D61 : 00 30 FC C9 02 90 E5 C9 C1 0D69 : 08 D0 04 A9 1A F9 3F D0 20 0D71 : 02 A9 0A 8D 00 18 78 4C B7 0D79 : 22 EB A5 43 85 FA 20 9B 4A 0D81 : 05 20 56 F5 50 FE B8 AD 26 0D89 : 01 1C 91 30 C8 C0 05 D0 4B 0D91 : F3 A0 00 20 E8 F7 A6 F9 B5 0D99 : A5 53 95 CF A5 54 95 BA 10 0DA1 : A9 FF 95 E4 C6 FA D0 D6 81 0DA9 : A9 01 85 FC A6 07 5A F9 D4 0DB1 : 64 FB 95 E4 E6 FB B5 CF D9 0DB9 : F0 0C C5 06 D0 08 E6 FC C4 0DC1 : B5 BA AA 4C 6F 04 C9 24 8E 0DC9 : 90 05 A9 0F 4C 98 05 85 D1 0DD1 : 06 B5 BA 85 07 20 9B 05 FB 0DD9 : A6 F9 A9 FF D5 E4 F0 F5 1A 0DE1 : 20 56 F5 50 FE B8 AD 01 22 0DE9 : 1C 91 30 C8 D0 F5 A0 BA A8 0DF1 : 50 FE B8 AD 01 1C 99 00 FB 0DF9 : 01 C8 D0 F4 20 E8 F7 A5 A5 0E01 : 53 F0 04 A9 00 85 54 A6 CD 0E09 : F9 B5 E4 85 53 A9 FF 95 74 0E11 : E4 A9 00 85 34 BF F9 3B 1A 0E19 : FA 20 D0 F6 A9 41 85 36 5D 0E21 : A9 08 8D 00 18 A0 00 A2 FE 0E29 : 00 AD 00 18 4A B0 09 88 62 0E31 : D0 F7 CA D0 F4 4C 96 05 E0 0E39 : A0 00 8C 00 18 A4 FA B1 F2 0E41 : 30 4A 4A 4A 85 5C B1 30 D5 0E49 : 29 07 85 5D C8 D0 06 A0 6F 0E51 : BA A9 01 FB F9 5E 31 B1 5A 0E59 : 30 0A 26 5D 0A 26 5D 4A 9F 0E61 : 4A 4A 85 5A B1 30 4A C8 D4 0E69 : B1 30 2A 2A 2A 2A 2A 29 F1 0E71 : 1F 85 5B B1 30 29 0F 85 F3 0E79 : 58 C8 B1 30 0A 26 58 4A 70 0E81 : 4A 4A 85 59 B1 30 0A 0A 56 0E89 : 0A 29 18 85 56 C8 D0 06 DA 0E91 : A0 BA A9 01 85 31 B1 30 22 0E99 : 2A 2A 2A 2A 29 07 05 56 34 0EA1 : 85 56 B1 30 29 1F 85 57 14 0EA9 : C8 84 FA A0 08 8C 00 18 9B 0EB1 : B6 55 BD C4 5A FA 55 8D 08 0EB9 : 00 18 BD DC 05 B6 54 8D 43 0EC1 : 00 18 88 D0 EF C6 36 F0 F9 0EC9 : 03 4C F7 04 8C 00 18 C6 27 0ED1 : FC F0 03 4C 94 04 A5 06 9C 0ED9 : F0 03 4C 9E FD A9 08 4C 18 0EE1 : 69 F9 A9 03 85 31 A9 00 9A 0EE9 : 85 30 20 56 F5 50 FE B8 A8 0EF1 : AD 01 1C C9 52 D0 F3 C8 6C 0EF9 : 50 FE B8 AD 01 1C 91 30 44 0F01 : C8 C0 04 D0 F3 A0 02 20 D1 0F09 : 2B F8 A5 54 B0 FA 1A F9 E3 0F11 : 60 A9 0F D0 CC 00 0A 0A 2D 0F19 : 02 00 0A 0A 02 00 00 08 0F 0F21 : 00 00 00 08 00 00 02 08 3B 0F29 : 00 CB FA 78 02 08 00 00 3D 0F31 : 08 0A 0A 00 00 02 02 00 D9 0F39 : 00 0A 0A 00 00 02 02 00 D9 0F41 : 08 08 08 00 00 00 00 03 56 0F49 : 85 F9 60 A9 0F D0 98 EA C8 0F51 : EA EA EA EA EA EA EA EA 50 0F59 : EA EA EA EA EA EA EA EA 58 0F61 : EA EA EA EA EA EA EA EA 60 0F69 : EA EA EA EA EA EA EA EA 68 0F71 : EA EA EA EA EA EA EA EA 70 0F79 : EA EA EA EA EA EA EA 68 73 0F81 : 68 A9 00 85 B4 A9 0D 20 7C 0F89 : D2 FF EA A9 00 85 90 A0 FA 0F91 : 02 84 A9 20 13 EE 85 AA 58 0F99 : 20 E1 FF D0 03 4C 33 F6 11 0FA1 : A4 90 D0 2F 44 FB 27 13 8E 0FA9 : EE A4 90 D0 28 A4 A9 88 87 0FB1 : D0 E1 A6 AA 20 CD BD A9 2B 0FB9 : 20 20 D2 FF 20 13 EE A6 41 0FC1 : 90 D0 12 AA F0 06 20 7A 48 0FC9 : FB 4C 59 FB A9 0D 6C FB 6D 0FD1 : 02 D2 FF 6F FB 1C 02 D0 74 0FD9 : BE 20 42 F6 A6 2D A4 2E D9 0FE1 : 60 20 D2 FF C9 22 D0 F8 E9 0FE9 : A5 B4 49 FF 85 B4 D0 F0 5E 0FF1 : A9 3A 8C FB 02 D2 FF 97 40 0FF9 : FB 57 00 00 60 C0 59 D0 B3 1001 : 03 4C 2B F1 A0 49 20 2B 5E 1009 : F1 24 9D 10 1A A5 01 29 9B 1011 : 07 C9 07 D0 12 A2 FC BD 7E 1019 : C9 FA 20 D2 FF E8 D0 F7 3C 1021 : A5 AF A6 AE 20 CD BD 60 45 1029 : 20 54 4F 20 20 B4 E5 A6 D8 1031 : 00 30 2F A6 D8 D0 2B A6 F8 1039 : D4 D0 27 A6 9D F0 23 C9 95 1041 : 85 90 20 C9 8D B0 1C 85 29 1049 : 3C A2 FF E8 BD 4E F0 C5 91 1051 : 3C EF FB 29 F8 E8 BD 4E 13 1059 : F0 F0 05 20 16 E7 90 F5 D6 1061 : E8 BD 4E F0 60 20 06 FC F3 1069 : A9 00 60 C9 0F D0 34 A5 F7 1071 : 2B A4 2C 85 22 84 23 A0 BE 1079 : 03 C8 B1 22 D0 19 FC 06 67 1081 : C8 98 18 65 22 A0 20 FC EA 1089 : 5E 91 2B A5 23 69 00 C8 3E 1091 : 91 2B 20 33 A5 A5 22 69 09 1099 : 02 85 2D A5 23 69 00 85 E6 10A1 : 2E 20 63 A6 4C 7B E3 C9 51 10A9 : 15 D0 17 A9 4D A0 FC 8D 0A 10B1 : 32 03 8C 33 03 60 A9 36 35 10B9 : 85 01 20 ED F5 A9 37 85 19 10C1 : 01 60 C9 01 D0 07 A5 00 61 10C9 : 09 40 85 00 60 C9 0B D0 76 10D1 : 29 A9 06 A2 08 A0 0F 20 A7 10D9 : BA FF A9 00 20 BD FF 20 2D 10E1 : C0 FF A2 06 20 C6 FF 7F 41 10E9 : FC 09 CF FF 20 D2 FF 24 3E 10F1 : 90 50 F6 89 FC 3A CC FF 6D 10F9 : A9 06 20 C3 FF 60 4C F3 42 1101 : EE A0 20 B9 BA EE 99 09 1A 1109 : 02 88 D0 F7 4C 0A 02 A0 E1 1111 : 20 B9 D3 EE 99 09 02 88 DB 1119 : D0 F7 4C 0A 02 F7 4C 0A 5E 1121 : 02 00 00 00 00 EE A5 02 36 1129 : AD 8D 02 29 02 D0 F9 60 92 1131 : E8 FC 02 0A F4 FF FC 03 A2 1139 : 4C 34 F4 68 FD 24 AD FF A1 1141 : 9F A2 FF 8E FF 9F EC FF B4 1149 : 9F D0 10 E8 8E FF 9F EC B3 1151 : FF 9F D0 07 8D FF 9F A0 CD 1159 : A0 D0 07 8D FF 9F A0 80 55 1161 : A2 00 57 FE 02 16 F4 6F 3C 1169 : FE 03 4C 3D F4 00 FF 01 F5 1171 : DF 00 00 00 00 00 00 A9