C 64
Listing des Monats

HI-EDDI: ein fantastisches Zeichen- und Malprogramm

HI-EDDI ist ein High-Resolution-Grafik-Editor, der vieles bietet, was man bei teuren, kommerziellen Programmen vergeblich sucht. Sehen Sie sich die Bilder an und Sie bekommen einen Eindruck von seinen Fähigkeiten.

Es lassen sich nicht nur Bilder zeichnen, sondern auch technische Zeichnungen realisieren. Text kann ebenso eingefügt werden wie Sprites und selbstdefinierte Zeichensätze.

Hier eine Aufstellung der herausragenden Eigenschaften:

Natürlich ist klar, daß sowas nur in Maschinensprache geht, und die ist mit rund 4700 DATAs nicht gerade kurz. Gemessen an den Möglichkeiten des Programms ist es allerdings auch nicht viel. Die Bilder auf diesen Seiten lassen die Vielfältigkeit von HI-EDDI nur ahnen. Dabei lassen sich nicht nur mit HI-EDDI erzeugte Bilder laden und bearbeiten, sondern auch Grafikbilder anderer Programme, wie von Koala oder Paint Magic, zum Beispiel die der Dia-Show.

(Hans Haberl/gk)
Solche oder auch ganz andere Menüs können Sie sich selbst erstellen. Auf der Diskette zu dieser Ausgabe finden Sie diese und noch andere Beispiele.
Wenn Sie dieses Bild sechsmal im Speicher ablegen (mit wenigen Tasten möglich) und in jedem Bild die Stellung der Kolben ändern, kann mit dem Walk-Befehl ein Zeichentrickfilm-ähnlicher Effekt erzielt werden (zirka sieben Bilder pro Sekunde).

Wie mächtig HI-EDDI ist, können Sie aus der umfangreichen Funktionsbeschreibung ersehen. Es kann sogar mit den »professionellen« Programmen verglichen werden, auf jeden Fall ist es das beste Grafikprogramm zum Abtippen.

Nach dem Start meldet sich HI-EDDI mit der Frage »Betriebsart«. Wird hier 0 eingegeben (oder einfach RETURN), wird HI-EDDI als »Schwarzweiß«-Programm betrieben, bei 128 dagegen als farbiges Malprogramm. Weitere mögliche Eingaben werden später behandelt, ebenso die Befehlseingabe mittels Menütafel. Zunächst werden alle Befehle, die im folgenden zusammengestellt sind, durch Tastendruck eingegeben.

D Draw — »Freihändig« zeichnen

Im Draw-Modus kann mit dem kreuzförmigen Cursor (der wird mit einem Joystick in Port 2 gesteuert) »freihändig« gezeichnet werden. Bei gedrücktem Feuerknopf werden die überfahrenen Punkte gesetzt. Um Punkte zu löschen, muß zusätzlich die SHIFT-Taste (oder SHIFT-LOCK zum Feststellen) gedrückt werden.

L Line — Linien ziehen

Mit dem ersten Knopfdruck am Joystick wird der Anfangspunkt einer Linie festgelegt, mit dem zweiten der Endpunkt, mit dem dritten wieder ein Anfangspunkt etc.. Der jeweilige Anfangspunkt wird auf F7 gespeichert (siehe Funktionstasten), damit lassen sich Strahlen besonders einfach zeichnen. SHIFT wie bei D.

R Rectangle — Rechtecke zeichnen

Wie L — auch bezüglich SHIFT und F7 —, jedoch wird zwischen den zwei markierten Punkten ein Rechteck gezeichnet.

C Circle — Kreise zeichnen

Der erste Knopfdruck ergibt den Mittelpunkt (auf F7 gespeichert, damit ist einfaches Zeichnen konzentrischer Kreise möglich), derzweite einen beliebigen Randpunkt, von dem aus HI-EDDI im Uhrzeigersinn einen Kreis zieht. Wird beim Anstoßen an den Rand abgebrochen.

Möchte man einen Ausschnitt eines Kreises, der nicht ganz auf den Bildschirm paßt, zeichnen, so muß der zweite Knopfdruck einen Punkt am Bildschirmrand markieren, von dem aus der sichtbare Kreisausschnitt im Uhrzeigersinn gezeichnet werden kann. Allerdings darf der Radius maximal 256 Punkte betragen.

P Paint — Ausmalen begrenzter Flächen

Cursor mitten auf die auszumalende Fläche setzen und Knopf drücken. Sollte durch ein Loch in der Umrandung der ganze Bildschirm vollzulaufen drohen, so kann der Vorgang durch nochmaligen Knopfdruck abgebrochen werden (dazu ist allerdings eine gute Reaktion nötig, denn HI-EDDI füllt Flächen um einiges schneller als Simons Basic). Zum Löschen von Flächen: Bildschirm mit »I« invertieren, entstandenes »Loch« vollaufen lassen, zurückinvertieren.

M Move — Verschieben von Bildschirmbereichen

Mit den ersten beiden Knopfdrücken werden zwei diagonale Ecken des zu transportierenden Bereiches gesetzt (nach dem zweiten Knopfdruck erscheint eine farbliche Markierung dieses Bereiches), der dritte Knopfdruck gibt die linke, obere Ecke des Zielbereiches an. Der Zielbereich muß noch ganz auf den Bildschirm passen (sonst wird der Knopfdruck nicht akzeptiert), er darf jedoch den Quellbereich überlappen oder in einem anderen Bildschirm liegen. Die Auflösung des Move-Befehls entspricht der des normalen Textbildschirmes, es kann also nur im 40 x 25-Raster verschoben werden.

Soll ein Bereich mehrmals kopiert werden, so muß er nicht jedesmal neu markiert werden: Ein Druck auf die Pfeil-nach-oben-Taste holt die letzte Markierung wieder auf den Bildschirm, es kann danach sofort der Zielbereich bestimmt werden (funktioniert nur, solange zwischenzeitlich kein Moduswechsel erfolgte).

Hat man sich beim Markieren vertan, so löscht ein Druck auf die Pfeil-nach-links-Taste die Markierung wieder (gilt auch für L, R, C).

T Text — Buchstaben und Grafiksymbole einfügen

Es erscheint ein 8 x 8-Pixel großer Rahmen, der sich fast so benimmt, wie der Blinkcursor im Textbildschirm: Drucken von Buchstaben und Grafikzeichen, Cursorsteuerung mittels Cursortasten, Löschen mittels DEL (rückwärts) und INST (vorwärts, um für Text Platz zu schaffen), Reverse on/off und Umschaltung der beiden Zeichensätze mit C = SHIFT (es können alle 512 Zeichen der beiden Zeichensätze gleichzeitig dargestellt werden!).

Daneben bleibt die Cursorsteuerung mittels Joystick erhalten, ebenso alle anderen Befehle, die jedoch nur durch gleichzeitiges Drücken der CTRL-Taste eingegeben werden können. Durch Anwahl eines anderen Modus, zum Beispiel CTRL D für Draw, wird der Textmodus verlassen und es ist wieder »Ein-Hand-Eingabe« der Befehle möglich.

G Get Sprite — Sprite aus Bildschirm kopieren

In diesem und den folgenden drei Modi erscheint ein spritegroßer Rahmen als Cursor. Auf Knopfdruck wird der Bildschirmausschnitt, auf dem der Rahmen sitzt, in das Sprite hineinkopiert, anschließend geht HI-EDDI automatisch in den Append-Modus, das Sprite kann an anderer Stelle wieder eingepflanzt oder im Sprite-Editor bearbeitet werden.

A Append — Sprite in Bildschirm einfügen

Auf Knopfdruck wird der Spriteinhalt in den Bildschirm eingefügt, ohne jedoch den Bildschirmausschnitt vorher zu löschen (Oder-Verknüpfung). Bei gleichzeitiger Bewegung wird das Sprite zum »programmierbaren Pinsel«.

S Stamp — Sprite auf Bildschirm kleben

Wie A, jedoch wird vor dem Einfügen der Untergrund gelöscht, das Sprite wird wie eine Briefmarke auf den Bildschirm geklebt.

E Erase — Löschen

Der Rahmen wird zum Radiergummi, der alles löscht, was er überfährt.

F Foreground-Colourmode — Vordergrund einfärben
B Background-Colourmode — Hintergrund einfärben

Diese beiden Modus-Befehle sind nur wirksam, wenn HI-EDDI als farbiges Malprogramm betrieben wird. Doch dazu ist vorweg einiges zum Konzept zu sagen:

Im Gegensatz zu den meisten käuflichen Programmen, die im Multicolour-Modus arbeiten (mehrere Farben, aber nur halbe Auflösung), ist HI-EDDI konsequent als Zeichenprogramm mit maximaler Auflösung konzipiert. Die Farbfähigkeiten sind nur ein »Nebenprodukt« und deshalb nicht so ausgeprägt: Pro 8 x 8-Punkte-Feld (entsprechend einer Position im Textbildschirm) stehen nur zwei Farben — je eine für Vorder- und Hintergrund — zur Verfügung. Bei insgesamt 1 000 Feldern und 16 Farben kann das allerdings auch recht bunt werden. Außerdem ist es durch die Trennung von Zeichnen und Einfärben möglich, bestehende »Schwarzweiß-Bilder« leicht nachträglich zu colorieren.

Nun zu den Befehlen F und B: Sie schalten einerseits die Rahmenfarbe (und die Farbe des Sprite-Inhalts bei A und S) weiter, andererseits wählen sie den Fore- beziehungsweise Back-Mode an, in dem auf Knopfdruck die gesetzten Pixel (=Vordergrund) beziehungsweise gelöschten Pixel (= Hintergrund) des 8 x 8-Feldes, auf dem sich der Cursor befindet, mit der Rahmenfarbe eingefärbt werden. Beispiel: Um den Vordergrund gelb anzumalen, muß die Taste F so oft gedrückt werden, bis der Rahmen gelb ist. Dann kann mit dem Cursor gepinselt werden.

Hat man ein Feld zuviel angepinselt, so kann durch gleichzeitiges Drücken der SHIFT-Taste (wie bei D, L, R, C) die gerade gemalte Farbe gelöscht werden. Genauer gesagt: Es erscheint wieder die Farbe, die beim letzten Bildschirmwechsel dort war. Als Bildschirmwechsel gelten:

  1. Bildschirmspeicherwechsel (1 bis 7)
  2. Ausschalten des High-Resolution-Bildschirmes (Sprite-Editor, Befehle H, V, SHIFT W, Disk- und Druckerbefehle).
  3. Move-Befehl, auch wenn nur innerhalb eines Bildes »gemovet« wurde.

Die Pfeil-nach-links-Taste (Korrekturtaste) hat die gleiche Wirkung wie SHIFT + Knopfdruck, jedoch für den ganzen Bildschirm: Es werden alle Farbveränderungen seit dem letzten Bildschirmwechsel rückgängig gemacht.

Direkte Befehle

Alle bisher beschriebenen Befehle haben eins gemeinsam: Sie dienen zur Anwahl eines Modus, sie haben also eine »Nachwirkung«, vor allem, was die Funktion des Feuerknopfes anbelangt. Die nun folgenden Befehle ändern den gerade eingestellten Modus nicht, sie haben nur eine unmittelbare Wirkung.

1 bis 7 beziehungsweise 1 bis 6: Bildschirmspeicher-Anwahl

HI-EDDI hat im Schwarzweiß-Betrieb sieben und im Farbbetrieb sechs Bildschirmspeicher, die durch Eingabe ihrer Nummer auf den Bildschirm geholt werden.

Wozu so viele? Beispiele: Abspeichern von verschiedenen Zwischenstadien der bearbeiteten Werke, bei denen man wieder ansetzen kann, wenn man was vermurkst hat. Oder Erstellen von »Construction Sets«: Aus einer Anzahl zum Beispiel von Schaltsymbolen kann man mittels der Sprite-Befehle im Nu Schaltpläne aufbauen. Für die Befehle Print und Walk sind sieben Speicher eigentlich zuwenig, aber im C 64 haben eben nicht mehr Platz!

I Invertieren

Die Pixel des Bildschirmes werden invertiert. In Zusammenhang mit den Befehlen Und, Or, Exor, Append, Stamp, Get, Erase, Paint und Print ergibt das eine Vielzahl von Möglichkeiten.

Un Und-Verknüpfung

Der aktuelle (= sichtbare) Bildschirm und der Bildschirm Nummer n werden Und-verknüpft, das Ergebnis im aktuellen Bildschirm abgelegt.

On Oder-Verknüpfung

Wie U, jedoch Oder-Verknüpfung. Eignet sich zum Beispiel zum Duplizieren von Bildern. Da die Befehle I, U, 0, X keinen Einfluß auf die Farbinformation eines Bildes haben, wird sie bei Farb-Betrieb nicht dupliziert. Soll dies geschehen, so muß mit dem Move-Befehl dupliziert werden.

Xn Exor-(Exclusiv-Oder-)Verknüpfung

Zweimalige Exor-Verknüpfung mit demselben Bild bewirkt, daß dieses wieder aus dem sichtbaren Bild »herausgefieselt« wird.

F, B (Fore, Back) — Rahmenfarbe weiterschalten
SHIFT F Total Foreground — Vordergrund-Farbe
SHIFT B Total Background — Hintergrund-Farbe

Die Befehle F und B wurden bereits bei den Modusbefehlen behandelt. Im Schwarzweiß-Betrieb schalten diese Befehle nur die Rahmenfarbe weiter, den aktuellen Modus verändern sie nicht.

SHIFT F und SHIFT B sind dagegen in beiden Betriebsarten (farbig und schwarzweiß) gleich: Sie färben den gesamten Vorder- oder Hintergrund mit der aktuellen Rahmenfarbe ein. Sollte man auf diese Art im Farb-Betrieb versehentlich eine mühsam erstellte Colorierung löschen: Pfeil-nach-links-Taste drücken, und sie ist wieder da.

SHIFT CLR Bildschirm löschen

Die Farbinformation wird nicht gelöscht und kann somit isoliert werden.

HI-EDDI besitzt einen beschleunigenden Cursor: Er ist langsam genug, um durch Antippen des Joysticks pixelweise zu rangieren, bei größeren Entfernungen wird er jedoch — ohne lästiges Umschalten — schneller. Da jedoch die Beschleunigung manchmal unerwünscht ist, läßt sie sich durch Drücken der Minus-Taste abschalten.

F1 bis F8: Tabulatoren

Die vier Funktionstasten dienen als Speicher für vier Cursorpositionen: Durch gleichzeitiges Drücken der SHIFT-Taste und einer Funktionstaste wird die momentane Cursorposition gespeichert, durch Drücken einer Funktionstaste allein springt der Cursor wieder genau an die gespeicherte Stelle. F7 wird von den Befehlen L, R und C automatisch belegt.

H — Horizontale Schrittweite
V — Vertikale Schrittweite
F1 bis F8: Schrittweiten speichern

Noch eine Speicherfunktion haben die Funktionstasten: Normalerweise bewegt sich der Cursor in 1-Pixel-Schritten bei der Joysticksteuerung, beziehungsweise in 8-Pixel-Schritten bei Steuerung mittels Cursortasten. Diese Schrittweiten sind jedoch — getrennt für horizontale und vertikale Bewegung — frei programmierbar, vier Schrittweitenpaare können auf den Funktionstasten gespeichert werden. Das Anwählen einer Schrittweite erfolgt durch gleichzeitiges Drücken der C = (Commodore-)Taste und einer Funktionstaste (gilt nur für die Cursortastensteuerung, der Joystick holt seine Schrittweite immer aus F1), das Programmieren durch die Befehle H und V, wonach die aktuelle (angewählte) Schrittweite angezeigt wird und geändert werden kann.

Im Einschaltzustand sind die Tasten folgendermaßen belegt:

Weitere Anwendungsmöglichkeiten sind: Maßstäbe, Gitterraster, exakt symmetrische Zeichnungen etc…

Space: Sprite-Editor

Durch Drücken der Leertaste kommt man in den Sprite-Editor. Das Setzen und Löschen von Punkten geht dort genauso wie im Draw-Modus. Die Befehle des Grafik-Editors sind im Sprite-Editor nicht zugänglich, dafür stehen die folgenden zur Verfügung:

Jetzt lernen die Bilder laufen! Mit W werden die Bildschirmspeicher in schneller, programmierbarer Folge zyklisch durchgeschaltet. Da jedoch sechs Bilder für einen Bewegungsablauf recht wenig sind (Speicher 7 wird als »Leinwand« benutzt, sein Inhalt geht verloren) und außerdem die Bildfolge-Geschwindigkeit bei der Verschiebung von jedesmal 8 KByte nicht gerade hoch ist (maximal 7 Bilder/s), können die sechs Bildschirme in 24 Viertelbilder (mit je 160 x 96 Punkten, die unterste Zeile bleibt frei) zerlegt werden, die bei Maximalgeschwindigkeit in einer Sekunde »durchgerasselt« werden.

Bei der Erstellung solcher Viertelbilder ist die programmierbare Schrittweite (160/96) sowie der Move-Befehl besonders nützlich. Die Programmierung der Bildfolge geschieht durch einen Sequenz-String, der aus den Zahlen 1 bis 6 zum Aufruf der großen Bilder oder aus den Buchstaben A bis X zum Aufruf der Viertelbilder bestehen kann. Der Bildschirmspeicher 1 enthält die Viertelbilder A (links oben), B (rechts oben), C (links unten) und D (rechts unten). Das geht so weiter bis zum Speicher 6, der die Viertelbilder U, V, W, X enthält. Beispiel: Zum sequentiellen Durchschalten aller Viertelbilder besteht der Sequenzstring aus den Buchstaben A bis X in alphabetischer Reihenfolge. Zahlen und Buchstaben dürfen mehrfach und sogar gemischt vorkommen.

Mit SHIFT W gelangt man in den Sequenzstring-Editor, mit W wird die Bewegung gestartet. Während des Laufes kann die Geschwindigkeit mit der Plus- und Minus-Taste geregelt werden, bei gedrückter SHIFT-Taste läuft der Film rückwärts. Durch Druck auf den Feuerknopf wird die Vorführung beendet.

Bei Farb-Betrieb wird Bildschirm 6 als Leinwand verwendet, es stehen nur noch 5 große oder 20 kleine Bilder zur Verfügung.

Z Zeichensatz

HI-EDDI kann auch als Zeichensatz-Editor verwendet werden: Mittels Z wird der gerade angewählte Zeichensatz in die ersten sieben Zeilen des Grafikbildschirmes kopiert. Dort kann er mittels Get, Sprite-Editor und Stamp modifiziert, anschließend auf Diskette gespeichert und von anderen Programmen, zum Beispiel Textverarbeitungsprogramme, verwendet werden.

Bei LOAD und SAVE hat man die Wahl zwischen (schwarz-weißem) Grafikbild, Farbbild, Zeichensatz und Sprite. LOAD und SAVE beziehen sich immer auf den aktuellen (= sichtbaren) Bildschirmspeicher (beziehungsweise Sprite). Bei SAVE Zeichensatz muß dieser in den ersten sieben Zeilen des sichtbaren Bildschirmes stehen. Bei LOAD Sprite sollte man wirklich nur ein Sprite und nichts längeres laden, sonst gibt’s einen netten Absturz. Es können auch Diashow-Bilder und Files anderer Grafikprogramme gelesen werden.

C= P Print — Ausdrucken

Die Druckerroutine HI-PRINT wird bei Bedarf in Overlaytechnik nachgeladen, nach Beendigung des Druckvorganges wird wieder HI-EXE geladen.

Die vorliegende Druckerroutine bietet folgende Möglichkeiten:

  1. Ausdruck eines Bildes, groß oder klein.
  2. Zwei Bilder nahtlos nebeneinander, was natürlich nur in klein geht.

Superhardcopy

Vor und nach dem Ausdruck werden keine zusätzlichen Zeilenvorschübe ausgegeben, aufeinanderfolgende Ausdrucke hängen somit nahtlos aneinander (Bild 1). So läßt sich zum Beispiel mit sechs Bildern eine Superhardcopy mit 640 x 600 Punkten erstellen (Bild 2), lädt man zwischendurch weitere Bilder von Diskette nach, kann man meterlange Bilder ausdrucken.

Bild 1. In dieser Hardcopy wurden zwei Bilder untereinander ausgedruckt. Dies geschieht nahtlos. Es können zwei Bilder nebeneinader und unbegrenzt viele untereinander gesetzt werden. Siehe dazu auch Bild 2.

Leider ist Drucker nicht gleich Drucker! Die vorliegende Druckerroutine (Listing 1) läßt sich nur für Epson-Drucker und kompatible mit Interface verwenden. Deshalb möchte ich im folgenden Kapitel Hinweise zur Erstellung einer Druckerroutine für andere Konfigurationen geben.

Die Speicherbelegung von HI-EDDI

Die Speicherbelegung von HI-EDDI sieht folgendermaßen aus:

$57-$60 und $F9-$FE: Temporäre Speicherzellen
$2C0-$2FE: Residenter Datenbereich (Sprite-Inhalt)
$340-$3FE: Temporärer Datenbereich (Kreuz-, großes und kleines Rahmen-Sprite
$801-$CFF: Basic-Speicher
$D00-$1F4C: Maschinenprogramm
$1F80-$1FFF: Residenter Datenbereich (Betriebszustände etc.)
$2000, $4000, $6000 etc.: Grafikspeicher

Die Druckerroutine wird in denselben Bereich wie HI-EXE geladen, also ab $D00, nach Beendigung des Druckvorganges wird wieder HI-EXE geladen (Listing 1 und 2).

Die vorliegende Druckerroutine enthält auch ein Software-Interface, das den User-Port zur Centronics-Schnittstelle umfunktioniert. Dazu muß ein Kabel mit folgender Pinbelegung verwendet werden:

Pin am User-Port Pin am Centronics-Stecker
M (PA2) 1 (Strobe)
C (PBO) 2 (DATA 1)
D (PB1) 3 (DATA 2)
E (PB2) 4 (DATA 3)
F (PB3) 5 (DATA 4)
H (PB4) 6 (DATA 5)
J (PB5) 7 (DATA 6)
K (PB6) 8 (DATA 7)
L (PB7) 9 (DATA 8)
B (FLAG2) 10 oder 11 (ACKNLG oder BUSY)
A (GND) 16

Will man eine Routine für andere Drucker schreiben, so darf diese den gesamten Speicherbereich von $D00 bis $1F7F belegen, lediglich die residenten Speicherbereiche und der Basic-Speicher sind tabu. Die Information darüber, wo welcher Bildschirm im Speicher liegt, steht in den 7 Bytes von $1F96 bis $1F9C: In $1F96 steht die Nummer des Bildes, das ab $2000 in Speicher liegt (das ist das sichtbare Bild!), in Zelle $1F97 steht die Nummer des Bildes ab $4 000 und so weiter. Beispiel: Soll Bild Nummer 2 ausgedruckt werden, so sucht man in der Tabelle nach der 2. Steht sie zum Beispiel in Zelle $1F9A, so liegt Bild 2 im Bereich ab $A000 (unter dem Basic-ROM). Im Farb-Betrieb steht in Zelle $1F97 eine 0, weil im Bereich $4 000 bis $6 000 dann die Farbinformationen für die sechs Bilder liegen und dieser Bereich für Grafikbilder somit gesperrt sein muß.

Bild 2. Dieser verkleinerte Schaltplan wurde aus insgesamt sechs verschiedenen Bildern zusammengesetzt. Je zwei nebeneinander und drei untereinander. Auch ein reverser Ausdruck ist mit einem Tastendruck möglich. Die Symbole aus dem Construction-Set können einzeln in jedes beliebige Bild hineinkopiert werden.

Für den nicht Maschinenspracheerfahrenen Leser sind dies sicherlich alles spanische Dörfer, aber vielleicht sind einige »Maschinen-Profis« so nett und schicken Lösungen für andere Drucker ein.

HI-EDDI als Menüprogramm

Wem die Eingabe der Befehle über die Tastatur nicht gefällt, der kann HI-EDDI zu einem Menüprogramm nach dem Vorbild des Koala Painter umfunktionieren, bei dem die Befehle über eine bunte, illustrierte Menütafel eingegeben werden. Ehrlich gesagt: Ich finde die Eingabe über Menütafel alles andere als benutzerfreundlich: Menü holen, Cursor auf das gewünschte Feld bugsieren und dann Knopf drücken ist eine wesentlich umständlichere Prozedur als ein einfacher Tastendruck. Dafür macht das Entwerfen und Realisieren einer Menütafel so viel Spaß, daß ich mich entschlossen habe, diese Möglichkeit vorzusehen.

Doch zunächst zurück zu dem Bytewert, der bei Programmstart auf die Frage »Betriebsart« eingegeben werden muß. Er setzt sich wie folgt zusammen:

Bit 7: = 0 : Schwarzweiß-Betrieb
= 1 : Farb-Betrieb
Bit 6: = 0 : nur Tastatureingabe
= 1 : Menü-Eingabe
Bit 5-1: keine Funktion
Bit 0: = 0 : Beim Start werden alle Bildschirmspeicher gelöscht
= 1 : Es wird nichts gelöscht, im Speicher befindliche Bilder bleiben erhalten

Für Farbe und Menü zum Beispiel muß 192 eingegeben werden. Ich finde die Menü-Eingabe nur in Farbe sinnvoll, ein Schwarzweiß-Menü sieht recht langweilig aus. Ist das Bit 6 gesetzt, also die Menü-Betriebsart angewählt, so muß sich auf der Diskette unter dem Namen »MENUE« die Menütafel befinden, die beim Start automatisch nachgeladen wird. Das Erstellen einer solchen Menütafel soll nun erklärt werden:

Die Menütafel wird in 20 x 12, also insgesamt 240 Felder von je 16 x 16 Punkten eingeteilt. 20 x 16 = 320, die Breite des Bildschirms, aber 12 x 16 = 192 gibt nicht ganz die Höhe des Bildschirmes: Die letzte Zeile (acht Punkte) bleibt, wie bei Walk, frei. In dieser Zeile werden die Steuerbytes untergebracht, für jedes der 240 Felder 2 Bytes. Wird im Menü-Modus der Cursor auf eines der Felder gefahren und der Feuerknopf gedrückt, dann holt sich HI-EDDI aus der letzten Zeile die diesem Feld zugeordneten Steuerbytes und entnimmt aus ihnen, welcher Befehl ausgeführt werden soll. Die Zuordnung von Feldern zu Steuerbytes geht zeilenweise, der Reihe nach: Die ersten beiden Steuerbytes (Adresse $3E00 und $3E01, wenn die Menütafel angewählt ist) gehören zum ersten Feld links oben, die nächsten beiden Bytes zu dem daneben und so weiter. Die Steuerbytes zum letzten Feld haben die Adressen $3FDE und $3FDF, das liegt bereits im unsichtbaren Teil des Bildschirmspeichers. Die nicht gerade ansehnlichen Steuerbytes im sichtbaren Teil können durch gleiche Farben für Vorder- und Hintergrund versteckt werden.

Somit ist klar, wie man vorgehen muß: Zunächst ist ein Menü-Bild zu zeichnen, bei dessen Einteilung nur die 20 x 12-Feld-Rasterung zu berücksichtigen ist. Wie man die Befehle anordnet, wieviele Fehler man für einen Befehl zusammenhängt und welche Befehle man überhaupt ins Menü aufnimmt, bleibt jedem selbst überlassen. Denn keineswegs alle Befehle sind »menüfähig«: Die Korrekturtaste (Pfeil nach rechts) wirkt nur bis zum letzten Bildschirmwechsel zurück. Da jedoch das Anwählen der Menütafel ein Bildschirmwechsel ist, verliert die Korrekturtaste dabei ihre Wirkung. Dasselbe gilt für die Pfeil-nach-oben-Taste: Die Anwahl der Menütafel gilt als Moduswechsel! Aus demselben Grund muß beim MOVEn über zwei Seiten die Seitennummer über die Tastatur eingegeben werden, da bei einem Moduswechsel die Markierung eines Quellbereiches gelöscht wird.

Aus dem Textmodus kommt man nicht direkt ins Menü (SPACE wird als zu druckendes Zeichen interpretiert). Es muß daher zuerst ein anderer Modus über die Tastatur angewählt werden (zum Beispiel CTRL D für Draw), bevor das Menü wieder zugänglich ist.

Dafür bietet die Menütafel auch einige Vorteile: Die Farbenwahl erfolgt nicht mehr durch umständliches Fortschalten, sondern durch Direktanwahl der Farben. Und die Befehle U, 0, X, die normalerweise zwei Eingaben erfordern, werden jetzt mit einer Eingabe »erschlagen«.

Hat man nun ein Menübild gemalt (und abgespeichert!), so folgt der zweite Teil, das Erstellen der Steuerbytes, am besten in Form eines DATA-Laders (siehe Listing 4). Von den zwei Steuerbytes pro Feld enthält das zweite den Tastaturcode des jeweiligen Befehls. Die Tastaturcodes sind im 64’er, Ausgabe 5/84, Seite 105 zusammengestellt, sie lassen sich auch mit dem folgenden »Programm« ermitteln: 10 PRINT PEEK(203):GOTO10

Beim ersten Steuerbyte muß man zwischen verschiedenen Befehlskategorien unterscheiden:

  1. »Normale« Befehle: Bit 0 : SHIFT-Bit, muß gesetzt sein, wenn für den entsprechenden Befehl die SHIFT-Taste gedrückt werden muß. Bit 1 : C=-Bit, muß bei gedrückter Commodore-Taste gesetzt sein. Die Bits 2 bis 7 müssen 0 sein. Beispiel: Sprite-Editor einschalten ergibt die Bytes 1 (SHIFT, im Menü-Betrieb dient Space zur Anwahl der Menütafel, der Sprite-Editor ist nur mehr über SHIFT-Space erreichbar) und 60 (Tastaturcode Space).
  2. Befehle U, 0, X: Tastaturcode der entsprechenden Nummerntaste. Beispiel: X 5 ergibt die Steuerbytes 16 (Tastaturcode »5« und 23 (Tastaturcode »X«),
  3. Farbbefehle: Bit 0: SHIFT-Bit. Bits 2 bis 5: Nummer der Farbe, wie im Commodore-Handbuch angegeben. Die Bits 1 und 6 müssen 0 sein, das Bit 7 ist 1. Beispiel: Total Foreground, Blau ergibt: 128 (Bit 7) + 4 x 6 (blau) + 1 (SHIFT) = 153 und 21 (»F«),
  4. »Leerer« Befehl ohne Verlassen der Menütafel (zum Beispiel für Überschrift): 1. Byte = 64, 2. Byte = 0
  5. »Leerer« Befehl mit Verlassen des Menüs: 1. Byte = 0, 2. Byte = 64.

Die 5 Bytes im Anschluß an die 480 Steuerbytes müssen die Kennung »CBM80« enthalten. Das ist eigentlich die ROM-Kennung, ich habe sie hier als Menütafel-Kennung mißbraucht, um versehentliche Menü-Zugriffe auf ein normales Bild zu vermeiden. Vorsicht: Fehler in den Steuerbytes können zum Programmabsturz führen!

Nun braucht man nur noch Menübild und Steuerbytes zu verknubbeln: Dazu HI-EDDI laden, Starten (Betriebsart 128), Menübild laden und Programm mit STOP/RESTORE unterbrechen. Steuerbyte-DATA-Lader laden und starten. Der Lader muß, wie im Beispiel (Listing 4) zu sehen,mit den Befehlen POKE56, 32:CLR beginnen, um das im Speicher befindliche Menübild zu schützen! Dann HI-EDDI laden, starten (Betriebsart 129, damit die jetzt bereits fertige Menütafel im Speicher nicht gelöscht wird) und die nun sichtbare Menütafel unter dem Namen »MENUE« speichern.

Wie wird der »Menü-HI-EDDI« nun bedient? Beim Start muß auf die Frage Betriebsart 192 (oder 193) eingegeben werden. Auf der Menütafel fährt man den Cursor auf den gewünschten Befehl und drückt den Feuerknopf. Daraufhin wird das Menü verlassen, auf den aktuellen Bildschirm zurückgeschaltet (im Einschaltzustand ist das jetzt 2, da in Speicher 1 die Menütafel steckt) und der Befehl ausgeführt. Das Menü wird durch Drücken der Space-Taste auf den Bildschirm geholt. Die Tastatureingabe bleibt neben dem Menü voll erhalten. Wie schon erwähnt, belegt das Menü den Speicher 1. Dieser Speicher kann natürlich auch direkt angewählt werden, allerdings befindet man sich dann nicht im Menü-Modus, sondern die Menütafel wird wie ein ganz normales Bild behandelt!

Zum Abschluß noch ein Tip: HI-EDDI läßt sich mit STOP/RESTORE unterbrechen (nicht während einer Befehlsausführung!), ein Warmstart ist mit GOTO150 möglich, ein Kaltstart ohne Nachladen von HI-EXE, aber mit Betriebsart-Eingabe durch RUN100.

(Hans Haberl/gk)
|
10 rem********************************
20 rem*                              *
30 rem*           hi-eddi            *
40 rem*       von hans haberl        *
50 rem*                              *
60 rem*   data-lader zur erzeugung   *
70 rem*der druckerroutine "hi-print",*
80 rem*  wird auf diskette abgelegt  *
90 rem********************************
100 :
110 rem checksummen, nicht vertippen !!
120 data-205,164,-457,322,689,-834,-49,290,-87,17
130 :
140 rem m-code programm
150 data 0,13,133,91,173,105,14,240,34,120,169,255,141,3,221,173,2,221,9,4
160 data 141,2,221,173,0,221,9,4,141,0,221,169,16,141,13,221,173,13,221,88,-1
170 data 76,68,13,32,204,255,169,4,174,106,14,172,107,14,32,186,255,169,0
180 data 32,189,255,32,192,255,162,4,32,201,255,169,4,133,94,160,3,32,34,14,-1
190 data 169,128,133,95,169,2,133,96,165,91,41,192,208,4,70,95,70,96,165,91
200 data 41,7,162,0,32,48,14,165,91,48,3,74,74,74,41,7,162,2,32,48,14,169,-1
210 data 25,133,92,165,95,48,10,160,20,169,32,32,71,14,136,208,250,160,8,32
220 data 34,14,165,95,32,71,14,165,96,32,71,14,169,40,133,93,120,169,52,133,-1
230 data 1,160,7,177,87,153,125,14,136,16,248,169,55,133,1,88,165,87,24,105
240 data 8,133,87,144,2,230,88,160,8,162,0,62,125,14,8,42,232,40,36,91,48,-1
250 data 6,224,8,208,241,240,8,42,228,94,208,234,32,71,14,32,71,14,136,208
260 data 223,198,93,208,186,165,95,16,38,162,1,180,87,181,89,149,87,148,89,-1
270 data 202,16,245,165,94,73,12,133,94,201,4,240,15,165,91,48,3,76,151,13
280 data 160,0,32,34,14,76,122,13,198,92,208,244,160,0,32,34,14,160,13,32,-1
290 data 34,14,32,204,255,169,4,32,195,255,96,185,108,14,201,255,240,6,32
300 data 71,14,200,208,243,96,160,6,217,150,31,240,3,136,208,248,169,0,149,-1
310 data 87,24,105,32,136,16,251,149,88,96,174,105,14,208,3,76,210,255,72
320 data 141,1,221,173,0,221,41,251,141,0,221,9,4,141,0,221,173,13,221,41,-1
330 data 16,240,249,104,96,-1
340 :
350 rem die folgenden datas muessen an
360 rem den drucker angepasst werden!!
370 rem (die angegebenen werte sind
380 rem fuer einen epson rx-80 mit
390 rem data becker interface)
400 :
410 rem 0=ser. bus, 1=userport
420 data 0
430 rem geraeteadresse
440 data 4
450 rem sekundaeradresse (direktmodus)
460 data 1
470 rem die laenge der folgenden data-
480 rem zeilen darf nicht veraendert
490 rem werden, ggf. mit 255 auffuellen
500 rem (mind. ein 255 muss in jeder
510 rem zeile bleiben, ist endekennz.)
520 rem carriage return line feed
530 data 13,10,255
540 rem zeilenabstand fuer grafik
550 data 27,51,23,255,255
560 rem crt-grafik (640 punkte/zeile)
570 rem (ohne byte-anzahlen!)
580 data 27,42,4,255,255
590 rem normaler zeilenabstand
600 data 27,50,255,255
610 data-2:rem data-ende
620 :
630 rem checksummenpruefung
640 v=1:for i=0 to 9:read s(i):next
650 for b=0 to 9
660 read a:if a>=0 then s=s+a*v:v=-v:goto 660
670 if s<>s(b)then print"data-fehler in zeile"150+20*b"oder"160+20*b:end
680 s=0:next:print"datas ok"
690 :
700 rem file-ablage
710 restore:for i=0 to 9:read a:next
720 open 2,8,2,"hi-print,p,w"
730 read a:if a>=0 then print#2,chr$(a);
740 if a>-2 then 730
750 close 2:end
 10 REM ******************************** 
 20 REM *                              * 
 30 REM *           HI-EDDI            * 
 40 REM *       VON HANS HABERL        * 
 50 REM *                              * 
 60 REM *   DATA-LADER ZUR ERZEUGUNG   * 
 70 REM *DER DRUCKERROUTINE "HI-PRINT",* 
 80 REM *  WIRD AUF DISKETTE ABGELEGT  * 
 90 REM ******************************** 
 100 : 
 110 REM CHECKSUMMEN, NICHT VERTIPPEN !! 
 120 DATA -205,164,-457,322,689,-834,-49,290,-87,17 
 130 : 
 140 REM M-CODE PROGRAMM 
 150 DATA 0,13,133,91,173,105,14,240,34,120,169,255,141,3,221,173,2,221,9,4 
 160 DATA 141,2,221,173,0,221,9,4,141,0,221,169,16,141,13,221,173,13,221,88,-1 
 170 DATA 76,68,13,32,204,255,169,4,174,106,14,172,107,14,32,186,255,169,0 
 180 DATA 32,189,255,32,192,255,162,4,32,201,255,169,4,133,94,160,3,32,34,14,-1 
 190 DATA 169,128,133,95,169,2,133,96,165,91,41,192,208,4,70,95,70,96,165,91 
 200 DATA 41,7,162,0,32,48,14,165,91,48,3,74,74,74,41,7,162,2,32,48,14,169,-1 
 210 DATA 25,133,92,165,95,48,10,160,20,169,32,32,71,14,136,208,250,160,8,32 
 220 DATA 34,14,165,95,32,71,14,165,96,32,71,14,169,40,133,93,120,169,52,133,-1 
 230 DATA 1,160,7,177,87,153,125,14,136,16,248,169,55,133,1,88,165,87,24,105 
 240 DATA 8,133,87,144,2,230,88,160,8,162,0,62,125,14,8,42,232,40,36,91,48,-1 
 250 DATA 6,224,8,208,241,240,8,42,228,94,208,234,32,71,14,32,71,14,136,208 
 260 DATA 223,198,93,208,186,165,95,16,38,162,1,180,87,181,89,149,87,148,89,-1 
 270 DATA 202,16,245,165,94,73,12,133,94,201,4,240,15,165,91,48,3,76,151,13 
 280 DATA 160,0,32,34,14,76,122,13,198,92,208,244,160,0,32,34,14,160,13,32,-1 
 290 DATA 34,14,32,204,255,169,4,32,195,255,96,185,108,14,201,255,240,6,32 
 300 DATA 71,14,200,208,243,96,160,6,217,150,31,240,3,136,208,248,169,0,149,-1 
 310 DATA 87,24,105,32,136,16,251,149,88,96,174,105,14,208,3,76,210,255,72 
 320 DATA 141,1,221,173,0,221,41,251,141,0,221,9,4,141,0,221,173,13,221,41,-1 
 330 DATA 16,240,249,104,96,-1 
 340 : 
 350 REM DIE FOLGENDEN DATAS MUESSEN AN 
 360 REM DEN DRUCKER ANGEPASST WERDEN!! 
 370 REM (DIE ANGEGEBENEN WERTE SIND 
 380 REM FUER EINEN EPSON RX-80 MIT 
 390 REM DATA BECKER INTERFACE) 
 400 : 
 410 REM 0=SER. BUS, 1=USERPORT 
 420 DATA 0 
 430 REM GERAETEADRESSE 
 440 DATA 4 
 450 REM SEKUNDAERADRESSE (DIREKTMODUS) 
 460 DATA 1 
 470 REM DIE LAENGE DER FOLGENDEN DATA- 
 480 REM ZEILEN DARF NICHT VERAENDERT 
 490 REM WERDEN, GGF. MIT 255 AUFFUELLEN 
 500 REM (MIND. EIN 255 MUSS IN JEDER 
 510 REM ZEILE BLEIBEN, IST ENDEKENNZ.) 
 520 REM CARRIAGE RETURN LINE FEED 
 530 DATA 13,10,255 
 540 REM ZEILENABSTAND FUER GRAFIK 
 550 DATA 27,51,23,255,255 
 560 REM CRT-GRAFIK (640 PUNKTE/ZEILE) 
 570 REM (OHNE BYTE-ANZAHLEN!) 
 580 DATA 27,42,4,255,255 
 590 REM NORMALER ZEILENABSTAND 
 600 DATA 27,50,255,255 
 610 DATA -2:REM DATA-ENDE 
 620 : 
 630 REM CHECKSUMMENPRUEFUNG 
 640 V=1:FOR I=0  TO 9:READ S(I):NEXT 
 650 FOR B=0  TO 9 
 660 READ A:IF A>=0  THEN S=S+A*V:V=-V:GOTO 660 
 670 IF S<>S(B) THEN PRINT"DATA-FEHLER IN ZEILE"150+20*B"ODER"160+20*B:END 
 680 S=0:NEXT :PRINT"DATAS OK" 
 690 : 
 700 REM FILE-ABLAGE 
 710 RESTORE :FOR I=0  TO 9:READ A:NEXT 
 720 OPEN 2,8,2,"HI-PRINT,P,W" 
 730 READ A:IF A>=0  THEN PRINT#2,CHR$ (A); 
 740 IF A>-2  THEN 730 
 750 CLOSE 2:END 
Listing 1. HI-PRINT ist die ausgezeichnete Drucker-Routine des HI-EDDI. Alle Hardcopies auf diesen Seiten wurden mit HI-PRINT erstellt. Auch dieses Unterprogramm speichert sich nach dem Starten als Maschinenprogramm auf Diskette. Beachten Sie den Beitrag »Checksummer« in dieser Ausgabe. Er gibt Ihnen wichtige Hinweise zum Abtippen.
|
1 rem ********************************
2 rem *            hi-exe            *
3 rem *                              *
4 rem *      programm wird auf       *
5 rem *       floppy erzeugt         *
6 rem *                              *
7 rem ********************************
8 :
9 open 2,8,2,"@:hi-exe,p,w"
10 print#2,chr$(0);chr$(13);
15 dim h(75) : for i=0 to 9
20 h(48+i)=i : h(65+i)=i+10 : next
30 for i=3328 to 8013 : read a$ : rem hier aktuelle werte einsetzen!
40 h=asc(left$(a$,1)):l=asc(right$(a$,1))
50 d=h(h)*16+h(l) : s=s+d :print#2,chr$(d);
60 a=a+1:if a<9 then next : a=-1
65 print "zeile:";1000+z;
70 read v : z=z+1 : if v=s then 85
80 print" pruefsummenfehler !";999+z:close2:stop
85 if a<0 then close 2: end
90 s=0 : a=0 : print : next : close2:end
95 :
96 :
97 :
98 :
99 :
1000 data 4c,11,1b,4c,c1,1e,4c,36,1f, 580
1001 data 20,74,1c,20,24,0d,ad,83,1f, 592
1002 data 20,d3,1c,20,67,12,20,d1,13, 684
1003 data ee,28,d0,ee,29,d0,4c,0c,0d, 1074
1004 data a5,cb,cd,80,1f,f0,28,8d,80, 1281
1005 data 1f,c9,40,f0,21,a8,ad,8d,02, 1053
1006 data 8d,81,1f,aa,29,04,d0,0a,ad, 907
1007 data 84,1f,c9,01,d0,03,4c,12,10, 686
1008 data 98,a2,2a,dd,6e,0d,f0,04,ca, 1146
1009 data 10,f8,60,8a,ae,84,1f,e0,0c, 1071
1010 data d0,05,48,20,0d,11,68,0a,aa, 631
1011 data bd,9a,0d,48,bd,99,0d,48,8a, 993
1012 data 4a,60,33,38,3b,08,0b,10,13, 390
1013 data 18,1d,1f,1c,15,04,05,06,03, 151
1014 data 12,16,2a,11,14,29,24,09,0e, 219
1015 data 1a,0d,0a,21,26,17,1e,0c,20, 217
1016 data 23,02,07,00,3c,39,36,28,2b, 298
1017 data 54,0e,63,0e,63,0e,63,0e,63, 536
1018 data 0e,63,0e,63,0e,63,0e,f7,0d, 613
1019 data f7,0d,ed,0e,ed,0e,ba,0f,ba, 1149
1020 data 0f,ba,0f,ba,0f,ee,0d,06,0e, 688
1021 data ee,0d,06,0e,ee,0d,ee,0d,06, 779
1022 data 0e,23,11,06,0e,06,0e,ee,0d, 357
1023 data 06,0e,3d,0e,bf,0e,c5,0e,b9, 696
1024 data 0e,b2,10,00,10,04,10,bc,12, 450
1025 data 3a,13,fa,12,e2,10,73,1c,f4, 974
1026 data 18,f6,0f,fa,0f,aa,ad,81,1f, 1053
1027 data 29,02,f0,0f,8a,29,0f,8d,80, 761
1028 data 1f,20,47,1c,20,e1,1c,68,68, 655
1029 data 60,8a,29,0f,8d,84,1f,aa,bd, 953
1030 data 24,0e,8d,f9,07,bd,31,0e,8d, 840
1031 data 15,d0,a9,00,8d,aa,1f,8d,a9, 1050
1032 data 1f,4c,5f,13,0d,0e,0d,0d,0d, 287
1033 data 0d,0d,0d,0f,0f,0f,0f,0d,02, 114
1034 data 02,02,02,02,02,02,02,02,02, 18
1035 data 03,03,02,a2,20,86,58,a0,00, 584
1036 data 84,57,b1,57,49,ff,91,57,c8, 1243
1037 data d0,f7,e6,58,ca,d0,f2,60,ad, 1694
1038 data 81,1f,29,01,f0,f8,a9,51,8d, 1081
1039 data a9,1f,ad,96,1f,20,cc,0e,48, 876
1040 data 86,fc,78,a9,34,85,01,ad,a9, 1203
1041 data 1f,d0,29,b1,57,aa,b1,59,91, 1125
1042 data 57,8a,91,59,c8,d0,f3,e6,58, 1428
1043 data e6,5a,c6,fc,d0,eb,68,20,80, 1477
1044 data 0f,a8,ae,96,1f,b9,96,1f,8d, 1045
1045 data 96,1f,8a,99,96,1f,d0,17,8d, 1025
1046 data a2,0e,b1,59,31,57,91,57,c8, 1010
1047 data d0,f7,e6,58,e6,5a,ca,d0,f0, 1743
1048 data 8e,a9,1f,68,a9,37,85,01,58, 892
1049 data 60,a9,31,8d,a9,1f,60,a9,11, 937
1050 data 8d,a9,1f,60,a9,51,8d,a9,1f, 1028
1051 data 60,a0,06,d9,96,1f,f0,03,88, 1039
1052 data d0,f8,98,48,18,a9,00,69,20, 1010
1053 data 88,10,fb,85,5a,a2,20,86,58, 1042
1054 data a0,00,84,57,84,59,68,60,29, 841
1055 data 01,85,fd,ad,89,1f,29,fe,05, 1028
1056 data fd,8d,89,1f,aa,ad,81,1f,29, 1106
1057 data 01,d0,0f,ee,20,d0,ee,27,d0, 1187
1058 data 8a,10,05,a9,07,20,07,0e,60, 484
1059 data ad,f9,07,48,a2,04,86,58,a0, 1049
1060 data 00,84,57,18,20,5f,1a,c8,d0, 804
1061 data f9,e6,58,ca,d0,f4,f0,3e,ad, 1696
1062 data f9,07,48,ad,88,1f,a2,04,86, 968
1063 data 58,a0,00,84,57,91,57,c8,d0, 1107
1064 data fb,e6,58,ca,d0,f6,f0,23,ae, 1674
1065 data 89,1f,10,e0,a9,40,85,58,a2, 1024
1066 data 04,86,5a,d0,0d,ae,89,1f,10, 807
1067 data 1d,a9,40,85,5a,a2,04,86,58, 873
1068 data ad,f9,07,48,20,c9,10,68,8d, 995
1069 data f9,07,a9,0b,8d,f8,07,a9,0d, 1014
1070 data 8d,fa,07,ae,00,04,8e,88,1f, 885
1071 data 60,48,ad,84,1f,c9,06,d0,0a, 929
1072 data ad,aa,1f,c9,02,d0,03,20,48, 892
1073 data 0f,ad,89,1f,10,18,ad,96,1f, 750
1074 data 20,b1,0f,20,5e,0f,68,48,a8, 709
1075 data b9,96,1f,20,b1,0f,20,4f,0f, 716
1076 data 20,57,0f,68,60,a8,a9,40,18, 759
1077 data 69,04,88,d0,fb,60,29,03,aa, 1014
1078 data ad,81,1f,29,03,c9,01,f0,19, 844
1079 data 29,02,d0,28,bd,9d,1f,8d,85, 942
1080 data 1f,bd,a1,1f,8d,86,1f,bd,a5, 1072
1081 data 1f,8d,87,1f,4c,5f,13,ad,85, 834
1082 data 1f,9d,9d,1f,ad,86,1f,9d,a1, 1032
1083 data 1f,ad,87,1f,9d,a5,1f,60,8e, 961
1084 data 8a,1f,60,a9,06,d0,02,a9,0c, 831
1085 data 8d,94,1f,60,a2,80,d0,02,a2, 1078
1086 data 00,ad,81,1f,29,04,f0,03,8e, 763
1087 data 95,1f,60,e0,03,f0,fb,8a,0a, 1142
1088 data aa,bd,79,eb,85,57,bd,7a,eb, 1481
1089 data 85,58,b1,57,aa,29,7f,c9,20, 1056
1090 data b0,06,ac,80,1f,4c,48,0d,8a, 812
1091 data 29,e0,c9,60,d0,04,a9,40,d0, 1215
1092 data 09,8a,10,04,09,40,d0,02,29, 491
1093 data bf,29,7f,85,fd,8a,29,1f,05, 960
1094 data fd,0d,95,1f,a2,00,86,58,0a, 840
1095 data 26,58,0a,26,58,0a,26,58,85, 531
1096 data 57,ad,18,d0,29,02,0a,0a,09, 564
1097 data d0,05,58,85,58,78,a9,33,85, 995
1098 data 01,a0,07,b1,57,99,ba,1f,88, 938
1099 data 10,f8,a9,37,85,01,58,20,11, 759
1100 data 15,a2,00,20,be,14,a9,08,85, 735
1101 data 5f,a0,00,3e,ba,1f,a9,00,90, 847
1102 data 02,a5,5e,11,57,91,57,20,06, 635
1103 data 15,c6,5f,d0,ec,e6,5b,e8,e0, 1535
1104 data 08,d0,dc,a9,00,8d,81,1f,4c, 982
1105 data bd,12,ad,18,d0,29,02,0a,0a, 675
1106 data 09,d0,85,58,a9,20,85,5a,a2, 1024
1107 data 08,78,a9,33,85,01,a0,00,84, 774
1108 data 57,84,59,b1,57,91,59,c8,d0, 1214
1109 data f9,e6,58,e6,5a,ca,d0,f2,a9, 1708
1110 data 37,85,01,58,60,ad,89,1f,49, 787
1111 data 40,29,40,0d,81,1f,f0,03,4c, 661
1112 data 27,1d,a0,03,b9,84,1f,99,af, 907
1113 data 1f,88,10,f7,ad,96,1f,8d,ae, 1099
1114 data 1f,a9,01,20,64,0e,a9,0c,4c, 604
1115 data 07,0e,ad,ae,1f,20,64,0e,a0, 705
1116 data 03,b9,af,1f,99,84,1f,88,10, 862
1117 data f7,ad,84,1f,4c,07,0e,ad,81, 982
1118 data 1f,29,01,f0,03,4c,f8,0d,ad, 826
1119 data 15,d0,48,a2,00,8e,15,d0,8e, 976
1120 data a9,1f,86,fc,e8,86,fd,ad,89, 1515
1121 data 1f,2a,2a,29,01,49,07,20,64, 369
1122 data 0e,a0,04,b1,2d,99,59,00,88, 778
1123 data d0,f8,c6,5b,10,01,60,a4,fc, 1274
1124 data b1,5c,ae,8d,02,f0,0a,c6,fc, 1286
1125 data 10,10,a6,5b,86,fc,d0,0a,e6, 1123
1126 data fc,c4,5b,90,04,a2,00,86,fc, 1235
1127 data c9,40,b0,2c,29,07,8d,ae,1f, 879
1128 data 20,cc,0e,78,a9,34,85,01,b1, 902
1129 data 59,91,57,c8,d0,f9,e6,58,e6, 1526
1130 data 5a,ca,d0,f2,ad,89,1f,10,09, 1108
1131 data ad,ae,1f,20,b1,0f,20,4f,0f, 728
1132 data 4c,3d,12,38,e9,01,48,4a,4a, 665
1133 data 29,07,18,69,01,8d,ae,1f,20, 556
1134 data cc,0e,68,48,4a,90,04,a2,a0, 938
1135 data 86,59,4a,90,06,a5,5a,09,0f, 726
1136 data 85,5a,a9,27,85,58,a9,d0,85, 1162
1137 data 57,78,a9,34,85,01,a2,0c,a0, 896
1138 data a0,88,b1,59,91,57,98,d0,f8, 1402
1139 data a5,57,18,69,40,85,57,a5,58, 918
1140 data 69,01,85,58,a5,59,18,69,40, 774
1141 data 85,59,a5,5a,69,01,85,5a,ca, 1008
1142 data d0,d9,68,aa,ad,89,1f,10,36, 1110
1143 data ad,ae,1f,20,b1,0f,85,58,a9, 992
1144 data 00,85,57,8a,4a,90,04,a2,14, 762
1145 data 86,57,4a,90,0d,a5,57,18,69, 833
1146 data e0,85,57,a5,58,69,01,85,58, 1024
1147 data a9,fa,85,59,a9,04,85,5a,a2, 1199
1148 data 0b,a0,13,8c,c5,1f,20,1f,1a, 647
1149 data a9,37,85,01,58,a5,fd,20,d3, 1107
1150 data 1c,a5,cb,c9,2b,d0,03,38,26, 945
1151 data fd,c9,28,d0,02,46,fd,ad,00, 1200
1152 data dc,29,10,f0,03,4c,5a,11,68, 807
1153 data 8d,15,d0,4c,e8,1c,20,a2,12, 918
1154 data 29,0f,d0,06,a9,28,8d,83,1f, 782
1155 data 60,48,29,03,f0,0a,29,01,8d, 645
1156 data 81,1f,a2,00,20,3e,13,68,29, 580
1157 data 0c,f0,0c,4a,4a,29,01,8d,81, 724
1158 data 1f,a2,00,20,c0,12,ae,83,1f, 771
1159 data ec,94,1f,90,05,ca,ca,8e,83, 1241
1160 data 1f,60,78,ae,02,dc,a0,00,8c, 943
1161 data 02,dc,ad,00,dc,cd,00,dc,d0, 1248
1162 data f8,8e,02,dc,58,49,ff,8d,82, 1299
1163 data 1f,60,ae,8a,1f,ac,86,1f,ad, 980
1164 data 81,1f,29,01,d0,1a,18,98,7d, 737
1165 data 8b,1f,90,24,ee,87,1f,ae,87, 1063
1166 data 1f,e0,02,90,1a,a9,01,8d,87, 873
1167 data 1f,a9,f0,b0,11,38,98,fd,8b, 1233
1168 data 1f,b0,0a,ce,87,1f,10,05,a9, 779
1169 data 00,8d,87,1f,8d,86,1f,4c,5f, 784
1170 data 13,ad,84,1f,c9,01,d0,38,ad, 994
1171 data 81,1f,29,01,49,01,8d,81,1f, 577
1172 data f0,03,20,bd,12,20,11,15,a2, 714
1173 data 00,20,be,14,a9,08,85,5f,a0, 807
1174 data 00,a5,5e,49,ff,31,57,91,57, 955
1175 data 20,06,15,c6,5f,d0,f1,e6,5b, 1122
1176 data e8,e0,08,d0,e1,ad,81,1f,f0, 1470
1177 data 83,60,ae,8a,1f,ac,85,1f,ad, 1079
1178 data 81,1f,29,01,d0,0b,18,98,7d, 722
1179 data 8f,1f,90,0d,a9,ff,b0,09,38, 996
1180 data 98,fd,8f,1f,b0,02,a9,00,8d, 1067
1181 data 85,1f,20,bb,13,bd,c5,13,cd, 1012
1182 data 85,1f,90,03,8d,85,1f,bd,c6, 1003
1183 data 13,cd,85,1f,b0,03,8d,85,1f, 872
1184 data ad,87,1f,d0,0d,bd,c7,13,cd, 1172
1185 data 86,1f,90,10,8d,86,1f,b0,0b, 818
1186 data bd,c8,13,cd,86,1f,b0,03,8d, 1098
1187 data 86,1f,ad,85,1f,8d,01,d0,8d, 993
1188 data 03,d0,ad,86,1f,8d,00,d0,8d, 1039
1189 data 02,d0,ad,87,1f,0a,0d,87,1f, 738
1190 data 85,fd,ad,10,d0,29,fc,05,fd, 1334
1191 data 8d,10,d0,60,ad,f9,07,38,e9, 1179
1192 data 0d,0a,0a,aa,60,28,ef,0e,4d, 669
1193 data 2b,eb,11,49,32,e5,18,40,ad, 908
1194 data 82,1f,29,10,f0,10,20,11,15, 544
1195 data ad,84,1f,0a,aa,bd,ea,13,48, 1030
1196 data bd,e9,13,48,60,02,14,e7,13, 881
1197 data 68,15,0d,16,55,16,9b,17,74, 561
1198 data 18,42,1a,18,14,86,14,42,14, 400
1199 data 45,14,95,1a,20,be,14,ac,8d, 819
1200 data 02,f0,09,a0,00,49,ff,31,57, 875
1201 data 91,57,60,11,57,91,57,60,a5, 925
1202 data 5b,48,a2,00,20,be,14,a9,18, 760
1203 data 85,5f,a0,00,a5,5e,49,ff,31, 1024
1204 data 57,91,57,20,06,15,c6,5f,d0, 879
1205 data f1,e6,5b,e8,e8,e8,e0,3f,d0, 1753
1206 data df,68,85,5b,60,20,19,14,a2, 886
1207 data 00,20,be,14,a9,18,85,5f,a0, 823
1208 data 00,bd,c2,02,8d,bc,1f,bd,c1, 1127
1209 data 02,8d,bb,1f,bd,c0,02,8d,ba, 1071
1210 data 1f,2e,bc,1f,2e,bb,1f,2e,ba, 792
1211 data 1f,a9,00,90,02,a5,5e,11,57, 709
1212 data 91,57,20,06,15,c6,5f,d0,e6, 1022
1213 data e6,5b,e8,e8,e8,e0,3f,d0,c2, 1706
1214 data 60,a9,03,8d,15,d0,a2,00,20, 832
1215 data be,14,a9,18,85,5f,a0,00,18, 815
1216 data b1,57,25,5e,f0,01,38,3e,c2, 948
1217 data 02,3e,c1,02,3e,c0,02,20,06, 553
1218 data 15,c6,5f,d0,e8,e6,5b,e8,e8, 1539
1219 data e8,e0,3f,d0,d6,a9,0b,8d,84, 1394
1220 data 1f,60,a9,01,85,58,a5,5b,29, 815
1221 data f8,85,57,0a,26,58,0a,26,58, 740
1222 data 18,65,57,90,02,e6,58,0a,26, 724
1223 data 58,0a,26,58,0a,26,58,85,57, 580
1224 data a5,5b,29,07,85,60,a5,5c,29, 831
1225 data f8,18,65,60,65,57,85,57,a5, 1042
1226 data 5d,65,58,85,58,a5,5c,29,07, 808
1227 data a8,a9,00,38,6a,88,10,fc,85, 1036
1228 data 5e,60,46,5e,90,06,66,5e,98, 852
1229 data 69,08,a8,60,20,bb,13,ad,85, 921
1230 data 1f,38,fd,c5,13,85,5b,ad,86, 1087
1231 data 1f,38,fd,c7,13,85,5c,ad,87, 1091
1232 data 1f,e9,00,85,5d,60,20,e8,1c, 878
1233 data ad,aa,1f,49,01,8d,aa,1f,f0, 1030
1234 data 2d,a2,02,b5,5b,9d,ab,1f,ca, 1042
1235 data 10,f8,a2,03,20,e0,0f,ad,02, 875
1236 data d0,8d,04,d0,ad,03,d0,8d,05, 1091
1237 data d0,ad,10,d0,6a,08,2a,28,2a, 843
1238 data 8d,10,d0,a9,06,8d,15,d0,68, 1014
1239 data 68,60,20,2e,15,20,03,14,a5, 519
1240 data 5b,48,a5,5c,48,a5,5d,48,ad, 995
1241 data ac,1f,38,e5,5c,48,ad,ad,1f, 1029
1242 data e5,5d,8d,bd,1f,b0,0b,68,49, 1047
1243 data ff,69,01,48,a9,00,ed,bd,1f, 1059
1244 data 8d,bb,1f,8d,bf,1f,68,8d,ba, 1153
1245 data 1f,8d,be,1f,ad,ab,1f,18,e5, 1021
1246 data 5b,90,04,49,ff,69,fe,8d,bc, 1255
1247 data 1f,6e,bd,1f,38,ed,ba,1f,aa, 1041
1248 data a9,ff,ed,bb,1f,85,fc,b0,06, 1446
1249 data 0a,0a,2a,20,74,17,ad,be,1f, 627
1250 data 6d,bc,1f,8d,be,1f,ad,bf,1f, 1085
1251 data e9,00,4c,f5,15,ad,bd,1f,b0, 1144
1252 data e4,0a,2a,0a,49,02,20,5c,17, 512
1253 data 18,ad,be,1f,6d,ba,1f,8d,be, 1075
1254 data 1f,ad,bf,1f,6d,bb,1f,8d,bf, 1085
1255 data 1f,08,20,03,14,28,e8,d0,d8, 790
1256 data e6,fc,d0,d4,68,85,5d,68,85, 1469
1257 data 5c,68,85,5b,60,20,2e,15,ad, 788
1258 data ab,1f,48,a5,5b,8d,ab,1f,20, 905
1259 data 6c,15,68,8d,ab,1f,a5,5c,48, 905
1260 data a5,5d,48,ad,ac,1f,85,5c,ad, 1104
1261 data ad,1f,85,5d,20,6c,15,68,85, 828
1262 data 5d,68,85,5c,a5,5b,48,ad,ab, 1094
1263 data 1f,85,5b,20,6c,15,68,85,5b, 744
1264 data a5,5c,8d,ac,1f,a5,5d,8d,ad, 1173
1265 data 1f,20,6c,15,60,20,2e,15,a2, 549
1266 data 02,b5,5b,9d,c2,1f,ca,10,f8, 1122
1267 data a9,00,20,ea,16,20,03,14,20, 544
1268 data b8,16,85,f9,20,5a,17,08,a9, 910
1269 data 02,20,ea,16,28,2a,0a,45,f9, 700
1270 data 20,5c,17,20,72,17,08,a9,04, 497
1271 data 20,ea,16,28,2a,45,f9,20,74, 836
1272 data 17,38,ad,bc,1f,ed,be,1f,ad, 1102
1273 data bd,1f,ed,bf,1f,b0,06,20,5a, 983
1274 data 17,4c,a9,16,20,72,17,90,0c, 615
1275 data a2,02,b5,5b,dd,c2,1f,d0,b4, 1270
1276 data ca,10,f6,60,38,a5,5c,ed,ac, 1282
1277 data 1f,a8,a5,5d,ed,ad,1f,08,26, 944
1278 data fd,28,98,b0,04,49,ff,69,01, 1059
1279 data 8d,c1,1f,38,ad,ab,1f,e5,5b, 1116
1280 data 08,26,fd,28,b0,04,49,ff,69, 952
1281 data 01,8d,c0,1f,a5,fd,49,ff,60, 1207
1282 data 48,20,b8,16,ad,c0,1f,a2,00, 868
1283 data 20,36,17,ad,c1,1f,a2,02,20, 702
1284 data 36,17,68,aa,18,a5,57,65,59, 817
1285 data 9d,ba,1f,a5,58,65,5a,9d,bb, 1162
1286 data 1f,8a,f0,23,38,bd,ba,1f,ed, 1143
1287 data ba,1f,48,bd,bb,1f,ed,bb,1f, 1151
1288 data b0,0c,a8,68,49,ff,69,01,48, 966
1289 data 98,49,ff,69,00,9d,bb,1f,68, 1064
1290 data 9d,ba,1f,60,48,a8,a9,08,85, 1020
1291 data fc,a9,00,95,57,16,57,36,58, 908
1292 data 98,0a,a8,90,0b,68,48,18,75, 802
1293 data 57,95,57,90,02,f6,58,c6,fc, 1253
1294 data d0,e8,68,60,a5,f9,29,02,f0, 1337
1295 data 08,a5,5b,f0,36,c6,5b,38,60, 999
1296 data a5,5b,c9,c7,f0,2c,e6,5b,38, 1317
1297 data 60,a5,f9,29,01,f0,10,a5,5c, 1065
1298 data 05,5d,f0,1c,a5,5c,d0,02,c6, 1031
1299 data 5d,c6,5c,38,60,a5,5d,f0,06, 1039
1300 data a5,5c,c9,3f,f0,08,e6,5c,d0, 1299
1301 data 02,e6,5d,38,60,18,60,20,e8, 861
1302 data 1c,a9,01,20,74,17,a9,00,85, 671
1303 data f9,a5,5b,8d,ab,1f,ba,8e,bd, 1365
1304 data 1f,ba,e0,14,90,6c,a5,fd,48, 1203
1305 data a5,fe,48,a5,5c,48,a5,5d,48, 1150
1306 data a5,5b,85,fd,ad,ab,1f,85,fe, 1404
1307 data 20,72,17,90,46,20,23,18,90, 618
1308 data 41,a5,5b,48,ad,ab,1f,48,20, 872
1309 data 23,18,90,05,20,b1,17,90,f6, 830
1310 data 68,85,fe,68,85,fd,a5,f9,49, 1468
1311 data 01,85,f9,20,72,17,20,23,18, 643
1312 data 90,05,20,b1,17,90,f6,a5,f9, 1185
1313 data 49,01,85,f9,20,72,17,ad,00, 798
1314 data dc,29,10,d0,bc,ae,bd,1f,9a, 1221
1315 data 4c,e8,1c,68,85,5d,68,85,5c, 995
1316 data 68,85,fe,68,85,fd,60,a5,fd, 1495
1317 data 85,5b,a5,fe,8d,ab,1f,20,be, 1208
1318 data 14,a0,00,31,57,d0,36,a5,5b, 834
1319 data f0,0d,c6,5b,20,be,14,a0,00, 944
1320 data 31,57,f0,f1,e6,5b,a5,5b,aa, 1364
1321 data 20,be,14,a0,00,31,57,d0,0e, 760
1322 data a5,5e,11,57,91,57,e6,5b,a5, 1081
1323 data 5b,c9,c8,d0,e9,c6,5b,a5,5b, 1478
1324 data 8d,ab,1f,86,5b,38,60,e6,5b, 1041
1325 data ad,ab,1f,c5,5b,b0,b8,60,20, 1151
1326 data e8,1c,ad,aa,1f,c9,03,d0,05, 1051
1327 data a9,00,8d,aa,1f,0a,aa,a5,5c, 948
1328 data 46,5d,6a,4a,4a,9d,bb,1f,a5, 957
1329 data 5b,4a,4a,4a,9d,ba,1f,ee,aa, 1095
1330 data 1f,8a,f0,56,c9,02,d0,6a,a2, 1174
1331 data 00,bd,bc,1f,38,fd,ba,1f,b0, 1110
1332 data 10,bd,bc,1f,a8,bd,ba,1f,9d, 1155
1333 data bc,1f,98,9d,ba,1f,90,e7,9d, 1277
1334 data c4,1f,e8,e0,02,d0,df,20,57, 1235
1335 data 0f,a2,00,20,fa,19,8c,c2,1f, 849
1336 data 8d,c3,1f,ae,c4,1f,ac,c5,1f, 1168
1337 data a9,bf,91,57,88,10,f9,a5,57, 1245
1338 data 18,69,28,85,57,90,02,e6,58, 853
1339 data ca,10,e8,ad,96,1f,8d,ae,1f, 1150
1340 data 60,ad,aa,1f,c9,03,d0,f8,ce, 1336
1341 data aa,1f,ad,ae,1f,20,64,0e,4c, 801
1342 data c5,18,ce,aa,1f,60,ad,be,1f, 1118
1343 data 18,6d,c4,1f,8d,c0,1f,c9,19, 950
1344 data b0,ee,ad,bf,1f,18,6d,c5,1f, 1170
1345 data 8d,c1,1f,c9,28,b0,e0,20,48, 1110
1346 data 0f,a2,04,20,fa,19,a5,57,38, 796
1347 data ed,c2,1f,a5,58,ed,c3,1f,a9, 1347
1348 data 00,2a,2a,85,f9,69,04,aa,20, 777
1349 data fa,19,84,59,85,5a,a6,f9,20, 1166
1350 data fa,19,a0,03,06,57,26,58,06, 663
1351 data 59,26,5a,88,d0,f5,ad,ae,1f, 1184
1352 data a0,06,d9,96,1f,f0,03,88,d0, 1151
1353 data f8,a5,58,18,88,30,04,69,20, 850
1354 data 90,f9,85,58,a9,00,a0,08,a6, 1117
1355 data f9,f0,04,a9,ff,a0,f8,84,5c, 1549
1356 data 85,5d,ad,c4,1f,85,fb,78,a9, 1299
1357 data 34,85,01,a2,ff,a0,07,b1,57, 1034
1358 data 91,59,88,10,f9,a0,02,b9,57, 1069
1359 data 00,18,65,5c,99,57,00,b9,58, 730
1360 data 00,65,5d,99,58,00,88,88,f0, 947
1361 data eb,e8,ec,c5,1f,90,da,e0,27, 1556
1362 data d0,df,c6,fb,10,d0,a9,37,85, 1461
1363 data 01,58,ad,89,1f,10,2f,a2,04, 659
1364 data 20,fa,19,84,59,85,5a,ad,ae, 1098
1365 data 1f,cd,96,1f,f0,05,20,b1,0f, 886
1366 data f0,02,a9,40,18,6d,c3,1f,38, 890
1367 data e9,04,85,58,ad,c2,1f,85,57, 1076
1368 data ae,c4,1f,20,1f,1a,20,57,0f, 624
1369 data 60,a9,00,85,58,bd,ba,1f,0a, 902
1370 data 0a,18,7d,ba,1f,0a,0a,26,58, 522
1371 data 0a,26,58,7d,bb,1f,90,02,e6, 855
1372 data 58,85,57,a8,a5,58,09,04,85, 875
1373 data 58,60,ac,c5,1f,b1,57,91,59, 1082
1374 data 88,10,f9,a5,57,18,69,28,85, 955
1375 data 57,90,02,e6,58,a5,59,18,69, 934
1376 data 28,85,59,90,02,e6,5a,ca,10, 946
1377 data dd,60,20,be,14,a0,03,46,58, 880
1378 data 66,57,88,d0,f9,a5,58,49,44, 1176
1379 data 85,5a,a5,57,85,59,a0,00,ad, 1030
1380 data 8d,02,4a,ad,89,1f,29,01,d0, 808
1381 data 15,b0,06,ad,20,d0,4c,70,1a, 830
1382 data b1,59,29,0f,85,fd,b1,57,29, 1013
1383 data f0,4c,91,1a,b0,0a,ad,20,d0, 1086
1384 data 0a,0a,0a,0a,4c,89,1a,b1,59, 545
1385 data 29,f0,85,fd,b1,57,29,0f,05, 992
1386 data fd,91,57,60,20,e8,1c,a0,04, 1037
1387 data b9,10,fd,d9,e0,3f,d0,53,88, 1385
1388 data 10,f5,a9,3e,85,58,a5,5b,c9, 1170
1389 data c0,90,02,a9,bf,29,f0,85,fd, 1365
1390 data 4a,4a,65,fd,85,fd,a5,5d,4a, 1220
1391 data a5,5c,6a,4a,4a,4a,18,65,fd, 963
1392 data 0a,90,02,e6,58,85,57,a0,01, 855
1393 data b1,57,aa,88,b1,57,29,40,d0, 1147
1394 data 1b,b1,57,30,18,c9,04,b0,08, 752
1395 data 8d,81,1f,8a,a8,4c,48,0d,48, 840
1396 data 8a,a8,20,48,0d,68,a8,4c,48, 843
1397 data 0d,60,a8,29,01,8d,81,1f,08, 628
1398 data 98,4a,4a,a8,28,d0,01,88,8c, 993
1399 data 20,d0,8c,27,d0,8a,a8,4c,48, 1081
1400 data 0d,48,29,01,d0,1f,a9,20,85, 700
1401 data 58,a2,e0,78,a9,34,85,01,a9, 1118
1402 data 00,85,57,a8,91,57,c8,d0,fb, 1279
1403 data e6,58,ca,d0,f6,a9,37,85,01, 1332
1404 data 58,a2,00,8e,17,d0,8e,1d,d0, 1002
1405 data 8e,1c,d0,8e,1b,d0,20,c8,1c, 1015
1406 data a9,04,8d,20,d0,a0,25,b9,91, 1081
1407 data 1b,99,84,1f,88,10,f7,68,8d, 987
1408 data 89,1f,10,23,a9,00,8d,97,1f, 711
1409 data ad,89,1f,29,01,d0,17,a9,40, 847
1410 data 85,58,ad,88,1f,a2,1c,a0,00, 911
1411 data 84,57,91,57,c8,d0,fb,e6,58, 1428
1412 data ca,d0,f6,ad,89,1f,29,40,f0, 1342
1413 data 08,20,f2,10,a9,02,8d,ae,1f, 815
1414 data 4c,74,1c,00,8c,ae,00,f6,00, 780
1415 data 01,01,08,18,a0,01,08,15,60, 320
1416 data 20,06,00,01,07,02,03,04,05, 60
1417 data 06,8c,8c,8c,8c,ae,ae,ae,ae, 1262
1418 data 00,00,00,00,a9,93,20,d2,ff, 813
1419 data a9,01,8d,15,d0,8d,10,d0,a9, 1074
1420 data 10,8d,00,d0,a9,88,8d,01,d0, 1020
1421 data a9,04,85,58,a9,d8,85,5a,a2, 1164
1422 data 00,86,57,86,59,a9,19,85,fb, 1022
1423 data a0,00,bd,c0,02,8d,ba,1f,bd, 1090
1424 data c1,02,8d,bb,1f,bd,c2,02,8d, 1080
1425 data bc,1f,a9,06,91,59,c0,18,b0, 1020
1426 data 1c,a5,fb,c9,05,90,16,ad,93, 1136
1427 data 1f,49,80,91,57,2e,bc,1f,2e, 775
1428 data bb,1f,2e,ba,1f,90,04,a9,04, 802
1429 data 91,59,c8,c0,28,d0,d7,e8,e8, 1553
1430 data e8,a5,57,18,69,28,85,57,85, 1006
1431 data 59,90,04,e6,58,e6,5a,c6,fb, 1324
1432 data d0,ad,a9,06,8d,27,d0,a5,5b, 1200
1433 data 8d,ba,1f,a5,5c,8d,bb,1f,a2, 1136
1434 data 00,20,fa,19,60,20,57,0f,ad, 710
1435 data 18,d0,29,f7,8d,18,d0,ad,11, 1083
1436 data d0,29,df,8d,11,d0,20,cc,ff, 1329
1437 data a9,93,20,d2,ff,a9,0f,8d,21, 1171
1438 data d0,a9,06,8d,86,02,a9,00,85, 962
1439 data c6,8d,15,d0,60,20,e1,1c,a2, 1111
1440 data 00,a0,00,b9,f0,1c,85,57,f0, 1073
1441 data 27,c9,ff,d0,04,e8,c8,d0,f1, 1588
1442 data b9,f1,1c,9d,40,03,e8,b9,f2, 1337
1443 data 1c,9d,40,03,e8,b9,f3,1c,9d, 1097
1444 data 40,03,e8,c6,57,d0,e7,c8,c8, 1423
1445 data c8,c8,d0,d2,ad,18,d0,09,08, 1240
1446 data 8d,18,d0,ad,11,d0,09,20,8d, 953
1447 data 11,d0,20,48,0f,ad,20,d0,8d, 898
1448 data 27,d0,ad,84,1f,4c,07,0e,a9, 849
1449 data 00,a0,3f,99,c0,02,88,10,fa, 972
1450 data 60,aa,f0,0a,a0,00,ea,ea,88, 1280
1451 data d0,fb,ca,d0,f8,60,a5,cb,c9, 1782
1452 data 40,d0,fa,60,20,a2,12,29,10, 887
1453 data d0,f9,60,08,00,20,00,02,00, 595
1454 data 00,00,01,ff,07,f8,02,00,00, 513
1455 data 00,08,00,20,00,ff,06,00,00, 301
1456 data 00,01,03,ff,00,08,02,01,00, 270
1457 data 01,03,ff,00,05,00,00,00,ff, 519
1458 data 01,ff,ff,ff,13,c0,00,03,01, 981
1459 data ff,ff,ff,00,20,e1,1c,a9,20, 1251
1460 data 8d,93,1f,a9,00,85,5b,85,5c, 937
1461 data 8d,83,1f,20,47,1c,20,b6,1b, 675
1462 data 20,55,1d,20,2e,1e,20,7d,1e, 441
1463 data a9,30,20,d3,1c,a5,cb,c9,3c, 1117
1464 data d0,ec,4c,74,1c,a5,cb,cd,80, 1365
1465 data 1f,d0,01,60,8d,80,1f,c9,24, 873
1466 data d0,25,a0,3c,b9,c0,02,20,0a, 886
1467 data 1e,99,bc,1f,b9,c2,02,20,0a, 825
1468 data 1e,99,ba,1f,b9,c1,02,20,0a, 822
1469 data 1e,99,bb,1f,88,88,88,10,e0, 1049
1470 data 4c,19,1e,c9,16,d0,14,a0,00, 742
1471 data a2,3e,b9,c0,02,20,0a,1e,9d, 832
1472 data ba,1f,c8,ca,10,f3,4c,19,1e, 1009
1473 data c9,11,d0,44,a9,02,85,fb,a4, 1213
1474 data fb,84,fd,be,28,1e,b9,2b,1e, 1154
1475 data 85,fa,a9,03,85,fc,a9,08,85, 1250
1476 data fe,a4,fa,8a,48,a9,00,3e,c0, 1301
1477 data 02,6a,e8,e8,e8,88,d0,f6,a4, 1558
1478 data fd,99,ba,1f,c8,c8,c8,84,fd, 1608
1479 data 68,aa,c6,fe,d0,e0,e8,c6,fc, 1840
1480 data d0,d7,c6,fb,10,c3,4c,19,1e, 1214
1481 data c9,1a,d0,0b,ad,93,1f,49,6f, 981
1482 data 8d,93,1f,4c,b6,1b,c9,33,d0, 1064
1483 data 0d,ad,8d,02,29,01,f0,06,20, 649
1484 data c8,1c,4c,b6,1b,60,85,fe,84, 1128
1485 data fd,a0,08,26,fe,6a,88,d0,fa, 1413
1486 data a4,fd,60,a0,3e,b9,ba,1f,99, 1290
1487 data c0,02,88,10,f7,20,b6,1b,60, 930
1488 data 27,0f,00,08,08,05,20,a2,12, 287
1489 data a0,00,29,0f,f0,35,4a,a6,5b, 840
1490 data f0,04,90,02,c6,5b,4a,90,06, 903
1491 data e0,14,b0,02,e6,5b,4a,a6,5c, 1075
1492 data f0,04,90,02,c6,5c,4a,90,06, 904
1493 data e0,17,b0,02,e6,5c,ad,93,1f, 1098
1494 data 49,80,91,57,20,37,1c,ad,93, 868
1495 data 1f,a0,00,91,57,ad,83,1f,49, 831
1496 data 01,8d,83,1f,f0,06,b1,57,49, 887
1497 data 80,91,57,60,ad,82,1f,29,10, 847
1498 data f0,3c,20,f7,14,a5,5c,4a,4a, 1004
1499 data 4a,a0,03,18,65,5b,88,d0,fb, 1048
1500 data a8,a5,5e,ae,8d,02,d0,0b,19, 988
1501 data c0,02,99,c0,02,a9,04,4c,b1, 967
1502 data 1e,49,ff,39,c0,02,99,c0,02, 956
1503 data a9,06,a8,a5,58,aa,49,dc,85, 1192
1504 data 58,98,a0,00,91,57,86,58,60, 950
1505 data a0,03,d9,22,1f,f0,03,88,d0, 1032
1506 data f8,c8,98,0a,0a,aa,a0,03,ca, 1155
1507 data bd,26,1f,99,b6,1f,88,10,f6, 1022
1508 data ad,80,1f,4a,4a,4a,8d,b4,1f, 906
1509 data a9,04,ae,b3,1f,ac,b4,1f,20, 972
1510 data ba,ff,a0,02,b1,2d,48,c8,b1, 1274
1511 data 2d,aa,c8,b1,2d,a8,68,20,bd, 1130
1512 data ff,ae,b6,1f,86,57,ac,b7,1f, 1249
1513 data 84,58,ad,b4,1f,d0,06,a9,00, 987
1514 data 20,d5,ff,60,a9,57,ae,b8,1f, 1241
1515 data ac,b9,1f,20,d8,ff,60,47,46, 1128
1516 data 53,5a,00,20,00,40,00,20,00, 301
1517 data 44,c0,02,ff,02,00,20,00,28, 591
1518 data a2,03,20,c6,ff,20,cf,ff,20, 1176
1519 data d2,ff,d0,f8,a9,0d,20,d2,ff, 1600
1520 data 20,cc,ff,60,ff,9c,          998
  1 REM ******************************** 
  2 REM *            HI-EXE            * 
  3 REM *                              * 
  4 REM *      PROGRAMM WIRD AUF       * 
  5 REM *       FLOPPY ERZEUGT         * 
  6 REM *                              * 
  7 REM ******************************** 
  8 : 
  9 OPEN 2,8,2,"@:HI-EXE,P,W" 
 10 PRINT#2,CHR$ (0);CHR$ (13); 
 15 DIM H(75) : FOR I=0  TO 9 
 20 H(48+I)=I : H(65+I)=I+10 : NEXT 
 30 FOR I=3328  TO 8013 : READ A$ : REM HIER AKTUELLE WERTE EINSETZEN! 
 40 H=ASC (LEFT$ (A$,1)):L=ASC (RIGHT$ (A$,1)) 
 50 D=H(H)*16+H(L) : S=S+D :PRINT#2,CHR$ (D); 
 60 A=A+1:IF A<9  THEN NEXT : A=-1 
 65 PRINT "ZEILE:";1000+Z; 
 70 READ V : Z=Z+1 : IF V=S  THEN 85 
 80 PRINT" PRUEFSUMMENFEHLER !";999+Z:CLOSE 2:STOP 
 85 IF A<0  THEN CLOSE 2: END 
 90 S=0 : A=0 : PRINT : NEXT : CLOSE 2:END 
 95 : 
 96 : 
 97 : 
 98 : 
 99 : 
 1000 DATA 4C,11,1B,4C,C1,1E,4C,36,1F, 580 
 1001 DATA 20,74,1C,20,24,0D,AD,83,1F, 592 
 1002 DATA 20,D3,1C,20,67,12,20,D1,13, 684 
 1003 DATA EE,28,D0,EE,29,D0,4C,0C,0D, 1074 
 1004 DATA A5,CB,CD,80,1F,F0,28,8D,80, 1281 
 1005 DATA 1F,C9,40,F0,21,A8,AD,8D,02, 1053 
 1006 DATA 8D,81,1F,AA,29,04,D0,0A,AD, 907 
 1007 DATA 84,1F,C9,01,D0,03,4C,12,10, 686 
 1008 DATA 98,A2,2A,DD,6E,0D,F0,04,CA, 1146 
 1009 DATA 10,F8,60,8A,AE,84,1F,E0,0C, 1071 
 1010 DATA D0,05,48,20,0D,11,68,0A,AA, 631 
 1011 DATA BD,9A,0D,48,BD,99,0D,48,8A, 993 
 1012 DATA 4A,60,33,38,3B,08,0B,10,13, 390 
 1013 DATA 18,1D,1F,1C,15,04,05,06,03, 151 
 1014 DATA 12,16,2A,11,14,29,24,09,0E, 219 
 1015 DATA 1A,0D,0A,21,26,17,1E,0C,20, 217 
 1016 DATA 23,02,07,00,3C,39,36,28,2B, 298 
 1017 DATA 54,0E,63,0E,63,0E,63,0E,63, 536 
 1018 DATA 0E,63,0E,63,0E,63,0E,F7,0D, 613 
 1019 DATA F7,0D,ED,0E,ED,0E,BA,0F,BA, 1149 
 1020 DATA 0F,BA,0F,BA,0F,EE,0D,06,0E, 688 
 1021 DATA EE,0D,06,0E,EE,0D,EE,0D,06, 779 
 1022 DATA 0E,23,11,06,0E,06,0E,EE,0D, 357 
 1023 DATA 06,0E,3D,0E,BF,0E,C5,0E,B9, 696 
 1024 DATA 0E,B2,10,00,10,04,10,BC,12, 450 
 1025 DATA 3A,13,FA,12,E2,10,73,1C,F4, 974 
 1026 DATA 18,F6,0F,FA,0F,AA,AD,81,1F, 1053 
 1027 DATA 29,02,F0,0F,8A,29,0F,8D,80, 761 
 1028 DATA 1F,20,47,1C,20,E1,1C,68,68, 655 
 1029 DATA 60,8A,29,0F,8D,84,1F,AA,BD, 953 
 1030 DATA 24,0E,8D,F9,07,BD,31,0E,8D, 840 
 1031 DATA 15,D0,A9,00,8D,AA,1F,8D,A9, 1050 
 1032 DATA 1F,4C,5F,13,0D,0E,0D,0D,0D, 287 
 1033 DATA 0D,0D,0D,0F,0F,0F,0F,0D,02, 114 
 1034 DATA 02,02,02,02,02,02,02,02,02, 18 
 1035 DATA 03,03,02,A2,20,86,58,A0,00, 584 
 1036 DATA 84,57,B1,57,49,FF,91,57,C8, 1243 
 1037 DATA D0,F7,E6,58,CA,D0,F2,60,AD, 1694 
 1038 DATA 81,1F,29,01,F0,F8,A9,51,8D, 1081 
 1039 DATA A9,1F,AD,96,1F,20,CC,0E,48, 876 
 1040 DATA 86,FC,78,A9,34,85,01,AD,A9, 1203 
 1041 DATA 1F,D0,29,B1,57,AA,B1,59,91, 1125 
 1042 DATA 57,8A,91,59,C8,D0,F3,E6,58, 1428 
 1043 DATA E6,5A,C6,FC,D0,EB,68,20,80, 1477 
 1044 DATA 0F,A8,AE,96,1F,B9,96,1F,8D, 1045 
 1045 DATA 96,1F,8A,99,96,1F,D0,17,8D, 1025 
 1046 DATA A2,0E,B1,59,31,57,91,57,C8, 1010 
 1047 DATA D0,F7,E6,58,E6,5A,CA,D0,F0, 1743 
 1048 DATA 8E,A9,1F,68,A9,37,85,01,58, 892 
 1049 DATA 60,A9,31,8D,A9,1F,60,A9,11, 937 
 1050 DATA 8D,A9,1F,60,A9,51,8D,A9,1F, 1028 
 1051 DATA 60,A0,06,D9,96,1F,F0,03,88, 1039 
 1052 DATA D0,F8,98,48,18,A9,00,69,20, 1010 
 1053 DATA 88,10,FB,85,5A,A2,20,86,58, 1042 
 1054 DATA A0,00,84,57,84,59,68,60,29, 841 
 1055 DATA 01,85,FD,AD,89,1F,29,FE,05, 1028 
 1056 DATA FD,8D,89,1F,AA,AD,81,1F,29, 1106 
 1057 DATA 01,D0,0F,EE,20,D0,EE,27,D0, 1187 
 1058 DATA 8A,10,05,A9,07,20,07,0E,60, 484 
 1059 DATA AD,F9,07,48,A2,04,86,58,A0, 1049 
 1060 DATA 00,84,57,18,20,5F,1A,C8,D0, 804 
 1061 DATA F9,E6,58,CA,D0,F4,F0,3E,AD, 1696 
 1062 DATA F9,07,48,AD,88,1F,A2,04,86, 968 
 1063 DATA 58,A0,00,84,57,91,57,C8,D0, 1107 
 1064 DATA FB,E6,58,CA,D0,F6,F0,23,AE, 1674 
 1065 DATA 89,1F,10,E0,A9,40,85,58,A2, 1024 
 1066 DATA 04,86,5A,D0,0D,AE,89,1F,10, 807 
 1067 DATA 1D,A9,40,85,5A,A2,04,86,58, 873 
 1068 DATA AD,F9,07,48,20,C9,10,68,8D, 995 
 1069 DATA F9,07,A9,0B,8D,F8,07,A9,0D, 1014 
 1070 DATA 8D,FA,07,AE,00,04,8E,88,1F, 885 
 1071 DATA 60,48,AD,84,1F,C9,06,D0,0A, 929 
 1072 DATA AD,AA,1F,C9,02,D0,03,20,48, 892 
 1073 DATA 0F,AD,89,1F,10,18,AD,96,1F, 750 
 1074 DATA 20,B1,0F,20,5E,0F,68,48,A8, 709 
 1075 DATA B9,96,1F,20,B1,0F,20,4F,0F, 716 
 1076 DATA 20,57,0F,68,60,A8,A9,40,18, 759 
 1077 DATA 69,04,88,D0,FB,60,29,03,AA, 1014 
 1078 DATA AD,81,1F,29,03,C9,01,F0,19, 844 
 1079 DATA 29,02,D0,28,BD,9D,1F,8D,85, 942 
 1080 DATA 1F,BD,A1,1F,8D,86,1F,BD,A5, 1072 
 1081 DATA 1F,8D,87,1F,4C,5F,13,AD,85, 834 
 1082 DATA 1F,9D,9D,1F,AD,86,1F,9D,A1, 1032 
 1083 DATA 1F,AD,87,1F,9D,A5,1F,60,8E, 961 
 1084 DATA 8A,1F,60,A9,06,D0,02,A9,0C, 831 
 1085 DATA 8D,94,1F,60,A2,80,D0,02,A2, 1078 
 1086 DATA 00,AD,81,1F,29,04,F0,03,8E, 763 
 1087 DATA 95,1F,60,E0,03,F0,FB,8A,0A, 1142 
 1088 DATA AA,BD,79,EB,85,57,BD,7A,EB, 1481 
 1089 DATA 85,58,B1,57,AA,29,7F,C9,20, 1056 
 1090 DATA B0,06,AC,80,1F,4C,48,0D,8A, 812 
 1091 DATA 29,E0,C9,60,D0,04,A9,40,D0, 1215 
 1092 DATA 09,8A,10,04,09,40,D0,02,29, 491 
 1093 DATA BF,29,7F,85,FD,8A,29,1F,05, 960 
 1094 DATA FD,0D,95,1F,A2,00,86,58,0A, 840 
 1095 DATA 26,58,0A,26,58,0A,26,58,85, 531 
 1096 DATA 57,AD,18,D0,29,02,0A,0A,09, 564 
 1097 DATA D0,05,58,85,58,78,A9,33,85, 995 
 1098 DATA 01,A0,07,B1,57,99,BA,1F,88, 938 
 1099 DATA 10,F8,A9,37,85,01,58,20,11, 759 
 1100 DATA 15,A2,00,20,BE,14,A9,08,85, 735 
 1101 DATA 5F,A0,00,3E,BA,1F,A9,00,90, 847 
 1102 DATA 02,A5,5E,11,57,91,57,20,06, 635 
 1103 DATA 15,C6,5F,D0,EC,E6,5B,E8,E0, 1535 
 1104 DATA 08,D0,DC,A9,00,8D,81,1F,4C, 982 
 1105 DATA BD,12,AD,18,D0,29,02,0A,0A, 675 
 1106 DATA 09,D0,85,58,A9,20,85,5A,A2, 1024 
 1107 DATA 08,78,A9,33,85,01,A0,00,84, 774 
 1108 DATA 57,84,59,B1,57,91,59,C8,D0, 1214 
 1109 DATA F9,E6,58,E6,5A,CA,D0,F2,A9, 1708 
 1110 DATA 37,85,01,58,60,AD,89,1F,49, 787 
 1111 DATA 40,29,40,0D,81,1F,F0,03,4C, 661 
 1112 DATA 27,1D,A0,03,B9,84,1F,99,AF, 907 
 1113 DATA 1F,88,10,F7,AD,96,1F,8D,AE, 1099 
 1114 DATA 1F,A9,01,20,64,0E,A9,0C,4C, 604 
 1115 DATA 07,0E,AD,AE,1F,20,64,0E,A0, 705 
 1116 DATA 03,B9,AF,1F,99,84,1F,88,10, 862 
 1117 DATA F7,AD,84,1F,4C,07,0E,AD,81, 982 
 1118 DATA 1F,29,01,F0,03,4C,F8,0D,AD, 826 
 1119 DATA 15,D0,48,A2,00,8E,15,D0,8E, 976 
 1120 DATA A9,1F,86,FC,E8,86,FD,AD,89, 1515 
 1121 DATA 1F,2A,2A,29,01,49,07,20,64, 369 
 1122 DATA 0E,A0,04,B1,2D,99,59,00,88, 778 
 1123 DATA D0,F8,C6,5B,10,01,60,A4,FC, 1274 
 1124 DATA B1,5C,AE,8D,02,F0,0A,C6,FC, 1286 
 1125 DATA 10,10,A6,5B,86,FC,D0,0A,E6, 1123 
 1126 DATA FC,C4,5B,90,04,A2,00,86,FC, 1235 
 1127 DATA C9,40,B0,2C,29,07,8D,AE,1F, 879 
 1128 DATA 20,CC,0E,78,A9,34,85,01,B1, 902 
 1129 DATA 59,91,57,C8,D0,F9,E6,58,E6, 1526 
 1130 DATA 5A,CA,D0,F2,AD,89,1F,10,09, 1108 
 1131 DATA AD,AE,1F,20,B1,0F,20,4F,0F, 728 
 1132 DATA 4C,3D,12,38,E9,01,48,4A,4A, 665 
 1133 DATA 29,07,18,69,01,8D,AE,1F,20, 556 
 1134 DATA CC,0E,68,48,4A,90,04,A2,A0, 938 
 1135 DATA 86,59,4A,90,06,A5,5A,09,0F, 726 
 1136 DATA 85,5A,A9,27,85,58,A9,D0,85, 1162 
 1137 DATA 57,78,A9,34,85,01,A2,0C,A0, 896 
 1138 DATA A0,88,B1,59,91,57,98,D0,F8, 1402 
 1139 DATA A5,57,18,69,40,85,57,A5,58, 918 
 1140 DATA 69,01,85,58,A5,59,18,69,40, 774 
 1141 DATA 85,59,A5,5A,69,01,85,5A,CA, 1008 
 1142 DATA D0,D9,68,AA,AD,89,1F,10,36, 1110 
 1143 DATA AD,AE,1F,20,B1,0F,85,58,A9, 992 
 1144 DATA 00,85,57,8A,4A,90,04,A2,14, 762 
 1145 DATA 86,57,4A,90,0D,A5,57,18,69, 833 
 1146 DATA E0,85,57,A5,58,69,01,85,58, 1024 
 1147 DATA A9,FA,85,59,A9,04,85,5A,A2, 1199 
 1148 DATA 0B,A0,13,8C,C5,1F,20,1F,1A, 647 
 1149 DATA A9,37,85,01,58,A5,FD,20,D3, 1107 
 1150 DATA 1C,A5,CB,C9,2B,D0,03,38,26, 945 
 1151 DATA FD,C9,28,D0,02,46,FD,AD,00, 1200 
 1152 DATA DC,29,10,F0,03,4C,5A,11,68, 807 
 1153 DATA 8D,15,D0,4C,E8,1C,20,A2,12, 918 
 1154 DATA 29,0F,D0,06,A9,28,8D,83,1F, 782 
 1155 DATA 60,48,29,03,F0,0A,29,01,8D, 645 
 1156 DATA 81,1F,A2,00,20,3E,13,68,29, 580 
 1157 DATA 0C,F0,0C,4A,4A,29,01,8D,81, 724 
 1158 DATA 1F,A2,00,20,C0,12,AE,83,1F, 771 
 1159 DATA EC,94,1F,90,05,CA,CA,8E,83, 1241 
 1160 DATA 1F,60,78,AE,02,DC,A0,00,8C, 943 
 1161 DATA 02,DC,AD,00,DC,CD,00,DC,D0, 1248 
 1162 DATA F8,8E,02,DC,58,49,FF,8D,82, 1299 
 1163 DATA 1F,60,AE,8A,1F,AC,86,1F,AD, 980 
 1164 DATA 81,1F,29,01,D0,1A,18,98,7D, 737 
 1165 DATA 8B,1F,90,24,EE,87,1F,AE,87, 1063 
 1166 DATA 1F,E0,02,90,1A,A9,01,8D,87, 873 
 1167 DATA 1F,A9,F0,B0,11,38,98,FD,8B, 1233 
 1168 DATA 1F,B0,0A,CE,87,1F,10,05,A9, 779 
 1169 DATA 00,8D,87,1F,8D,86,1F,4C,5F, 784 
 1170 DATA 13,AD,84,1F,C9,01,D0,38,AD, 994 
 1171 DATA 81,1F,29,01,49,01,8D,81,1F, 577 
 1172 DATA F0,03,20,BD,12,20,11,15,A2, 714 
 1173 DATA 00,20,BE,14,A9,08,85,5F,A0, 807 
 1174 DATA 00,A5,5E,49,FF,31,57,91,57, 955 
 1175 DATA 20,06,15,C6,5F,D0,F1,E6,5B, 1122 
 1176 DATA E8,E0,08,D0,E1,AD,81,1F,F0, 1470 
 1177 DATA 83,60,AE,8A,1F,AC,85,1F,AD, 1079 
 1178 DATA 81,1F,29,01,D0,0B,18,98,7D, 722 
 1179 DATA 8F,1F,90,0D,A9,FF,B0,09,38, 996 
 1180 DATA 98,FD,8F,1F,B0,02,A9,00,8D, 1067 
 1181 DATA 85,1F,20,BB,13,BD,C5,13,CD, 1012 
 1182 DATA 85,1F,90,03,8D,85,1F,BD,C6, 1003 
 1183 DATA 13,CD,85,1F,B0,03,8D,85,1F, 872 
 1184 DATA AD,87,1F,D0,0D,BD,C7,13,CD, 1172 
 1185 DATA 86,1F,90,10,8D,86,1F,B0,0B, 818 
 1186 DATA BD,C8,13,CD,86,1F,B0,03,8D, 1098 
 1187 DATA 86,1F,AD,85,1F,8D,01,D0,8D, 993 
 1188 DATA 03,D0,AD,86,1F,8D,00,D0,8D, 1039 
 1189 DATA 02,D0,AD,87,1F,0A,0D,87,1F, 738 
 1190 DATA 85,FD,AD,10,D0,29,FC,05,FD, 1334 
 1191 DATA 8D,10,D0,60,AD,F9,07,38,E9, 1179 
 1192 DATA 0D,0A,0A,AA,60,28,EF,0E,4D, 669 
 1193 DATA 2B,EB,11,49,32,E5,18,40,AD, 908 
 1194 DATA 82,1F,29,10,F0,10,20,11,15, 544 
 1195 DATA AD,84,1F,0A,AA,BD,EA,13,48, 1030 
 1196 DATA BD,E9,13,48,60,02,14,E7,13, 881 
 1197 DATA 68,15,0D,16,55,16,9B,17,74, 561 
 1198 DATA 18,42,1A,18,14,86,14,42,14, 400 
 1199 DATA 45,14,95,1A,20,BE,14,AC,8D, 819 
 1200 DATA 02,F0,09,A0,00,49,FF,31,57, 875 
 1201 DATA 91,57,60,11,57,91,57,60,A5, 925 
 1202 DATA 5B,48,A2,00,20,BE,14,A9,18, 760 
 1203 DATA 85,5F,A0,00,A5,5E,49,FF,31, 1024 
 1204 DATA 57,91,57,20,06,15,C6,5F,D0, 879 
 1205 DATA F1,E6,5B,E8,E8,E8,E0,3F,D0, 1753 
 1206 DATA DF,68,85,5B,60,20,19,14,A2, 886 
 1207 DATA 00,20,BE,14,A9,18,85,5F,A0, 823 
 1208 DATA 00,BD,C2,02,8D,BC,1F,BD,C1, 1127 
 1209 DATA 02,8D,BB,1F,BD,C0,02,8D,BA, 1071 
 1210 DATA 1F,2E,BC,1F,2E,BB,1F,2E,BA, 792 
 1211 DATA 1F,A9,00,90,02,A5,5E,11,57, 709 
 1212 DATA 91,57,20,06,15,C6,5F,D0,E6, 1022 
 1213 DATA E6,5B,E8,E8,E8,E0,3F,D0,C2, 1706 
 1214 DATA 60,A9,03,8D,15,D0,A2,00,20, 832 
 1215 DATA BE,14,A9,18,85,5F,A0,00,18, 815 
 1216 DATA B1,57,25,5E,F0,01,38,3E,C2, 948 
 1217 DATA 02,3E,C1,02,3E,C0,02,20,06, 553 
 1218 DATA 15,C6,5F,D0,E8,E6,5B,E8,E8, 1539 
 1219 DATA E8,E0,3F,D0,D6,A9,0B,8D,84, 1394 
 1220 DATA 1F,60,A9,01,85,58,A5,5B,29, 815 
 1221 DATA F8,85,57,0A,26,58,0A,26,58, 740 
 1222 DATA 18,65,57,90,02,E6,58,0A,26, 724 
 1223 DATA 58,0A,26,58,0A,26,58,85,57, 580 
 1224 DATA A5,5B,29,07,85,60,A5,5C,29, 831 
 1225 DATA F8,18,65,60,65,57,85,57,A5, 1042 
 1226 DATA 5D,65,58,85,58,A5,5C,29,07, 808 
 1227 DATA A8,A9,00,38,6A,88,10,FC,85, 1036 
 1228 DATA 5E,60,46,5E,90,06,66,5E,98, 852 
 1229 DATA 69,08,A8,60,20,BB,13,AD,85, 921 
 1230 DATA 1F,38,FD,C5,13,85,5B,AD,86, 1087 
 1231 DATA 1F,38,FD,C7,13,85,5C,AD,87, 1091 
 1232 DATA 1F,E9,00,85,5D,60,20,E8,1C, 878 
 1233 DATA AD,AA,1F,49,01,8D,AA,1F,F0, 1030 
 1234 DATA 2D,A2,02,B5,5B,9D,AB,1F,CA, 1042 
 1235 DATA 10,F8,A2,03,20,E0,0F,AD,02, 875 
 1236 DATA D0,8D,04,D0,AD,03,D0,8D,05, 1091 
 1237 DATA D0,AD,10,D0,6A,08,2A,28,2A, 843 
 1238 DATA 8D,10,D0,A9,06,8D,15,D0,68, 1014 
 1239 DATA 68,60,20,2E,15,20,03,14,A5, 519 
 1240 DATA 5B,48,A5,5C,48,A5,5D,48,AD, 995 
 1241 DATA AC,1F,38,E5,5C,48,AD,AD,1F, 1029 
 1242 DATA E5,5D,8D,BD,1F,B0,0B,68,49, 1047 
 1243 DATA FF,69,01,48,A9,00,ED,BD,1F, 1059 
 1244 DATA 8D,BB,1F,8D,BF,1F,68,8D,BA, 1153 
 1245 DATA 1F,8D,BE,1F,AD,AB,1F,18,E5, 1021 
 1246 DATA 5B,90,04,49,FF,69,FE,8D,BC, 1255 
 1247 DATA 1F,6E,BD,1F,38,ED,BA,1F,AA, 1041 
 1248 DATA A9,FF,ED,BB,1F,85,FC,B0,06, 1446 
 1249 DATA 0A,0A,2A,20,74,17,AD,BE,1F, 627 
 1250 DATA 6D,BC,1F,8D,BE,1F,AD,BF,1F, 1085 
 1251 DATA E9,00,4C,F5,15,AD,BD,1F,B0, 1144 
 1252 DATA E4,0A,2A,0A,49,02,20,5C,17, 512 
 1253 DATA 18,AD,BE,1F,6D,BA,1F,8D,BE, 1075 
 1254 DATA 1F,AD,BF,1F,6D,BB,1F,8D,BF, 1085 
 1255 DATA 1F,08,20,03,14,28,E8,D0,D8, 790 
 1256 DATA E6,FC,D0,D4,68,85,5D,68,85, 1469 
 1257 DATA 5C,68,85,5B,60,20,2E,15,AD, 788 
 1258 DATA AB,1F,48,A5,5B,8D,AB,1F,20, 905 
 1259 DATA 6C,15,68,8D,AB,1F,A5,5C,48, 905 
 1260 DATA A5,5D,48,AD,AC,1F,85,5C,AD, 1104 
 1261 DATA AD,1F,85,5D,20,6C,15,68,85, 828 
 1262 DATA 5D,68,85,5C,A5,5B,48,AD,AB, 1094 
 1263 DATA 1F,85,5B,20,6C,15,68,85,5B, 744 
 1264 DATA A5,5C,8D,AC,1F,A5,5D,8D,AD, 1173 
 1265 DATA 1F,20,6C,15,60,20,2E,15,A2, 549 
 1266 DATA 02,B5,5B,9D,C2,1F,CA,10,F8, 1122 
 1267 DATA A9,00,20,EA,16,20,03,14,20, 544 
 1268 DATA B8,16,85,F9,20,5A,17,08,A9, 910 
 1269 DATA 02,20,EA,16,28,2A,0A,45,F9, 700 
 1270 DATA 20,5C,17,20,72,17,08,A9,04, 497 
 1271 DATA 20,EA,16,28,2A,45,F9,20,74, 836 
 1272 DATA 17,38,AD,BC,1F,ED,BE,1F,AD, 1102 
 1273 DATA BD,1F,ED,BF,1F,B0,06,20,5A, 983 
 1274 DATA 17,4C,A9,16,20,72,17,90,0C, 615 
 1275 DATA A2,02,B5,5B,DD,C2,1F,D0,B4, 1270 
 1276 DATA CA,10,F6,60,38,A5,5C,ED,AC, 1282 
 1277 DATA 1F,A8,A5,5D,ED,AD,1F,08,26, 944 
 1278 DATA FD,28,98,B0,04,49,FF,69,01, 1059 
 1279 DATA 8D,C1,1F,38,AD,AB,1F,E5,5B, 1116 
 1280 DATA 08,26,FD,28,B0,04,49,FF,69, 952 
 1281 DATA 01,8D,C0,1F,A5,FD,49,FF,60, 1207 
 1282 DATA 48,20,B8,16,AD,C0,1F,A2,00, 868 
 1283 DATA 20,36,17,AD,C1,1F,A2,02,20, 702 
 1284 DATA 36,17,68,AA,18,A5,57,65,59, 817 
 1285 DATA 9D,BA,1F,A5,58,65,5A,9D,BB, 1162 
 1286 DATA 1F,8A,F0,23,38,BD,BA,1F,ED, 1143 
 1287 DATA BA,1F,48,BD,BB,1F,ED,BB,1F, 1151 
 1288 DATA B0,0C,A8,68,49,FF,69,01,48, 966 
 1289 DATA 98,49,FF,69,00,9D,BB,1F,68, 1064 
 1290 DATA 9D,BA,1F,60,48,A8,A9,08,85, 1020 
 1291 DATA FC,A9,00,95,57,16,57,36,58, 908 
 1292 DATA 98,0A,A8,90,0B,68,48,18,75, 802 
 1293 DATA 57,95,57,90,02,F6,58,C6,FC, 1253 
 1294 DATA D0,E8,68,60,A5,F9,29,02,F0, 1337 
 1295 DATA 08,A5,5B,F0,36,C6,5B,38,60, 999 
 1296 DATA A5,5B,C9,C7,F0,2C,E6,5B,38, 1317 
 1297 DATA 60,A5,F9,29,01,F0,10,A5,5C, 1065 
 1298 DATA 05,5D,F0,1C,A5,5C,D0,02,C6, 1031 
 1299 DATA 5D,C6,5C,38,60,A5,5D,F0,06, 1039 
 1300 DATA A5,5C,C9,3F,F0,08,E6,5C,D0, 1299 
 1301 DATA 02,E6,5D,38,60,18,60,20,E8, 861 
 1302 DATA 1C,A9,01,20,74,17,A9,00,85, 671 
 1303 DATA F9,A5,5B,8D,AB,1F,BA,8E,BD, 1365 
 1304 DATA 1F,BA,E0,14,90,6C,A5,FD,48, 1203 
 1305 DATA A5,FE,48,A5,5C,48,A5,5D,48, 1150 
 1306 DATA A5,5B,85,FD,AD,AB,1F,85,FE, 1404 
 1307 DATA 20,72,17,90,46,20,23,18,90, 618 
 1308 DATA 41,A5,5B,48,AD,AB,1F,48,20, 872 
 1309 DATA 23,18,90,05,20,B1,17,90,F6, 830 
 1310 DATA 68,85,FE,68,85,FD,A5,F9,49, 1468 
 1311 DATA 01,85,F9,20,72,17,20,23,18, 643 
 1312 DATA 90,05,20,B1,17,90,F6,A5,F9, 1185 
 1313 DATA 49,01,85,F9,20,72,17,AD,00, 798 
 1314 DATA DC,29,10,D0,BC,AE,BD,1F,9A, 1221 
 1315 DATA 4C,E8,1C,68,85,5D,68,85,5C, 995 
 1316 DATA 68,85,FE,68,85,FD,60,A5,FD, 1495 
 1317 DATA 85,5B,A5,FE,8D,AB,1F,20,BE, 1208 
 1318 DATA 14,A0,00,31,57,D0,36,A5,5B, 834 
 1319 DATA F0,0D,C6,5B,20,BE,14,A0,00, 944 
 1320 DATA 31,57,F0,F1,E6,5B,A5,5B,AA, 1364 
 1321 DATA 20,BE,14,A0,00,31,57,D0,0E, 760 
 1322 DATA A5,5E,11,57,91,57,E6,5B,A5, 1081 
 1323 DATA 5B,C9,C8,D0,E9,C6,5B,A5,5B, 1478 
 1324 DATA 8D,AB,1F,86,5B,38,60,E6,5B, 1041 
 1325 DATA AD,AB,1F,C5,5B,B0,B8,60,20, 1151 
 1326 DATA E8,1C,AD,AA,1F,C9,03,D0,05, 1051 
 1327 DATA A9,00,8D,AA,1F,0A,AA,A5,5C, 948 
 1328 DATA 46,5D,6A,4A,4A,9D,BB,1F,A5, 957 
 1329 DATA 5B,4A,4A,4A,9D,BA,1F,EE,AA, 1095 
 1330 DATA 1F,8A,F0,56,C9,02,D0,6A,A2, 1174 
 1331 DATA 00,BD,BC,1F,38,FD,BA,1F,B0, 1110 
 1332 DATA 10,BD,BC,1F,A8,BD,BA,1F,9D, 1155 
 1333 DATA BC,1F,98,9D,BA,1F,90,E7,9D, 1277 
 1334 DATA C4,1F,E8,E0,02,D0,DF,20,57, 1235 
 1335 DATA 0F,A2,00,20,FA,19,8C,C2,1F, 849 
 1336 DATA 8D,C3,1F,AE,C4,1F,AC,C5,1F, 1168 
 1337 DATA A9,BF,91,57,88,10,F9,A5,57, 1245 
 1338 DATA 18,69,28,85,57,90,02,E6,58, 853 
 1339 DATA CA,10,E8,AD,96,1F,8D,AE,1F, 1150 
 1340 DATA 60,AD,AA,1F,C9,03,D0,F8,CE, 1336 
 1341 DATA AA,1F,AD,AE,1F,20,64,0E,4C, 801 
 1342 DATA C5,18,CE,AA,1F,60,AD,BE,1F, 1118 
 1343 DATA 18,6D,C4,1F,8D,C0,1F,C9,19, 950 
 1344 DATA B0,EE,AD,BF,1F,18,6D,C5,1F, 1170 
 1345 DATA 8D,C1,1F,C9,28,B0,E0,20,48, 1110 
 1346 DATA 0F,A2,04,20,FA,19,A5,57,38, 796 
 1347 DATA ED,C2,1F,A5,58,ED,C3,1F,A9, 1347 
 1348 DATA 00,2A,2A,85,F9,69,04,AA,20, 777 
 1349 DATA FA,19,84,59,85,5A,A6,F9,20, 1166 
 1350 DATA FA,19,A0,03,06,57,26,58,06, 663 
 1351 DATA 59,26,5A,88,D0,F5,AD,AE,1F, 1184 
 1352 DATA A0,06,D9,96,1F,F0,03,88,D0, 1151 
 1353 DATA F8,A5,58,18,88,30,04,69,20, 850 
 1354 DATA 90,F9,85,58,A9,00,A0,08,A6, 1117 
 1355 DATA F9,F0,04,A9,FF,A0,F8,84,5C, 1549 
 1356 DATA 85,5D,AD,C4,1F,85,FB,78,A9, 1299 
 1357 DATA 34,85,01,A2,FF,A0,07,B1,57, 1034 
 1358 DATA 91,59,88,10,F9,A0,02,B9,57, 1069 
 1359 DATA 00,18,65,5C,99,57,00,B9,58, 730 
 1360 DATA 00,65,5D,99,58,00,88,88,F0, 947 
 1361 DATA EB,E8,EC,C5,1F,90,DA,E0,27, 1556 
 1362 DATA D0,DF,C6,FB,10,D0,A9,37,85, 1461 
 1363 DATA 01,58,AD,89,1F,10,2F,A2,04, 659 
 1364 DATA 20,FA,19,84,59,85,5A,AD,AE, 1098 
 1365 DATA 1F,CD,96,1F,F0,05,20,B1,0F, 886 
 1366 DATA F0,02,A9,40,18,6D,C3,1F,38, 890 
 1367 DATA E9,04,85,58,AD,C2,1F,85,57, 1076 
 1368 DATA AE,C4,1F,20,1F,1A,20,57,0F, 624 
 1369 DATA 60,A9,00,85,58,BD,BA,1F,0A, 902 
 1370 DATA 0A,18,7D,BA,1F,0A,0A,26,58, 522 
 1371 DATA 0A,26,58,7D,BB,1F,90,02,E6, 855 
 1372 DATA 58,85,57,A8,A5,58,09,04,85, 875 
 1373 DATA 58,60,AC,C5,1F,B1,57,91,59, 1082 
 1374 DATA 88,10,F9,A5,57,18,69,28,85, 955 
 1375 DATA 57,90,02,E6,58,A5,59,18,69, 934 
 1376 DATA 28,85,59,90,02,E6,5A,CA,10, 946 
 1377 DATA DD,60,20,BE,14,A0,03,46,58, 880 
 1378 DATA 66,57,88,D0,F9,A5,58,49,44, 1176 
 1379 DATA 85,5A,A5,57,85,59,A0,00,AD, 1030 
 1380 DATA 8D,02,4A,AD,89,1F,29,01,D0, 808 
 1381 DATA 15,B0,06,AD,20,D0,4C,70,1A, 830 
 1382 DATA B1,59,29,0F,85,FD,B1,57,29, 1013 
 1383 DATA F0,4C,91,1A,B0,0A,AD,20,D0, 1086 
 1384 DATA 0A,0A,0A,0A,4C,89,1A,B1,59, 545 
 1385 DATA 29,F0,85,FD,B1,57,29,0F,05, 992 
 1386 DATA FD,91,57,60,20,E8,1C,A0,04, 1037 
 1387 DATA B9,10,FD,D9,E0,3F,D0,53,88, 1385 
 1388 DATA 10,F5,A9,3E,85,58,A5,5B,C9, 1170 
 1389 DATA C0,90,02,A9,BF,29,F0,85,FD, 1365 
 1390 DATA 4A,4A,65,FD,85,FD,A5,5D,4A, 1220 
 1391 DATA A5,5C,6A,4A,4A,4A,18,65,FD, 963 
 1392 DATA 0A,90,02,E6,58,85,57,A0,01, 855 
 1393 DATA B1,57,AA,88,B1,57,29,40,D0, 1147 
 1394 DATA 1B,B1,57,30,18,C9,04,B0,08, 752 
 1395 DATA 8D,81,1F,8A,A8,4C,48,0D,48, 840 
 1396 DATA 8A,A8,20,48,0D,68,A8,4C,48, 843 
 1397 DATA 0D,60,A8,29,01,8D,81,1F,08, 628 
 1398 DATA 98,4A,4A,A8,28,D0,01,88,8C, 993 
 1399 DATA 20,D0,8C,27,D0,8A,A8,4C,48, 1081 
 1400 DATA 0D,48,29,01,D0,1F,A9,20,85, 700 
 1401 DATA 58,A2,E0,78,A9,34,85,01,A9, 1118 
 1402 DATA 00,85,57,A8,91,57,C8,D0,FB, 1279 
 1403 DATA E6,58,CA,D0,F6,A9,37,85,01, 1332 
 1404 DATA 58,A2,00,8E,17,D0,8E,1D,D0, 1002 
 1405 DATA 8E,1C,D0,8E,1B,D0,20,C8,1C, 1015 
 1406 DATA A9,04,8D,20,D0,A0,25,B9,91, 1081 
 1407 DATA 1B,99,84,1F,88,10,F7,68,8D, 987 
 1408 DATA 89,1F,10,23,A9,00,8D,97,1F, 711 
 1409 DATA AD,89,1F,29,01,D0,17,A9,40, 847 
 1410 DATA 85,58,AD,88,1F,A2,1C,A0,00, 911 
 1411 DATA 84,57,91,57,C8,D0,FB,E6,58, 1428 
 1412 DATA CA,D0,F6,AD,89,1F,29,40,F0, 1342 
 1413 DATA 08,20,F2,10,A9,02,8D,AE,1F, 815 
 1414 DATA 4C,74,1C,00,8C,AE,00,F6,00, 780 
 1415 DATA 01,01,08,18,A0,01,08,15,60, 320 
 1416 DATA 20,06,00,01,07,02,03,04,05, 60 
 1417 DATA 06,8C,8C,8C,8C,AE,AE,AE,AE, 1262 
 1418 DATA 00,00,00,00,A9,93,20,D2,FF, 813 
 1419 DATA A9,01,8D,15,D0,8D,10,D0,A9, 1074 
 1420 DATA 10,8D,00,D0,A9,88,8D,01,D0, 1020 
 1421 DATA A9,04,85,58,A9,D8,85,5A,A2, 1164 
 1422 DATA 00,86,57,86,59,A9,19,85,FB, 1022 
 1423 DATA A0,00,BD,C0,02,8D,BA,1F,BD, 1090 
 1424 DATA C1,02,8D,BB,1F,BD,C2,02,8D, 1080 
 1425 DATA BC,1F,A9,06,91,59,C0,18,B0, 1020 
 1426 DATA 1C,A5,FB,C9,05,90,16,AD,93, 1136 
 1427 DATA 1F,49,80,91,57,2E,BC,1F,2E, 775 
 1428 DATA BB,1F,2E,BA,1F,90,04,A9,04, 802 
 1429 DATA 91,59,C8,C0,28,D0,D7,E8,E8, 1553 
 1430 DATA E8,A5,57,18,69,28,85,57,85, 1006 
 1431 DATA 59,90,04,E6,58,E6,5A,C6,FB, 1324 
 1432 DATA D0,AD,A9,06,8D,27,D0,A5,5B, 1200 
 1433 DATA 8D,BA,1F,A5,5C,8D,BB,1F,A2, 1136 
 1434 DATA 00,20,FA,19,60,20,57,0F,AD, 710 
 1435 DATA 18,D0,29,F7,8D,18,D0,AD,11, 1083 
 1436 DATA D0,29,DF,8D,11,D0,20,CC,FF, 1329 
 1437 DATA A9,93,20,D2,FF,A9,0F,8D,21, 1171 
 1438 DATA D0,A9,06,8D,86,02,A9,00,85, 962 
 1439 DATA C6,8D,15,D0,60,20,E1,1C,A2, 1111 
 1440 DATA 00,A0,00,B9,F0,1C,85,57,F0, 1073 
 1441 DATA 27,C9,FF,D0,04,E8,C8,D0,F1, 1588 
 1442 DATA B9,F1,1C,9D,40,03,E8,B9,F2, 1337 
 1443 DATA 1C,9D,40,03,E8,B9,F3,1C,9D, 1097 
 1444 DATA 40,03,E8,C6,57,D0,E7,C8,C8, 1423 
 1445 DATA C8,C8,D0,D2,AD,18,D0,09,08, 1240 
 1446 DATA 8D,18,D0,AD,11,D0,09,20,8D, 953 
 1447 DATA 11,D0,20,48,0F,AD,20,D0,8D, 898 
 1448 DATA 27,D0,AD,84,1F,4C,07,0E,A9, 849 
 1449 DATA 00,A0,3F,99,C0,02,88,10,FA, 972 
 1450 DATA 60,AA,F0,0A,A0,00,EA,EA,88, 1280 
 1451 DATA D0,FB,CA,D0,F8,60,A5,CB,C9, 1782 
 1452 DATA 40,D0,FA,60,20,A2,12,29,10, 887 
 1453 DATA D0,F9,60,08,00,20,00,02,00, 595 
 1454 DATA 00,00,01,FF,07,F8,02,00,00, 513 
 1455 DATA 00,08,00,20,00,FF,06,00,00, 301 
 1456 DATA 00,01,03,FF,00,08,02,01,00, 270 
 1457 DATA 01,03,FF,00,05,00,00,00,FF, 519 
 1458 DATA 01,FF,FF,FF,13,C0,00,03,01, 981 
 1459 DATA FF,FF,FF,00,20,E1,1C,A9,20, 1251 
 1460 DATA 8D,93,1F,A9,00,85,5B,85,5C, 937 
 1461 DATA 8D,83,1F,20,47,1C,20,B6,1B, 675 
 1462 DATA 20,55,1D,20,2E,1E,20,7D,1E, 441 
 1463 DATA A9,30,20,D3,1C,A5,CB,C9,3C, 1117 
 1464 DATA D0,EC,4C,74,1C,A5,CB,CD,80, 1365 
 1465 DATA 1F,D0,01,60,8D,80,1F,C9,24, 873 
 1466 DATA D0,25,A0,3C,B9,C0,02,20,0A, 886 
 1467 DATA 1E,99,BC,1F,B9,C2,02,20,0A, 825 
 1468 DATA 1E,99,BA,1F,B9,C1,02,20,0A, 822 
 1469 DATA 1E,99,BB,1F,88,88,88,10,E0, 1049 
 1470 DATA 4C,19,1E,C9,16,D0,14,A0,00, 742 
 1471 DATA A2,3E,B9,C0,02,20,0A,1E,9D, 832 
 1472 DATA BA,1F,C8,CA,10,F3,4C,19,1E, 1009 
 1473 DATA C9,11,D0,44,A9,02,85,FB,A4, 1213 
 1474 DATA FB,84,FD,BE,28,1E,B9,2B,1E, 1154 
 1475 DATA 85,FA,A9,03,85,FC,A9,08,85, 1250 
 1476 DATA FE,A4,FA,8A,48,A9,00,3E,C0, 1301 
 1477 DATA 02,6A,E8,E8,E8,88,D0,F6,A4, 1558 
 1478 DATA FD,99,BA,1F,C8,C8,C8,84,FD, 1608 
 1479 DATA 68,AA,C6,FE,D0,E0,E8,C6,FC, 1840 
 1480 DATA D0,D7,C6,FB,10,C3,4C,19,1E, 1214 
 1481 DATA C9,1A,D0,0B,AD,93,1F,49,6F, 981 
 1482 DATA 8D,93,1F,4C,B6,1B,C9,33,D0, 1064 
 1483 DATA 0D,AD,8D,02,29,01,F0,06,20, 649 
 1484 DATA C8,1C,4C,B6,1B,60,85,FE,84, 1128 
 1485 DATA FD,A0,08,26,FE,6A,88,D0,FA, 1413 
 1486 DATA A4,FD,60,A0,3E,B9,BA,1F,99, 1290 
 1487 DATA C0,02,88,10,F7,20,B6,1B,60, 930 
 1488 DATA 27,0F,00,08,08,05,20,A2,12, 287 
 1489 DATA A0,00,29,0F,F0,35,4A,A6,5B, 840 
 1490 DATA F0,04,90,02,C6,5B,4A,90,06, 903 
 1491 DATA E0,14,B0,02,E6,5B,4A,A6,5C, 1075 
 1492 DATA F0,04,90,02,C6,5C,4A,90,06, 904 
 1493 DATA E0,17,B0,02,E6,5C,AD,93,1F, 1098 
 1494 DATA 49,80,91,57,20,37,1C,AD,93, 868 
 1495 DATA 1F,A0,00,91,57,AD,83,1F,49, 831 
 1496 DATA 01,8D,83,1F,F0,06,B1,57,49, 887 
 1497 DATA 80,91,57,60,AD,82,1F,29,10, 847 
 1498 DATA F0,3C,20,F7,14,A5,5C,4A,4A, 1004 
 1499 DATA 4A,A0,03,18,65,5B,88,D0,FB, 1048 
 1500 DATA A8,A5,5E,AE,8D,02,D0,0B,19, 988 
 1501 DATA C0,02,99,C0,02,A9,04,4C,B1, 967 
 1502 DATA 1E,49,FF,39,C0,02,99,C0,02, 956 
 1503 DATA A9,06,A8,A5,58,AA,49,DC,85, 1192 
 1504 DATA 58,98,A0,00,91,57,86,58,60, 950 
 1505 DATA A0,03,D9,22,1F,F0,03,88,D0, 1032 
 1506 DATA F8,C8,98,0A,0A,AA,A0,03,CA, 1155 
 1507 DATA BD,26,1F,99,B6,1F,88,10,F6, 1022 
 1508 DATA AD,80,1F,4A,4A,4A,8D,B4,1F, 906 
 1509 DATA A9,04,AE,B3,1F,AC,B4,1F,20, 972 
 1510 DATA BA,FF,A0,02,B1,2D,48,C8,B1, 1274 
 1511 DATA 2D,AA,C8,B1,2D,A8,68,20,BD, 1130 
 1512 DATA FF,AE,B6,1F,86,57,AC,B7,1F, 1249 
 1513 DATA 84,58,AD,B4,1F,D0,06,A9,00, 987 
 1514 DATA 20,D5,FF,60,A9,57,AE,B8,1F, 1241 
 1515 DATA AC,B9,1F,20,D8,FF,60,47,46, 1128 
 1516 DATA 53,5A,00,20,00,40,00,20,00, 301 
 1517 DATA 44,C0,02,FF,02,00,20,00,28, 591 
 1518 DATA A2,03,20,C6,FF,20,CF,FF,20, 1176 
 1519 DATA D2,FF,D0,F8,A9,0D,20,D2,FF, 1600 
 1520 DATA 20,CC,FF,60,FF,9C,          998 
Listing 2. HI-EXE ist das umfangreichste Unterprogramm im HI-EDDI-System. Nach dem Starten speichert es sich selbst als Maschinenprogramm auf Diskette. Lesen Sie vor dem Abtippen den Beitrag »Checksummer« in dieser Ausgabe.
|
50 ifa<2thena=a+2:load"hi-exe",8,1
60 ifa=3then150
70 ifa=4then650
100 input"betriebsart";c:poke780,c:poke56,13:clr:w$="123456":sys3328
110 ifpeek(8073)and64thena=3:load"menue",8,1
150 sys3337:a=peek(8064)
160 ona+1gosub200,250,300,290,400,600,290,290,500,510,300:goto150
200 open3,8,0,"$0":get#3,c$,c$
210 get#3,c$,c$,l$,h$:ifc$=""thenclose3:wait198,1:return
220 print256*asc(h$+chr$(0))+asc(l$+chr$(0));:sys3334:goto210
250 print"{clr}{down}sequenz:":print"{down}  "w$:input"{home}{down}{down}{down}";w$:iflen(w$)<2then250
290 return
300 poke8115,8:print"{clr}{down}g=grafikbild":ifpeek(8073)>127thenprint"f=farbbild"
310 print"s=sprite":print"z=zeichensatz":print"{down} -->";
320 getc$:ifc$<>"g"andc$<>"f"andc$<>"s"andc$<>"z"then320
330 printc$:poke780,asc(c$):h$=w$:input"{down}filename";w$:sys3331:w$=h$:h$=""
340 open1,8,15,h$:input#1,a,h$:printa;h$:ifa>0thenwait198,1
350 close1:return
400 poke631,34:poke198,1:h$="":input"{clr}{down}";h$:goto340
500 a=8075:goto520
510 a=8079
520 d=peek(8074):c=peek(a+d):print"{clr}{down}f"2*d+1:print"schrittweite:"c,
530 inputc:ifc<1orc>160then530
540 pokea+d,c:return
600 input"{clr}{down}nummer 1.bild";d:c=(dand7)
610 input"{down}nummer 2.bild (0=nur 1 bild)";d:c=c+8*(dand7):ifd>0thenc=c+64
620 ifd=0thenprint"{down}gross";:gosub800:ifc$="j"thenc=c+128
630 print"{down}drucken";:gosub800:ifc$="n"then660
640 ifa=5thena=4:load"hi-print",8,1
650 poke780,c:sys3328:print"{down}nochmal";:gosub800:ifc$="j"then600
660 ifa=5thenreturn
670 a=1:goto50
800 print" ? (j/n)";
810 getc$:ifc$<>"j"andc$<>"n"then810
820 printc$:return
 50 IF A<2 THENA=A+2:LOAD "HI-EXE",8,1 
 60 IF A=3 THEN150 
 70 IF A=4 THEN650 
 100 INPUT"BETRIEBSART";C:POKE 780,C:POKE 56,13:CLR :W$="123456":SYS 3328 
 110 IF PEEK (8073)AND 64 THENA=3:LOAD "MENUE",8,1 
 150 SYS 3337:A=PEEK (8064) 
 160 ON A+1GOSUB 200,250,300,290,400,600,290,290,500,510,300:GOTO 150 
 200 OPEN 3,8,0,"$0":GET #3,C$,C$ 
 210 GET #3,C$,C$,L$,H$:IF C$="" THENCLOSE 3:WAIT 198,1:RETURN 
 220 PRINT256*ASC (H$+CHR$ (0))+ASC (L$+CHR$ (0));:SYS 3334:GOTO 210 
 250 PRINT"{CLR,DOWN}SEQUENZ:":PRINT"{DOWN,2SPACE}"W$:INPUT"{HOME,3DOWN}";W$:IF LEN (W$)<2 THEN250 
 290 RETURN 
 300 POKE 8115,8:PRINT"{CLR,DOWN}G=GRAFIKBILD":IF PEEK (8073)>127 THENPRINT"F=FARBBILD" 
 310 PRINT"S=SPRITE":PRINT"Z=ZEICHENSATZ":PRINT"{DOWN,SPACE}-->"; 
 320 GET C$:IF C$<>"G"AND C$<>"F"AND C$<>"S"AND C$<>"Z" THEN320 
 330 PRINTC$:POKE 780,ASC (C$):H$=W$:INPUT"{DOWN}FILENAME";W$:SYS 3331:W$=H$:H$="" 
 340 OPEN 1,8,15,H$:INPUT#1,A,H$:PRINTA;H$:IF A>0 THENWAIT 198,1 
 350 CLOSE 1:RETURN 
 400 POKE 631,34:POKE 198,1:H$="":INPUT"{CLR,DOWN}";H$:GOTO 340 
 500 A=8075:GOTO 520 
 510 A=8079 
 520 D=PEEK (8074):C=PEEK (A+D):PRINT"{CLR,DOWN}F"2*D+1:PRINT"SCHRITTWEITE:"C, 
 530 INPUTC:IF C<1OR C>160 THEN530 
 540 POKE A+D,C:RETURN 
 600 INPUT"{CLR,DOWN}NUMMER 1.BILD";D:C=(DAND 7) 
 610 INPUT"{DOWN}NUMMER 2.BILD (0=NUR 1 BILD)";D:C=C+8*(DAND 7):IF D>0 THENC=C+64 
 620 IF D=0 THENPRINT"{DOWN}GROSS";:GOSUB 800:IF C$="J" THENC=C+128 
 630 PRINT"{DOWN}DRUCKEN";:GOSUB 800:IF C$="N" THEN660 
 640 IF A=5 THENA=4:LOAD "HI-PRINT",8,1 
 650 POKE 780,C:SYS 3328:PRINT"{DOWN}NOCHMAL";:GOSUB 800:IF C$="J" THEN600 
 660 IF A=5 THENRETURN 
 670 A=1:GOTO 50 
 800 PRINT" ? (J/N)"; 
 810 GET C$:IF C$<>"J"AND C$<>"N" THEN810 
 820 PRINTC$:RETURN 
Listing 3. HI-EDDI ist sozusagen das Steuerprogramm. ruft die anderen benötigten Programme auf. Tippen Sie die REM-Zeilen nicht mit ab.
|
10 rem*********************************
20 rem*                               *
30 rem*            hi-eddi            *
40 rem*        von hans haberl        *
50 rem*                               *
60 rem*  data's fuer die steuerzeile  *
70 rem*    der beispiel-menuetafel    *
80 rem*********************************
90 rem je zwei aufeinanderfolgende data-zeilen
100 rem ergeben eine zeile in der menuetafel (=20 felder)
110 data 64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0
120 data 64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0
130 data 0,18,0,18,0,18,0,20,0,20,0,20,0,22,0,22,0,22
140 data 0,13,0,13,0,13,0,10,0,10,0,10,0,56,56,23,56,38,56,30,1,51
150 data 0,18,0,18,0,18,0,20,0,20,0,20,0,22,0,22,0,22
160 data 0,13,0,13,0,13,0,10,0,10,0,10,0,59,59,23,59,38,59,30,1,51
170 data 0,42,0,42,0,42,0,41,0,41,0,41,0,9,0,9,0,9
180 data 0,26,0,26,0,26,0,14,0,14,0,14,0,8,8,23,8,38,8,30,1,51
190 data 0,42,0,42,0,42,0,41,0,41,0,41,0,9,0,9,0,9
200 data 0,26,0,26,0,26,0,14,0,14,0,14,0,11,11,23,11,38,11,30,0,33
210 data 0,17,0,17,0,17,0,36,0,36,0,36,1,9,1,9,1,9
220 data 1,60,1,60,1,60,1,60,1,60,1,60,0,16,16,23,16,38,16,30,0,33
230 data 0,17,0,17,0,17,0,36,0,36,0,36,1,9,1,9,1,9
240 data 1,60,1,60,1,60,1,60,1,60,1,60,0,19,19,23,19,38,19,30,0,33
250 data 128,21,132,21,136,21,140,21,144,21,148,21,152,21,156,21,160,21
260 data 164,21,168,21,172,21,176,21,180,21,184,21,188,21,0,4,0,5,0,6,0,3
270 data 128,28,132,28,136,28,140,28,144,28,148,28,152,28,156,28,160,28
280 data 164,28,168,28,172,28,176,28,180,28,184,28,188,28,1,4,1,5,1,6,1,3
290 data 129,21,133,21,137,21,141,21,145,21,149,21,153,21,157,21,161,21
300 data 165,21,169,21,173,21,177,21,181,21,185,21,189,21,2,4,2,5,2,6,2,3
310 data 129,28,133,28,137,28,141,28,145,28,149,28,153,28,157,28,161,28
320 data 165,28,169,28,173,28,177,28,181,28,185,28,189,28,0,29,0,29,0,31,0,31
330 data 2,18,2,18,2,18,2,18,2,42,2,42,2,42,2,42,2,13,2,13,2,13,2,13
340 data 2,20,2,20,2,20,2,20,2,41,2,41,2,41,2,41
350 rem  kennung "cbm80" ,als menuekennung missbraucht
360 data 195,194,205,56,48
370 :
380 poke 56,32:clr:rem im speicher befindliche menuetafel schuetzen
390 for i=15872 to 15872+484:read a:poke i,a :s=s+a:next i
400 if s<>18329 then print"data-fehler!"
 10 REM ********************************* 
 20 REM *                               * 
 30 REM *            HI-EDDI            * 
 40 REM *        VON HANS HABERL        * 
 50 REM *                               * 
 60 REM *  DATA'S FUER DIE STEUERZEILE  * 
 70 REM *    DER BEISPIEL-MENUETAFEL    * 
 80 REM ********************************* 
 90 REM JE ZWEI AUFEINANDERFOLGENDE DATA-ZEILEN 
 100 REM ERGEBEN EINE ZEILE IN DER MENUETAFEL (=20 FELDER) 
 110 DATA 64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0 
 120 DATA 64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0 
 130 DATA 0,18,0,18,0,18,0,20,0,20,0,20,0,22,0,22,0,22 
 140 DATA 0,13,0,13,0,13,0,10,0,10,0,10,0,56,56,23,56,38,56,30,1,51 
 150 DATA 0,18,0,18,0,18,0,20,0,20,0,20,0,22,0,22,0,22 
 160 DATA 0,13,0,13,0,13,0,10,0,10,0,10,0,59,59,23,59,38,59,30,1,51 
 170 DATA 0,42,0,42,0,42,0,41,0,41,0,41,0,9,0,9,0,9 
 180 DATA 0,26,0,26,0,26,0,14,0,14,0,14,0,8,8,23,8,38,8,30,1,51 
 190 DATA 0,42,0,42,0,42,0,41,0,41,0,41,0,9,0,9,0,9 
 200 DATA 0,26,0,26,0,26,0,14,0,14,0,14,0,11,11,23,11,38,11,30,0,33 
 210 DATA 0,17,0,17,0,17,0,36,0,36,0,36,1,9,1,9,1,9 
 220 DATA 1,60,1,60,1,60,1,60,1,60,1,60,0,16,16,23,16,38,16,30,0,33 
 230 DATA 0,17,0,17,0,17,0,36,0,36,0,36,1,9,1,9,1,9 
 240 DATA 1,60,1,60,1,60,1,60,1,60,1,60,0,19,19,23,19,38,19,30,0,33 
 250 DATA 128,21,132,21,136,21,140,21,144,21,148,21,152,21,156,21,160,21 
 260 DATA 164,21,168,21,172,21,176,21,180,21,184,21,188,21,0,4,0,5,0,6,0,3 
 270 DATA 128,28,132,28,136,28,140,28,144,28,148,28,152,28,156,28,160,28 
 280 DATA 164,28,168,28,172,28,176,28,180,28,184,28,188,28,1,4,1,5,1,6,1,3 
 290 DATA 129,21,133,21,137,21,141,21,145,21,149,21,153,21,157,21,161,21 
 300 DATA 165,21,169,21,173,21,177,21,181,21,185,21,189,21,2,4,2,5,2,6,2,3 
 310 DATA 129,28,133,28,137,28,141,28,145,28,149,28,153,28,157,28,161,28 
 320 DATA 165,28,169,28,173,28,177,28,181,28,185,28,189,28,0,29,0,29,0,31,0,31 
 330 DATA 2,18,2,18,2,18,2,18,2,42,2,42,2,42,2,42,2,13,2,13,2,13,2,13 
 340 DATA 2,20,2,20,2,20,2,20,2,41,2,41,2,41,2,41 
 350 REM  KENNUNG "CBM80" ,ALS MENUEKENNUNG MISSBRAUCHT 
 360 DATA 195,194,205,56,48 
 370 : 
 380 POKE 56,32:CLR :REM IM SPEICHER BEFINDLICHE MENUETAFEL SCHUETZEN 
 390 FOR I=15872  TO 15872+484:READ A:POKE I,A :S=S+A:NEXT I 
 400 IF S<>18329  THEN PRINT"DATA-FEHLER!" 
Listing 4. Ein Beispiel für den Aufbau einer Steuertafel für ein selbsterstelltes Menü. Einzelheiten finden Sie in der Beschreibung.
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →