Autor:	Dieter Temme
Titel:	Casio PB 1000 Intern: Dokumentiertes ROM-Listing
Verlag:	Fischel GmbH
ISBN:	3-893740-028-7
Jahr:	1989
~Seite 2
Inhaltsverzechniss

0.    Vorwort  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   3
--------------------------------------------------------------------------------
I.    Tips zur erweiterten Benutzung der CALL-Anweisung  .  .  .  .  .  .  .   4
II.   Die nicht dokumentierten Befehle des HD61700-Prozessors  .  .  .  .  .   5
--------------------------------------------------------------------------------
III.  Spezifikationen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .   8
IV.   bersicht ber den Bereich von &h0000 bis &h6FFF   .  .  .  .  .  .  .  11
--------------------------------------------------------------------------------
V.    Dokumentiertes ROM-Listing von &h8000 bis &hFFFF   .  .  .  .  .  .  .  18
--------------------------------------------------------------------------------
Anhang:
A.    bersicht ber alle Befehle des HD61700-Prozessors .  .  .  .  .  .  . 250
B.    Referenzliste  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 252
C.    Index .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 260
~Seite 3
0. Vorwort

 Mit diesem Buch wird es Ihnen mglich sein, Ihre Maschinenprogramme mit ROM-
Routinen krzer und besser zu schreiben. Dabei spielt es keine Rolle, zu wel-
chem Zweck die Software gedacht ist. Fr die Zusammenarbeit mit BASIC, mit dem
ausgeklgelten, aber auch etwas komplizierten Filesystem oder auch fr kleine
Tools ist dieser Wissensschatz fast unersetzlich.

 Von der Idee des ROM-Listings bis zur Ihnen vorliegenden Ausgabe des Buchs
liegen mehr als ein Jahr harte Arbeit, die mehr als einmal von Hoffnungslosig-
keit gekennzeichnet war. Da daraus doch ein Buch geworden ist, liegt daran, da
das ROM-Listing einfach unentbehrlich bei der Maschinen-Programmentwicklung ist.
Wre CASIO in der Lage gewesen, eine komplette Liste aufrufbarer Routinen und
einen kompletten Assembler (u.U. auch im RAM arbeitend) zu liefern, so htte ich
auf die Erstellung eines ROM-Listings verzichten knnen. Mich selbst strte
immer die Unvollkommenheit meiner eigenen Routinen, zumal ROM-Listings fr die
Commodore-Rechner C-64 und C-128, auf denen ich lange Zeit programmiert habe,
die selbstverstndlichste Sache der Welt sind. Ohne solche Hilfsmittel kme man
dort auch nicht sehr weit bei der Programmierung sinnvoller Tools.

 Nun taten sich bei der Erstellung des ROM-Listings tausend Probleme auf, denn
der Code im ROM war zuerst nicht von mir zu entziffern. Erst nach einiger Zeit
des Forschens im ROM stie ich auf Code-Sequenzen, bei denen ich mir den Sinn
denken konnte, so da mein Bild von den undokumentierten Befehlen immer voll-
stndiger wurde. Eine Abhandlung darber finden Sie auch in diesem Buch. Ohne
diese zum Teil sehr hilfsreichen Befehle wre das Programm im ROM bei gleicher
Leistungsfhigkeit zwanzig bis dreiig Prozent lnger bzw. mten erhebliche
Abstriche bei Geschwindigkeit und Leistungsfhigkeit der Routinen gemacht wer-
den. Auch Sie knnen von den undokumentierten Befehlen profitieren. Dazu mssen
Sie aber die Codes selbst berechnen und in DB-Direktiven in die Quellfiles brin-
gen.

 Besonders die Routinen im Prozessor-ROM sind bisher nicht entschlsselbar, da
man dieses ROM nicht auslesen kann. Daher lieen sich auch nicht alle Routinen
in ihrer Arbeit erkennen. Darberhinaus gibt es ein paar Systemvariablen, deren
Sinn im Dunkeln liegt. Trotzdem sind aber die meisten Routinen in ihren Ergeb-
nissen ohne genaue Kenntnis der Programmierung bekannt.

Bei der Maschinenprogrammierung treten hufig Probleme auf, die sich mithilfe
dieses Buches leicht lsen lassen sollten, so da ich sicher bin, da "PB-1000
Intern" genau wie bei mir auch bei Ihnen seinen festen Platz neben dem Rechner
bekommt.

								Dieter Temme
~Seite 4
I. Tips zur erweiterten Benutzung der CALL-Anweisung

Wer eigene Befehle und Funktionen schreiben mchte, stt auf einige Schwierig-
keiten, die ihr/ihm das Betriebssystem des PB-1000 macht. Viele Routinen sind
nicht dafr geschrieben werden, um "von auen" angesprungen zu werden, so da
eine teilweise Neuprogrammierung leider oft unumgnglich ist. Zudem werden keine
Hilfen zur Einbindung eigener Befehle und Funktionen gegeben. So gibt es z.B.
keine Vektoren, ber die eine Umleitung von System-Prozessen ber eigene Routi-
nen mglich wre, wie man dies von den sogenannten Personal Computern, aber auch
schon vom Oldie Commodore 64 gewohnt ist.

 Es bleibt einem nichts als hinzunehmen, da die CALL-Anweisung die einzige
Mglichkeit zur Einbindung eigener Befehle darstellt. Dabei gilt es folgendes
zu beachten: beim Aufruf liegt auf Systemstack zum einen die Rcksprungadresse
zum aufrufenden Programm, dies ist entweder die CALL- oder BLOAD,R-Anweisung
oder das MENU. Man kann also ber die Rckprungadresse die Herkunft des Aufrufe
feststellen und entsprechend im Maschinenprogramm darauf reagieren. Um richtig
zurckzukehren, mu die Rckkehradresse i.a. natrlich wieder auf den Stack
gebracht werden. Zum zweiten liegt als nchstes der Textzeiger auf dem System-
stack. Wird dieser nach IX gebracht, knnen alle Routinen im ROM zum berlesen
von Sonderzeichen wie Kommata oder Gleichheitszeichen sowie die zum Lesen von
beliebigen Ausdrcken wie Strings, Zahlen und Variablenzeigern usw. benutzt wer-
den.

Beispiel 1: Reagieren auf Aufruf-Art
	PPSW	50	;Rcksprungadresse vom Systemstack holen
	PHSW	51	; und wieder speichern
	SBC	$1,&hDD	;Aufruf von der CALL- oder BLOAD-Anweisung?
	JR	Z,CALL	;dann ->
	...		;hier Ausfhrung bei Aufruf vom MENU

CALL:	...		;hier Ausfhrung bei CALL-Anweisung

Beispiel 2: Setzen des Textzeigers
	PPSW	$0	;Rcksprungadresse vom Stack holen
	PPSW	$0	;Textzeiger vom Stack holen
	PRE	IX,$0	;und nach IX bringen
	CAL	&h013A	;Komma im Text berlesen
	CAL	&h9BE5	;Ausdruck aus dem Text lesen

Um keine Fehlermeldung zu erzeugen, sollte die Rcksprungadresse nicht wieder
zurckgespeichert werden, wenn der Textzeiger verndert wurde. Ein einfaches
RTN gengt vollkommen, um in die aufrufende Interpreter-Schleife zu kommen, die
evtl. den nchsten Befehl auf der Zeile liest und ausfhrt. Es mu natrlich
immer darauf geachtet werden, da der Textzeiger auf das nchste nichtbearbei-
tete Zeichen zeigt und die Register $30 und $31 nicht zerstrt werden, da sie
wichtige Kurzregister darstellen und daher elementar wichtig sind (s. nchste
Seite). Werden diese Regeln miachtet, so kann mit einem Absturz des Rechners
gerechnet werden.

Mit diesen wenigen Regeln sind Sie jetzt in der Lage, viele ROM-Routinen in Ihre
Programme einzubauen. Oftmals geht aber nur Probieren ber Studieren.
~Seite 5
II. Nicht dokumentierte Befehle des HD61700-Prozessors

Es gibt weit mehr Befehle, als uns das CASIO-Befehlssatz-Handbuch weismachen
will. Die Bedeutungen habe ich meist mittels ausgiebiger Versuche ermittelt,
manchmal war das gar nicht so einfach. Ein durchgehendes Ordnungskonzept fr
die neuen Opcodes und Adressierungsarten dauerte auch noch seine Zeit, whrend-
dessen wurde schon eine erste Version des ROM-Listings erstellt. so da ich
das ROM-Listing immer wieder modifizieren mute. Ich hoffe, da nicht noch eine
ltere Bezeichnungsweise im Listing zu finden ist. Zudem gibt es ein paar weni-
ge Befehle, die meiner Meinung nach keine Auswirkung auf mir bekannte Register
haben, so da die Bedeutung nicht ergrndet werden konnte. Hauptschlich befas-
sen sich diese Befehle aber mit dem im Befehlssatz-Handbuch zwar (wahrschein-
lich aus Versehen!) erwhnten, aber nicht benannten Anzeigetreibersteuerungs-
Register (siehe Befehlssatz-Handbuch S. 123 Mitte). Diese neuen Befehle und
Adressierungsarten sind nicht im ROM-Assembler verfgbar (auer ber DB-Direk-
tiven)!

Weitere bertragungsbefehle

LDD (LoaD and Decrement, Lnge 3 Bytes)
entspricht LD-Befehl (Adressierungsarten wie beim LDI-Befehl).
Beispielablauf fr LDD $8,(IX-$30):
   IX:= IX-($30), $8:= (IX)

STD (STore and Decrement, Lnge 3 Bytes)
entspricht dem ST-Befehl (Adressierungsarten wie beim STI-Befehl).
Beispielablauf fr STD $3,(IZ+$1):
   IZ:= IZ+($1), (IZ):= ($3)

LDDW (LoaD Word and Decrement, Lnge 3 Bytes)
Benutzung analog zum LDIW-Befehl. Nur wird das IX/IZ-Register nicht herauf-
sondern herabgezhlt. Dabei zeigt das Indexregister nach der Ausfhrung auf die
Adresse des zuletzt geschriebenen Bytes (Adressierungsarten wie beim LDIW-
Befehl).
Beispielablauf fr LDDW $10,(IX+$31):
   IX:= IX+($31), $10:= (IX), IX:= IX-1, $9:= (IX)

STDW (STore Word and Decrement, Lnge 3 Bytes)
Benutzung analog zum STIW-Befehl. Arbeitsweise s. LDDW.

ST C8,(#c) (STore, Lnge 3 Bytes)
Direktes Speichern eines Byte-Werts in einer Speicherzelle, auf die ein Doppel-
Kurzregister zeigt. Praktisch ist nur #2 zu gebrauchen, was fr Hauptregister $0
steht.
Beispielablauf fr ST 7,(#2):
   ($0/1):= 7

STW C16,(#c) (STore Word, Lnge 4 Bytes)
Direktes Speichern eines Wort-Werts in zwei Speicherzellen, auf die ein Doppel-
Hauptregister zeigt. Praktisch ist wieder nur #2 zu gebrauchen, da die anderen
beiden festgelegt sind.
Beispielablauf fr STW &H1234,(#2):
   ($0/1):=&H34, ($0/1)+1:= &H12
~Seite 6
Der unbedingte Sprungbefehl ber Hauptregister

JP ($CS) (JumP, Lnge 2 Bytes)
Springen ber den Inhalt eines Doppel-Hauptregisters C5/C5+1.
Beispielablauf fr JP ($5):
   PC:= ($5/6)

Die neue Sprungbedingung

LNZ (Lower digit Not Zero)
Diese Sprungbedingung (anwendbar bei RTN, JR, JP und CAL) ist eine Kombination
aus den Bedingungen LZ und NZ. Gesprungen wird, wenn das Flag LZ=0 ist. Dies
ist der Fall, wenn bei der letzten Operation, bei der die Flags verndert
wurden, das untere Digit des Ergebnisses ungleich Null war. Damit lassen sich
im Vergleich zur normalen Sequenz zwei Byte sparen.
Beispiel:  CAL LNZ,&H95D7 ersetzt die Folge:		JR	LZ,NICHT
							CAL	&H95D7
						NICHT:

Der "angehngte" Sprungbefehl

Bei vielen Befehlen (in der Mnemonic-Tabelle im Anhang A nachzusehen) kann ein
relativer Sprungbefehl angehngt werden, der nur ein Byte verbraucht statt der
zwei Byte, die ein unbedingtes JR brauchen wrde. Kennzeichnung im Opcode durch
angehngtes J (mangels Untersttzung von CASIO Bezeichnung selbstgewhlt) und
durch ein weiteres Argument, da die Zieladresse angibt (innerhalb von 128 Bytes
vor oder zurck im Programm).
Beispiel:  LDJ $0,$1,LAB5 ersetzt die Folge:		LD	$0,$1
							JR	LAB5

Die verkrzten Befehle

Es gibt drei Hauptregister, die gegenber den anderen bevorzugt sind: $0, $30
und $31. Dies kommt nicht von irgendwoher, denn es gibt den undokumentierten
Befehl: PSH #c,$C5 (Put SWort register, Bezeichnung selbstgewhlt) setzt das
Hauptregister $C5 als Kurzregister #c (c=0..2, Bezeichnung selbstgewhlt). Man
sollte aber die im PB-1000 vorgegebenen Werte (#0= $31, #1= $30, #2= $0) nicht
ndern oder aber vor dem Rcksprung in ROM-Routinen wieder zurcksetzen, da der
Rechner sonst abstrzt! Sinn der Kurzregister ist das Einsparen eines Bytes pro
Befehl bei den meisten Befehlen, bei denen ein Kurzregister benutzt werden darf.
Das Kurzregister steht dabei fr das im PSH-Befehl angegebene Hauptregister.
Auer bei 4-Byte-Befehlen kann die Verkrzung bei jedem Befehl benutzt werden,
in dem zwei Hauptregister in den Argumenten auftauchen.
Beispiele: LD   $5,$0       -> LD   $5,#2
           ST   $3,(IX-$31) -> ST   $3,(IX-#0)
           ST5  $3,(IX+$31) -> ST5  $3,(IX+#0) (keine Einsparung, Bedeutung s.u.)
~Seite 7
Die neue Adressierungsart (bis zu acht Bytes im direkten Zugriff!)

Mit der hier vorgestellten und von CASIO verschwiegenen Adressierungsart knnen
bis zu acht Bytes auf einmal bertragen oder geschoben (bit-, digit- und byte-
weise!) oder addiert usw. werden. Dabei kann die Wirklnge, d.h. auf wie viele
aufeinanderfolgende Bytes/Hauptregister der Befehl wirken soll, zwischen drei
und 8 variiert werden (theoretisch ist auch eine Wirklnge von zwei Bytes mg-
lich, aber diese Befehlsgruppe wird schon durch die Word-Befehle abgedeckt.
Ich habe die Opcodes durch Anhngen einer Ziffer zwischen 3 und 8 gekennzeich-
net. Auf welche Befehle diese fantastischen Mglichkeiten angewendet werden
knnen, siehe im Anhang A). Die Benutzung von Kurzregistern ist zwar nominell
mglich, bringt aber keine Byte-Einsparung (Befehlslnge bleibt immer 3). Das
Anhngen eines Sprungbefehls ist ebenfalls mglich. Es gibt auerdem noch eine
Besonderheit bei den Befehlen ADB und SBB: hier werden nicht mehrere Hauptregi-
ster BCD-kodiert addiert oder subtrahiert, sondern eine B-Bit-BCD-Zahl.
Beispielablauf fr LDD5 $18,(IZ-$5):
   IZ:= IZ-($5), $18:= (IZ), IZ:= IZ-1, $17:= (IZ), IZ:=IZ-1, $18:= (IZ)
Beispielablauf fr ADB4 $11,6:
   $11:=($11)+6, eventueller bertrag nach $12..14
   (+ steht hier fr die BCD-Addition)
~Seite 8
III. Liste von Spezifikationen

=== VEREINBARUNGEN =============================================================
	NUM0:	FLP-Zahl in $0-8
	NUM1:	FLP-Zahl in $10-18
	STR0:	String mit Zeiger auf Beginn in $5/6, Lnge in $7
	STR1:	String mit Zeiger auf Beginn in $15/16, Lnge in $17
	WOR0:	Wort-Wert in $5/6
	WOR1:	Wort-Wert in $15/16
	WORD:	Wort-Wert in $17/18
[	I:	INPUT: steht fr einzugebende Register/Werte
	O:	OUTPUT: steht fr ausgegebene Register/Werte
	D:	DESTROYED: steht fr vernderte Register
	E:	ERRORS: steht fr mgliche Fehlermeldungen
	NN	steht fr 'Speicherzelle/Routine nicht nutzbar'
	+	steht fr zustzlich
]

=== DIE TASTATUR ===============================================================

Tastaturmatrix:

     |KO1  |KO2  |KO3  |KO4  |KO5  |KO6  |KO7  |KO8  |KO9  |KO10 |KO11 |KO12
-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----
KI1  |BRK  |  ,  |  U  |  H  |  M  |[CON]|     |     |  J  |Space|     |
KI2  |     |     |     |     |     |     |     |     |     |     |SHIFT|[F]
KI3  |     |  "  |  Q  |CAPS |  Z  |     |  /  |  *  |  +  |  -  |     |
KI4  |     |  $  |  W  |  A  |  X  |[STP]|  (  |  6  |  3  |[EXE]|     |
KI5  |     |  &  |  E  |  S  |  C  |[INS]|  9  |  5  |  2  |[ANS]|     |
KI6  |     |  =  |  R  |  D  |  V  |[NEW]|  8  |  4  |  1  |     |     |
KI7  |     |  ;  |  T  |  F  |  B  |[BS] |  7  |  P  |  L  |  0  |     |
KI8  |     |  :  |  Y  |  G  |  N  |[CLS]|[ENG]|  O  |  K  |     |     |
KI9  |     |{EXE}|{RIG}|{DWN}|{UP }|     |{F12}|{F13}|{F14}|{F15}|     |
KI10 |     |{IN }|{OUT}|{CLC}|{LEF}|     |{F 8}|{F 9}|{F10}|{F11}|     |
KI11 |     |{MIN}|{MEM}|{CAL}|{MEN}|{LCK}|{F 4}|{F 5}|{F 6}|{F 7)|     |
KI12 |     |     |     |     |     |     |{F 0}|{F 1)|{F 2}|{F 3}|     |

Sonder-Tastaturkodes nach IMPULSE-Detect (z.B. Routine CRTKY (&h9158):
a) Folientasten:
&h90  MENU	&h94  IN	&h98  ENG	&h98  MENU
&h91 (CAPS)	&h95  LCKEY	&h99  SHT-ENG	&h9D  CAL
&h92  ANS	&h96  STOP	&h9A  NEW ALL	&h9E  MENU IN
&h93  OUT	&h97  CONT	&h9B  CALC	&h9F  CONTRAST

b) Kurzbefehle u. -funktionen (mit "SHIFT" oder "F" (Kennzeichen in der Tabelle
   "/"), erstes Byte =0, dann folgender Code):
      0   2   4   6   8  10  12  14  16  18  20  22  24  26  28  30
+0    U   Q   W   E   R   T   Y  /U  /Q  /W  /E  /R  /T  /Y  /,   H
+32   A   S   D   F   G  /H  /A  /S  /D  /F  /G  /"   M   Z   X   C
+64   V   B   N  /M  /Z  /X  /C  /V  /B  /N  /$  /&  /^  /=   I   P
+96   O  /I  /P  /O  /;   J   L   K  /J  /L  /K  /:
~Seite 9
=== DIE INTERRUPTS =============================================================

INT1:	Sprung nach &h0072 hchste Prioritt
KEYS:	Sprung nach &h0062 |
INT2:	Sprung nach &h0052 |
TIMER:	Sprung nach &h0042 |
ON-INT:	Sprung nach &h0032 V
TRP:	Sprung nach &h0022 niedrigste Prioritt

=== AUFBAU EINES FILE-HEADERS ==================================================

Byte	0:	=1: Preset, =2: C.Boot
    1-  2:	Startadresse im Arbeitsspeicher
    3-  4:	Endadresse+1 im Arbeitsspeicher
	5:	Filetyp: =13: 'N', =16: 'B', =36: 'S'
		 (=164: 'R', nur auf Diskette mglich/sinnvoll)
    6- 13:	Filename (max. 8 Zeichen, aufgefllt mit Leerzeichen)
   14- 16:	Extension (max. 3 Zeichen)
   17- 24:	Password (nur bei "B"-Files, max. 8 Zeichen, aufgefllt mit NUL,
		 Verschlsselung mit EXOR FF)
		Passwort gelscht, wenn Inhalt von Byte 17 =255
   25- 26:	Lade-Anfangsadresse (nur bei "M"-Files)
   27- 28:	Lade-Endadresse+1 (nur bei "M"-Files)
   29- 30:	Ausfhrungsadresse (nur bei "M"-Files)
       31:	unbenutzt

=== AUFBAU EINES FILE-CONTROL-BLOCKS (FCB) =====================================

Byte 0-  1: Lnge des FCBs [ 35 Bytes Header
                            +256 Bytes Datenpuffer (nicht bei RS232C)]
         2: Kanal (1-15, System-Kanal 0)
         3: Zugriffsart (&h30 Ausgabe, &h31 FDD-Direktzugriff, &h32 Eingabe,
                         &h34 APPEND-Ausgabe, &h41 RS232C-Direktzugriff)
         4: Gerteadresse (0: RAM, 1: Disk, 2: RS232C, 3: MT)
     5- 15: Filename inkl. Extension
    16- 17: Beginn des Datenpuffers
    18- 19: Ende des Datenpuffers
        20: Pufferzhler
        21: ???
        22: EOF-Flag
    23- 24: Zeiger in den Datenpuffer (bei FDD-Direktzugriff Zeiger auf nchstes
             Byte im Datenpuffer, das mit dem FIELD-Befehl zugewiesen werden
             kann)
    25- 26: bei FDD-Direktzugriff: aktuelle Datensatznummer
        27: Spaltenposition (Anzahl der ausgegebenen Zeichen nach einem CR(LF))
        28: Filetyp
    29- 30: Beginn im Speicher (nur bei RAM-Files)
    31- 32: Ende im Speicher (nur bei RAM-Files)
    33- 34: Zeiger in den Speicher (nur bei RAM-Files)
    35-290: Datenpuffer (nicht RS232C)
~Seite 10
=== FLOATING-POINT-FORMAT (FLP) ================================================
Intern: 9 Bytes (hier in NUM0):    $0 $1 $2 $3 $4 $5 $6 $7 $8
                   hexadezimal:    ln jk hi fg de bc 0a xy 0v
Extern: 7 Bytes (hier Offset):        +0 +1 +2 +3 +4 +5 +6
                   hexadezimal:       ik hi fg de bc ya vx

wobei: v		Vorzeichen fr Mantisse (+5: Mantisse negativ)
			 und Exponent (+1: Exponent positiv)
       a.bcdefghijklm	Mantisse in BCD-Darstellung (bei externem Format lm=00)
       xy		Exponent zur Basis 10
also: vm*a.bcdefghijklm*10^(ve*xx) ist die dargestellte Zahl
~Seite 11
IV. bersicht ber den Bereich &h0000-&h6FFF

Das in der zweiten Spalte stehende Label entspricht dem von CASIO verliehenen
Namen.

==== PROZESSOR-ROM &h0000-&h0BFF (16bit-Worte = 6 KByte) =======================
0022:		TRP-Interrupt: Sprung nach &hFFC7 [&h6FFA] (unbenutzt)
0024:		Ablegen von NUM1 im Userstack mit berlaufkontrolle [I: NUM1;
		 D: $19-$22]
0028:		Ablegen von NUM1 im Userstack [I: NUM1]
002C:		Wiederholen einer FLP-Zahl vom Userstack nach NUM1 [O: NUM1]
0032:		ON-Interrupt: Sprung nach &hFFCA [&h8ED7] (alle 18 ms)
0034:		Ablegen von NUM0 im Userstack mit berlaufkontrolle [I: NUM0;
		 D: $19-22]
0038:		Ablegen von NUM0 in Userstack [I: NUM0]
003C:		Wiederholen einer FLP-Zahl vom Userstack nach NUM0 [O: NUM0]
0042:		Timer-Interrupt: Sprung nach &hFFCD [&h8E4F] (alle 60 s)
0044:		berprfen, ob genug Platz im Userstack ist [I: $19/20=Anzahl
		 Bytes; D: $19-22; E: TC]
0052:		INT2-Interrupt: Sprung nach &hFFD0 [&h6FFD] (ungenutzt)
0062:		KEY/PULSE-Interrupt
0072:		INT1-Interrupt: Sprung nach &hFFBB [&hBF9C]
00F9:	NEXTC:	Zeichen aus Text nach $0 lesen. Wenn Leerzeichen, dann berle-
		sen. Bei Trennzeichen (0..2) C:=1
00FF:		Wenn Trennzeichen (0..2) in $0, dann C:=1
0103:		CAL NEXTC. Wenn C=0 (d.h. kein Befehlsende), dann SN Error
0108:		Aufrufen von NEXTC und OKNM1
010A:	OKNM1:	Ziffer? [I: $0; O: C=1 bei $0="0".."9"]
0111:		japanisches Zeichen? [I: $0; O: C=1 bei $0=160..223]
0116:	OKHX1:	Hex-Ziffer? [I: $0; O: C=1 bei $0="0".."9","a".."f","A".."F"]
011D:	OKAM1:	Buchstabe? [I: $0; O: C=1 bei $0="a".."z","A".."Z"]
0128:		CAL NEXTC. Wenn Zeichen=4 u. Folgezeichen=($2), berlesen u. Z=1
012A:		CAL NEXTC. Wenn Zeichen=5 u. Folgezeichen=($2), berlesen u. Z=1
012C:		CAL NEXTC. Wenn Zeichen=6 u. Folgezeichen=($2), berlesen u. Z=1
012E:		CAL NEXTC. Wenn Zeichen=7 u. Folgezeichen=($2), berlesen u. Z=1
0138:		CAL NEXTC. Zeichen="@"? dann berlesen, Z=1
013A:		CAL NEXTC. Zeichen=","? dann berlesen, Z=1
013C:		CAL NEXTC. Zeichen="("? dann berlesen, Z=1
013E:		CAL NEXTC. Zeichen="-"? dann berlesen, Z=1
0140:		CAL NEXTC. Zeichen=";"? dann berlesen, Z=1
0142:		CAL NEXTC. Zeichen="#"? dann berlesen, Z=1
0144:		CAL NEXTC. Zeichen="."? dann berlesen, Z=1
014C:		CAL NEXTC. Zeichen=","? dann berlesen, Z=1, sonst SN Error
014E:		CAL NEXTC. Zeichen="-"? dann berlesen, Z=1, sonst SN Error
0150:		CAL NEXTC. Zeichen=")"? dann berlesen, Z=1, sonst SN Error
0152:		CAL NEXTC. Zeichen="("? dann berlesen, Z=1, sonst SN Error
0154:		CAL NEXTC. Zeichen="="? dann berlesen, Z=1, sonst SN Error
0156:		CAL NEXTC. Zeichen=($1)? dann berlesen, Z=1, sonst SN Error
015B:	TCAPS:	Umwandeln von Klein- in Grobuchstaben [I/O: $0]
0160:	CHEX1:	Umwandeln einer Hexziffer nach Binrformat und C=1 [I/O: $0]
016C:	SHFTM:	Verschieben und Lschen eines Speicherblocks [s. CLRME; +I:
		 $0/1=Ziel]
016E:	CLRME:	Lschen eines Speicherblocks [I: $2/3=Start, $4/5=Lnge; O:
~Seite 12
		 IX=Endadresse+1, $5-13=0; D: $2-4, 14, IX, IZ]
0180:		Block kopieren [I: $0/1=Lnge, $15/16=Quelladresse, $2/3=Ziel-
		 adresse; D: $0/1=&hFFFF, $5-12, IZ]
01D9:		Taste aus den Tastatur-Puffer holen
01F1:		Binrwort in BCD wandeln [I: $3/4; O: $14-16]
022C:	DOTDI:	Transferieren des LED zum Display in Abhngigkeit von DSPMD [D:
		 $0-15, IX]
0240:	DOTPF:	Transferieren eines Texts in den Grafik-Menzeilenpuffer und
		 dann in die vierte Zeile des Displays [I: IZ=Textadr.; D: LPF,
		 $0-15, IX, IZ]
0299:		falls Cursorblinken eingeschaltet ist ((&h68C7)b1=1), dann
		 Zeichen unter dem Cursor in &h68C1 ff. speichern, und Routine
		 &h02AD ausfhren [D: $0-10, IX, IZ]
02A7:		Zeichen in &h68C1 ff. wieder in Grafikdisplaypuffer setzen [D:
		 $0-10, IX, IZ]
02AD:		beim Zeichen unter dem Cursor Unterstrich invertieren [D: $0-10,
		 IX, IZ]
02EF:		Zeichen-Ausgabe auf Display [I: $5=Zeichen, $2/3=Grafikzeiger;
		 D: $4-9=Zeichenmuster, $0/1=Adr. des Zeichenmusters, IX=$2/3]
030D:		Ausgabe eines Zeichens auf das Display an Cursorposition (Be-
		 rcksichtigung von Steuerzeichen) [I: $5=Zeichen]
0319:		Springen ber Sprungtabelle [I: IZ=Tabellenbeginn, $5=Byte; D:
		 $3, 4, 6, IZ]
0383:		Ausfhrung von ROLL UP [I: IX=EDCRS; O: IZ=MOEDB; D: $0-6]
0398:		Ausfhrung von ROLL DOWN [I: IX=EDCRS; O: IZ=MOEDB; D: $0-6]
03B9:		Ausfhrung von CRSR DOWN [I: IX=EDCRS]
03BC:		Ausfhrung von CRSR RIGHT [I: IX=EDCRS]
03BF:		Ausfhrung von CRSR UP [I: IX=EDCRS]
03C2:		Ausfhrung von CRSR LEFT [I: IX=EDCRS]
03C7:		eventuell Bildschirm scrollen (nach Cursorpositionsnderungen)
		 [O: IZ=MOEDB, IX=EDCRS; D: $2-6]
0450:		zwei Leerzeichen ausgeben [D: s. OUTAC]
0452:		ein Leerzeichen ausgeben [D: s. OUTAC]
0457:		Ausfhrung von LINE 0 [I: IX=EDCRS]
0466:		Ausfhrung von LINE DEL [I: IX=EDCRS]
046F:		Ausfhrung von LINE TOP [I: IX=EDCRS]
0472:		Ausfhrung von LINE END [I: IX=EDCRS]
0478:		Ausfhrung von CR [I: IX=EDCRS]
0482:		Ausfhrung von CLS [I: IX=EDCRS]
0489:		Ausfhrung von HOME [I: IX=EDCRS]
0491:		Ausfhrung von BS [I: IX=EDCRS]
0490:		Ausfhrung von DEL [I: IX=EDCRS]
04AA:		Ausfhrung von INS [I: IX=EDCRS]
04E7:	CLEDB:	Lschen von ED und LED, sowie Cursor HOME [O: IX=EDCSR,
		 IZ=MOEDB, $5-14=0; D: $0-4]
05A6:		Berechnen einer Position im LED (in 6er-Schritten) [I:
		 $0=Position; O: $2/3=Grafikzeiger; D: $0, 1]
083E:		NUM1=NUM0-NUM1 [D: NUM0, $19-27]
0842:		NUM1=NUM1-1 [D: NUM0, $19-27]
0844:		NUM1=NUM1-NUM0 [D: NUM0, $19-27]
0848:		NUM1=NUM1+1 [NUM0, $19-27]
084A:		NUM1=NUM1+NUM0 [D: NUM0, $19-27]
0877:		NUM1=NUM1*NUM0 [D: NUM0, $9, 19-27]
08A6:		NUM1=0 [D: /]
08B2:		NUM1=1/NUM1 [NUM0, $19-25, 27]
08B4:		NUM1=NUM0/NUM1 [D: NUM0, $19-25, 27]
~Seite 13
08B6:		NUM1=NUM1/NUM0 [D: NUM0, $19-25, 27]
08D9:		NUM0=1 [D: /]
08DD:		BASIC-Funktion SQR [D: NUM0, $9, 19-24]
0928:		Vertauschen der Inhalte von NUM0 und NUM1 [D: /]
09E1:		berlesen (evtl. mehrerer) Vorzeichen [I: IX=TEXT;
		 O: $2=0: insgesamt positiv, =5: negativ]
0A55:		BASIC-Funktion LOG [D: NUM0, $9, 19-28, IZ]
0A57:		BASIC-Funktion LGT [D: NUM0, $9, 19-29, IZ]
0A8C:		BASIC-Funktion EXP [D: NUM0, $9, 19-29, IZ]
0AC2:		BASIC-Funktion SIN [D: NUM0, $9, 19-29, IZ]
0AC4:		BASIC-Funktion COS [D: NUM0, $9, 19-29, IZ]
0AC8:		BASIC-Funktion TAN [D: NUM0, $9, 19-29, IZ]
0B2D:		BASIC-Funktion ASN [D: NUM0, $9, 19-29, IZ]
0B2F:		BASIC-Funktion ACS [D: NUM0, $9, 19-29, IZ]
0B31:		BASIC-Funktion ATN [D: NUM0, $9, 19-29, IZ]
0BB1:	KBM16:	16bit-Multiplikation [I: WOR0, WOR1 Faktoren; O: $0/1 Ergebnis,
		 C=1: berlauf; D: WOR0, WOR1]

=== INTERFACE-BEREICH &h0C00-&h0C0F ============================================
0C00	In:		Bit 0: Interface BUSY
0C01	In:		Bit 4/5/6: Stellung der DIP-Schalter des Interfaces
0C02	In:  MT/RS232C:	Bit 0-7: Daten
0C03	Out: MT/RS232C:	Bit 0-7: Daten
	In:	FDD:	Bit 0-7: Daten
0C04	In:	Centr:	Bit 0: BUSY, Bit 1: /ERROR, Bit 2: /ACKNOWLEDGE
	Out:	FDD:	Bit 0-7: Daten
0C05	Out:	Centr:	Bit 0-7: Daten
0C06	Out:	Centr:	Bit 2: /STROBE

=== SYSTEM-BEREICH &h6000-&h6FFF ===============================================
6000	256		ASMBL: Bytespeicher oder:
		INTOP:	Eingabepuffer
6100	257	EDTOP:	Displaypuffer in ASCII (&h6200 enthlt immer 0)
61A0	5		ASMBL: Zwischenspeicher fr Label beim Lesen desselben
61A5	5		ASMBL: Speicher fr Label am Zeilenanfang
61AE	2		ASMBL: Adresse fr zu definierendes Label
6200	512		ASMBL: Speicher fr ERR-File oder:
6201	1536	LEDTP:	Grafikpuffer
6801	192	LPFTP:	Grafik-Menzeilenpuffer
 68A1	32		ASCII-Menzeilenpuffer
68C1	6		Muster des Zeichens unter dem (blinkenden) Cursor
68C7			Eingabemodus: +1:, +2: Cursor blinkt, +4:, +8: Display
			 nicht scrollen, +32: invertierte Zeichen ausgeben
68C8		EDCRS:	Cursorposition absolut: Bit0..4: Spalte (0-31), Bit5..7:
			 Zeile (0-7)
68C9			Offset fr Beginn des Displaypuffers im angezeigten
			 Displayausschnitt
68CA
68CB		MOEDB:	Cursorposition des Endes der editierten Displayzeile
68CC			Cursorposition des Beginns der editierten Displayzeile
68CD
68CE
68CF			Offset auf letztes Zeichen der editierten Displayzeile
68D0		DSPMD:	Display-Modus (=0: vierzeilig, =1: dreizeilig+Menzeile)
68D1			Einzahl der Zeichen im Display (entweder 96 oder 128)
68D2			Tastaturmodus I (+4: Repeat auf allen Tasten!, +8:
~Seite 14
			 Repeat auf den Cursortasten, +64: AUTO-POWER-OFF-Ver-
			 zgerung ist erreicht)
68D7			Tastaturmodus II (+1: japanisch, +2: F-Taste, +4:
			 SHIFT-Taste, +8: klein)
68D9			Anzahl der Tasten im Tastaturpuffer (max. 15)
68DA			Zeiger auf erstes Zeichen im Tastaturpuffer
68DB			Zeiger auf nchsten freien Speicherplatz im Testaturp.
68DC			Lnge des Tastaturpuffers (hier immer 16)
68DD	2		Zeiger auf Tastaturpuffer (hier immer &h68DF)
68DF	16		Tastaturpuffer
68F1			Anzahl der Minuten bis zum Abschalten des Rechners
			 (wird bei jedem Tastendruck auf sieben gesetzt)
68F3			Winkelmodus (=0: Grad, =1: Rad, =2: Neugrad)
68F4	24	WORK:	Verschiedenes:
 68F4	11		 Filename und Extension (internes Format: Filename und
			 Extension je mit Leerzeichen aufgefllt ohne Punkt)
 68F5	2		 MON: aktuelle Adresse fr D-Befehl
 68F7	2		 MON: Endadresse fr D-Befehl
 6900			 MON: Bankspeicher: Bits 5+6 geben die Speicher-Bank
			  an (nderbar!)
 6901	2		 MON: Editadresse fr E-Befehl
 68F5	2		 ASMBL: SRC-File-Startadresse
 68F7			 ASMBL: Anzahl der festgestellten Fehler
 68F8	2		 ASMBL: augenblickliche Zeilennummer (BCD)
 68FA	2		 ASMBL: augenblickliches Ende des ERR-Files
 68FC	2		 ASMBL: Differenz physikal. - logische Adresse
 68FE	2		 ASMBL: Ladeadresse des EXE-Files
 6900	2		 ASMBL: augenblickliche logische Adresse bzw. Endadresse
 6902	2		 ASMBL: CALL-Adresse des EXE-Files
 6908	2		 ASMBL: Bytespeicherzeiger
 690A	2		 ASMBL: Textzeiger auf augenblickliche SRC-File-Zeile
690C		OUTDV:	Ausgabegert: =0: Display, =2: Printer, =4: FCB
690D			Drucker-Tabulator (Anzahl der ausgegebenen Zeichen nach
			 einem CR)
690E	2	NOWFC:	Adresse auf den aktiven FCB bei OUTDV=4
6910	5		Zwischenspeicher fr Variablendaten:
 6910			 Anzahl Dimensionen (=0: einfache Var.), Indizes liegen
			  in umgekehrter Reihenfolge auf dem Userstack)
 6911			 Variablentyp
 6912			 Lnge des Variablennamens
 6913	2		 Zeiger auf den Beginn des Variablennamens
6915	2		Zeiger auf nchsten auszufhrenden BASIC+Befehl nach
			Drcken der CONT-Taste
6917	2		Zeiger vor nchste DATA-Daten (=0 nach RUN & RESTORE)
6919	4		Grafikbereich:
 6919	2		 temporre Koordinaten (Beginn fr den Drawline-Algo-
			  rithmus)
 691B	2		 augenblicklicher Standort des Grafikcursors (X,Y)
691D	10		Fehlerverarbeitungs-Bereich:
 691D	2		 File-Headeradresse der ON-ERROR-Routine
 691E	2		 Adresse var die ON-ERROR-Routine
 6921	2		 Zeilennummer ERL
 6923	2		 Adresse vor den fehlerhaften Befehl (f. RESUME)
 6925			 Fehlernummer ERR
 6926			 =1: ON-ERROR-Routine aktiv
6927			Trace-Modus: =0: TROFF, =1: TRON
~Seite 15
6928	2		Zwischenspeicher fr Textzeiger bei INPUT-Routine
692F	30		Speicherverwaltung
 692F	2		 Beginn der FCBs (festgelegt)
			  Format der Eintrge s. unter FCB
 6931	2		 Beginn des Zeichenoperationsstapels (wchst nach oben)
 6933	2		 Ende des Zeichenoperationsstapels (wchst nach oben)
 6935	2		 Beginn des FOR-Stapels (wchst nach unten)
			  Format der Eintrge:
			   0- 1: Zeiger hinter den zugehrigen NEXT-Befehl
			   2- 3: Zeiger auf Schleifenvariablendaten
			   4- 5: aktuelle Zeilennummer beim FOR-Befehl
			   6- 7: Zeiger auf ersten Befehl in der Schleife
			   8-16: Inkrement (Extern-FLP-Darstellung)
			  17-25: Endwert (Extern-FLP-Darstellung)
 6937	2		 Beginn des GOSUB-Stapels (wchst nach unten)
			  Format der Eintrge:
			   0- 1: Adresse des zug. Fileheaders
			   2- 3: akt. Zeilennummer beim GOSUB-Befehl
			   4- 5: Zeiger direkt hinter den GOSUB-Befehl
 6939	2		 Beginn der Variablen (wchst nach unten)
			  Format der Eintrge:
			      0: Zahl der Dimensionen (=0 bei einfachen Zahlen)
			  (dim): max. Indizes der Dimensionen
			    -    entsprechend viele Zahlen in Intern-FLP-Darst.
 693B	2		 Beginn der Variablendaten (wchst nach unten)
			  Format der Eintrge:
			      0: =0: String, =8: Zahl, +32: im CALC-Modus schon
			          abgefragt, +64: FIELD-Definition, +128: Matrix
			      1: Lnge des Variablennamens
			   2-  : Variablenname
			    (2): Zeiger auf Beginn des Eintrags im String-/
			          Variablenbereich
 693D	2		 Beginn der Strings (festgelegt)
			  Format der Eintrge:
			      0: String-Lnge (bei FIELD-Def.: =3)
			   1-  : String-Inhalt
			        (bei FIELD-Def.: 1-2: Zeiger in FCB-Datenpuffer,
			                           3: Lnge)
 693F	2		 Ende der Strings (wchst nach oben)
 6941	2		 Beginn der "B"-Files (festgelegt)
			  Ende der Files jeweils mit NUL-Zeichen
 6943	2		 Beginn der "S"- und "M"-Files (wchst nach oben)
			  Ende der Files jeweils mit EOF-Zeichen
 6945	2		 Beginn des freien Speichers (wchst nach oben)
 6947	2		 Beginn des Directorys (wchst nach unten)
			  Format der Eintrge: s. unter Fileheader
 6949	2		 Beginn des BASIC-Directorys (wchst nach unten)
			  Format der Eintrge: s. unter Fileheader
 694B	2		 Speicherobergrenze (&h4000 ohne bzw. &hFFFF mit RP-32)
694D	2	ACJMP:	Sprungadresse (wird bei BRK und nach Fehlern benutzt)
6950			ENG-Status (=0: gelscht, =1: ENG-Taste mglich)
6952	250		Userstack
6A4B	256		Systemstack
6B4A	96		umdefinierbare Zeichen (ASCII-Codes 240-255)
6BAA	2		Zeiger in Kontrast-Tabelle
6BAC			Tastaturpieps-Modus: =0: BEEP ON, =1: OFF
~Seite 16
6BAD	3		Datum in der Reihenfolge: Jahr, Tag(BCD), Monat(BCD)
6BB0	2		Uhrzeit Minuten(BCD), Stunden(BCD)
6BB2	72		Statistik-Bereich:
 6BB2	9		 zuletzt angegebener X-Wert bei STAT (FLP-Darstellung)
 6BBB	9		 zuletzt angegebener Y-Wert bei STAT (FLP-Darstellung)
 6BC4	9		 CNT (FLP-Darstellung)
 6BCD	9		 SUMX (FLP-Darstellung)
 6BD6	9		 SUMY (FLP-Darstellung)
 6BDF	9		 SUMX2 (FLP-Darstellung)
 6BE8	9		 SUMY2 (FLP-Darstellung)
 6BF1	9		 SUMXY (FLP-Darstellung)
6BFA	269		Interface-Bereich:
 6BFA			 Interface-Ready-Flag (=255: kein Interface,
			  =85: Floppy, =0: Kassette)
 6BFB			 RS232C-/MT-Transfermodus: =1: Ausgabe, =2: Eingabe,
			  =3: Ein- & Ausgabe
 6BFC			 MT-Baudrate in b5/6/7
 6BFD
 6BFE			 RS232C-Status: +32: SI eingeschaltet, +64: XOFF
			  eingeschaltet
 6BFF			 RS232C-Fehlerflags: =1: BV Error, =64 0. =32: PO Error,
			  =128: FR Error, sonst NR Error
 6C00	2		 RS2328-Parameter:
  6C00			  b1/2: =00: gerade, =01: ungerade, =10/11: keine Pari-
			  tt; b3: =0: 8, =1: 7 Datenbits; b4: =0: 2,
			   =1: 1 Stoppbit; b5/6/7: Baudrate
  6C01			  b0: =1: SI/SO-Steuerung; b1: =1: Puffer-belegt-Steu-
			   erung; b2: =1: CTS-Steuerung; b3: =1: DSR-Steuerung;
			   b4: =1: CD-Signal-Steuerung
 6C02	2		 Centronics: ???
 6C04
 6C05
 6C06			 Anzahl Zeichen im RS232C-Empfangspuffer
 6C07			 Zeiger auf nchstes freies Byte im RS2328-Empfgspuffer
 6C08	256		 RS232C-Empfangspuffer
6D08	8		letztes Ergebnis (interne FLP-Darstellung, mit
			 ANS-Taste abzufragen)
6D10			relativer Exponent fr ENG-Funktion (=&hFF: noch unver-
			 flscht)
6D11	9		zuletzt erzeugte RND-Zahl (externe FLP-Darstellung)
6D1A	256		CALC-Speicher (im Klartext)
6E1C			MT-Filetyp
6E1D	35/289		System-FCB oder:
6E40	256		zuletzt ausgefhrter CALC-Befehl im Klartext
6F42	7		Bereich fr C.Boot:
 6F42			 C.Boot-Status: =0: C.Boot-Programm nicht aktiv,
			 =1: zu aktivieren, =255: aktiv)
 6F43	4		 Tag(BCD), Monat(BCD), Minute(BCD), Stunde(BCD)
 6F47	2		 Zeiger auf Header des C.Boot-Files (=0: kein C.Boot-
			  File)
6F49	8		vier Zeiger auf die Header der Preset-Files
			 (=0: hier kein Preset)
6F51			Betriebsmodus: =0: CAL, =1: BASIC, =2: DATA-EDIT,
			 =3: BASIC-EDIT, =4: MEMO, =6: MEMO-IN,
			 =8: CALC-Abfrage, =16: CALC, +32: I/O aktiv,
			 =64: MEN, +128: ASMBL
~Seite 17
6F52			im MEN-Modus: Teilmennummer 0..2; im CAL-Modus:
			 =0: Presets sichtbar, =1: unsichtbar
6F53			Direktmodusflag (=0: Direktmodus, =1: Programmodus,
			 =2: Direktmodus, CONT mglich (a. auch &h6915/6))
			im MEN-Modus: Untermenmodus: =0: Hauptmen
			 =1: Eingabemodus, =2: LOAD-, =4: SAVE-, =6: DISK-Men
6F54	2	NOWFL:	Zeiger auf den Aktivfileheader
6F56	2		aktuelle Zeilennummer
6F58	2		Zeiger auf augenblicklich ausgefhrten BASIC-Befehl
6F5A			FDD-Filetyp (in DISK-Men)
6F5B	14		FDD-Filename (in DISK-Men, letzte drei Bytes Dummy)
6F6A	2		Filelnge in File-Lade-Routine
6F6C			MT-Prfsummenspeicher
6F74	32		System-Header (benutzt bei Load, Save etc.)
6F94			Offset in Menheader-Tabelle (0..5)
6F95	12		6 Zeiger auf Fileheader der im Men angezeigten Files
6FA3	11		Zwischenspeicher im Eingabe-Betriebsmodus:
 6FA3	1		 vorheriger Betriebsmodus
 6FA4	2		 US
 6FA6	2		 SS
 6FA8	2		 IX
6FAA	5		Variablendeskriptor der Var., der Ergebnis zugewiesen
			 werden soll
6FAF	35		fr Open: hier steht der vorbereitete FCB oder:
6FAF	12		Suchwortspeicher in einer der EDIT-Betriebsmodi:
 6FAF			 Position des Suchworte in der Zeile
 6FB0			 Status: <>0: Suchwort ist invertiert
 6FB2	8		 Suchwort
 6FBA			 =0: Delete, =8: Search
6FD5			bei FDOPN: Kanalnummer-Zwischenspeicher
6FFA	3		Platz fr Sprungbefehl (wird bei TRP-Befehl ausgefhrt)
6FFD	3		Platz fr Sprungbefehl (wird bei INT2 ausgefhrt)
~Seite 18
V. Dokumentiertes ROM-Listing von &h8000 bis &hFFFF

Hier nun das ROM-Listing vom externen ROM des CASIO PB-1000, wie man im Monitor
des PB-1000 nach Umschalten in Bank 1 leicht berprfen kann. Das ROM-Listing
selbst ist im Prinzip aufgebaut wie ein Ausdruck des Assemblers.

Dabei werden alle Bytes in den Spalten hinter der Adresse grundstzlich in der
Reihenfolge angegeben, in der sie auch im ROM stehen. Eine Ausnahme bilden Ta-
bellen, in denen Adressen stehen: hier habe ich zur besseren Lesbarkeit Low- und
High-Byte vertauscht und dies mit einem vorangestellten Kaufmannsund '&' gekenn-
zeichnet.

Die Mnemonics entsprechen denen im CASIO-Befehlssatz angegebenen mit den Ausnah-
men, die bereits in Kapitel 2 besprochen wurden.

Die Argumente werden, soweit dies sinnvoll ist, in Hexadezimalschreibweise ange-
geben. Zum Teil sind auch ASCII-Argumente angegeben, bei denen die Low-/High-
Darstellung zur besseren Lesbarkeit beibehalten wurde. Bei Adressargumenten wird
der Name des von CASIO verlautbarten Labels in eckigen Klammern angegeben.

Die Kommentare in der letzten Spalte sollen klar verstndlich erklren, was in
der jeweiligen Zeile passiert. Bezieht sich ein Kommentar in einer Zeile auf den
vorhergehenden, so ist er noch einmal eingerckt. Sprnge werden mit '->' ange-
deutet.

Grobe bersicht ber das ROM:

&h8000 verschiedenste Tabellen
&h8D38 elementare System-Routinen
&h967F BASIC-Tokenisier-Routine
&h98A3 Verarbeitung und Handlung von FLP-Zahlen sowie Strings
&h9E3B BASIC-Funktionen
&hB1C2 Speicherverwaltungsroutinen
&hB42C EDIT-Modi
&hBE11 RS232C-Schnittstellen-Routinen
&hC000 BASIC-Befehle und -Anweisungen
&hD829 FDD-Routinen
&hDB14 BASIC-System-Befehle und -Anweisungen
&hE125 Kassetten-Routinen
&hE39E Ein- und Ausgabe-Routinen
&hE561 MENU-Modus
&hF079 Monitor
&hF2DD Assembler
&hFF9E Sprungtabelle fr ROM-Routinen
~Seite 19
=== VERSCHIEDENSTE TABELLEN ====================================================
--------------------------------------	ZEICHENSATZ
  (jedes Zeichen belegt 6 Bytes)
--  --  --  --  --  --  --  --  --  --	Codes 32-127
8000: 000000000000 | 0000F2000000
800C: 00E000E00000 | 28FE28FE2800
8018: 2454FE544800 | C4C810264600
8024: 6C926A041A00 | 00A0C0000000
8030: 003844820000 | 008244380000
803C: 28107C102800 | 10107C101000
8048: 000506000000 | 101010101000
8054: 000606000000 | 040810204000
8060: 7C8A92A27C00 | 0042FE020000
806C: 42868A926200 | 8482A2D28C00
8078: 182848FE0800 | E4A2A2A29C00
8084: 3C5292920C00 | 808E90A0C000
8090: 6C9292926C00 | 609292947800
809C: 006C6C000000 | 006A6C000000
80A8: 102844820000 | 282828282800
80B4: 008244281000 | 40808A906000
80C0: 4C929E827C00 | 7E9090907E00
80CC: FE9292926C00 | 7C8282824400
80D8: FE8282443800 | FE9292928200
80E4: FE9090908000 | 7C8292925E00
80F0: FE101010FE00 | 0082FE820000
80FC: 040282FC8000 | FE1028448200
8108: FE0202020200 | FE403040FE00
8114: FE201008FE00 | 7C8282827C00
8120: FE9090906000 | 7C828A847A00
812C: FE9098946200 | 649292924C00
8138: 8080FE808000 | FC020202FC00
8144: F8040204F800 | FC021C02FC00
8150: C6281028C600 | E0100E10E000
815C: 868A92A2C200 | 00FE82820000
8168: A8683E68A800 | 008282FE0000
8174: 204080402000 | 020202020200
8180: 00C0A0000000 | 042A2A2A1C02
818C: FE1222221C00 | 1C2222220400
8198: 1C222212FE00 | 1C2A2A2A1800
81A4: 00207EA08000 | 182525253E00
81B0: FE1020201E00 | 0022BE020000
81BC: 020121BE0000 | 00FE08142200
81C8: 0082FE020000 | 3E201E201E00
81D4: 3E1020201E00 | 1C2222221C00
81E0: 3F2424241800 | 182424243F00
81EC: 3E1020201000 | 122A2A2A2400
81F8: 207C22020400 | 3C0202043E00
8204: 300C020C3000 | 3C020C023C00
8210: 22241C122200 | 21110A0C3000
821C: 22262A322200 | 106C82000000
8228: 0000EE000000 | 0000826C1000
8234: 408040204000 | 000000000000
~Seite 20
--  --  --  --  --  --  --  --  --  --	Codes 128-239
8240: 010101010101 | 030303030303
824C: 070707070707 | 0F0F0F0F0F0F
8258: 1F1F1F1F1F1F | 3F3F3F3F3F3F
8264: 7F7F7F7F7F7F | FFFFFFFFFFFF
8270: FF0000000000 | FF0000000000
827C: FF0000000000 | FFFF00000000
8288: FFFFFF000000 | FFFFFFFF0000
8294: FFFFFFFFFF00 | 101010FF1010
82A0: 101010F01010 | 1010101F1010
82AC: 101010FF0000 | 000000FF1010
82B8: 808080808080 | 101010101010
82C4: 000000FF0000 | 0000000000FF
82D0: 0000001F1010 | 1010101F0000
82DC: 000000F01010 | 101010F00000
82E8: 000000070810 | 101008070000
82F4: 000000C02010 | 101020C00000
8300: 000000000000 | 0E0A0E000000
830C: 0000F0808000 | 02021E000000
8318: 080402000000 | 000018180000
8324: 505052547800 | 20222C283000
8330: 04081E200000 | 181032121C00
833C: 12121E121200 | 1214183E1000
8348: 103E10141800 | 0212121E0200
8354: 2A2A2A3E0000 | 18001A021C00
8360: 101010101000 | 8082BC90E000
836C: 08103E408000 | 7040C2447800
8378: 42427E424200 | 444850FE4000
8384: 42FC40427C00 | 5050FE505000
8390: 106242447800 | 10E0427C4000
839C: 424242427E00 | 40F244F84000
83A8: 525202043800 | 424448546200
83B4: 40FC42526200 | 601202047800
83C0: 1062524C7800 | 50527C901000
83CC: 700072047800 | 20A2BCA02000
83D8: 00FE10080000 | 2224F8202000
83E4: 024242420200 | 425448546000
83F0: 4448DE684400 | 000204F80000
83FC: 1E0040201E00 | FC2222222200
8408: 404242447800 | 204020100C00
8414: 4C40FE404C00 | 4048444A7000
8420: 045454540200 | 1C2444040E00
842C: 021408146000 | 507C52525200
8438: 20FE20283000 | 0242427E0200
8444: 525252527E00 | 20A0A2A43800
8450: F00204F80000 | 3E007E021C00
845C: 7E0204081000 | 7E4242427E00
8468: 704042447800 | 424202041800
8474: 402080400000 | E0A0E0000000
8480: 282828282828 | 000000FF2828
848C: 282828FF2828 | 282828FF0000
8498: 0103070F1F3F | 3F1F0F070301
84A4: 80C0E0F0F8FC | FCF8F0E0C080
84B0: 183A7E3A1800 | 387C3E7C3800
84BC: 183C7E3C1800 | 187A7E7A1800
84C8: 387C7C7C3800 | 384444443800
~Seite 21
84D4: 0304081020C0 | C02010080403
--  --  --  --  --  --  --  --  --  --	Codes 240-255
84E0: C324181824C3 | FE90F092FE00
84EC: 24DC547F5404 | 02FCA8AAFE00
84F8: FE929292FE00 | 7C547CAAFFA8
8504: 21529C915E20 | A8FFA811FE1C
8510: 20A0BEA02000 | 5E50FF505E00
851C: FE86AA92AAC2 | F8F8F8417F40
8528: 58FF502C21FF | 020CF00C0200
8534: AA55AA55AA55 | 000000000000
--------------------------------------	FLP-ZAHLEN IN EXTERNER DARSTELLUNG
8540: 00000000000010			 0
8547: 00406381398507			 5.3981634000E-78
854E: 16912465689609			 6.6865249116E-99
8555: 65666866969909			 9.9666686665E-99
855C: 69666696999909			 9.9996666669E-99
8563: 67669699999909			 9.9999966667E-99
856A: 67969999999909			 9.9999999667E-99
8571: 97999999999909			 9.9999999997E-99
8578: 30908144293404			 4.2944819030E-43
857F: 40669599020103			 1.0299956640E-30
--------------------------------------
8586: 22585168921304			 3.9268515822E-41
858D: 43267873133204			 2.1373782643E-43
8594: 86317974073404			 4.0774793186E-43
859B: 67626827273404			 4.2727686267E-43
85A2: 53441023293404			 4.2923104453E-43
85A9: 62756442293404			 4.2942647562E-43
85B0: 85186044293404			 4.2944601885E-43
85B7: 18737944293404			 4.2944797318E-43
85BE: 61688144293404			 4.2944816861E-43
85C5: 15888144293404			 4.2944818815E-43
85CC: 11908144293404			 4.2944819011E-43
85D3: 30908144293404			 4.2944819030E-43
--------------------------------------	OPERATOREN MIT HIERARCHIECODES
  (erstes Zeichen: Operator, zweites: Hierarchie,
  drittes: Offset fr Adress-Sprung)
85DA: 2B 08 00 | 2D 08 01		 "+" | "-"
85E0: 2A 04 02 | 2F 04 03		 "*" | "/"
85E6: 3C 09 02 | 3E 09 04 | 3D 09 01	 "<" | ">" | "="
85EF: 5E 01 06			 "^"
85F2: 5C 04 04			 ""
85F5: FF
--------------------------------------	WINKEL UMRECHNUNG IN RAD FR
85F6: 0020252953748109			 Grad:    PI/180= 0.01745329252
85FE: 0000000000000110			 rad:             1
8606: 0068329607578109			 Neugrad: PI/200= 0.015707963268
--------------------------------------	VIERTELKREIS IN
860E: 0000000000001910			 Grad            90
8616: 0068329607570110			 rad      PI/2=   1.5707963268
861E: 0000000000002110			 Neugrad        100
~Seite 32
--------------------------------------	PI
8626: 0036659215140310			 3.1415926536
--------------------------------------
862E: 3390814429349409			 4.342944819033E-99
--------------------------------------
8636: 0000003001171710			 71.7013
--------------------------------------	TABELLE FR KONTRAST
; LCD contrast data table
863E: &100A | &1048 | &1180 | &2040	 von ganz schwach...
8646: &2006 | &2202 | &0C01 | &0C80
864E: &0E01 | &1801 | &2401 | &2600
8654: &2640 | &3003 | &8008 | &800B
865E: &6008 | &8401 | &8A00 | &900F
8666: &1080 | &1200 | &1400 | &0E20
866E: &2200 | &1A00 | &3000 | &3400
8676: &3C00 | &3FC0 | &7800 | &7FFF	 ...bis ganz stark
--------------------------------------	EDITOR-SPRUNGTABELLE
867E: 01 &AFAE | 02 &046F | 05 &0466	 ROLL UP  | LINE TOP | LINE DEL
8687: 06 &0472 | 08 &0491 | 0B &0489	 LINE END | BS       | HOME
8690: 0C &0482 | 0D &AFB8 | 10 &AFA4	 CLS      | CR       | ROLL DOWN
8699: 11 &049D | 12 &04AA | 18 &0457	 DEL      | INS      | LINE 0
86A2: 1C &03BC | 1D &03C2 | 1E &03BF	 RIGHT    | LEFT     | UP
86AB: 1F &03B9 | 00 &04F4		 DOWN     | sonst
----------------------------------------------	TASTATURTABELLE KI1-8 (Teil 1)
  (jede Taste bentigt zwei Bytes: gltig ist nur erstes Byte, es sei denn, da
  es 0 ist: dann sind beide gltig und Code stellt einen Eintastenbefehl dar)
      KI1  KI2  KI3  KI4  KI5  KI6  KI7  KI8
86B1: 0000 0002 0004 0006 0008 000A 000C 3FFF	 SHIFT-  KO3
86C1: 000E 0010 0012 0014 0016 0018 001A 001C	 F-      KO3
86D1: 001E 00FF 0020 0022 0024 0026 0028 21FF	 SHIFT-  KO4
86E1: 002A 00FF 002C 002E 0030 0032 0034 0036	 F-      KO4
86F1: 0038 003A 003C 003E 0040 0042 0044 23FF	 SHIFT-  KO5
8701: 0046 0048 004A 004C 004E 0050 0052 0054	 F-      KO5
8711: 9FFF 5DFF 97FF 11FF 9AFF 05FF 0BFF 25FF	 SHIFT-  KO6
8721: 9FFF 29FF 96FF 12FF 9AFF 08FF 0CFF 0056	 F-      KO6
8731: 5CFF 7DFF 5BFF 60FF 5FFF 40FF 99FF 27FF	 SHIFT-  KO7
8741: 0058 2FFF 28FF 39FF 38FF 37FF 98FF 005A	 F-      KO7
8751: 005C 7BFF EFFF 7EFF 7CFF 005E 0060 3CFF	 SHIFT-  KO8
8761: 0062 2AFF 36FF 35FF 34FF 0064 0066 0068	 F-      KO8
8771: 006A EBFF EAFF E9FF E8FF 006C 006E 3EFF	 SHIFT-  KO9
8781: 0070 2BFF 33FF 32FF 31FF 0072 0074 0076	 F-      KO9
--  --  --  --  --  --  --  --  --  --	--  --
  (Ab hier sind in den jeweils zweiten Bytes Informationen fr die NEW-ALL-
  Routine vorhanden (&h8792/94/96/98, &h879A/9C/9E/A0)
8791: 2073 8773 0D74 9280 ED8F EC8F 0093 FFFF	 SHIFT-  KO10
87A1: 2020 2DFF 0DFF 92FF 2EFF 30FF 00FF FFFF	 F-      KO10
----------------------------------------------	TASTATURTABELLE KI1-8 (Teil 2)
87B1: 55   51   57   45   52   54   59   2C	 normal  KO3
87B9: 75   71   77   65   72   74   79   2C	 klein   KO3
87C1: 48   00   41   53   44   46   47   22	 normal  KO4
87C9: 68   00   61   73   64   66   67   22	 klein   KO4
87D1: 4D   5A   58   43   56   42   4E   24	 normal  KO5
87D9: 6D   7A   78   63   76   62   6E   24	 klein   KO5
87E1: 9F   29   96   12   9A   08   0C   26	 normal  KO6
87E9: 9F   29   96   12   9A   08   0C   26	 klein   KO6
87F1: 5E   2F   28   39   38   37   98   3D	 normal  KO7
87F9: 5E   2F   28   39   38   37   98   3D	 klein   KO7
~Seite 23
8801: 49   2A   36   35   34   50   4F   3B	 normal  KO8
8809: 69   2A   36   35   34   70   6F   3B	 klein   KO8
8811: 4A   2B   33   32   31   4C   4B   3A	 normal  KO9
8819: 6A   2B   33   32   31   6C   6B   3A	 klein   KO9
8821: 20   2D   0D   92   2E   30   00   FF	 normal  KO10
8829: 20   2D   0D   92   2E   30   00   FF	 klein   KO10
----------------------------------------------	TASTATURTABELLE KI9-12
      KI9  KI10 KI11 KI12 | KI9  KI10 KI11 KI12
8831: FC   FD   FE   FF   | 0D   1C   1F   1E
8839: FC   FD   FE   FF   | 0D   06   01   10
8841: F8   F9   FA   FB   | 94   93   9B   1D
8849: F8   F9   FA   FB   | 94   93   9B   02
8851: F4   F5   F6   F7   | 9E   90   9D   9C
8859: F4   F5   F6   F7   | 9E   90   9D   9C
8861: F0   F1   F2   F3   | A4   A1   B0   A5
8869: F0   F1   F2   F3   | 00   64   18   5A
--------------------------------------	TASTATURTABELLEN FR DEN JAPAN-MODUS
8871: 03 25 50 24 01 4F 10 2E
8879: 29 1F 04 A4 30 2F 15 1A
8881: 02 31 38 06 33 55
--  --  --  --  --  --  --  --  --  --
8887: B6 B7 B8 B9 BA BB BC BD
888F: BE BF C0 C1 C2 C3 C4 C5
8897: C6 C7 C8 C9 CA CB CC CD
889F: CE CF D0 D1 D2 D3 D7 D8
88A7: D9 DA DB D4 B2 D5 B4 D6
88AF: DC B2 B3 A9 A6 AC A8 AD
88B7: AA AE 
--------------------------------------	ZEIGER IN TOKEN-TABELLE
88B9: &88ED | &8919 | &892E | &895E	 auf A | B | C | D
88C1: &8990 | &89C6 | &89E4 | &89F7	 auf E | F | G | H
88C9: &8A04 | &8BC9 | &8BC9 | &8A1C	 auf I | J | K | L
88D1: &8A6A | &8A8D | &8AA3 | &8ABA	 auf M | N | O | P
88D9: &8BC9 | &8AE0 | &8B21 | &8B7F	 auf Q | R | S | T
88E1: &8BA4 | &8BAE | &8BC9 | &8BC1	 auf U | V | W | X
88E9: &8BC9 | &8BC9			 auf Y | Z
--------------------------------------	TOKEN-TABELLE
  (letztes Zeichen jeweils geodert mit &h80, eine 0 bedeutet Weiterschalten
  des Tokenkennzeichens: =4: Befehl, =5: Funktion, =6: Stringfunktion,
  =7: sonstige wie z.B. ELSE, TO, OFF)
88ED: 4E474CC5		6E 00		ANGLE	4,110
88F4: 42D3		7B		ABS	5,123
88F8: 53CE		6E		ASN	5,110
88FC: 43D3		6F		ACS	5,111
8900: 54CE		70		ATN	5,112
8904: 53C3		94 0000		ASC	5,148
890A: D3		BC		AS	7,188
890D: 5050454EC4	BD		APPEND	7,189
8914: 4EC4		C4 00		AND	7,196
8919: 4545D0		70		BEEP	4,112
891E: 4C4F41C4		A0		BLOAD	4,160
8924: 534156C5		56 00000000	BSAVE	4, 86
892E: 414CCC		62		CALL	4, 98
8933: 4C4541D2		6A		CLEAR	4,106
8939: 484149CE		69		CHAIN	4,105
893F: 4CD3		71		CLS	4,113
~Seite 24
8943: 4C4F53C5		72 00		CLOSE	4,114
894A: 4FD3		6C		COS	5,108
894E: 4ED4		51		CNT	5, 81
8952: 4FD2		5F 00		COR	5, 95
8957: 4852A4		A0 0000		CHR$	6,160
895E: 45C6		76		DEF	4,118
8962: 49CD		7C		DIM	4,124
8966: 454C4554C5	55		DELETE	4, 85
896D: 524157C3		A2		DRAWC	4,162
8973: 5241D7		7D		DRAW	4,125
8978: 4154C1		80 00		DATA	4,128
897E: 45C7		9C 00		DEG	5,156
8983: 415445A4		AB		DATE$	6,171
8989: 4D53A4		97 0000		DMS$	6,151
8990: 4449D4		6F		EDIT	4,111
8995: 524153C5		85		ERASE	4,133
899B: 52524FD2		86		ERROR	4,134
89A1: 4EC4		87 00		END	4,135
89A6: 52D2		50		ERR	5, 80
89AA: 58D0		79		EXP	5,121
89AE: 52CC		4F		ERL	5, 79
89B2: 4FC6		8A		EOF	5,138
89B6: 4FD8		69		EOX	5,105
89BA: 4FD9		6A 0000		EOY	5,106
89C0: 4C53C5		48 00		ELSE	7, 72
89C6: 4F524D41D4	8B		FORMAT	4,139
89CD: 4FD2		81		FOR	4,129
89D1: 49454CC4		8A 00		FIELD	4,138
89D8: 49D8		7E		FIX	5,126
89DC: 5241C3		7F 000000	FRAC	5,127
89E4: 4F54CF		49		GOTO	4, 73
89E9: 4F5355C2		4A		GOSUB	4, 74
89EF: 45D4		8C 0000000000	GET	4,140
89F8: 59D0		9B 00		HYP	4,155
89FD: 4558A4		A3 0000		HEX$	5,163
8A04: C6		8D 00		IF	7,141
8A08: 4ED4		7D 00		INT	4,125
8A0D: 4E5055D4		9B		INPUT	5,155
8A13: 4E4B4559A4	A8 0000		INKEY$	5,168
8A1C: 4953D4		57		LIST	7, 87
8A21: 4C4953D4		58		LLIST	7, 88
8A27: 4F41C4		59		LOAD	7, 89
8A2C: 45D4		8F		LET	7,143
8A30: 494EC5		90		LINE	7,144
8A35: 4F434154C5	91		LOCATE	7,145
8A3C: 5345D4		93		LSET	7,147
8A41: 5052494ED4	A4 00		LPRINT	7,164
8A49: 4FC7		77		LOG	4,119
8A4D: 47D4		78		LGT	4,120
8A51: 4FC6		89		LOF	4,137
8A55: 45CE		95		LEN	4,149
8A59: 52C1		5D		LRA	4, 93
8A5D: 52C2		5E 00		LRB	4, 94
8A62: 454654A4		9E 0000		LEFT$	5,158
8A6A: 4FCE		61		MON	7, 97
8A6E: 455247C5		5A 00		MERGE	7, 90
~Seite 25
8A75: 45414ED8		57		MEANX	4, 87
8A7B: 45414ED9		58 00		MEANY	4, 88
8A82: 4944A4		9C 00		MID$	5,156
8A88: 4FC4		C7 00		MOD	6,199
8A8D: 4558D4		82		NEXT	7,130
8A92: 45D7		6B 000000	NEW	7,107
8A99: 4F52CD		BA		NORM	4,186
8A9E: 4FD4		C3 00		NOT	4,195
8AA3: 5045CE		97		OPEN	5,151
8AA8: 55D4		99		OUT	5,153
8AAC: CE		9A 000000	ON	5,154
8AB2: 46C6		BF		OFF	4,191
8AB6: D2		C5 00		OR	4,197
8ABA: 4F4BC5		63		POKE	5, 99
8ABF: 52494ED4		A3		PRINT	5,163
8AC5: 55D4		A5		PUT	5,165
8AC9: 4153D3		53 00		PASS	5, 83
8ACF: C9		60		PI	6, 96
8AD2: 4545CB		86		PEEK	6,134
8AD7: 4F494ED4		8F 000000	POINT	6,143
8AE0: 45545552CE	4B		RETURN	4, 75
8AE7: 4553554DC5	4C		RESUME	4, 76
8AEE: 4553544F52C5	4D		RESTORE	4, 77
8AF6: 55CE		6D		RUN	4,109
8AFA: 4541C4		A8		READ	4,168
8AFF: 45CD		A9		REM	4,169
8B03: 5345D4		AA 00		RSET	4,170
8B09: 4EC4		80		RND	5,128
8B0D: 4F554EC4		90 00		ROUND	5,144
8B14: 49474854A4	9D 00		RIGHT$	6,157
8B1C: 45D6		B9 00		REV	7,185
8B21: 544FD0		AE		STOP	4,174
8B26: 59535445CD	52		SYSTEM	4, 82
8B2D: 4156C5		6C		SAVE	4,108
8B32: 5441D4		AD 00		STAT	4,173
8B38: 49CE		6B		SIN	5,107
8B3C: 51D2		7A		SQR	5,122
8B40: 554D58D9		56		SUMXY	5, 86
8B46: 554D58B2		54		SUMX2	5, 84
8B4C: 554DD8		52		SUMX	5, 82
8B51: 554D59B2		55		SUMY2	5, 85
8B57: 554DD9		53		SUMY	5, 83
8B5C: 4458CE		5B		SDXN	5, 91
8B61: 44D8		59		SDX	5, 89
8B65: 4459CE		5C		SDYN	5, 92
8B6A: 44D9		5A		SDY	5, 90
8B6E: 47CE		7C 00		SGN	5,124
8B73: 5452A4		A1 00		STR$	6,161
8B79: 5445D0		C0 00		STEP	7,192
8B7F: 524FCE		5D		TRON	4, 93
8B84: 524F46C6		5F 00		TROFF	4, 95
8B8B: 41CE		6D 00		TAN	5,109
8B90: 494D45A4		AC 00		TIME$	6,172
8B97: 4845CE		47		THEN	7, 71
8B9C: 41C2		B6		TAB	7,182
8BA0: CF		C1 00000000	TO	7,193
~Seite 26
8BA7: 53494EC7		C2 00		USING	4,194
8BAE: 45524946D9	60		VERIFY	5, 96
8BB5: 41D2		B2 00		VAR	5,178
8BBA: 41CC		96 000000000000	VAL	6,150
8BC4: 4FD2		C6 0000000000	XOR	4,198
8BCD: FF				Endkennzeichen
--------------------------------------	TEXT FR UNBEKANNTE TOKEN
8BCE: 3F3FBF				 "???"
--------------------------------------	SPRUNGADRESSEN FR OPERATIONEN
8BD1: &9C31 | &9C2E | &9C3A | &9C64	 +   | -   | *   | /
8BD9: &9C42 | &9C72 | &9C6C | &9BF9	    | MOD | ^   | Vorzeichenwechsel
8BE1: &9C03 | &9C0C | &9C0C | &9C0C	 NOT | AND | OR  | XOR
-------------------------------------->	FEHLER BEI UNDEFINIERTEM TOKEN
8BE9: 37FCAB	JP	&hABFC		 zum FC Error
--------------------------------------	ADRESSEN DER FUNKTIONEN
8BEC: &A350 | &A345 | &A02D | &A031	  79: ERL    | ERR    | CNT    | SUMX
8BF4: &A035 | &A039 | &A03D | &A041	  83: SUMY   | SUMX2  | SUMY2  | SUMXY
8BFC: &A09E | &A0A3 | &A078 | &A07C	  87: MEANX  | MEANY  | SDX    | SDY
8C04: &A092 | &A098 | &A0D4 | &A0DF	  91: SDXN   | SDYN   | LRA    | LRB
8C0C: &A0E4 | &A021 | &8BE9 | &8BE9	  95: COR    | PI     | %      | %
8C14: &8BE9 | &8BE9 | &8BE9 | &8BE9	  99: %      | %      | %      | %
8C1C: &8BE9 | &8BE9 | &A102 | &A11A	 103: %      | %      | EOX    | EOY
8C24: &0AC2 | &0AC4 | &0AC8 | &0B2D	 107: SIN    | COS    | TAN    | ASN
8C2C: &0B2F | &0B31 | &9ED7 | &9EDB	 111: ACS    | ATN    | HYPSIN | HYPCOS
8C34: &9EDF | &9EE2 | &9EE6 | &9EEA	 115: HYPTAN | HYPASN | HYPACS | HYPATN
8C3C: &0A55 | &0A57 | &0A8C | &08DD	 119: LOG    | LGT    | EXP    | SQR
8C44: &A3BC | &A32A | &A312 | &A299	 123: ABS    | SGN    | INT    | FIX
8C4C: &A320 | &9FF4 | &8BE9 | &8BE9	 127: FRAC   | RND    | %      | %
8C54: &8BE9 | &8BE9 | &8BE9 | &A362	 131: %      | %      | %      | PEEK
8C5C: &8BE9 | &8BE9 | &C000 | &D7E4	 135: %      | %      | LOF    | EOF
8C64: &8BE9 | &8BE9 | &8BE9 | &8BE9	 139: %      | %      | %      | %
8C6C: &A368 | &A3D8 | &8BE9 | &8BE9	 143: POINT  | ROUND, | %      | %
8C74: &8BE9 | &A33A | &A35B | &A3C4	 147: %      | ABS    | LEN    | VAL
8C7C: &8BE9 | &8BE9 | &8BE9 | &8BE9	 151: %      | %      | %      | %
8C84: &8BE9 | &A132			 155: (HYP)  | DEG
--------------------------------------	ADRESSEN DER STRINGFUNKTIONEN
8C88: &A1F2 | &8BE9 | &8BE9 | &8BE9	 151: DMS$   | %      | %      | %
8C90: &D78E | &A446 | &A48E | &A48E	 155: INPUT  | MID$   | RIGHT$ | LEFT$
8C98: &8BE9 | &A4BF | &A555 | &8BE9	 159: %      | CHR$   | STR$   | &
8CA0: &A4CA | &8BE9 | &8BE9 | &8BE9	 163: HEX$   | %      | %      | %
8CA8: &8BE9 | &9E3B | &8BE9 | &8BE9	 167: %      | INKEY$ | %      | %
8CB0: &A17A | &A198			 171: DATE$  | TIME$
--------------------------------------	ZEIGER AUF TOKENTEXTE FR SHORTKEYS
  (Bei Funktionen mit obligatorischer Klammer ist Bit 12 der Adresse =1)
8CB4: &8BA7 | &8B32 | &8A35 | &8990	 USING   | STAT    | LOCATE   | EDIT
8CBC: &8AE0 | &8B97 | &89C0 | &8A08	 RETURN  | THEN    | ELSE     | INT
8CC4: &8A49 | &8A4D | &89AA | &8B3C	 LOG     | LGT     | EXP      | SQR
8CCC: &88F4 | &8B6E | &8983 | &89E9	 ABS     | SGN     | DATE$    | GOSUB
8CD4: &8962 | &8B26 | &8966 | &89CD	 DIM     | SYSTEM  | DELETE   | FOR
8CDC: &89E4 | &997E | &89F8 | &8A13	 GOTO    | DEG(    | HYP      | INKEY$
8CE4: &9904 | &9BBA | &9A55 | &8B38	 ASC(    | VAL(    | LEN(     | SIN
8CEC: &8AEE | &8A27 | &8B2D | &8933	 RESTORE | LOAD    | SAVE     | CLEAR
8CF4: &8943 | &8919 | &8A8D | &99FD	 CLOSE   | BEEP    | NEXT     | HEX$(
8CFC: &9957 | &9B73 | &9A62 | &9A82	 CHR$(   | STR$(   | LEFT$(   | MID$(
8D04: &9B14 | &9989 | &894A | &8B8B	 RIGHT$( | DMS$(   | COS      | TAN
8D0C: &8B90 | &88F8 | &8A0D | &8ABF	 TIME$   | ASN     | INPUT    | PRINT
~Seite 27
8D14: &8AA3 | &89DC | &8ACF | &8B09	 OPEN    | FRAC    | PI       | RND
8D1C: &88FC | &8978 | &8A1C | &8AFA	 ACS     | DATA    | LIST     | READ
8D24: &9B0D | &88ED | &8A88 | &8900	 ROUND(  | ANGLE   | MOD      | ATN
--------------------------------------	TABELLE VON FOLIENTASTEN MIT ADRESSEN
8D2C: FC &92D3 | FD &9292 | FE &9271	 ANS   | OUT   | IN
8D35: 00 &94F0				 LCKEY

=== ELEMENTARE SYSTEM-ROUTINEN =================================================
-------------------------------------->	NEW-ALL-TASTE VERARBEITEN
8D38: 572010	PST	IE,16
8D3B: 77088E	CAL	&h8E08		 Default-Kontrast einstellen
8D3E: 167F	PST	UA,$31		 alle Zeiger auf Bank0
8D40: D1004A6B	LDW	$0,&h6B4A	 Kopieren der Zeichen 240-255
8D44: D102E084	LDW	$2,&h84E0	  vom Zeichensatzbereich
8D48: D1046000	LDW	$4,&h0060	  ins RAM
8D4C: 774890	CAL	&h9048 [BUPDN]    |
8D4F: 566010	PST	UA,%00010000	 IX zeigt in RAM, IZ ins ROM
8D52: D6002F69	PRE	IX,&h692F	 Speicherverwaltung:
8D56: 420070	LD	$0,&h70		 alle Anfnge auf &h7000 setzen
8D59: 8201	LDW	$1,#0		 |
8D5B: 8203	LDW	$3,#0		 |
8D5D: E21FA0	STI6	$31,(IX+#0)	 &h692F..34 belegen
8D60: 0921	SB	$1,#1		 &hFF in $1 (damit $0/1=&HFF00)
8D62: FB	SLW			 Prozessor auf langsam schalten
8D63: 1142	LD	$2,(#2)		 Inhalt von &HFF00 lesen,
8D65: 1B42	INV	$2		  invertieren
8D67: 1042	ST	$2,(#2)		  und wieder speichern
8D69: 1140	LD	$0,(#2)		 Inhalt wieder holen
8D6B: FA	FST			 Prozessor auf schnell schalten
8D6C: D6409287	PRE	IZ,&h8792	 IZ Zeiger auf Startwert-Tabelle
8D70: 0142	SBC	$2,#2		 ist ($2)<>(S0),
8D72: B406	JR	NZ,&h8D79	  dann ist RP-32 nicht eingesteckt ->
8D74: 0923	SB	$3,#1		 sonst setze &hFF in $3
8D76: 6D0408	LDD	$4,(IZ+8)	  und IZ auf &h879A   | 8kB    32kB
8D79: AB04	LDIW	$4,(IZ+#0)	&h6935/36+37/38+39/3A: &h7300 &h8FFF
8D7B: A203	STIW	$3,(IX+#0)	&h693B/3C+3D/3E+3F/40: &h7300 &h8FFF
8D7D: 49015D	SB	$1,93		&h6941/42+43/44+45/46: &h7400 &h93FF
8D80: B588	JR	C,&h8D79	&h6947/48:             &h8000 &hFFFF
8D82: B488	JR	NZ,&h8D7B	 noch nicht fertig? dann Schleife ->
8D84: A003	STW	$3,(IX+#0)	 letzten Wert setzen
8D86: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
8D89: 649F58	STD	$31,(IX-88)	 &h68EF =0
8D8C: 649F1C	STD	$31,(IX-28)	 &h68D3 =0
8D8F: D102086D	LDW	$2,&h6D08	 &h6D08..&h6F50 lschen
8D93: D1044902	LDW	$4,&h0249	 |
8D97: 776E01	CAL	&h016E [CLRME]	 |
8D9A: D640AC6B	PRE	IZ,&h6BAC	 IZ Zeiger auf Rechner-Uhrzeit
8D9E: D1070101	LDW	$7,&h0101	 Uhrzeit/Datum zurcksetzen
8DA2: F9	CLT			 Timer lschen
8DA3: E105A0	ST6	$5,(IZ+#0)	 sowie BEEP ON setzen
8DA6: 6D0054	LDD	$0,(IZ+84)	 IZ Zeiger auf RS232C-Parameter
8DA9: D100B002	LDW	$0,&h02B0	 diese zurcksetzen
8DAD: D1020305	LDW	$2,&h0503	 |
8DB1: E10060	ST4	$0,(IZ+#0)	 |
8DB4: D640446F	PRE	IZ,&h6F44	 IZ Zeiger auf C.Boot-Datum/Uhrzeit
8DB8: 3FBE	SB	(IZ-#1),$30	  diese lschen
~Seite 28
8DBA: 3F3E	SB	(IZ+#1),$30	  |
8DBC: 7759D0	CAL	&hD059		 STAT CLEAR ausfhren
8DBF: 77888F	CAL	&h8F88		 Resets an Interface und Drucker
8DC2: B718	JR	&h8DDB		 in die Eingaberoutine springen
-------------------------------------->	RESET-TASTE VERARBEITEN
8DC4: 564080	PST	??,128		 {undokumentierter Befehl}
8DC7: 776C8F	CAL	&h8F6C		 Defaultregister initialisieren
8DCA: 77EA8E	CAL	&h8EEA		 Rechner evtl. abschalten
8DCD: 251F	STD	$31,(IZ+#0)	 C.Boot-Status inaktiv setzen
8DCF: 572010	PST	IE,16
8DD2: 5640A0	PST	??,160		 {undokumentierter Befehl}
8DD5: 77088E	CAL	&h8E08		 Default-Kontrast setzen
8DD8: 777F8F	CAL	&h8F7F		 Zeiger auf Speicherverwaltung setzen
8DDB: 37AA90	JP	&h90AA		 in die Eingaberoutine springen
-------------------------------------->	EINSCHALTROUTINE
8DDE: D7004A6B	PRE	SS,&h6B4A	 Systemstack zurcksetzen
8DE2: 776C8F	CAL	&h8F6C		 Defaultregister initialisieren
8DE5: 77EA8E	CAL	&h8EEA		 Rechner evtl. abschalten
8DE8: 572010	PST	IE,16
8DEB: 5640A0	PST	??,160		 {undokumentierter Befehl}
8DEE: 777F8F	CAL	&h8F7F
8DF1: 771093	CAL	&h9310		 ggfs. C.Boot-File starten
8DF4: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
8DF6: D1025EF0	LDW	$2,&hF05E	 $2/3 Zeiger auf Text "AUTO    EXE"
8DFA: 774090	CAL	&h9040		 diesen nach WORK kopieren
8DFD: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
8E00: 770FE8	CAL	&hE80F		 Startdatei im Speicher suchen
8E03: B5A9	JR	C,&h8DDB	 nicht gefunden? dann ->
8E05: 37DDE9	JP	&hE9DD		 sonst zum Starten ->
-------------------------------------->	DEFAULT-KONTRAST FESTLEGEN
8E08: D640AA6B	PRE	IZ,&h6BAA	 IZ Zeiger auf Kontrastwertspeicher
8E0C: D1037686	LDW	$3,&h8676	 Default-Kontrast-Wert holen
8E10: A103	STW	$3,(IZ+#0)	  und dort ablegen
8E12: F7	RTN			 zurck
-------------------------------------->	KONTRAST FESTLEGEN
8E13: D640AA6B	PRE	IZ,&h6BAA	 IZ Zeiger auf Kontrastwertspeicher
8E17: A903	LDW	$3,(IZ+#0)	 Kontrastwert holen
8E19: A103	STW	$3,(IZ+#0)	  und wieder speichern
8E1B: 5400C3				 {undokumentierter Befehl}
8E1E: 0200	LD	$0,#0		 Lowest Byte nullsetzen
8E20: 9643	PRE	IZ,$3		 IZ Zeiger in Kontrasttabelle
8E22: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
8E24: A901	LDW	$1,(IZ+#0)	 Kontrast aus Tabelle lesen
8E26: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
8E29: 410366	SBC	$3,&h66		 diesen wert noch
8E2C: B104	JR	NC,&h8E31	  aufbereiten (Umsetzen in
8E2E: DA0240	DID3	$2		  3-Byte-Wert)
8E31: 4E000C	OR	$0,12		  |
8E34: D20040				 {undokumentierter Befehl}
8E37: F7	RTN			 zurck
-------------------------------------->	KONTRAST ERHHEN
8E38: D100027C	LDW	$0,&h7C02	 Inkrement und Oberwert holen
8E3C: D640AA6B	PRE	IZ,&h6BAA	 IZ Zeiger auf Kontrastwert-Speicher
8E40: A903	LDW	$3,(IZ+#0)	 Kontrastwert holen
8E42: 016301	SBC	$3,$1		 Kontrast schon auf Endposition?
8E45: F0	RTN	Z		  dann zurck
~Seite 29
8E46: 08C3AF	ADJ	$3,#2,&h8E19	 sonst ndern und ausfhren
-------------------------------------->	KONTRAST ZURCKNEHMEN
8E49: D100FE3E	LDW	$0,&h3EFE	 Dekrement und Unterwert holen
8E4D: B792	JR	&h8E3C		 in obige Routine ->
-------------------------------------->	ONE-MINUTE-TIMER-INTERRUPTROUTINE
8E4F: E606C0	PHS7	$6		 Register $0-7 zwischenspeichern
8E52: 9E40	GRE	IZ,$0		 IZ ablegen
8E54: 1C42	GFL	$2		 Flags ablegen
8E56: 776F8F	CAL	&h8F6F		 Kurzregister definieren
8E59: D640B16B	PRE	IZ,&h6BB1	 IZ Zeiger auf Uhrzeit
8E5D: A9A3	LDW	$3,(IZ-#1)	 diese holen
8E5F: 0A23	ADB	$3,#1		 um 1 Minute erhhen
8E61: 410360	SBC	$3,&h60		 noch nicht 60. Minute?
8E64: B431	JR	NZ,&h8E96	  dann ok ->
8E66: 0203	LD	$3,#0		 sonst Minuten=0
8E68: 0A24	ADB	$4,#1		 und Stunden erhhen
8E6A: 410424	SBC	$4,&h24		 noch nicht 24. Stunde?
8E6D: B428	JR	NZ,&h8E96	  dann ok ->
8E6F: 0204	LD	$4,#0		 sonst Stunden=0
8E71: A1A3	STW	$3,(IZ-#1)	 Uhrzeit speichern
8E73: 6D8303	LDD	$3,(IZ-3)	 IZ Zeiger auf Datum
8E76: E9A340	LD3	$3,(IZ-#1)	 Datum holen
8E79: 0A24	ADB	$4,#1		 Tag erhhen
8E7B: 77C1ED	CAL	&hEDC1		 Plausibilittskontrolle fr Monate
8E7E: B415	JR	NZ,&h8E94	 nicht Monatsende? dann ok ->
8E80: 0A25	ADB	$5,#1		 sonst Monat erhhen
8E82: 0224	LD	$4,#1		 wieder auf 1. Tag zurcksetzen
8E84: 410513	SBC	$5,&h13		 noch nicht 13. Monat?
8E87: B40C	JR	NZ,&h8E94	  dann ok ->
8E89: 0225	LD	$5,#1		 sonst Monat auf 1. zurcksetzen
8E8B: 0823	AD	$3,#1		 und Jahr erhhen
8E8D: 410364	SBC	$3,100		 nicht neues Jahrhundert?
8E90: B403	JR	NZ,&h8E94	  dann ->
8E92: 0203	LD	$3,#0		 sonst wieder auf 0 setzen
8E94: 2125	ST	$5,(IZ+#1)	 Jahr speichern
8E96: A1A3	STW	$3,(IZ-#1)	 Datum oder Uhrzeit speichern
8E98: D640F168	PRE	IZ,&h68F1	 Zahl der Minuten bis zum Abschalten
8E9C: 3F1E	SB	(IZ+#0),$30	  dekrementieren
8E9E: B10A	JR	NC,&h8EA9	 noch nicht kleiner als Null? dann ->
8EA0: D640D268	PRE	IZ,&h68D2	 IZ Zeiger auf Tastaturmodus I
8EA4: 420340	LD	$3,64		 "AUTO POWER OFF"-Flag setzen
8EA7: 3D03	AD	(IZ+#0),$3	 |
8EA9: D640AE6B	PRE	IZ,&h6BAE	 IZ Zeiger auf Datum/Uhrzeit
8EAD: E90360	LD4	$3,(IZ+#0)	 Datum/Uhrzeit holen
8EB0: D640476F	PRE	IZ,&h6F47	 IZ Zeiger auf C.Boot-Fileheaderzeiger
8EB4: BB1E	SBCW	(IZ+#0),$30	 kein C.Boot-File da?
8EB6: B518	JR	C,&h8ECF	  dann zurck vom Interrupt
8EB8: E60A60	PHS4	$10		 Register $7-10 zwischenspeichern
8EBB: EDAA60	LDD4	$10,(IZ-#1)	 C.Boot-Datum/Uhrzeit holen
8EBE: 0027	ADC	$7,#1		 nicht jeden Tag starten?
8EC0: B404	JR	NZ,&h8EC5	  dann ->
8EC2: 826703	LDW	$7,$3		 sonst Datum kopieren
8EC5: C76367	XRC4	$3,$7		 stimmen Datum und Uhrzeit nicht?
8EC8: EE0760	PPS4	$7		 Register $7-10 wieder holen
8ECB: B403	JR	NZ,&h8ECF	  dann zurck von Interrupt
8ECD: 25BE	STD	$30,(IZ-#1)	 C.BOOT-Status auf "zu aktivieren"
~Seite 30
-------------------------------------->	RCKKEHR VOM INTERRUPT
8ECF: 9640	PRE	IZ,$0		 IZ wieder holen
8ED1: 1442	PFL	$2		 Flags wieder setzen
8ED3: EE00C0	PPS7	$0		 Register $0-7 wieder holen
8ED6: FD	RTNI			 zurck vom Interrupt
-------------------------------------->	ON-INTERRUPTROUTINE
  (Ausfhrung alle 18 ms)
8ED7: E606C0	PHS7	$6		 Register $0-7 zwischenspeichern
8EDA: 1C42	GFL	$2		 Flags ablegen
8EDC: 9E40	GRE	IZ,$0		 IZ ablegen
8EDE: D6405169	PRE	IZ,&h6951	 IZ Zeiger auf Cursorblinkzhler
8EE2: 3F1E	SB	(IZ+#0),$30	 diesen dekrementieren
8EE4: B196	JR	NC,&h8ECF	 noch nicht Null gewesen? dann ->
8EE6: 251F	STD	$31,(IZ+#0)	 sonst auf Null belassen
8EE8: B79A	JR	&h8ECF		 Rckkehr vom Interrupt
-------------------------------------->	RECHNER EVTL. ABSCHALTEN
8EEA: D640426F	PRE	IZ,&h6F42	 IZ Zeiger auf C.Boot-Status
8EEE: 3B1F	SBC	(IZ+#0),$31	 C.Boot-File nicht zu aktivieren?
8EF0: B004	JR	Z,&h8EF5	  dann ->
8EF2: 391E	ADC	(IZ+#0),$30	 C.Boot-File nicht aktiv?
8EF4: F4	RTN	NZ		  dann zurck
8EF5: 77038F	CAL	&h8F03		 Flags stabilisiert abholen
8EF8: 440308	ANC	$3,8		 SW-Flag: POWER-OFF?
8EFB: B005	JR	Z,&h8F01	  dann abschalten
8EFD: 440304	ANC	$3,4		 APO-Flag: zeitgesteuerte Einschaltung?
8F00: F0	RTN	Z		  dann zurck
8F01: FE	OFF			 Rechnerabschaltung
8F02: FE	OFF			 |
-------------------------------------->	FLAGS STABILISIERT ABHOLEN
8F03: 1C43	GFL	$3		 Flags ablegen
8F05: 1C42	GFL	$2		 Flags nochmal ablegen
8F07: 016302	SBC	$3,$2		 ungleich?
8F0A: B488	JR	NZ,&h8F03	  dann noch einmal ablegen ->
8F0C: F7	RTN			 zurck
-------------------------------------->	GGF. AUTO-POWER-OFF DURCHFHREN
8F0D: 771093	CAL	&h9310		 ggf. C.Boot-File starten
8F10: D600D268	PRE	IX,&h68D2	 IX Zeiger auf Tastaturmodus I
8F14: 2C03	LDD	$3,(IX+#0)	 diesen holen
8F16: 440340	ANC	$3,64		 ist "AUTO POWER OFF"-Flag gelscht?
8F19: B009	JR	Z,&h8F23	  dann ->
8F1B: 77438F	CAL	&h8F43		 C.Boot-Status evtl. auf "inaktiv" setzen
8F1E: B734	JR	&h8F53		 Rechner abschalten ->
-------------------------------------->	AUF OFF UND C.BOOT PRFEN
8F20: 771093	CAL	&h9310		 ggf. C.Boot-File starten
8F23: 1C03	GPO	$3		 Portdaten ablegen
8F25: 1C02	GPO	$2		 Portdaten nochmal ablegen
8F27: 016302	SBC	$3,$2		 ungleich?
8F2A: B488	JR	NZ,&h8F23	  dann noch einmal ablegen ->
8F2C: 440320	ANC	$3,32		 Batterie nicht leer?
8F2F: B007	JR	Z,&h8F37	  dann ->
8F31: 564080	PST	??,128		 {undokumentierter Befehl}
8F34: 17BF1D	PSTJ	IE,$31,&h8F53	 zum Abschalten ->
8F37: 77038F	CAL	&h8F03		 Flags stabilisiert holen
8F3A: 440480	ANC	$4,128		 C.Boot-File nicht (zu) aktiv(ivieren)?
8F3D: B011	JR	Z,&h8F4F	  dann ->
8F3F: 440308	ANC	$3,8
~Seite 31
8F42: F0	RTN	Z		  dann zurck
8F43: 0024	ADC	$4,#1		 C.Boot-File nicht aktiv?
8F45: F4	RTN	NZ		  dann zurck
8F46: 9E42	GRE	IZ,$2		 IZ ablegen
8F48: 9640	PRE	IZ,$0		 IZ Zeiger auf C.Boot-Status
8F4A: 3D1E	AD	(IZ+#0),$30	 C.Boot-Status auf inaktiv setzen
8F4C: 9642	PRE	IZ,$2		 IZ wieder setzen
8F4E: F7	RTN			 zurck
8F4F: 440308	ANC	$3,8
8F52: F4	RTN	NZ		  dann zurck
8F53: D7004A6B	PRE	SS,&h6B4A	 Systemstackzeiger zurcksetzen
8F57: 770EC1	CAL	&hC10E		 Start des C.Boot-Files vorbereiten
8F5A: 771093	CAL	&h9310		 evtl. C.Boot-File starten
8F5D: D1033E86	LDW	$3,&h863E	 $2/3 auf niedrigsten Kontrastwert
8F61: 771B8E	CAL	&h8E1B		 diesen als Kontrast setzen
8F64: 777602	CAL	&h0276
8F67: 773DE3	CAL	&hE33D		 20ms warten
8F6A: FE	OFF			 Rechner abschalten
8F6B: FE	OFF			 |
-------------------------------------->	KURZREGISTER INITIALISIEREN
8F6C: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
8F6F: 551F	PSH	#0,$31		 Kurzregister #0 auf $31 setzen
8F71: 553E	PSH	#1,$30		 Kurzregister #1 auf $30 setzen
8F73: 5540	PSH	#2,$0		 Kurzregister #2 auf $0 setzen
8F75: D11E0100	LDW	$30,&h0001	 Register $30 auf 1 & $31 auf 0 setzen
8F79: F7	RTN			 zurck
-------------------------------------->	IZ ZEIGER AUF BETRIEBSMODUS
8F7A: D640516F	PRE	IZ,&h6F51	 IZ Zeiger auf Betriebsmodus setzen
8F7E: F7	RTN			 zurck
-------------------------------------->
8F7F: D1000180	LDW	$0,&h8001
8F83: 0202	LD	$2,#0
8F85: 771891	CAL	&h9118
8F88: 5400C0				 {undokumentierter Befehl}
8F8B: 5620D4	PST	PD,%11010100	 RESET an Interface ausgeben
8F8E: 5600DC	PST	PE,%11011100
8F91: 77FF8F	CAL	&h8FFF		 Bildschirmparameter zurcksetzen
8F94: D102D868	LDW	$2,&h68D8	 &h68D8-68F2 lschen
8F98: 42041B	LD	$4,27		 |
8F9B: 771690	CAL	&h9016		 |
8F9E: D1020C69	LDW	$2,&h690C	 &h690C-692F lschen
8FA2: 420423	LD	$4,35		 |
8FA5: 771690	CAL	&h9016		 |
8FA8: 77CA90	CAL	&h90CA		 Tastaturpuffer zurcksetzen
8FAB: D6004D69	PRE	IX,&h694D	 IX Zeiger auf ACJMP
8FAF: E00680	ST5	$6,(IX+#0)	 Bereich lschen
8FB2: 777A8F	CAL	&h8F7A		 IZ auf Betriebsmodus setzen
8FB5: E10640	ST3	$6,(IZ+#0)	 Bereich lschen
8FB8: 77F9D0	CAL	&hD0F9		 letzte RND-Zahl auf Null setzen
8FBB: 77FC01	CAL	&h01FC
8FBE: FB	SLW			 Prozessor auf langsam setzen
8FBF: 5620C4	PST	PD,%11000100	 RESET fr Interface beenden
8FC2: 77C106	CAL	&h06C1
8FC5: D640030C	PRE	IZ,&h0C03	 Zeiger auf Interface
8FC9: D600FA6B	PRE	IX,&h6BFA	 Zeiger auf Interface-Art-Status
8FCD: AB00	LDIW	$0,(IZ+#0)	 Flags holen
~Seite 32
8FCF: 0201	LD	$1,#0		 |
8FD1: A000	STW	$0,(IX+#0)	 Interface-Art setzen
8FD3: 0020	ADC	$0,#1		 kein Interface angeschlossen?
8FD5: B517	JR	C,&h8FED	  dann ->
8FD7: D1000D05	LDW	$0,&h050D	 sonst CR an Drucker
8FDB: A100	STW	$0,(IZ+#0)	  ausgeben
8FDD: D1000401	LDW	$0,&h0104	 INIT vorbereiten
8FE1: 020F	LD	$15,#0		 Kennzeichen fr -nicht warten-
8FE3: 773296	CAL	&h9632		 INIT an Drucker geben
8FE6: FA	FST			 Prozessor auf schnell setzen
8FE7: 420403	LD	$4,3		 INIT zurcknehmen
8FEA: 2524	STD	$4,(IZ+#1)	 |
8FEC: F7	RTN			 zurck
-------------------------------------->	INTERFACELOSE PORTKONFIGURATION SETZEN
8FED: FA	FST			 Prozessor auf schnell setzen
8FEE: 5600C0	PST	PE,%11000000	 Portkonfiguration setzen
8FF1: F7	RTN			 zurck
-------------------------------------->	BUSY SETZEN + MENZEILENPUFFER LEEREN
8FF2: 77AFE6	CAL	&hE6AF		 IZ Zeiger auf Direktmodusflag
8FF5: 251E	STD	$30,(IZ+#0)	 Programmodus setzen
8FF7: D102A168	LDW	$2,&h68A1	 Menzeilenpuffer lschen
8FFB: 42842018	LDJ	$4,32,&h9016	 ->
-------------------------------------->	BILDSCHIRMPARAMETER ZURCKSETZEN
8FFF: D600C768	PRE	IX,&h68C7	 IX Zeiger auf Eingabemodus
9003: 221F	STI	$31,(IX+#0)	 diesen zurcksetzen
9005: 9E02	GRE	IX,$2		 $2/3 Zeiger auf Cursorposition
9007: 772A90	CAL	&h902A		 Cursorblinken und ?4? setzen
900A: D100800A	LDW	$0,&h0A80
900E: 64000A	STD	$0,(IX+10)	 128 Zeichen im Display
9011: 2421	STD	$1,(IX+#1)	 Repeat und ?2? ermglichen
9013: 420409	LD	$4,9		 &h68C8-68D0 lschen
9016: 02850F	LDJ	$5,#0,&h9027	 und ->
-------------------------------------->	ZEILENLNGE FESTST., EING.PUFFER LSCHEN
9019: 77EA05	CAL	&h05EA		 Offs. auf letztes Z. der Zeile berechnen
901C: 77FD05	CAL	&h05FD		 Rest der Zeile in Displaypuffer lschen
--  --  --  --  --  --  --  --  --  -->	INCLR: LSCHEN DES EINGABEPUFFERS
901F: D1020060	LDW	$2,&h6000	 $2/3 Zeiger auf Eingabepuffer
9023: D1040001	LDW	$4,256		 $4/5 Lnge des Eingabepuffers
9027: 376E01	JP	&h016E [CLRME]	 diesen Bereich lschen
-------------------------------------->	EINGABEMODUS AUF ? SETZEN
902A: D600C768	PRE	IX,&h68C7	 IX Zeiger auf Eingabemodus
902E: 2C00	LDD	$0,(IX+#0)	 diesen holen
9030: 4C0020	AN	$0,32		 Revers-Modus retten
9033: 4E0006	OR	$0,2+4		 Cursorblinken und ?4? setzen
9036: 2400	STD	$0,(IX+#0)	 wieder speichern
9038: F7	RTN			 zurck
-------------------------------------->	DISK-FILENAME IN DEN WORK-PUFFER
9039: 7791EF	CAL	&hEF91		 zwei Eintrge ab Men-Cursor holen
903C: D1025B6F	LDW	$2,&h6F5B	 $2/3 Zeiger auf Disk-Filename
9040: D100F468	LDW	$0,&h68F4	 $0/1 Zeiger auf WORK-Puffer
9044: D1040B00	LDW	$4,11		 Filename kopieren
~Seite 33
-------------------------------------->	BUPDN: VERSCHIEBEN EINES BEREICHS
  (I: $0/1 Zieladresse, $2/3 Quelladresse, $4/5 Lnge des Bereichs)
9048: 8124	SBCW	$4,#1		 Lnge =0?
904A: F5	RTN	C		 dann zurck
904B: 1F26	GST	IE,$6		 Interrupt-Enable ablegen
904D: 1866	BIU	$6		 IRQ1 freigegeben?
904F: 359901	JP	C,&h0199	  dann ->
9052: 8142	SBCW	$2,#2		 Zieladresse>Quelladresse?
9054: B517	JR	C,&h906C	  dann ->
9056: 9602	PRE	IX,$2		 IX=Startadresse
9058: 8924	SBW	$4,#1		 Lnge um 1 verringern
905A: 886204	ADW	$2,$4		 und zur Startadresse addieren
905D: 9622	PRE	IY,$2		 IY=Endadresse
905F: 9640	PRE	IZ,$0		 IZ=Zieladresse
9061: D8	BUP			 Bereich rckwrts kopieren
9062: 9E42	GRE	IZ,$2		 Ende des Zielbereichs ablegen
9064: 9E04	GRE	IX,$4		 Ende des Quellbereichs ablegen
9066: 896402	SBW	$4,$2		 $4/5 Abstand zwischen beiden
9069: 8822	ADW	$2,#1		  Bereichen
906B: F7	RTN			 zurck
906C: 9622	PRE	IY,$2		 IY=Startadresse
906E: 8924	SBW	$4,#1		 Lnge um 1 verringern
9070: 886004	ADW	$0,$4		 und zur Zieladresse addieren
9073: 886204	ADW	$2,$4		 Lnge-1 zur Startadresse addieren
9076: 9602	PRE	IX,$2		 IX=Endadresse
9078: 9640	PRE	IZ,$0		 IZ=Ziel-Endadresse
907A: D9	BDN			 Block vorwrts kopieren
907B: 9E44	GRE	IZ,$4		 Anfang des Zielbereichs ablegen
907D: 9E02	GRE	IX,$2		 Anfang des Quellbereichs ablegen
907F: 896402	SBW	$4,$2		 $4/5 Abstand zwischen den Bereichen
9082: F7	RTN			 zurck
-------------------------------------->	MEN-CURSORBALKEN SETZEN
  ($0 Cursorposition)
9083: 77A605	CAL	&h05A6		 Grafikposition eines Zeichens berechnen
9086: 9642	PRE	IZ,$2		 IZ Zeiger auf Grafikposition
9088: 9E46	GRE	IZ,$6		 IZ in $6/7 ablegen
908A: 42040F	LD	$4,15		 Zhler auf 15 Zeichen setzen
908D: E908A0	LD6	$8,(IZ+#0)	 Grafikmuster eines Zeichens holen,
9090: DB48A0	INV6	$8		  invertieren
9093: E308A0	STI6	$8,(IZ+#0)	 und wieder speichern
9096: 0924	SB	$4,#1		 Zhler herabsetzen
9098: B48C	JR	NZ,&h908D	 noch mehr? dann Schleife ->
909A: F7	RTN			 sonst zurck
-------------------------------------->	CAL-/BASIC-BRK-ROUTINE
909B: 770B93	CAL	&h930B		 IZ Zeiger auf Eingabemodus
909E: 251F	STD	$31,(IZ+#0)	 diesen auf Null setzen
90A0: 77CE95	CAL	&h95CE		 CRLF ausgeben
--  --  --  --  --  --  --  --  --  -->	RCKKEHR IN DEN DIREKTMODUS
90A3: D7004A6B	PRE	SS,&h6B4A	 Systemstackzeiger zurcksetzen
90A7: 77B7AD	CAL	&hADB7		 temporre Stapel lschen
--  --  --  --  --  --  --  --  --  -->
90AA: 7771AB	CAL	&hAB71		 Test auf Rechner-Modus
90AD: 744BAD	CAL	NZ,&hAD4B	 BASIC-Modus? dann "ready" ausgeben
90B0: 772A90	CAL	&h902A		 Eingabemodus zurcksetzen
90B3: D1029B90	LDW	$2,&h909B	 $2/3 Zeiger auf CAL-/BASIC-BRK-Routine
90B7: 77C390	CAL	&h90C3		 diesen im ACJMP-Vektor speichern
~Seite 34
90BA: 77FA90	CAL	&h90FA		 u.a. Cursorblinken bestimmen
90BD: 77E190	CAL	&h90E1		 Ausgabe auf Display setzen
90C0: 370E95	JP	&h950E		 zur Haupt-Warteschleife springen ->
-------------------------------------->	BRSTR: VEKTOR FR BRK-ROUTINE SETZEN
  (I: $2/3 Adresse)
90C3: D6404D69	PRE	IZ,&h694D	 IZ Zeiger auf den ACJMP-Vektor
90C7: A102	STW	$2,(IZ+#0)	 $2/3 dort ablegen
90C9: F7	RTN			 zurck
-------------------------------------->	TASTATURPUFFER ZURCKSETZEN
90CA: D600DC68	PRE	IX,&h68DC	 IX Zeiger auf Tastaturpufferzeiger
90CE: 420010	LD	$0,16		 $0   Tastaturpuffergre
90D1: D101DF68	LDW	$1,&h68DF	 $1/2 Zeiger auf Tastaturpuffer
90D5: E00040	ST3	$0,(IX+#0)	 diese Parameter speichern
90D8: F7	RTN			 zurck
-------------------------------------->	AUSGABE AUF FCB LENKEN
90D9: 42800407	LDJ	$0,4,&h90E3	 Kennzeichen fr FCB setzen und ->
--  --  --  --  --  --  --  --  --  -->	AUSGABE AUF DRUCKER LENKEN
90DD: 42800203	LDJ	$0,2,&h90E3	 Kennzeichen fr Drucker setzen und ->
--  --  --  --  --  --  --  --  --  -->	AUSGABE AUF DISPLAY LENKEN
90E1: 0200	LD	$0,#0		 Kennzeichen fr Display setzen
90E3: D6400C69	PRE	IZ,&h690C	 IZ Zeiger auf Ausgabegertenummer
90E7: 2500	STD	$0,(IZ+#0)	 diese dort speichern
90E9: F7	RTN			 zurck
-------------------------------------->	IX AUF ERSTES ZEICHEN DER DISPLAY-ZEILE
90EA: 771990	CAL	&h9019		 Zeilenlnge festst., Eing.puffer lschen
90ED: D600CC68	PRE	IX,&h68CC	 Nummer des erstes Zeichens der
90F1: 2C00	LDD	$0,(IX+#0)	  aktuellen logischen Zeile holen
90F3: D6000061	PRE	IX,&h6100	 IX Zeiger auf Displaypuffer
90F7: 2C41	LDD	$1,(IX+#2)	 und auf o.a. Zeichen setzen
90F9: F7	RTN			 zurck
-------------------------------------->	U.A. CURSORBLINKEN BESTIMMEN
90FA: 770793	CAL	&h9307		 IX Eingabemodus/IZ ENG-Status
90FD: 2C04	LDD	$4,(IX+#0)	 Eingabemodus holen
90FF: 4C046D	AN	$4,%01101101	 u.a. Cursorblinken lschen
9102: 3B1E	SBC	(IZ+#0),$30	 ENG-Status gesetzt?
9104: B004	JR	Z,&h9109	 dann ->
9106: 4E0402	OR	$4,2		 sonst Cursorblinken einschalten
9109: 2404	STD	$4,(IX+#0)	 Eingabemodus speichern
910B: F7	RTN			 zurck
-------------------------------------->	EINGABEMODUS-FLAGS LSCHEN/SETZEN
910C: 4280DF33	LDJ	$0,&hDF,&h9142	 REV lschen ->
9110: 4280F72F	LDJ	$0,&hF7,&h9142	 NoScroll-Bit lschen ->
9114: 42800A22	LDJ	$0,8+2,&h9139	 Cursorblinken und NoScroll-Bit setzen ->
-------------------------------------->
9118: 9E03	GRE	IX,$3		 IX ablegen
911A: D600D368	PRE	IX,&h68D3	 IX Zeiger auf
911E: 772C06	CAL	&h062C
9121: 776806	CAL	&h0668
9124: 9603	PRE	IX,$3		 IX wieder setzen
9126: F7	RTN			 zurck
-------------------------------------->	PAUSIERUNG BERPRFEN UND ABWARTEN
9127: 77E291	CAL	&h91E2		 auf OFF, C.BOOT und BRK prfen
912A: F4	RTN	NZ		 nicht gedrckt, dann zurck
912B: 773F91	CAL	&h913F		 Cursorblinken abschalten
912E: 77B9E8	CAL	&hE8B9		 warten, bis Taste eingegeben
9131: 4100F6	SBC	$0,&hF6		 ist es STOP-Taste?
~Seite 35
9134: B087	JR	Z,&h912E	  dann Schleife ->
9136: 420002	LD	$0,2		 Cursorblinken setzen
--  --  --  --  --  --  --  --  --  -->	EINGABEMODUS SETZEN
9139: 775DCB	CAL	&hCB5D		 Eingabemodus holen
913C: 0EC109	ORJ	$1,#2,&h9147	 Bits setzen und ->
-------------------------------------->	CURSORBLINKEN LSCHEN
913F: 4200FD	LD	$0,&hFD		 Cursorblinken lschen
--  --  --  --  --  --  --  --  --  -->	EINGABEMODUS LSCHEN
9142: 775DCB	CAL	&hCB5D		 Eingabemodus holen,
9145: 0C41	AN	$1,#2		 Modusflags lschen
9147: 2501	STD	$1,(IZ+#0)	 und wieder speichern
9149: F7	RTN			 zurck
-------------------------------------->	KEY-IMPULSFREIGABE
914A: 1F21	GST	IE,$1		 Interrupt-Enable ablegen
914C: 4E814806	ORJ	$1,%01001000,&h9155
					 Key-Impulse erlauben ->
-------------------------------------->	KEY-IMPULSVERBOT
9150: 1F21	GST	IE,$1		 Interrupt-Enable ablegen
9152: 4C01B7	AN	$1,%10110111	 Key-Impulse verbieten
9155: 1721	PST	IE,$1		 Interrupt-Enable setzen
9157: F7	RTN			 zurck
-------------------------------------->	CRTKY: WARTEN AUF EINE TASTE
9158: D1005169	LDW	$0,&h6951	 $0/1 Zeiger auf Cursor-Zhler
915C: 504019	ST	25,(#2)		 diesen auf 25 zurcksetzen
915F: D100F168	LDW	$0,&h68F1	 $0/1 Zeiger auf Ausschaltzeit
9163: 504007	ST	7,(#2)		 diese auf 7 Minuten zurcksetzen
9166: D600D268	PRE	IX,&h68D2	 IX Zeiger auf Tastaturmodus I
916A: 2C01	LDD	$1,(IX+#0)	 diesen holen
916C: 4C019F	AN	$1,%10011111
916F: 2401	STD	$1,(IX+#0)	 und wieder speichern
9171: 774A91	CAL	&h914A		 Impulsverarbeitung erlauben
9174: D6005169	PRE	IX,&h6951	 IX Zeiger auf Cursor-Zhler
9178: 3A1F	SBC	(IX+#0),$31	 noch nicht auf Null?
917A: B415	JR	NZ,&h9190	  dann ->
917C: 420019	LD	$0,25		 sonst Cursor-Zhler wieder
917F: 2400	STD	$0,(IX+#0)	  auf 25 zurcksetzen
9181: D640C768	PRE	IZ,&h68C7	 IZ Zeiger auf Eingabemodus
9185: 2D0A	LDD	$10,(IZ+#0)	 diesen holen
9187: 775091	CAL	&h9150		 Impulsverarbeitung verbieten
918A: 77AD02	CAL	&h02AD		 Cursor-Unterstrich invertieren
918D: 774A91	CAL	&h914A		 Impulsverarbeitung erlauben
9190: 770D8F	CAL	&h8F0D		 ggf. AUTO POWER OFF durchfhren
9193: 77B294	CAL	&h94B2		 IX Zeiger auf Tastaturpuffer-Lnge
9196: 2C00	LDD	$0,(IX+#0)	 diese holen
9198: 0000	ADC	$0,#0		 kein Zeichen im Puffer?
919A: B0A7	JR	Z,&h9174	  dann Warteschleife ->
919C: 775091	CAL	&h9150		 Impulsverarbeitung verbieten
919F: 77D901	CAL	&h01D9		 Taste aus den Puffer holen
91A2: D600D268	PRE	IX,&h68D2	 IX Zeiger auf Tastaturmodus I
91A6: 2C01	LDD	$1,(IX+#0)	 diesen holen
91A8: 41009F	SBC	$0,&h9F		 nicht CONTRAST-Taste?
91AB: B408	JR	NZ,&h91B4	  dann ->
91AD: 4E0110	OR	$1,16		 Flag fr CONTRAST setzen
91B0: 2401	STD	$1,(IX+#0)	 und speichern
91B2: B72C	JR	&h91DF		 wieder zurck zur Tastenabfrage
91B4: 440110	ANC	$1,16		 nicht Kontrast-Modus?
~Seite 36
91B7: B00B	JR	Z,&h91C3	  dann ->
91B9: 41001E	SBC	$0,30		 Kontrast erhhen?
91BC: B011	JR	Z,&h91CE	  dann ->
91BE: 41001F	SBC	$0,31		 Kontrast herabsetzen?
91C1: B011	JR	Z,&h91D3	  dann ->
91C3: 4C01EF	AN	$1,239		 Kontrast-Modus beenden
91C6: 2401	STD	$1,(IX+#0)	 Tastaturmodus I speichern
91C8: 410003	SBC	$0,3		 BRK-Taste gedrckt?
91CB: B050	JR	Z,&h921C	  dann ->
91CD: F7	RTN			 zurck
-------------------------------------->	KONTRAST ERHHEN
91CE: 77388E	CAL	&h8E38		 wenn mglich, erhhen
91D1: B704	JR	&h91D6		 ->
-------------------------------------->	KONTRAST HERABSETZEN
91D3: 77498E	CAL	&h8E49		 wenn mglich, herabsetzen
91D6: D600D368	PRE	IX,&h68D3	 IX Zeiger auf Tastaturmodus I
91DA: 28A0	LD	$0,(IX-#1)	 diesen holen
91DC: 773608	CAL	&h0836
91DF: 375F91	JP	&h915F		 wieder zur Tastenabfrage zurck
-------------------------------------->	KYCHK: AUF OFF/C.BOOT/BRK/STOP PRFEN
91E2: 770792	CAL	&h9207 [BKCK]	 auf OFF, C.BOOT und BRK prfen
91E5: 420403	LD	$4,3		 Zhler setzen {berflssig}
91E8: 42000B	LD	$0,11		 Reihe KO11 setzen
91EB: 772506	CAL	&h0625		 Tastenreihe holen
91EE: 0101	SBC	$1,#0		 ist SHIFT-Taste gedrckt?
91F0: F4	RTN	NZ		  dann mit Z=0 zurck
91F1: 420006	LD	$0,6		 Reihe KO6 setzen
91F4: 772506	CAL	&h0625		 Tastenreihe holen
91F7: 0102	SBC	$2,#0		 ist nicht STOP-Taste gedrckt?
91F9: F4	RTN	NZ		  dann mit Z=0 zurck
91FA: 410110	SBC	$1,16		  |
91FD: F4	RTN	NZ		  |
91FE: 771891	CAL	&h9118
9201: 771AAB	CAL	&hAB1A		 ggf. Tastenklick erzeugen
9204: 011F	SBC	$31,#0		 Z=1 setzen
9206: F7	RTN			 zurck
-------------------------------------->	BKCK: AUF OFF, E.BOOT UND BRK PRFEN
9207: 77208F	CAL	&h8F20		 auf OFF und C.Boot prfen
920A: 420403	LD	$4,3		 Zhler auf 3 setzen
920D: 0220	LD	$0,#1		 Reihe KO1 setzen
920F: 772506	CAL	&h0625		 Tastenreihe holen
9212: 0101	SBC	$1,#0		 BRK-Taste nicht gedrckt?
9214: F0	RTN	Z		  dann zurck
9215: 0924	SB	$4,#1		 Zhler herabsetzen
9217: B48B	JR	NZ,&h920D	 noch einmal? dann Schleife ->
9219: 77FE91	CAL	&h91FE
--  --  --  --  --  --  --  --  --  -->	NACH BRK-TASTE/FEHLER HIER WEITER
921C: 773892	CAL	&h9238		 I/O-Aktivitten beenden
921F: 440320	ANC	$3,32		 war I/O aktiv?
9222: 7442DD	CAL	NZ,&hDD42	  dann I/O inaktivieren
9225: D600D268	PRE	IX,&h68D2	 IX Zeiger auf Tastaturmodus I
9229: 2C02	LDD	$2,(IX+#0)	 diesen holen
922B: 4C022B	AN	$2,%00101011
922E: 2002	ST	$2,(IX+#0)	 und wieder speichern
9230: D6004D69	PRE	IX,&h694D	 IX Zeiger auf BRK-Vektor
9234: A800	LDW	$0,(IX+#0)	 diesen holen
~Seite 37
9236: DE00	JP	($0)		 und darber springen
-------------------------------------->	I/O-AKTIV-FLAG LSCHEN
9238: 77CD92	CAL	&h92CD		 Betriebsmodus holen
923B: 026302	LD	$3,$2		 diesen kopieren
923E: 410208	SBC	$2,8		 nicht im Abfrage-Modus?
9241: B407	JR	NZ,&h9249	  dann ->
9243: D100A36F	LDW	$0,&h6FA3	 IZ Zeiger auf CALC-Betr.modus-Speicher
9247: 1142	LD	$2,(#2)		 diesen holen
9249: 4C024F	AN	$2,%01001111	 ASMBL-, CALC-Modus & I/O-Aktiv lschen
924C: 2502	STD	$2,(IZ+#0)	 wieder speichern
924E: F7	RTN			 zurck
-------------------------------------->	ZEILE IN DEN CALC-SPEICHER KOPIEREN
924F: 77EA05	CAL	&h05EA		 Zeilenlnge feststellen  {berflssig?}
9252: D640CB68	PRE	IZ,&h68CB	 IZ Zeiger auf Zeilenparameter
9256: 2D04	LDD	$4,(IZ+#0)	 Index auf Zeilenende holen
9258: 2D22	LDD	$2,(IZ+#1)	 Index auf Zeilenanfang holen
925A: 420361	LD	$3,&h61		 und zum Zeiger komplettieren
925D: 096402	SB	$4,$2		 $4 Lnge der Zeile
9260: 9602	PRE	IX,$2		 IX Zeiger auf Zeile
9262: D6401A6D	PRE	IZ,&h6D1A	 IZ Zeiger auf CALC-Speicher
9266: 2A08	LDI	$8,(IX+#0)	 Zeichen aus ASCII-Display-Puffer
9268: 2308	STI	$8,(IZ+#0)	  in den CALC-Speicher kopieren
926A: 0924	SB	$4,#1		 noch ein Zeichen?
926C: B187	JR	NC,&h9266	  dann Schleife ->
926E: 251F	STD	$31,(IZ+#0)	 Endekennzeichen NUL setzen
9270: F7	RTN			 zurck
-------------------------------------->	IN-TASTE VERARBEITEN
9271: 774F92	CAL	&h924F		 Zeile in CALC-Speicher kopieren
9274: 77E392	CAL	&h92E3		 blinkt Cursor?
9277: 74C3AF	CAL	NZ,&hAFC3	 dann CRLF ausgeben
927A: 77ED92	CAL	&h92ED		 ENG-Status ggfs. lschen
927D: 773892	CAL	&h9238		 'echten' Betriebsmodus holen
9280: 6D0002	LDD	$0,(IZ+&h02)	 Direktmodusflag holen
9283: 0241	LD	$1,#2		 auch nach Register $1 kopieren
9285: 4C0002	AN	$0,2		 CONT erlauben, sonst Direktmodus
9288: 2500	STD	$0,(IZ+#0)	  setzen
928A: 0121	SBC	$1,#1		 vorher im Programmodus?
928C: 30A390	JP	Z,&h90A3	  dann Eingabe vorbereiten ->
928F: 370E95	JP	&h950E		 in die Eingabewarteschleife ->
-------------------------------------->	OUT-TASTE VERARBEITEN
9292: 77DC92	CAL	&h92DC		 ENG-Status lschen, blinkt Cursor?
9295: 749A92	CAL	NZ,&h929A	  dann CALC-Speicher ausgeben
9298: B740	JR	&h92D9		 zurck zur Eingabewarteschleife ->
-------------------------------------->	CALC-SPEICHER AUSGEBEN
929A: D6001A6D	PRE	IX,&h6D1A	 Zeiger auf CALC-Speicher holen
929E: 2A10	LDI	$16,(IX+#0)	 Zeichen holen
92A0: 0110	SBC	$16,#0		 Endekennzeichen gefunden?
92A2: F0	RTN	Z		  dann zurck
92A3: 771896	CAL	&h9618		 sonst Zeichen ausgeben
92A6: B789	JR	&h929E		 und Schleife ->
-------------------------------------->	NUM1=ANS-ZAHL
92A8: D640086D	PRE	IZ,&h6D08	 Adresse der ANS-Zahl
92AC: EB0BE0	LDI8	$11,(IZ+#0)	 Zahl holen
92AF: 020A	LD	$10,#0		 letzte beide Stellen auf Null setzen
92B1: F7	RTN			 zurck
~Seite 38
-------------------------------------->	ANS-ZAHL AUF DISPLAY AUSGEBEN
92B2: 77A892	CAL	&h92A8		 ANS-Zahl holen
92B5: 7755A5	CAL	&hA555 [STR]	 Zahl in einen String wandeln
92B8: 960F	PRE	IX,$15		 Adresse des erzeugten Strings
92BA: 2A10	LDI	$16,(IX+#0)	 Zeichen holen
92BC: 771896	CAL	&h9618		 und auf Display ausgeben
92BF: 0931	SB	$17,#1		 noch ein Zeichen?
92C1: B488	JR	NZ,&h92BA	  dann Schleife ->
92C3: F7	RTN			 zurck
-------------------------------------->	EVTL. I/O-AKTIVITT BEENDEN
92C4: 77CD92	CAL	&h92CD		 Betriebsmodus holen
92C7: 440220	ANC	$2,32		 ist I/O aktiv?
92CA: 7447E3	CAL	NZ,&hE347	  dann I/O-Aktivitt beenden
--  --  --  --  --  --  --  --  --  -->	BETRIEBSMODUS HOLEN
92CD: 777A8F	CAL	&h8F7A		 IZ auf Betriebsmodus setzen
92D0: 2D02	LDD	$2,(IZ+#0)	  und diesen nach $2 holen
92D2: F7	RTN			 zurck
-------------------------------------->	ANS: LETZTES ERGEBNIS AUF DISPLAY
92D3: 77DC92	CAL	&h92DC		 ENG-Status lschen, Eingabemodus testen
92D6: 74B292	CAL	NZ,&h92B2	 ANS-Zahl auf Display ausgeben
92D9: 37E693	JP	&h93E6		 zurck in die Eingabewarteschleife ->
-------------------------------------->	ENG-STATUS LSCHEN, EINGABEMODUS TESTEN
92DC: 770B93	CAL	&h930B		 Zeiger auf ENG-Status holen
92DF: 3B1F	SBC	(IZ+#0),$31	 ist dieser gesetzt?
92E1: B40B	JR	NZ,&h92ED	  dann zum Lschen ->
92E3: D600C768	PRE	IX,&h68C7	 IX Zeiger auf Eingabemodus
92E7: 2C00	LDD	$0,(IX+#0)	 diesen holen
92E9: 440002	ANC	$0,2		 Cursorblinken eingeschaltet? dann Z=0
92EC: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	ENG-STATUS GGFS. LSCHEN
92ED: 770793	CAL	&h9307		 IX Eingabemodus/IZ ENG-Status
92F0: 2C01	LDD	$1,(IX+#0)	 Eingabemodus holen
92F2: 77FD92	CAL	&h92FD		 CRLF ausgeben, wenn ENG-Status gesetzt
92F5: 251F	STD	$31,(IZ+#0)	 ENG-Status lschen
92F7: 4E0103	OR	$1,2+1		 Cursorblinken und ?1? setzen
92FA: 2401	STD	$1,(IX+#0)	 Eingabemodus speichern
92FC: F7	RTN			 zurck
-------------------------------------->	CRLF AUSGEBEN, WENN ENG-STATUS GESETZT
92FD: 3B1E	SBC	(IZ+#0),$30	 ENG-STATUS nicht gesetzt?
92FF: F4	RTN	NZ		  dann zurck
9300: A601	PHSW	$1		 Register $0/1 zwischenspeichern
9302: 77CE95	CAL	&h95CE		 CRLF ausgeben
9305: AE00	PPSW	$0		 Register $0/1 wieder holen
--  --  --  --  --  --  --  --  --  -->	IX EINGABEMODUS/IZ ENG-STATUS
9307: D600C768	PRE	IX,&h68C7	 IX Zeiger auf Eingabemodus
930B: D6405069	PRE	IZ,&h6950	 IZ Zeiger auf ENG-Status
930F: F7	RTN		 	 zurck
-------------------------------------->	GGFS. C.BOOT-FILE STARTEN
9310: D100426F	LDW	$0,&h6F42	 $0/1 Zeiger auf C.Boot-Status
9314: 1144	LD	$4,(#2)		 diesen holen
9316: 0104	SBC	$4,#0		 keine Aktivitt?
9318: F0	RTN	Z		  dann zurck
9319: 0024	ADC	$4,#1		 schon C.Boot-File aktiv?
931B: F0	RTN	Z		  dann ebenfalls zurck
931C: 1B44	INV	$4		 Register $4 auf 254 setzen
931E: D102516F	LDW	$2,&h6F51	 $2/3 Zeiger auf Betriebsmodus
~Seite 39
9322: 116302	LD	$3,($2)		 diesen holen
9325: 440320	ANC	$3,32		 ist I/O aktiv?
9328: F4	RTN	NZ		  dann zurck
9329: D7004A6B	PRE	SS,&h6B4A	 Systemstackzeiger zurcksetzen
932D: 770EC1	CAL	&hC10E		 Start des C.Boot-Files vorbereiten
9330: D100426F	LDW	$0,&h6F42	 $0/1 Zeiger auf C.Boot-Status
9334: 0D10	NA	$16,#0		 $16=&hFF (C.Boot-File aktiv)
9336: 10D01E	STJ	$16,(#2),&h9356	 Status setzen und ->
-------------------------------------->	CONT-TASTE VERARBEITEN
9339: 77AFE6	CAL	&hE6AF		 IZ Zeiger auf Direktmodusflag
933C: 2D00	LDD	$0,(IZ+#0)	 dieses holen
933E: 440002	ANC	$0,2		 CONT nicht mglich?
9341: B0E9	JR	Z,&h92D9	  dann zurck zur Eingabewarteschleife ->
9343: 77ED92	CAL	&h92ED		 ENG-Status ggfs. lschen
9346: 777595	CAL	&h9575		 Vier-Zeilen-Displaymodus setzen
9349: 37DBC0	JP	&hC0DB		 zur Programmabarbeitung ->
-------------------------------------->	PRESET-TASTEN VERARBEITEN
934C: 0422	ANC	$2,#1		 keine Presets auf dem Display?
934E: B440	JR	NZ,&h938F	  dann ->
9350: 0101	SBC	$1,#0		 nicht im CAL-Modus?
9352: B43C	JR	NZ,&h938F	  dann ->
9354: 0250	LD	$16,#2		 Preset-Nummer nach $16 kopieren
9356: 0830	AD	$16,#1		  und 1 addieren
9358: 778695	CAL	&h9586		 Zeiger auf Preset-Fileheader holen
935B: B533	JR	C,&h938F	  dieser gelscht? dann ->
935D: A607	PHSW	$7		 Register $6/7 zwischenspeichern
935F: 77ED92	CAL	&h92ED		 ENG-Status ggfs. lschen
9362: 7793D3	CAL	&hD393		 alle offenen Kanle schlieen
9365: AE06	PPSW	$6		 Register $6/7 wieder holen
9367: 37DDE9	JP	&hE9DD		 zum Ausfhren des Files ->
-------------------------------------->	ANS, OUT, IN, LCKEY ANSPRINGEN
936A: D6402C8D	PRE	IZ,&h8D2C	 Zeiger auf Sprungtabelle setzen
936E: 0245	LD	$5,#2		 Offset bereitstellen
9370: 371903	JP	&h0319		 und springen
-------------------------------------->	FOLIEN- UND PRESET-TASTE VERARBEITEN
9373: 4900FC	SB	$0,252		 Preset-Taste?
9376: B1AB	JR	NC,&h934C	  dann ->
9378: 4900F6	SB	$0,246		 MEMO-Taste?
937B: 3553BD	JP	C,&hBD53	  dann ->
937E: 490004	SB	$0,4		 ANS-, OUT-, IN- oder LCKEY-Taste?
9381: B598	JR	C,&h936A	  dann ->
9383: B062	JR	Z,&h93E6	 STOP-Taste? dann zur Schleife ->
9385: 440002	ANC	$0,2		 CONT-Taste?
9388: B0D0	JR	Z,&h9339	  dann ->
--  --  --  --  --  --  --  --  --  -->	VERARBEITUNG VON ENG- & SHIFT-ENG-TASTE
938A: 770B93	CAL	&h930B		 IZ Zeiger auf ENG-Status
938D: 3B1E	SBC	(IZ+#0),$30	 ist dieser nicht gesetzt?
938F: B456	JR	NZ,&h93E6	  dann zurck ->
9391: 77A892	CAL	&h92A8		 ANS-Zahl nach NUM1 holen
9394: 027312	LD	$19,$18		 Vorzeichenflags retten
9397: 77BCA3	CAL	&hA3BC		 NUM1=ABS(NUM1)
939A: 2D17	LDD	$23,(IZ+#0)	 Exponent-Offset holen
939C: 0037	ADC	$23,#1		 ist dieser <255?
939E: B118	JR	NC,&h93B7	  dann ->
93A0: 827711	LDW	$23,$17		 sonst Exponent holen,
93A3: 9A37	DIUW	$23		 10er- und 1er-
~Seite 40
93A5: 1A17	DID	$23		  Stelle trennen
93A7: 0A7718	ADB	$23,$24		 und addieren
93AA: 0B37	SBB	$23,#1		 um 1 herabsetzen
93AC: B01D	JR	Z,&h93CA	 =0? dann ->
93AE: 4B1703	SBB	$23,3		 um 3 herabsetzen
93B1: B186	JR	NC,&h93AC	 noch >0? dann
93B3: 0420	ANC	$0,#1		 ENG-Taste?
93B5: B414	JR	NZ,&h93CA	  dann ->
93B7: 4A1703	ADB	$23,3		 sonst um 3 erhhen
93BA: 0420	ANC	$0,#1		 SHIFT-ENG-Taste?
93BC: B004	JR	Z,&h93C1	  dann ->
93BE: 4B1706	SBB	$23,6		 sonst um 6 herabsetzen
93C1: 0117	SBC	$23,#0		 ist Exponent negativ?
93C3: B306	JR	UZ,&h93CA	  dann ->
93C5: 40176F	ADC	$23,111		 Exponent<&H91?
93C8: B11D	JR	NC,&h93E6	  dann zurck ->
93CA: 0218	LD	$24,#0		 Register $24 nullsetzen
93CC: 411750	SBC	$23,80		 Exponent<&H50?
93CF: B503	JR	C,&h93D3	  dann ->
93D1: 0B38	SBB	$24,#1		 sonst $24 herabsetzen
93D3: 826011	LDW	$0,$17		 Exponent nehmen
93D6: 8B6017	SBBW	$0,$23		 und nderung abziehen
93D9: 4401FE	ANC	$1,254		 wird Mantisse zu gro?
93DC: B409	JR	NZ,&h93E6	  dann ->
93DE: 2517	STD	$23,(IZ+#0)	 Exponent wieder speichern
93E0: 774EA5	CAL	&hA54E		 Zahl in einen String wandeln
93E3: 775AAA	CAL	&hAA5A		 String ausgeben
--  --  --  --  --  --  --  --  --  -->	EINGABEWARTESCHLEIFE
93E6: 779902	CAL	&h0299		 Zeichen unterm Cursor retten
93E9: 77A394	CAL	&h94A3		 Taste abwarten, Sondertasten verarb.
93EC: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
93EF: E90160	LD4	$1,(IZ+#0)	 diesen und andere Flags holen
93F2: 440140	ANC	$1,64		 MENU-Modus?
93F5: 3413E6	JP	NZ,&hE613	  dann ->
93F8: 440104	ANC	$1,4		 MEMO- oder MEMO-IN-Modus?
93FB: B419	JR	NZ,&h9415	  dann ->
93FD: 4100F0	SBC	$0,240		 Folien- oder Presettaste gedrckt?
9400: 317393	JP	NC,&h9373	  dann ->
9403: 0120	SBC	$0,#1		 ist es ein Shortkey?
9405: B50A	JR	C,&h9410	  dann ->
9407: 41000D	SBC	$0,13		 EXE gedrckt?
940A: F0	RTN	Z		  dann zurck
940B: 776094	CAL	&h9460		 Ausgabe mit evtl. ENG-Status-Lschen
940E: B7A9	JR	&h93E6		 und Schleife ->
--  --  --  --  --  --  --  --  --  -->	SHORTKEY AUSGEBEN
9410: 772994	CAL	&h9429		 Shortkey ausgeben
9413: B7AE	JR	&h93E6		 und Schleife ->
-------------------------------------->	ZEICHEN AUF DEN BILDSCHIRM BRINGEN
9415: 0245	LD	$5,#2		 Sprung vorbereiten
9417: 410520	SBC	$5,32		 Zeichen>=32?
941A: 31D6BA	JP	NC,&hBAD6	  dann ->
941D: 0005	ADC	$5,#0		 Zeichen=0?
941F: 3041BB	JP	Z,&hBB41	  dann ->
9422: D640A4B0	PRE	IZ,&hB0A4	 Zeiger auf Steuerzeichen mit Adressen
9426: 371903	JP	&h0319		  holen und springen
~Seite 41
-------------------------------------->	SHORTKEY AUSGEBEN
9429: 77ED92	CAL	&h92ED		 ENG-Status ggfs. lschen
942C: 77B294	CAL	&h94B2		 IX Zeiger auf Tastaturpuffer-Lnge
942F: 77D901	CAL	&h01D9		 Taste holen (Offset fr Befehl)
9432: D600B48C	PRE	IX,&h8CB4	 IX Zeiger auf Eintastenbefehle
9436: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
9438: A840	LDW	$0,(IX+#2)	 Adresse des Tokentexts holen
943A: 026E01	LD	$14,$1		 Bit 12 fr Ausgabe einer Klammer
943D: 4C018F	AN	$1,&h8F		  retten und dann eliminieren
9440: 968004	PREJ	IX,$0,&h9446	 IX=Zeiger auf Token-Text, ->
9443: 771896	CAL	&h9618		 Zeichen ausgeben
9446: 2A10	LDI	$16,(IX+#0)	 nchstes Zeichen holen
9448: 441080	ANC	$16,&h80	 noch kein Ende?
944B: B089	JR	Z,&h9443	  dann Schleife ->
944D: 4C107F	AN	$16,&h7F	 letztes Zeichen ausgeben
9450: 771896	CAL	&h9618		 |
9453: 421028	LD	$16,"("		 Klammer holen
9456: 440E10	ANC	$14,16		 war Bit fr Klammer gesetzt?
9459: 741896	CAL	NZ,&h9618	  dann diese auf Display ausgeben
945C: 566050	PST	UA,&h50		 Standardkonfiguration setzen
945F: F7	RTN			 zurck
-------------------------------------->	AUSGABE MIT TEST AUF ENG-STATUS
9460: 0250	LD	$16,#2		 Zeichen in Ausgaberegister bringen
9462: 770793	CAL	&h9307		 IX Eingabemodus/IZ ENG-Status
9465: 2C01	LDD	$1,(IX+#0)	 Eingabemodus holen
9467: 3B1E	SBC	(IZ+#0),$30	 ENG-Status nicht gesetzt?
9469: B42C	JR	NZ,&h9496	  dann ->
946B: 41102A	SBC	$16,"*"		 ist Zeichen="*"?
946E: B011	JR	Z,&h9480	  dann ->
9470: B51B	JR	C,&h948C	 Zeichen<"*"? dann ->
9472: 411030	SBC	$16,"0"		 Zeichen>"0"?
9475: B105	JR	NC,&h947B	  dann ->
9477: 0430	ANC	$16,#1		 Zeichen nicht "+", "-" oder "/"?
9479: B406	JR	NZ,&h9480	  dann ->
947B: 41105E	SBC	$16,"^"		 Zeichen nicht "^">
947E: B40D	JR	NZ,&h948C	  dann ->
9480: 2610	PHS	$16		 Zeichen zwischenspeichern
9482: 77ED92	CAL	&h92ED		 ENG-Status ggfs. lschen
9485: 77B292	CAL	&h92B2		 ANS-Zahl auf Display ausgeben
9488: 2E10	PPS	$16		 Zeichen wieder holen
948A: B712	JR	&h949D		  und ausgeben ->
948C: 2610	PHS	$16		 Zeichen zwischenspeichern
948E: 411020	SBC	$16," "		 kein Steuerzeichen? dann CRLF
9491: 71ED92	CAL	NC,&h92ED	  ausgeben, wenn ENG-Status gesetzt
9494: 2E10	PPS	$16		 Zeichen wieder holen
9496: 251F	STD	$31,(IZ+#0)	 ENG-Status lschen
9498: 4E0103	OR	$1,3		 Cursorblinken und ?1? setzen
949B: 2401	STD	$1,(IX+#0)	 wieder speichern
949D: 371896	JP	&h9618		 Zeichen auf Display ausgeben
-------------------------------------->	TASTE ERWARTEN, SONDERTASTEN VERARB.
94A0: 779902	CAL	&h0299		 Zeichen unter Cursor zwischenspeichern
94A3: 775891	CAL	&h9158 [CRTKY]	 auf Tastendruck warten
94A6: 410090	SBC	$0,&h90		 Folientasten gedrckt?
94A9: B30D	JR	UZ,&h94B7	  dann ->
94AB: 2600	PHS	$0		 sonst Eingabe zwischenspeichern
94AD: 77A702	CAL	&h02A7		 Zeichen unter Cursor wiederherstellen
~Seite 42
94B0: 2E00	PPS	$0		 Eingabe wieder holen
94B2: D600D968	PRE	IX,&h68D9	 IX Zeiger auf Tastaturpuffer-Lnge
94B6: F7	RTN			 zurck
94B7: 41009A	SBC	$0,154		 NEW ALL, CALC, MENU, CAL oder MEMO IN?
94BA: B105	JR	NC,&h94C0	  dann ->
94BC: 48806094	ADJ	$0,&h60,&h94AB	 sonst &H60 addieren und zurck
94C0: 30388D	JP	Z,&h8D38	 NEW ALL? dann ->
94C3: 2600	PHS	$0		 Eingabe zwischenspeichern
94C5: 7717C1	CAL	&hC117		 CALC-Berechnung vorbereiten
94C8: 77A702	CAL	&h02A7		 Zeichen unter Cursor wiederherstellen
94CB: 77ED92	CAL	&h92ED		 ENG-Status ggfs. lschen
94CE: 77C795	CAL	&h95C7		 Bildsch.par. zurcksetzen und CLS
94D1: 2E00	PPS	$0		 Eingabe wieder holen
94D3: 41009C	SBC	$0,156		 war es die CALC-Taste?
94D6: 35F3AD	JP	C,&hADF3	  dann ->
94D9: 3067E5	JP	Z,&hE567	 oder die MENU-Taste? dann ->
94DC: 41009D	SBC	$0,157		 war es die MEMO IN-Taste?
94DF: 3476B7	JP	NZ,&hB776	  dann ->
--  --  --  --  --  --  --  --  --  -->	CAL-TASTE VERARBEITEN
94E2: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
94E5: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
94E8: 8940	SBW	$0,#2		 Register $0/1 lschen
94EA: E11F40	ST3	$31,(IZ+#0)	 CAL-Modus setzen
94ED: 37A390	JP	&h90A3		 Rckkehr in den Direktmodus ->
-------------------------------------->	LCKEY-TASTE VERARBEITEN
94F0: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
94F3: A900	LDW	$0,(IZ+#0)	 diesen und Teilmennummer holen
94F5: 410008	SBC	$0,8		 im CALC-Abfrage-Modus?
94F8: 30E693	JP	Z,&h93E6	  dann in Eingabeschleife
94FB: 0821	AD	$1,#1		 Teilmennummer erhhen
94FD: 440040	ANC	$0,64		 nicht im MENU-Modus?
9500: B00B	JR	Z,&h950C	  dann ->
9502: 48011F	AD	$1,31		 sonst Teilmennummer korrigieren
9505: 410160	SBC	$1,96		 nicht letztes Teilmen gewesen?
9508: B503	JR	C,&h950C	  dann ->
950A: 0201	LD	$1,#0		 sonst wieder erstes anzeigen
950C: 2521	STD	$1,(IZ+#1)	 Teilmennummer speichern
--  --  --  --  --  --  --  --  --  -->	MEN/PRESETS ANZEIGEN UND ZUR HAUPT-
								WARTESCHLEIFE
950E: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
9511: A900	LDW	$0,(IZ+#0)	 diesen und Mennummer holen
9513: 779FEF	CAL	&hEF9F		 IX Zeiger auf Cursorzeiger
9516: 440040	ANC	$0,64		 im MENU-Modus?
9519: B450	JR	NZ,&h956A	  dann ->
951B: 0421	ANC	$1,#1		 Presets nicht sichtbar?
951D: B411	JR	NZ,&h952F	  dann ->
951F: 0100	SBC	$0,#0		 nicht im CAL-Modus?
9521: B40D	JR	NZ,&h952F	  dann ->
9523: D640496F	PRE	IZ,&h6F49	 IZ Zeiger auf Preset-Tabelle
9527: E908E0	LD8	$8,(IZ+#0)	 alle Preset-Fileheader holen
952A: C668E8	ORC8	$8,$8		 sind welche gesetzt?
952D: B406	JR	NZ,&h9534	  dann ->
952F: 777595	CAL	&h9575		 sonst Vier-Zeilen-Modus setzen
9532: B71D	JR	&h9550		 und ->
9534: E60240	PHS3	$2		 Betriebsmodus u.a. sichern
9537: 7715B7	CAL	&hB715		 Drei-Zeilen-Modus setzen
~Seite 43
953A: A800	LDW	$0,(IX+#0)	 Cursorposition und Displaybeginn holen
953C: 096001	SB	$0,$1		 voneinander abziehen
953F: 490060	SB	$0,96		 Cursor nicht in vierter Displayzeile?
9542: B507	JR	C,&h954A	  dann ->
9544: 779C05	CAL	&h059C		 Display nach oben scrollen
9547: 772C02	CAL	&h022C [DOTDI]	 Display auffrischen
954A: 779295	CAL	&h9592		 Preset-Menzeile aufbauen
954D: 774002	CAL	&h0240 [DOTPF]	 Menzeile anzeigen
--  --  --  --  --  --  --  --  --  -->	HAUPT-WARTESCHLEIFE
9550: D7004A6B	PRE	SS,&h6B4A	 Systemstackzeiger zurcksetzen
9554: 77DDDD	CAL	&hDDDD		 Userstackzeiger zurcksetzen
9557: 77E693	CAL	&h93E6		 ganze Zeile eingeben lassen
955A: 77E392	CAL	&h92E3		 Cursorblinken abgeschaltet?
955D: B007	JR	Z,&h9565	  dann ->
955F: 7724AA	CAL	&hAA24		 sonst Befehl abarbeiten
9562: 37B390	JP	&h90B3		 u.a. ACJMP setzen und zur Eingabe
9565: 77ED92	CAL	&h92ED		 CRLF ausgeben, wenn ENG-Status gesetzt
9568: B787	JR	&h9562		 und ->
-------------------------------------->	TEILMEN ANZEIGEN
956A: D1033EFF	LDW	$3,&hFF3E	 $3/4 Beginn des MEN-Texts im ROM
956E: 9A41	BYDW	$1		 $0=Mennummer*32, $1=0
9570: 8843	ADW	$3,#2		 diesen Offset addieren
9572: 96C3A7	PREJ	IZ,$3,&h954D	 IZ Zeiger auf Mentext und anzeigen ->
-------------------------------------->	VIER-ZEILEN-MODUS SETZEN
9575: 77FBB6	CAL	&hB6FB		 Vier-Zeilen-Modus festlegen
9578: 779FEF	CAL	&hEF9F		 IX Zeiger auf Cursorzeiger
957B: 2821	LD	$1,(IX+#1)	 Displaybeginn holen
957D: 4101A0	SBC	$1,160		 untere Hlfte sichtbar
9580: 719A05	CAL	NC,&h059A	 dann nach oben scrollen
9583: 372C02	JP	&h022C [DOTDI]	 zum Auffrischen des Displays
-------------------------------------->	ZEIGER AUF GEWHLTEN PRESET SETZEN
9586: 1870	BIU	$16		 Offset verdoppeln
9588: D600476F	PRE	IX,&h6F49-2	 IX Zeiger auf Preset-Headertabelle
958C: A86610	LDW	$6,(IX+$16)	 richtigen Preset-Fileheader holen
958F: 8126	SBCW	$6,#1		 ist dieser Platz leer? dann C=1
9591: F7	RTN			 zurck
-------------------------------------->	PRESET-MENZEILE AUFBAUEN
9592: 77B995	CAL	&h95B9		 IZ Zeiger auf ASCII-Menzeilenpuffer
9595: 0210	LD	$16,#0		 Zhler zurcksetzen
9597: 481002	AD	$16,2		 Zhler erhhen
959A: 778895	CAL	&h9588		 Zeiger auf Preset-Fileheader holen
959D: B105	JR	NC,&h95A3	  vorhanden? dann ->
959F: C9C0E00F	SBB8J	$0,#2,&h95B1	 sonst Eintrag lschen und ->
95A3: 9606	PRE	IX,$6		 Adresse nach IX holen
95A5: 6A0106	LDI	$1,(IX+&h06)	 IX Zeiger auf den Filenamen
95A8: E80280	LD5	$2,(IX+#0)	 gesamten Filenamen holen
95AB: 42005B	LD	$0,"["		 in eckige Klammern
95AE: 42075D	LD	$7,"]"		  einrahmen
95B1: E300E0	STI8	$0,(IZ+#0)	 Text in Zwischen-Speicher bringen
95B4: 411008	SBC	$16,8		 noch keine 4 Preset-Files?
95B7: B4A1	JR	NZ,&h9597	  dann Schleife ->
95B9: D640A168	PRE	IZ,&h68A1	 Zeiger auf ASCII-Menzeilenpuffer
95BD: F7	RTN			 zurck
~Seite 44
-------------------------------------->	BETRIEBSMODUS SETZEN UND CLS
95BE: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
95C1: 896404	SBW	$4,$4		 Mennummer lschen und Direktmodus
95C4: E10380	ST5	$3,(IZ+#0)	 Betriebsmodus festlegen
95C7: 77FF8F	CAL	&h8FFF		 Bildschirmparameter zurcksetzen
--  --  --  --  --  --  --  --  --  -->	BASIC-BEFEHL CLS
95CA: 42900C0A	LDJ	$16,12,&h95D7	 CLS ausgeben ->
-------------------------------------->	OUTCR: CRLF AUSGEBEN
95CE: 42100D	LD	$16,13		 CR holen
95D1: 77D795	CAL	&h95D7		 und ausgeben
95D4: 42100A	LD	$16,10		 LF holen
-------------------------------------->	OUTAC: ZEICHEN AUSGEBEN
  ($16 Ausgabezeichen, OUTDV Ausgabegertenummer)
95D7: 4200FE	LD	$0,&hFE		 Eingabemodus ?1? holen
95DA: 774291	CAL	&h9142		 und diesen lschen
95DD: 9E0C	GRE	IX,$12		 IX ablegen
95DF: E60F60	PHS4	$15		 Register $12-15 zwischenspeichern
95E2: D6400C69	PRE	IZ,&h690C	 IZ Zeiger auf OUTDV
95E6: 2D00	LDD	$0,(IZ+#0)	 Ausgabegertenummer holen
95E8: 410002	SBC	$0,2		 ist es der Bildschirm?
95EB: B520	JR	C,&h960C	  dann ->
95ED: B019	JR	Z,&h9607	 ist es der Drucker? dann ->
--  --  --  --  --  --  --  --  --  --	AUSGABE AUF RS232C ODER FLOPPY
95EF: 7780CC	CAL	&hCC80		 Ausgabe ber den aktiven FCB
95F2: 77B2CB	CAL	&hCBB2		 IZ Zeiger auf Spaltennummer-Speicher
95F5: 41100D	SBC	$16,13		 ist das Zeichen ein CR?
95F8: B01B	JR	Z,&h9614	  dann ->
95FA: 411020	SBC	$16,32		 ist es ein Steuerzeichen?
95FD: B503	JR	C,&h9601	  dann ->
95FF: 3D1E	AD	(IZ+#0),$30	 sonst Spaltennummer erhhen
9601: EE0C60	PPS4	$12		 Register $12-15 wieder holen
9604: 960C	PRE	IX,$12		 IX wieder setzen
9606: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	AUSGABE AUF DRUCKER
9607: 771F96	CAL	&h961F		 Ausgabe auf Centronics-Port
960A: B799	JR	&h95F2		 zum Korrigieren der Spaltenzahl ->
--  --  --  --  --  --  --  --  --  --	AUSGABE AUF DISPLAY
960C: 026510	LD	$5,$16		 Ausgabezeichen ins richtige Register
960F: 770D03	CAL	&h030D		 Zeichen auf das Display ausgeben
9612: B792	JR	&h9601		 und ->
--  --  --  --  --  --  --  --  --  --	SPALTENNUMMER AUF NULL SETZEN
9614: 251F	STD	$31,(IZ+#0)	 Spaltennummer auf Null setzen
9616: B796	JR	&h9601		 und ->
-------------------------------------->	AUSGABE AUF DEN BILDSCHIRM
9618: 0220	LD	$0,#1		 Eingabemodus ?1? setzen
961A: 773991	CAL	&h9139		 |
961D: B7C1	JR	&h95DD		 Zeichen ausgeben ->
-------------------------------------->	ZEICHEN AUF CENTRONICS AUSGEBEN
961F: 7780E6	CAL	&hE680		 ist kein Interface angeschlossen?
9622: 30D0AB	JP	Z,&hABD0	  dann NR Error
9625: D640026C	PRE	IZ,&h6C02	 Zeiger auf CENTRONICS-Speicher
9629: A905	LDW	$5,(IZ+#0)
962B: 774296	CAL	&h9642		 warten, bis Drucker fertig
962E: 2510	STD	$16,(IZ+#0)	 Zeichen auf Port ausgeben
9630: 022F	LD	$15,#1		 Kennzeichen fr Strobe
~Seite 45
--  --  --  --  --  --  --  --  --  -->	STROBE/INIT AN DEN CENTRONICS-PORT
9632: 9A46	BYDW	$6
9634: 2120	ST	$0,(IZ+#1)	 Strobe oder INIT setzen
9636: 2121	ST	$1,(IZ+#1)	  und wieder lschen
9638: 012F	SBC	$15,#1		 wenn es ein Strobe war,
963A: 704296	CAL	Z,&h9642	 dann warten, bis Drucker fertig
963D: 0D04	NA	$4,#0		 Port-Datenregister auf
963F: 2504	STD	$4,(IZ+#0)	  &hFF setzen
9641: F7	RTN			 zurck
-------------------------------------->	WARTEN, BIS DRUCKER FERTIG
9642: 77E190	CAL	&h90E1		 Ausgabe auf Display lenken
9645: 770792	CAL	&h9207 [BKCK]	 auf OFF, C.BOOT und BRK prfen
9648: 77DD90	CAL	&h90DD		 Ausgabe auf Drucker lenken
964B: D640050C	PRE	IZ,&h0C05	 IZ Zeiger auf Centronics-Port-Register
964F: D1000603	LDW	$0,&h0306	 $0=6, $1=3 setzen
9653: 29A2	LD	$2,(IZ-#1)	 Status holen
9655: 29A3	LD	$3,(IZ-#1)	 Status nochmal holen
9657: 016203	SBC	$2,$3		 nicht stabil?
965A: B499	JR	NZ,&h9642	 dann nochmal ->
965C: 0F42	XR	$2,#2		 Error- und Acknowledge-Bit testen
965E: 0C6205	AN	$2,$5		 noch nicht gesetzt?
9661: B4A0	JR	NZ,&h9642	  dann Schleife ->
9663: F7	RTN			 zurck
-------------------------------------->	PRLB1: AUSGABE EINES STRINGS
  (I: $15/16 Startadresse, $17,18 Lnge)
9664: 960F	PRE	IX,$15		 IX Zeiger auf Startadresse
9666: 1EF308	GSTJ	UA,$19,&h9670	 UA in Register $19 ablegen und ->
-------------------------------------->	PRLB2: AUSGABE EINES STRINGS AUS DEM ROM
  (I: IX Startadresse, Lnge in erstem Zeichen des Strings)
9669: 897212	SBW	$18,$18		 Register $18/19 lschen
966C: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
966E: 2A11	LDI	$17,(IX+#0)	 Lnge des Strings lesen
9670: 1673	PST	UA,$19		 Lese-Konfiguration setzen
9672: 2A10	LDI	$16,(IX+#0)	 nchstes Zeichen holen
9674: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
9677: 8931	SBW	$17,#1		 Lnge um 1 dekrementieren
9679: F5	RTN	C		 zu Ende? dann zurck
967A: 77D795	CAL	&h95D7		 Zeichen ausgeben
967D: B78E	JR	&h9670		 und Schleife ->

=== BASIC TOKENISIER-ROUTINE ===================================================
-------------------------------------->	REST VON TOKENISIER-ROUTINE
967F: 0001	ADC	$1,#0		 Endekennzeichen?
9681: B078	JR	Z,&h96FA	  dann ->
9683: 37CCAB	JP	&hABCC		 sonst BV Error
--  --  --  --  --  --  --  --  --  -->	ZEILE TOKENISIEREN
9686: 0217	LD	$23,#0		 LET-Kennzeichen zurcksetzen
9688: 896E0E	SBW	$14,$14		 Lnge und Flags zurcksetzen
968B: 7771AB	CAL	&hAB71		 Test auf BASIC-Modus
968E: D6400060	PRE	IZ,&h6000	 IZ Zeiger auf Eingabepuffer
9692: B035	JR	Z,&h96C8	 nicht BASIC-Modus? dann ->
9694: 770801	CAL	&h0108		 NEXTC+OKNM1: ist Zeichen keine Ziffer?
9697: B130	JR	NC,&h96C8	  dann ->
9699: 0200	LD	$0,#0		 Ok-Kennzeichen setzen
969B: D640CC68	PRE	IZ,&h68CC	 IZ Zeiger auf Zeilenbeginn-Zeiger
969F: 391F	ADC	(IZ+#0),$31	 Zeilenbeginn nicht bei Null?
~Seite 46
96A1: B40F	JR	NZ,&h96B1	  dann ->
96A3: 39BE	ADC	(IZ-#1),$30	 Zeilenende nicht bei Bildschirmende?
96A5: B10B	JR	NC,&h96B1	  dann ->
96A7: D640FE61	PRE	IZ,&h61FE	 IZ Zeiger auf Ende des ASCII-Puffers
96AB: A900	LDW	$0,(IZ+#0)	 letzte beide Zeichen holen
96AD: 0001	ADC	$1,#0		 letztes Zeichen nicht Null?
96AF: B4AD	JR	NZ,&h9683	  dann BV Error
96B1: 2600	PHS	$0		 Zeichen zwischenspeichern
96B3: D6400060	PRE	IZ,&h6000	 IZ Zeiger auf Eingabepuffer
96B7: 776398	CAL	&h9863		 Zeilennummer wandeln
96BA: 8131	SBCW	$17,#1		 Zeilennummer=0?
96BC: 3500AC	JP	C,&hAC00	  dann UL Error
96BF: 2E01	PPS	$1		 Zeichen wieder holen
96C1: 420020	LD	$0," "		 Leerzeichen holen
96C4: 3A00	SBC	(IX+#0),$0	 ist keins im Text?
96C6: B4C8	JR	NZ,&h967F	  dann vorletztes Zeichen prfen ->
96C8: 2A00	LDI	$0,(IX+#0)	 nchstes Zeichen holen
96CA: 410020	SBC	$0," "		 kein Steuerzeichen?
96CD: B113	JR	NC,&h96E1	  dann ->
96CF: D6400060	PRE	IZ,&h6000	 IZ Zeiger Eingabepuffer
96D3: 2D00	LDD	$0,(IZ+#0)	 erstes Zeichen holen
96D5: 020F	LD	$15,#0		 Kennzeichen auf Null setzen
96D7: 410003	SBC	$0,3		 keine Zeilennummer am Anfang?
96DA: F4	RTN	NZ		  dann zurck
96DB: 250E	STD	$14,(IZ+#0)	 sonst Lnge an den Anfang
96DD: 026F0E	LD	$15,$14		 Kennzeichen setzen
96E0: F7	RTN			 zurck
96E1: 410F40	SBC	$15,64		 ist es eine REM/DATA-Zeile?
96E4: B009	JR	Z,&h96EE	  dann ->
96E6: 410022	SBC	$0,'"'		 Zeichen kein Anfhrungszeichen?
96E9: B415	JR	NZ,&h96FF	  dann ->
96EB: 4F0F80	XR	$15,128		 Quote-Flag umkehren
96EE: 41003D	SBC	$0,"="		 Zeichen kein Gleichheitszeichen?
96F1: B408	JR	NZ,&h96FA	  dann ->
96F3: 440FC0	ANC	$15,192		 in Anfhrungszeichen oder REM/DATA?
96F6: B403	JR	NZ,&h96FA	  dann ->
96F8: 0237	LD	$23,#1		 LET-Kennzeichen setzen
96FA: 778498	CAL	&h9884		 Zeichen in Puffer speichern
96FD: B7B6	JR	&h96C8		 und Schleife ->
96FF: 440F80	ANC	$15,128		 in Anfhrungszeichen?
9702: B495	JR	NZ,&h96EE	  dann Schleife ->
9704: 41003A	SBC	$0,":"		 ist Zeichen kein Doppelpunkt?
9707: B406	JR	NZ,&h970E	  dann ->
9709: 0220	LD	$0,#1		 sonst eine 1 setzen
970B: 028F9F	LDJ	$15,#0,&h96EE	 Kennzeichen rcksetzen und Schleife ->
970E: 410027	SBC	$0,"'"		 ist Zeichen kein Apostroph?
9711: B408	JR	NZ,&h971A	  dann ->
9713: 420002	LD	$0,2		 sonst eine 2 setzen
9716: 428F40AB	LDJ	$15,64,&h96EE	 Kennzeichen setzen und Schleife ->
971A: 410026	SBC	$0,"&"		 ist Zeichen kein Kaufmannsund?
971D: B404	JR	NZ,&h9722	  dann ->
971F: 02AFB3	LDJ	$15,#1,&h96EE	 Kennzeichen setzen und Schleife ->
9722: 775B01	CAL	&h015B [TCAPS]	 Klein- in Grobuchstaben wandeln
9725: 012F	SBC	$15,#1		 war letztes Zeichen kein "&"?
9727: B408	JR	NZ,&h9730	  dann ->
9729: 1A2F	DIU	$15		 Kennzeichen setzen
~Seite 47
972B: 410048	SBC	$0,"H"		 neues Zeichen ein "H"?
972E: B0C1	JR	Z,&h96EE	  dann Schleife ->
9730: 771D01	CAL	&h011D [OKAM1]	 Zeichen kein Buchstabe?
9733: B119	JR	NC,&h974D	  dann ->
9735: 410F20	SBC	$15,32		 Kennzeichen fr Variablenname?
9738: B019	JR	Z,&h9752	  dann ->
973A: 410F10	SBC	$15,16		 nicht beim Verarbeiten einer Hexzahl?
973D: B406	JR	NZ,&h9744	  dann ->
973F: 410047	SBC	$0,"G"		 Zeichen<"G"?
9742: B5D5	JR	C,&h96EE	  dann Schleife ->
9744: 2CA1	LDD	$1,(IX-#1)	 sonst letztes Zeichen wieder holen
9746: 77D097	CAL	&h97D0		 evtl. Token wandeln
9749: B108	JR	NC,&h9752	 kein Token? dann Variablenname ->
974B: B713	JR	&h975F		  sonst ->
974D: 771101	CAL	&h0111		 kein japanisches Zeichen?
9750: B107	JR	NC,&h9758	  dann ->
9752: 28A0	LD	$0,(IX-#1)	 sonst letztes Zeichen wieder holen
9754: 428F20E9	LDJ	$15,32,&h96EE	 Kennzeichen setzen und Schleife ->
9758: 770A01	CAL	&h010A [OKNM1]	 Zeichen keine Ziffer?
975B: B1D1	JR	NC,&h970B	  dann ->
975D: B7F0	JR	&h96EE		 sonst Schleife ->
975F: 020F	LD	$15,#0		 Kennzeichen zurcksetzen
9761: 411148	SBC	$17,72		 kein ELSE-Token?
9764: B41A	JR	NZ,&h977F	  dann ->
9766: 0220	LD	$0,#1		 sonst eine 1
9768: 778498	CAL	&h9884		  davor speichern
976B: 778B98	CAL	&h988B		 Token speichern
976E: 4111A9	SBC	$17,169		 REM-Token?
9771: B009	JR	Z,&h977B	  dann ->
9773: D1000480	LDW	$0,&h8004	 kein DATA-Token?
9777: 8150	SBCW	$16,#2		 |
9779: B437	JR	NZ,&h97B1	  dann ->
977B: 428F4030	LDJ	$15,64,&h97AE	 Kennzeichen setzen und ->
977F: D100059B	LDW	$0,&h9B05	 kein HYP-Token?
9783: 8150	SBCW	$16,#2		 |
9785: B49B	JR	NZ,&h976B	  dann ->
9787: 778B98	CAL	&h988B		 sonst Token speichern
978A: 77F900	CAL	&h00F9 [NEXTC]	 nchstes Zeichen aus Text lesen
978D: 771D01	CAL	&h011D [OKAM1]	 kein Buchstabe?
9790: B11D	JR	NC,&h97AE	  dann ->
9792: 775B01	CAL	&h015B [TCAPS]	 Klein- in Grobuchstabe wandeln
9795: 77D097	CAL	&h97D0		 evtl. in Token wandeln
9798: B1C7	JR	NC,&h9752	 nicht tokenisiert? dann ->
979A: 411005	SBC	$16,5		 kein Funktionstoken?
979D: B4BF	JR	NZ,&h975F	  dann ->
979F: 41116B	SBC	$17,107		 kein trigonometrisches
97A2: B5C4	JR	C,&h975F	  Funktionstoken?
97A4: 411171	SBC	$17,113		  |
97A7: B1C9	JR	NC,&h975F	   dann ->
97A9: 481106	AD	$17,6		 sonst zu Hyperbelfunktion umwandeln
97AC: 21B1	ST	$17,(IZ-#1)	 und im Puffer speichern
97AE: 37C896	JP	&h96C8		 zur Schleife ->
97B1: 41114F	SBC	$17,79		 kein Sprungbefehl?
97B4: B187	JR	NC,&h97AE	  dann ->
97B6: 779698	CAL	&h9896		 sonst Leerzeichen berlesen
97B9: 770A01	CAL	&h010A [OKNM1]	 Zeichen keine Ziffer?
~Seite 48
97BC: B107	JR	NC,&h97C4	  dann ->
97BE: 776398	CAL	&h9863		 Zeilennummer holen und speichern
97C1: 779698	CAL	&h9896		 Leerzeichen berlesen
97C4: 41002C	SBC	$0,","		 folgt kein Komma?
97C7: B49A	JR	NZ,&h97AE	  dann ->
97C9: 778498	CAL	&h9884		 sonst speichern
97CC: 2C20	LDD	$0,(IX+#1)	 Komma berlesen
97CE: B799	JR	&h97B6		 und Schleife
--  --  --  --  --  --  --  --  --  -->	EVTL. IN TOKEN WANDELN
97D0: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
97D2: 9E42	GRE	IZ,$2		 IZ in Register $2/3 ablegen
97D4: 490041	SB	$0,"A"		 Zeichennummer normalisieren
97D7: 1860	BIU	$0		  und als Offset in Tabelle wandeln
97D9: D640B988	PRE	IZ,&h88B9	 Zeiger auf Buchstaben-Tabelle
97DD: A940	LDW	$0,(IZ+#2)	 Zeiger in Tokenisierungstabelle holen
97DF: 9640	PRE	IZ,$0		 IZ Zeiger in diese Tabelle
97E1: 421004	LD	$16,4		 Tokentyp 4 setzen
97E4: 77F897	CAL	&h97F8		 nach Schlsselwort suchen
97E7: B50A	JR	C,&h97F2	 gefunden? dann ->
97E9: 0830	AD	$16,#1		 sonst Tokentyp erhhen
97EB: 411008	SBC	$16,8		 noch nicht ber hchstem Tokentyp?
97EE: B48B	JR	NZ,&h97E4	  dann Schleife ->
97F0: 2A00	LDI	$0,(IX+#0)	 Zeichen wieder holen
97F2: 9642	PRE	IZ,$2		 IZ wieder setzen
97F4: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
97F7: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	SCHLSSELWORT SUCHEN
97F8: 9E11	GRE	IX,$17		 IX ablegen
97FA: 391F	ADC	(IZ+#0),$31	 Ende des Tabelleneintrags?
97FC: B021	JR	Z,&h981E	  dann ->
97FE: 2B01	LDI	$1,(IZ+#0)	 Zeichen aus Text holen
9800: 2A00	LDI	$0,(IX+#0)	 Zeichen aus Tabelle holen
9802: 440080	ANC	$0,128		 Ende des Schlsselworts?
9805: B40F	JR	NZ,&h9815	  dann ->
9807: 775B01	CAL	&h015B [TCAPS]	 Klein- in Grobuchstabe wandeln
980A: 0941	SB	$1,#2		 gleiche Zeichen?
980C: B08F	JR	Z,&h97FE	 dann Schleife ->
980E: 410180	SBC	$1,128		 am Ende des Schlsselworts?
9811: B011	JR	Z,&h9823	  dann ->
9813: 29A1	LD	$1,(IZ-#1)	 sonst letztes Zeichen wieder holen
9815: 1861	BIU	$1		 C-Flag setzen
9817: 2B01	LDI	$1,(IZ+#0)	 nchstes Zeichen holen
9819: B185	JR	NC,&h9815	 nicht Ende des Worts? dann Schleife ->
981B: 9691A3	PREJ	IX,$17,&h97FA	 IX wieder setzen und Schleife ->
981E: 2D20	LDD	$0,(IZ+#1)	 nchstes Zeichen holen
9820: 9611	PRE	IX,$17		 IX wieder setzen
9822: F7	RTN			 zurck
9823: 2D11	LDD	$17,(IZ+#0)	 Tokennummer holen
9825: 013F	SBC	$31,#1		 C=1 als Erfolgsbeweis
9827: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	DTBIN: ZEILENNUMMER LESEN
9828: 421003	LD	$16,3		 Kennzeichen fr Zeilennummer holen
982B: 897111	SBW	$17,$17		 Zeilennummerspeicher lschen
982E: D1029A19	LDW	$2,6554		 Endzeilennummer festlegen
9832: 770801	CAL	&h0108		 NEXTC+OKNM1: Zeichen keine Ziffer?
9835: F1	RTN	NC		  dann zurck
~Seite 49
9836: 817102	SBCW	$17,$2		 sonst Zeilennummer zu gro?
9839: B115	JR	NC,&h984F	  dann ->
983B: 4C000F	AN	$0,&h0F		 $0 BCD-Ziffer
983E: 0201	LD	$1,#0		 $1=0
9840: 9871	BIUW	$17		 Zeilennr.speicher nach oben schieben
9842: 886011	ADW	$0,$17		 zu neuer Ziffer hinzufgen
9845: 9871	BIUW	$17		 noch mit 8 multiplizieren
9847: 9871	BIUW	$17		 | (insgesamt x10)
9849: 8851	ADW	$17,#2		 Speicher hinzuaddieren
984B: 2C20	LDD	$0,(IX+#1)	 IX erhhen
984D: B19C	JR	NC,&h9832	 und Schleife ->
984F: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
9852: 2D00	LDD	$0,(IZ+#0)	 diesen holen
9854: 1860	BIU	$0		 oberstes Bit gesetzt?
9856: F5	RTN	C		  dann zurck
9857: 37ECAB	JP	&hABEC		 sonst OV Error
--  --  --  --  --  --  --  --  --  -->	LESEN EINER ZEILENNUMMER>0
985A: 772898	CAL	&h9828 [DTBIN]	 Zeilennummer einlesen
985D: 8131	SBCW	$17,#1		 ist sie grer Null?
985F: F1	RTN	NC		  dann zurck
9860: 3700AC	JP	&hAC00		 sonst UL Error
--  --  --  --  --  --  --  --  --  -->	LESEN EINER ZEILENNUMMER
9863: 772898	CAL	&h9828 [DTBIN]	 Zeilennummer einlesen
9866: 8131	SBCW	$17,#1		 ist sie Null?
9868: B513	JR	C,&h987C	  dann ->
986A: 480E03	AD	$14,3		 schon am Puffer-Ende?
986D: B522	JR	C,&h9890	  dann BV Error
986F: E31040	STI3	$16,(IZ+#0)	 sonst speichern
9872: 2CA0	LDD	$0,(IX-#1)	 letztes Zeichen wieder holen
9874: 410020	SBC	$0," "		 ein Leerzeichen?
9877: B086	JR	Z,&h9872	  dann ->
9879: 2C20	LDD	$0,(IX+#1)	 IX auf Zeichen nach Zeilennummer
987B: F7	RTN			 zurck
987C: 420030	LD	$0,"0"		 Zeichen "0" holen
987F: 778498	CAL	&h9884		  und setzen
9882: B791	JR	&h9872		 und ->
--  --  --  --  --  --  --  --  --  -->	ZEICHEN IM PUFFER ABLEGEN
9884: 082E	AD	$14,#1		 schon am Puffer-Ende?
9886: B509	JR	C,&h9890	  dann BV Error ->
9888: 2300	STI	$0,(IZ+#0)	 sonst Zeichen speichern
988A: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	DOPPELBYTE IM PUFFER ABLEGEN
988B: 480E02	AD	$14,2		 noch nicht am Puffer-Ende?
988E: B104	JR	NC,&h9893	  dann ->
9890: 37CCAB	JP	&hABCC		 sonst BV Error
9893: A310	STIW	$16,(IZ+#0)	 Doppelbyte speichern
9895: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	LEERZEICHEN BERLESEN
9896: 2C00	LDD	$0,(IX+#0)	 Zeichen lesen
9898: 410020	SBC	$0," "		 kein Leerzeichen?
989B: F4	RTN	NZ		  dann zurck
989C: 778498	CAL	&h9884		 sonst speichern
989F: 2C20	LDD	$0,(IX+#1)	 nchstes Zeichen lesen
98A1: B78A	JR	&h9898		 und Schleife ->
~Seite 50
=== ROUTINEN ZUR VERARBEITUNG UND WANDLUNG VON FLP-ZAHLEN SOWIE STRINGS ========
-------------------------------------->	AUSDRUCK LESEN UND BINM2 AUSFHREN
98A3: 778999	CAL	&h9989 [EXPRW]	 arithmetischen Ausdruck holen
--  --  --  --  --  --  --  --  --  -->	BINM2: FLP-ZAHL IN WORT-WERT WANDELN
  (Bereich -32768..65535)
98A6: 411205	SBC	$18,5		 positive FLP-Zahl?
98A9: B523	JR	C,&h98CD	  dann BIN02 ->
98AB: 372B9B	JP	&h9B2B		 sonst Umrechnung negativer Werte
-------------------------------------->	AUSDRUCK LESEN UND BIN01 AUSFHREN
98AE: 778999	CAL	&h9989 [EXPRW]	 arithmetischen Ausdruck holen
--  --  --  --  --  --  --  --  --  -->	BIN01: FLP-ZAHL IN BYTE-WERT WANDELN
  (Bereich 0..255)
98B1: 0132	SBC	$18,#1		 Mantisse negativ oder Exponent positiv?
98B3: B10B	JR	NC,&h98BF	  dann ->
98B5: 896F0F	SBW	$15,$15		 sonst Byte-Wert=0
98B8: F7	RTN			 zurck
-------------------------------------->	BIN11: FLP-ZAHL IN BYTE-WERT WANDELN
  (Bereich 1..255)
98B9: 0010	ADC	$16,#0		 FLP-Zahl=0?
98BB: B00B	JR	Z,&h98C7	  dann BS Error ->
98BD: 0132	SBC	$18,#1		 FLP-Zahl negativ oder kleiner als 1?
98BF: B407	JR	NZ,&h98C7	  dann BS Error ->
98C1: 77DB98	CAL	&h98DB		 FLP-Zahl umwandeln
98C4: 0010	ADC	$16,#0		 Wort-Wert <256?
98C6: F0	RTN	Z		  dann zurck
98C7: 37F8AB	JP	&hABF8		 sonst BS Error
-------------------------------------->	AUSDRUCK LESEN UND BIN02 AUSFHREN
98CA: 778999	CAL	&h9989 [EXPRW]	 arithmetischen Ausdruck holen
-------------------------------------->	BIN02: FLP-ZAHL IN WORT-WERT WANDELN
  (Bereich 0..65535)
98CD: 0132	SBC	$18,#1		 Mantisse positiv und Exponent negativ?
98CF: B59B	JR	C,&h98B5	  dann ->
98D1: B707	JR	&h98D9		 sonst ->
-------------------------------------->	BIN12: FLP-ZAHL IN WORT-WERT WANDELN
  (Bereich 1..65535)
98D3: 0010	ADC	$16,#0		 FLP-Zahl=0?
98D5: B08F	JR	Z,&h98C7	  dann BS Error ->
98D7: 0132	SBC	$18,#1		 FLP-Zahl negativ oder kleiner als 1?
98D9: B493	JR	NZ,&h98C7	  dann BS Error ->
98DB: 896A0A	SBW	$10,$10		 Wort-Wert-Speicher lschen
98DE: 77569B	CAL	&h9B56		 FLP-Zahl in Wort-Wert wandeln
98E1: 826F0A	LDW	$15,$10		 Wort-Wert in richtige Register bringen
98E4: F7	RTN			 zurck
-------------------------------------->	SIKI: AUSWERTUNG EINES AUSDRUCKS
  (I: IX=Textzeiger; O: NUM1 FLP-Zahl oder STR1 Stringdeskriptor bei C=1)
98E5: D6403369	PRE	IZ,&h6933	 IZ Zeiger auf Zeichenop.stapel-Untergr.
98E9: A900	LDW	$0,(IZ+#0)	 diese holen
98EB: A601	PHSW	$1		  und zwischenspeichern
98ED: 4203F0	LD	$3,240		 Hierarchieflag fr Ende setzen
98F0: 77149A	CAL	&h9A14		 auf Platz im Systemstack prfen
98F3: A604	PHSW	$4		 Hierarchie&Operationsflag speichern
98F5: 77209A	CAL	&h9A20		 Zeichen holen: ist es nicht "+", "-"
98F8: B437	JR	NZ,&h9930	  oder Sondertoken? dann ->
98FA: 77E109	CAL	&h09E1		 Vorzeichen in Text lesen
98FD: 0002	ADC	$2,#0		  Negieren notwendig?
98FF: B418	JR	NZ,&h9918	  dann ->
~Seite 51
9901: 4202C3	LD	$2,195		 mgliches NOT-Token berlesen
9904: 772E01	CAL	&h012E		 war keins da?
9907: B428	JR	NZ,&h9930	  dann ->
9909: AE00	PPSW	$0		 sonst Hierarchie&Operationsflag holen
990B: 41000A	SBC	$0,10		 schon NOT gewesen?
990E: B09A	JR	Z,&h98F5	  dann zur Schleife ->
9910: A601	PHSW	$1		 sonst wieder speichern
9912: D1030A08	LDW	$3,&h080A	 NOT-Hierarchie&Operationsflag holen
9916: B7A7	JR	&h98F0		 und Schleife
9918: 2E00	PPS	$0		 Hierarchiezeichen holen
991A: 2600	PHS	$0		  und wieder speichern
991C: 0120	SBC	$0,#1		 war es Hierarchie 1 (Subtraktion)?
991E: B007	JR	Z,&h9926	  dann ->
9920: D1030207	LDW	$3,&h0702	 sonst Negations-Hier.&Op.flag holen
9924: B7B5	JR	&h98F0		 und Schleife ->
9926: 2C00	LDD	$0,(IX+#0)	 Zeichen aus Text lesen
9928: 779099	CAL	&h9990		 Argument lesen
992B: 77F99B	CAL	&h9BF9		 Vorzeichen wechseln
992E: B704	JR	&h9933		 und ->
9930: 779099	CAL	&h9990		 Argument lesen
9933: 77529A	CAL	&h9A52		 Operatoren erkennen und berlesen
9936: AE00	PPSW	$0		 Hierarchie&Operationsflag holen
9938: 0143	SBC	$3,#2		 vorher hhere Prioritt?
993A: B108	JR	NC,&h9943	  dann ->
993C: A601	PHSW	$1		 sonst Hierarchie&Op.flag speichern
993E: 772400	CAL	&h0024		 NUM1 im User Stack speichern
9941: B7D2	JR	&h98F0		 und Schleife ->
9943: 4100F0	SBC	$0,240		 Endekennzeichen?
9946: B03A	JR	Z,&h9981	  dann ->
9948: A604	PHSW	$4		 sonst Hierarchie&O.flag speichern
994A: 440002	ANC	$0,2		 nicht "+"?
994D: B422	JR	NZ,&h9970	  dann ->
994F: 2F02	PPU	$2		 Vorzeichen der gespeicherten Zahl
9951: 2702	PHU	$2		  holen und wieder speichern
9953: 0022	ADC	$2,#1		 kein String?
9955: B10C	JR	NC,&h9962	  dann ->
9957: 0032	ADC	$18,#1		 neuer Ausdruck kein String?
9959: B133	JR	NC,&h998D	  dann TM Error ->
995B: 410009	SBC	$0,9		 kein Boolescher Operator?
995E: B42E	JR	NZ,&h998D	  dann TM Error ->
9960: B70A	JR	&h996B		 sonst ->
9962: 0032	ADC	$18,#1		 neuer Ausdruck ein String?
9964: B528	JR	C,&h998D	  dann TM Error ->
9966: 410009	SBC	$0,9		 kein Boolescher Operator?
9969: B40A	JR	NZ,&h9974	  dann ->
996B: 77879B	CAL	&h9B87		 Vergleich durchfhren
996E: B70E	JR	&h997D		 und ->
9970: 0032	ADC	$18,#1		 neuer Ausdruck ein String?
9972: B51A	JR	C,&h998D	  dann TM Error ->
9974: 9A41	BYDW	$1		 $0=Operationsnummer
9976: D103D18B	LDW	$3,&h8BD1	 $3/4 Zeiger auf Operationstabelle
997A: 77DB99	CAL	&h99DB		 Operation ausfhren
997D: AE03	PPSW	$3		 Hierachie&Operationsflag holen
997F: B7CA	JR	&h9936		 zur Schleife ->
9981: AE00	PPSW	$0		 Grenze des Zeichenop.stapels holen
9983: 775E9D	CAL	&h9D5E		  und wieder setzen
~Seite 52
9986: 0032	ADC	$18,#1		 C=1, wenn Stringausdruck
9988: F7	RTN			 zurck
-------------------------------------->	EXPRW: AUSWERTEN EINES ARITHM. AUSDRUCKS
9989: 77E598	CAL	&h98E5 [SIKI]	 beliebigen Ausdruck auswerten
998C: F1	RTN	NC		  kein String? dann zurck
998D: 3704AC	JP	&hAC04		 sonst TM Error
-------------------------------------->	EINZEL-ARGUMENT LESEN
9990: 410041	SBC	$0,"A"		 ein Zeichen>="A"?
9993: B157	JR	NC,&h99EB	  dann ->
9995: 777DAF	CAL	&hAF7D		 sonst versuchen, eine Zahl zu lesen
9998: F5	RTN	C		 erfolgreich? dann zurck
9999: 2C00	LDD	$0,(IX+#0)	 sonst Zeichen wieder lesen
999B: 410022	SBC	$0,'"'		 beginnt ein String?
999E: B05C	JR	Z,&h99FB	  dann ->
99A0: 410006	SBC	$0,6		 oder ist es ein String-Token?
99A3: B057	JR	Z,&h99FB	  dann ->
99A5: 410028	SBC	$0,"("		 folgt Klammerausdruck?
99A8: B061	JR	Z,&h9A0A	  dann ->
99AA: 410005	SBC	$0,5		 auch kein Funktions-Token?
99AD: 34C0AB	JP	NZ,&hABC0	  dann SN Error ->
99B0: 2A20	LDI	$0,(IX+#1)	 sonst Tokenbyte lesen
99B2: 410064	SBC	$0,100		 ist es <=100
99B5: B51E	JR	C,&h99D4	  oder >140?
99B7: 41008D	SBC	$0,141		 dann ist es eine Funktion ohne
99BA: B119	JR	NC,&h99D4	  direkt zu lesendes Argument ->
99BC: 2600	PHS	$0		 Tokenbyte zwischenspeichern
99BE: 77149A	CAL	&h9A14		 auf Platz im Systemstack prfen
99C1: 77E109	CAL	&h09E1		 Vorzeichen im Text lesen
99C4: 2602	PHS	$2		 Negationsflag speichern
99C6: 779099	CAL	&h9990		 Einzelargument holen (rekursiv)
99C9: 2E02	PPS	$2		 Negationsflag wieder holen
99CB: 77B79D	CAL	&h9DB7		 Argument evtl. negieren
99CE: 0032	ADC	$18,#1		 ein Stringausdruck?
99D0: B5C4	JR	C,&h998D	  dann TM Error ->
99D2: 2E00	PPS	$0		 Tokenbyte wieder holen
99D4: 49004F	SB	$0,79		 und normalisieren
99D7: D103EC8B	LDW	$3,&h8BEC	 $3/4 Zeiger auf Funktionstabelle
--  --  --  --  --  --  --  --  --  -->	BER TABELLE SPRINGEN
99DB: 1860	BIU	$0		 Offset verdoppeln
99DD: 0201	LD	$1,#0		 $1=0
99DF: 8843	ADW	$3,#2		 Offset zu Tabellenanfang addieren
99E1: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
99E3: 916503	LDW	$5,($3)		 Adresse holen
99E6: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
99E9: DE05	JP	($5)		 in Routine einspringen
--  --  --  --  --  --  --  --  --  -->	VARIABLENINHALT LESEN
99EB: 9E01	GRE	IX,$1		 Textzeiger ablegen
99ED: 7752A6	CAL	&hA652		 Variablenname einlesen
99F0: 31C0AB	JP	NC,&hABC0	 keiner da? dann SN Error
99F3: 440D3F	ANC	$13,63		 keine Stringvariable?
99F6: 349AA6	JP	NZ,&hA69A	  dann ->
99F9: 9601	PRE	IX,$1		 Textzeiger wieder setzen
99FB: 77EB9C	CAL	&h9CEB		 Stringausdruck lesen
99FE: 0D12	NA	$18,#0		 Kennzeichen fr String setzen
9A00: F7	RTN			 zurck
~Seite 53
--  --  --  --  --  --  --  --  --  -->	STRINGAUSDRUCK IN KLAMMERN LESEN
9A01: 775201	CAL	&h0152		 offene Klammer im Text berlesen
9A04: 77EB9C	CAL	&h9CEB		 Stringausdruck lesen
9A07: 375001	JP	&h0150		 geschlossene Klammer in Text berlesen
--  --  --  --  --  --  --  --  --  -->	ARITHM. AUSDRUCK IN KLAMMERN LESEN
9A0A: 775201	CAL	&h0152		 offene Klammer im Text berlesen
9A0D: 77E598	CAL	&h98E5 [SIKI]	 beliebigen Ausdruck lesen
9A10: B18A	JR	NC,&h9A07	 arithmetisch? dann ->
9A12: B7C3	JR	&h99D0		 sonst TM Error
--  --  --  --  --  --  --  --  --  -->	PLATZ IM SYSTEMSTACK PRFEN
9A14: 9F00	GRE	SS,$0		 Systemstackzeiger ablegen
9A16: D105AB6A	LDW	$5,&h6AAB	 festgesetzte Untergrenze holen
9A1A: 8145	SBCW	$5,#2		 ist diese schon erreicht?
9A1C: 31C8AB	JP	NC,&hABC8	  dann TC Error
9A1F: F7	RTN			 sonst zurck
--  --  --  --  --  --  --  --  --  -->	AUF "+", "-" UND SONDERTOKEN TESTEN
9A20: 77F900	CAL	&h00F9 [NEXTC]	 Zeichen aus Text lesen
9A23: 41002B	SBC	$0,"+"		 ist es ein "+"?
9A26: F0	RTN	Z		  dann mit Z=1 zurck
9A27: 410007	SBC	$0,7		 oder ein Sondertoken?
9A2A: F0	RTN	Z		  dann ebenfalls mit Z=1 zurck
9A2B: 41002D	SBC	$0,"-"		 oder ein "-"? dann Z=1
9A2E: F7	RTN			 zurck
-------------------------------------->	AUF GENGENDEN SYSTEMSPEICHER TESTEN
  (I: $0/1 bentigter Platz, $2/3 Startadresse)
9A2F: D6403369	PRE	IZ,&h6933	 IZ Zeiger auf Zeichenop.stapel-Untergr.
9A33: E90260	LD4	$2,(IZ+#0)	 diese und -Obergrenze holen
9A36: 896402	SBW	$4,$2		 Freiraum berechnen
9A39: 8944	SBW	$4,#2		 und bentigte Gre abziehen
9A3B: F1	RTN	NC		 Platz ist noch da? dann zurck
9A3C: 37BDAB	JP	&hABBD		 sonst OM Error
-------------------------------------->	NISIN: UMWANDELN BCD-ZAHL NACH BINR
  (I: $17=BCD-Zahl; O: $17=Ergebnis; D: $19)
9A3F: 027311	LD	$19,$17		 Zahl nach $19 kopieren
9A42: 4C110F	AN	$17,&h0F	 unteres Nibble filtern
9A45: 1A13	DID	$19		 oberes Nibble nach unten schieben
9A47: 774C9A	CAL	&h9A4C		 2x($19) zu $17 addieren
9A4A: 1873	BIU	$19		 ($19) vervierfachen
9A4C: 1873	BIU	$19		 |
9A4E: 087113	AD	$17,$19		 und zu $17 addieren
9A51: F7	RTN			 zurck
-------------------------------------->	OPERATOR BERLESEN
9A52: 77F900	CAL	&h00F9 [NEXTC]	 Zeichen aus Text lesen
9A55: 410007	SBC	$0,7		 kein Sondertoken?
9A58: B426	JR	NZ,&h9A7F	  dann ->
9A5A: 2A21	LDI	$1,(IX+#1)	 nchstes Zeichen aus Text lesen
9A5C: D1030405	LDW	$3,&h0504	 Hierarchie&Operationsflag holen
9A60: 4101C7	SBC	$1,199		 ist es das MOD-Token?
9A63: F0	RTN	Z		  dann zurck
9A64: D1030C09	LDW	$3,&h090C	 Hierarchie&Operationsflag holen
9A68: 4101C4	SBC	$1,196		 ist es das AND-Token?
9A6B: F0	RTN	Z		  dann zurck
9A6C: D1030D0A	LDW	$3,&h0A0D	 Hierarchie&Operationsflag holen
9A70: 4901C5	SB	$1,197		 ist es das OR-Token?
9A73: F0	RTN	Z		  dann zurck
9A74: 0824	AD	$4,#1		 Operationsflag ndern
~Seite 54
9A76: 0121	SBC	$1,#1		 ist es das XOR-Token?
9A78: F0	RTN	Z		 dann zurck
9A79: 6C8002	LDD	$0,(IX-&h02)	 sonst IX zurcksetzen
9A7C: 0D03	NA	$3,#0		 "nicht gefunden" anzeigen
9A7E: F7	RTN			 zurck
9A7F: D640DA85	PRE	IZ,&h85DA	 IZ Zeiger auf Operatorentabelle
9A83: 167F	PST	UA,$31		 ROM-Lesekonfiguration setzen
9A85: EB0240	LDI3	$2,(IZ+#0)	 Operator mit Hier.&Op.flag holen
9A88: 0142	SBC	$2,#2		 stimmt Operator?
9A8A: B00A	JR	Z,&h9A95	  dann ->
9A8C: 0022	ADC	$2,#1		 nicht an Tabellenende?
9A8E: B18A	JR	NC,&h9A85	  dann ->
9A90: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
9A93: B798	JR	&h9A7C		 und "nicht gefunden" setzen, zurck ->
9A95: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
9A98: 2C21	LDD	$1,(IX+#1)	 nchstes Zeichen lesen
9A9A: 410309	SBC	$3,9		 kein Boole'scher Operator?
9A9D: F4	RTN	NZ		  dann zurck
9A9E: 77F900	CAL	&h00F9 [NEXTC]	 nchstes Zeichen aus Text lesen
9AA1: 49003C	SB	$0,"="		 ist es nicht "<", "=" oder ">"?
9AA4: 410003	SBC	$0,3		 |
9AA7: F1	RTN	NC		  dann zurck
9AA8: 2C21	LDD	$1,(IX+#1)	 sonst Textzeiger erhhen
9AAA: 086004	AD	$0,$4		 zustzliche Bedingung addieren
9AAD: 410004	SBC	$0,4		 schon =4?
9AB0: B00A	JR	Z,&h9ABB	  dann ->
9AB2: 0420	ANC	$0,#1		 zuviel des Guten?
9AB4: 30C0AB	JP	Z,&hABC0	 dann SN Error
9AB7: 0924	SB	$4,#1		 ist es =1?
9AB9: B404	JR	NZ,&h9ABE	  dann ->
9ABB: 480002	AD	$0,2		 noch 2 addieren
9ABE: 0244	LD	$4,#2		 als Operationsflag bernehmen
9AC0: F7	RTN			 zurck
-------------------------------------->	WEITERVERARBEITUNG NACH "&"
9AC1: 2A20	LDI	$0,(IX+#1)	 nchstes Zeichen aus Text lesen
9AC3: 775B01	CAL	&h015B [TCAPS]	 Klein- in Grobuchstabe wandeln
9AC6: 410048	SBC	$0,"H"		 ist es kein "H"?
9AC9: B424	JR	NZ,&h9AEE	  dann ->
9ACB: C96F4F	SBB3	$15,$15		 Register $15-17 zurcksetzen
9ACE: 2C00	LDD	$0,(IX+#0)	 Zeichen aus Text lesen
9AD0: 776001	CAL	&h0160 [CHEX1]	 Hexzeichen nach binr wandeln
9AD3: B11A	JR	NC,&h9AEE	 kein Hexzeichen gewesen? dann ->
9AD5: 024E	LD	$14,#2		 Hexziffer nach $14 kopieren
9AD7: 1A2E	DIU	$14		 in oberes Nibble schieben
9AD9: DA2E60	DIU4	$14		 neue Hexziffer einschieben
9ADC: 0011	ADC	$17,#0		 mehr als 4 Hexziffern?
9ADE: 34ECAB	JP	NZ,&hABEC	  dann OV Error
9AE1: 2C20	LDD	$0,(IX+#1)	 nchstes Zeichen aus Text lesen
9AE3: 776001	CAL	&h0160 [CHEX1]	 Hexzeichen nach binr wandeln
9AE6: B592	JR	C,&h9AD5	 noch eins da? dann Schleife ->
9AE8: 77F49A	CAL	&h9AF4 [CNVR]	 Wort-Wert in FLP-Zahl wandeln
9AEB: 013F	SBC	$31,#1		 C=1 setzen
9AED: F7	RTN			 zurck
9AEE: 6C8002	LDD	$0,(IX-2)	 Textzeiger wieder zurcksetzen
9AF1: 37A608	JP	&h08A6		 NUM1=0 setzen und zurck
~Seite 55
-------------------------------------->	CNVR: WORT-WERT IN FLP-ZAHL WANDELN
  (I: $15/16 Wort-Wert; O: NUM1)
9AF4: 82630F	LDW	$3,$15		 Wort-Wert kopieren
9AF7: 026204	LD	$2,$4		 High-Byte nochmals kopieren
9AFA: 440480	ANC	$4,128		 Wort-Wert positiv?
9AFD: B003	JR	Z,&h9B01	  dann->
9AFF: 9B03	CMPW	$3		 sonst Zweierkomplement bilden
9B01: C96ACA	SBB7	$10,$10		 NUM1 lschen
9B04: 77F101	CAL	&h01F1		 Binr nach BCD-Zahl wandeln
9B07: D1110406	LDW	$17,&h0604	 Zhler setzen und Vorzeichen negativ
9B0B: 0010	ADC	$16,#0		 schon normalisiert?
9B0D: B40E	JR	NZ,&h9B1C	  dann ->
9B0F: 0931	SB	$17,#1		 Exponent herabsetzen
9B11: B506	JR	C,&h9B18	 schon negativ? dann ->
9B13: DA2E40	DIU3	$14		 Zahl weiterschieben
9B16: B78C	JR	&h9B0B		 und Schleife
9B18: 897111	SBW	$17,$17		 Exponent und Vorzeichen lschen
9B1B: F7	RTN			 zurck
9B1C: 1862	BIU	$2		 war Wort-Wert positiv?
9B1E: F5	RTN	C		 dann zurck
9B1F: 0232	LD	$18,#1		 sonst Vorzeichen Mantisse negativ
9B21: F7	RTN			 zurck
-------------------------------------->	ZWEI FLP-ZAHLEN IN WORTE WANDELN
9B22: 772B9B	CAL	&h9B2B		 Wort wandeln
9B25: 82650F	LDW	$5,$15		 in zweiten Speicher bringen
9B28: 772C00	CAL	&h002C		 NUM1 aus dem User Stack holen
--  --  --  --  --  --  --  --  --  -->	FLP-ZAHL IN WORT WANDELN
9B2B: 896A0A	SBW	$10,$10		 Wort-Speicher lschen
9B2E: 0012	ADC	$18,#0		 0<FLP-Zahl<1?
9B30: B01A	JR	Z,&h9B4B	  dann Wort=0 ->
9B32: 411205	SBC	$18,5		 -1<FLP-Zahl<0?
9B35: B015	JR	Z,&h9B4B	  dann Wort=0 ->
9B37: 77569B	CAL	&h9B56		 Integer-FLP-Zahl in Wort wandeln
9B3A: D10C0080	LDW	$12,&h8000	 ist Wort=&H8000?
9B3E: 816A0C	SBCW	$10,$12		 |
9B41: B00D	JR	Z,&h9B4F	 dann ->
9B43: B10F	JR	NC,&h9B53	 gar grer? dann ->
9B45: 0132	SBC	$18,#1		 war Vorzeichen positiv?
9B47: B003	JR	Z,&h9B4B	  dann ->
9B49: 9B0A	CMPW	$10		 schon Ergebnis zweierkomplementieren
9B4B: 826F0A	LDW	$15,$10		 Wort-Wert in richtige Register bringen
9B4E: F7	RTN			 zurck
9B4F: 0132	SBC	$18,#1		 war Vorzeichen negativ?
9B51: B487	JR	NZ,&h9B4B	  dann ->
9B53: 37F8AB	JP	&hABF8		 sonst BS Error
-------------------------------------->	INTEGER-FLP-ZAHL IN WORT-WERT WANDELN
9B56: 411105	SBC	$17,5		 FLP-Zahl>=10^6?
9B59: B187	JR	NC,&h9B53	 dann BS Error
9B5B: 2612	PHS	$18		 Vorzeichen speichern
9B5D: 9A71	BYUW	$17		 $17=0, $18=Exponent
9B5F: 886A10	ADW	$10,$16		 Hexziffer addieren
9B62: B590	JR	C,&h9B53	 mehr als 16 Bits? dann BS Error
9B64: 0932	SB	$18,#1		 Exponent herabsetzen
9B66: B51D	JR	C,&h9B84	 schon unter Null? dann ->
9B68: D10C9A19	LDW	$12,6554	 Vergleichswort holen
9B6C: 816A0C	SBCW	$10,$12		 Wort schon grer?
~Seite 56
9B6F: B19D	JR	NC,&h9B53	  dann BS Error
9B71: DA2E40	DIU3	$14		 FLP-Zahl schieben
9B74: 4C100F	AN	$16,15		 unteres Nibble filtern
9B77: 986A	BIUW	$10		 bisheriges Wort insgesamt
9B79: 826C0A	LDW	$12,$10		  mit 10 multiplizieren
9B7C: 986A	BIUW	$10		 |
9B7E: 986A	BIUW	$10		 |
9B80: 88EA0CA4	ADWJ	$10,$12,&h9B5F	 und Schleife ->
9B84: 2E12	PPS	$18		 Vorzeichen wieder holen
9B86: F7	RTN			 zurck
-------------------------------------->	BOOLE'SCHE OPERATOREN AUSFHREN
9B87: 7766AB	CAL	&hAB66		 nur Programm-Modus erlauben
9B8A: 2601	PHS	$1		 Operation zwischenspeichern
9B8C: 77259C	CAL	&h9C25		 NUM0=NUM1:NUM1 von User Stack holen
9B8F: 0032	ADC	$18,#1		 kein Stringdeskriptor?
9B91: B119	JR	NC,&h9BAB	  dann ->
9B93: 77D19B	CAL	&h9BD1 [MCP]	 Strings vergleichen
9B96: 2E01	PPS	$1		 Operation wieder holen
9B98: B01B	JR	Z,&h9BB4	 beide gleich? dann ->
9B9A: B515	JR	C,&h9BB0	 STR1<STR0? dann ->
9B9C: 440104	ANC	$1,4		 war ">" nicht erlaubt?
9B9F: 30A608	JP	Z,&h08A6	  dann NUM1=0 und zurck
9BA2: 421206	LD	$18,6		 NUM1=-1 setzen
9BA5: C96AEA	SBB8	$10,$10		 |
9BA8: 0230	LD	$16,#1		 |
9BAA: F7	RTN			 zurck
9BAB: 77B79B	CAL	&h9BB7 [NCP]	 FLP-Zahlen vergleichen
9BAE: B799	JR	&h9B96		 zur Auswertung ->
9BB0: 44810294	ANCJ	$1,2,&h9B9F	 war "<" nicht erlaubt? und ->
9BB4: 04A197	ANCJ	$1,#1,&h9B9F	 war "=" nicht erlaubt? und ->
-------------------------------------->	MCP: VERGLEICHEN ZWEIER FLP-ZAHLEN
  (Z=1: NUM0=NUM1, C=1: NUM0>NUM1)
9BB7: 411205	SBC	$18,5		 erste negativ?
9BBA: B10E	JR	NC,&h9BC9	  dann ->
9BBC: 410805	SBC	$8,5		 zweite negativ?
9BBF: B109	JR	NC,&h9BC9	  dann ->
9BC1: 817107	SBCW	$17,$7		 Exponenten ungleich?
9BC4: F4	RTN	NZ		  dann zurck
9BC5: C14AC0	SBBC7	$10,#2		 Mantissen vergleichen
9BC8: F7	RTN			 zurck
9BC9: 816711	SBCW	$7,$17		 Exponenten ungleich?
9BCC: F4	RTN	NZ		  dann zurck
9BCD: C160CA	SBBC7	$0,$10		 Mantissen vergleichen
9BD0: F7	RTN			 zurck
-------------------------------------->	MCP: VERGLEICH ZWEIER STRINGS
  (Z=1: STR0=STR1, C=1: STR0>STR1)
9BD1: 9E02	GRE	IX,$2		 Textzeiger in $2/3 ablegen
9BD3: 960F	PRE	IX,$15		 IX Zeiger auf String1
9BD5: 9645	PRE	IZ,$5		 IZ Zeiger auf String0
9BD7: 0111	SBC	$17,#0		 Stringlnge1=0?
9BD9: B018	JR	Z,&h9BF2	  dann ->
9BDB: 0107	SBC	$7,#0		 Stringlnge0=0?
9BDD: B011	JR	Z,&h9BEF	  dann ->
9BDF: 2B00	LDI	$0,(IZ+#0)	 Zeichen aus String0 holen
9BE1: 2A01	LDI	$1,(IX+#0)	 Zeichen aus String1 holen
9BE3: 0141	SBC	$1,#2		 Zeichen vergleichen?
~Seite 57
9BE5: B406	JR	NZ,&h9BEC	 ungleich? dann ->
9BE7: 0927	SB	$7,#1		 Lnge0 herabsetzen
9BE9: 09B192	SBJ	$17,#1,&h9BD9	 Lnge1 herabsetzen und Schleife ->
9BEC: 9602	PRE	IX,$2		 Textzeiger wieder setzen
9BEE: F7	RTN			 zurck
9BEF: 019185	SBCJ	$17,#0,&h9BEC	 Stringlnge1=0? und ->
9BF2: 0107	SBC	$7,#0		 Stringlnge0 auch =0?
9BF4: B089	JR	Z,&h9BEC	  dann ->
9BF6: 01BF8C	SBCJ	$31,#1,&h9BEC	 sonst C=1, Z=0 und ->
-------------------------------------->	VORZEICHENWECHSEL: NUM1=-NUM1
9BF9: 0010	ADC	$16,#0		 NUM1=0?
9BFB: F0	RTN	Z		  dann zurck
9BFC: 4A1205	ADB	$18,5		 sonst Vorzeichen Mantisse umkehren
9BFF: 4C120F	AN	$18,15		 |
9C02: F7	RTN			 zurck
-------------------------------------->	BASIC-OPERATION NOT
9C03: 772B9B	CAL	&h9B2B		 FLP-Zahl in Wort-Wert wandeln
9C06: D105FFFF	LDW	$5,&hFFFF	 WRD0=&hFFFF
9C0A: B704	JR	&h9C0F		 und ->
-------------------------------------->	BASIC-OPERATIONEN AND/OR/XOR
9C0C: 77229B	CAL	&h9B22		 beide FLP-Zahlen in Wort-Werte wandeln
9C0F: 410014	SBC	$0,20		 ist es OR-Operation?
9C12: B00E	JR	Z,&h9C21	  dann ->
9C14: 410012	SBC	$0,18		 ist es AND-Operation?
9C17: B005	JR	Z,&h9C1D	  dann ->
9C19: 8FEF0535	XRWJ	$15,$5,&h9C51	 WRD1=(WRD1)XOR(WRD0) und ->
9C1D: 8CEF0531	ANWJ	$15,$5,&h9C51	 WRD1=(WRD1)AND(WRD0) und ->
9C21: 8EEF052D	ORWJ	$15,$5,&h9C51	 WRD1=(WRD1)OR(WRD0) und ->
-------------------------------------->	NUM0=NUM1 UND NUM1 AUS USERSTACK HOLEN
9C25: C260EA	LD8	$0,$10		 NUM0=NUM1
9C28: 026812	LD	$8,$18		 |
9C2B: 372C00	JP	&h002C		 NUM1 aus Userstack holen und zurck
-------------------------------------->	BASIC-OPERATION -
9C2E: 77F99B	CAL	&h9BF9		 NUM1=-NUM1
--  --  --  --  --  --  --  --  --  -->	BASIC-OPERATION +
9C31: 77259C	CAL	&h9C25		 NUM0=NUM1 und NUM1 aus Userstack holen
9C34: 774A08	CAL	&h084A		 NUM1=NUM1+NUM0
9C37: 37F09D	JP	&h9DF0		 zur internen Rundung ->
-------------------------------------->	BASIC-OPERATION *
9C3A: 77259C	CAL	&h9C25		 NUM0=NUM1 und NUM1 aus Userstack holen
9C3D: 777708	CAL	&h0877		 NUM1=NUM1*NUM0
9C40: B78A	JR	&h9C37		 zur internen Rundung ->
-------------------------------------->	BASIC-OPERATION 
9C42: 77229B	CAL	&h9B22		 beide FLP-Zahlen in Wort-Werte wandeln
9C45: A606	PHSW	$6		 WRD0 zwischenspeichern
9C47: A610	PHSW	$16		 WRD1 zwischenspeichern
9C49: 77999C	CAL	&h9C99 [BXWY]	 WRD1/WRD0 durchfhren
9C4C: B507	JR	C,&h9C54	  ?? dann ->
9C4E: EE0060	PPS4	$0		 Worte von Systemstack lschen
9C51: 37F49A	JP	&h9AF4 [CNVR]	 FLP-Zahl in Wort-Wert wandeln
9C54: AE0F	PPSW	$15		 WRD1 wieder holen
9C56: AE17	PPSW	$23		 WRD0 wieder holen
9C58: 77F49A	CAL	&h9AF4 [CNVR]	 FLP-Zahl in Wort-Wert wandeln
9C5B: 772400	CAL	&h0024		 NUM1 in den Userstack bringen
9C5E: 826F17	LDW	$15,$23		 Wort nach WRD1 holen
9C61: 77F49A	CAL	&h9AF4 [CNVR]	 FLP-Zahl in Wort-Wert wandeln
~Seite 58
-------------------------------------->	BASIC-OPERATION /
9C64: 77259C	CAL	&h9C25		 NUM0=NUM1 und NUM1 aus Userstack holen
9C67: 77B608	CAL	&h08B6		 NUM1=NUM1/NUM0
9C6A: B7B4	JR	&h9C37		 zur internen Rundung ->
-------------------------------------->	BASIC-OPERATION ^
9C6C: 77259C	CAL	&h9C25		 NUM0=NUM1 und NUM1 aus Userstack holen
9C6F: 37A69F	JP	&h9FA6		 zum Potenzieren ->
-------------------------------------->	BASIC-OPERATION MOD
9C72: 77229B	CAL	&h9B22		 beide FLP-Zahlen in Wort-Werte wandeln
9C75: A610	PHSW	$16		 WRD1 zwischenspeichern
9C77: 77F49A	CAL	&h9AF4 [CNVR]	 Wort-Wert in FLP-Zahl wandeln
9C7A: 772400	CAL	&h0024		 NUM1 in Userstack speichern
9C7D: 826F05	LDW	$15,$5		 WRD1=WRD0
9C80: 77F49A	CAL	&h9AF4 [CNVR]	 Wort-Wert in FLP-Zahl wandeln
9C83: 772400	CAL	&h0024		 NUM1 im Userstack speichern
9C86: AE0F	PPSW	$15		 WRD1 wieder holen
9C88: 77459C	CAL	&h9C45		 NUM1=NUM1NUM0
9C8B: 773A9C	CAL	&h9C3A		 NUM1=NUM1*NUM0 (aus Userstack)
9C8E: 77F99B	CAL	&h9BF9		 NUM1=-NUM1
9C91: 77319C	CAL	&h9C31		 NUM1=NUM1+NUM0 (aus Userstack)
9C94: 772B9B	CAL	&h9B2B		 FLP-Zahl in Wort-Wert wandeln
9C97: B7C7	JR	&h9C51		 und wieder in FLP-Zahl wandeln
-------------------------------------->	BXWY: DIVISION WRD1/WRD0
9C99: 0204	LD	$4,#0		 Kennzeichen zurcksetzen
9C9B: 440680	ANC	$6,128		 WRD0 positiv?
9C9E: B005	JR	Z,&h9CA4	  dann ->
9CA0: 9B05	CMPW	$5		 sonst WRD0 zweierkomplementieren
9CA2: 1B44	INV	$4		 Kennzeichen invertieren
9CA4: 441080	ANC	$16,128		 WRD1 positiv?
9CA7: B005	JR	Z,&h9CAD	  dann ->
9CA9: 9B0F	CMPW	$15		 sonst WRD1 zweierkomplementieren
9CAB: 1B44	INV	$4		 Kennzeichen invertieren
9CAD: 8125	SBCW	$5,#1		 WRD0=0?
9CAF: 35F0AB	JP	C,&hABF0	  dann -> MA Error
9CB2: C94040	SBB3	$0,#2		 Ergebnisspeicher lschen
9CB5: 0822	AD	$2,#1		 $2 inkrementieren
9CB7: 9865	BIUW	$5		 WRD0 verdoppeln
9CB9: B185	JR	NC,&h9CB5	 nochmal mglich? dann Schleife ->
9CBB: 9806	RODW	$6		 WRD0 korrigieren
9CBD: 8820	ADW	$0,#1		 Ergebnis erhhen
9CBF: 896F05	SBW	$15,$5		 WRD1=(WRD1)-(WRD0)
9CC2: B106	JR	NC,&h9CC9	 kein Unterlauf? dann ->
9CC4: 8920	SBW	$0,#1		 Ergebnis korrigieren
9CC6: 886F05	ADW	$15,$5		 WRD1 korrigieren
9CC9: 0922	SB	$2,#1		 ($2)>1?
9CCB: B413	JR	NZ,&h9CDF	  dann ->
9CCD: 0004	ADC	$4,#0		 Kennzeichen gesetzt?
9CCF: B40C	JR	NZ,&h9CDC	  dann ->
9CD1: 440180	ANC	$1,128		 Ergebnis negativ?
9CD4: 34F404	JP	NZ,&h04F4	  dann mit C=1, Z=1 zurck
9CD7: 824F	LDW	$15,#2		 Ergebnis nach WRD1 bringen
9CD9: 001E	ADC	$30,#0		 C=0, Z=0 setzen
9CDB: F7	RTN			 zurck
9CDC: 9B8087	CMPWJ	$0,&h9CD7	 Ergebnis zweierkomplementieren und ->
9CDF: 9860	BIUW	$0		 Ergebnis herabschieben
9CE1: 98C6A6	BIDWJ	$6,&h9CBD	 WRD0 herabschieben und ->
~Seite 59
-------------------------------------->	16BIT-MULTIPLIKATION AUSFHREN
9CE4: 77B10B	CAL	&h0BB1 [KBM16]	 16bit-Multiplikation ausfhren
9CE7: F1	RTN	NC		 kein Fehler aufgetreten? dann zurck
9CE8: 37F8AB	JP	&hABF8		 sonst BS Error
-------------------------------------->	STRINGAUSDRUCK LESEN
9CEB: 770A9D	CAL	&h9D0A		 Stringargument lesen
9CEE: 77F900	CAL	&h00F9 [NEXTC]	 Zeichen aus Text lesen
9CF1: 41002B	SBC	$0,"+"		 ist es kein "+"?
9CF4: F4	RTN	NZ		  dann zurck
9CF5: 2C20	LDD	$0,(IX+#1)	 Zeichen berlesen
9CF7: E61140	PHS3	$17		 alten Deskriptor speichern
9CFA: 770A9D	CAL	&h9D0A		 Stringargument lesen
9CFD: 026011	LD	$0,$17		 neue Stringlnge kopieren
9D00: EE0F40	PPS3	$15		 alten Deskriptor wieder holen
9D03: 0851	AD	$17,#2		 Lngen addieren
9D05: B198	JR	NC,&h9CEE	 weniger als 256 Zeichen? dann ->
9D07: 37C4AB	JP	&hABC4		 sonst ST Error
-------------------------------------->	STRINGARGUMENT LESEN
9D0A: 77149A	CAL	&h9A14		 auf Platz im Systemstack prfen
9D0D: 77F900	CAL	&h00F9 [NEXTC]	 Zeichen aus Text lesen
9D10: 410022	SBC	$0,'"'		 ist es ein Anfhrungszeichen?
9D13: B056	JR	Z,&h9D6A	  dann ->
9D15: D6403369	PRE	IZ,&h6933	 IZ Zeiger auf Zeichenop.stapel-Untergr.
9D19: A901	LDW	$1,(IZ+#0)	 diese holen
9D1B: A602	PHSW	$2		  und zwischenspeichern
9D1D: 410041	SBC	$0,"A"		 Zeichen>="A"?
9D20: B144	JR	NC,&h9D65	  dann ->
9D22: 777DAF	CAL	&hAF7D		 versuchen, eine Zahl zu lesen
9D25: 3504AC	JP	C,&hAC04	 geschafft? dann TM Error
9D28: AA00	LDIW	$0,(IX+#0)	 nchste zwei Zeichen lesen
9D2A: 490005	SB	$0,5		 Funktions-Token?
9D2D: 3004AC	JP	Z,&hAC04	  dann TM Error
9D30: 0120	SBC	$0,#1		 kein Stringfunktions-Token?
9D32: 34C0AB	JP	NZ,&hABC0	  dann SN Error
9D35: 2601	PHS	$1		 Tokenbyte zwischenspeichern
9D37: 440108	ANC	$1,8		 CHR$/HEX$/STR$?
9D3A: 700A9A	CAL	Z,&h9A0A	 dann arithm. Ausdruck in Klammern lesen
9D3D: 2E00	PPS	$0		 Tokenbyte wieder holen
9D3F: 490097	SB	$0,151		 dieses normalisieren
9D42: D103888C	LDW	$3,&h8C88	 $3/4 Zeiger auf Stringsfunktionstabelle
9D46: 77DB99	CAL	&h99DB		 Stringfunktion ausfhren
9D49: AE00	PPSW	$0		 Zeichenop.stapel-Untergrenze holen
9D4B: 775E9D	CAL	&h9D5E		 und in Zeiger setzen
9D4E: 026011	LD	$0,$17		 Stringlnge des Arguments nach $0
9D51: 0201	LD	$1,#0		 $1=0
9D53: 772F9A	CAL	&h9A2F		 auf Platz im Zeichenop.stapel prfen
9D56: 778001	CAL	&h0180		 String in den Stapel umkopieren
9D59: 826F02	LDW	$15,$2		 Stringanfangsadresse kopieren
9D5C: 9E40	GRE	IZ,$0		 neue Untergrenze des Stapels ablegen
--  --  --  --  --  --  --  --  --  -->	ZEICHENOP.STAPEL-UNTERGRENZE SETZEN
9D5E: D6403369	PRE	IZ,&h6933	 IZ Zeiger auf Zeichenop.stapel-Untergr.
9D62: A100	STW	$0,(IZ+#0)	 Untergrenze dort ablegen
9D64: F7	RTN			 zurck
~Seite 60
--  --  --  --  --  --  --  --  --  -->	STRING HOLEN
9D65: 778FA6	CAL	&hA68F		 Stringvariableninhalt holen
9D68: B7A0	JR	&h9D49		 und zurck in Routine ->
9D6A: 776F9D	CAL	&h9D6F		 String in Anfhrungszeichen lesen
9D6D: B7A0	JR	&h9D4E		 und zurck in Routine ->
--  --  --  --  --  --  --  --  --  -->	STRING IN ANFHRUNGSZEICHEN LESEN
9D6F: 2C20	LDD	$0,(IX+#1)	 Anfhrungszeichen berlesen
9D71: 9E0F	GRE	IX,$15		 Textzeiger als Deskriptor ablegen
9D73: 0211	LD	$17,#0		 Stringlnge zurcksetzen
9D75: 0100	SBC	$0,#0		 Zeile zu Ende?
9D77: F0	RTN	Z		  dann zurck
9D78: 410022	SBC	$0,'"'		 Zeichen ein Anfhrungszeichen?
9D7B: 2C20	LDD	$0,(IX+#1)	 Textzeiger erhhen
9D7D: F0	RTN	Z		  dann zurck
9D7E: 08B18B	ADJ	$17,#1,&h9D75	 Stringlnge erhhen und Schleife ->
-------------------------------------->	EINE NULL IM ZEICHENOP.STAPEL ANHNGEN
9D81: 8220	LDW	$0,#1		 bentigter Platz: 1 Byte
9D83: 772F9A	CAL	&h9A2F		 auf Platz im Zeichenop.stapel prfen
9D86: BD1E	ADW	(IZ+#0),$30	 Untergrenze erhhen
9D88: 107F02	ST	$31,($2)	 Nullbyte speichern
9D8B: F7	RTN			 zurck
-------------------------------------->	STRING AUS TEXT LESEN
9D8C: 77F900	CAL	&h00F9 [NEXTC]	 Zeichen aus Text lesen
9D8F: 410022	SBC	$0,'"'		 ist es ein Anfhrungszeichen?
9D92: B0A4	JR	Z,&h9D6F	  dann String lesen ->
9D94: 9E0F	GRE	IX,$15		 Textzeiger ablegen
9D96: 0211	LD	$17,#0		 Stringlnge zurcksetzen
9D98: 2C00	LDD	$0,(IX+#0)	 nchstes Zeichen lesen
9D9A: 0000	ADC	$0,#0		 Zeilenende?
9D9C: F0	RTN	Z		  dann zurck
9D9D: 41002C	SBC	$0,","		 ist Zeichen ein Komma?
9DA0: F0	RTN	Z		  dann zurck
9DA1: 410020	SBC	$0," "		 ist es ein Steuerzeichen?
9DA4: 35C0AB	JP	C,&hABC0	  dann SN Error
9DA7: 2C20	LDD	$0,(IX+#1)	 Textzeiger erhhen
9DA9: 08B191	ADJ	$17,#1,&h9D9A	 Stringlnge erhhen und Schleife ->
-------------------------------------->	ZAHL MIT VORZEICHEN AUS TEXT LESEN
9DAC: 77E109	CAL	&h09E1		 Vorzeichen in Text lesen
9DAF: 2602	PHS	$2		 Negationskennzeichen retten
9DB1: 777DAF	CAL	&hAF7D		 versuchen, eine Zahl zu lesen
9DB4: 2E02	PPS	$2		 Negationskennzeichen wieder holen
9DB6: F1	RTN	NC		 nicht geschafft? dann zurck
-------------------------------------->	FLP-ZAHL GGFS. NEGIEREN
9DB7: 0002	ADC	$2,#0		 Negationskennzeichen gesetzt?
9DB9: 74F99B	CAL	NZ,&h9BF9	  dann FLP-Zahl negieren
9DBC: 013F	SBC	$31,#1		 C=1 setzen
9DBE: F7	RTN			 zurck
-------------------------------------->	DATUM AUS TEXT LESEN
9DBF: D6401169	PRE	IZ,&h6911	 IZ Zeiger auf Variablenzeiger
9DC3: 391F	ADC	(IZ+#0),$31	 Stringvariable?
9DC5: B225	JR	LZ,&h9DEB	  dann ->
9DC7: 77F900	CAL	&h00F9 [NEXTC]	 Zeichen aus Text lesen
9DCA: 0000	ADC	$0,#0		 Zeilenende?
9DCC: B019	JR	Z,&h9DE6	  dann ->
9DCE: 41002C	SBC	$0,","		 ist Zeichen ein Komma?
9DD1: B014	JR	Z,&h9DE6	  dann ->
~Seite 61
9DD3: 77AC9D	CAL	&h9DAC		 Zahl mit Vorzeichen lesen
9DD6: 3104AC	JP	NC,&hAC04	 nicht geschafft? dann TM Error
9DD9: 77FF00	CAL	&h00FF		 ist Zeichen ein Trennzeichen?
9DDC: B506	JR	C,&h9DE3	  dann ->
9DDE: 774C01	CAL	&h014C		 Komma im Text berlesen
9DE1: 2CA0	LDD	$0,(IX-#1)	 Textzeiger dekrementieren
9DE3: 3790A7	JP	&hA790		 Variable zuweisen
9DE6: 77A608	CAL	&h08A6		 NUM1=0 setzen
9DE9: B791	JR	&h9DD9		 und ->
9DEB: 778C9D	CAL	&h9D8C		 Stringdatum aus Text lesen
9DEE: B796	JR	&h9DD9		 und ->
-------------------------------------->	INTERNE RUNDUNG DURCHFHREN
9DF0: 82600A	LDW	$0,$10		 letzte Stellen kopieren
9DF3: 4C010F	AN	$1,15		 drittletzte Stelle=0?
9DF6: B014	JR	Z,&h9E0B	  dann ->
9DF8: 410109	SBC	$1,9		 drittletzte Stelle<>9?
9DFB: F4	RTN	NZ		  dann zurck
9DFC: 410050	SBC	$0,&h50		 letzte Stellen<50?
9DFF: F5	RTN	C		  dann zurck
9E00: 020A	LD	$10,#0		 letzte drei Stellen=000 setzen
9E02: 4C0BF0	AN	$11,&hF0	 |
9E05: CA0BB0	ADB6	$11,&H10	 ab vierter Stelle 1 addieren
9E08: 378D08	JP	&h088D		 FLP-Zahl evtl. normalisieren
9E0B: 410050	SBC	$0,&h50		 letzte Stellen>=50?
9E0E: F1	RTN	NC		  dann zurck
9E0F: 020A	LD	$10,#0		 sonst letzte drei Stellen=000 setzen
9E11: F7	RTN			 zurck
-------------------------------------->	REST DER BASIC-FUNKTION ROUND
9E12: 41070D	SBC	$7,13		 >12?
9E15: F1	RTN	NC		  dann zurck
9E16: 42080C	LD	$8,12		 Zhler=12-($7)
9E19: 096807	SB	$8,$7		 |
9E1C: 2608	PHS	$8		 Zhler sichern
9E1E: 0928	SB	$8,#1		 Zhler herabsetzen
9E20: B506	JR	C,&h9E27	 <0? dann ->
9E22: DA10C0	DID7	$16		 Mantisse durch 10 dividieren
9E25: B788	JR	&h9E1E		 und Schleife ->
9E27: 2E08	PPS	$8		 Zhler wieder holen
9E29: C961A1	SBB6	$1,$1		 Mantisse0 bis auf letzte Stelle lschen
9E2C: C84AC0	ADB7	$10,#2		 zu Mantisse addieren
9E2F: 4C0AF0	AN	$10,&hF0	 letzte Stelle nullsetzen
9E32: 0928	SB	$8,#1		 Zhler herabsetzen
9E34: B5AD	JR	C,&h9E08	 <0? dann ->
9E36: DA2AC0	DIU7	$10		 Mantisse mit zehn malnehmen
9E39: B788	JR	&h9E32		 und Schleife ->

=== BASIC-FUNKTIONEN ===========================================================
-------------------------------------->	BASIC-FUNKTION INKEY$
9E3B: D10FF468	LDW	$15,&h68F4	 Stringbeginn bei WORK
9E3F: 42000A	LD	$0,10		 Reihe 10 auswhlen
9E42: D1110010	LDW	$17,&h1000	 Zhler zurcksetzen:Stringlnge=0
9E46: 772808	CAL	&h0828
9E49: 772506	CAL	&h0625		 Tastenreihe holen
9E4C: 066102	ORC	$1,$2		 keine Taste gedrckt?
9E4F: B04F	JR	Z,&h9E9F	  dann ->
9E51: 0932	SB	$18,#1		 Zhler herabsetzen
~Seite 62
9E53: B48E	JR	NZ,&h9E46	 >0? dann Schleife ->
9E55: 2600	PHS	$0		 Register $0 sichern
9E57: 771891	CAL	&h9118
9E5A: 2E00	PPS	$0		 Register $0 wieder holen
9E5C: 0120	SBC	$0,#1		 BRK-Taste gedrckt?
9E5E: 301992	JP	Z,&h9219	  dann ->
9E61: DA6060	BYU4	$0		 Register verschieben
9E64: 0820	AD	$0,#1		 KI-Zhler heraufsetzen
9E66: 1863	BIU	$3		 Tastenspeicher bitweise hochschieben
9E68: 1822	ROU	$2		 |
9E6A: B187	JR	NC,&h9E64	 noch nicht gefunden? dann Schleife ->
9E6C: 410107	SBC	$1,7		 ist es eine Displaytaste?
9E6F: B506	JR	C,&h9E76	  dann Abfrage auf mehrere Tasten
9E71: 410009	SBC	$0,9		   berspringen ->
9E74: B104	JR	NC,&h9E79	   |
9E76: 8122	SBCW	$2,#1		 mehrere Tasten gedrckt?
9E78: F1	RTN	NC		 dann zurck
9E79: 1A21	DIU	$1		 KO-Reihe mit 16 multiplizieren
9E7B: 086001	AD	$0,$1		 und KI-Zhler addieren
9E7E: D103D768	LDW	$3,&h68D7	 $2/3 Zeiger auf Tastatur-Modus II
9E82: 116203	LD	$2,($3)		 diesen holen
9E85: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
9E87: 770C08	CAL	&h080C
9E8A: 77B207	CAL	&h07B2
9E8D: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
9E90: 0120	SBC	$0,#1		 Shortkey gedrckt?
9E92: F5	RTN	C		  dann zurck
9E93: 410090	SBC	$0,&h90		 Sondertaste gedrckt?
9E96: F3	RTN	UZ		  dann auch zurck
9E97: 0231	LD	$17,#1		 Stringlnge=1 setzen
9E99: 10600F	ST	$0,($15)	 Zeichen in WORK setzen
9E9C: 371AAB	JP	&hAB1A		 evtl. Tastenklick erzeugen und ->
9E9F: 0920	SB	$0,#1		 Reihennummer dekrementieren
9EA1: B1E0	JR	NC,&h9E42	 noch einmal? dann Schleife ->
9EA3: F7	RTN			 zurck
-------------------------------------->	NUM0=PI SETZEN
9EA4: 4280301C	LDJ	$0,48,&h9EC3	 PI holen ->
--  --  --  --  --  --  --  --  --  -->	VERSCHIEDENE ZAHLEN HOLEN
9EA8: 42803818	LDJ	$0,56,&h9EC3
9EAC: 42804014	LDJ	$0,64,&h9EC3	 RND-Konstante holen ->
9EB0: 42811803	LDJ	$1,24,&h9EB6	 Lnge eines Viertelkreises holen ->
9EB4: 0201	LD	$1,#0		 Umrechnung in Winkelmodus holen
9EB6: D640F368	PRE	IZ,&h68F3	 IZ Zeiger auf Winkelmodus
9EBA: 2900	LD	$0,(IZ+#0)	 diesen holen
9EBC: 1A20	DIU	$0		 und mit 8 multiplizieren
9EBE: 1840	BID	$0		 |
9EC0: 086001	AD	$0,$1		 Offset addieren
9EC3: D640F685	PRE	IZ,&h85F6	 IZ Zeiger auf Konstantentabelle
9EC7: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
9EC9: E940E0	LD8	$0,(IZ+#2)	 FLP-Zahl lesen
9ECC: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
9ECF: 0208	LD	$8,#0		 Vorzeichenflags zurcksetzen
9ED1: DA2640	DIU3	$6		 internes Format in externes
9ED4: 1A06	DID	$6		  wandeln
9ED6: F7	RTN			 zurck
~Seite 63
-------------------------------------->	HYPSIN:
9ED7: 42890512	LDJ	$9,5,&h9EEC	 Kennzeichen fr HYPSIN setzen und ->
-------------------------------------->	HYPCOS:
9EDB: 4289030E	LDJ	$9,3,&h9EEC	 Kennzeichen fr HYPCOS setzen und ->
-------------------------------------->	HYPTAN:
9EDF: 02A90B	LDJ	$9,#1,&h9EEC	 Kennzeichen fr HYPTAN setzen und ->
-------------------------------------->	HYPASN:
9EE2: 42890407	LDJ	$9,4,&h9EEC	 Kennzeichen fr HYPASN setzen und ->
-------------------------------------->	HYPACS:
9EE6: 42890203	LDJ	$9,2,&h9EEC	 Kennzeichen fr HYPACS setzen und ->
-------------------------------------->	HYPATN:
9EEA: 0209	LD	$9,#0		 Kennzeichen fr HYPATN setzen
9EEC: 772400	CAL	&h0024		 NUM1 in den Userstack
9EEF: 77900B	CAL	&h0B90
9EF2: 261D	PHS	$29
9EF4: 440902	ANC	$9,2		 ist es HYPCOS/HYPACS?
9EF7: B438	JR	NZ,&h9F30	  dann ->
9EF9: 77A89E	CAL	&h9EA8		 sonst NUM1=4.342944819033E-97 setzen
9EFC: 420797	LD	$7,&h97		 |
9EFF: 771609	CAL	&h0916
9F02: B12D	JR	NC,&h9F30	  dann ->
9F04: 027C09	LD	$28,$9		 Kennzeichen umkopieren
9F07: 777308	CAL	&h0873
9F0A: 77D908	CAL	&h08D9		 NUM0=1
9F0D: 441C04	ANC	$28,4		 ist es HYPSIN/HYPASN?
9F10: B405	JR	NZ,&h9F16	  dann ->
9F12: 42860306	LDJ	$6,3,&h9F1B	 NUM0=3 und ->
9F16: 420606	LD	$6,6		 NUM0=6 setzen
9F19: 083C	AD	$28,#1		 Funktionskennzeichen erhhen
9F1B: 043C	ANC	$28,#1
9F1D: B004	JR	Z,&h9F22
9F1F: 420806	LD	$8,6		 Mantisse negativ, Exponent positiv
9F22: 77B608	CAL	&h08B6		 NUM1=NUM1/NUM0
9F25: 774808	CAL	&h0848		 NUM1=NUM1+1
9F28: 773C00	CAL	&h003C		 NUM0 aus Userstack holen
9F2B: 2E09	PPS	$9
9F2D: 377708	JP	&h0877		 NUM1=NUM1*NUM0
9F30: 0429	ANC	$9,#1
9F32: B033	JR	Z,&h9F66
9F34: 027C09	LD	$28,$9
9F37: 2609	PHS	$9
9F39: 778D0A	CAL	&h0A8D
9F3C: 77B208	CAL	&h08B2		 NUM1=1/NUM1
9F3F: 2E09	PPS	$9
9F41: 410903	SBC	$9,3
9F44: B516	JR	C,&h9F5B
9F46: B40A	JR	NZ,&h9F51
9F48: 774A08	CAL	&h084A		 NUM1=NUM1+NUM0
9F4B: 2E09	PPS	$9
9F4D: 261F	PHS	$31
9F4F: B704	JR	&h9F54
9F51: 773E08	CAL	&h083E
9F54: 77D908	CAL	&h08D9		 NUM0=2 setzen
9F57: 42860204	LDJ	$6,2,&h9F5E	 und ->
9F5B: 776D0B	CAL	&h0B6D
9F5E: 77B608	CAL	&h08B6		 NUM1=NUM1/NUM0
~Seite 64
9F61: 773C00	CAL	&h003C		 NUM0 aus Userstack holen
9F64: B739	JR	&h9F9E		 und ->
9F66: 77D908	CAL	&h08D9		 NUM0=1 setzen
9F69: 410902	SBC	$9,2
9F6C: B522	JR	C,&h9F8F
9F6E: B00F	JR	Z,&h9F7E
9F70: 77990B	CAL	&h0B99
9F73: 773C00	CAL	&h003C		 NUM0 aus Userstack holen
9F76: 772809	CAL	&h0928		 NUM0 und NUM1 vertauschen
9F79: 77900B	CAL	&h0B90
9F7C: B70D	JR	&h9F8A		 und ->
9F7E: 771609	CAL	&h0916
9F81: 35F0AB	JP	C,&hABF0	  dann NA Error
9F84: 77860B	CAL	&h0B86
9F87: 773C00	CAL	&h003C		 NUM0 aus Userstack holen
9F8A: 774A08	CAL	&h084A		 NUM1=NUM1+NUM0
9F8D: B70D	JR	&h9F9B		 und ->
9F8F: 776D0B	CAL	&h0B6D
9F92: 77B408	CAL	&h08B4		 NUM1=NUM0/NUM1
9F95: 77DD08	CAL	&h08DD		 NUM1=SQR(NUM1)
9F98: 773C00	CAL	&h003C		 NUM0 aus Userstack holen
9F9B: 77550A	CAL	&h0A55		 NUM1=LOG(NUM1)
9F9E: 2E00	PPS	$0		 Vorzeichennderung wieder holen
9FA0: 0A52	ADB	$18,#2		 zu Vorzeichen addieren
9FA2: 4C120F	AN	$18,15		 und normalisieren
9FA5: F7	RTN			 zurck
-------------------------------------->	NUM1=NUM^NUM0
9FA6: 772809	CAL	&h0928		 NUM0 und NUM1 vertauschen
9FA9: 897C1C	SBW	$28,$28
9FAC: 7709A3	CAL	&hA309		 NUM2=FIX(NUM1); NUM1 beibehalten
9FAF: B413	JR	NZ,&h9FC3
9FB1: 421D80	LD	$29,128
9FB4: 410805	SBC	$8,5
9FB7: B50B	JR	C,&h9FC3
9FB9: 043C	ANC	$28,#1
9FBB: B004	JR	Z,&h9FC0
9FBD: 4E1D05	OR	$29,5
9FC0: 4B0805	SBB	$8,5
9FC3: 772809	CAL	&h0928		 NUM0 und NUM1 vertauschen
9FC6: 0110	SBC	$16,#0
9FC8: B409	JR	NZ,&h9FD2
9FCA: 410805	SBC	$8,5
9FCD: B104	JR	NC,&h9FD2
9FCF: 0106	SBC	$6,#0
9FD1: F4	RTN	NZ
9FD2: 7709A3	CAL	&hA309		 NUM2=FIX(NUM1); NUM1 beibehalten
9FD5: 021C	LD	$28,#0
9FD7: B408	JR	NZ,&h9FE0
9FD9: 411D80	SBC	$29,128
9FDC: B503	JR	C,&h9FE0
9FDE: 093C	SB	$28,#1
9FE0: A61D	PHSW	$29
9FE2: 773400	CAL	&h0034		 NUM0 in den Userstack
9FE5: 77570A	CAL	&h0A57		 NUM1=LGT(NUM1)
9FE8: 773C00	CAL	&h003C		 NUM0 aus dem Userstack holen
9FEB: AE1C	PPSW	$28
~Seite 65
9FED: 261D	PHS	$29
9FEF: 77920A	CAL	&h0A92
9FF2: B7D5	JR	&h9F9E		 und ->
-------------------------------------->	BASIC-FUNKTION RND
9FF4: 826011	LDW	$0,$17		 Exponent und Vorzeichen kopieren
9FF7: D640116D	PRE	IZ,&h6D11	 IZ Zeiger auf Speicher fr die
9FFB: EB0AE0	LDI8	$10,(IZ+#0)	  zuletzte ausgegebene RND-Zahl
9FFE: 2D12	LDD	$18,(IZ+#0)	  und diese holen
A000: 8120	SBCW	$0,#1		 Argument=0?
A002: F5	RTN	C		  dann zurck
A003: 410105	SBC	$1,5		 Argument>0?
A006: B509	JR	C,&hA010	  dann ->
A008: 1F60	GST	TM,$0		 sonst Zeit als Zufallsfaktor
A00A: 0A00	ADB	$0,#0		  mit einflieen lassen
A00C: 0A4F	ADB	$15,#2		  |
A00E: 0B4D	SBB	$13,#2		  |
A010: 77AC9E	CAL	&h9EAC		 NUM0=Konstante
A013: 777708	CAL	&h0877		 NUM1=NUM1*NUM0
A016: 7720A3	CAL	&hA320		 NUM1=FRAC(NUM1)
A019: D640116D	PRE	IZ,&h6D11	 wieder als Kriterium fr
A01D: E30AE0	STI8	$10,(IZ+#0)	  nchsten Aufruf speichern
A020: F7	RTN			 zurck
-------------------------------------->	BASIC-FUNKTION PI
A021: 77A49E	CAL	&h9EA4		 NUM0=PI
A024: B728	JR	&hA04D		 und ->
-------------------------------------->	LETZTEN X-WERT HOLEN
A026: 02BC1C	LDJ	$28,#1,&hA044	 Offset fr letzten X-Wert und ->
-------------------------------------->	LETZTEN Y-WERT HOLEN
A029: 429C0A18	LDJ	$28,10,&hA044	 Offset fr letzten Y-Wert und ->
-------------------------------------->	BASIC-FUNKTION CNT
A02D: 429C1314	LDJ	$28,19,&hA044	 Offset fr CNT holen und ->
-------------------------------------->	BASIC-FUNKTION SUMX
A031: 429C1C10	LDJ	$28,28,&hA044	 Offset fr SUMX holen und ->
-------------------------------------->	BASIC-FUNKTION SUMY
A035: 429C250C	LDJ	$28,37,&hA044	 Offset fr SUMY holen und ->
-------------------------------------->	BASIC-FUNKTION SUMX2
A039: 429C2E08	LDJ	$28,46,&hA044	 Offset fr SUMX2 holen und ->
-------------------------------------->	BASIC-FUNKTION SUMY2
A03D: 429C3704	LDJ	$28,55,&hA044	 Offset fr SUMY2 holen und
-------------------------------------->	BASIC-FUNKTION SUMXY
A041: 421C40	LD	$28,64		 Offset fr SUMXY holen
A044: D640B16B	PRE	IZ,&h6BB1	 IZ Zeiger auf STAT-Bereich
A048: EB60FC	LDI8	$0,(IZ+$28)	 IZ um Offset erhhen
A04B: 2D08	LDD	$8,(IZ+#0)	  und FLP-Zahl nach NUM0 lesen
A04D: 372809	JP	&h0928		 NUM0 und NUM1 vertauschen
-------------------------------------->	NUM1=(SUMz2-SUMz^2)/CNT
A050: 0100	SBC	$0,#0		 mit SUMY berechnen?
A052: B40F	JR	NZ,&hA062	 dann ->
--  --  --  --  --  --  --  --  --  -->	NUM1=(SUMX2-SUMX^2)/CNT
A054: 779EA0	CAL	&hA09E		 NUM1=MEANX
A057: 7731A0	CAL	&hA031		 NUM0=NUM1:NUM1=SUMX
A05A: 777708	CAL	&h0877		 NUM1=NUM1*NUM0
A05D: 7739A0	CAL	&hA039		 NUM0=NUM1:NUM1=SUMX2
A060: B70D	JR	&hA06E		 und ->
~Seite 66
--  --  --  --  --  --  --  --  --  -->	NUM1=(SUMY2-SUMY^2)/CNT
A062: 77A3A0	CAL	&hA0A3		 NUM1=MEANY
A065: 7735A0	CAL	&hA035		 NUM0=NUM1:NUM1=SUMY
A068: 777708	CAL	&h0877		 NUM1=NUM1*NUM0
A06B: 773DA0	CAL	&hA03D		 NUM0=NUM1:NUM1=SUMY2
A06E: 774408	CAL	&h0844		 NUM1=NUM1-NUM0
A071: 411205	SBC	$18,5		 positiv?
A074: F5	RTN	C		  dann zurck
A075: 37A608	JP	&h08A6		 sonst NUM1=0 und zurck
-------------------------------------->	BASIC-FUNKTION SDX
A078: 261F	PHS	$31		 Kennzeichen X speichern
A07A: B703	JR	&hA07E		 und ->
-------------------------------------->	BASIC-FUNKTION SDY
A07C: 261E	PHS	$30		 Kennzeichen Y speichern
A07E: 772DA0	CAL	&hA02D		 NUM1=CNT
A081: 774208	CAL	&h0842		 NUM1=NUM1-1
A084: 2E00	PPS	$0		 Kennzeichen wieder holen
A086: 772400	CAL	&h0024		 NUM1 in den Userstack
A089: 7750A0	CAL	&hA050		 NUM1=(SUMz2-SUMz^2)/CNT
A08C: 77FCA0	CAL	&hA0FC		 NUM0 holen:NUM1=NUM1/NUM0
A08F: 37DD08	JP	&h08DD		 NUM1=SQR(NUM1) und zurck
-------------------------------------->	BASIC-FUNKTION SDXN
A092: 772DA0	CAL	&hA02D		 NUM1=CNT
A095: 028091	LDJ	$0,#0,&hA086	 Kennzeichen x setzen und ->
-------------------------------------->	BASIC-FUNKTION SDYN
A098: 772DA0	CAL	&hA02D		 NUM1=CNT
A09B: 02A097	LDJ	$0,#1,&hA086	 Kennzeichen Y setzen und ->
-------------------------------------->	BASIC-FUNKTION MEANX
A09E: 7731A0	CAL	&hA031		 NUM1=SUMX
A0A1: B704	JR	&hA0A6		 und ->
-------------------------------------->	BASIC-FUNKTION MEANY
A0A3: 7735A0	CAL	&hA035		 NUM1=SUMY
A0A6: 772DA0	CAL	&hA02D		 NUM0=NUM1:NUM1=CNT
A0A9: B76D	JR	&hA117		 NUM1=NUM0/NUM1 und zurck
-------------------------------------->	NUM1=SUMXY-SUMX*MEANY
A0AB: 77A3A0	CAL	&hA0A3		 NUM1=MEANY
A0AE: 7731A0	CAL	&hA031		 NUM0=NUM1:NUM1=SUMX
A0B1: 777708	CAL	&h0877		 NUM1=NUM1*NUM0
A0B4: 7741A0	CAL	&hA041		 NUM0=NUM1:NUM1=SUMXY
A0B7: B719	JR	&hA0D1		 NUM1=NUM1-NUM0 und zurck
-------------------------------------->	NUM1=MEANY*SUMX2-MEANX*SUMXY
A0B9: 779EA0	CAL	&hA09E		 NUM1=MEANX
A0BC: 7741A0	CAL	&hA041		 NUM0=NUM1:NUM1=SUMXY
A0BF: 777708	CAL	&h0877		 NUM1=NUM1*NUM0
A0C2: 772400	CAL	&h0024		 NUM1 in den Userstack
A0C5: 77A3A0	CAL	&hA0A3		 NUM1=MEANY
A0C8: 7739A0	CAL	&hA039		 NUM0=NUM1:NUM1=SUMX2
A0CB: 777708	CAL	&h0877		 NUM1=NUM1*NUM0
A0CE: 773C00	CAL	&h003C		 NUM0 aus dem Userstack holen
A0D1: 374408	JP	&h0844		 NUM1=NUM1-NUM0 und zurck
-------------------------------------->	BASIC-FUNKTION LRA
A0D4: 77B9A0	CAL	&hA0B9		 NUM1=MEANY*SUMX2-MEANX*SUMXY
A0D7: 772400	CAL	&h0024		 NUM1 in den Userstack
A0DA: 7754A0	CAL	&hA054		 NUM1=(SUMX2-SUMX^2)/CNT
A0DD: B736	JR	&hA114		 NUM0 holen; NUM1=NUM0/NUM1 und zurck
~Seite 67
-------------------------------------->	BASIC-FUNKTION LRB
A0DF: 7754A0	CAL	&hA054		 NUM1=(SUMX2-SUMX^2)/CNT
A0E2: B713	JR	&hA0F6		 und ->
-------------------------------------->	BASIC-FUNKTION COR
A0E4: 7754A0	CAL	&hA054		 NUM1=(SUMX2-SUMX^2)/CNT
A0E7: 772400	CAL	&h0024		 NUM1 in den Userstack
A0EA: 7762A0	CAL	&hA062		 NUM1=(SUMY2-SUMY^2)/CNT
A0ED: 773C00	CAL	&h003C		 NUM0 aus dem Userstack holen
A0F0: 777708	CAL	&h0877		 NUM1=NUM1*NUM0
A0F3: 77DD08	CAL	&h08DD		 NUM1=SQR(NUM1)
A0F6: 772400	CAL	&h0024		 NUM1 in den Userstack
A0F9: 77ABA0	CAL	&hA0AB		 NUM1=SUMXY-SUMX*MEANY
A0FC: 773C00	CAL	&h003C		 NUM0 aus dem Userstack holen
A0FF: 37B608	JP	&h08B6		 NUM1=NUM1/NUM0 und zurck
-------------------------------------->	BASIC-FUNKTION EOX
A102: 772400	CAL	&h0024		 NUM1 in den Userstack
A105: 77D4A0	CAL	&hA0D4		 NUM1=LRA
A108: 773C00	CAL	&h003C		 NUM0 aus dem Userstack holen
A10B: 773E08	CAL	&h083E		 NUM1=NUM0-NUM1
A10E: 772400	CAL	&h0024		 NUM1 in den Userstack
A111: 77DFA0	CAL	&hA0DF		 NUM1=LRB
A114: 773C00	CAL	&h003C		 NUM0 aus dem Userstack holen
A117: 37B408	JP	&h08B4		 NUM1=NUM0/NUM1
-------------------------------------->	BASIC-FUNKTION EOY
A11A: 772400	CAL	&h0024		 NUM1 in den Userstack
A11D: 77DFA0	CAL	&hA0DF		 NUM1=LRB
A120: 773C00	CAL	&h003C		 NUM0 aus dem Userstack holen
A123: 777708	CAL	&h0877		 NUM1=NUM1*NUM0
A126: 772400	CAL	&h0024		 NUM1 in den Userstack
A129: 77D4A0	CAL	&hA0D4		 NUM1=LRA
A12C: 773C00	CAL	&h003C		 NUM0 aus dem Userstack holen
A12F: 374A08	JP	&h084A		 NUM1=NUM1+NUM0 und zurck
-------------------------------------->	BASIC-FUNKTION DEG
A132: 775201	CAL	&h0152		 offene Klammer im Text berlesen
A135: 021C	LD	$28,#0		 Zhler nullsetzen
A137: 261C	PHS	$28		 Zhler zwischenspeichern
A139: 778999	CAL	&h9989		 math. Ausdruck holen
A13C: 2E1C	PPS	$28		 Zhler wieder holen
A13E: 2C00	LDD	$0,(IX+#0)	 Zeichen aus Text lesen
A140: 410029	SBC	$0,")"		 geschlossene Klammer?
A143: B01B	JR	Z,&hA15F	  dann ->
A145: 774C01	CAL	&h014C		 Komma im Text berlesen
A148: 481C70	AD	$28,&h70	 schon drittes Argument gewesen?
A14B: 35C0AB	JP	C,&hABC0	  dann SN Error
A14E: 772400	CAL	&h0024		 NUM1 in den Userstack
A151: B79B	JR	&hA137		 und Schleife ->
A153: 7767A1	CAL	&hA167		 NUM0=60 setzen
A156: 77B608	CAL	&h08B6		 NUM1=NUM1/NUM0
A159: 773C00	CAL	&h003C		 NUM0 aus dem Userstack holen
A15C: 774A08	CAL	&h084A		 NUM1=NUM1+NUM0
A15F: 491C70	SB	$28,&h70	 evtl. noch einmal durch 60 dividieren?
A162: B190	JR	NC,&hA153	  dann Schleife ->
A164: 2C20	LDD	$0,(IX+#1)	 geschlossene Klammer berlesen
A166: F7	RTN			 zurck
~Seite 68
-------------------------------------->	NUM0=60
A167: 77D908	CAL	&h08D9		 NUM0=1 setzen
A16A: D1060601	LDW	$6,&h0106	 zu NUM0=60 ndern
A16E: F7	RTN			 zurck
-------------------------------------->	NUM0=3600
A16F: 77D908	CAL	&h08D9		 NUM0=1 setzen
A172: D1060303	LDW	$6,&h0303	 zu NUM0=3600 ndern
A176: 420560	LD	$5,&h60		 |
A179: F7	RTN			 zurck
-------------------------------------->	BASIC-FUNKTION DATE$
A17A: D10FF468	LDW	$15,&h68F4	 Stringanfang bei WORK
A17E: D640AD6B	PRE	IZ,&h6BAD	 IZ Zeiger auf Rechner-Datum
A182: E90140	LD3	$1,(IZ+#0)	 dieses holen
A185: 42110A	LD	$17,10		 Stringlnge auf 10 festlegen
A188: 9A41	BYDW	$1		 Jahreszahl nach $0 bringen
A18A: 420119	LD	$1,&h19		 19xx setzen
A18D: 42052D	LD	$5,"-"		 Trennzeichen "-" setzen
A190: 410050	SBC	$0,&h50		 Jahreszahl>50?
A193: B11F	JR	NC,&hA1B3	  dann ->
A195: 0AA11C	ADBJ	$1,#1,&hA1B3	 sonst 20xx setzen und ->
-------------------------------------->	BASIC-FUNKTION TIME$
A198: D10FF468	LDW	$15,&h68F4	 Stringanfang bei WORK
A19C: 1F60	GST	TM,$0		 Sekunden in Register $0 ablegen
A19E: D640B06B	PRE	IZ,&h6BB0	 IZ Zeiger auf Rechner-Uhrzeit
A1A2: A902	LDW	$2,(IZ+#0)	 diese holen
A1A4: 1F61	GST	TM,$1		 Sekunden in Register $1 ablegen
A1A6: 0141	SBC	$1,#2		 schon fortgeschritten?
A1A8: B48D	JR	NZ,&hA19C	  dann noch einmal ->
A1AA: 4C003F	AN	$0,&h3F		 Sekunden normalisieren
A1AD: 421108	LD	$17,&h08	 Stringlnge auf 8 festlegen
A1B0: 42053A	LD	$5,":"		 Trennzeichen ":" festlegen
A1B3: 0204	LD	$4,#0		 BCD-Sekunden zurcksetzen
A1B5: 49000A	SB	$0,10		 Sekunden um 10 verringern
A1B8: B505	JR	C,&hA1BE	 <0? dann ->
A1BA: 4A841088	ADBJ	$4,&h10,&hA1B5	 sonst BCD-Sekunden um 10 erhhen
A1BE: 48000A	AD	$0,10		 Sekunden korrigieren
A1C1: 0A6004	ADB	$0,$4		 BCD-Sekunden addieren
A1C4: 41052D	SBC	$5,"-"		 ist Trennzeichen="-"?
A1C7: B003	JR	Z,&hA1CB	  dann ->
A1C9: 0241	LD	$1,#2		 sonst Sekunden nach $1 bringen
A1CB: 964F	PRE	IZ,$15		 IZ Zeiger auf WORK
A1CD: 8226	LDW	$6,#1		 $6=1, $7=0 setzen
A1CF: 420403	LD	$4,3		 Offset zur ASCII-Wandlung setzen
A1D2: DA2080	DIU5	$0		 nchste Zeichen in $4 schieben
A1D5: 2304	STI	$4,(IZ+#0)	 und im WORK-Puffer speichern
A1D7: 086706	AD	$7,$6		 Zhler erhhen
A1DA: F5	RTN	C		 bertrag? dann zurck
A1DB: 0427	ANC	$7,#1		 Zhler ungerade?
A1DD: B48F	JR	NZ,&hA1CF	  dann Schleife ->
A1DF: 2305	STI	$5,(IZ+#0)	 Trennzeichen in WORK-Puffer speichern
A1E1: 410704	SBC	$7,4		 Zhler nicht auf 4?
A1E4: B496	JR	NZ,&hA1CF	  dann Schleife ->
A1E6: D10610C1	LDW	$6,&hC110	 $6=&h10, $7=&hC1 setzen
A1EA: 410FA6	SBC	$15,&hA6	 nicht Aufruf fr C.Boot?
A1ED: B49F	JR	NZ,&hA1CF	  dann Schleife ->
A1EF: 25BF	STD	$31,(IZ-#1)	 am Ende eine NUL speichern
~Seite 69
A1F1: F7	RTN			 zurck
-------------------------------------->	BASIC-FUNKTION DMS$
A1F2: 42022D	LD	$2,"-"		 negatives Vorzeichen setzen
A1F5: D1000506	LDW	$0,&h0605	 Vorzeichenkennzeichen setzen
A1F9: 411205	SBC	$18,5		 Zahl negativ?
A1FC: B105	JR	NC,&hA202	  dann ->
A1FE: D1010120	LDW	$1,&h2001	 sonst Leerzeichen setzen
A202: 8151	SBCW	$17,#2		 kein Nachkommateil?
A204: 3155A5	JP	NC,&hA555	  dann Zahl zu String umwandeln ->
A207: 777EE4	CAL	&hE47E		 sonst IZ Zeiger auf WORK
A20A: 77900B	CAL	&h0B90
A20D: 2302	STI	$2,(IZ+#0)	 Vorzeichen in WORK-Puffer speichern
A20F: 776FA1	CAL	&hA16F		 NUM0=3600 setzen
A212: 777708	CAL	&h0877		 NUM1=NUM1*NUM0
A215: D11C9700	LDW	$28,&h0097
A219: 7742A2	CAL	&hA242		 Zahl aufbereiten
A21C: 776FA1	CAL	&hA16F		 NUM0=3600 setzen
A21F: 7763A2	CAL	&hA263		 Grad berechnen und speichern
A222: 421BDF	LD	$27,223		 Gradzeichen
A225: 231B	STI	$27,(IZ+#0)	  im WORK-Puffer speichern
A227: 7767A1	CAL	&hA167		 NUM0=60 setzen
A22A: 7763A2	CAL	&hA263		 Minuten berechnen und speichern
A22D: 9E46	GRE	IZ,$6		 Position des Minutenzeichens ablegen
A22F: 7758A5	CAL	&hA558		 Sekunden in String umwandeln
A232: 9E51	GRE	IZ,$17		 Zeiger auf Stringende ablegen
A234: D10FF468	LDW	$15,&h68F4	 Stringanfang auf WORK setzen
A238: 89710F	SBW	$17,$15		 Stringlnge feststellen
A23B: 420027	LD	$0,"'"		 Minutenzeichen holen
A23E: 106006	ST	$0,($6)		  und in den String setzen
A241: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	ZAHL AUFBEREITEN
A242: 420713	LD	$7,&h13		 $7 auf 13 (BCD) setzen
A245: 8B6808	SBBW	$8,$8		 $8/9 lschen
A248: 8A7C07	ADBW	$28,$7		 Vergleichswert um 13 erhhen
A24B: 817C11	SBCW	$28,$17		 Exponent1/Vorzeichen1>Vergleichswert?
A24E: B511	JR	C,&hA260	  dann zum Normalisieren ->
A250: B007	JR	Z,&hA258	  gleich? dann evtl. runden ->
A252: DA10E0	DID8	$16		 Mantisse1 durch 10 dividieren
A255: 8AB18C	ADBWJ	$17,#1,&hA24B	 Exponent1 erhhen und Schleife ->
A258: 4009B0	ADC	$9,&hF0-&h40	 BCD-Ziffer<4?
A25B: B104	JR	NC,&hA260	  dann ->
A25D: CA0AC1	ADB7	$10,1		 sonst aufrunden
A260: 378D08	JP	&h088D		 FLP-Zahl normalisieren
--  --  --  --  --  --  --  --  --  -->	GRAD ODER MINUTEN BERECHNEN
A263: 897313	SBW	$19,$19		 Zwischenspeicher lschen
A266: 771609	CAL	&h0916		 ABS(NUM1)<1?
A269: B524	JR	C,&hA28E	  dann ->
A26B: 027311	LD	$19,$17		 Zhler aus Exponent1 holen
A26E: 0B7307	SBB	$19,$7		 Exponent0 abziehen
A271: C14AC0	SBBC7	$10,#2		 Mantisse1>Mantisse0?
A274: B107	JR	NC,&hA27C	  dann ->
A276: DA2AC0	DIU7	$10		 sonst Mantisse1 verzehnfachen
A279: 8BB118	SBBWJ	$17,#1,&hA293	  und Exponent1 herabsetzen und ->
A27C: 0214	LD	$20,#0		 Zhler auf 0 setzen
A27E: C94AC0	SBB7	$10,#2		 Mantisse0 von Mantisse1 abziehen
A281: B504	JR	C,&hA286	 Unterlauf? dann ->
~Seite 70
A283: 0AB487	ADBJ	$20,#1,&hA27E	 sonst Zhler erhhen und Schleife ->
A286: C84AC0	ADB7	$10,#2		 Mantisse1 korrigieren
A289: DA2AC0	DIU7	$10		 Mantisse1 verzehnfachen
A28C: 8B31	SBBW	$17,#1		 und in Exponent 1 abziehen
A28E: 4E1430	OR	$20,"0"		 in ASCII-Ziffer wandeln
A291: 2314	STI	$20,(IZ+#0)	 im WORK-Puffer speichern
A293: 0B33	SBB	$19,#1		 nach eine Ziffer berechnen?
A295: B19A	JR	NC,&hA27C	  dann Schleife ->
A297: B7B8	JR	&hA260		 sonst zum Normalisieren ->
-------------------------------------->	BASIC-FUNKTION FIX
A299: C273EA	LD8	$19,$10		 NUM2=NUM1
A29C: 027B12	LD	$27,$18		 |
A29F: C96ACA	SBB7	$10,$10		 Mantisse1=0
A2A2: 411205	SBC	$18,5		 Exponent negativ?
A2A5: B04F	JR	Z,&hA2F5	  dann ->
A2A7: 0012	ADC	$18,#0		  |
A2A9: B04B	JR	Z,&hA2F5	  |
A2AB: 411112	SBC	$17,&h12	 Exponent>12?
A2AE: B14A	JR	NC,&hA2F9	  dann Nachkommateil=0 ->
A2B0: 421C12	LD	$28,&h12
A2B3: 0B7C11	SBB	$28,$17
A2B6: C26AD3	LD7	$10,$19
A2B9: DA10C0	DID7	$16
A2BC: 0B3C	SBB	$28,#1
A2BE: B486	JR	NZ,&hA2B9
A2C0: 421112	LD	$17,&h12
A2C3: DA33C0	DIU7	$19
A2C6: 0B3A	SBB	$26,#1
A2C8: B186	JR	NC,&hA2C3
A2CA: 4C190F	AN	$25,&h0F
A2CD: 093B	SB	$27,#1
A2CF: 027C0A	LD	$28,$10
A2D2: 261B	PHS	$27
A2D4: 778D08	CAL	&h088D		 NUM1 normalisieren
A2D7: 2E1B	PPS	$27
A2D9: E61660	PHS4	$22
A2DC: 772400	CAL	&h0024		 NUM1 in den Userstack
A2DF: EE1360	PPS4	$19
A2E2: 7723A3	CAL	&hA323		 NUM1=NUM2 setzen
A2E5: 778D08	CAL	&h088D		 NUM1 normalisieren
A2E8: C273EA	LD8	$19,$10		 NUM2=NUM1 setzen
A2EB: 027B12	LD	$27,$18		 |
A2EE: 772C00	CAL	&h002C		 NUM1 in den Userstack
A2F1: C673D3	ORC7	$19,$19		 Nachkommateil=0? dann Z=1
A2F4: F7	RTN			 zurck
A2F5: 89F11187	SBWJ	$17,$17,&hA2F1
A2F9: 021C	LD	$28,#0
A2FB: B404	JR	NZ,&hA300
A2FD: 027C13	LD	$28,$19
A300: 7723A3	CAL	&hA323		 NUM1=NUM2 setzen
A303: C973F3	SBB8	$19,$19		 NUM2=0 setzen
A306: 029B97	LDJ	$27,#0,&hA2F1	  und ->
~Seite 71
-------------------------------------->	NUM2=FRAC(NUM1); NUM1 BEIBEHALTEN
A309: 772400	CAL	&h0024		 NUM1 in den Userstack
A30C: 7799A2	CAL	&hA299		 NUM1=FIX(NUM1)
A30F: 372C00	JP	&h002C		 NUM1 aus dem Userstack holen ->
-------------------------------------->	BASIC-FUNKTION INT
A312: 7799A2	CAL	&hA299		 NUM1=FIX(NUM1)
A315: F0	RTN	Z		 Nachkommateil=0? dann zurck
A316: 411B05	SBC	$27,5		 NUM2 positiv?
A319: F5	RTN	C		  dann zurck
A31A: 77D908	CAL	&h08D9		 NUM0=1
A31D: 374408	JP	&h0844		 NUM1=NUM1-NUM0 und zurck ->
-------------------------------------->	BASIC-FUNKTION FRAC
A320: 7799A2	CAL	&hA299		 NUM1=FIX(NUM1)
A323: C26AF3	LD8	$10,$19		 NUM1=NUM2 setzen
A326: 02721B	LD	$18,$27		 |
A329: F7	RTN			 zurck
-------------------------------------->	BASIC-FUNKTION SGN
A32A: 0010	ADC	$16,#0		 NUM1=0?
A32C: F0	RTN	Z		  dann zurck
A32D: 77A59B	CAL	&h9BA5		 NUM1=1 setzen
A330: 411205	SBC	$18,5		 positiv?
A333: 0232	LD	$18,#1		 NUM1=1 setzen
A335: F5	RTN	C		  dann zurck
A336: 421206	LD	$18,6		 sonst NUM1=-1 setzen
A339: F7	RTN			 zurck
-------------------------------------->	BASIC-FUNKTION ASC
A33A: 77019A	CAL	&h9A01		 Stringausdruck in Klammern holen
A33D: 0011	ADC	$17,#0		 Lnge=0?
A33F: 30A608	JP	Z,&h08A6	 dann NUM1=0 und zurck
A342: 96CF05	PREJ	IZ,$15,&hA349	 IZ Zeiger auf erstes Zeichen und ->
-------------------------------------->	BASIC-FUNKTION ERR
A345: D6402569	PRE	IZ,&h6925	 IZ Zeiger auf Fehlernummernspeicher
A349: 2D0F	LDD	$15,(IZ+#0)	 Fehlernummer holen
A34B: 0210	LD	$16,#0		 High-Byte=0 setzen
A34D: 37F49A	JP	&h9AF4 [CNVR]	 Wort-Wert in FLP-Zahl umwandeln ->
-------------------------------------->	BASIC-FUNKTION ERL
A350: D6402169	PRE	IZ,&h6921	 IZ Zeiger auf Fehlerzeilenspeicher
A354: A903	LDW	$3,(IZ+#0)	 Fehlerzeile holen
A356: 0202	LD	$2,#0		 keine negativen Zahlen erzeugen
A358: 37019B	JP	&h9B01		 Wort-Wert in FLP-Zahl wandeln ->
-------------------------------------->	BASIC-FUNKTION LEN
A35B: 77019A	CAL	&h9A01		 Stringausdruck in Klammern holen
A35E: 02EF1196	LDJ	$15,$17,&hA34B	 Lnge des Strings kopieren und ->
-------------------------------------->	BASIC-FUNKTION PEEK
A362: 77A698	CAL	&h98A6 [BINM2]	 FLP-Zahl in Wort-Wert wandeln
A365: 96CF9E	PREJ	IZ,$15,&hA349	 IZ Zeiger auf Speicherzelle und ->
-------------------------------------->	BASIC-FUNKTIUN POINT
A368: 7781A3	CAL	&hA381		 Koordinaten lesen
A36B: 826C0E	LDW	$12,$14		 Koordinaten in richtige Register
A36E: 77A0A3	CAL	&hA3A0		 Grafikposition berechnen, Inhalt holen
A371: 020F	LD	$15,#0		 Ergebnis 0 setzen
A373: 0822	AD	$2,#1		 Bits heraufzhlen
A375: B004	JR	Z,&hA37A	 schon richtig? dann ->
A377: 18C086	BIDJ	$0,&hA373	 sonst Byte herunterschieben und ->
A37A: 1840	BID	$0		 unteres Bit testen
A37C: B1B2	JR	NC,&hA34B	 nicht gesetzt? dann ->
~Seite 72
A37E: 02AFB5	LDJ	$15,#1,&hA34B	 sonst Ergebnis 1 setzen und ->
-------------------------------------->	GRAFIKKOORDINATEN AUS TEXT LESEN
A381: 775201	CAL	&h0152		 offene Klammer im Text berlesen
A384: 77AE98	CAL	&h98AE		 Bytewert lesen
A387: 410FC0	SBC	$15,192		 >=192?
A38A: 31F8AB	JP	NC,&hABF8	  dann BS Error
A38D: 260F	PHS	$15		 X-Koordinate zwischenspeichern
A38F: 774C01	CAL	&h014C		 Komma im Text berlesen
A392: 77AE98	CAL	&h98AE		 Bytewert lesen
A395: 410F40	SBC	$15,64		 >=64?
A398: 31F8AB	JP	NC,&hABF8	  dann BS Error
A39B: 2E0E	PPS	$14		 X-Koordinate wieder holen
A39D: 375001	JP	&h0150		 geschlossene Klammer im Text berlesen
-------------------------------------->	GRAFIKPOSITION BERECHNEN & INHALT HOLEN
A3A0: 82600C	LDW	$0,$12		 Koordinaten nach $0/1 kopieren
A3A3: 9A61	BYUW	$1		 $2=Y-Koordinate
A3A5: D1030162	LDW	$3,&h6201	 $3/4 Beginn des Grafikspeichers
A3A9: 8843	ADW	$3,#2		 X-Koordinate addieren
A3AB: D100C000	LDW	$0,192		 $0/1 Lnge einer Grafikzeile
A3AF: 490208	SB	$2,8		 Y-Koordinate um ein Byte verringern
A3B2: B504	JR	C,&hA3B7	 Unterlauf? dann ->
A3B4: 88C387	ADWJ	$3,#2,&hA3AF	 sonst Grafikzeile addieren, Schleife ->
A3B7: 9643	PRE	IZ,$3		 IZ Zeiger auf Grafikpunkt
A3B9: 2D00	LDD	$0,(IZ+#0)	 Inhalt holen
A3BB: F7	RTN			 zurck
-------------------------------------->	BASIC-FUNKTION ABS
A3BC: 411205	SBC	$18,5		 NUM1 schon positiv?
A3BF: F5	RTN	C		  dann zurck
A3C0: 491205	SB	$18,5		 sonst NUM1=-NUM1
A3C3: F7	RTN			 zurck
-------------------------------------->	BASIC-FUNKTION VAL
A3C4: 77019A	CAL	&h9A01		 Stringausdruck in Klammern lesen
A3C7: 77819D	CAL	&h9D81		 NUL im Zeichenop.stapel anfgen
A3CA: 9E00	GRE	IX,$0		 Textzeiger ablegen
A3CC: A601	PHSW	$1		  und zwischenspeichern
A3CE: 960F	PRE	IX,$15		 IX Zeiger auf String
A3D0: 77AC9D	CAL	&h9DAC		 Zahl einlesen und in NUM1 bereitstellen
--  --  --  --  --  --  --  --  --  -->	TEXTZEIGER WIEDER HOLEN UND SETZEN
A3D3: AE00	PPSW	$0		 Textzeiger wieder holen
A3D5: 9600	PRE	IX,$0		  und setzen
A3D7: F7	RTN			 zurck
-------------------------------------->	BASIC-FUNKTION ROUND
A3D8: 775201	CAL	&h0152		 offene Klammer im Text berlesen
A3DB: 778999	CAL	&h9989 [EXPRW]	 arithmetischen Ausdruck holen
A3DE: 772400	CAL	&h0024		 NUM1 in den Userstack
A3E1: 774C01	CAL	&h014C		 Komma im Text berlesen
A3E4: 77A398	CAL	&h98A3		 Wort-Wert aus Text lesen
A3E7: 775001	CAL	&h0150		 geschlossene Klammer im Text berlesen
A3EA: 260F	PHS	$15		 Wert speichern
A3EC: 0010	ADC	$16,#0		 High-Byte=0?
A3EE: B008	JR	Z,&hA3F7	  dann ->
A3F0: 0830	AD	$16,#1		 High-Byte<&hFF?
A3F2: 34FCAB	JP	NZ,&hABFC	  dann FC Error
A3F5: 1B0F	CMP	$15		 sonst Zweierkomplement bilden
A3F7: 410F64	SBC	$15,100		 Wert>=100?
A3FA: 31FCAB	JP	NC,&hABFC	  dann FC Error
~Seite 73
A3FD: 772C00	CAL	&h002C		 NUM1 aus dem Userstack holen
A400: 2E07	PPS	$7		 Wert wieder holen
A402: A612	PHSW	$18		 Exponent und Vorzeichen speichern
A404: 773F9A	CAL	&h9A3F [NISIN]	 BCD-Zahl in $17 nach binr wandeln
A407: 0132	SBC	$18,#1		 Exponent positiv?
A409: B02D	JR	Z,&hA437	  dann ->
A40B: 411206	SBC	$18,6		  |
A40E: B028	JR	Z,&hA437	  |
A410: 027311	LD	$19,$17		 $17=100-($17)
A413: 421164	LD	$17,100		 |
A416: 097113	SB	$17,$19		 |
A419: 1B11	CMP	$17		 $17 zweierkomplementieren
A41B: 097107	SB	$17,$7		 geforderten Exponenten abziehen
A41E: 1867	BIU	$7		 geforderter Exponent positiv?
A420: B111	JR	NC,&hA432	  dann ->
A422: 441180	ANC	$17,&h80	 Exponent1 negativ?
A425: B40C	JR	NZ,&hA432	  dann ->
A427: 026711	LD	$7,$17		 Exponent zwischenspeichern
A42A: AE11	PPSW	$17		 alten Exponent und Vorzeichen holen
A42C: 420005	LD	$0,5
A42F: 37129E	JP	&h9E12		  und zurck
A432: AE11	PPSW	$17		 alten Exponent und Vorzeichen holen
A434: 37A608	JP	&h08A6		 NUM1=0 setzen und zurck
A437: 097107	SB	$17,$7		 geforderten Exponenten abziehen
A43A: 1867	BIU	$7		 geforderter Exponent positiv?
A43C: B19B	JR	NC,&hA422	  dann ->
A43E: 441180	ANC	$17,&h80	 Exponent1 positiv?
A441: B0A0	JR	Z,&hA422	  dann ->
A443: AE11	PPSW	$17		 sonst Exponent und Vorzeichen wieder
A445: F7	RTN			  holen und zurck
-------------------------------------->	BASIC-FUNKTION MID$
A446: 775201	CAL	&h0152		 offene Klammer im Text berlesen
A449: 77EB9C	CAL	&h9CEB		 Stringausdruck lesen
A44C: A610	PHSW	$16		 Stringanfang zwischenspeichern
A44E: 2611	PHS	$17		 Stringlnge zwischenspeichern
A450: 774C01	CAL	&h014C		 Komma im Text berlesen
A453: 778999	CAL	&h9989 [EXPRW]	 arithm. Ausdruck aus Text lesen
A456: 77B998	CAL	&h98B9 [BIN11]	 und in Byte-Wert 1-255 wandeln
A459: 773A01	CAL	&h013A		 ein Komma im Text? dann berlesen
A45C: B426	JR	NZ,&hA483	 kein Komma gewesen? dann ->
A45E: 260F	PHS	$15		 sonst Beginn speichern
A460: 77AE98	CAL	&h98AE [BIN01]	 Byte-Wert lesen
A463: 9A6F	BYUW	$15		 $16=Lnge des Abschnitts
A465: 2E0F	PPS	$15		 Beginn wieder holen
A467: 775001	CAL	&h0150		 geschlossene Klammer im Text berlesen
A46A: 2E11	PPS	$17		 Stringlnge wieder holen
A46C: 09710F	SB	$17,$15		 geforderten Beginn abziehen
A46F: B519	JR	C,&hA489	 <0? dann ->
A471: 0831	AD	$17,#1		 sonst 1 addieren
A473: 017110	SBC	$17,$16		 und mit geforderter Lnge vergleichen
A476: B503	JR	C,&hA47A	 String zu kurz? dann ->
A478: 9A70	BYUW	$16		 Stringlnge=geforderte Lnge
A47A: 092F	SB	$15,#1		 Beginn dekrementieren
A47C: 0210	LD	$16,#0		 High-Byte nullsetzen
A47E: AE00	PPSW	$0		 Stringanfang wieder holen
A480: 884F	ADW	$15,#2		 und um Beginn erhhen
~Seite 74
A482: F7	RTN			 zurck
A483: 2E10	PPS	$16		 gesamte Stringlnge holen
A485: 2610	PHS	$16		 und wieder speichern
A487: B7A1	JR	&hA467		 ->
A489: 0211	LD	$17,#0		 Stringlnge=0
A48B: AE0F	PPSW	$15		 Stringanfang wieder holen
A48D: F7	RTN			 zurck
-------------------------------------->	BASIC-FUNKTIONEN LEFT$/RIGHT$
A48E: 2600	PHS	$0		 Funktionskennzeichen speichern
A490: 775201	CAL	&h0152		 offene Klammer im Text berlesen
A493: 77EB9C	CAL	&h9CEB		 Stringausdruck lesen
A496: E61140	PHS3	$17		 Stringdeskriptor speichern
A499: 774C01	CAL	&h014C		 Komma im Text berlesen
A49C: 77AE98	CAL	&h98AE		 Byte-Wert aus Text lesen
A49F: 775001	CAL	&h0150		 geschlossene Klammer berlesen
A4A2: 026D0F	LD	$13,$15		 Byte nach $13 bringen
A4A5: EE0F40	PPS3	$15		 Stringdeskriptor wieder holen
A4A8: 2E00	PPS	$0		 Funktionskennzeichen holen
A4AA: 01710D	SBC	$17,$13		 String zu kurz?
A4AD: F5	RTN	C		  dann zurck
A4AE: 41000E	SBC	$0,14		 ist es LEFT$?
A4B1: B009	JR	Z,&hA4BB	  dann ->
A4B3: 09710D	SB	$17,$13		 $17/18 enthlt Offset
A4B6: 0212	LD	$18,#0		  auf neuen Stringanfang
A4B8: 886F11	ADW	$15,$17		 zu altem addieren
A4BB: 02710D	LD	$17,$13		 geforderte Lnge setzen
A4BE: F7	RTN			 zurck
-------------------------------------->	BASIC-FUNKTION CHR$
A4BF: 77B198	CAL	&h98B1 [BIN01]	 NUM1 in Byte-Wert wandeln
A4C2: 777EE4	CAL	&hE47E		 IZ Zeiger auf WORK
A4C5: 250F	STD	$15,(IZ+#0)	 Zeichenwert dort speichern
A4C7: 02B123	LDJ	$17,#1,&hA4EC	 Stringlnge auf 1 setzen und ->
-------------------------------------->	BASIC-FUNKTION HEX$
A4CA: 77A698	CAL	&h98A6 [BINM2]	 Wort-Wert lesen
A4CD: 421204	LD	$18,4		 Zhler auf 4 Hexziffern setzen
A4D0: 777EE4	CAL	&hE47E		 IZ Zeiger auf WORK
A4D3: 0211	LD	$17,#0		 Hexziffernspeicher lschen
A4D5: DA2F40	DIU3	$15		 Hexziffer in Register $17 schieben
A4D8: 481130	AD	$17,"0"		 in ASCII-Ziffer wandeln
A4DB: 41113A	SBC	$17,"0"+10	 Hexziffer<10?
A4DE: B504	JR	C,&hA4E3	  dann ->
A4E0: 481107	AD	$17,"A"-"0"-10	 sonst auf Buchstabe korrigieren
A4E3: 2311	STI	$17,(IZ+#0)	 in den Puffer speichern
A4E5: 0932	SB	$18,#1		 noch eine Ziffer erzeugen?
A4E7: B495	JR	NZ,&hA4D3	  dann Schleife ->
A4E9: 421104	LD	$17,4		 Strinlnge auf 4 setzen
A4EC: D10FF468	LDW	$15,&h68F4	 Stringanfang auf WORK setzen
A4F0: F7	RTN			 zurck
-------------------------------------->	MANTISSENVORZEICHEN IN PUFFER BRINGEN
A4F1: 411305	SBC	$19,5		 Vorzeichen negativ?
A4F4: B110	JR	NC,&hA505	  dann ->
A4F6: 421520	LD	$21," "		 sonst Leerzeichen
A4F9: 2315	STI	$21,(IZ+#0)	  in den Puffer bringen
A4FB: F7	RTN			 zurck
~Seite 75
--  --  --  --  --  --  --  --  --  -->	EXPONENTVORZEICHEN IN PUFFER BRINGEN
A4FC: 411305	SBC	$19,5		 Vorzeichen negativ?
A4FF: B105	JR	NC,&hA505	  dann ->
A501: 42952B8B	LDJ	$21,"+",&hA4F9	 ein "+" in den Puffer ->
A505: 42952D8F	LDJ	$21,"-",&hA4F9	 ein "-" in den Puffer ->
--  --  --  --  --  --  --  --  --  -->	ZIFFER IN DEN PUFFER BRINGEN
A509: 4C100F	AN	$16,&h0F	 Ziffer filtern
A50C: 481030	AD	$16,"0"		 und in ASCII-Ziffer wandeln
A50F: 2310	STI	$16,(IZ+#0)	 Zeichen in den Puffer bringen
A511: DA2AC0	DIU7	$10		 neues Zeichen in Ausgaberegister
A514: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	EXPONENT IN DEN PUFFER BRINGEN
A515: 421545	LD	$21,"E"		 Zeichen "E" holen
A518: 2315	STI	$21,(IZ+#0)	  und im Puffer speichern
A51A: 027312	LD	$19,$18		 Vorzeichen sichern
A51D: 8131	SBCW	$17,#1		 Exponent<>-0?
A51F: B503	JR	C,&hA523	  dann ->
A521: 0933	SB	$19,#1		 sonst Exponent=+0
A523: 77FCA4	CAL	&hA4FC		 Exponentvorzeichen in den Puffer
A526: 0012	ADC	$18,#0		 Exponent positiv?
A528: B409	JR	NZ,&hA532	  dann ->
A52A: 0213	LD	$19,#0		 sonst $17=&h100-($17)
A52C: 0B7311	SBB	$19,$17		 |
A52F: 027113	LD	$17,$19		 |
A532: 027211	LD	$18,$17		 zum Ausgeben Exponent kopieren
A535: 1A11	DID	$17		 obere Ziffer nach unten schieben
A537: 481130	AD	$17,"0"		 erstes Zeichen in ASCII wandeln
A53A: 4C120F	AN	$18,&h0F	 untere Ziffer filtern
A53D: 481230	AD	$18,"0"		 zweites Zeichen in ASCII wandeln
A540: A311	STIW	$17,(IZ+#0)	 beide Zeichen in den Puffer bringen
A542: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --
A543: 020A	LD	$10,#0		 letzte beide Stellen=00
A545: CA0BA5	ADB6	$11,5		 nach Runden in drittletzter Stelle
A548: 4C0BF0	AN	$11,&hF0	  diese auf Null setzen
A54B: 378D08	JP	&h088D		 NUM1 normalisieren
--  --  --  --  --  --  --  --  --  -->	EINSPRUNG AUS ENG-ROUTINE
A54E: 777EE4	CAL	&hE47E		 IZ Zeiger auf WORK
A551: 42968009	LDJ	$22,128,&hA55D	 Exponent mitausgeben ->
--  --  --  --  --  --  --  --  --  -->	BASIC-FUNKTION STR$
A555: 777EE4	CAL	&hE47E		 IZ Zeiger auf WORK
A558: 0216	LD	$22,#0		 erstmal keinen Exponent ausgeben
A55A: 027312	LD	$19,$18		 Vorzeichen in $19 kopieren
A55D: 77BCA3	CAL	&hA3BC		 NUM1=ABS(NUM1)
A560: 7743A5	CAL	&hA543		 auf auszugebende Stellen begrenzen
A563: 0010	ADC	$16,#0		 NUM1=0?
A565: B012	JR	Z,&hA578	  dann ->
A567: 42140A	LD	$20,10		 Zahl der Stellen festlegen
A56A: C260AB	LD6	$0,$11		 Mantisse kopieren
A56D: 4C00F0	AN	$0,&hF0		 unterste Ausgabestelle>0?
A570: B411	JR	NZ,&hA582	  dann ->
A572: DA05A0	DID6	$5		 sonst Mantisse herunterschieben
A575: 09B48A	SBJ	$20,#1,&hA56D	 Zahl der Stellen verringern und ->
A578: 0214	LD	$20,#0		 Zahl der Stellen auf Null
A57A: 0116	SBC	$22,#0		 kein Exponent auszugeben?
A57C: B005	JR	Z,&hA582	  dann ->
~Seite 76
A57E: 0217	LD	$23,#0		 sonst
A580: 0232	LD	$18,#1		 Exponent negativ setzen
A582: 77F1A4	CAL	&hA4F1		 Vorzeichen der Mantisse in den Puffer
A585: 0116	SBC	$22,#0		 kein Exponent auszugeben?
A587: B01F	JR	Z,&hA5A7	  dann ->
A589: 8B7117	SBBW	$17,$23
A58C: 2611	PHS	$17
A58E: 027117	LD	$17,$23
A591: 4417F0	ANC	$23,&hF0
A594: B020	JR	Z,&hA5B5
A596: 0B7611	SBB	$22,$17
A599: 0936	SB	$22,#1
A59B: 4C110F	AN	$17,&h0F
A59E: 017114	SBC	$17,$20
A5A1: B171	JR	NC,&hA613	 dann Vorkommanull in den Puffer ->
A5A3: 02F4116D	LDJ	$20,$17,&hA613	   und Vorkommanull in den Puffer
A5A7: 2611	PHS	$17
A5A9: 0012	ADC	$18,#0
A5AB: B04B	JR	Z,&hA5F7
A5AD: 773F9A	CAL	&h9A3F [NISIN]	 BCD-Zahl in $17 nach binr wandeln
A5B0: 41110A	SBC	$17,10
A5B3: B13D	JR	NC,&hA5F1
A5B5: 7709A5	CAL	&hA509		 Ziffer in den Puffer ausgeben
A5B8: 0934	SB	$20,#1		 Zahl der Stellen verringern
A5BA: 0931	SB	$17,#1		 noch eine Stelle ausgeben?
A5BC: B188	JR	NC,&hA5B5	  dann Schleife ->
A5BE: 441480	ANC	$20,&h80
A5C1: B41C	JR	NZ,&hA5DE
A5C3: 0014	ADC	$20,#0
A5C5: B018	JR	Z,&hA5DE
A5C7: 42152E	LD	$21,"."		 Punkt holen
A5CA: 2315	STI	$21,(IZ+#0)	  und im Puffer ablegen
A5CC: 44167F	ANC	$22,&h7F	 keine Nachkommanull auszugeben?
A5CF: B007	JR	Z,&hA5D7	  dann ->
A5D1: 421530	LD	$21,"0"		 Null holen
A5D4: 09B68C	SBJ	$22,#1,&hA5CA	  Zhler herabsetzen und ->
A5D7: 7709A5	CAL	&hA509		 Ziffer in den Puffer ausgeben
A5DA: 0934	SB	$20,#1		 noch eine Stelle?
A5DC: B486	JR	NZ,&hA5D7	  dann Schleife ->
A5DE: 2E11	PPS	$17
A5E0: 1876	BIU	$22		 kein Exponent auszugeben?
A5E2: B104	JR	NC,&hA5E7	  dann ->
A5E4: 7715A5	CAL	&hA515		 sonst Exponent mit ausgeben
--  --  --  --  --  --  --  --  --  -->	STRINGDESKRIPTOR FR WORK ERSTELLEN
A5E7: D10FF468	LDW	$15,&h68F4	 Stringanfang festlegen
A5EB: 9E51	GRE	IZ,$17		 Stringende ablegen
A5ED: 89710F	SBW	$17,$15		 $17/18 enthlt Stringlnge
A5F0: F7	RTN			  zurck
--  --  --  --  --  --  --  --  --  --
A5F1: 0211	LD	$17,#0
A5F3: 429680C1	LDJ	$22,&h80,&hA5B5	 Exponent mitausgeben ->
~Seite 77
--  --  --  --  --  --  --  --  --  --
A5F7: 0213	LD	$19,#0
A5F9: 0B7311	SBB	$19,$17
A5FC: 027113	LD	$17,$19
A5FF: 773F9A	CAL	&h9A3F [NISIN]	 BCD-Zahl in $17 in binre Zahl wandeln
A602: 0011	ADC	$17,#0
A604: B00E	JR	Z,&hA613
A606: 0931	SB	$17,#1
A608: 027611	LD	$22,$17
A60B: 087114	AD	$17,$20
A60E: 41110B	SBC	$17,11
A611: B1A1	JR	NC,&hA5F1
A613: 421530	LD	$21,"0"		 Null holen
A616: 2315	STI	$21,(IZ+#0)	  und in den Puffer setzen
A618: B7D6	JR	&hA5C3		 und ->
-------------------------------------->	VARIABLENDESKRIPTOR HOLEN UND ABLEGEN
A61A: 7725A6	CAL	&hA625		 Variablendeskriptor holen
A61D: D6401069	PRE	IZ,&h6910	 IZ Zeiger auf Variablendeskr.speicher
A621: E10C80	ST5	$12,(IZ+#0)	 dort speichern
A624: F7	RTN			 zurck
-------------------------------------->	VARIABLENDESKRIPTOR HOLEN
A625: 7752A6	CAL	&hA652		 Variablenname lesen
A628: 31C0AB	JP	NC,&hABC0	 keiner da? dann SN Error
A62B: 020C	LD	$12,#0		 Zahl der Dimensionen auf Null
A62D: 440D80	ANC	$13,&h80	 kein Feld?
A630: F0	RTN	Z		  dann zurck
A631: E61080	PHS5	$16		 Deskriptor speichern
A634: 77CA98	CAL	&h98CA		 Wort-Wert aus Text lesen
A637: D1130200	LDW	$19,&h0002	 prfen, ob noch 2 Bytes im
A63B: 774400	CAL	&h0044		  Userstack frei sind
A63E: A710	PHUW	$16		 Index in den Userstack
A640: 2E0C	PPS	$12		 Zahl der Dimensionen holen,
A642: 082C	AD	$12,#1		  erhhen
A644: 260C	PHS	$12		  und wieder speichern
A646: 773A01	CAL	&h013A		 ein Komma im Text? dann berlesen
A649: B096	JR	Z,&hA634	 und Schleife ->
A64B: 775001	CAL	&h0150		 geschlossene Klammer im Text berlesen
A64E: EE0C80	PPS5	$12		 Deskriptor wieder holen
A651: F7	RTN			 zurck
-------------------------------------->	VARIABLENNAME LESEN
A652: 77F900	CAL	&h00F9 [NEXTC]	 Zeichen aus Text lesen
A655: 9E0F	GRE	IX,$15		 Textzeiger auf Namenbeginn ablegen
A657: 7779A6	CAL	&hA679		 Lnge des Namens feststellen
A65A: 000E	ADC	$14,#0		 ist sie =0?
A65C: F0	RTN	Z		  dann zurck
A65D: 420D08	LD	$13,8		 Kennzeichen fr Zahl setzen
A660: 410024	SBC	$0,"$"		 ist kein "$" im Text?
A663: B408	JR	NZ,&hA66C	  dann ->
A665: 2C20	LDD	$0,(IX+#1)	 sonst berlesen
A667: 020D	LD	$13,#0		 Kennzeichen fr String setzen
A669: 77F900	CAL	&h00F9 [NEXTC]	 Zeichen aus Text lesen
A66C: 410028	SBC	$0,"("		 ist es keine Klammer auf?
A66F: B406	JR	NZ,&hA676	  dann ->
A671: 2C20	LDD	$0,(IX+#1)	 sonst berlesen
A673: 4E0D80	OR	$13,&h80	 Kennzeichen fr Feld setzen
A676: 013F	SBC	$31,#1		 C=1 setzen
~Seite 78
A678: F7	RTN			 zurck
-------------------------------------->	LNGE DES VARIABLENNAMENS FESTSTELLEN
A679: 020E	LD	$14,#0		 Lnge auf Null setzen
A67B: 771D01	CAL	&h011D [OKAM1]	 Zeichen ein Buchstabe?
A67E: B505	JR	C,&hA684	  dann ->
A680: 771101	CAL	&h0111		 auch kein japanisches Zeichen?
A683: F1	RTN	NC		  dann zurck
A684: 2C20	LDD	$0,(IX+#1)	 nchstes Zeichen aus Text holen
A686: 082E	AD	$14,#1		 Lnge des Namens erhhen
A688: 770A01	CAL	&h010A [OKNM1]	 ist Zeichen eine Ziffer?
A68B: B588	JR	C,&hA684 	  dann Schleife ->
A68D: B793	JR	&hA67B		 sonst Schleife ->
-------------------------------------->	STRINGVARIABLENINHALT HOLEN
A68F: 7752A6	CAL	&hA652		 Variablenname lesen
A692: 31C0AB	JP	NC,&hABC0	 keiner da? dann SN Error
A695: 000D	ADC	$13,#0		 keine Stringvariable?
A697: 3604AC	JP	LNZ,&hAC04	  dann TM Error
--  --  --  --  --  --  --  --  --  -->	VARIABLENINHALT HOLEN
A69A: 77CD92	CAL	&h92CD		 Betriebsmodus lesen
A69D: 410210	SBC	$2,16		 ist es nicht der CALC-Modus?
A6A0: B41E	JR	NZ,&hA6BF	  dann ->
A6A2: 410D08	SBC	$13,8		 keine einfache Zahl?
A6A5: B419	JR	NZ,&hA6BF	  dann ->
A6A7: 7758A7	CAL	&hA758		 Variable im Speicher finden
A6AA: B10A	JR	NC,&hA6B5	 nicht gefunden? dann ->
A6AC: 9653	PRE	IZ,$19		 IZ Zeiger auf Variablendeskriptor
A6AE: 2D00	LDD	$0,(IZ+#0)	 Variablentyp holen
A6B0: 440020	ANC	$0,&h20		 CALC-Flag gesetzt?
A6B3: B40B	JR	NZ,&hA6BF	  dann schon eingegeben ->
A6B5: 020C	LD	$12,#0		 sonst Anzahl der Dimensionen nullsetzen
A6B7: C2736D	LD4	$19,$13		 Variablendeskriptor kopieren
A6BA: 0232	LD	$18,#1		 Kennzeichen setzen
A6BC: 37D2AE	JP	&hAED2		 zur Eingabe der Variable ->
--  --  --  --  --  --  --  --  --  -->	VARIABLE SUCHEN UND INHALT NACH NUM1
A6BF: 772BA6	CAL	&hA62B		 evtl. Indizes einlesen
A6C2: 7758A7	CAL	&hA758		 Variable im Speicher suchen
A6C5: B509	JR	C,&hA6CF	 gefunden? dann ->
A6C7: 000C	ADC	$12,#0		 Feldvariable?
A6C9: 34FCAB	JP	NZ,&hABFC	  dann FC Error
A6CC: 778FA8	CAL	&hA88F		 Variablendeskriptor erzeugen
A6CF: 000C	ADC	$12,#0		 keine Feldvariable?
A6D1: 9655	PRE	IZ,$21		 IZ Zeiger auf Variable
A6D3: B058	JR	Z,&hA72C	  dann ->
A6D5: 2905	LD	$5,(IZ+#0)	 Anzahl der Dimensionen holen
A6D7: 3B0C	SBC	(IZ+#0),$12	 stimmt Anzahl der Dimensionen nicht?
A6D9: 34F8AB	JP	NZ,&hABF8	  dann BS Error
A6DC: 260C	PHS	$12		 Zahl der Dimensionen speichern
A6DE: 896202	SBW	$2,$2		 Offset in Feld lschen
A6E1: 822F	LDW	$15,#1		 Multiplikator auf 1 setzen
A6E3: 1865	BIU	$5		 Zahl der Dimensionen verdoppeln
A6E5: 0825	AD	$5,#1		  und 1 addieren
A6E7: 2D6005	LDD	$0,(IZ+$5)	 IZ erhhen (zum Rckwrtslesen)
A6EA: AF05	PPUW	$5		 Index vom Stack nach WRD0 holen
A6EC: 826705	LDW	$7,$5		 nach $7/8 kopieren
A6EF: A610	PHSW	$16		 WRD1 zwischenspeichern
A6F1: 77E49C	CAL	&h9CE4		 16bit-Multiplikation ausfhren
~Seite 79
A6F4: AE0F	PPSW	$15		 WRD1 wieder holen
A6F6: 8842	ADW	$2,#2		 Offset um Ergebnis erhhen
A6F8: ADA6	LDDW	$6,(IZ-#1)	 maximalen Index holen
A6FA: BB07	SBCW	(IZ+#0),$7	 ist angegebener Index grer?
A6FC: 35F8AB	JP	C,&hABF8	  dann BS Error
A6FF: 092C	SB	$12,#1		 Zhler herabsetzen
A701: B009	JR	Z,&hA70B	 =0? dann ->
A703: 8825	ADW	$5,#1		 sonst Maximalindex erhhen
A705: 77E49C	CAL	&h9CE4		 16bit-Multiplikation ausfhren
A708: 82CFA0	LDWJ	$15,#2,&hA6EA	 Ergebnis bernehmen und Schleife ->
A70B: 2E0C	PPS	$12		 Zahl der Dimensionen wieder holen
A70D: 186C	BIU	$12		  und verdoppeln
A70F: 082C	AD	$12,#1		  und um 1 erhhen
A711: 9655	PRE	IZ,$21		 Zeiger auf Feldstart setzen
A713: 2D600C	LDD	$0,(IZ+$12)	 um Offset fr Feldgre erhhen
A716: 000D	ADC	$13,#0		 eine Stringvariable?
A718: B229	JR	LZ,&hA742	  dann ->
A71A: 4403E0	ANC	$3,%11100000	 Offset grer als 8192 Bytes?
A71D: 34ECAB	JP	NZ,&hABEC	  dann OV Error
A720: 9862	BIUW	$2		 Offset mit 8 multiplizieren
A722: 9862	BIUW	$2		 |
A724: 9862	BIUW	$2		 |
A726: 9E40	GRE	IZ,$0		 Zeiger auf Feld ablegen,
A728: 8842	ADW	$2,#2		 um Offset erhhen
A72A: 9642	PRE	IZ,$2		 und IZ Zeiger auf Feldeintrag
A72C: 9E55	GRE	IZ,$21		 $21/22 Zeiger auf Feldeintrag
A72E: 440D40	ANC	$13,&h40	 FIELD-Flag gesetzt?
A731: B41A	JR	NZ,&hA74C	  dann ->
A733: 000D	ADC	$13,#0		 ein String?
A735: B21D	JR	LZ,&hA753	  dann ->
A737: E90AE0	LD8	$10,(IZ+#0)	 FLP-Zahl aus Eintrag holen
A73A: 0212	LD	$18,#0		 von externen ins interne
A73C: DA3040	DIU3	$16		  Format wandeln
A73F: 1A10	DID	$16		  |
A741: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	IZ ZEIGER AUF STRINGEINTRAG
A742: 8922	SBW	$2,#1		 Offset ist Null?
A744: B599	JR	C,&hA72C	  dann ->
A746: 2B00	LDI	$0,(IZ+#0)	 Stringlnge lesen
A748: 2D41	LDD	$1,(IZ+#2)	 String berlesen
A74A: B789	JR	&hA742		 zur Schleife ->
--  --  --  --  --  --  --  --  --  --	FIELD-STRINGZEIGER HOLEN
A74C: E92E40	LD3	$14,(IZ+#1)	 FIELD-Stringzeiger holen
A74F: 02710E	LD	$17,$14		 Lnge des Felds ins richtige Register
A752: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	STRING LESEN
A753: 2B11	LDI	$17,(IZ+#0)	 Stringlnge holen
A755: 9E4F	GRE	IZ,$15		 Stringbeginn ablegen
A757: F7	RTN			 zurck
-------------------------------------->	VARIABLE IM SPEICHER FINDEN
A758: D6403B69	PRE	IZ,&h693B	 IZ Zeiger auf Var.daten-Untergrenze
A75C: E91360	LD4	$19,(IZ+#0)	 diese und Obergrenze holen
A75F: 9653	PRE	IZ,$19		 IZ Zeiger auf Variablendaten
A761: 817315	SBCW	$19,$21		 schon am Ende des Speichers?
A764: F0	RTN	Z		  dann zurck
A765: AB00	LDIW	$0,(IZ+#0)	 Daten lesen
~Seite 80
A767: 8F600D	XRW	$0,$13		 Variablentyp und Namenlnge prfen
A76A: 4C009F	AN	$0,%10011111	 Flags wegfiltern
A76D: 0641	ORC	$1,#2		 sind Daten nicht gleich?
A76F: B410	JR	NZ,&hA780	  dann ->
A771: 9E45	GRE	IZ,$5		 sonst IZ in STR0 ablegen
A773: 02670E	LD	$7,$14		 Namenlnge in STR0 und
A776: 02710E	LD	$17,$14		  STR1 kopieren
A779: 77D19B	CAL	&h9BD1 [MCP]	 Namen miteinander vergleichen
A77C: 9645	PRE	IZ,$5		 IZ Zeiger auf den Namen
A77E: B008	JR	Z,&hA787	 Namen gleich? dann ->
A780: 29A0	LD	$0,(IZ-#1)	 Namenlnge lesen
A782: AB41	LDIW	$1,(IZ+#2)	  und den Namen berlesen
A784: 9ED3A5	GREJ	IZ,$19,&hA761	 IZ in Registern $19/20 ablegen und ->
A787: 698D02	LD	$13,(IZ-&h02)	 Variablentyp mit Flags lesen
A78A: A9750E	LDW	$21,(IZ+$14)	 Zeiger auf Variable/nfeld lesen
A78D: 013F	SBC	$31,#1		 C=1
A78F: F7	RTN			 zurck
-------------------------------------->	VARIABLE ZUWEISEN
A790: E611E0	PHS8	$17		 NUM1 in Systemstack speichern
A793: 2612	PHS	$18		 |
A795: D6401069	PRE	IZ,&h6910	 IZ Zeiger auf Variablendeskriptor
A799: E90C80	LD5	$12,(IZ+#0)	 diesen holen
A79C: 77C2A6	CAL	&hA6C2		 Variable suchen und Inhalt nach NUM1
A79F: 2E12	PPS	$18		 NUM1 wieder holen
A7A1: EE0AE0	PPS8	$10		 |
A7A4: 9653	PRE	IZ,$19		 IZ Zeiger auf Variablendaten
A7A6: 2D00	LDD	$0,(IZ+#0)	 Variablentyp holen
A7A8: 4C00BF	AN	$0,%10111111	 Bit 6 wegfiltern
A7AB: 4E0020	OR	$0,%00100000	 CALC-Flag setzen
A7AE: 2500	STD	$0,(IZ+#0)	 Variablentyp wieder speichern
A7B0: 9655	PRE	IZ,$21		 IZ Zeiger auf Variable
A7B2: B627	JR	LNZ,&hA7DA	 eine Zahl? dann ->
A7B4: 2D12	LDD	$18,(IZ+#0)	 bisherige Stringlnge holen
A7B6: 2611	PHS	$17		 neue Stringlnge speichern
A7B8: 097112	SB	$17,$18		 Stringlngen gleich?
A7BB: B008	JR	Z,&hA7C4	 dann ->
A7BD: 0212	LD	$18,#0		 High-Byte auf Null setzen
A7BF: B513	JR	C,&hA7D3	 neue Stringlnge kleiner? dann ->
A7C1: 7738A9	CAL	&hA938		 Platz bereitstellen
A7C4: 2E00	PPS	$0		 neue Stringlnge wieder holen
A7C6: 0251	LD	$17,#2		 als Stringlnge setzen
A7C8: 0201	LD	$1,#0		 High-Byte auf Null setzen
A7CA: 9655	PRE	IZ,$21		 IZ Zeiger auf Variable
A7CC: 2311	STI	$17,(IZ+#0)	 Lnge dort speichern
A7CE: 9E42	GRE	IZ,$2		 $2/3 Zeiger auf Platz fr Stringinhalt
A7D0: 378001	JP	&h0180		 String kopieren
A7D3: 1B11	CMP	$17		 Platz, der zuviel ist, berechnen
A7D5: 771EA9	CAL	&hA91E		 Speicher zusammenschieben
A7D8: B795	JR	&hA7C4		 und zum Eintragen ->
A7DA: 1A30	DIU	$16		 internes in externes Format
A7DC: DA1240	DID3	$18		  wandeln
A7DF: E10AE0	ST8	$10,(IZ+#0)	 und FLP-Zahl speichern
A7E2: F7	RTN			 zurck
~Seite 81
-------------------------------------->	PLATZBEDARF FR EINE VARIABLE(NFELD)
								 FESTSTELLEN
A7E3: 440D80	ANC	$13,&h80	 ein Feld?
A7E6: B40A	JR	NZ,&hA7F1	  dann ->
A7E8: 8229	LDW	$9,#1		 Kennzeichen fr String setzen
A7EA: 000D	ADC	$13,#0		 ein String?
A7EC: F2	RTN	LZ		  dann zurck
A7ED: 420908	LD	$9,8		 Kennzeichen fr FLP-Zahl setzen
A7F0: F7	RTN			 zurck
A7F1: E61080	PHS5	$16		 Variablendeskriptor speichern
A7F4: 9E7C	GRE	US,$28		 Konfiguration ablegen
A7F6: 822F	LDW	$15,#1		 Multiplikator auf 1 zurcksetzen
A7F8: AF05	PPUW	$5		 Index von Userstack holen
A7FA: 8825	ADW	$5,#1		 =65535?
A7FC: 30F8AB	JP	Z,&hABF8	  dann BS Error
A7FF: 77E49C	CAL	&h9CE4		 16bit-Multiplikation durchfhren
A802: 824F	LDW	$15,#2		 Ergebnis als Faktor bernehmen
A804: 092C	SB	$12,#1		 Anzahl der Dimensionen verringern
A806: B48F	JR	NZ,&hA7F8	 noch eine? dann Schleife ->
A808: 967C	PRE	US,$28		 Konfiguration wieder setzen
A80A: EE0C80	PPS5	$12		 Variablendeskriptor wieder holen
A80D: 000D	ADC	$13,#0		 ein Stringfeld?
A80F: B20C	JR	LZ,&hA81C	  dann ->
A811: 4401E0	ANC	$1,%11100000	 Offset grer als 8192?
A814: B413	JR	NZ,&hA828	  dann OM Error ->
A816: 9860	BIUW	$0		 Offset mit 8 multiplizieren
A818: 9860	BIUW	$0		 |
A81A: 9860	BIUW	$0		 |
A81C: 02690C	LD	$9,$12		 Anzahl der Dimensionen kopieren,
A81F: 1869	BIU	$9		  verdoppeln
A821: 0829	AD	$9,#1		  und um 1 erhhen
A823: 020A	LD	$10,#0		 High-Byte auf Null setzen
A825: 8849	ADW	$9,#2		 Offset addieren
A827: F1	RTN	NC		 noch <65536? dann zurck
A828: 37BDAB	JP	&hABBD		 OM Error
-------------------------------------->	PLATZ SCHAFFEN UND BEREICH LSCHEN
A82B: 827109	LDW	$17,$9		 Platzbedarf kopieren
A82E: 000D	ADC	$13,#0		 ein String?
A830: B235	JR	LZ,&hA866	  dann ->
A832: D1173969	LDW	$23,&h6939	 $23/24 Zeiger auf Variablen-Untergr.
A836: 917517	LDW	$21,($23)	 diese holen
A839: 779BA9	CAL	&hA99B		 Variablen-Bereich ffnen
A83C: 917517	LDW	$21,($23)	 Untergrenze wieder holen
A83F: E60EE0	PHS8	$14		 Register $7-22 retten
A842: E616E0	PHS8	$22		 |
A845: 000C	ADC	$12,#0		 keine Feldvariable?
A847: B029	JR	Z,&hA871	  dann ->
A849: 7775A8	CAL	&hA875		 sonst Maximalindizes einsetzen
A84C: 0201	LD	$1,#0		 High-Byte lschen
A84E: 826409	LDW	$4,$9		 $4/5 Lnge des Bereichs
A851: 8944	SBW	$4,#2		     =Platzbedarf-2*AnzahlDim-1
A853: 8924	SBW	$4,#1		 |
A855: 826215	LDW	$2,$21		 $2/3 Startadresse
A858: 9E1C	GRE	IX,$28		 IX ablegen
A85A: 776E01	CAL	&h016E [CLRME]	 Speicher lschen
A85D: 961C	PRE	IX,$28		 IX wieder holen
~Seite 82
A85F: EE0FE0	PPS8	$15		 Register $7-22 wieder holen
A862: EE07E0	PPS8	$7		 |
A865: F7	RTN			 zurck
A866: D6403F69	PRE	IZ,&h693F	 IZ Zeiger auf Ende der Strings
A86A: A915	LDW	$21,(IZ+#0)	 dieses holen
A86C: 7738A9	CAL	&hA938		 Stringspeicher ffnen
A86F: B7B1	JR	&hA83F		 und ->
A871: 82E4099F	LDWJ	$4,$9,&hA855	 $4/5 Lnge=Platzbedarf und ->
-------------------------------------->	MAXIMALINDIZES EINSETZEN
A875: 9655	PRE	IZ,$21		 IZ Zeiger auf Variable
A877: 250C	STD	$12,(IZ+#0)	 Zahl der Dimensionen ablegen
A879: 02600C	LD	$0,$12		 Anzahl der Dimensionen holen
A87C: 0241	LD	$1,#2		 auch nach $1 kopieren
A87E: 1860	BIU	$0		 verdoppeln
A880: 2B42	LDI	$2,(IZ+#2)	 IZ Zeiger hinter die Maximalindizes
A882: AF02	PPUW	$2		 Maximalindex holen
A884: A5A3	STDW	$3,(IZ-#1)	  und speichern
A886: 0921	SB	$1,#1		 Zahl der Dimensionen herabsetzen
A888: B487	JR	NZ,&hA882	 noch eine? dann Schleife ->
A88A: 2D41	LDD	$1,(IZ+#2)	 IZ Zeiger hinter die Indizes
A88C: 9E55	GRE	IZ,$21		 IZ ablegen
A88E: F7	RTN			 zurck
-------------------------------------->	VARIABLENDESKRIPTOR ERZEUGEN
A88F: 02670E	LD	$7,$14		 Var.namenlnge kopieren
A892: 0208	LD	$8,#0		 High-Byte auf Null setzen
A894: D1000400	LDW	$0,4		 und 4 addieren
A898: 8847	ADW	$7,#2		 |
A89A: 77E3A7	CAL	&hA7E3		 Platzbedarf berechnen
A89D: 826007	LDW	$0,$7		 reinen Verwaltungsbedarf nach $0/1
A8A0: 000D	ADC	$13,#0		 String-Feld?
A8A2: B207	JR	LZ,&hA8AA	  dann ->
A8A4: 886009	ADW	$0,$9		 sonst FLP-Platzbedarf addieren
A8A7: 35ECAB	JP	C,&hABEC	  dann OV Error
A8AA: 772F9A	CAL	&h9A2F		 auf Platz im Varieblenbereich prfen
A8AD: 772BA8	CAL	&hA82B		 Platz schaffen und Bereich lschen
A8B0: A616	PHSW	$22		 Startadresse zwischenspeichern
A8B2: 827107	LDW	$17,$7		 bentigten Platz mitteilen
A8B5: D1173B69	LDW	$23,&h693B	 $23/24 Zeiger auf Var.daten-Untergr.
A8B9: 917517	LDW	$21,($23)	 diese holen
A8BC: 7790A9	CAL	&hA990		 Variablendaten-Bereich ffnen
A8BF: AE15	PPSW	$21		 Startadresse wieder holen
A8C1: 917317	LDW	$19,($23)	 Untergrenze der Variablendaten holen
A8C4: 9653	PRE	IZ,$19		 IZ Zeiger auf Variablendeskriptor
A8C6: A30D	STIW	$13,(IZ+#0)	 Var.typ und Var.namenlnge speichern
A8C8: 9E42	GRE	IZ,$2		 Zieladresse fr Var.name setzen
A8CA: 02600E	LD	$0,$14		 Variablennamenlnge kopieren
A8CD: 0201	LD	$1,#0		 High-Byte nullsetzen
A8CF: E60EE0	PHS8	$14		 Register $7-14 retten
A8D2: 778001	CAL	&h0180		 Variablenname kopieren
A8D5: EE07E0	PPS8	$7		 Register $7-14 wieder holen
A8D8: 000D	ADC	$13,#0		 ein String?
A8DA: B208	JR	LZ,&hA8E3	  dann ->
A8DC: D1173969	LDW	$23,&h6939	 $22/23 Zeiger auf Variablen-Untergr.
A8E0: 917517	LDW	$21,($23)	 diese holen
A8E3: A315	STIW	$21,(IZ+#0)	 in den Veriablendeskriptor schreiben
A8E5: F7	RTN			 zurck
~Seite 83
-------------------------------------->	FELDSPEICHERBEDARF BERECHNEN
A8E6: 026418	LD	$4,$24		 Anzahl der Dimensionen kopieren
A8E9: 822F	LDW	$15,#1		 Multiplikator auf 1 zurcksetzen
A8EB: AB05	LDIW	$5,(IZ+#0)	 Maximalindex holen
A8ED: 8825	ADW	$5,#1		 eine 1 addieren (fr Feldelement 0)
A8EF: 77E49C	CAL	&h9CE4		 16bit-Multiplikation durchfhren
A8F2: 824F	LDW	$15,#2		 Ergebnis als Faktor setzen
A8F4: 0924	SB	$4,#1		 Dimensionen herabsetzen
A8F6: B48C	JR	NZ,&hA8EB	 noch eine? dann Schleife ->
A8F8: F7	RTN			 zurck
-------------------------------------->	ENDADRESSE DER VARIABLE BERECHNEN
A8F9: 9655	PRE	IZ,$21		 IZ Zeiger auf Variable
A8FB: 2B18	LDI	$24,(IZ+#0)	 Anzahl der Dimensionen holen
A8FD: 77E6A8	CAL	&hA8E6		 Feldspeicherbedarf berechnen
A900: 116213	LD	$2,($19)	 Variablentyp holen
A903: 0002	ADC	$2,#0		 keine Strings?
A905: B60D	JR	LNZ,&hA913	  dann ->
A907: 2B02	LDI	$2,(IZ+#0)	 sonst Lnge des Strings lesen
A909: 2D6202	LDD	$2,(IZ+$2)	 Stringinhalt berlesen
A90C: 8920	SBW	$0,#1		 Offset herabsetzen
A90E: B488	JR	NZ,&hA907	 noch nicht alle? dann Schleife ->
A910: 9E51	GRE	IZ,$17		 $11/12 Zeiger auf Ende der Strings
A912: F7	RTN			 zurck
-------------------------------------->
A913: 9860	BIUW	$0		 $0/1 mit 8 multiplizieren
A915: 9860	BIUW	$0		 |
A917: 9860	BIUW	$0		 |
A919: 9E51	GRE	IZ,$17		 IZ ablegen
A91B: 8851	ADW	$17,#2		 und Offset addieren
A91D: F7	RTN			 zurck
-------------------------------------->	STRING-SPEICHER ZUSAMMENSCHIEBEN
A91E: E61280	PHS5	$18		 Register $6-18 zwischenspeichern
A921: E60DE0	PHS8	$13		 |
A924: 826015	LDW	$0,$21		 $0/1 Zieladresse
A927: 826211	LDW	$2,$17		 $2/3 Quelladresse
A92A: 8842	ADW	$2,#2		 |
A92C: D6403F69	PRE	IZ,&h693F	 IZ Zeiger auf Ende der Strings
A930: A904	LDW	$4,(IZ+#0)	 dieses holen
A932: 896402	SBW	$4,$2		 $4/5 Lnge des Bereichs
A935: 9B9126	CMPWJ	$17,&hA95D	 Anzahl Bytes komplementieren und ->
-------------------------------------->	STRING-SPEICHER FFNEN
A938: E61280	PHS5	$18		 Register $6-18 zwischenspeichern
A93B: E60DE0	PHS8	$13		 |
A93E: 826015	LDW	$0,$21		 Quelladresse nach $0/1 holen
A941: 8242	LDW	$2,#2		 $2/3 Quelladresse
A943: D6403F69	PRE	IZ,&h693F	 IZ Zeiger auf Ende der Strings
A947: A904	LDW	$4,(IZ+#0)	 dieses holen
A949: AB06	LDIW	$6,(IZ+#0)	 dieses nach $6/7 holen
A94B: 886611	ADW	$6,$17		 geforderte Gre addieren
A94E: 35BDAB	JP	C,&hABBD	 ber 64k-Grenze? dann OM Error
A951: BB06	SBCW	(IZ+#0),$6	 ber die festgelegte Obergrenze?
A953: 35BDAB	JP	C,&hABBD	  dann OM Error
A956: 8944	SBW	$4,#2		 $4/5 Lnge des Bereichs
A958: B02A	JR	Z,&hA983	 gleich Null? dann ->
A95A: 886011	ADW	$0,$17		 $0/1 Zieladresse
A95D: 77F3CB	CAL	&hCBF3		 BUPDN ausfhren, IX beibehalten
~Seite 84
A960: D6403B69	PRE	IZ,&h693B	 IZ Zeiger auf Var.daten-Untergrenze
A964: E90060	LD4	$0,(IZ+#0)	 diese und -Obergrenze holen
A967: 9640	PRE	IZ,$0		 IZ Zeiger auf Var.daten-Untergrenze
A969: 8142	SBCW	$2,#2		 Bereich leer?
A96B: B017	JR	Z,&hA983	  dann ->
A96D: AB00	LDIW	$0,(IZ+#0)	 sonst Variablentyp und Namenlnge holen
A96F: 0000	ADC	$0,#0		 ist es eine Zahl?
A971: 2D6001	LDD	$0,(IZ+$1)	 Variablenname berlesen
A974: B609	JR	LNZ,&hA97E	  dann ->
A976: BB15	SBCW	(IZ+#0),$21	 Stringbeginn mit Zieladresse
A978: B00A	JR	Z,&hA983	  vergleichen
A97A: B508	JR	C,&hA983	 kleiner oder gleich? dann ->
A97C: BD11	ADW	(IZ+#0),$17	 sonst Stringbeginn korrigieren
A97E: AB00	LDIW	$0,(IZ+#0)	 Stringbeginn berlesen
A980: 9EC099	GREJ	IZ,$0,&hA969	 IZ ablegen und Schleife ->
A983: D6403F69	PRE	IZ,&h693F	 IZ Zeiger auf Ende der Strings
A987: BD11	ADW	(IZ+#0),$17	 um Lnge des Strings erhhen
A989: EE06E0	PPS8	$6		 Register $6-18 wieder holen
A98C: EE0E80	PPS5	$14		 |
A98F: F7	RTN			 zurck
-------------------------------------->	VARIABLENDATEN-BEREICH FFNEN
A990: 429C040B	LDJ	$28,4,&hA99E	 Kennzeichen setzen und ->
-------------------------------------->	FOR-STAPEL FFNEN
A994: 02BC08	LDJ	$28,#1,&hA99E	 Kennzeichen setzen und ->
-------------------------------------->	GOSUB-STAPEL FFNEN
A997: 429C0204	LDJ	$28,2,&hA99E	 Kennzeichen setzen und ->
-------------------------------------->	VARIABLEN-BEREICH FFNEN
A99B: 421C03	LD	$28,3		 Kennzeichen setzen und ->
A99E: E61280	PHS5	$18		 Register $6-18 retten
A9A1: E60DE0	PHS8	$13		 |
A9A4: 826011	LDW	$0,$17		 erforderliche Gre holen
A9A7: 772F9A	CAL	&h9A2F		 auf Platz in freien Bereich prfen
A9AA: D6403569	PRE	IZ,&h6935	 IZ Zeiger auf Beginn des FOR-Stapels
A9AE: A900	LDW	$0,(IZ+#0)	 $0/1 Zieladresse
A9B0: 8242	LDW	$2,#2		 $2/3 Quelladresse
A9B2: 896011	SBW	$0,$17		 Zieladresse herabsetzen
A9B5: 826415	LDW	$4,$21		 $4/5 Lnge des Bereichs
A9B8: 896402	SBW	$4,$2		 |
A9BB: 77F3CB	CAL	&hCBF3		 BUPDN ausfhren, IX beibehalten
A9BE: 9B11	CMPW	$17		 $17/18 komplementieren
A9C0: 411C04	SBC	$28,&h04	 nicht Variablenspeicher betroffen?
A9C3: B422	JR	NZ,&hA9E6	  dann ->
A9C5: D6403B69	PRE	IZ,&h693B	 IZ Zeiger auf Var.daten-Untergrenze
A9C9: E90060	LD4	$0,(IZ+#0)	 diese und Obergrenze holen
A9CC: 9640	PRE	IZ,$0		 IZ Zeiger auf Var.deskriptoren
A9CE: 8142	SBCW	$2,#2		 schon am Ende der Deskriptoren?
A9D0: B015	JR	Z,&hA9E6	  dann ->
A9D2: AB00	LDIW	$0,(IZ+#0)	 Var.typ und Var.namenlnge holen
A9D4: 0000	ADC	$0,#0		 ein String?
A9D6: 2D6001	LDD	$0,(IZ+$1)	 Variablenname berlesen
A9D9: B207	JR	LZ,&hA9E1	  dann ->
A9DB: BB15	SBCW	(IZ+#0),$21	 Zeiger auf Variable nicht im
A9DD: B108	JR	NC,&hA9E6	  verschobenen Bereich? dann ->
A9DF: BD11	ADW	(IZ+#0),$17	 sonst Adresse korrigieren
A9E1: AB00	LDIW	$0,(IZ+#0)	 Zeiger auf Variable berlesen
A9E3: 9EC097	GREJ	IZ,$0,&hA9CE	 IZ ablegen und Schleife ->
~Seite 85
A9E6: D6403569	PRE	IZ,&h6935	 IZ Zeiger auf Beginn des FOR-Stapels
A9EA: BD11	ADW	(IZ+#0),$17	 Beginn erhhen/herabsetzen
A9EC: AB00	LDIW	$0,(IZ+#0)	 Adresse holen
A9EE: 093C	SB	$28,#1		 Zhler herabsetzen
A9F0: B487	JR	NZ,&hA9EA	 noch eine verndern? dann ->
A9F2: B7EA	JR	&hA989		 und zum Holen der Register ->
-------------------------------------->	FOR-STAPEL ZUSAMMENSCHIEBEN
A9F4: 02BC0E	LDJ	$28,#1,&hAA04	 Kennzeichen setzen und ->
-------------------------------------->	GOSUB-STAPEL ZUSAMMENSCHIEBEN
A9F7: 429C020A	LDJ	$28,2,&hAA04	 Kennzeichen setzen und ->
-------------------------------------->	VARIABLEN-BEREICH ZUSAMMENSCHIEBEN
A9FB: D6403B69	PRE	IZ,&h693B	 IZ Zeiger auf Var.daten-Untergrenze
A9FF: BD11	ADW	(IZ+#0),$17	 um Gre erhhen/herabsetzen
AA01: 421C03	LD	$28,3		 Kennzeichen setzen
AA04: E61280	PHS5	$18		 Register $6-18 retten
AA07: E60DE0	PHS8	$13		 |
AA0A: D6403569	PRE	IZ,&h6935	 IZ Zeiger Beginn des FOR-Stapels
AA0E: A900	LDW	$0,(IZ+#0)	 $0/1 Zieladresse
AA10: 8242	LDW	$2,#2		 $2/3 Quelladresse
AA12: 826415	LDW	$4,$21		 $4/5 Lnge des Bereichs
AA15: 8944	SBW	$4,#2		 |
AA17: 886011	ADW	$0,$17		 Zieladresse um Bereichsgre ndern
AA1A: 77F3CB	CAL	&hCBF3		 BUPDN ausfhren, IX beibehalten
AA1D: 411C03	SBC	$28,3		 Variablendaten betroffen?
AA20: B0DC	JR	Z,&hA9C5	  dann ->
AA22: B7BD	JR	&hA9E6		 sonst
-------------------------------------->	BEFEHL VERARBEITEN
AA24: 77CCAD	CAL	&hADCC		 Zeichenoperationsstapel leeren
AA27: 77EA90	CAL	&h90EA		 1. Zeichen der logischen Zeile holen
AA2A: 778696	CAL	&h9686		 Zeile tokenisieren
AA2D: 7771AB	CAL	&hAB71		 nicht im BASIC-Modus?
AA30: B006	JR	Z,&hAA37	  dann ->
AA32: 000F	ADC	$15,#0		 sonst Zeilennummer am Anfang?
AA34: 34B6B3	JP	NZ,&hB3B6	  dann ->
AA37: D6000060	PRE	IX,&h6000	 IX Zeiger auf Eingabe-Puffer
AA3B: 381F	ADC	(IX+#0),$31	 ist dieser leer?
AA3D: F0	RTN	Z		  dann zurck
AA3E: 77C3AF	CAL	&hAFC3		 Cursor in die nchste Bildschirmzeile
AA41: 77F900	CAL	&h00F9 [NEXTC]	 Zeichen aus Text lesen
AA44: 410004	SBC	$0,4		 Befehls-Token?
AA47: B02A	JR	Z,&hAA72	  dann ->
-------------------------------------->	AUSDRUCK ODER ZUWEISUNG BERECHNEN
AA49: 0137	SBC	$23,#1		 LET-Kennzeichen gesetzt?
AA4B: B037	JR	Z,&hAA83	  dann ->
AA4D: 7771AB	CAL	&hAB71		 im BASIC-Modus?
AA50: B447	JR	NZ,&hAA98	  dann SN Error
AA52: 77E598	CAL	&h98E5 [SIKI]	 Ausdruck lesen und berechnen
AA55: B513	JR	C,&hAA69	 ein Stringausdruck? dann ->
-------------------------------------->	MATH. ERGEBNIS AUSGEBEN
AA57: 77A0AA	CAL	&hAAA0		 sonst als ANS-Zahl speichern
AA5A: 2610	PHS	$16		 Register $16 speichern
AA5C: 421018	LD	$16,24		 gesamte Bildschirmzeile lschen
AA5F: 77D795	CAL	&h95D7		 |
AA62: 2E10	PPS	$16		 Register $16 wieder holen
AA64: 0212	LD	$18,#0		 High-Byte der Lnge nullsetzen
AA66: 376496	JP	&h9664 [PRLB1]	 String ausgeben
~Seite 86
--  --  --  --  --  --  --  --  --  -->	STRINGAUSDRUCK AUSGEBEN
AA69: 777EAA	CAL	&hAA7E		 auf Ende der Zeile prfen
AA6C: 775AAA	CAL	&hAA5A		 String ausgeben
AA6F: 37CE95	JP	&h95CE		 CRLF ausgeben und zurck
--  --  --  --  --  --  --  --  --  -->	BEFEHL AUSFHREN
AA72: 2A20	LDI	$0,(IX+#1)	 Tokenbyte lesen
AA74: 490049	SB	$0,73		  und korrigieren
AA77: D103D0AF	LDW	$3,&hAFD0	 $3/4 Zeiger auf Befehlsadresstabelle
AA7B: 77DB99	CAL	&h99DB		 Befehl ausfhren
AA7E: 381F	ADC	(IX+#0),$31	 nicht Ende der Eingabezeile?
AA80: B417	JR	NZ,&hAA98	  dann SN Error ->
AA82: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	LET-BEFEHL AUSFHREN
AA83: 410006	SBC	$0,6		 kein Stringfunktions-Token?
AA86: B414	JR	NZ,&hAA9B	  dann ->
AA88: 2A22	LDI	$2,(IX+#1)	 sonst Tokenbyte holen
AA8A: 775401	CAL	&h0154		 Gleichheitszeichen in Text berlesen
AA8D: 4902AB	SB	$2,171		  ist es DATE$? ->
AA90: 3014DB	JP	Z,&hDB14	 dann ->
AA93: 0922	SB	$2,#1		  ist es TIME$?
AA95: 3025DB	JP	Z,&hDB25	 dann ->
AA98: 37C0AB	JP	&hABC0		 sonst SN Error
AA9B: 77A9C6	CAL	&hC6A9		 LET-Befehl aufrufen
AA9E: B7A1	JR	&hAA7E		 auf Ende der Eingabezeile prfen ->
--  --  --  --  --  --  --  --  --  --	ERGEBNIS ALS ANS-ZAHL SPEICHERN
AAA0: 777EAA	CAL	&hAA7E		 auf Ende der Eingabezeile prfen
AAA3: 7743A5	CAL	&hA543		 letzte Stellen lschen & normalisieren
AAA6: D640086D	PRE	IZ,&h6D08	 IZ Zeiger auf ANS-Speicher
AAAA: E30BE0	STI8	$11,(IZ+#0)	 Ergebnis dort speichern
AAAD: 0D00	NA	$0,#0		 ENG-Kennzeichen setzen
AAAF: 2500	STD	$0,(IZ+#0)	  und speichern
AAB1: 770B93	CAL	&h930B		 IZ Zeiger auf ENG-Status
AAB4: 251E	STD	$30,(IZ+#0)	 diesen setzen
AAB6: 3755A5	JP	&hA555		 FLP-Zahl in String wandeln
-------------------------------------->	BASIC-BEFEHL BEEP
AAB9: 42029A	LD	$2,154		 folgt das ON-Token?
AABC: 772801	CAL	&h0128		 |
AABF: 0202	LD	$2,#0		 Kennzeichen 0 setzen
AAC1: B00B	JR	Z,&hAACD	  dann ->
AAC3: 4202BF	LD	$2,191		 folgt kein OFF-Token?
AAC6: 772E01	CAL	&h012E		 |
AAC9: B40A	JR	NZ,&hAAD4	  dann ->
AACB: 0222	LD	$2,#1		 sonst Kennzeichen 1 setzen
AACD: D640AC6B	PRE	IZ,&h6BAC	 IZ Zeiger auf Tastenklick-Modus
AAD1: 2502	STD	$2,(IZ+#0)	 Kennzeichen speichern
AAD3: F7	RTN			 zurck
AAD4: 77FF00	CAL	&h00FF		 folgt kein Argument?
AAD7: B50B	JR	C,&hAAE3	  dann tiefen Ton erzeugen ->
AAD9: 77AE98	CAL	&h98AE		 Byte-Wert holen
AADC: 812F	SBCW	$15,#1		 ist er gleich 1?
AADE: B032	JR	Z,&hAB11	  dann ->
AAE0: 31F8AB	JP	NC,&hABF8	 grer als 1? dann BS Error
~Seite 87
--  --  --  --  --  --  --  --  --  -->	TIEFEN TON ERZEUGEN
AAE3: D1020002	LDW	$2,&h0200	 Zeitspanne=200
AAE7: 0204	LD	$4,#0		 mit groer Verzgerung
--  --  --  --  --  --  --  --  --  -->	TON ERZEUGEN
AAE9: 1E21	GST	PD,$1		 Port-Datenregister ablegen
AAEB: 4C013F	AN	$1,%00111111	 Buzzerbits wegfiltern
AAEE: 4E0140	OR	$1,%01000000	 Buzzer einschalten
AAF1: 1621	PST	PD,$1		 Port-Datenregister setzen
AAF3: 4F01C0	XR	$1,%11000000	 Buzzer umschalten
AAF6: 8B22	SBBW	$2,#1		 Zhler herabsetzen
AAF8: B512	JR	C,&hAB0B	 zu Ende? dann ->
AAFA: 0104	SBC	$4,#0		 groe Verzgerung?
AAFC: B005	JR	Z,&hAB02	  dann ->
AAFE: C2E0A090	LD6J	$0,$0,&hAAF1	 kleine Verzgerung und Schleife ->
AB02: 48040D	AD	$4,13		 Zhler erhhen
AB05: B184	JR	NC,&hAB02	 kein berlauf? dann Schleife ->
AB07: 0204	LD	$4,#0		 wieder Kennzeichen setzen
AB09: B799	JR	&hAAF1		 und Schleife ->
AB0B: 4E01C0	OR	$1,%11000000	 Buzzer wieder abschalten
AB0E: 1621	PST	PD,$1		 Port-Datenregister setzen
AB10: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	HOHEN TON ERZEUGEN
AB11: D1031000	LDW	$3,&h10		 Zeitspanne=1000 {besser LD $3,&h10)
AB15: 0202	LD	$2,#0		 |
AB17: 02A4B0	LDJ	$4,#1,&hAAE9	 kleine Verzgerung setzen und ->
-------------------------------------->	EVTL. TASTENKLICK ERZEUGEN
AB1A: D102AC6B	LDW	$2,&h6BAC	 $2/3 Zeiger auf Tastenklick-Modus
AB1E: 116202	LD	$2,($2)		 diesen holen
AB21: 0122	SBC	$2,#1		 abgeschaltet?
AB23: F0	RTN	Z		 dann zurck
AB24: 02A391	LDJ	$3,#1,&hAB15	 sonst Zeitspanne=100 und ->
-------------------------------------->	ZEILENBEREICH AUS DEM TEXT HOLEN
AB27: C96464	SBB4	$4,$4		 Zeilennummernspeicher lschen
AB2A: 9B46	INVW	$6		 Endzeilennummer auf 65535 setzen
AB2C: A612	PHSW	$18		 Register $17/18 speichern
AB2E: 773E01	CAL	&h013E		 ist Zeichen ein "-"?
AB31: B016	JR	Z,&hAB48	  dann ->
AB33: 770A01	CAL	&h010A [OKNM1]	 ist Zeichen keine Ziffer?
AB36: B11D	JR	NC,&hAB54	  dann ->
AB38: 775A98	CAL	&h985A		 Zeilennummer lesen
AB3B: 826411	LDW	$4,$17		 als Startzeilennummer setzen
AB3E: 773E01	CAL	&h013E		 nchstes Zeichen kein "-"?
AB41: B409	JR	NZ,&hAB4B	  dann ->
AB43: 77FF00	CAL	&h00FF		 oder ein Trennzeichen?
AB46: B50D	JR	C,&hAB54	  dann ->
AB48: 775A98	CAL	&h985A		 Zeilennummer lesen
AB4B: 826611	LDW	$6,$17		 als Endzeilennummer setzen
AB4E: 816604	SBCW	$6,$4		 ist Start grer als Ende?
AB51: 35F8AB	JP	C,&hABF8	  dann BS Error
AB54: AE11	PPSW	$17		 Register $17/18 wieder holen
AB56: 370301	JP	&h0103		 auf Ende des Befehls prfen
~Seite 88
-------------------------------------->	BASIC-MODUS ERLAUBEN
AB59: 7771AB	CAL	&hAB71		 in BASIC-Modus?
AB5C: F4	RTN	NZ		  dann zurck
AB5D: B705	JR	&hAB63		 sonst FC Error ->
-------------------------------------->	DIREKTMODUS ERLAUBEN
AB5F: 776CAB	CAL	&hAB6C		 im Direktmodus?
AB62: F0	RTN	Z		  dann zurck
AB63: 37FCAB	JP	&hABFC		 sonst FC Error
-------------------------------------->	PROGRAMMODUS ERLAUBEN
AB66: 776CAB	CAL	&hAB6C		 nicht in Direktmodus?
AB69: F4	RTN	NZ		  dann zurck
AB6A: B788	JR	&hAB63		 sonst FC Error
-------------------------------------->	AUF DIREKTMODUS TESTEN
AB6C: 77AFE6	CAL	&hE6AF		 IZ Zeiger auf Direktmodusflag
AB6F: B704	JR	&hAB74		 dieses holen ->
-------------------------------------->	AUF BASIC-MODUS TESTEN
AB71: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
AB74: 2D00	LDD	$0,(IZ+#0)	 diesen holen
AB76: 0420	ANC	$0,#1		 Z=1 bei CAL-modus (bzw. Programmmodus)
AB78: F7	RTN			 zurck
-------------------------------------->	TEXT DER FEHLERMELDUNGEN
AB79: 3F3F | 4F4D | 534E | 5354		 ?? | OM | SN | ST
AB81: 5443 | 4256 | 4E52 | 5257		 TC | BV | NR | RW
AB89: 4246 | 424E | 4E46 | 4C42		 BF | BN | NF | LB
AB91: 464C | 4F56 | 4D41 | 4444		 FL | OV | MA | DD
AB99: 4253 | 4643 | 554C | 544D		 BS | FC | UL | TM
ABA1: 5245 | 5052 | 4441 | 464F		 RE | PR | DA | FO
ABA9: 4E58 | 4753 | 464D | 4644		 NX | GS | FM | FD
ABB1: 4F50 | 414D | 4652 | 504F		 OP | AM | FR | PO
ABB9: 4446 | 4F52			 DF | OR
-------------------------------------->	AUSBABE VON FEHLERMELDUNGEN
ABBD: 02B27C	LDJ	$18,#1,&hAC3B	 OM (Out of Memory) Error ausgeben ->
ABC0: 42920278	LDJ	$18,2,&hAC3B	 SN (SyNtax) Error ausgeben ->
ABC4: 42920374	LDJ	$18,3,&hAC3B	 ST (STring too long) Error ausgeben ->
ABC8: 42920470	LDJ	$18,4,&hAC3B	 TC (Too Complex) Error ausgeben ->
ABCC: 4292056C	LDJ	$18,5,&hAC3B	 BV (Buffer oVerflow) Error ausgeben ->
ABD0: 42920668	LDJ	$18,6,&hAC3B	 NR (Not Ready) Error ausgeben ->
ABD4: 42920764	LDJ	$18,7,&hAC3B	 RW (Read Write) Error ausgeben ->
ABD8: 42920860	LDJ	$18,8,&hAC3B	 BF (Bad Filename) Error ausgeben ->
ABDC: 4292095C	LDJ	$18,9,&hAC3B	 BN (Bad Number) Error ausgeben ->
ABE0: 42920A58	LDJ	$18,10,&hAC3B	 NF (Not Found) Error ausgeben ->
ABE4: 42920B54	LDJ	$18,11,&hAC3B	 LB (Low Battery) Error ausgeben ->
ABE8: 42920C50	LDJ	$18,12,&hAC3B	 FL (FulL) Error ausgeben ->
ABEC: 42920D4C	LDJ	$18,13,&hAC3B	 OV (OVerflow) Error ausgeben ->
ABF0: 42920E48	LDJ	$18,14,&hAC3B	 MA (MAthematical) Error ausgeben ->
ABF4: 42920F44	LDJ	$18,15,&hAC3B	 DD (Double Dim'ed) Error ausgeben ->
ABF8: 42921040	LDJ	$18,16,&hAC3B	 BS (Bad Subscript) Error ausgeben ->
ABFC: 4292113C	LDJ	$18,17,&hAC3B	 FC (False Command) Error ausgeben ->
AC00: 42921238	LDJ	$18,18,&hAC3B	 UL (Undef'd Line) Error ausgeben ->
AC04: 42921334	LDJ	$18,19,&hAC3B	 TM (Type Mismatch) Error ausgeben ->
AC08: 42921430	LDJ	$18,20,&hAC3B	 RE (REsume) Error ausgeben ->
AC0C: 4292152C	LDJ	$18,21,&hAC3B	 PR (PRotected) Error ausgeben ->
AC10: 42921628	LDJ	$18,22,&hAC3B	 DA (DAta) Error ausgeben ->
AC14: 42921724	LDJ	$18,23,&hAC3B	 FO (FOr) Error ausgeben ->
AC18: 42921820	LDJ	$18,24,&hAC3B	 NX (NeXt) Error ausgeben ->
AC1C: 4292191C	LDJ	$18,25,&hAC3B	 GS (GoSub) Error ausgeben ->
~Seite 89
AC20: 42921A18	LDJ	$18,26,&hAC3B	 FM (ForMat) Error ausgeben ->
AC24: 42921B14	LDJ	$18,27,&hAC3B	 FD (FielD) Error ausgeben ->
AC28: 42921C10	LDJ	$18,28,&hAC3B	 OP (OPen) Error ausgeben ->
AC2C: 42921D0C	LDJ	$18,29,&hAC3B	 AM (Access Mode) Error ausgeben ->
AC30: 42921E08	LDJ	$18,30,&hAC3B	 FR (FRame) Error ausgeben ->
AC34: 42921F04	LDJ	$18,31,&hAC3B	 PO (POrt) Error ausgeben ->
AC38: 421220	LD	$18,32		 DF (Disk Failure) Error ausgeben ->
AC3B: 77C492	CAL	&h92C4		 Betriebsmodus holen, bei 32 schlieen
AC3E: 774992	CAL	&h9249		 Betriebsmodi 128, 64 und 32 lschen
AC41: 77E190	CAL	&h90E1		 Ausgabe auf Display lenken
AC44: D640FF6B	PRE	IZ,&h6BFF	 IZ Zeiger auf RS232C-Fehlerflags
AC48: 251F	STD	$31,(IZ+#0)	 diese lschen
AC4A: D640546F	PRE	IZ,&h6F54	 IZ Zeiger auf File-Header
AC4E: E90CA0	LD6	$12,(IZ+#0)	 diesen mit Zeilennr. und Adresse holen
AC51: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
AC54: 2D03	LDD	$3,(IZ+#0)	 diesen holen
AC56: 440342	ANC	$3,&h42		 im MENU- oder DATA-/BASIC-EDIT-Modus?
AC59: B44D	JR	NZ,&hACA7	  dann ->
AC5B: 776CAB	CAL	&hAB6C		 im Direktmodus?
AC5E: B02A	JR	Z,&hAC89	  dann ->
AC60: D6402169	PRE	IZ,&h6921	 IZ Zeiger in Fehlerverarb.bereich
AC64: E10E80	ST5	$14,(IZ+#0)	 Zeilennr., Adr. und Fehlernr. speichern
AC67: D6401D69	PRE	IZ,&h691D	 IZ Zeiger auf Fehlerverarb.bereich
AC6B: EB04E0	LDI8	$4,(IZ+#0)	 Daten der ERROR-Routine holen
AC6E: 3B3E	SBC	(IZ+#1),$30	 Fehler in der ERROR-Routine?
AC70: B118	JR	NC,&hAC89	  dann ->
AC72: 8126	SBCW	$6,#1		 keine Adresse vorhanden?
AC74: B514	JR	C,&hAC89	  dann ->
AC76: 81640C	SBCW	$4,$12		 nicht in demselben File?
AC79: B40F	JR	NZ,&hAC89	  dann ->
AC7B: 213E	ST	$30,(IZ+#1)	 ERROR-Routine aktiv setzen
AC7D: 773892	CAL	&h9238		 evtl. CALC-Betriebsmodus ndern
AC80: 9606	PRE	IX,$6		 Textzeiger auf ERROR-Routine setzen
AC82: 378AC0	JP	&hC08A		 ERROR-Routine starten ->
--  --  --  --  --  --  --  --  --  -->	OR ERROR AUSGEBEN
AC85: 429221CD	LDJ	$18,33,&hAC3B	 OR (ORigin) Error ausgeben ->
--  --  --  --  --  --  --  --  --  -->	FEHLERAUSGABE
AC89: 566050	PST	UA,&h50		 Standardkonfiguration setzen
AC8C: 77E6AC	CAL	&hACE6		 Fehler ausgeben
AC8F: 7702C8	CAL	&hC802		 ERROR-Routine inaktiv setzen
AC92: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
AC95: 2D00	LDD	$0,(IZ+#0)	 diesen holen
AC97: 410008	SBC	$0,8		 Abfrage-Modus?
AC9A: 30B9AE	JP	Z,&hAEB9	  dann ->
AC9D: 0C20	AN	$0,#1		 nur BASIC-/CAL-Modus zulassen
AC9F: 2500	STD	$0,(IZ+#0)	 Betriebsmodus speichern
ACA1: 77C6AD	CAL	&hADC6		 Direktmodus einschalten
ACA4: 37A390	JP	&h90A3		 in die Eingaberoutine
--  --  --  --  --  --  --  --  --  --	FEHLERAUSGABE IM MENU- ODER EDIT-MODUS
ACA7: 77F78F	CAL	&h8FF7		 Menzeilenspeicher lschen
ACAA: 7708AD	CAL	&hAD08		 Fehlertext holen
ACAD: 0212	LD	$18,#0		 Leerzeichen holen
ACAF: D64033AD	PRE	IZ,&hAD33	 IZ Zeiger auf Text "error"
ACB3: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
ACB5: E91380	LD5	$19,(IZ+#0)	 Text lesen
ACB8: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
~Seite 90
ACBB: 77B995	CAL	&h95B9		 IZ Zeiger auf Menzeilenpuffer
ACBE: E310E0	STI8	$16,(IZ+#0)	 gesamten Fehlertext setzen
ACC1: 772EB9	CAL	&hB92E		 Menzeilenpuffer auf das Display
ACC4: 773F91	CAL	&h913F		 Cursorblinken lschen
ACC7: D7004A6B	PRE	SS,&h6B4A	 Systemstack zurcksetzen
ACCB: D6603E6A	PRE	US,&h6A3E	 Userstack zurcksetzen
ACCF: EF1180	PPU5	$17		 Register $17-29 wieder holen
ACD2: EF16E0	PPU8	$22		 | (wichtig in den Edit-Betriebsmodi)
ACD5: 77B9E8	CAL	&hE8B9		 Zeile ausgeben
ACD8: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
ACDB: 2D03	LDD	$3,(IZ+#0)	 diesen holen
ACDD: 440340	ANC	$3,&h40		 nicht in MENU-Modus?
ACE0: 30C6B7	JP	Z,&hB7C6	  dann ->
ACE3: 371C92	JP	&h921C		 sonst ber ACJMP springen
-------------------------------------->	FEHLER IN ZEILE AUSGEBEN
ACE6: 7726C6	CAL	&hC626		 Cursor in neue Zeile bringen
ACE9: 7708AD	CAL	&hAD08		 Fehlertext holen
ACEC: 77D795	CAL	&h95D7		 Zeichen ausgeben
ACEF: 9A51	BYDW	$17		 zweites Zeichen vorbereiten
ACF1: 77D795	CAL	&h95D7		 Zeichen ausgeben
ACF4: 775204	CAL	&h0452		 Leerzeichen ausgeben
ACF7: 7739AD	CAL	&hAD39		 "error" ausgeben
ACFA: 776CAB	CAL	&hAB6C		 Direktmodus?
ACFD: B007	JR	Z,&hAD05	  dann ->
-------------------------------------->	DATEINAMEN UND ZEILENNUMMER AUSGEBEN
ACFF: 7778AD	CAL	&hAD78		 aktuellen Dateinamen ausgeben
AD02: 775BAD	CAL	&hAD5B		 Bindestrich und Zeilennummer ausgeben
AD05: 37CE95	JP	&h95CE [OUTCR]	 CRLF ausgeben
-------------------------------------->	FEHLERTEXT HOLEN
AD08: 411222	SBC	$18,34		 Fehlernummer<=33?
AD0B: B503	JR	C,&hAD0F	  dann ->
AD0D: 0212	LD	$18,#0		 sonst ?? Error
AD0F: 1872	BIU	$18		 Fehlernummer verdoppeln
AD11: D64079AB	PRE	IZ,&hAB79	 IZ Zeiger auf Fehlertabelle
AD15: 167F	PST	UA,$31		 ROM-Lese-Konfiguration
AD17: A97012	LDW	$16,(IZ+$18)	  Fehlertext holen
AD1A: 566050	PST	UA,&h50		 Standardkonfiguration setzen
AD1D: F7	RTN			 zurck
-------------------------------------->	SYSTEMMELDUNGEN
AD1E: 0652656164790D	 6,"ready",CR
AD25: 06427265616B20	 6,"Break "
AD2C: 0553544F5020	 5,"STOP "
AD32: 066572726F7220	 6,"error "
-------------------------------------->	"ERROR" AUSGEBEN
AD39: D11132AD	LDW	$17,&hAD32	 $17/18 Zeiger auf Text "error "
AD3D: B714	JR	&hAD52		 und ->
-------------------------------------->	"STOP " AUSGEBEN
AD3F: D1112CAD	LDW	$17,&hAD2C	 $17/18 Zeiger auf Text "STOP "
AD43: B70B	JR	&hAD4F		 und ->
-------------------------------------->	"BREAK" AUSGEBEN
AD45: D11125AD	LDW	$17,&hAD25	 $17/18 Zeiger auf Text "Break "
AD49: B705	JR	&hAD4F		 und ->
~Seite 91
-------------------------------------->	"READY" AUSGEBEN
AD4B: D1111EAD	LDW	$17,&hAD1E	 $17/18 Zeiger auf Text "ready"
AD4F: 7726C6	CAL	&hC626		 Cursor in neue Zeile bringen
AD52: 9E17	GRE	IX,$23		 Textzeiger retten
AD54: 9611	PRE	IX,$17		 IX Zeiger auf Text
AD56: 776996	CAL	&h9669 [PRLB2]	 String ausgeben
AD59: B71B	JR	&hAD75		 Textzeiger wieder setzen und zurck
-------------------------------------->	BINDESTRICH UND ZEILENNUMMER AUSGEBEN
AD5B: 42102D	LD	$16,"-"		 Bindestrich holen
AD5E: 77D795	CAL	&h95D7 [OUTAC]	 Zeichen ausgeben
--  --  --  --  --  --  --  --  --  -->	AKTUELLE ZEILENNUMMER AUSGEBEN
AD61: 9E17	GRE	IX,$23		 Textzeiger retten
AD63: D600566F	PRE	IX,&h6F56	 IX Zeiger auf aktuelle Zeilennummer
AD67: 777EE4	CAL	&hE47E		 IZ Zeiger auf WORK
AD6A: 020D	LD	$13,#0		 Anzahl der Zeichen auf 0
AD6C: 77ECB0	CAL	&hB0EC		 Wort-Wert in Klartext ausgeben
AD6F: 77E7A5	CAL	&hA5E7		 Stringdeskriptor fr WORK erstellen
AD72: 776496	CAL	&h9664 [PRLB1]	 String ausgeben
AD75: 9617	PRE	IX,$23		 Textzeiger wieder holen
AD77: F7	RTN			 zurck
-------------------------------------->	AKTUELLEN DATEINAMEN AUSGEBEN
AD78: 9E17	GRE	IX,$23		 Textzeiger ablegen
AD7A: D640546F	PRE	IZ,&h6F54	 IZ Zeiger auf Fileheaderzeiger
AD7E: A90F	LDW	$15,(IZ+#0)	 diesen holen
AD80: 964F	PRE	IZ,$15		 IZ Zeiger auf aktiven Fileheader
AD82: D600F468	PRE	IX,&h68F4	 IX Zeiger auf WORK
AD86: 420006	LD	$0,6		 Offset setzen
AD89: EB40E0	LDI8	$0,(IZ+#2)	 Filename holen
AD8C: E200E0	STI8	$0,(IX+#0)	 und in den Puffer setzen
AD8F: 777298	CAL	&h9872		 Leerzeichen an Ende eliminieren
AD92: 42032E	LD	$3,"."		 Punkt holen
AD95: 2203	STI	$3,(IX+#0)	  und in den Puffer setzen
AD97: E90040	LD3	$0,(IZ+#0)	 Extension holen
AD9A: E20040	STI3	$0,(IX+#0)	  und in den Puffer setzen
AD9D: 777298	CAL	&h9872		 Leerzeichen am Ende eliminieren
ADA0: 3AA3	SBC	(IX-#1),$3	 letztes Zeichen nicht der Punkt?
ADA2: B403	JR	NZ,&hADA6	 dann ->
ADA4: 2CA0	LDD	$0,(IX-#1)	 sonst Punkt lschen
ADA6: 9E00	GRE	IX,$0		 Endadresse ablegen,
ADA8: 96C0BB	PREJ	IZ,$0,&hAD6F	  nach IZ bringen und zur Ausgabe ->
-------------------------------------->	BRK-ROUTINE FR LAUFENDES BASIC-PROGRAMM
ADAB: 77E190	CAL	&h90E1		 Ausgabe auf Display lenken
ADAE: 7745AD	CAL	&hAD45		 "Break " ausgeben
ADB1: 77FFAC	CAL	&hACFF		 Dateinamen und Zeilennummer ausgeben
ADB4: 37A390	JP	&h90A3		 ber ACJMP springen ->
-------------------------------------->	TEMPORRE STAPEL LSCHEN
ADB7: 77D8AD	CAL	&hADD8		 GOSUB-Stapel leeren
ADBA: 77DEAD	CAL	&hADDE		 FOR-Stapel leeren
ADBD: 77CCAD	CAL	&hADCC		 Zeichenoperationsstapel leeren
ADC0: 77C6AD	CAL	&hADC6		 Direktmodus setzen
ADC3: 3793D3	JP	&hD393		 alle Kanle schlieen ->
~Seite 92
-------------------------------------->	DIREKTMODUS SETZEN
ADC6: 77AFE6	CAL	&hE6AF		 IZ Zeiger auf Direktmodusflag
ADC9: 251F	STD	$31,(IZ+#0)	 Direktmodus setzen
ADCB: F7	RTN			 zurck
-------------------------------------->	ZEICHENOPERATIONSSTAPEL LEEREN
ADCC: 77DDDD	CAL	&hDDDD		 Userstack zurcksetzen
ADCF: D6403169	PRE	IZ,&h6931	 IZ Zeiger auf Zeichenop.stapel-Untergr.
ADD3: AB00	LDIW	$0,(IZ+#0)	 diesen holen
ADD5: A100	STW	$0,(IZ+#0)	 und auch als Obergrenze setzen
ADD7: F7	RTN			 zurck
-------------------------------------->	GOSUB-STAPEL LEEREN
ADD8: D6403969	PRE	IZ,&h6939	 IZ Zeiger auf GOSUB-Stapel-Obergrenze
ADDC: B705	JR	&hADE2		 und ->
-------------------------------------->	FOR-STAPEL LEEREN
ADDE: D6403769	PRE	IZ,&h6937	 IZ Zeiger auf FOR-Stapel-Obergrenze
ADE2: A900	LDW	$0,(IZ+#0)	 diese holen
ADE4: A5A1	STDW	$1,(IZ-#1)	 und auch als Untergrenze setzen
ADE6: F7	RTN			 zurck
-------------------------------------->	STRING AUSGEBEN
 (I: $20 Lnge, $21/22 Startadresse)
ADE7: 0934	SB	$20,#1		 Lnge herabsetzen
ADE9: F5	RTN	C		 String schon zuende? dann zurck
ADEA: 117015	LD	$16,($21)	 sonst Zeichen holen
ADED: 77D795	CAL	&h95D7 [OUTAC]	  und ausgeben
ADF0: 88B58B	ADWJ	$21,#1,&hADE7	 Adresse erhhen und Schleife ->
-------------------------------------->	CALC-TASTE VERARBEITEN
ADF3: D7004A6B	PRE	SS,&h6B4A	 Systemstackzeiger zurcksetzen
ADF7: 7717C1	CAL	&hC117		 CALC-Berechnung vorbereiten
ADFA: D6403B69	PRE	IZ,&h693B	 IZ Zeiger auf Var.daten-Untergrenze
ADFE: E90060	LD4	$0,(IZ+#0)	 diese und -Obergrenze holen
AE01: 9640	PRE	IZ,$0		 IZ Zeiger auf Var.deskriptoren
AE03: 8142	SBCW	$2,#2		 schon Ende der Deskriptoren?
AE05: B00E	JR	Z,&hAE14	  dann ->
AE07: A900	LDW	$0,(IZ+#0)	 Variablentyp und Var.namenlnge holen
AE09: 4C009F	AN	$0,%10011111	 Bits 5 und 6 lschen
AE0C: A300	STIW	$0,(IZ+#0)	 und wieder speichern
AE0E: AB6001	LDIW	$0,(IZ+$1)	 Variablenname berlesen
AE11: 9EC090	GREJ	IZ,$0,&hAE03	 IZ ablegen und Schleife ->
AE14: D1029B90	LDW	$2,&h909B	 $2/3 Zeiger auf BRK-Routine
AE18: 77C390	CAL	&h90C3		 BRK-Sprungadresse speichern
AE1B: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
AE1E: 8220	LDW	$0,#1		 Direktmodus setzen
AE20: E11F40	ST3	$31,(IZ+#0)	 CAL-Modus setzen
AE23: D6401A6D	PRE	IZ,&h6D1A	 IZ Zeiger auf CALC-Speicher
AE27: D600406E	PRE	IX,&h6E40	 IX Zeiger auf Rechenspeicher
AE2B: 2B00	LDI	$0,(IZ+#0)	 Zeichen aus CALC-Speicher lesen
AE2D: 0120	SBC	$0,#1		 Endekennzeichen erreicht?
AE2F: B57B	JR	C,&hAEAB	  dann ->
AE31: 77B1AE	CAL	&hAEB1		 ist Zeichen ein ":" oder ein ";"?
AE34: 30C0AB	JP	Z,&hABC0	  dann SN Error
AE37: 2200	STI	$0,(IX+#0)	 Zeichen in den Rechenspeicher setzen
AE39: 2B00	LDI	$0,(IZ+#0)	 neues Zeichen aus CALC-Speicher lesen
AE3B: 77AEAE	CAL	&hAEAE		 nicht Endekennzeichen, ":" oder ";"?
AE3E: B488	JR	NZ,&hAE37	  dann Schleife ->
AE40: 2DA0	LDD	$0,(IZ-#1)	 IZ herabsetzen
AE42: 241F	STD	$31,(IX+#0)	 Endekennz. NUL in Rechenspeicher setzen
~Seite 93
AE44: 9E40	GRE	IZ,$0		 IZ ablegen
AE46: A601	PHSW	$1		  und speichern
AE48: 771F90	CAL	&h901F [INCLR]	 Eingabepuffer lschen
AE4B: D600406E	PRE	IX,&h6E40	 IX Zeiger auf Rechenspeicher
AE4F: 778696	CAL	&h9686		 Zeile tokenisieren
AE52: D100406E	LDW	$0,&h6E40	 $0/1 Zeiger auf Rechenspeicher
AE56: 9600	PRE	IX,$0		 Textzeiger auf Rechenspeicher setzen
AE58: D1020060	LDW	$2,&h6000	 $2/3 Zeiger auf Eingabepuffer
AE5C: D1040001	LDW	$4,&h0100	 $4/5 Lnge des Bereichs
AE60: 77F3CB	CAL	&hCBF3		 Eing.puffer in Rechenspeicher kopieren
AE63: 420010	LD	$0,16		 Kennzeichen fr CALC-Modus holen
AE66: 7777AF	CAL	&hAF77		 Betriebsmodus setzen
AE69: 77F900	CAL	&h00F9 [NEXTC]	 Zeichen aus Text lesen
AE6C: 410004	SBC	$0,4		 ist es ein Befehlstoken?
AE6F: B0BC	JR	Z,&hAE34	  dann SN Error ->
AE71: 7749AA	CAL	&hAA49		 Ausdruck oder Zuweisung berechnen
AE74: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
AE77: 251F	STD	$31,(IZ+#0)	 CAL-Modus setzen
AE79: 770792	CAL	&h9207 [BKCK]	 auf OFF, C.BOOT und BRK prfen
AE7C: 770B93	CAL	&h930B		 IZ Zeiger auf ENG-Status
AE7F: 3B1E	SBC	(IZ+#0),$30	 ist dieser nicht gesetzt?
AE81: B40F	JR	NZ,&hAE91	  dann ->
AE83: 77FA90	CAL	&h90FA		 u.a. Cursorblinken bestimmen
AE86: 77E693	CAL	&h93E6		 vollstndige Eingabe machen lassen
AE89: 77E392	CAL	&h92E3		 Cursorblinken eingeschaltet?
AE8C: B414	JR	NZ,&hAEA1	  dann ->
AE8E: 77ED92	CAL	&h92ED		 sonst CRLF ausgeben, wenn ENG-Status
AE91: AE00	PPSW	$0		 Zeiger auf CALC-Zeilenende holen
AE93: 9640	PRE	IZ,$0		  und IZ setzen
AE95: 2B00	LDI	$0,(IZ+#0)	 Zeichen holen
AE97: 41003A	SBC	$0,":"		 Zeichen<":"?
AE9A: B510	JR	C,&hAEAB	  dann ->
AE9C: 34F7AD	JP	NZ,&hADF7	 Zeichen>":"? dann ->
AE9F: B7F9	JR	&hAE27		 sonst Schleife ->
AEA1: 7724AA	CAL	&hAA24		 Befehl abarbeiten
AEA4: 770B93	CAL	&h930B		 IZ Zeiger auf ENG-Status
AEA7: 3B1E	SBC	(IZ+#0),$30	 ist dieser gesetzt?
AEA9: B0A7	JR	Z,&hAE83	  dann ->
AEAB: 37A390	JP	&h90A3		 in die Eingabewarteschleife ->
-------------------------------------->	AUF ENDEKENNZEICHEN, ":" UND ";" PRFEN
AEAE: 0100	SBC	$0,#0		 Endekennzeichen?
AEB0: F0	RTN	Z		  dann zurck
--  --  --  --  --  --  --  --  --  -->	ZEICHEN AUF ":" UND ";" PRFEN
AEB1: 41003A	SBC	$0,":"		 Zeichen ein ":"?
AEB4: F0	RTN	Z		  dann zurck
AEB5: 41003B	SBC	$0,";"		 Zeichen ein ";"?
AEB8: F7	RTN			  zurck
-------------------------------------->	FEHLER IM ABFRAGE-MODUS AUFGETRETEN
AEB9: D640A36F	PRE	IZ,&h6FA3	 IZ Zeiger auf CALC-Zwischenspeicher
AEBD: EB05E0	LDI8	$5,(IZ+#0)	 alle Parameter holen
AEC0: 9706	PRE	SS,$6		 Systemstackzeiger setzen
AEC2: 410510	SBC	$5,16		 aus dem CALC-Modus heraus?
AEC5: B007	JR	Z,&hAECD	  dann ->
AEC7: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
AECA: 2505	STD	$5,(IZ+#0)	 alten Betriebsmodus setzen
AECC: F7	RTN			 zurck
~Seite 94
AECD: 9668	PRE	US,$8		 Userstackzeiger setzen
AECF: 02B21D	LDJ	$18,#1,&hAEEE	 Kennzeichen wieder setzen und ->
-------------------------------------->	VARIABLE IM ABFRAGE-MODUS EINGEBEN
AED2: D100516F	LDW	$0,&h6F51	 $0/1 Zeiger auf Betriebsmodus
AED6: 1145	LD	$5,(#2)		 diesen holen
AED8: 504008	ST	8,(#2)		 Abfrage-Modus setzen
AEDB: 9F06	GRE	SS,$6		 Systemstackzeiger ablegen
AEDD: 9E68	GRE	US,$8		 Userstackzeiger ablegen
AEDF: 9E0A	GRE	IX,$10		 Textzeiger ablegen
AEE1: D640A36F	PRE	IZ,&h6FA3	 IZ Zeiger auf CALC-Zwischenspeicher
AEE5: E305E0	STI8	$5,(IZ+#0)	 Parameter dort speichern
AEE8: E10D60	ST4	$13,(IZ+#0)	 Variablendeskriptor dort speichern
AEEB: 77E7AD	CAL	&hADE7		 Variablenname ausgeben
AEEE: 42103F	LD	$16,"?"		 Fragezeichen holen
AEF1: 0132	SBC	$18,#1		 Kennzeichen gesetzt?
AEF3: 70D795	CAL	Z,&h95D7	  dann Fragezeichen ausgeben
AEF6: D640C868	PRE	IZ,&h68C8	 IZ Zeiger auf Cursorzeiger
AEFA: 2D00	LDD	$0,(IZ+#0)	 Cursor-Position holen
AEFC: 650004	STD	$0,(IZ+&h04)	 als Beginn der logischen Zeile setzen
AEFF: 77E693	CAL	&h93E6		 Eingabe machen lassen
AF02: 77EA90	CAL	&h90EA		 IX auf erstes Zeichen der log. Zeile
AF05: 897111	SBW	$17,$17		 Stringlnge auf Null setzen
AF08: 9E0F	GRE	IX,$15		 Stringbeginn feststellen
AF0A: 2A00	LDI	$0,(IX+#0)	 Zeichen aus Zeile lesen
AF0C: 0100	SBC	$0,#0		 Endekennzeichen?
AF0E: B004	JR	Z,&hAF13	  dann ->
AF10: 88B188	ADWJ	$17,#1,&hAF0A	 sonst Stringlnge erhhen, Schleife ->
AF13: 960F	PRE	IX,$15		 IX Zeiger auf Stringbeginn
AF15: D640AB6F	PRE	IZ,&h6FAB	 IZ Zeiger in Variablendeskriptor
AF19: 3B1F	SBC	(IZ+#0),$31	 Variable kein String?
AF1B: B608	JR	LNZ,&hAF24	  dann ->
AF1D: 0932	SB	$18,#1		 Zeilenlnge>255?
AF1F: 31C4AB	JP	NC,&hABC4	  dann ST Error
AF22: B72B	JR	&hAF4E		 sonst ->
AF24: 8131	SBCW	$17,#1		 Zeilenlnge>0?
AF26: B11A	JR	NC,&hAF41	  dann ->
AF28: E9AC80	LD5	$12,(IZ-#1)	 Variablendeskriptor holen
AF2B: 77C2A6	CAL	&hA6C2		 Variable suchen und nach NUM1 holen
AF2E: 9653	PRE	IZ,$19		 IZ Zeiger auf Variablendeskriptor
AF30: 2D00	LDD	$0,(IZ+#0)	 Variablentyp holen,
AF32: 4E0020	OR	$0,&h20		  CALC-Flag setzen
AF35: 2500	STD	$0,(IZ+#0)	  und wieder speichern
AF37: 776BAF	CAL	&hAF6B		 alten Textzeiger und Betr.modus setzen
AF3A: E612E0	PHS8	$18		 NUM1 im Systemstack ablegen
AF3D: 260A	PHS	$10		 |
AF3F: B720	JR	&hAF60		 und ->
--  --  --  --  --  --  --  --  --  -->	EINGABE BERECHNEN UND ZUWEISEN
AF41: 778696	CAL	&h9686		 Zeile tokenisieren
AF44: D6000060	PRE	IX,&h6000	 IZ Zeiger auf Eingabepuffer
AF48: 778999	CAL	&h9989 [EXPRW]	 arithmetischen Ausdruck einlesen
AF4B: 770301	CAL	&h0103		 Ende der Zeile berprfen
AF4E: 776BAF	CAL	&hAF6B		 alten Textzeiger und Betr.modus setzen
AF51: D6401069	PRE	IZ,&h6910	 Zeiger auf Variablendeskriptor
AF55: E10180	ST5	$1,(IZ+#0)	 alten Deskriptor dort ablegen
AF58: E612E0	PHS8	$18		 NUM1 im Systemstack ablegen
AF5B: 260A	PHS	$10		 |
~Seite 95
AF5D: 7790A7	CAL	&hA790		 Zuweisung durchfhren
AF60: 77C3AF	CAL	&hAFC3		 Cursor in neue Zeile setzen
AF63: 2E0A	PPS	$10		 NUM1 aus Systemstack holen
AF65: EE0BE0	PPS8	$11		 |
AF68: 011F	SBC	$31,#0		 Z=1 und C=0 setzen
AF6A: F7	RTN			 zurck
-------------------------------------->	ALTEN TEXTZEIGER UND BETR.MODUS SETZEN
AF6B: D640A36F	PRE	IZ,&h6FA3	 IZ Zeiger auf CALC-Zwischenspeicher
AF6F: EB00C0	LDI7	$0,(IZ+#0)	 Parameter holen
AF72: 9605	PRE	IX,$5		 Textzeiger wieder setzen
AF74: E90180	LD5	$1,(IZ+#0)	 Variablendeskriptor lesen
AF77: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
AF7A: 2500	STD	$0,(IZ+#0)	 alten Betriebsmodus wieder setzen
AF7C: F7	RTN			 zurck
-------------------------------------->	VERSUCHEN, EINE ZAHL AUS TEXT ZU LESEN
AF7D: 77F009	CAL	&h09F0		 keine Ziffer oder Punkt im Text?
AF80: 31F809	JP	NC,&h09F8	  dann versuchen, Hex-Zahl zu lesen ->
AF83: 77FE09	CAL	&h09FE		 Zahl aus Text lesen
AF86: 2CA0	LDD	$0,(IX-#1)	 IX herabsetzen
AF88: F1	RTN	NC		 Fehler aufgetreten? dann zurck
AF89: 0028	ADC	$8,#1		 ist Flag gesetzt?
AF8B: B203	JR	LZ,&hAF8F	  dann ->
AF8D: 2C20	LDD	$0,(IX+#1)	 sonst IX heraufsetzen
AF8F: A8A0	LDW	$0,(IX-#1)	 zwei Zeichen aus dem Text holen
AF91: D1022E45	LDW	$2,".E"		 Vergleichstext ".E" holen
AF95: 8142	SBCW	$2,#2		 im Text vorhanden?
AF97: B006	JR	Z,&hAF9E	  dann ->
AF99: 420365	LD	$3,"e"		 Vergleichstext ".e" holen
AF9C: 8142	SBCW	$2,#2		 im Text vorhanden?
AF9E: 30180A	JP	Z,&h0A18	  dann ??? ->
AFA1: 013F	SBC	$31,#1		 Erfolgskennzeichen C=1 setzen
AFA3: F7	RTN			 zurck
-------------------------------------->	ROLL DOWN AUSGEBEN
AFA4: 28A0	LD	$0,(IX-#1)	 Bildschirmmodus holen
AFA6: 440008	ANC	$0,&h08		 NoScroll-Bit gesetzt?
AFA9: B489	JR	NZ,&hAFA1	  dann ->
AFAB: 378303	JP	&h0383		 sonst ROLL DOWN ausfhren
-------------------------------------->	ROLL UP AUSGEBEN
AFAE: 28A0	LD	$0,(IX-#1)	 Bildschirmmodus holen
AFB0: 440008	ANC	$0,&h08		 NoScroll-Bit gesetzt?
AFB3: B493	JR	NZ,&hAFA1	  dann ->
AFB5: 379803	JP	&h0398		 sonst ROLL UP ausfhren
-------------------------------------->	CR AUSGEBEN
AFB8: 2C00	LDD	$0,(IX+#0)	 Cursorposition holen
AFBA: 4C00E0	AN	$0,&hE0		 Zeile herausfiltern
AFBD: 480020	AD	$0,32		 nicht in letzter Zeile?
AFC0: 317404	JP	NC,&h0474	  dann Cursor setzen
--  --  --  --  --  --  --  --  --  -->	CURSOR IN DIE NCHSTE ZEILE SETZEN
AFC3: 9E00	GRE	IX,$0		 sonst IX ablegen
AFC5: A601	PHSW	$1		  und speichern
AFC7: 779FEF	CAL	&hEF9F		 IX Zeiger auf Cursorzeiger
AFCA: 777804	CAL	&h0478		 Cursor in die nchste Zeile
AFCD: 37D3A3	JP	&hA3D3		 IX wieder setzen und zurck
~Seite 96
--------------------------------------	TABELLE DER BASIC-BEFEHLSADRESSEN
  (die Routine, bei der !!! steht, wickelt INPUT, DATE$= und TIME$= ab,
  mit % gekennzeichnete Routinen zeigen auf SN Error)
AFD0: &C179 | &C188 | &C152 | &C7AA	 73: GOTO    | GOSUB  | RETURN | RESUME
AFD8: &C96B | &ABFC | &C703 | &ABFC	 77: RESTORE | %      | !!!    | %
AFE0: &ABFC | &DB3A | &DBE3 | &ABFC	 81: %       | SYSTEM | PASS   | %
AFE8: &B5B7 | &E032 | &B5E8 | &B5E3	 85: DELETE  | BSAVE  | LIST   | LLIST
AFF0: &DC34 | &DC3C | &ABFC | &ABFC	 89: LOAD    | MERGE  | %      | %
AFF8: &C598 | &ABFC | &C595 | &DC2A	 93: TRON    | %      | TROFF  | VERIFY
B000: &F079 | &DDB7 | &C573 | &ABFC	 97: MON     | CALL   | POKE   | %
B008: &ABFC | &ABFC | &ABFC | &ABFC	101: %       | %      | %      | %
B010: &E9BF | &C9BA | &C8E8 | &DC21	105: CHAIN   | CLEAR  | NEW    | SAVE
B018: &C067 | &C583 | &B64A | &AAB9	109: RUN     | ANGLE  | EDIT   | BEEP
B020: &95CA | &D370 | &ABFC | &ABFC	113: CLS     | CLOSE  | %      | %
B028: &ABFC | &C5A0 | &ABFC | &ABFC	117: %       | DEF    | %      | %
B030: &ABFC | &ABFC | &ABFC | &C729	121: %       | %      | %      | DIM
B038: &C43E | &ABFC | &ABFC | &C8C7	125: DRAW    | %      | %      | DATA
B040: &C211 | &C353 | &ABFC | &ABFC	129: FOR     | NEXT   | %      | %
B048: &C760 | &ABFC | &C05B | &ABFC	133: ERASE   | %      | END    | %
B050: &ABFC | &D49A | &D8AB | &CD00	137: %       | FIELD  | FORMAT | GET
B058: &C3D0 | &ABFC | &C6A9 | &D550	141: IF      | %      | LET    | LINE
B060: &C548 | &ABFC | &CBCB | &ABFC	145: LOCATE  | %      | LSET   | %
B068: &ABFC | &ABFC | &D102 | &ABFC	149: %       | %      | OPEN   | %
B070: &ABFC | &C84D | &ABFC | &ABFC	153: %       | ON     | %      | %
B078: &ABFC | &ABFC | &ABFC | &DD70	157: %       | %      | %      | BLOAD
B080: &ABFC | &C43E | &CADD | &CAD8	161: %       | DRAWC  | PRINT  | LPRINT
B088: &CD08 | &ABFC | &ABFC | &C8FA	165: PUT     | %      | %      | READ
B090: &C8C7 | &CBE6 | &ABFC | &ABFC	169: REM     | RSET   | %      | %
B098: &D04C | &C035 | &ABFC | &ABFC	173: STAT    | STOP   | %      | %
B0A0: &ABFC | &C64D			177: %       | VAR
-------------------------------------->	EDIT-EINGABE-STEUERZEICHEN MIT ADRESSEN
B0A4:	01 &B991 | 02 &BA6E | 06 &BA6E		 ROLL UP  | LINE TOP | LINE END
B0AD:	0C &BABA | 0D &B991 | 10 &B9D7		 CLS      | EXE      | ROLL DOWN
B0B6:	1C &BA6E | 1D &BA6E | 1E &BA21		 rechts   | links    | hoch
B0BF:	1F &B9F8 | 00 &BA09			 runter   | sonst
-------------------------------------->	ENLST: ENTTOKENISIEREN EINER BASIC-ZEILE
  (I: IX Quellzeile, O: Zeile im Eingabepuffer)
B0C5: 020D	LD	$13,#0		 Anzahl der Zeichen nullsetzen
B0C7: D6400060	PRE	IZ,&h6000	 IZ Zeiger auf Eingabepuffer
B0CB: 2C20	LDD	$0,(IX+#0)	 Zeichen aus Zeile lesen
B0CD: 77ECB0	CAL	&hB0EC		 Zeilennummer holen
B0D0: 420520	LD	$5," "		 Leerzeichen holen
B0D3: 3A05	SBC	(IX+#0),$5	 kein Leerzeichen hinter der Zeilennr?
B0D5: B411	JR	NZ,&hB0E7	  dann ->
B0D7: 2A05	LDI	$5,(IX+#0)	 nchstes Zeichen aus Zeile lesen
B0D9: 0005	ADC	$5,#0		 Endekennzeichen?
B0DB: F0	RTN	Z		  dann zurck
B0DC: 410520	SBC	$5," "		 kein Steuerzeichen?
B0DF: B107	JR	NC,&hB0E7	  dann ->
B0E1: 7715B1	CAL	&hB115		 sonst Zeichen dekodieren
B0E4: B18E	JR	NC,&hB0D7	 kein Ende der Zeile? dann Schleife ->
B0E6: F7	RTN			 sonst zurck
B0E7: 2305	STI	$5,(IZ+#0)	 Zeichen in den Puffer setzen
B0E9: 08AD87	ADJ	$13,#1,&hB0E4	 Zahl der Zeichen erhhen, Schleife ->
~Seite 97
--  --  --  --  --  --  --  --  --  -->	VERSCHLSSELTE ZEILENNUMMER LESEN
B0EC: AA03	LDIW	$3,(IX+#0)	 verschlsselte Zeilennummer lesen
B0EE: C96E4E	SBB3	$14,$14		 Zeilennummerspeicher lschen
B0F1: 77F101	CAL	&h01F1		 Binrzahl in $3/4 zu BCD in $14/15/16
B0F4: D10B0500	LDW	$11,5		 Zhler auf 5 Ziffern setzen
B0F8: 4C100F	AN	$16,&h0F	 Ziffer>0?
B0FB: B40D	JR	NZ,&hB109	  dann ->
B0FD: 000C	ADC	$12,#0		 schon eine Ziffer ausgegeben?
B0FF: B40B	JR	NZ,&hB10B	  dann ->
B101: DA2E40	DIU3	$14		 neue Ziffer ins Ausgabereg. schieben
B104: 092B	SB	$11,#1		 Zahl der Ziffern herabsetzen
B106: B48F	JR	NZ,&hB0F8	 noch eine? dann Schleife ->
B108: F7	RTN			 zurck
B109: 022C	LD	$12,#1		 Kennzeichen fr Ziffer ausgegeben
B10B: 481030	AD	$16,"0"		 zu ASCII-Zeichen wandeln
B10E: 2310	STI	$16,(IZ+#0)	 und in den Puffer setzen
B110: 082D	AD	$13,#1		 Lnge der Zeile erhhen
B112: B192	JR	NC,&hB101	 kein Pufferende? dann Schleife ->
B114: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	CODE DEKODIEREN
B115: 410502	SBC	$5,2		 kein Doppelpunkt?
B118: B119	JR	NC,&hB132	  dann ->
B11A: A805	LDW	$5,(IX+#0)	 nchste beide Zeichen lesen
B11C: 410507	SBC	$5,7		 folgt kein Sondertoken?
B11F: B406	JR	NZ,&hB126	  dann ->
B121: 410648	SBC	$6,72		 ist es das ELSE-Token?
B124: B009	JR	Z,&hB12E	  dann ->
B126: 42053A	LD	$5,":"		 sonst ASCII-Doppelpunkt holen
B129: 2305	STI	$5,(IZ+#0)	  und in den Puffer setzen
B12B: 082D	AD	$13,#1		 Lnge der Zeile erhhen
B12D: F7	RTN			 zurck
B12E: AA05	LDIW	$5,(IX+#0)	 Token lesen
B130: B70E	JR	&hB13F		 und zum Dekodieren ->
B132: B405	JR	NZ,&hB138	 nicht der Apostroph? dann ->
B134: 4285278E	LDJ	$5,"'",&hB129	 sonst ASCII-Apostroph in den Puffer ->
B138: 410503	SBC	$5,3		 folgt eine Hexzahl?
B13B: B0D0	JR	Z,&hB0EC	  dann ->
B13D: 2A06	LDI	$6,(IX+#0)	 sonst zweites Zeichen holen
B13F: 410505	SBC	$5,5		 ist es kein Funktionstoken?
B142: B419	JR	NZ,&hB15C	  dann ->
B144: 410671	SBC	$6,113		 ist es keins der HYP-Token?
B147: B514	JR	C,&hB15C	  dann ->
B149: 410677	SBC	$6,119		  |
B14C: B10F	JR	NC,&hB15C	  |
B14E: 490606	SB	$6,6		 auf trigonometrische Token korrigieren
B151: A606	PHSW	$6		 gesamtes Token zwischenspeichern
B153: 42069B	LD	$6,155		 $5/6 enthlt das Token "HYP"
B156: 775CB1	CAL	&hB15C		 dieses entschlsselt ausgeben
B159: AE05	PPSW	$5		 gesamtes Token zurckholen
B15B: F5	RTN	C		 Puffer schon zuende? dann zurck
--  --  --  --  --  --  --  --  --  -->	DEKODIERUNG EINES TOKENS
B15C: 9E02	GRE	IX,$2		 Quellzeiger ablegen
B15E: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
B160: 410508	SBC	$5,8		 illegales Token?
B163: B141	JR	NC,&hB1A5	  dann ->
B165: 490503	SB	$5,3		 Tokennummer korrigieren (0..3)
~Seite 98
B168: D600ED88	PRE	IX,&h88ED	 IX Zeiger auf Beginn der Token-Tabelle
B16C: D620CE8B	PRE	IY,&h8BCE	 IY Zeiger auf Ende der Token-Tabelle
B170: 026105	LD	$1,$5		 Tokenwert kopieren
B173: 0921	SB	$1,#1		 Zhler herabsetzen
B175: B007	JR	Z,&hB17D	 Ziel erreicht? dann
B177: DC1F	SUP	$31		 in der Tabelle nach Null-Byte suchen
B179: 2C20	LDD	$0,(IX+#1)	 IX erhhen, um Null-Byte zu berlesen
B17B: B789	JR	&hB173		 und Schleife
B17D: 381E	ADC	(IX+#0),$30	 ist die Tabelle damit zuende?
B17F: B525	JR	C,&hB1A5	  dann ->
B181: 381F	ADC	(IX+#0),$31	 diese Abteilung zu Ende?
B183: B012	JR	Z,&hB196	  dann ->
B185: 9E07	GRE	IX,$7		 sonst Zeiger zwischenspeichern
B187: 2C20	LDD	$0,(IX+#1)	 nchstes Zeichen lesen
B189: 1860	BIU	$0		 nicht Ende des Tokennamens?
B18B: B185	JR	NC,&hB187	  dann Schleife ->
B18D: 2A20	LDI	$0,(IX+#1)	 Tokenwert dieses Namens lesen
B18F: 0146	SBC	$6,#2		 stimmt es nicht berein?
B191: B491	JR	NZ,&hB181	  dann Schleife ->
B193: 968714	PREJ	IX,$7,&hB1A9	 sonst IZ Zeiger auf Tokenname und ->
B196: 420004	LD	$0,&h04		 $0 enthlt Zhler, wie oft
B199: 096005	SB	$0,$5		  eine Null gesucht werden mu
B19C: 2C21	LDD	$1,(IX+#1)	 nchstes Zeichen lesen
B19E: B0AF	JR	Z,&hB170	 schon Ende der Schleife? dann ->
B1A0: DC1F	SUP	$31		 Null-Byte suchen
B1A2: 09A088	SBJ	$0,#1,&hB19C	 Zhler herabsetzen und Schleife ->
B1A5: D600CE8B	PRE	IX,&h8BCE	 IX Zeiger auf Text "???"
B1A9: 2A05	LDI	$5,(IX+#0)	 Zeichen lesen,
B1AB: 4C057F	AN	$5,&h7F		  Bit 7 lschen
B1AE: 2305	STI	$5,(IZ+#0)	  und in den Puffer setzen
B1B0: 082D	AD	$13,#1		 Lnge der Zeile erhhen
B1B2: B509	JR	C,&hB1BC	 Ende des Puffers? dann ->
B1B4: 28A5	LD	$5,(IX-#1)	 letztes Zeichen noch einmal lesen
B1B6: 1865	BIU	$5		 war Bit 7 gelscht?
B1B8: B190	JR	NC,&hB1A9	  dann Schleife ->
B1BA: 011E	SBC	$30,#0		 C=0 setzen
B1BC: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
B1BF: 9602	PRE	IX,$2		 Zeiger in Quellzeile wieder holen
B1C1: F7	RTN			 zurck

=== SPEICHERVERVALTUNGS-ROUTINEN ===============================================
-------------------------------------->	NDFMK: SEQUENTIELLE DATEI ERZEUGEN
B1C2: 773EB3	CAL	&hB33E		 Verzeichnis-Eintrag erffnen
B1C5: D6004569	PRE	IX,&h6945	 IX Zeiger auf Freispeicher-Untergrenze
B1C9: E80160	LD4	$1,(IX+#0)	 diese und -Obergrenze holen
B1CC: 9603	PRE	IX,$3		 IX Zeiger auf letzten Directory-Eintrag
B1CE: 42852413	LDJ	$5,36,&hB1E4	 $5 Kennzeichen "S" setzen und ->
-------------------------------------->	NBFMK: BASIC-FILE ERZEUGEN
B1D2: 7741B3	CAL	&hB341		 BASIC-Verzeichnis-Eintrag erffnen
B1D5: 7758E8	CAL	&hE858		 C.Boot-/Preset-/Aktivfileheaderz. korr.
B1D8: D6004369	PRE	IX,&h6943	 IX Zeiger auf Datei-Files-Untergrenze
B1DC: E801E0	LD8	$1,(IX+#0)	 diese und andere Zeiger holen
B1DF: 9607	PRE	IX,$7		 IX Zeiger auf letzten BASIC-Dir.Eintrag
B1E1: 420510	LD	$5,16		 $5 Kennzeichen "B" setzen
B1E4: 0200	LD	$0,#0		 C.Boot- & Preset-Flag zurcksetzen
B1E6: A602	PHSW	$2		 BASIC-Programme-Obergrenze retten
~Seite 99
B1E8: 826301	LDW	$3,$1		 diese nach $3/4 kopieren
B1EB: E200A0	STI6	$0,(IX+#0)	 Fileheader initialisieren
B1EE: 777EE4	CAL	&hE47E		 IZ Zeiger auf WORK
B1F1: EB06E0	LDI8	$6,(IZ+#0)	 Filename aus WORK lesen
B1F4: E206E0	STI8	$6,(IX+#0)	 und in den Fileheader bringen
B1F7: EB0640	LDI3	$6,(IZ+#0)	 Extension aus WORK lesen
B1FA: E20640	STI3	$6,(IX+#0)	 und in den Fileheader bringen
B1FD: 1B40	INV	$0		 Kennz. fr gelschtes Password setzen
B1FF: 2400	STD	$0,(IX+#0)	 und in den Fileheader bringen
B201: 8220	LDW	$0,#1		 bentigter Platz: 1 Byte
B203: AE02	PPSW	$2		 BASIC-Programme-Obergrenze wieder holen
B205: 827902	LDW	$25,$2		  und nach $25/26 kopieren
B208: 410510	SBC	$5,16		 kein BASIC-File?
B20B: B409	JR	NZ,&hB215	  dann ->
B20D: 778EB2	CAL	&hB28E		 BASIC-Speicher ffnen (1 Byte)
B210: 9602	PRE	IX,$2		 IX Zeiger auf File-Bereich
B212: 2401	STD	$1,(IX+#0)	 Endekennzeichen einsetzen
B214: F7	RTN			 zurck
B215: 7792B2	CAL	&hB292		 Datenfile-Speicher ffnen (1 Byte)
B218: 42811A8B	LDJ	$1,26,&hB210	 $1 EOF-Endekennzeichen und ->
-------------------------------------->	FILENAMEN AUS STRING IN WORK BRINGEN
B21C: D600F468	PRE	IX,&h68F4	 IX Zeiger auf WORK
B220: 964F	PRE	IZ,$15		 IZ Zeiger auf String
B222: D101202E	LDW	$1," ."		 $1=" ", $2="." setzen
B226: 420308	LD	$3,8		 $3 Maximallnge fr den Filenamen
B229: 0931	SB	$17,#1		 Restlnge des Strings herabsetzen
B22B: B511	JR	C,&hB23D	 Stringende? dann ->
B22D: 3B02	SBC	(IZ+#0),$2	 Zeichen im String="."?
B22F: B017	JR	Z,&hB247	  dann ->
B231: 2B00	LDI	$0,(IZ+#0)	 sonst Zeichen lesen
B233: 0003	ADC	$3,#0		 schon 8 Zeichen fr Filename gelesen?
B235: B08D	JR	Z,&hB229	  dann ignorieren ->
B237: 775DB2	CAL	&hB25D		 Zeichen berprfen & nach WORK bringen
B23A: 09A393	SBJ	$3,#1,&hB229	 Zhler herabsetzen und Schleife ->
B23D: 480303	AD	$3,3		 Zhler um Platz fr Extension erhhen
B240: 0923	SB	$3,#1		 Zhler herabsetzen
B242: F5	RTN	C		 alles aufgefllt? dann zurck
B243: 2201	STI	$1,(IX+#0)	 sonst mit Leerzeichen fllen
B245: B786	JR	&hB240		 und Schleife
B247: 2D20	LDD	$0,(IZ+#1)	 "." im String berlesen
B249: 7740B2	CAL	&hB240		 Restzeichen des Filenamens auffllen
B24C: 420303	LD	$3,3		 $3 Maximallnge der Extension
B24F: 0931	SB	$17,#1		 Restlnge herabsetzen
B251: B592	JR	C,&hB240	 String zuende? dann ->
B253: 2B00	LDI	$0,(IZ+#0)	 nchstes Zeichen lesen
B255: 775DB2	CAL	&hB25D		 Zeichen berprfen & in WORK bernehmen
B258: 0923	SB	$3,#1		 Zhler herabsetzen
B25A: B48C	JR	NZ,&hB24F	 noch mehr mglich? dann Schleife ->
B25C: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	ZEICHEN BERPRFEN UND IN WORK SPEICHERN
B25D: 410020	SBC	$0," "		 ist es ein Steuerzeichen?
B260: 35D8AB	JP	C,&hABD8	  dann BF Error
B263: 41003A	SBC	$0,":"		 oder ein Doppelpunkt?
B266: 30D8AB	JP	Z,&hABD8	  dann ebenfalls BF Error
B269: 2200	STI	$0,(IX+#0)	 sonst im WORK-Puffer speichern
B26B: F7	RTN			 zurck
~Seite 100
-------------------------------------->	DATENFILE-SPEICHER ZUSAMMENSCHIEBEN
B26C: 028F04	LDJ	$15,#0,&hB272	 Kennz. fr Datenfile-Sp. setzen und ->
-------------------------------------->	BASIC-PROGR.-SPEICHER ZUSAMMENSCHIEBEN
B26F: 420F02	LD	$15,2		 Kennz. fr BASIC-Progr.-Speicher setzen
B272: 8122	SBCW	$2,#1		 Platz, der zuviel ist, gleich Null?
B274: F5	RTN	C		  dann zurck
B275: A61D	PHSW	$29		 Register $28/29 retten
B277: 9E1C	GRE	IX,$28		 IX ablegen
B279: D6004569	PRE	IX,&h6945	 IX Zeiger auf Freispeicher-Untergrenze
B27D: 9E04	GRE	IX,$4		  auch nach $4/5 kopieren
B27F: A605	PHSW	$5		  und speichern
B281: A601	PHSW	$1		 Beginn retten
B283: 9B02	CMPW	$2		 Gre des Bereichs invertieren
B285: A603	PHSW	$3		 diese auch retten
B287: 9B02	CMPW	$2		 und wieder invertieren
B289: A804	LDW	$4,(IX+#0)	 Freispeicher-Untergrenze holen
B28B: 88C227	ADWJ	$2,#2,&hB2B4	 Quelladresse setzen und ->
-------------------------------------->	BASIC-PROGRAMME-SPEICHER FFNEN
B28E: 428F0203	LDJ	$15,2,&hB294	 Kennz. fr BASIC-Speicher setzen und ->
-------------------------------------->	DATENFILE-SPEICHER FFNEN
B292: 020F	LD	$15,#0		 Kennz. fr Datenfile-Speicher setzen
B294: 8120	SBCW	$0,#1		 kein Platz bentigt?
B296: F5	RTN	C		  dann zurck
B297: A61D	PHSW	$29		 Register $28/29 retten
B299: 9E1C	GRE	IX,$28		 IX ablegen
B29B: D6004569	PRE	IX,&h6945	 IX Zeiger auf Freispeicher-Untergrenze
B29F: 9E04	GRE	IX,$4		 diesen auch nach $4/5 bringen
B2A1: A605	PHSW	$5		  und speichern
B2A3: E80460	LD4	$4,(IX+#0)	 Unter- und Obergrenze holen
B2A6: 896604	SBW	$6,$4		 Gre des freien Speichers berechnen
B2A9: 8146	SBCW	$6,#2		 und bentigten Platz abziehen
B2AB: 35BDAB	JP	C,&hABBD	 nicht vorhanden? dann OM Error
B2AE: E60360	PHS4	$3		 Beginn und Lnge speichern
B2B1: 886002	ADW	$0,$2		 $0/1 Zieladresse
B2B4: 896402	SBW	$4,$2		 $4/5 Lnge des Bereichs
B2B7: 774890	CAL	&h9048		 Bereich kopieren
B2BA: EE00A0	PPS6	$0		 Lnge, Beginn und Zeiger wieder holen
B2BD: 9604	PRE	IX,$4		 IX Zeiger auf Datenfile-Obergrenze
B2BF: 2CE40F	LDD	$4,(IX-$15)	 IX evtl. auf BASIC-Programme-Obergrenze
B2C2: 260F	PHS	$15		 Kennzeichen speichern
B2C4: BC00	ADW	(IX+#0),$0	 Obergrenze um Verschiebung verndern
B2C6: AA04	LDIW	$4,(IX+#0)	 und neue Obergrenze nach $4/5 holen
B2C8: 184F	BID	$15		 noch einen Zeiger verndern?
B2CA: B487	JR	NZ,&hB2C4	  dann Schleife ->
B2CC: 2E0F	PPS	$15		 Kennzeichen wieder holen
B2CE: 420A03	LD	$10,3		 $10 Offset auf Endadresse im Fileheader
B2D1: E80460	LD4	$4,(IX+#0)	 Zeiger auf Directorys holen
B2D4: 9604	PRE	IX,$4		 IX Zeiger auf Datenfile-Directory
B2D6: 012F	SBC	$15,#1		 Kennzeichen fr Datenfiles gesetzt?
B2D8: B50E	JR	C,&hB2E7	  dann ->
B2DA: 816406	SBCW	$4,$6		 Ende des Directorys?
B2DD: B007	JR	Z,&hB2E5	  dann ->
B2DF: 7718B3	CAL	&hB318		 Speicherzeiger in Fileheader verndern
B2E2: 9E848A	GREJ	IX,$4,&hB2DA	 IX ablegen und Schleife
B2E5: 9606	PRE	IX,$6		 IX Zeiger auf BASIC-Directory
B2E7: BA39	SBCW	(IX+#1),$25	 ist es das File, um das es geht?
~Seite 101
B2E9: B006	JR	Z,&hB2F0	  dann ->
B2EB: 7718B3	CAL	&hB318		 Speicherzeiger in Fileheader verndern
B2EE: B788	JR	&hB2E7		  und Schleife ->
B2F0: BC600A	ADW	(IX+$10),$0	 hier nur Endezeiger verndern
B2F3: D6002F69	PRE	IX,&h692F	 IX Zeiger auf FCB-Untergrenze
B2F7: E80660	LD4	$6,(IX+#0)	 diese und FCB-Obergrenze holen
B2FA: 816608	SBCW	$6,$8		 am Ende der FCBs?
B2FD: B00C	JR	Z,&hB30A	  dann ->
B2FF: 9606	PRE	IX,$6		 IX Zeiger auf FCB
B301: 7721B3	CAL	&hB321		 Speicherzeiger in FCB verndern
B304: A804	LDW	$4,(IX+#0)	 Lnge des FCBs holen
B306: 88E6048F	ADWJ	$6,$4,&hB2FA	 zu Zeiger addieren und Schleife ->
B30A: D6001D6E	PRE	IX,&h6E1D	 IX Zeiger auf System-FCB
B30E: 7721B3	CAL	&hB321		 Speicherzeiger in FCB verndern
B311: 961C	PRE	IX,$28		 IX wieder setzen
B313: AE1C	PPSW	$28		 Register $28/29 wieder holen
B315: 885B	ADW	$27,#2		 Endadresse aktualisieren
B317: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	SPEICHERZEIGER IN FILEHEADER VERNDERN
B318: BC20	ADW	(IX+#1),$0	 Anfangsadresse verndern
B31A: BC600A	ADW	(IX+$10),$0	 Endadresse verndern
B31D: 6C0820	LDD	$8,(IX+32)	 IX Zeiger auf nchsten Fileheader
B320: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	SPEICHERZEIGER IN FCB VERNDERN
B321: 420A1D	LD	$10,29		 Offset auf Beginn im Speicher
B324: BA620A	SBCW	(IX+$10),$2	 ist es nicht das File, um das es geht?
B327: 7436B3	CAL	NZ,&hB336	  dann Zeiger evtl. verndern
B32A: 420A1F	LD	$10,31		 Offset auf Ende im Speicher
B32D: BA620A	SBCW	(IX+$10),$2	  ist es nicht das File, um das es geht?
B330: 7436B3	CAL	NZ,&hB336	 dann Zeiger evtl. verndern
B333: 420A21	LD	$10,33		 Offset auf Zeiger in den Speicher
B336: BA620A	SBCW	(IX+$10),$2	 liegt Zeiger unterhalb der nderungen?
B339: F5	RTN	C		  dann nichts ndern, zurck
B33A: BC600A	ADW	(IX+$10),$0	 sonst Zeiger verndern
B33D: F7	RTN			 zurck
-------------------------------------->	DATENFILE-FILEHEADER FFNEN
B33E: 028803	LDJ	$8,#0,&hB343	 Kennz. fr Datenfile-Dir. setzen & ->
-------------------------------------->	BASIC-PROGRAMM-FILEHEADER FFNEN
B341: 0228	LD	$8,#1		 Kennzeichen fr BASIC-Directory setzen
B343: D6404569	PRE	IZ,&h6945	 IZ Zeiger auf Freispeicher-Untergrenze
B347: E900A0	LD6	$0,(IZ+#0)	 mit -Obergr. & BASIC-Dir-Untergr. holen
B34A: D1062100	LDW	$6,33		 bentigten Platz auf 33 Bytes festlegen
B34E: 8942	SBW	$2,#2		 Gre des freien Speichers feststellen
B350: 816206	SBCW	$2,$6		 sind keine 33 Bytes mehr frei?
B353: 35BDAB	JP	C,&hABBD	  dann OM Error
B356: 0926	SB	$6,#1		 $6/7=32 Lnge eines Fileheaders
B358: 6D0902	LDD	$9,(IZ+2)	 IZ Zeiger auf Datenfile-Dir.-Untergr.
B35B: BF06	SBW	(IZ+#0),$6	 Beginn des Verzeichnisses herabsetzen
B35D: 0128	SBC	$8,#1		 nur Datenfile-Dir.-Zeiger ndern?
B35F: F4	RTN	NZ		  dann zurck
B360: EB0260	LDI4	$2,(IZ+#0)	 Datenf.- und BASIC-Dir.-Untergr. holen
B363: 896406	SBW	$4,$6		 Beginn des BASIC-Verz. herabsetzen
B366: A5A5	STDW	$5,(IZ-#1)	 und wieder speichern
B368: 826002	LDW	$0,$2		 $0/1 Zieladresse
B36B: 886206	ADW	$2,$6		 $2/3 Quelladresse
B36E: 8944	SBW	$4,#2		 $4/5 Lnge des Datenfile-Directorys
~Seite 102
B370: 37F3CB	JP	&hCBF3		 Bereich kopieren, IX beibehalten
-------------------------------------->	FILE AUS DEM SPEICHER LSCHEN
B373: A601	PHSW	$1		 Fileheaderzeiger retten
B375: 9600	PRE	IX,$0		 IX Zeiger auf Fileheader
B377: 2A10	LDI	$16,(IX+#0)	 C.Boot- & Preset-Flag berlesen
B379: E80080	LD5	$0,(IX+#0)	 Adressen und Filetyp holen
B37C: C25960	LD4	$25,#2		 Adressen auch nach $25-28 bringen
B37F: 8942	SBW	$2,#2		 Lnge des Files feststellen
B381: 410410	SBC	$4,16		 ist es kein BASIC-File?
B384: B408	JR	NZ,&hB38D	  dann ->
B386: 776FB2	CAL	&hB26F		 BASIC-Programmspeicher zusammenschieben
B389: AE00	PPSW	$0		 Fileheaderzeiger wieder holen
B38B: B709	JR	&hB395		 und ->
B38D: 776CB2	CAL	&hB26C		 Datenfile-Speicher zusammenschieben
B390: AE00	PPSW	$0		 Fileheaderzeiger wieder holen
--  --  --  --  --  --  --  --  --  -->	DATENFILE-FILEHEADER ENTFERNEN
B392: 028C04	LDJ	$12,#0,&hB398	 Kennzeichen f. Datenfile setzen und ->
-------------------------------------->	BASIC-PROGRAMM-FILEHEADER ENTFERNEN
B395: 420C02	LD	$12,2		 Kennzeichen f. BASIC-Progr. setzen
B398: D6404769	PRE	IZ,&h6947	 IZ Zeiger auf Directory-Untergrenze
B39C: 8244	LDW	$4,#2		 $4/5 Zeiger auf Fileheader
B39E: A900	LDW	$0,(IZ+#0)	 Directory-Untergrenze holen
B3A0: 8242	LDW	$2,#2		 $2/3 Quelladresse
B3A2: 8944	SBW	$4,#2		 $4/5 Gre des Directory-Bereichs
B3A4: D1062000	LDW	$6,32		 $6/7=32 Lnge eines Fileheaders
B3A8: 886006	ADW	$0,$6		 $0/1 Zieladresse
B3AB: BD06	ADW	(IZ+#0),$6	 Directory-Zeiger hochsetzen
B3AD: 012C	SBC	$12,#1		 Kennzeichen fr Datenfile gesetzt?
B3AF: B5C0	JR	C,&hB370	  dann zum Kopieren des Bereichs ->
B3B1: BD660C	ADW	(IZ+$12),$6	 auch BASIC-Directory-Zeiger hochsetzen
B3B4: B7C5	JR	&hB370		 zum Kopieren des Bereichs
-------------------------------------->	BASIC-ZEILE EINFGEN/LSCHEN
B3B6: 77C3AF	CAL	&hAFC3		 Cursor in neue Zeile bringen
B3B9: 7720B7	CAL	&hB720		 Start- u. Endadr. des BASIC-Files holen
B3BC: 7796B6	CAL	&hB696		 Password-Schutz abfragen
B3BF: 77C6AD	CAL	&hADC6		 Direktmodus setzen
B3C2: D6000060	PRE	IX,&h6000	 IX Zeiger auf Eingabepuffer
B3C6: 381F	ADC	(IX+#0),$31	 ist die Zeile leer?
B3C8: F0	RTN	Z		  dann zurck
B3C9: 2C02	LDD	$2,(IX+#0)	 Lnge der Zeile holen
B3CB: A825	LDW	$5,(IX+#1)	 Zeilennummer holen
B3CD: 7754C0	CAL	&hC054		 als aktuelle Zeilennummer setzen
B3D0: A82F	LDW	$15,(IX+#1)	 Zeilennummer nach $15/16 holen
B3D2: 77D4B4	CAL	&hB4D4		  und im File suchen
B3D5: B523	JR	C,&hB3F9	 Zeile existiert bereits? dann ->
B3D7: 410204	SBC	$2,4		 besteht Zeile nur aus Zeilennummer?
B3DA: F0	RTN	Z		  dann zurck
--  --  --  --  --  --  --  --  --  -->	NEUE ZEILENNUMMER IN PROGRAMM EINFGEN
B3DB: 2602	PHS	$2		 Lnge der Zeile speichern
B3DD: 026002	LD	$0,$2		 $0/1 Lnge der Zeile +1
B3E0: 0201	LD	$1,#0		 |		(fr Endekennzeichen)
B3E2: 8820	ADW	$0,#1		 |
B3E4: 9E02	GRE	IX,$2		 $2/3 Zeiger auf Adresse im BASIC-Progr.
B3E6: 778EB2	CAL	&hB28E		 BASIC-Speicher ffnen
B3E9: 826002	LDW	$0,$2		 $0/1 Zieladresse
B3EC: 2E04	PPS	$4		 $4/5 Lnge der Zeile +1
~Seite 103
B3EE: 0205	LD	$5,#0		 |		(fr Endekennzeichen)
B3F0: 8824	ADW	$4,#1		 $2/3 Quelladr.=Zeiger auf Eingabepuffer
B3F2: D1020060	LDW	$2,&h6000	 Bereich kopieren und zurck
B3F6: 374890	JP	&h9048 [BUPDN]	 besteht Zeile nur aus Zeilennummer?
B3F9: 410204	SBC	$2,4		  dann ->
--  --  --  --  --  --  --  --  --  --	BESTEHENDE ZEILE DURCH NEUE AUSTAUSCHEN
B3FC: B024	JR	Z,&hB421	 alte Lnge>=der neuen?
B3FE: 3A02	SBC	(IX+#0),$2	  dann ->
B400: B10E	JR	NC,&hB40F	 Lnge zwischenspeichern
B402: 2602	PHS	$2		 alte Lnge holen
B404: 2C01	LDD	$1,(IX+#0)	 neue Lnge holen
B406: 026002	LD	$0,$2		 und alte abziehen
B409: 096001	SB	$0,$1		 High-Byte nullsetzen und ->
B40C: 0281AA	LDJ	$1,#0,&hB3E4	 Lnge zwischenspeichern
B40F: 2602	PHS	$2		 $0/1 Zeiger auf Adr. im BASIC-Programm
B411: 9E00	GRE	IX,$0		 Lngen gleich? dann ->
B413: B0A8	JR	Z,&hB3EC	 sonst alte Lnge holen
B415: 2C03	LDD	$3,(IX+#0)	 neue abziehen
B417: 096302	SB	$3,$2		 und nach $2 bringen, $3=0
B41A: 9A43	BYDW	$3		 BASIC-Programmspeicher zusammenschieben
B41C: 776FB2	CAL	&hB26F		 und ->
--  --  --  --  --  --  --  --  --  --	ZEILE AUS PROGRAMM LSCHEN
B41F: B7B7	JR	&hB3E9		 $2/3 alte Lnge +1
B421: 2C02	LDD	$2,(IX+#0)	 |		(fr Endekennzeichen)
B423: 0203	LD	$3,#0		 |
B425: 8822	ADW	$2,#1		 $0/1 Zeiger auf Adresse im BASIC-Progr.
B427: 9E00	GRE	IX,$0		 BASIC-Programm zusammenschieben ->

=== ROUTINEN FR ALLE EDIT-MODI ================================================
wichtige Register (in allen Edit-Modi gleich belegt):
IX enthlt nach Ausfhrung einiger Routinen den neuen Filezeiger (s. $19/20)
$17/18 = Datensatznummer 1..65535 (nicht im BASIC-EDIT-Modus)
$19/20 = Filezeiger, zeigt auf Zeilenanfang des o.ang. Datensatzes
$21    = Lnge des Suchworts 1..8, wenn keins definiert wurde: 0
$22    = Displayoffset (in 32er-Schritten Stelle, ab der Datensatz im Display
          sichtbar ist)
$23    = Cursor innerhalb des Datensatzes (normalerweise gleich dem Display-
          offset, nur wenn Suchwort invertiert dargestellt ist, dann zeigt
          Cursor auf das Suchwort)
$24    = Editorstatus (=1: Datensatz wird nur angezeigt, Cursor blinkt nicht
                       =2: Daten werden editiert
                       =4: Suchwort oder Zeilenbereich wird eingegeben
                       =8: Datensatz wird neu eingegeben)
$25/26 = Filebeginn im Speicher
$27/28 = Fileende im Speicher
$29    = Kopie des Betriebsmodus (Modi siehe bei &h6F51 in Speicher-bersicht)
-------------------------------------->	ZEILE IN DATENFILE AUSTAUSCHEN
B42C: A601	PHSW	$1		 neue Lnge zwischenspeichern
B42E: 9613	PRE	IX,$19		 IX Zeiger in Datenfile
B430: 775EB4	CAL	&hB45E		 Zeichen bis zum Zeilenende berlesen
B433: 9E02	GRE	IX,$2		 Zeiger auf nchste Zeile ablegen
B435: 896213	SBW	$2,$19		 Lnge der Zeile feststellen
B438: AE00	PPSW	$0		 neue Lnge wieder holen
B43A: 8142	SBCW	$2,#2		 ist alte Lnge gleich der neuen Lnge?
B43C: B01E	JR	Z,&hB45B	  dann ->
~Seite 104
B43E: A601	PHSW	$1		 neue Lnge zwischenspeichern
B440: B50F	JR	C,&hB450	 alte Lnge kleiner? dann ->
B442: 8942	SBW	$2,#2		 berflssigen Platz feststellen
B444: 826013	LDW	$0,$19		 $0/1 Adresse in Datenfile
B447: 776CB2	CAL	&hB26C		 Datenfile-Speicher zusammenschieben
B44A: AE04	PPSW	$4		 neue Lnge wieder holen
B44C: 82E013DD	LDWJ	$0,$19,&hB3F2	 besteh. Zeile dch. neue austauschen
B450: 896002	SBW	$0,$2		 bentigten Platz feststellen
B453: 826213	LDW	$2,$19		 $2/3 Adresse in Datenfile
B456: 7792B2	CAL	&hB292		 Datenfile-Speicher ffnen
B459: B790	JR	&hB44A		 und neue Zeile einsetzen ->
B45B: 82C491	LDWJ	$4,#2,&hB44C	 neue Lnge setzen & Zeile einsetzen
--  --  --  --  --  --  --  --  --  -->	ZEICHEN BIS ZUM ZEILENENDE BERLESEN
B45E: D1000D0A	LDW	$0,&h0A0D	 $0=CR, $1=LF setzen
B462: 2A02	LDI	$2,(IX+#0)	 nchstes Zeichen aus File holen
B464: 0142	SBC	$2,#2		 ist es ein CR?
B466: B009	JR	Z,&hB470	  dann ->
B468: 41021A	SBC	$2,26		 kein EOF-Zeichen?
B46B: B48A	JR	NZ,&hB462	  dann Schleife ->
B46D: 2CA2	LDD	$2,(IX-#1)	 sonst IX wieder dekrementieren
B46F: F7	RTN			 zurck
B470: 3A01	SBC	(IX+#0),$1	 ist es ein LF?
B472: F4	RTN	NZ		  dann zurck
B473: 2C22	LDD	$2,(IX+#1)	 sonst berlesen
B475: F7	RTN			 zurck
-------------------------------------->	ZEIGER IN NCHSTE ZEILE SETZEN
B476: 9613	PRE	IX,$19		 IX Zeiger in Datenfile
B478: 043D	ANC	$29,#1		 ein BASIC-Programm?
B47A: B410	JR	NZ,&hB48B	  dann ->
B47C: 7770B7	CAL	&hB770		 steht Zeiger auf EOF-Zeichen?
B47F: B012	JR	Z,&hB492	  dann mit C=1 zurck ->
B481: 775EB4	CAL	&hB45E		 Zeichen bis zum Zeilenende berlesen
B484: 3A04	SBC	(IX+#0),$4	 steht Zeiger auf EOF-Zeichen?
B486: B00B	JR	Z,&hB492	  dann mit C=1 zurck ->
B488: 001E	ADC	$30,#0		 C=0 setzen
B48A: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	BASIC-ZEILE BERLESEN
B48B: 2A00	LDI	$0,(IX+#0)	 Lnge der Zeile holen
B48D: 2C41	LDD	$1,(IX+#2)	 und restliche Zeile berlesen
B48F: 0001	ADC	$1,#0		 kein BASIC-Endekennzeichen?
B491: F4	RTN	NZ		  dann mit C=0 zurck
B492: 013F	SBC	$31,#1		 C=1 setzen
B494: F7	RTN			 zurck
-------------------------------------->	ZEIGER IN VORHERIGE ZEILE SETZEN
B495: 817319	SBCW	$19,$25		 steht Zeiger auf Filebeginn?
B498: B087	JR	Z,&hB492	  dann mit C=1 zurck
B49A: 9619	PRE	IX,$25		 IX Zeiger auf Filebeginn
B49C: 043D	ANC	$29,#1		 BASIC-Programm?
B49E: B41F	JR	NZ,&hB4BE	  dann ->
B4A0: D1000200	LDW	$0,2		 befand man sich im
B4A4: 8151	SBCW	$17,#2		  zweiten Datensatz?
B4A6: F0	RTN	Z		  dann mit C=0 zurck
B4A7: 9613	PRE	IX,$19		 IX Zeiger in File
B4A9: D1000D0A	LDW	$0,&h0A0D	 $0=CR, $1=LF setzen
B4AD: 9639	PRE	IY,$25		 IY Zeiger auf Filebeginn
B4AF: 2CA2	LDD	$2,(IX-#1)	 IX herabsetzen
~Seite 105
B4B1: DD00	SDN	$0		 CR im File suchen
B4B3: 2CA2	LDD	$2,(IX-#1)	 IX herabsetzen
B4B5: DD00	SDN	$0		 noch ein CR im File suchen
B4B7: 2C22	LDD	$2,(IX+#1)	 CR in File berlesen
B4B9: 7770B4	CAL	&hB470		 evtl. LF in File berlesen
B4BC: B7B5	JR	&hB488		 mit C=0 zurck
B4BE: 2A00	LDI	$0,(IX+#0)	 Lnge der BASIC-Zeile holen
B4C0: 2C41	LDD	$1,(IX+#2)	 restliche Zeile berlesen
B4C2: 9E02	GRE	IX,$2		 Zeiger hinter Zeile ablegen
B4C4: 817302	SBCW	$19,$2		 noch nicht in aktueller Zeile?
B4C7: B48A	JR	NZ,&hB4BE	  dann ->
B4C9: 2CC1	LDD	$1,(IX-#2)	 IX wieder auf Zeile davor setzen
B4CB: 2CA0	LDD	$0,(IX-#1)	 in $0 Lnge der Zeile holen
B4CD: F7	RTN			 zurck
-------------------------------------->	ANFANGS-BASIC-ZEILE SUCHEN
B4CE: 826F04	LDW	$15,$4		 Anfangszeilennummer in das Suchregister
--  --  --  --  --  --  --  --  --  -->	LNSCH: BASIC-ZEILE SUCHEN
B4D1: 7720B7	CAL	&hB720		 Start- und Endadresse des Files holen
B4D4: 96990D	PREJ	IX,$25,&hB4E3	 IX Zeiger auf Programmbeginn und ->
B4D7: 381F	ADC	(IX+#0),$31	 Programm zu Ende?
B4D9: F0	RTN	Z		  dann zurck
B4DA: BA2F	SBCW	(IX+#1),$15	 Zeilennummer gefunden?
B4DC: B0CB	JR	Z,&hB492	  dann mit C=1 zurck ->
B4DE: F1	RTN	NC		 gefundene Zeilennr zu gro? dann zurck
B4DF: 2A00	LDI	$0,(IX+#0)	 Lnge der Zeile holen
B4E1: 2C41	LDD	$1,(IX+#2)	 Zeileninhalt berlesen
B4E3: 9E938E	GREJ	IX,$19,&hB4D7	 IX als Zeiger ablegen und Schleife ->
-------------------------------------->	ZEIGER AUF GEWNSCHTEN DATENSATZ SETZEN
B4E6: 8131	SBCW	$17,#1		 Datensatznummer>=1?
B4E8: B103	JR	NC,&hB4EC	  dann ->
B4EA: 8231	LDW	$17,#1		 sonst auf 1 setzen
B4EC: 896303	SBW	$3,$3		 Zhler zurcksetzen
B4EF: 9619	PRE	IX,$25		 IX Zeiger auf Filebeginn
B4F1: 8823	ADW	$3,#1		 Zhler erhhen
B4F3: 817103	SBCW	$17,$3		 gewnschte Datensatznummer erreicht?
B4F6: B013	JR	Z,&hB50A	  dann ->
B4F8: 42001A	LD	$0,26		 EOF-Zeichen holen
B4FB: 3A00	SBC	(IX+#0),$0	 steht Zeiger auf EOF?
B4FD: B00C	JR	Z,&hB50A	  dann ->
B4FF: 775EB4	CAL	&hB45E		 alle Zeichen bis Zeilenende berlesen
B502: 9E00	GRE	IX,$0		 Zeiger in File ablegen
B504: 8820	ADW	$0,#1		  und 1 addieren (fr File-Endezeichen)
B506: 815B	SBCW	$27,#2		 noch nicht File-Ende erreicht?
B508: B498	JR	NZ,&hB4F1	  dann ->
B50A: 9E13	GRE	IX,$19		 Zeiger in das File ablegen
B50C: F7	RTN			 zurck
-------------------------------------->	ANZAHL DER DATENSTZE+1 FESTSTELLEN
B50D: 82731B	LDW	$19,$27		 $19/20 Zeiger auf letztes Zeichen
B510: 8933	SBW	$19,#1		  im File
B512: 7717B5	CAL	&hB517		 Datensatznummer feststellen
B515: B78C	JR	&hB50A		 Zeiger in das File ablegen und zurck ->
~Seite 106
-------------------------------------->	DATENSATZNUMMER FESTSTELLEN
B517: 822F	LDW	$15,#1		 Datensatznummer auf 1 zurcksetzen
B519: 9619	PRE	IX,$25		 IX Zeiger auf Filebeginn
B51B: 9E02	GRE	IX,$2		 Zeiger in File in $2/3 ablegen
B51D: 817302	SBCW	$19,$2		 ist gewnschter Datensatz erreicht?
B520: F0	RTN	Z		  dann zurck
B521: 7770B7	CAL	&hB770		 steht Zeiger auf EOF-Zeichen?
B524: B09B	JR	Z,&hB50A	  dann ->
B526: 775EB4	CAL	&hB45E		 alle Zeichen bis Zeilenende berlesen
B529: 88AF90	ADWJ	$15,#1,&hB51B	 Datensatznummer erhhen und Schleife
-------------------------------------->	GEFUNDENE ZEICHENKETTE INVERTIEREN
B52C: 026415	LD	$4,$21		 $4 Anzahl der gesuchten Zeichen
B52F: 026017	LD	$0,$23		 $0 Offset auf Zeichen im Bildschirm
B532: 096016	SB	$0,$22		 |
B535: D640B06F	PRE	IZ,&h6FB0	 IZ Zeiger auf Suchzeichenspeicher
B539: A1B7	STW	$23,(IZ-#1)	 Fundpos. und Anzeigeflag speichern
B53B: 77A605	CAL	&h05A6		 Position im Grafikspeicher berechnen
B53E: 9642	PRE	IZ,$2		 IZ Zeiger auf Zeiger im Grafikspeicher
B540: 0004	ADC	$4,#0		 Anzahl der Zeichen ungleich Null?
B542: B403	JR	NZ,&hB546	  dann ->
B544: 0224	LD	$4,#1		 sonst Anzahl auf 1 setzen
B546: 778D90	CAL	&h908D		 Zeichen invertieren
B549: 372C02	JP	&h022C [DOTDI]	 Display auffrischen und zurck
-------------------------------------->	MENTEXT FR BASIC-EDIT
B54C: 5B7365617263685D			 "[search]"
B554: 5B6E65787420205D			 "[next  ]"
B55C: 5B64656C6574655D			 "[delete]"
B564: 5B72756E2020205D			 "[run   ]"
-------------------------------------->	FILENAME FR MEMO-FILE
B56C: 4D454D4F20202020202020		 "MEMO       "
-------------------------------------->	TEXTE FR BASIC-EDIT-FUNKTIONEN
B577: 64656C6574653F00			 "delete?",NUL
B57F: 7365617263683F00			 "search?",NUL
-------------------------------------->	SPRUNGTABELLE FR SONDERTASTEN IM
B587: F0 &BD3E | F2 &BB61 | F3 &BB56	 MEMO |ANS  |OUT	\ ANZEIGEMODUS
B590: F4 &BB01 | 00 &BB76		 IN   |sonst
-------------------------------------->	SPRUNGTABELLE FR SONDERTASTEN IN DEN
B596: F0 &BD3E | F2 &BB64 | F3 &BB59	 MEMO |ANS  |OUT	\ EINGABEMODI
B59F: F4 &BB2C | F5 &B983 | 00 &BB76	 IN   |LCKEY|sonst
-------------------------------------->	SPRUNGTABELLE FR BASIC-EDIT-MENPUNKTE
B5A8: FF &E9B8				 [run   ]
--  --  --  --  --  --  --  --  --  -->	SPRUNGTABELLE FR DATA-EDIT-MENPUNKTE
B5AB: FE &BB92 | FD &BC85 | FC &BB8E	 [delete] | [next  ] | [search]
B5B4: 00 &B7EB				 sonst
-------------------------------------->	BASIC-BEFEHL DELETE
B5B7: 7790B6	CAL	&hB690		 richtigen Modus & Password prfen
B5BA: 77BFB5	CAL	&hB5BF		 Zeilenbereich lschen
B5BD: B73E	JR	&hB5FC		 Rckkehr in den Direktmodus
-------------------------------------->	ZEILENBEREICH LSCHEN
B5BF: 77FF00	CAL	&h00FF		 ist Zeichen ein Trennzeichen?
B5C2: F5	RTN	C		  dann zurck
B5C3: 7727AB	CAL	&hAB27		 Zeilenbereich aus dem Text lesen
B5C6: 77CEB4	CAL	&hB4CE		 Anfangs-BASIC-Zeile suchen
B5C9: A614	PHSW	$20		 Adresse zwischenspeichern
B5CB: 826F06	LDW	$15,$6		 Endadresse in Suchregister bringen
B5CE: 77D4B4	CAL	&hB4D4 [LNSCH]	 Zeilennummer suchen
~Seite 107
B5D1: B106	JR	NC,&hB5D8	 gefunden? dann ->
B5D3: 3A1F	SBC	(IX+#0),$31	 nicht am Ende des Programms?
B5D5: 748BB4	CAL	NZ,&hB48B	  dann IX Zeiger hinter Zeile
B5D8: AE00	PPSW	$0		 $0/1 Anfangsadresse
B5DA: 9E02	GRE	IX,$2		 $2/3 Lnge des Abschnitts
B5DC: 8942	SBW	$2,#2		 |
B5DE: 8253	LDW	$19,#2		 $19/20 Zeiger auf Anfangsadresse
B5E0: 376FB2	JP	&hB26F		 BASIC-Progr.-Speicher zus.schieben ->
-------------------------------------->	BASIC-BEFEHL LLIST
B5E3: 77DD90	CAL	&h90DD		 Ausgabe auf Drucker lenken
B5E6: B704	JR	&hB5EB		 und zum LIST-Befehl
-------------------------------------->	BASIC-BEFEHL LIST
B5E8: 77E190	CAL	&h90E1		 Ausgabe auf Display lenken
B5EB: 7790B6	CAL	&hB690		 richtigen Modus & Password prfen
B5EE: 774401	CAL	&h0144		 ist ein Punkt im Text?
B5F1: B00D	JR	Z,&hB5FF	  dann ->
B5F3: 7727AB	CAL	&hAB27		 Zeilenbereich aus dem Text lesen
B5F6: 770CB6	CAL	&hB60C		 Bereich auflisten
B5F9: 77E190	CAL	&h90E1		 Ausgabe auf Display lenken
B5FC: 37A390	JP	&h90A3		 Rckkehr in den Direktmodus
B5FF: D640566F	PRE	IZ,&h6F56	 aktuelle Zeilennummer holen
B603: A904	LDW	$4,(IZ+#0)	  und als Anfangs-
B605: A906	LDW	$6,(IZ+#0)	  sowie Endzeilennummer setzen
B607: 770301	CAL	&h0103		 Ende des Befehls prfen
B60A: B795	JR	&hB5F6		 und zum Listen ->
--  --  --  --  --  --  --  --  --  -->	BEREICH AUFLISTEN
B60C: 77CEB4	CAL	&hB4CE [LNSCH]	 Anfangszeilenummer im Speicher suchen
B60F: 381F	ADC	(IX+#0),$31	 Ende des Programms?
B611: F0	RTN	Z		  dann zurck
B612: BA26	SBCW	(IX+#1),$6	 ist gefundene Zeilennummer gleich
B614: B002	JR	Z,&hB617	  letzter auszugebender? dann ->
B616: F1	RTN	NC		 sogar grer? dann zurck
B617: A607	PHSW	$7		 Endzeilennummer speichern
B619: 77C5B0	CAL	&hB0C5 [ENLST]	 BASIC-Zeile entschlsseln
B61C: 9E11	GRE	IX,$17		 Zeiger in den Text retten
B61E: 251F	STD	$31,(IZ+#0)	 ans Ende der Zeile eine 0 setzen
B620: D6400060	PRE	IZ,&h6000	 IZ Zeiger auf Eingabepuffer
B624: 2B10	LDI	$16,(IZ+#0)	 Zeichen holen
B626: 0010	ADC	$16,#0		 Endekennzeichen gefunden?
B628: B019	JR	Z,&hB642	  dann ->
B62A: 9E53	GRE	IZ,$19		 Zeiger in den Zeilenpuffer retten
B62C: D6400C69	PRE	IZ,&h690C	 IZ Zeiger auf Ausgabegertenummer
B630: 3B1E	SBC	(IZ+#0),$30	 nicht der Bildschirm?
B632: B10A	JR	NC,&hB63D	  dann ->
B634: 772791	CAL	&h9127		 evtl. Pausierung abwarten
B637: 77D795	CAL	&h95D7 [OUTAC]	 Zeichen auf den Bildschirm ausgeben
B63A: 96D398	PREJ	IZ,$19,&hB624	 Zeilenpufferzeiger wieder holen und ->
B63D: 770792	CAL	&h9207 [BKCK]	 auf OFF, C.BOOT und BRK prfen
B640: B78A	JR	&hB637		 zur Ausgabe des Zeichens
B642: 77CE95	CAL	&h95CE [OUTCR]	 CRLF ausgeben
B645: AE06	PPSW	$6		 Endzeilennummer wieder holen
B647: 9691BA	PREJ	IX,$17,&hB60F	 Zeiger in den Text wieder setzen und ->
~Seite 108
-------------------------------------->	BASIC-BEFEHL EDIT
B64A: 7790B6	CAL	&hB690		 richtigen Modus & Password prfen
B64D: 773BC1	CAL	&hC13B		 REV lschen, alle Kanle schlieen
B650: 77FF00	CAL	&h00FF		 ist Zeichen ein Trennzeichen? dann ->
B653: B524	JR	C,&hB678	  dann ->
B655: 774401	CAL	&h0144		 ist es ein Punkt?
B658: B030	JR	Z,&hB689	  dann ->
B65A: 772898	CAL	&h9828 [DTBIN]	 Zeilennummer aus Text lesen
B65D: 826F11	LDW	$15,$17		 als Suchzeilennummer nehmen
B660: 770301	CAL	&h0103		 Ende des Befehls prfen
B663: 77D1B4	CAL	&hB4D1 [LNSCH]	 Zeilennummer im Programm suchen
B666: 381F	ADC	(IX+#0),$31	 Ende des Programms?
B668: 30A390	JP	Z,&h90A3	  dann ->
B66B: 421D03	LD	$29,3		 BASIC-EDIT-Modus setzen
B66E: D10219B8	LDW	$2,&hB819	 Adresse auf BRK-Routine setzen
B672: 7701B7	CAL	&hB701		 3-Zeilen-Modus setzen
B675: 37DDB7	JP	&hB7DD		 zum Editieren ->
B678: 7720B7	CAL	&hB720		 Start- und Endadresse des Files holen
--  --  --  --  --  --  --  --  --  -->	EVTL. BASIC-EDITIERMODUS EINSCHALTEN
B67B: 826601	LDW	$6,$1		 Zeiger auf den Fileheader setzen
B67E: 827319	LDW	$19,$25		 Zeiger auf Programmstart setzen
B681: 772CB7	CAL	&hB72C		 Programm ohne Inhalt?
B684: 3074EA	JP	Z,&hEA74	  dann ->
B687: B79D	JR	&hB66B		 sonst zum Editieren ->
B689: D100566F	LDW	$0,&h6F56	 $0/1 Zeiger auf aktuelle Zeilennummer
B68D: 91CFAF	LDWJ	$15,(#2),&hB660	 diese holen und ->
-------------------------------------->	RICHTIGEN MODUS & PASSWORD PRFEN
B690: 7759AB	CAL	&hAB59		 bei CAL-Modus FC Error
B693: 775FAB	CAL	&hAB5F		 im Programmodus FC Error
--  --  --  --  --  --  --  --  --  -->	PASSWORD-SCHUTZ ABFRAGEN
B696: D640546F	PRE	IZ,&h6F54	 IZ Zeiger auf Aktivfileheader-Zeiger
B69A: A906	LDW	$6,(IZ+#0)	 diesen holen
B69C: 9646	PRE	IZ,$6		 IZ Zeiger auf Aktivfileheader
B69E: 791E11	ADC	(IZ+17),$30	 ist ein Password vereinbart?
B6A1: 310CAC	JP	NC,&hAC0C	  dann PR Error
B6A4: F7	RTN			 sonst zurck
-------------------------------------->	MEN-[EDIT  ]-TASTE WEITER AUSFHREN
B6A5: 771091	CAL	&h9110		 NoScroll lschen
B6A8: 7720B7	CAL	&hB720		 Start- und Endadresse des Files holen
B6AB: 681D05	LD	$29,(IX+5)	 Filetyp holen
B6AE: 411D10	SBC	$29,16		 ist es ein BASIC-File?
B6B1: B0B7	JR	Z,&hB67B	  dann evtl. in BASIC-EDIT-Modus ->
B6B3: 8231	LDW	$17,#1		 Datensatznummer=1
B6B5: 827319	LDW	$19,$25		 Zeiger auf Filebeginn
B6B8: 421D02	LD	$29,2		 Betriebsmodus DATA-EDIT setzen
B6BB: D10288B7	LDW	$2,&hB788	 Adresse fr BRK-Routine setzen
B6BF: B7CE	JR	&hB672		 zum Editieren ->
-------------------------------------->	MEMO-FILE SUCHEN
B6C1: 77EEB6	CAL	&hB6EE		 Filename "MEMO" nach WORK bringen
B6C4: 7718E8	CAL	&hE818 [FNSCH]	 File im Speicher suchen
B6C7: F5	RTN	C		 nicht gefunden? dann zurck
B6C8: 410324	SBC	$3,36		 ist es ein "S"-File?
B6CB: B010	JR	Z,&hB6DC	  dann ->
B6CD: 7742E8	CAL	&hE842		 sonst File mit diesem Namen lschen
B6D0: 013F	SBC	$31,#1		 C=1 setzen
B6D2: F7	RTN			 zurck
~Seite 109
-------------------------------------->	SEQUENTIELLE DATEI FR MEMO-IN ERZEUGEN
B6D3: 77C2B1	CAL	&hB1C2 [NDFMK]	 sequentielle Datei erzeugen
B6D6: D6004769	PRE	IX,&h6947	 IX Zeiger auf Beginn des Datenfile-Dir.
B6DA: A806	LDW	$6,(IX+#0)	 diesen holen
B6DC: D640546F	PRE	IZ,&h6F54	 IZ Zeiger auf Aktivfileheader-Zeiger
B6E0: A106	STW	$6,(IZ+#0)	 Fileheaderzeiger dort speichern
B6E2: 7720B7	CAL	&hB720		 Start- & Endadresse des Files holen
B6E5: 8231	LDW	$17,#1		 Datensatznummer=1
B6E7: 827319	LDW	$19,$25		 Zeiger auf Filebeginn setzen
B6EA: 897616	SBW	$22,$22		 Suchdaten lschen
B6ED: F7	RTN			 zurck
-------------------------------------->	FILENAME "MEMO" NACH WORK BRINGEN
B6EE: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
B6F0: D6406CB5	PRE	IZ,&hB56C	 IZ Zeiger auf Filename "MEMO       "
B6F4: 773ED3	CAL	&hD33E		 diesen nach WORK kopieren
B6F7: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
B6FA: F7	RTN			 zurck
-------------------------------------->	VIER-ZEILEN-MODUS SETZEN
B6FB: D1000080	LDW	$0,&h8000	 128 Zeichen und keine Menzeile setzen
B6FF: B719	JR	&hB719		 und ->
-------------------------------------->	DREI-ZEILEN-MODUS UND MEHR SETZEN
B701: D600516F	PRE	IX,&h6F51	 IX Zeiger auf Betriebsmodus
B705: 241D	STD	$29,(IX+#0)	 diesen setzen
B707: 77C390	CAL	&h90C3 [BRSTR]	 Adresse der BRK-Routine speichern
B70A: C97555	SBB3	$21,$21		 Suchwort-Speicher lschen
B70D: 0238	LD	$24,#1		 Editorstatus auf Nuranzeige setzen
B70F: 77BCB7	CAL	&hB7BC		 Register $29..17 retten
B712: 776FB8	CAL	&hB86F		 Suchwortanzeigeflag lschen
B715: D1000160	LDW	$0,&h6001	 96 Zeichen und Menzeile setzen
B719: D640D068	PRE	IZ,&h68D0	 IZ Zeiger auf Menzeilenflag setzen
B71D: A100	STW	$0,(IZ+#0)	 dieses und Anzahl der Zeichen speichern
B71F: F7	RTN			 zurck
-------------------------------------->	START- & ENDADRESSE DES FILES HOLEN
B720: D600546F	PRE	IX,&h6F54	 IX Zeiger auf Aktivfileheader-Zeiger
B724: A801	LDW	$1,(IX+#0)	 diesen holen
B726: 9601	PRE	IX,$1		 IX Zeiger auf Aktivfileheader
B728: E83960	LD4	$25,(IX+#1)	 Anfangs- und Endadresse holen
B72B: F7	RTN			 zurck
-------------------------------------->	ANZAHL ZEICHEN IM FILE FESTSTELLEN
B72C: C26079	LD4	$0,$25		 Anfangs- und Endadresse kopieren
B72F: 8942	SBW	$2,#2		 Lnge feststellen
B731: 8922	SBW	$2,#1		 1 Zeichen fr Endekennzeichen abziehen
B733: F7	RTN			 zurck
-------------------------------------->	EINGABE VORBEREITEN
B734: D640C768	PRE	IZ,&h68C7	 IZ Zeiger auf Eingabemodus
B738: E900A0	LD6	$0,(IZ+#0)	 diesen und andere Parameter holen
B73B: 4E000A	OR	$0,2+8		 Cursorblinken und NoScroll-Bit setzen
B73E: 026106	LD	$1,$6		 Cursorposition holen
B741: 0202	LD	$2,#0		 Displayoffset auf Null setzen
B743: E300E0	STI8	$0,(IZ+#0)	 und alles speichern
B746: 772005	CAL	&h0520		 Display evtl. nach unten verschieben
B749: 77FBB6	CAL	&hB6FB		 Vier-Zeilen-Modus setzen
B74C: D600A168	PRE	IX,&h68A1	 IX Zeiger auf ASCII-Menzeilenpuffer
B750: D620C068	PRE	IY,&h68C0	 IY Zeiger auf Ende desselben
B754: D6406061	PRE	IZ,&h6160	 IZ Zeiger auf 4. Zeile im ASCII-Puffer
B758: D8	BUP			 in den normalen ASCII-Puffer kopieren
~Seite 110
B759: D10A607F	LDW	$10,&h7F60	 vierte Bildschirmzeile
B75D: 7737E7	CAL	&hE737 [DOTMK]	 in den Grafikdisplaypuffer
B760: 372C02	JP	&h022C [DOTDI]	 Display auffrischen und zurck
-------------------------------------->	STEHT ZEIGER AUF ZEILENANFANG?
B763: 420002	LD	$0,2		 Offset setzen
B766: D1010D0A	LDW	$1,&h0A0D	 $1=CR, $2=LF setzen
B76A: BAC1	SBCW	(IX-#2),$1	 waren letzte Zeichen CRLF?
B76C: F0	RTN	Z		  dann zurck
B76D: 3AA1	SBC	(IX-#1),$1	 oder war letztes Zeichen ein CR?
B76F: F7	RTN			 zurck
-------------------------------------->	STEHT ZEIGER AUF EOF (END-OF-FILE)?
B770: 42041A	LD	$4,26		 EOF-Zeichen holen
B773: 3A04	SBC	(IX+#0),$4	 steht Zeiger auf EOF?
B775: F7	RTN			 zurck
-------------------------------------->	MEMO-IN-TASTE VERARBEITEN
B776: 0D04	NA	$4,#0		 Filetyp egal setzen
B778: 77C1B6	CAL	&hB6C1		 "MEMO"-File im Speicher suchen
B77B: 75D3B6	CAL	C,&hB6D3	 nicht gefunden? dann erzeugen
B77E: 421D06	LD	$29,6		 MEMO-IN-Betriebsmodus setzen
B781: D10288B7	LDW	$2,&hB788	 Adresse fr BRK-Routine setzen
B785: 7701B7	CAL	&hB701		 Drei-Zeilen-Modus einschalten und mehr
--  --  --  --  --  --  --  --  --  -->	BRK-ROUTINE FR MEMO-IN & DATA-EDIT
B788: 771091	CAL	&h9110		 REV lschen
B78B: 7715B7	CAL	&hB715		 Drei-Zeilen-Modus setzen
B78E: 043D	ANC	$29,#1		 BASIC-EDIT-Modus?
B790: B41D	JR	NZ,&hB7AE	  dann ->
B792: 770DB5	CAL	&hB50D		 Anzahl der Datenstze+1 feststellen
B795: 82710F	LDW	$17,$15		 Zeiger auf nchsten Datensatz setzen
B798: 8131	SBCW	$17,#1		 gar keiner vorhanden?
B79A: B013	JR	Z,&hB7AE	  dann ->
B79C: 7763B7	CAL	&hB763		 steht Zeiger auf Zeilenanfang?
B79F: B00E	JR	Z,&hB7AE	  dann ->
B7A1: 8931	SBW	$17,#1		 Datensatznummer verringern
B7A3: 77E6B4	CAL	&hB4E6		 Zeiger auf gewnschten Datensatz setzen
B7A6: 3763BA	JP	&hBA63		 und ->
-------------------------------------->	DATENSATZ EINGEBEN
B7A9: 8231	LDW	$17,#1		 Datensatznummer=1 setzen
B7AB: 827319	LDW	$19,$25		 Zeiger auf Filebeginn setzen
B7AE: 7765B8	CAL	&hB865		 Bildschirm und Eingabepuffer lschen
B7B1: 897616	SBW	$22,$22		 Suchwortposition lschen
B7B4: 421808	LD	$24,8		 Editorstatus auf Neueingabe setzen
B7B7: 773691	CAL	&h9136		 Cursor blinkend setzen
B7BA: B72D	JR	&hB7E8		 und ->
-------------------------------------->	REGISTER $17-29 RETTEN
B7BC: 77DDDD	CAL	&hDDDD		 Userstack zurcksetzen
B7BF: E71DE0	PHU8	$29		 Register $17-29 retten
B7C2: E71580	PHU5	$21		 |
B7C5: F7	RTN			 zurck
-------------------------------------->
B7C6: 411808	SBC	$24,8		 Editorstatus nicht auf Neueingabe?
B7C9: B413	JR	NZ,&hB7DD	  dann ->
B7CB: 043D	ANC	$29,#1		 BASIC-EDIT-Modus?
B7CD: B40F	JR	NZ,&hB7DD	  dann ->
B7CF: 817319	SBCW	$19,$25		 steht Zeiger auf Filebeginn?
B7D2: B0AA	JR	Z,&hB7A9	  dann Direkteingabe ->
B7D4: 82601B	LDW	$0,$27		 steht Zeiger
~Seite 111
B7D7: 8920	SBW	$0,#1		 am Ende des Files?
B7D9: 8153	SBCW	$19,#2		 |
B7DB: B0D4	JR	Z,&hB788	  dann ->
--  --  --  --  --  --  --  --  --  -->	DATENSTZE ANZEIGEN UND EDITIEREN
B7DD: 772CB7	CAL	&hB72C		 Lnge des Files bestimmen
B7E0: B034	JR	Z,&hB815	 leer? dann ->
B7E2: 7776B8	CAL	&hB876		 Datensatz im Eing.puffer bereitstellen
B7E5: 77AFB8	CAL	&hB8AF		 mehrere Datenstze gleichz. anzeigen
B7E8: 771CB9	CAL	&hB91C		 Menzeile komplett anzeigen
--  --  --  --  --  --  --  --  --  -->	EINGABESCHLEIFE FR DIE EDIT-MODI
B7EB: D7004A6B	PRE	SS,&h6B4A	 Systemstackzeiger zurcksetzen
B7EF: 77BCB7	CAL	&hB7BC		 Register $17-29 retten
B7F2: 77A094	CAL	&h94A0		 Zeichen eingeben lassen
B7F5: D640A4B0	PRE	IZ,&hB0A4	 IZ Zeiger auf DATA-Steuerz.-Tabelle
B7F9: 0245	LD	$5,#2		 Eingabe ins richtige Register
B7FB: 0138	SBC	$24,#1		 Editorstatus auf Anzeige?
B7FD: B055	JR	Z,&hB853	  dann ->
B7FF: D64096B5	PRE	IZ,&hB596	 IZ Zeiger auf EDIT-Eingabe-Sprungtab.
B803: 4105F0	SBC	$5,240		 Sondertaste eingegeben?
B806: B149	JR	NC,&hB850	  dann ber Tabelle springen ->
B808: 411804	SBC	$24,4		 Editorstatus nicht auf Suchworteingabe?
B80B: B422	JR	NZ,&hB82E	  dann ->
B80D: 41050D	SBC	$5,13		 ist Zeichen ein EXE?
B810: 303EBC	JP	Z,&hBC3E	  dann ->
B813: B72B	JR	&hB83F		 sonst ->
--  --  --  --  --  --  --  --  --  -->	WENN FILE LEER, EVTL. ZURCK IN DEN
								DIREKTMODUS
B815: 043D	ANC	$29,#1		 nicht BASIC-EDIT-Modus?
B817: B0EF	JR	Z,&hB7A9	  dann zum Datensatz eingeben ->
B819: 9653	PRE	IZ,$19		 IZ Zeiger in File
B81B: A925	LDW	$5,(IZ+#1)	 Zeilennummer holen
B81D: 7754C0	CAL	&hC054		 als aktuelle Zeilennummer setzen
B820: 771091	CAL	&h9110		 NoScroll lschen
B823: 77CA95	CAL	&h95CA		 CLS ausgeben
B826: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
B829: A11E	STW	$30,(IZ+#0)	 auf BASIC-Modus setzen
B82B: 37A390	JP	&h90A3		 und zum Direktmodus zurckkehren
--  --  --  --  --  --  --  --  --  -->	TASTENVERARBEITUNG BEI EDIT-EINGABE
B82E: 41050D	SBC	$5,13		 ist es EXE?
B831: 30B9BB	JP	Z,&hBBB9	  dann ->
B834: 0125	SBC	$5,#1		 ist es ROLL UP?
B836: 3091B9	JP	Z,&hB991	  dann ->
B839: 410510	SBC	$5,16		 ist es ROLL DOWN?
B83C: 30D7B9	JP	Z,&hB9D7	  dann ->
B83F: 0005	ADC	$5,#0		 ist es ein Shortkey?
B841: 3044BB	JP	Z,&hBB44	  dann ->
B844: 027005	LD	$16,$5		 sonst Zeichen ins Ausgaberegister
B847: 771896	CAL	&h9618		 auf dem Display ausgeben
B84A: B7E0	JR	&hB7EB		 und Schleife ->
-------------------------------------->	SONDERTASTEN VERARBEITEN
B84C: D64087B5	PRE	IZ,&hB587	 IZ Zeiger auf Sondertastentabelle
B850: 371903	JP	&h0319		 und darber springen
~Seite 112
--  --  --  --  --  --  --  --  --  -->	TASTENVERARBEITUNG IM ANZEIGEMODUS
B853: 0005	ADC	$5,#0		 ist Zeichen ein Shortkey?
B855: 3041BB	JP	Z,&hBB41	  dann ->
B858: 4105F0	SBC	$5,240		 oder ist es eine Sondertaste?
B85B: B190	JR	NC,&hB84C	  dann ->
B85D: 410520	SBC	$5,32		 ist es ein Steuerzeichen?
B860: B591	JR	C,&hB850	  dann ->
B862: 37BABA	JP	&hBABA		 sonst neuen Datensatz einfgen
-------------------------------------->	BILDSCHIRM UND EINGABEPUFFER LSCHEN
B865: 2605	PHS	$5		 Zeichen zwischenspeichern
B867: 771F90	CAL	&h901F [INCLR]	 Eingabepuffer lschen
B86A: 77CA95	CAL	&h95CA		 CLS ausgeben
B86D: 2E10	PPS	$16		 Zeichen wieder holen
--  --  --  --  --  --  --  --  --  -->	SUCHWORTSTATUS ZURCKSETZEN
B86F: D640B06F	PRE	IZ,&h6FB0	 Zeiger auf Suchwortstatus
B873: 251F	STD	$31,(IZ+#0)	 diesen zurcksetzen
B875: F7	RTN			 zurck
-------------------------------------->	DATENSATZ IM EINGABEPUFFER BEREITSTELLEN
B876: 897616	SBW	$22,$22		 Suchwortposition lschen
B879: 771F90	CAL	&h901F [INCLR]	 Eingabepuffer lschen
B87C: 9613	PRE	IX,$19		 IX Zeiger in File
B87E: 043D	ANC	$29,#1		 nicht im BASIC-EDIT-Modus?
B880: B004	JR	Z,&hB885	 dann ->
B882: 37C5B0	JP	&hB0C5 [ENLST]	 BASIC-Zeile in Klartext wandeln ->
B885: D6400060	PRE	IZ,&h6000	 IZ Zeiger auf Eingabepuffer
B889: D1000D00	LDW	$0,&h000D	 $0=CR, $1=0
B88D: 2A02	LDI	$2,(IX+#0)	 Zeichen aus File holen
B88F: 0142	SBC	$2,#2		 ist es ein CR?
B891: F0	RTN	Z		  dann zurck
B892: 41021A	SBC	$2,26		 ist es das EOF-Zeichen?
B895: F0	RTN	Z		  dann zurck
B896: 0821	AD	$1,#1		 Kennzeichen gesetzt?
B898: B50D	JR	C,&hB8A6	  dann ->
B89A: 410220	SBC	$2,32		 kein Steuerzeichen?
B89D: B104	JR	NC,&hB8A2	  dann ->
B89F: 420220	LD	$2,32		 sonst Leerzeichen holen
B8A2: 2302	STI	$2,(IZ+#0)	 Zeichen in den Puffer setzen
B8A4: B798	JR	&hB88D		 und Schleife ->
B8A6: 411D04	SBC	$29,4		 im MEMO-Modus?
B8A9: 70CA95	CAL	Z,&h95CA	 dann Bildschirmlschen
B8AC: 37CCAB	JP	&hABCC		 im Direktmodus FC Error
-------------------------------------->	MEHRERE DATENSTZE GLEICHZEITIG ANZEIGEN
B8AF: 77E704	CAL	&h04E7 [CLEDB]	 Lschen der Displaypuffer
B8B2: 043D	ANC	$29,#1		 nicht im BASIC-EDIT-Modus?
B8B4: 30FFBD	JP	Z,&hBDFF	  dann ->
--  --  --  --  --  --  --  --  --  -->	MEHRERE BASIC-ZEILEN GLEICHZ. ANZEIGEN
B8B7: 026016	LD	$0,$22		 Displayoffset holen
B8BA: 7705B9	CAL	&hB905		 Teil vom Eingabe- in den Displaypuffer
B8BD: 094D	SB	$13,#2		 von der Lnge Displayoffset abziehen
B8BF: 420CA0	LD	$12,256-96	 Offset setzen
B8C2: 086D0C	AD	$13,$12		 ist kein Platz mehr im Display?
B8C5: B518	JR	C,&hB8DE	  dann ->
B8C7: 7776B4	CAL	&hB476		 Zeiger in die nchste Zeile setzen
B8CA: B513	JR	C,&hB8DE	 letzte Zeile in File? dann ->
B8CC: 77F0B8	CAL	&hB8F0		 IZ Zeiger in neue Zeile im Displ.puffer
B8CF: B50E	JR	C,&hB8DE	 keine Zeile mehr frei? dann ->
~Seite 113
B8D1: 260C	PHS	$12		 Offset retten
B8D3: 77CBB0	CAL	&hB0CB		 BASIC-Zeile in Klartext umwandeln
B8D6: 2E0C	PPS	$12		 Offset wieder holen
B8D8: B505	JR	C,&hB8DE	  war Puffer zu Ende? dann ->
B8DA: 381F	ADC	(IX+#0),$31	 BASIC-Programm noch nicht zu Ende?
B8DC: B491	JR	NZ,&hB8CC	  dann ->
B8DE: D10A005F	LDW	$10,&h5F00	 erste drei Bildschirmzeilen auffrischen
B8E2: 77ED04	CAL	&h04ED
B8E5: 773F91	CAL	&h913F		 Cursorblinken ausschalten
B8E8: 776FB8	CAL	&hB86F		 Suchwortstatus zurcksetzen
B8EB: 0238	LD	$24,#1		 Editorstatus auf Anzeige setzen
B8ED: 375DB7	JP	&hB75D		 Display auffrischen ->
-------------------------------------->	IZ ZEIGER IN NEUE ZEILE IM DISPLAYPUFFER
B8F0: 4C0DE0	AN	$13,224		 ist Cursorzeiger in letzter Zeile?
B8F3: 480D20	AD	$13,32		 |
B8F6: F5	RTN	C		  dann zurck
B8F7: D6400061	PRE	IZ,&h6100	 IZ Zeiger auf ASCII-Displaypuffer
B8FB: 02620D	LD	$2,$13		 Offset berechnen
B8FE: 09620C	SB	$2,$12		 |
B901: 2D6302	LDD	$3,(IZ+$2)	 IZ auf aktuelles Zeichen erhhen
B904: F7	RTN			 zurck
-------------------------------------->	TEIL DES EINBABEPUFFERS IN DEN
							DISPLAYPUFFER KOPIEREN
B905: 420160	LD	$1,&h60		 Zeiger auf Eingabepuffer komplettieren
B908: 9600	PRE	IX,$0		 IX Zeiger in Eingabepuffer
B90A: D620FF60	PRE	IY,&h60FF	 IY Zeiger auf Ende des Eingabepuffers
B90E: DC1F	SUP	$31		 Endekennzeichen suchen
B910: 9E0D	GRE	IX,$13		 Ergebnis ablegen
B912: 962D	PRE	IY,$13		 IX Quellendadresse
B914: 9600	PRE	IX,$0		 IX Quelladresse
B916: D6400061	PRE	IZ,&h6100	 IZ Zieladresse
B91A: D8	BUP			 Block kopieren
B91B: F7	RTN			 zurck
-------------------------------------->	MENZEILE KOMPLETT ANZEIGEN
B91C: 77F78F	CAL	&h8FF7		 Menzeilenspeicher lschen
B91F: 411D06	SBC	$29,6		 im MEMO-IN-Modus?
B922: B011	JR	Z,&hB934	  dann ->
B924: D6004CB5	PRE	IX,&hB54C	 IX Zeiger auf EDIT-Menzeile
B928: 420804	LD	$8,4		 vier Menpunkte anzeigen
B92B: 7739B9	CAL	&hB939		 Menpunkte in Menzeilenpuffer bringen
B92E: 77B995	CAL	&h95B9		 IZ Zeiger auf ASCII-Menzeilenpuffer
B931: 374002	JP	&h0240 [DOTPF]	 Menzeile anzeigen
B934: 774EB9	CAL	&hB94E		 Datensatznr. in Bildschirmecke setzen
B937: B78A	JR	&hB92E		 und Menzeile anzeigen
-------------------------------------->	MENPUNKTE IN MENZEILENPUFFER BRINGEN
B939: 77B995	CAL	&h95B9		 IZ Zeiger auf ASCII-Menzeilenpuffer
B93C: 167F	PST	UA,$31		 ROM-Lesekonfiguration setzen
B93E: EA09E0	LDI8	$9,(IX+#0)	 Mentext lesen
B941: E309E0	STI8	$9,(IZ+#0)	 und in den Menzeilenpuffer
B944: 0928	SB	$8,#1		 noch einmal?
B946: B489	JR	NZ,&hB93E	  dann Schleife ->
B948: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
B94B: 043D	ANC	$29,#1		 im BASIC-EDIT-Modus?
B94D: F4	RTN	NZ		  dann zurck
~Seite 114
--  --  --  --  --  --  --  --  --  -->	DATENSATZNUMMER IN BILDSCHIRMECKE SETZEN
B94E: D640B968	PRE	IZ,&h68B9	 IZ Zeiger auf Bildschirmecke
B952: D10E003C	LDW	$14,&h3C00	 "< " holen
B956: A30E	STIW	$14,(IZ+#0)	 und ins Display setzen
B958: 896F0F	SBW	$15,$15		 Wort-Speicher lschen
B95B: 826311	LDW	$3,$17		 Datensatznummer in richtige Register
B95E: 77F101	CAL	&h01F1		 16bit-Binrzahl in BCD wandeln
B961: D1000500	LDW	$0,5		 Zhler auf fnf Ziffern setzen
B965: 4C100F	AN	$16,15		 Ziffer filtern
B968: B414	JR	NZ,&hB97D	 >0? dann ->
B96A: 0001	ADC	$1,#0		 ist bereits Ziffer ausgegeben worden?
B96C: B412	JR	NZ,&hB97F	  dann ->
B96E: 2310	STI	$16,(IZ+#0)	 Ziffer in den Bildschirm setzen
B970: DA2E40	DIU3	$14		 nchste Ziffer ins Ausgaberegister
B973: 0920	SB	$0,#1		 Zhler herabsetzen
B975: B491	JR	NZ,&hB965	 noch eine Ziffer? dann Schleife ->
B977: 42103E	LD	$16,">"		 abschlieend ">" holen
B97A: 2510	STD	$16,(IZ+#0)	  und in den Bildschirm
B97C: F7	RTN			 zurck
B97D: 0221	LD	$1,#1		 Kennz. bereits ausgegebenes Zeichen
B97F: 48903094	ADJ	$16,"0",&hB96E	 in ASCII-Ziffer wandeln und ->
-------------------------------------->	EDIT-MODI: LCKEY-TASTE IN EINGABE-
							MODUS VERARBEITEN
B983: 411804	SBC	$24,4		 Editorstatus nicht auf Suchworteingabe?
B986: B446	JR	NZ,&hB9CD	  dann ->
B988: 771091	CAL	&h9110		 NoScroll lschen
B98B: 7715B7	CAL	&hB715		 Drei-Zeilen-Modus setzen
B98E: 37DDB7	JP	&hB7DD		 Datenstze anzeigen und Editieren
-------------------------------------->	EDIT-MODI: EXE & ROLL-UP VERARBEITEN
B991: 7776B4	CAL	&hB476		 Zeiger in nchste Zeile setzen
B994: B520	JR	C,&hB9B5	 letzte Zeile gewesen? dann ->
B996: 411808	SBC	$24,8		 Editorstatus auf Neueingabe?
B999: B007	JR	Z,&hB9A1	  dann ->
B99B: 8831	ADW	$17,#1		 Datensatznummer inkrementieren
B99D: 9E13	GRE	IX,$19		 Zeiger in File wieder ablegen
B99F: 0216	LD	$22,#0		 Display-Offset nullsetzen
B9A1: 772D08	CAL	&h082D
B9A4: 411D04	SBC	$29,4		 nicht im MEMO-Modus?
B9A7: B49A	JR	NZ,&hB98E	  dann zum Datenstze anz. & Edit. ->
B9A9: 027716	LD	$23,$22		 Cursor auf Displayoffset setzen
B9AC: 7779B8	CAL	&hB879		 Datensatz im Eing.puffer bereitstellen
B9AF: 77C6BD	CAL	&hBDC6		 MEMO-Datenzeilen in den Displaypuffer
B9B2: 37E693	JP	&h93E6		 ganze Zeile eingeben lassen
B9B5: 411D04	SBC	$29,4		 im MEMO-Modus?
B9B8: B087	JR	Z,&hB9B2	  dann ->
B9BA: 043D	ANC	$29,#1		 in BASIC-EDIT-Modus?
B9BC: B413	JR	NZ,&hB9D0	  dann ->
B9BE: 411808	SBC	$24,8		 Editorstatus nicht auf Neueingabe?
B9C1: 3488B7	JP	NZ,&hB788	  dann ->
B9C4: 82601B	LDW	$0,$27		 steht Zeiger nicht auf Ende des Files?
B9C7: 8920	SBW	$0,#1		 |
B9C9: 8153	SBCW	$19,#2		 |
B9CB: B4AB	JR	NZ,&hB9A1	  dann ->
B9CD: 37EBB7	JP	&hB7EB		 zur Eingabeschleife fr EDIT-Modi
B9D0: 411808	SBC	$24,8		 Editorstatus nicht auf Neueingabe?
B9D3: B487	JR	NZ,&hB9CD	  dann ->
~Seite 115
B9D5: B7B5	JR	&hB9A1		 sonst ->
-------------------------------------->	EDIT-MODI: ROLL-DOWN VERARBEITEN
B9D7: 0016	ADC	$22,#0		 Display-Offset nicht auf 0?
B9D9: B4BB	JR	NZ,&hB99F	  dann ->
B9DB: 7795B4	CAL	&hB495		 Zeiger in vorherige Zeile setzen
B9DE: B508	JR	C,&hB9E7	 war es schon erste Zeile? dann ->
B9E0: 043D	ANC	$29,#1		 im BASIC-EDIT-Modus?
B9E2: B4CD	JR	NZ,&hB996	  dann ->
B9E4: 89B1C9	SBWJ	$17,#1,&hB99D	 sonst Datensatznr. herabsetzen und ->
B9E7: 411D04	SBC	$29,4		 im MEMO-Modus?
B9EA: B0B9	JR	Z,&hB9B2	  dann ->
B9EC: 043D	ANC	$29,#1		 im BASIC-EDIT-Modus?
B9EE: B49F	JR	NZ,&hB9D0	  dann ->
B9F0: 411808	SBC	$24,8		 Editorstatus auf Neueingabe?
B9F3: B0A7	JR	Z,&hB9CD	  dann ->
B9F5: 37A9B7	JP	&hB7A9		 sonst Datensatz eingeben lassen ->
-------------------------------------->	EDIT-MODI: CRSR-DOWN VERARBEITEN
B9F8: D6000060	PRE	IX,&h6000	 IX Zeiger auf Eingabepuffer
B9FC: 2C6016	LDD	$0,(IX+$22)	 IX um Displayoffset erhhen
B9FF: 781F1F	ADC	(IX+31),$31	 Zeile nicht zu Ende?
BA02: B40D	JR	NZ,&hBA10	 dann ->
BA04: 7776B4	CAL	&hB476		 Zeiger in nchste Zeile setzen
BA07: B1F2	JR	NC,&hB996	 nicht in letzter Zeile gewesen? dann ->
--  --  --  --  --  --  --  --  --  -->	EDIT-MODI: TASTEN VERARBEITEN
BA09: 411D04	SBC	$29,4		 im MEMO-Modus?
BA0C: B0DB	JR	Z,&hB9B2	  dann ->
BA0E: B7C2	JR	&hB9CD		 sonst zurck in Eingabeschleife ->
BA10: 481620	AD	$22,32		 Displayoffset um eine Zeile erhhen
BA13: 411D04	SBC	$29,4		 im MEMO-Modus?
BA16: B0F6	JR	Z,&hB9A1	  dann ->
BA18: 027716	LD	$23,$22		 sonst Cursor auf Displayoffset setzen
BA1B: 772D08	CAL	&h082D
BA1E: 37E5B7	JP	&hB7E5		 Datenstze anz. und Eingabeschleife ->
-------------------------------------->	EDIT-MODI: CRSR-UP VERARBEITEN
BA21: 0016	ADC	$22,#0		 Displayoffset>0?
BA23: B422	JR	NZ,&hBA46	  dann ->
BA25: 7795B4	CAL	&hB495		 Zeiger in vorherige Zeile setzen
BA28: B5A0	JR	C,&hBA09	 in erster Zeile gewesen? dann ->
BA2A: 9E13	GRE	IX,$19		 IX wieder in Zeiger ablegen
BA2C: 7776B8	CAL	&hB876		 Datensatz im Eing.puffer bereitstellen
BA2F: D6000060	PRE	IX,&h6000	 IX Zeiger auf Eingabepuffer
BA33: 4216DF	LD	$22,223		 Displayoffset auf letzte mgliche Zeile
BA36: 387F16	ADC	(IX+$22),$31	 ist Zeile da noch nicht zu Ende?
BA39: B406	JR	NZ,&hBA40	  dann ->
BA3B: 491620	SB	$22,32		 Displayoffset um Zeile verringern
BA3E: B189	JR	NC,&hBA36	 noch grer als 0? dann Schleife ->
BA40: 4C16E0	AN	$22,224		 Displayoffset auf Zeilenanfang setzen
BA43: 89B1B5	SBWJ	$17,#1,&hBA10	 Datensatznr. verringern und ->
BA46: 499620B6	SBJ	$22,32,&hBA13	 Displayoffset verringern und ->
-------------------------------------->	EVTL. ZEIGER HINTER AKTUELLE ZEILE
BA4A: 043D	ANC	$29,#1		 im BASIC-EDIT-Modus?
BA4C: F4	RTN	NZ		  dann zurck
BA4D: 411D04	SBC	$29,4		 im MEMO-Modus?
BA50: F0	RTN	Z		  dann zurck
BA51: 0138	SBC	$24,#1		 Editorstatus nicht auf Anzeige?
BA53: F4	RTN	NZ		  dann zurck
~Seite 116
BA54: 7776B4	CAL	&hB476		 Zeiger in nchste Zeile setzen
BA57: 7763B7	CAL	&hB763		 steht Zeiger auf Zeilenanfang?
BA5A: F0	RTN	Z		  dann zurck ->
BA5B: AE00	PPSW	$0		 Rcksprungadresse lschen
BA5D: 77B294	CAL	&h94B2		 IX Zeiger auf Anzahl der Tasten
BA60: 77D901	CAL	&h01D9		 Taste aus Tastaturpuffer holen
--  --  --  --  --  --  --  --  --  -->	ZEILENNDERN VERANLASSEN
BA63: 776FB8	CAL	&hB86F		 Suchwortstatus zurcksetzen
BA66: 7776B8	CAL	&hB876		 Datensatz in Eing.puffer bereitstellen
BA69: 771CB9	CAL	&hB91C		 Menzeile komplett anzeigen
BA6C: B70A	JR	&hBA77		 und zur Eingabe ->
-------------------------------------->	EDIT-MODI: LINE-TOP/END & CRSR-
							LEFT/RIGHT VERARBEITEN
BA6E: 411D04	SBC	$29,4		 im MEMO-Modus?
BA71: 30E693	JP	Z,&h93E6	  dann Datensatz ndern lassen
BA74: 772D08	CAL	&h082D
BA77: 77E704	CAL	&h04E7 [CLEDB]	 Display- und Grafikpuffer lschen
BA7A: 0200	LD	$0,#0		 Offset auf Null setzen
BA7C: 7705B9	CAL	&hB905		 Teil des Eing.puffers in Disp. kopieren
BA7F: 020A	LD	$10,#0		 erstes...
BA81: 026B0D	LD	$11,$13		  bis letztes Zeichen der Zeile
BA84: 7737E7	CAL	&hE737 [DOTMK]	 in den Grafikpuffer bringen
BA87: D640C868	PRE	IZ,&h68C8	 IZ Zeiger auf Cursorzeiger
BA8B: 026016	LD	$0,$22		 Displayoffset nach Register $0 holen
BA8E: D600B06F	PRE	IX,&h6FB0	 IX Zeiger auf Suchwortstatus
BA92: 381F	ADC	(IX+#0),$31	 wird kein Suchwort angezeigt?
BA94: B005	JR	Z,&hBA9A	  dann ->
BA96: 241F	STD	$31,(IX+#0)	 sonst Suchwortstatus lschen
BA98: 28A0	LD	$0,(IX-#1)	 Position des Suchworts nach $0 holen
BA9A: 026116	LD	$1,$22		 Displayoffset nach Register $1 holen
BA9D: 4101C0	SBC	$1,192		 Displayoffset<192?
BAA0: B504	JR	C,&hBAA5	  dann ->
BAA2: 4201A0	LD	$1,160		 auf 160 setzen (damit kein Loch klafft)
BAA5: A100	STW	$0,(IZ+#0)	 Cursorpos. und Displayoffset setzen
BAA7: 773691	CAL	&h9136		 Cursorblinken einschalten
BAAA: 421808	LD	$24,8		 Editorstatus auf Eingabe setzen
BAAD: 043D	ANC	$29,#1		 im BASIC-EDIT-Modus?
BAAF: B404	JR	NZ,&hBAB4	  dann ->
BAB1: 421802	LD	$24,2		 sonst Editorstatus auf Dateneingabe
BAB4: 77B503	CAL	&h03B5
BAB7: 37EBB7	JP	&hB7EB		 in die EDIT-Eingabeschleife
-------------------------------------->	EDIT-MODI: CLS VERARBEITEN
BABA: 7765B8	CAL	&hB865		 Eingabe- und Displaypuffer lschen
BABD: 411D04	SBC	$29,4		 im MEMO-Modus?
BAC0: B035	JR	Z,&hBAF6	  dann ->
BAC2: 774ABA	CAL	&hBA4A		 evtl. hinter aktuelle Zeile setzen
BAC5: 771896	CAL	&h9618		 ?1? setzen und Zeichen ausgeben
BAC8: 043D	ANC	$29,#1		 im BASIC-EDIT-Modus?
BACA: B408	JR	NZ,&hBAD3	  dann ->
BACC: 7776B4	CAL	&hB476		 Zeiger in nchste Zeile setzen
BACF: 8831	ADW	$17,#1		 Datensatznummer erhhen
BAD1: 9E13	GRE	IX,$19		 IX wieder als Zeiger ablegen
BAD3: 37B1B7	JP	&hB7B1		 Suchwortstatus lschen & zur Eingabe ->
~Seite 117
-------------------------------------->	TASTEN VERARBEITEN
BAD6: 4105F0	SBC	$5,240		 ist es keine Sondertaste?
BAD9: B514	JR	C,&hBAEE	  dann ->
BADB: 4105F2	SBC	$5,242		 ist es die MEMO-Taste?
BADE: 3585BC	JP	C,&hBC85	  dann ->
BAE1: 3061BB	JP	Z,&hBB61	 oder die ANS-Taste? dann ->
BAE4: 4105F4	SBC	$5,244		 ist es die OUT-Taste?
BAE7: B56E	JR	C,&hBB56	  dann >
BAE9: B017	JR	Z,&hBB01	 oder die IN-Taste? dann ->
BAEB: 37E693	JP	&h93E6		 sonst wieder in die Eingabe ->
BAEE: 7765B8	CAL	&hB865		 Eingabe- und Dis1aypuffer lschen
BAF1: 771896	CAL	&h9618		 Zeichen auf Display ausgeben
BAF4: B701	JR	&hBAF6		 {berflssig!!!}
BAF6: 773691	CAL	&h9136		 Cursorblinken einschalten
BAF9: 37E294	JP	&h94E2		 in den CAL-Modus
-------------------------------------->	REST DER IN-TASTEN-VERARBEITUNG
BAFC: 7765B8	CAL	&hB865		 Eingabe- und Displaypuffer lschen
BAFF: B78A	JR	&hBAF6		 und in den CAL-Modus ->
--  --  --  --  --  --  --  --  --  -->	EDIT-MODI: IN-TASTE IM ANZ.MODUS VERARB.
BB01: D6000060	PRE	IX,&h6000	 IX Zeiger auf Eingabepuffer
BB05: D620FF60	PRE	IY,&h60FF	 IY Zeiger auf Ende desselben
BB09: D6401A6D	PRE	IZ,&h6D1A	 IZ Zeiger auf CALC-Speicher
BB0D: D8	BUP			 Puffer in den CALC-Speicher kopieren
BB0E: 7776B4	CAL	&hB476		 Zeiger in nchste Zeile setzen
BB11: B10B	JR	NC,&hBB1D	 nicht letzte Zeile gewesen? dann ->
BB13: 043D	ANC	$29,#1		 im BASIC-EDIT-Modus?
BB15: 3488B7	JP	NZ,&hB788	  dann ->
BB18: 411D04	SBC	$29,4		 im MEMO-Modus?
BB1B: B0A0	JR	Z,&hBAFC	  dann in den CAL-Modus ->
BB1D: 8831	ADW	$17,#1		 Datensatznummer erhhen
BB1F: 9E13	GRE	IX,$19		 IX wieder als Zeiger ablegen
BB21: 411D04	SBC	$29,4		 nicht im MEMO-Modus?
BB24: 34D4B7	JP	NZ,&hB7D4	  dann ->
BB27: 0216	LD	$22,#0		 Displayoffset auf Null setzen
BB29: 37A9B9	JP	&hB9A9		 Datensatz anzeigen und Editieren ->
-------------------------------------->	EDIT-MODI: IN-TASTE IM EING.MODUS VERARB.
BB2C: 774F92	CAL	&h924F		 Zeile in den CALC-Speicher kopieren
BB2F: 411804	SBC	$24,4		 Editorstatus nicht Suchworteingabe?
BB32: B409	JR	NZ,&hBB3C	  dann ->
BB34: 421018	LD	$16,24		 gesamte Bildschirmzeile lschen
BB37: 771896	CAL	&h9618		 |
BB3A: B77B	JR	&hBBB6		 und ->
BB3C: 77C3AF	CAL	&hAFC3		 Cursor in neue Displayzeile setzen
BB3F: B776	JR	&hBBB6		 und ->
-------------------------------------->	EDIT-MODI: SHORTKEY VERARBEITEN
BB41: 7765B8	CAL	&hB865		 Eingabe- und Displaypuffer lschen
BB44: 774ABA	CAL	&hBA4A		 evtl. Zeiger hinter nchste Zeile
BB47: 772994	CAL	&h9429		 Shortkey ausgeben
BB4A: 411D04	SBC	$29,4		 im MEMO-Modus?
BB4D: B0D8	JR	Z,&hBAF6	  dann in den CAL-Modus ->
BB4F: 0138	SBC	$24,#1		 Editorstatus auf Anzeige?
BB51: 30C8BA	JP	Z,&hBAC8	  dann ->
BB54: B761	JR	&hBBB6		 sonst ->
~Seite 118
-------------------------------------->	EDIT-MODI: OUT-TASTE VERARBEITEN
BB56: 7765B8	CAL	&hB865		 Eingabe- und Displaypuffer lschen
BB59: 774ABA	CAL	&hBA4A
BB5C: 779A92	CAL	&h929A		 CALC-Speicher ausgeben
BB5F: B796	JR	&hBB4A		 und ->
-------------------------------------->	EDIT-MODI: ANS-TASTE VERARBEITEN
BB61: 7765B8	CAL	&hB865		 Eingabe- und Displaypuffer lschen
BB64: 774ABA	CAL	&hBA4A
BB67: 261B	PHS	$27		 Register $17-24 und $27 retten
BB69: E618E0	PHS8	$24		 |
BB6C: 77B292	CAL	&h92B2		 ANS-Wert ausgeben
BB6F: EE11E0	PPS8	$17		 Register $17-24 und $27 wieder holen
BB72: 2E1B	PPS	$27		 |
BB74: B7AB	JR	&hBB4A		 und ->
-------------------------------------->	EBIT-MODI: SENSORTASTEN VERARBEITEN
BB76: 411D06	SBC	$29,6		 in MEMO-IN-Modus?
BB79: B03C	JR	Z,&hBBB6	  dann ->
BB7B: 411804	SBC	$24,4		 Editorstatus auf Suchworteingabe?
BB7E: B037	JR	Z,&hBBB6	  dann auch ->
BB80: D640A8B5	PRE	IZ,&hB5A8	 IZ Zeiger auf Sensortastentabelle
BB84: 043D	ANC	$29,#1		 in BASIC-EDIT-Modus?
BB86: B404	JR	NZ,&hBB8B	  dann ->
BB88: 6D0003	LDD	$0,(IZ+3)	 sonst ersten Eintrag berlesen
BB8B: 371903	JP	&h0319		 ber Tabelle springen
-------------------------------------->	[SEARCH]-TASTE VERARBEITEN
BB8E: 42800803	LDJ	$0,8,&hBB94	 Offset auf Text "search?" setzen und ->
-------------------------------------->	[DELETE]-TASTE VERARBEITEN
BB92: 0200	LD	$0,#0		 Offset auf Text "delete?" setzen
BB94: D640BA6F	PRE	IZ,&h6FBA	 IZ Zeiger auf Such-/Lsch-Flag
BB98: 2500	STD	$0,(IZ+#0)	 Offset dort ablegen
BB9A: 2600	PHS	$0		  und speichern
BB9C: 77F78F	CAL	&h8FF7		 Menzeilenspeicher lschen
BB9F: 2E00	PPS	$0		 Offset wieder holen
BBA1: D1066777	LDW	$6,&h7767	 $6=103, $7=119 Eingabefeld bestimmen
BBA5: D60077B5	PRE	IX,&hB577	 IX Zeiger auf Texte
BBA9: 2C41	LDD	$1,(IX+#2)	 IX um Offset erhhen
BBAB: 0228	LD	$8,#1		 Zhler auf 1 Menpunkt setzen
BBAD: 7739B9	CAL	&hB939		 Menpunkte in Menzeilenpuffer setzen
BBB0: 7734B7	CAL	&hB734		 Eingabe vorbereiten
BBB3: 421804	LD	$24,4		 Editorstatus auf Suchworteingabe
BBB6: 37EBB7	JP	&hB7EB		 in die Editor-Eingabeschleife
-------------------------------------->	EDIT-MODI: EXE BEI EINBABE VERARBEITEN
BBB9: D600CA68	PRE	IX,&h68CA	 IX Zeiger auf Zeiger in logische Zeile
BBBD: D100FF00	LDW	$0,&h00FF	 $0=255, $1=0 setzen
BBC1: E01F40	ST3	$31,(IX+#0)	 mit Ende & Beg. d. log. Zeile speichern
BBC4: 77EA90	CAL	&h90EA		 IX Zeiger auf erstes Zeichen der Zeile
BBC7: 043D	ANC	$29,#1		 im BASIC-EDIT-Modus?
BBC9: B439	JR	NZ,&hBC03	  dann ->
BBCB: D6400060	PRE	IZ,&h6000	 IZ Zeiger auf Eingabepuffer
BBCF: 8940	SBW	$0,#2		 Puffergre zurcksetzen
BBD1: 2A02	LDI	$2,(IX+#0)	 Zeichen aus Displaypuffer holen
BBD3: 0002	ADC	$2,#0		 ist es das Endekennzeichen?
BBD5: B00A	JR	Z,&hBBE0	  dann ->
BBD7: 2302	STI	$2,(IZ+#0)	 sonst Zeichen in den Eingabepuffer
BBD9: 0820	AD	$0,#1		 Zhler erhhen
BBDB: B18B	JR	NC,&hBBD1	 Puffer nicht voll? dann Schleife ->
~Seite 119
BBDD: 37CCAB	JP	&hABCC		 sonst BV Error
BBE0: 0000	ADC	$0,#0		 Puffer leer?
BBE2: B03F	JR	Z,&hBC22	  dann ->
BBE4: D1020D0A	LDW	$2,&h0A0D	 sonst CRLF holen
BBE8: A102	STW	$2,(IZ+#0)	 und an den Puffer anhngen
BBEA: 8820	ADW	$0,#1		 und Puffergre um 2 erhhen
BBEC: 8820	ADW	$0,#1		 |
BBEE: 411808	SBC	$24,8		 Editorstatus nicht auf Neueingabe?
BBF1: B436	JR	NZ,&hBC28	  dann Datenzeile austauschen ->
BBF3: 826213	LDW	$2,$19		 $2/3 an aktuelle Stelle setzen
BBF6: 7792B2	CAL	&hB292		 Datenfile-Speicher ffnen
BBF9: 8244	LDW	$4,#2		 $4/5 Lnge der Zeile
BBFB: 826002	LDW	$0,$2		 $0/1 Zieladresse
BBFE: 77F2B3	CAL	&hB3F2		 neue Zeile ins File kopieren
BC01: B729	JR	&hBC2B		 und ->
--  --  --  --  --  --  --  --  --  --	EINGABE EINER BASIC-ZEILE VERARBEITEN
BC03: 381F	ADC	(IX+#0),$31	 Zeile leer?
BC05: B035	JR	Z,&hBC3B	  dann ->
BC07: 2617	PHS	$23		 Cursor zwischenspeichern
BC09: 778696	CAL	&h9686		 Zeile tokenisieren
BC0C: 2E17	PPS	$23		 Cursor wieder holen
BC0E: 000F	ADC	$15,#0		 keine Zeilennummer am Anfang?
BC10: 3000AC	JP	Z,&hAC00	  dann UL Error
BC13: 77BCB3	CAL	&hB3BC		 BASIC-Zeile einfgen/lschen
BC16: 9613	PRE	IX,$19		 IX Zeiger in das Programm
BC18: 381F	ADC	(IX+#0),$31	 steht Zeiger nicht auf Programmende?
BC1A: B420	JR	NZ,&hBC3B	  dann ->
BC1C: 7795B4	CAL	&hB495		 Zeiger auf vorherige Zeile setzen
BC1F: 9E931A	GREJ	IX,$19,&hBC3B	 IX wieder als Zeiger ablegen und ->
--  --  --  --  --  --  --  --  --  --	LEERE EINGABE IN DATENFILE VERARBEITEN
BC22: 411808	SBC	$24,8		 Editorstatus auf Neueingabe?
BC25: 30D4B7	JP	Z,&hB7D4	  dann ->
BC28: 772CB4	CAL	&hB42C		 Zeile in Datenfile austauschen
--  --  --  --  --  --  --  --  --  --	DATENSATZNUMMER EVTL. KORRIGIEREN
BC2B: 9613	PRE	IX,$19		 IX Zeiger in File setzen
BC2D: 7770B7	CAL	&hB770		 steht Zeiger nicht auf EOF?
BC30: B40A	JR	NZ,&hBC3B	  dann ->
BC32: 7795B4	CAL	&hB495		 Zeiger auf vorherige Zeile setzen
BC35: B505	JR	C,&hBC3B	 war es schon erste Zeile? dann ->
BC37: 8931	SBW	$17,#1		 sonst Datensatznummer herabsetzen
BC39: 9E13	GRE	IX,$19		 IX wieder als Zeiger ablegen
BC3B: 37DDB7	JP	&hB7DD		 Datenstze anzeigen und Editieren
-------------------------------------->	EXE NACH SUCHWORT-/BEREICHSEING. VERARB.
BC3E: 771091	CAL	&h9110		 NoScroll lschen
BC41: 7715B7	CAL	&hB715		 Drei-Zeilen-Modus setzen
BC44: 77EA90	CAL	&h90EA		 IX Zeiger auf erstes Zeichen der Zeile
BC47: D640BA6F	PRE	IZ,&h6FBA	 IZ Zeiger auf Suchwort
BC4B: 3F1E	SB	(IZ+#0),$30	 ist Suchwort eingegeben worden?
BC4D: B15B	JR	NC,&hBCA9	  dann ->
-------------------------------------->	BEREICHSEINGABE VERARBEITEN
BC4F: 77FF00	CAL	&h00FF		 ist aktuelles Zeichen ein Endzeichen?
BC52: B598	JR	C,&hBC3B	  dann ->
BC54: 7727AB	CAL	&hAB27		 Zeilenbereichsangabe lesen
BC57: 043D	ANC	$29,#1		 im BASIC-EDIT-Modus?
BC59: B426	JR	NZ,&hBC80	  dann ->
BC5B: 827104	LDW	$17,$4		 $17/18 auf Anfangsdatensatz setzen
~Seite 120
BC5E: 77E6B4	CAL	&hB4E6		 diesen suchen
BC61: A614	PHSW	$20		 Zeiger speichern
BC63: 827106	LDW	$17,$6		 $17/18 auf Enddatensatz setzen
BC66: 77E6B4	CAL	&hB4E6		 diesen suchen
BC69: 775EB4	CAL	&hB45E		 Zeichen bis zum Zeilenende berlesen
BC6C: AE00	PPSW	$0		 Anfangszeiger wieder holen
BC6E: 9E02	GRE	IX,$2		 Endzeiger ablegen
BC70: 8942	SBW	$2,#2		 $2/3 Bereichsgre feststellen
BC72: 8253	LDW	$19,#2		 Filezeiger auf Bereichsanfang setzen
BC74: 776CB2	CAL	&hB26C		 Datenfile-Speicher zusammenschieben
BC77: 7717B5	CAL	&hB517		 Datensatznummer feststellen
BC7A: 82710F	LDW	$17,$15		 und als aktuelle setzen
BC7D: 372BBC	JP	&hBC2B		 evtl. Datensatznummer korrigieren ->
--  --  --  --  --  --  --  --  --  --	BASIC-BEREICHSANGABE VERARBEITEN
BC80: 77C6B5	CAL	&hB5C6		 Zeilenbereich lschen
BC83: B7EE	JR	&hBC16		  und ->
--  --  --  --  --  --  --  --  --  -->	[NEXT  ]-TASTE VERARBEITEN
BC85: 043D	ANC	$29,#1		 im BASIC-EDIT-Modus?
BC87: 7079B8	CAL	Z,&hB879	 dann Datens. in Eing.puffer bereitst.
BC8A: B729	JR	&hBCB4		 in die Suchroutine ->
--  --  --  --  --  --  --  --  --  --	SUCHWORT MIT ZEILENINHALT VERGLEICHEN
BC8C: 07C966	XRCJ	$9,#2,&hBCF4	 vergleichen und ->
BC8F: 87C963	XRCWJ	$9,#2,&hBCF4	 vergleichen und ->
BC92: C7C9405F	XRCJ3	$9,#2,&hBCF4	 vergleichen und ->
BC96: C7C9605B	XRCJ4	$9,#2,&hBCF4	 vergleichen und ->
BC9A: C7C98057	XRCJ5	$9,#2,&hBCF4	 vergleichen und ->
BC9E: C7C9A053	XRCJ6	$9,#2,&hBCF4	 vergleichen und ->
BCA2: C7C9C04F	XRCJ7	$9,#2,&hBCF4	 vergleichen und ->
--  --  --  --  --  --  --  --  --  --	REST
BCA6: 08B71F	ADJ	$23,#1,&hBCC7	 Cursor erhhen und Schleife ->
--  --  --  --  --  --  --  --  --  --	SUCHE STARTEN
BCA9: 7799BD	CAL	&hBD99		 Suchwort in Suchwortspeicher bringen
BCAC: 827319	LDW	$19,$25		 Filezeiger auf Filebeginn setzen
BCAF: 8231	LDW	$17,#1		 Datensatznummer auf 1 setzen
BCB1: 7776B8	CAL	&hB876		 Datensatz im Eing.puffer bereitstellen
BCB4: D640B26F	PRE	IZ,&h6FB2	 IZ Zeiger auf Suchwortspeicher
BCB8: E900E0	LD8	$0,(IZ+#0)	 Suchwort holen
BCBB: D6000060	PRE	IX,&h6000	 IX Zeiger auf Eingabepuffer
BCBF: 441D04	ANC	$29,4		 nicht im MEMO-/MEMO-IN-Modus?
BCC2: B009	JR	Z,&hBCCC	  dann ->
BCC4: 420920	LD	$9," "		 Leerzeichen holen
BCC7: 3A6917	SBC	(IX+$23),$9	 zeigt Cursor auf Leerzeichen?
BCCA: B0A5	JR	Z,&hBCA6	  dann ->
BCCC: E869F7	LD8	$9,(IX+$23)	 acht Zeichen aus Eingabepuffer holen
BCCF: 0009	ADC	$9,#0		 ist erstes Zeichen Endekennzeichen?
BCD1: B030	JR	Z,&hBD02	  dann ->
BCD3: 026815	LD	$8,$21		 Lnge des Suchworts holen
BCD6: 0928	SB	$8,#1		 =0?
BCD8: B536	JR	C,&hBD0F	  dann gefunden ->
BCDA: B0CF	JR	Z,&hBC8C	 =1? dann ->
BCDC: 490802	SB	$8,2		 =2?
BCDF: B5D1	JR	C,&hBC8F	  dann ->
BCE1: B0D0	JR	Z,&hBC92	 =3? dann ->
BCE3: 490802	SB	$8,2		 =4?
BCE6: B5D1	JR	C,&hBC96	  dann ->
BCE8: B0CF	JR	Z,&hBC9A	 =5? dann ->
~Seite 121
BCEA: 490802	SB	$8,2		 =6?
BCED: B5D0	JR	C,&hBC9E	  dann ->
BCEF: B0CE	JR	Z,&hBCA2	 =7? dann ->
BCF1: C749E0	XRC8	$9,#2		 =8? dann sofort vergleichen
BCF4: B01A	JR	Z,&hBD0F	 stimmt es berein? dann gefunden ->
BCF6: 0837	AD	$23,#1		 Cursor erhhen
BCF8: 441D04	ANC	$29,4		 nicht im MEMO-/MEMO-IN-Modus?
BCFB: B0B0	JR	Z,&hBCCC	  dann Schleife ->
BCFD: 77B4BD	CAL	&hBDB4		 IX auf nchsten Wort-Anfang
BD00: B7BA	JR	&hBCC7		  und Schleife ->
BD02: 770792	CAL	&h9207		 auf OFF, C.BOOT und BRK prfen
BD05: 7776B4	CAL	&hB476		 Zeiger in nchste Zeile setzen
BD08: B52C	JR	C,&hBD35	 war es letzte Zeile? dann ->
BD0A: 9E13	GRE	IX,$19		 sonst IX wieder als Filezeiger setzen
BD0C: 88B1DD	ADWJ	$17,#1,&hBCB1	 Datensatznummer erhhen und Schleife ->
--  --  --  --  --  --  --  --  --  --	SUCHWORT GEFUNDEN
BD0F: 027617	LD	$22,$23		 Cursor als Displayoffset bernehmen
BD12: 4C16E0	AN	$22,&hE0	 Zeile herausfiltern
BD15: 441D04	ANC	$29,4		 im MEMO- oder MEMO-IN-Modus?
BD18: B417	JR	NZ,&hBD30	  dann ->
BD1A: 77AFB8	CAL	&hB8AF		 mehrere Datenstze gleichz. anzeigen
BD1D: 772CB5	CAL	&hB52C		 gefundene Zeichenkette invertieren
BD20: 0837	AD	$23,#1		 Cursor um ein Zeichen erhhen
BD22: 441D04	ANC	$29,4		 im MEMO- oder MEMO-IN-Modus?
BD25: 74B4BD	CAL	NZ,&hBDB4	  dann IX auf nchsten Wort-Anfang
BD28: 411D04	SBC	$29,4		 nicht im MEMO-Modus?
BD2B: 34E8B7	JP	NZ,&hB7E8	  dann Menz. anz. & zur Editorschl. ->
BD2E: B767	JR	&hBD96		 sonst in Eingaberoutine ->
BD30: 77C6BD	CAL	&hBDC6		 MEMO-Datenzeilen in den Displaypuffer
BD33: B797	JR	&hBD1D		 zum Invertieren ->
--  --  --  --  --  --  --  --  --  --	SUCHWORT NICHT GEFUNDEN
BD35: 411D04	SBC	$29,4		 im MEMO-Modus?
BD38: 30FCBA	JP	Z,&hBAFC	  dann ->
BD3B: 3788B7	JP	&hB788		 sonst ->
-------------------------------------->	EDIT-MODI: MEMO-TASTE VERARBEITEN
BD3E: 411D06	SBC	$29,6		 nicht im MEMO-IN-Modus?
BD41: B41C	JR	NZ,&hBD5E	  dann ->
BD43: 77E392	CAL	&h92E3		 Cursorblinken ausgeschaltet?
BD46: B040	JR	Z,&hBD87	  dann zur Verarb. der [next  ]-Taste ->
BD48: 77E5B6	CAL	&hB6E5		 Filezeiger auf Filebeginn setzen
BD4B: 77EA90	CAL	&h90EA		 IX Zeiger auf erstes Zeichen der Zeile
BD4E: 7799BD	CAL	&hBD99		 Suchwort in Suchwortspeicher bringen
BD51: B735	JR	&hBD87		 zur Verarbeitung der [next  ]-Taste ->
-------------------------------------->	DIREKT-MODI: MEMO-TASTE VERARBEITEN
BD53: 773BC1	CAL	&hC13B		 REV lschen und Kanle schlieen
BD56: 770B93	CAL	&h930B		 IZ Zeiger auf ENG-Status
BD59: 77FD92	CAL	&h92FD		 CRLF ausgeben, falls ENG-Status gesetzt
BD5C: 251F	STD	$31,(IZ+#0)	 ENG-Status lschen
BD5E: 420424	LD	$4,36		 EOF-Zeichen holen
BD61: 77C1B6	CAL	&hB6C1		 "MEMO"-File suchen
BD64: D600516F	PRE	IX,&h6F51	 IX Zeiger auf Betriebsmodus
BD68: 2C1D	LDD	$29,(IX+#0)	 diesen holen
BD6A: B51F	JR	C,&hBD8A	 "MEMO"-File nicht gefunden? dann ->
BD6C: 771091	CAL	&h9110		 NoScroll-Bit lschen
BD6F: D102FCBA	LDW	$2,&hBAFC	 $2/3 Zeiger auf BRK-Routine
BD73: 77C390	CAL	&h90C3 [BRSTR]	 in den ACJMP-Vektor setzen
~Seite 122
BD76: 421D04	LD	$29,4		 MEMO-Modus setzen
BD79: 221D	STI	$29,(IX+#0)	 Betriebsmodus setzen
BD7B: 203F	ST	$31,(IX+#1)	  und Menteilnummer lschen
BD7D: 77FBB6	CAL	&hB6FB		 Vier-Zeilen-Modus setzen
BD80: 77E392	CAL	&h92E3		 Cursorblinken eingeschaltet?
BD83: B4B9	JR	NZ,&hBD4B	  dann Suchwort bernehmen und suchen ->
BD85: 0215	LD	$21,#0		 Lnge des Suchworts auf Null setzen
BD87: 3785BC	JP	&hBC85		 zur Verarbeitung der [next  ]-Taste ->
BD8A: 441D02	ANC	$29,2		 nicht im MEMO-IN- oder DATA-EDIT-Modus?
BD8D: 34EBB7	JP	NZ,&hB7EB	  dann ->
BD90: 441D40	ANC	$29,64		 nicht im MENU-Modus?
BD93: 703691	CAL	Z,&h9136	  dann
BD96: 37E693	JP	&h93E6		 wieder in die Eingabeschleife ->
-------------------------------------->	SUCHWORT IN DEN SUCHWORTSPEICHER BRINGEN
BD99: D640B96F	PRE	IZ,&h6FB9	 IZ Zeiger auf Suchwortspeicher
BD9D: E800E0	LD8	$0,(IX+#0)	 Suchwort aus Zeile lesen
BDA0: E507E0	STD8	$7,(IZ+#0)	 und in den Suchwortspeicher bringen
BDA3: 0215	LD	$21,#0		 Lnge des Suchworts auf Null setzen
BDA5: 420108	LD	$1,8		 Zhler auf Maximalsuchwortlnge setzen
BDA8: 2A00	LDI	$0,(IX+#0)	 Zeichen holen
BDAA: 0000	ADC	$0,#0		 ist es Endekennzeichen?
BDAC: F0	RTN	Z		  dann zurck
BDAD: 0835	AD	$21,#1		 Suchwortlnge erhhen
BDAF: 0921	SB	$1,#1		 Maximallnge herabsetzen
BDB1: B48A	JR	NZ,&hBDA8	 noch einmal? dann Schleife ->
BDB3: F7	RTN			 zurck
-------------------------------------->	IX AUF NCHSTEN WORTANFANG SETZEN
BDB4: D6000060	PRE	IX,&h6000	 IX Zeiger auf Eingabepuffer
BDB8: 420920	LD	$9," "		 Leerzeichen holen
BDBB: 387F17	ADC	(IX+$23),$31	 zeigt Cursor auf Zeilenende?
BDBE: F0	RTN	Z		  dann zurck
BDBF: 3A6917	SBC	(IX+$23),$9	 oder auf Leerzeichen?
BDC2: F0	RTN	Z		  dann ebenfalls zurck
BDC3: 08B78A	ADJ	$23,#1,&hBDBB	 sonst Cursor erhhen und Schleife ->
-------------------------------------->	MEMO-DATENZEILEN IN DEN DISPLAYPUFFER
BDC6: 77E704	CAL	&h04E7		 beide Displaypuffer lschen
BDC9: D640D068	PRE	IZ,&h68D0	 IZ Zeiger auf ???
BDCD: 2D00	LDD	$0,(IZ+#0)	 diesen holen
BDCF: 1840	BID	$0		 Bit 0 gesetzt?
BDD1: B52D	JR	C,&hBDFF	  dann ->
BDD3: D10C8080	LDW	$12,&h8080	 Displaybegrenzungen setzen
BDD7: 420B7F	LD	$11,&h7F	 Displaygre festlegen
BDDA: 020A	LD	$10,#0		 ab erstem Zeichen im Puffer anzeigen
BDDC: 9613	PRE	IX,$19		 IX Zeiger in das File
BDDE: 2C6016	LDD	$0,(IX+$22)	 IX um Displayoffset erhhen
BDE1: D6400061	PRE	IZ,&h6100	 IZ Zeiger auf ASCII-Displaypuffer
BDE5: D1000D0A	LDW	$0,&h0A0D	 $0=CR, $1=LF setzen
BDE9: 2A05	LDI	$5,(IX+#0)	 nchstes Zeichen aus File lesen
BDEB: 0145	SBC	$5,#2		 ist es kein CR?
BDED: B419	JR	NZ,&hBE07	  dann -
BDEF: 7770B4	CAL	&hB470		 evtl. LF in File berlesen
BDF2: 7770B7	CAL	&hB770		 steht Zeiger auf EOF?
BDF5: B006	JR	Z,&hBDFC	  dann ->
BDF7: 77F0B8	CAL	&hB8F0		 IZ Zeiger in nchste Displayzeile
BDFA: B192	JR	NC,&hBDE9	 Display nicht voll? dann Schleife ->
BDFC: 37E2B8	JP	&hB8E2		 und ->
~Seite 123
BDFF: D10CA0A0	LDW	$12,&hA0A0	 Displaybegrenzungen setzen
BE03: 428B5FAC	LDJ	$11,95,&hBDDA	 Displaygre setzen und ->
BE07: 41051A	SBC	$5,26		 ist Zeichen das EOF?
BE0A: B08F	JR	Z,&hBDFC	  dann ->
BE0C: 2305	STI	$5,(IZ+#0)	 sonst in Displaypuffer setzen
BE0E: 08AD96	ADJ	$13,#1,&hBDFA	 Pufferlnge erhhen und Schleife ->

=== RS232C-SCHNITTSTELLEN-ROUTINEN =============================================
-------------------------------------->	RSOPN: FFNEN DES RS232C-KANALS
BE11: 02660B	LD	$6,$11
BE14: 4C06FC	AN	$6,&hFC
BE17: 49061C	SB	$6,&h1C
BE1A: 30C0AB	JP	Z,&hABC0	 dann SN Error
BE1D: D640FB6B	PRE	IZ,&h6BFB	 IZ Zeiger auf RS232C-Parameter
BE21: 440D02	ANC	$13,2
BE24: B004	JR	Z,&hBE29	 dann ->
BE26: 4E0003	OR	$0,3
BE29: 2500	STD	$0,(IZ+#0)
BE2B: 7792BF	CAL	&hBF92
BE2E: 21AB	ST	$11,(IZ-#1)
BE30: 420D4C	LD	$13,&h4C
BE33: 0E4D	OR	$13,#2
BE35: 250D	STD	$13,(IZ+#0)
BE37: 440002	ANC	$0,2		 nur Empfangen?
BE3A: F0	RTN	Z		 dann zurck
BE3B: D640066C	PRE	IZ,&h6C06	 IZ Zeiger auf Eingangs-Zeichenanzahl
BE3F: 251F	STD	$31,(IZ+#0)	 diese auf Null setzen
BE41: 213F	ST	$31,(IZ+#1)	 Puffer-Offset auf Null setzen
BE43: 7772BF	CAL	&hBF72		 baudratenabhngig verzgern
BE46: D640010C	PRE	IZ,&h0C01	 IZ Zeiger auf Interface-DIP-Schalter
BE4A: 2921	LD	$1,(IZ+#1)	 diese holen
BE4C: 778EBF	CAL	&hBF8E
--  --  --  --  --  --  --  --  --  -->	INT1 FREIGEBEN
BE4F: 1F20	GST	IE,$0		 Interrupt-Enable ablegen
BE51: 4E0080	OR	$0,&h80		 INT1-Bit setzen
BE54: 1720	PST	IE,$0		 Interrupt-Enable setzen
BE56: F7	RTN			 zurck
-------------------------------------->	INT1 SPERREN
BE57: 1F20	GST	IE,$0		 Interrupt-Enable ablegen
BE59: 4C807F88	ANJ	$0,&h7F,&hBE54	 INT1-Bit lschen und ->
-------------------------------------->	RSCLO: SCHLIESSEN DES RS232C-KANALS
BE5D: D640FB6B	PRE	IZ,&h6BFB	 IZ Zeiger auf RS232C-Parameter
BE61: 2D00	LDD	$0,(IZ+#0)	 RS232C-Betriebsmodus holen
BE63: 0420	ANC	$0,#1		 Sendemodus gesetzt?
BE65: B00B	JR	Z,&hBE71	  dann ->
BE67: 7767BF	CAL	&hBF67		 warten, bis Interface annahmebereit
BE6A: 7772BF	CAL	&hBF72		 baudratenabhngig verzgern
BE6D: D640FB6B	PRE	IZ,&h6BFB	 IZ Zeiger auf RS232C-Parameter
BE71: 251F	STD	$31,(IZ+#0)	 auf kein Betrieb setzen
BE73: 7757BE	CAL	&hBE57		 INT1 sperren
BE76: D640010C	PRE	IZ,&h0C01	 IZ Zeiger auf RS232C-Schnittstelle
BE7A: D1000018	LDW	$0,&h1800	 $0=0, $1=24
BE7E: A100	STW	$0,(IZ+#0)
BE80: F7	RTN			 zurck
~Seite 124
-------------------------------------->	AUF EMPFANG WARTEN UND EINGABE HOLEN
BE81: 770792	CAL	&h9207 [BKCK]	 auf OFF, C.Boot und BRK prfen
BE84: D640066C	PRE	IZ,&h6C06	 IZ Zeiger in RS232C-Paraneter
BE88: 799F07	ADC	(IZ-7),$31	 ist ein RS232C-Fehler aufgetreten?
BE8B: B44D	JR	NZ,&hBED9	  dann ->
BE8D: 391F	ADC	(IZ+#0),$31	 ist RS232C-Empfangspuffer leer?
BE8F: B08F	JR	Z,&hBE81	  dann Schleife ->
BE91: AB00	LDIW	$0,(IZ+#0)	 Anzahl und Endoffset holen
BE93: 0941	SB	$1,#2		 voneinander abziehen
BE95: 296001	LD	$0,(IZ+$1)	 nchstes Zeichen aus den Puffer holen
BE98: F7	RTN			 zurck
-------------------------------------->	HOLEN EINES ZEICHENS VON R5232C ODER MT
BE99: 34D8E2	JP	NZ,&hE2D8	 MT-File? dann ->
--  --  --  --  --  --  --  --  --  -->	RSGET: HOLEN EINES ZEICHENS VON RS232C
BE9C: 7781BE	CAL	&hBE81		 auf Empfang warten und Eingang holen
BE9F: D640066C	PRE	IZ,&h6C06	 IZ Zeiger auf Zeichenanzahl im Puffer
BEA3: 3F1E	SB	(IZ+#0),$30	 diese herabsetzen
BEA5: 2D01	LDD	$1,(IZ+#0)	 neue Zeichenanzahl holen
BEA7: 410120	SBC	$1,32		 mehr als 32 Zeichen im Puffer?
BEAA: F1	RTN	NC		  dann zurck
BEAB: D640FE6B	PRE	IZ,&h6BFE	 IZ Zeiger auf RS232C-Parameter
BEAF: 2D04	LDD	$4,(IZ+#0)	 diese holen
BEB1: 440402	ANC	$4,2		 kein XON-/XOFF-Protokoll?
BEB4: F0	RTN	Z		  dann zurck
BEB5: 440440	ANC	$4,&h40		 XOFF-Status nicht gesetzt?
BEB8: F0	RTN	Z		  dann zurck
BEB9: 2600	PHS	$0		 Zeichen zwischenspeichern
BEBB: 2604	PHS	$4		 Status zwischenspeichern
BEBD: 770792	CAL	&h9207 [BKCK]	 auf OFF, C.Boot und BRK prfen
BEC0: 2E04	PPS	$4		 Status wieder holen
BEC2: 77EFBE	CAL	&hBEEF		 Interface nicht emfangsbereit?
BEC5: B48B	JR	NZ,&hBEBB	 dann Schleife ->
BEC7: 420011	LD	$0,17		 XON holen
BECA: 7760BF	CAL	&hBF60 [NTXO]	 und an RS232C-Schnittstelle ausgeben
BECD: D640FE6B	PRE	IZ,&h6BFE	 IZ Zeiger auf RS232C-Parameter
BED1: 420040	LD	$0,&h40		 XOFF-Status holen
BED4: 3F00	SB	(IZ+#0),$0	 diesen lschen
BED6: 2E00	PPS	$0		 Zeichen wieder holen
BED8: F7	RTN			 zurck
-------------------------------------->	RS232C-FEHLERVERARBEITUNG
BED9: 698007	LD	$0,(IZ-7)	 Fehlerflags holen
BEDC: 0420	ANC	$0,#1		 Bit 0 gesetzt?
BEDE: 34CCAB	JP	NZ,&hABCC	  dann BV Error
BEE1: 1860	BIU	$0		 Bit 7 gesetzt?
BEE3: 3530AC	JP	C,&hAC30	  dann FR Error
BEE6: 4400C0	ANC	$0,&hC0		 Bit 5 oder 6 gesetzt?
BEE9: 3434AC	JP	NZ,&hAC34	  dann PO Error
BEEC: 37D0AB	JP	&hABD0		 sonst NR Error
-------------------------------------->	INTERFACE-EMPFANGSBEREITSCHAFT TESTEN
BEEF: D640000C	PRE	IZ,&h0C00	 IZ Zeiger auf Interface-Status
BEF3: 2D00	LDD	$0,(IZ+#0)	 diesen holen
BEF5: 4F000C	XR	$0,%00001100	 Bits 2 und 3 invertieren
BEF8: 0C6004	AN	$0,$4		 mit Maske Bits ausfiltern
BEFB: 44000C	ANC	$0,%00001100	 ist Bit 2 oder Bit 3 gesetzt?
BEFE: F7	RTN			 zurck
~Seite 125
-------------------------------------->	PRTRS: AUSGABE AN RS232C-SCHNITTSTELLE
BEFF: 2610	PHS	$16		 Ausgabezeichen zwischenspeichern
BF01: 770792	CAL	&h9207 [BKCK]	 auf OFF, C.Boot und BRK prfen
BF04: D640FC6B	PRE	IZ,&h6BFC	 IZ Zeiger auf RS232C-Parameter
BF08: E90240	LD3	$2,(IZ+#0)	 diese holen
BF0B: 77EFBE	CAL	&hBEEF		 Interface nicht empfangsbereit?
BF0E: B48E	JR	NZ,&hBF01	  dann Schleife ->
BF10: 440402	ANC	$4,2
BF13: B006	JR	Z,&hBF1A	  dann ->
BF15: 440302	ANC	$3,2
BF18: B498	JR	NZ,&hBF01	  dann ->
BF1A: 2E00	PPS	$0		 Ausgabezeichen wieder holen
BF1C: 440208	ANC	$2,8
BF1F: B040	JR	Z,&hBF60	  dann ->
BF21: 0424	ANC	$4,#1
BF23: B03C	JR	Z,&hBF60	  dann ->
BF25: 4100A0	SBC	$0,160		 Zeichen grer als Code 160?
BF28: B123	JR	NC,&hBF4C	  dann ->
BF2A: 410080	SBC	$0,128		 ist es ein geshiftetes Steuerzeichen?
BF2D: B12F	JR	NC,&hBF5D	  dann ->
BF2F: 410020	SBC	$0,32		 ist es ein Steuerzeichen?
BF32: B52A	JR	C,&hBF5D	  dann ->
BF34: 440420	ANC	$4,&h20		 Shift-In gesetzt?
BF37: B025	JR	Z,&hBF5D	  dann zur Zeichenausgabe ->
BF39: 2600	PHS	$0		 Ausgabezeichen zwischenspeichern
BF3B: 42000F	LD	$0,15		 SI holen
BF3E: 7760BF	CAL	&hBF60 [NTXO]	 und an RS232C-Schnittstelle ausgeben
BF41: 4204E0	LD	$4,%11100000	 Status setzen
BF44: D640FE6B	PRE	IZ,&h6BFE	 IZ Zeiger auf RS232C-Status
BF48: 3D04	AD	(IZ+#0),$4	 neuen Status setzen
BF4A: B7CA	JR	&hBF01		 und Schleife ->
--  --  --  --  --  --  --  --  --  -->	ZEICHEN >160 IM SHIFT-OUT-MODUS AUSGEBEN
BF4C: 440420	ANC	$4,&h20		 Shift-Out gesetzt?
BF4F: B40D	JR	NZ,&hBF5D	  dann zur Zeichenausgabe ->
BF51: 2600	PHS	$0		 Ausgabezeichen zwischenspeichern
BF53: 42000E	LD	$0,14		 SO (Shift Out) holen
BF56: 7760BF	CAL	&hBF60 [NTXO]	 und an RS232C-Schnittstelle ausgeben
BF59: 42842098	LDJ	$4,&h20,&hBF44	 Shift-Out setzen ->
--  --  --  --  --  --  --  --  --  -->	ZEICHEN IM SIEBEN-BIT-CODE AUSGEBEN
BF5D: 4C007F	AN	$0,&h7F		 Bit 7 des Zeichens lschen
--  --  --  --  --  --  --  --  --  -->	NTXO: AUSGABE EINES ZEICHENS AN RS232C
BF60: 7767BF	CAL	&hBF67		 Warten bis Interface annahmebereit
BF63: 610003	ST	$0,(IZ+3)	 Ausgabe des Zeichens an das Interface
BF66: F7	RTN			 zurck
-------------------------------------->	WARTEN BIS INTERFACE ANNAHMEBEREIT
BF67: D640000C	PRE	IZ,&h0C00	 IZ Zeiger auf Interface-Status
BF6B: 2D01	LDD	$1,(IZ+#0)	 diesen holen
BF6D: 0421	ANC	$1,#1		 ist das Interface beschftigt?
BF6F: B485	JR	NZ,&hBF6B	  dann Schleife ->
BF71: F7	RTN			 zurck
-------------------------------------->	BAUDRATENABHNGIG VERZGERN
BF72: D640FC6B	PRE	IZ,&h6BFC	 IZ Zeiger auf RS232C-Baudrate
BF76: 2D01	LDD	$1,(IZ+#0)	 diese holen
BF78: 0223	LD	$3,#1		 ZhlerI fr uere Verzgerung setzen
BF7A: 490120	SB	$1,&h20		 Baudrate herabsetzen
BF7D: B504	JR	C,&hBF82	 schon fertig berechnet? dann ->
~Seite 126
BF7F: 18E387	BIUJ	$3,&hBF7A	 sonst ZhlerI verdoppeln & Schleife ->
BF82: 420290	LD	$2,144		 ZhlerII fr innere Verzgerung setzen
BF85: 0922	SB	$2,#1		 ZhlerII herabsetzen
BF87: B483	JR	NZ,&hBF85	 noch nicht Null? dann Schleife ->
BF89: 0923	SB	$3,#1		 ZhlerI herabsetzen
BF8B: B48A	JR	NZ,&hBF82	 noch nicht Null? dann Schleife ->
BF8D: F7	RTN			 zurck
-------------------------------------->
BF8E: 42811908	LDJ	$1,25,&hBF99
-------------------------------------->
BF92: D640010C	PRE	IZ,&h0C01	 IZ Zeiger auf Interface
BF96: 420118	LD	$1,&h18
BF99: 2121	ST	$1,(IZ+#1)
BF9B: F7	RTN			 zurck
-------------------------------------->	INT1-ROUTINE
BF9C: E606C0	PHS7	$6		 Register $0-6 retten
BF9F: 1C46	GFL	$6		 Flags ablegen
BFA1: 9E00	GRE	IX,$0		 IX ablegen
BFA3: A601	PHSW	$1		  und speichern
BFA5: D600020C	PRE	IX,&h0C02	 IX Zeiger auf Interface
BFA9: EC0240	LDD3	$2,(IX+#0)
BFAC: 4F001C	XR	$0,%00011100	 Status-Bits invertieren
BFAF: D600FE6B	PRE	IX,&h6BFE	 IX Zeiger auf RS232C-Status
BFB3: EC0540	LDD3	$5,(IX+#0)	 diesen holen
BFB6: 440020	ANC	$0,&h20
BFB9: B00A	JR	Z,&hBFC4	  dann ->
BFBB: 0421	ANC	$1,#1
BFBD: B409	JR	NZ,&hBFC7	  dann ->
BFBF: 440102	ANC	$1,2
BFC2: B007	JR	Z,&hBFCA	  dann ->
BFC4: 378600	JP	&h0086
BFC7: 37F100	JP	&h00F1
BFCA: 37EF00	JP	&h00EF

-------------------------------------->	[LLIST ] WEITER VERARBEITEN
BFCD: 77DD90	CAL	&h90DD		 Ausgabe auf Drucker lenken
BFD0: 411D24	SBC	$29,36		 kein sequentielles File?
BFD3: B421	JR	NZ,&hBFF5	  dann ->
BFD5: 7720B7	CAL	&hB720		 Anfangs- und Endadresse des Files holen
BFD8: 9619	PRE	IX,$25		 IX Zeiger auf Filebeginn
BFDA: 2A10	LDI	$16,(IX+#0)	 nchstes Zeichen holen
BFDC: 41101A	SBC	$16,26		 ist es das EOF-Zeichen?
BFDF: B01D	JR	Z,&hBFFD	  dann ->
BFE1: 41100D	SBC	$16,13		 ist es kein CR?
BFE4: B40B	JR	NZ,&hBFF0	  dann ->
BFE6: 2CA0	LDD	$0,(IX-#1)	 sonst IX herabsetzen
BFE8: 775EB4	CAL	&hB45E		 Zeichen bis zum Zeilenende berlesen
BFEB: 77CE95	CAL	&h95CE		 CRLF ausgeben
BFEE: B795	JR	&hBFDA		 und Schleife ->
BFF0: 77D795	CAL	&h95D7		 Zeichen ausgeben
BFF3: B79A	JR	&hBFDA		 und Schleife ->
BFF5: C96464	SBB4	$4,$4		 Anfangszeilennummer=0
BFF8: 9B46	INVW	$6		 Endzeilennummer=65535
BFFA: 770CB6	CAL	&hB60C		 Bereich auflisten
BFFD: 37E190	JP	&h90E1		 Ausgabe auf Display lenken ->
~Seite 127
=== BASIC BEFEHLE UND -ANWEISUNGEN =============================================
-------------------------------------->	BASIC-FUNKTION LOF
C000: 77B998	CAL	&h98B9 [BIN11]	 Argument in Byte-Wert 1..255 wandeln
C003: 77F4D2	CAL	&hD2F4		 nur Zahlen kleiner als 16 erlauben
C006: 772DD3	CAL	&hD32D		 zugehrigen FCB im Speicher suchen
C009: 9648	PRE	IZ,$8		 IZ Zeiger auf FCB
C00B: E90080	LD5	$0,(IZ+#0)	 Lnge, Zugriffsart und Gert holen
C00E: 0124	SBC	$4,#1		 ist es ein Disk-File?
C010: 309EDA	JP	Z,&hDA9E	  dann ->
C013: B116	JR	NC,&hC02A	 oder ein RS232C-File? dann ->
--  --  --  --  --  --  --  --  --  -->	GRSSE EINES FILES IM SPEICHER HOLEN
  (nicht dokumentiert! Berechnet nur die Gre in 256-Byte-Blcken)
C015: 42001D	LD	$0,29		 Offset auf Filezeiger setzen
C018: E94060	LD4	$0,(IZ+#2)	 diese holen
C01B: 8942	SBW	$2,#2		 Anfangsadresse von Endadresse abziehen
C01D: 0102	SBC	$2,#0		 Low-Byte =0?
C01F: B005	JR	Z,&hC025	  dann ->
C021: 0823	AD	$3,#1		 High- (fr Wandlung Low-)Byte erhhen
C023: 0202	LD	$2,#0		 Low- (fr Wandlg Vorz.-)Byte nullsetzen
C025: 0204	LD	$4,#0		 High-Byte fr Wandlung auf nullsetzen
C027: 37019B	JP	&h9B01		 Wort-Wert in positive FLP-Zahl wandeln
--  --  --  --  --  --  --  --  --  -->	FREIRAUM IM RS232C-EMPFANGSPUFFER HOLEN
C02A: D640066C	PRE	IZ,&h6C06	 IZ Zeiger auf Zeichenanzahl des
C02E: 2D0F	LDD	$15,(IZ+#0)	  Empfangspuffers und diese holen
C030: 1B4F	INV	$15		 und invertieren
C032: 374BA3	JP	&hA34B		 Byte-Wert in FLP-Zahl wandeln ->
-------------------------------------->	BASIC-BEFEHL STOP
C035: 7766AB	CAL	&hAB66		 im Direktmodus FC Error
C038: 7702C1	CAL	&hC102		 auf Ende des Befehls prfen
C03B: 773FAD	CAL	&hAD3F		 in neuer Displayzeile "STOP" ausgeben
C03E: 77FFAC	CAL	&hACFF		 akt. Dateinamen und Zeilennr. ausgeben
C041: 77AFE6	CAL	&hE6AF		 IZ Zeiger auf Direktmodusflags
C044: 420002	LD	$0,2		 Kennzeichen fr "CONT mglich" setzen
C047: 2500	STD	$0,(IZ+#0)	 und als Direktmodusflag speichern
C049: 9E00	GRE	IX,$0		 Textzeiger ablegen
C04B: D6401569	PRE	IZ,&h6915	 IZ Zeiger auf CONT-Adressenspeicher
C04F: A100	STW	$0,(IZ+#0)	 dort Textzeiger ablegen
C051: 37B390	JP	&h90B3		 zurck in den Direktmodus ->
-------------------------------------->	AKTUELLE ZEILENNUMMER SPEICHERN
C054: D640566F	PRE	IZ,&h6F56	 IZ Zeiger auf akt. Zeilennummerspeicher
C058: A105	STW	$5,(IZ+#0)	 Zeilennummer dort ablegen
C05A: F7	RTN			 zurck
-------------------------------------->	BASIC-BEFEHL END
C05B: 770301	CAL	&h0103		 auf Ende des Befehls prfen
C05E: 7726C6	CAL	&hC626		 Cursor evtl. in neue Zeile bringen
C061: 773892	CAL	&h9238		 'echten' Betriebsmodus holen
C064: 37A390	JP	&h90A3		 zurck in Direktmodus ->
-------------------------------------->	BASIC-BEFEHL RUN
C067: 7759AB	CAL	&hAB59		 im CAL-Modus FC Error
C06A: D102ABAD	LDW	$2,&hADAB	 $2/3 Zeiger auf BRK-Routine
C06E: 77C390	CAL	&h90C3 [BRSTR]	 Adresse in den ACJMP-Vektor bringen
C071: 77FAC5	CAL	&hC5FA		 ist Trace ein, dann Dateiname ausgeben
C074: 772898	CAL	&h9828		 Zeilennummer aus dem Text lesen
C077: 770301	CAL	&h0103		 auf Ende des Befehls prfen
C07A: 7728C1	CAL	&hC128		 Stapel lschen, Kanle schlieen
C07D: 775FAB	CAL	&hAB5F		 im Programmodus FC Error
~Seite 128
C080: 251E	STD	$30,(IZ+#0)	 Programmodus setzen
C082: 826F11	LDW	$15,$17		 Suchzeilennummer setzen
C085: 77D1B4	CAL	&hB4D1 [LNSCH]	 evtl. angegebene Zeilennummer suchen
C088: B706	JR	&hC08F		 und Programm ablaufen lassen ->
-------------------------------------->	INTERPRETER-BEFEHLSSCHLEIFE
C08A: 77E291	CAL	&h91E2 [KYCHK]	 auf STOP, OFF, C.Boot und BRK prfen
C08D: B0D3	JR	Z,&hC03B	 STOP-Taste gedrckt? dann ->
C08F: 381F	ADC	(IX+#0),$31	 Programm zu Ende?
C091: B0B4	JR	Z,&hC05E	  dann ->
C093: EA0440	LDI3	$4,(IX+#0)	 Zeilenlnge und Zeilennummer lesen
C096: 7754C0	CAL	&hC054		 aktuelle Zeilennummer speichern
C099: D7004A6B	PRE	SS,&h6B4A	 Systemstackzeiger zurcksetzen
C09D: 77A2C0	CAL	&hC0A2		 Zeile abarbeiten
C0A0: B797	JR	&hC08A		 und Schleife ->
-------------------------------------->	BASIC-ZEILE ABARBEITEN
C0A2: 7709C6	CAL	&hC609		 ist Trace ein, dann Zeilennr. ausgeben
C0A5: 77CCAD	CAL	&hADCC		 Zeichenoperationsstapel leeren
C0A8: 9E00	GRE	IX,$0		 Textzeiger ablegen
C0AA: D640586F	PRE	IZ,&h6F58	 IZ Zeiger auf akt. Textpositionszeiger
C0AE: A100	STW	$0,(IZ+#0)	 Textzeiger dort speichern
C0B0: 77F900	CAL	&h00F9 [NEXTC]	 nchstes Zeichen aus Text lesen
C0B3: 410002	SBC	$0,2		 ist es ein Apostroph?
C0B6: B012	JR	Z,&hC0C9	  dann ->
C0B8: 410004	SBC	$0,4		 ist es kein Befehlstoken?
C0BB: B41B	JR	NZ,&hC0D7	  dann ->
C0BD: 2A20	LDI	$0,(IX+#1)	 Tokenbyte aus Text lesen
C0BF: 490049	SB	$0,73		 und fr Sprungtabelle korrigieren
C0C2: D103D0AF	LDW	$3,&hAFD0	 $3/4 Zeiger auf Befehlssprungtabelle
C0C6: 77DB99	CAL	&h99DB		 ber Tabelle springen
C0C9: 7702C1	CAL	&hC102		 auf Ende des Befehls prfen
C0CC: 38BF	ADC	(IX-#1),$31	 Ende der Zeile?
C0CE: F0	RTN	Z		  dann zurck
C0CF: 77E291	CAL	&h91E2 [KYCHK]	 auf STOP, OFF, E.Boot und BRK prfen
C0D2: B4B1	JR	NZ,&hC0A2	 STOP-Taste nicht gedrckt? dann ->
C0D4: 373BC0	JP	&hC03B		 sonst STOP ausfhren ->
C0D7: 42804F9B	LDJ	$0,79,&hC0BF	 Kennz. fr sonstige Anweisgen setzen ->
-------------------------------------->	CONT-TASTE VERARBEITEN
C0DB: 776CAB	CAL	&hAB6C		 Direktmodusflags holen     { doppelt }
C0DE: 440002	ANC	$0,2		 ist CONT nicht mglich?    {gemoppelt}
C0E1: 30FCAB	JP	Z,&hABFC	  dann FC Error             {   !!!   }
C0E4: 251E	STD	$30,(IZ+#0)	 BASIC-Modus setzen
C0E6: D102ABAD	LDW	$2,&hADAB	 $2/3 Zeiger auf BRK-Routine
C0EA: 77C390	CAL	&h90C3 [BRSTR]	 Adresse in den ACJMP-Vektor bringen
C0ED: 7720B7	CAL	&hB720		 Start- und Endadresse des Files holen
C0F0: D6401569	PRE	IZ,&h6915	 IZ Zeiger auf CONT-Adressenspeicher
C0F4: A900	LDW	$0,(IZ+#0)	 CONT-Adresse holen
C0F6: 9600	PRE	IX,$0		 Textzeiger darauf setzen
C0F8: 8159	SBCW	$25,#2		 steht Textzeiger an Programmanfang?
C0FA: B0F1	JR	Z,&hC08A	  dann ->
C0FC: 38BF	ADC	(IX-#1),$31	 steht Textzeiger am Zeilenanfang?
C0FE: B0F5	JR	Z,&hC08A	  dann ->
C100: B7E8	JR	&hC099		 sonst in Interpreterschleife ->
~Seite 129
-------------------------------------->	AUF ENDE DES BEFEHLS PRFEN
C102: 770301	CAL	&h0103		 auf Ende des Befehls prfen
C105: 410002	SBC	$0,2		 ist es ein Apostroph?
C108: 70C7C8	CAL	Z,&hC8C7	  dann Zeilenrest berlesen
C10B: 2C21	LDD	$1,(IX+#1)	 Zeilenendezeichen berlesen
C10D: F7	RTN			 zurck
-------------------------------------->	START DES C.BOOT-FILES VORBEREITEN
C10E: 775091	CAL	&h9150		 KEY-Impuls verbieten
C111: 77DDDD	CAL	&hDDDD		 Userstack zurcksetzen
C114: 77C492	CAL	&h92C4		 evtl. I/O-Aktivitt beenden
--  --  --  --  --  --  --  --  --  -->	CALC-BERECHNUNG VORBEREITEN
C117: 77E190	CAL	&h90E1		 Ausgabe auf Display lenken
C11A: 77C6AD	CAL	&hADC6		 Direktmodus setzen
C11D: 771091	CAL	&h9110		 NoScroll-Bit lschen
C120: 896505	SBW	$5,$5		 Zeilennummer auf Null setzen
C123: 7754C0	CAL	&hC054		 aktuelle Zeilennummer lschen
C126: B711	JR	&hC138		 und ->
-------------------------------------->	STAPEL LSCHEN, KANLE SCHLIESSEN
C128: D1021769	LDW	$2,&h6917	 $2/3 Zeiger auf Grafik- & Fehlerbereich
C12C: 420410	LD	$4,16		 $4/5 Lnge des Bereichs
C12F: 771690	CAL	&h9016		 diesen Bereich lschen
C132: 77D8AD	CAL	&hADD8		 GOSUB-Stapel leeren
C135: 77DEAD	CAL	&hADDE		 FOR-Stapel leeren
C138: 77F9D0	CAL	&hD0F9		 Startzahl fr RND setzen
C13B: 770C91	CAL	&h910C		 REV lschen
C13E: 9E00	GRE	IX,$0		 Textzeiger ablegen
C140: A601	PHSW	$1		  und speichern
C142: 7793D3	CAL	&hD393		 alle Kanle schlieen
C145: 37D3A3	JP	&hA3D3		 Textzeiger wieder setzen und zurck
-------------------------------------->	REST VON BASIC-ANWEISUNG RETURN
C148: BB0B	SBCW	(IZ+#0),$11	 Rcksprungadresse in demselben File?
C14A: B066	JR	Z,&hC1B1	  dann alle Zeiger setzen ->
C14C: 77B1C1	CAL	&hC1B1		 sonst alle Zeiger setzen und:
C14F: 37FAC5	JP	&hC5FA		 wenn Trace ein, dann Dateiname ausgeben
--  --  --  --  --  --  --  --  --  -->	BASIC-ANWEISUNG RETURN
C152: 7766AB	CAL	&hAB66		 im Direktmodus FC Error
C155: D6403769	PRE	IZ,&h6937	 IZ Zeiger auf GOSUB-Stapel-Untergrenze
C159: AB15	LDIW	$21,(IZ+#0)	 diese holen
C15B: BB15	SBCW	(IZ+#0),$21	 GOSUB-Stapel leer?
C15D: 301CAC	JP	Z,&hAC1C	  dann GS Error
C160: 77FF00	CAL	&h00FF		 ist Zeichen ein Trennzeichen?
C163: 1C59	GFL	$25		 Flags ablegen
C165: D1110600	LDW	$17,6		 $17/18 Lnge eines Eintrags
C169: 9655	PRE	IZ,$21		 IZ Zeiger auf Eintrag im GOSUB-Stapel
C16B: E90BA0	LD6	$11,(IZ+#0)	 Eintrag holen
C16E: 77F7A9	CAL	&hA9F7		 GOSUB-Stapel-Eintrag lschen
C171: D640546F	PRE	IZ,&h6F54	 IZ Zeiger auf Aktivfileheader-Zeiger
C175: 1459	PFL	$25		 Flags wieder setzen
C177: B5B0	JR	C,&hC148	 folgte keine Zeilennummer? dann ->
--  --  --  --  --  --  --  --  --  -->	BASIC-ANWEISUNG GOTO
C179: 7766AB	CAL	&hAB66		 im Direktmodus FC Error
C17C: 77B7C1	CAL	&hC1B7		 Zeilennr. oder Filename lesen u. suchen
C17F: 770301	CAL	&h0103		 Ende der Anweisung berprfen
C182: 77EBC1	CAL	&hC1EB
C185: 378AC0	JP	&hC08A		 in die Interpreter-Befehlsschleife
~Seite 130
-------------------------------------->	BASIC-ANWEISUNG GOSUB
C188: 7766AB	CAL	&hAB66		 im Direktmodus FC Error
C18B: 77B7C1	CAL	&hC1B7		 Zeilennr. oder Filename lesen u. suchen
C18E: 770301	CAL	&h0103		 Ende der Anweisung berprfen
C191: 7796C1	CAL	&hC196		 aktuelle Adresse in GOSUB-Stapel eintr.
C194: B793	JR	&hC182		 und ->
-------------------------------------->	AKTUELLE ADRESSE IN GOSUB-STAPEL EINTR.
C196: D6403769	PRE	IZ,&h6937	 IZ Zeiger auf GOSUB-Stapel-Untergrenze
C19A: A915	LDW	$21,(IZ+#0)	 diese holen
C19C: D1110600	LDW	$17,6		 $17/18 Lnge eines Eintrags
C1A0: 7797A9	CAL	&hA997		 GOSUB-Stapel-Eintrag ffnen
C1A3: D640546F	PRE	IZ,&h6F54	 IZ Zeiger auf Aktivfileheader-Zeiger
C1A7: E90B60	LD4	$11,(IZ+#0)	 diesen und akt. Zeilennummer holen
C1AA: 9E0F	GRE	IX,$15		 Textzeiger ablegen
C1AC: 9655	PRE	IZ,$21		 IZ Zeiger in GOSUB-Stapel
C1AE: 6D8006	LDD	$0,(IZ-6)	 IZ auf neue Untergrenze setzen
C1B1: E10BA0	ST6	$11,(IZ+#0)	 Fileheaderz., Zeilennr. & Textz. eintr.
C1B4: 960F	PRE	IX,$15		 Textzeiger wieder setzen
C1B6: F7	RTN			 zurck
-------------------------------------->	ZEILENNR. ODER FILENAME LESEN UND SUCHEN
C1B7: 77F900	CAL	&h00F9 [NEXTC]	 Zeichen aus Text lesen
C1BA: 410003	SBC	$0,3		 folgt keine Zeilennummer?
C1BD: B40D	JR	NZ,&hC1CB	  dann ->
C1BF: AA2F	LDIW	$15,(IX+#1)	 sonst diese holen
C1C1: 9E15	GRE	IX,$21		 Textzeiger ablegen
C1C3: 77D1B4	CAL	&hB4D1 [LNSCH]	 Zeilennummer im Programm suchen
C1C6: B51F	JR	C,&hC1E6	 gefunden? dann ->
C1C8: 3700AC	JP	&hAC00		 sonst UL Error
C1CB: 77FF00	CAL	&h00FF		 folgt kein Argument?
C1CE: 35C0AB	JP	C,&hABC0	  dann SN Error
C1D1: 77EB9C	CAL	&h9CEB		 sonst Stringausdruck lesen
C1D4: 9E15	GRE	IX,$21		 Textzeiger ablegen
C1D6: D600F468	PRE	IX,&h68F4	 IX Zeiger auf WORK-Puffer
C1DA: 7720B2	CAL	&hB220		 Filename aus String nach WORK-Puffer
C1DD: 420410	LD	$4,16		 Kennzeichen fr ein BASIC-File setzen
C1E0: 7718E8	CAL	&hE818 [FNSCH]	 File im Speicher suchen
C1E3: 35E0AB	JP	C,&hABE0	 nicht gefunden? dann NF Error
C1E6: 9615	PRE	IX,$21		 Textzeiger wieder setzen
C1E8: 1C59	GFL	$25		 Flags ablegen
C1EA: F7	RTN			 zurck
-------------------------------------->	SPRUNG AUSFHREN
C1EB: 1459	PFL	$25		 Flags wieder setzen
C1ED: B104	JR	NC,&hC1F2	 ist es ein neues File? dann ->
C1EF: 9613	PRE	IX,$19		 Textzeiger auf neue Zeile setzen
C1F1: F7	RTN			 zurck
C1F2: 896808	SBW	$8,$8		 Zeilennummernspeicher lschen
C1F5: D640546F	PRE	IZ,&h6F54	 IZ Zeiger auf Aktivfileheader-Zeiger
C1F9: 9606	PRE	IX,$6		 IX Zeiger auf neuen Fileheader
C1FB: A820	LDW	$0,(IX+#1)	 Anfangsadresse holen
C1FD: 9600	PRE	IX,$0		 IX Zeiger auf neues BASIC-File
C1FF: 3A1F	SBC	(IX+#0),$31	 Programm schon zu Ende?
C201: B003	JR	Z,&hC205	  dann ->
C203: A828	LDW	$8,(IX+#1)	 sonst erste Zeilennummer holen
C205: E10660	ST4	$6,(IZ+#0)	 Aktivfileheaderz. u. Zeilennr. setzen
C208: 37FAC5	JP	&hC5FA		 wenn Trace ein, dann Dateiname ausgeben
~Seite 131
-------------------------------------->	REST DER BASIC-ANWEISUNG FOR
C20B: 77A59B	CAL	&h9BA5		 NUM1=1 (Default-Schrittweite)
C20E: 02B240	LDJ	$18,#1,&hC250	 NUM1=1 setzen und ->
--  --  --  --  --  --  --  --  --  -->	BASIC-ANWEISUNG FOR
C211: 7766AB	CAL	&hAB66		 im Direktmodus FC Error
C214: 771AA6	CAL	&hA61A		 Variablendeskriptor lesen     {krzer:}
C217: D6401169	PRE	IZ,&h6911	 IZ Zeiger auf Variablendeskriptor {---}
C21B: 2D00	LDD	$0,(IZ+#0)	 Variablentyp holen                {---}
C21D: 0000	ADC	$0,#0		 ist es eine Stringvariable?{ADC $13,#0}
C21F: 3204AC	JP	LZ,&hAC04	  dann TM Error
C222: 1860	BIU	$0		 ist es eine Feldvariable?     {BIU $13}
C224: 3504AC	JP	C,&hAC04	  dann TM Error
C227: 775401	CAL	&h0154		 Gleichheitszeichen in Text berlesen
C22A: 778999	CAL	&h9989 [EXPRW]	 arithmetischen Ausdruck lesen
C22D: 772800	CAL	&h0028		 NUM1 im Userstack speichern
C230: 4202C1	LD	$2,193		 falls vorhanden, TO-Token
C233: 772E01	CAL	&h012E		  berlesen
C236: 34C0AB	JP	NZ,&hABC0	 war keins da? dann SN Error
C239: 778999	CAL	&h9989 [EXPRW]	 arithmetischen Ausdruck lesen
C23C: 773C00	CAL	&h003C		 NUM0 aus dem Userstack holen
C23F: 772800	CAL	&h0028		 NUM1 im Userstack speichern
C242: 773800	CAL	&h0038		 NUM0 im Userstack speichern
C245: 4202C0	LD	$2,192		 falls vorhanden, STEP-Token
C248: 772E01	CAL	&h012E		  berlesen
C24B: B4C1	JR	NZ,&hC20B	 war keins da? dann ->
C24D: 778999	CAL	&h9989 [EXPRW]	 sonst arithmetischen Ausdruck lesen
C250: 770301	CAL	&h0103		 Ende der Anweisung berprfen
C253: 773C00	CAL	&h003C		 Anfangswert nach NUM0 holen
C256: 772800	CAL	&h0028		 NUM1 im Userstack speichern
C259: C24AE0	LD8	$10,#2		 NUM1=NUM0      {krzer wre CAL &h0928}
C25C: 027208	LD	$18,$8		 |
C25F: 7790A7	CAL	&hA790		 Variable zuweisen, $19/20 Var.datenz.
C262: D640566F	PRE	IZ,&h6F56	 IZ Zeiger auf akt. Zeilennummerspeicher
C266: A905	LDW	$5,(IZ+#0)	 aktuelle Zeilennummer holen
C268: A915	LDW	$21,(IZ+#0)	 auch nach $21/22 holen
C26A: 9E17	GRE	IX,$23		 Textzeiger ablegen
C26C: E718A0	PHU6	$24		 Register $19-24 speichern
C26F: D1030304	LDW	$3,&h0403	 $3=3, $4=4 setzen
C273: 02A727	LDJ	$7,#1,&hC29C	 Zahl der offenen Schleifen auf 1 und ->
--  --  --  --  --  --  --  --  --  -->	REST
C276: 0143	SBC	$3,#2		 ist es keine Zeilennummer?
C278: B419	JR	NZ,&hC292	  dann ->
C27A: AA00	LDIW	$0,(IX+#0)	 sonst diese berlesen
C27C: B71F	JR	&hC29C		 und Schleife ->
C27E: 77F900	CAL	&h00F9 [NEXTC]	 nchstes Zeichen aus Text lesen
C281: B51A	JR	C,&hC29C	 Trennzeichen? dann ->
C283: 0827	AD	$7,#1		 Zahl der offenen Schleifen erhhen
C285: B416	JR	NZ,&hC29C	 kein berlauf? dann ->
C287: 3718AC	JP	&hAC18		 sonst NX Error
C28A: 420282	LD	$2,130		 falls vorhanden, NEXT-Token
C28D: 772801	CAL	&h0128		  berlesen
C290: B70B	JR	&hC29C		 und Schleife ->
C292: 0000	ADC	$0,#0		 ist es auch kein Zeilenende?
C294: B407	JR	NZ,&hC29C	  dann Schleife ->
C296: 381F	ADC	(IX+#0),$31	 Programmende?
C298: B092	JR	Z,&hC287	  dann NX Error ->
~Seite 132
C29A: AA25	LDIW	$5,(IX+#1)	 sonst Zeilennummer lesen
--  --  --  --  --  --  --  --  --  --	PASSENDES NEXT IM TEXT SUCHEN
C29C: 2A00	LDI	$0,(IX+#0)	 nchstes Zeichen aus Text lesen
C29E: 0144	SBC	$4,#2		 ist es kein Befehlstoken?
C2A0: B4AB	JR	NZ,&hC276	  dann ->
C2A2: 2A00	LDI	$0,(IX+#0)	 Tokenbyte lesen
C2A4: 410081	SBC	$0,129		 ist es ein FOR-Token?
C2A7: B0AA	JR	Z,&hC27E	  dann ->
C2A9: 41004C	SBC	$0,76		 ist es ein RESUME-Token?
C2AC: B0A3	JR	Z,&hC28A	  dann ggfs. NEXT-Token berlesen ->
C2AE: 410082	SBC	$0,130		 ist es auch kein NEXT-Token?
C2B1: B496	JR	NZ,&hC29C	  dann Schleife ->
C2B3: 0927	SB	$7,#1		 Anzahl der offenen Schleifen verringern
C2B5: B018	JR	Z,&hC2CE	 alle Schleifen geschlossen? dann ->
C2B7: 77FF00	CAL	&h00FF		 ist Zeichen ein Trennzeichen?
C2BA: B59F	JR	C,&hC29C	  dann Schleife ->
C2BC: 7754C0	CAL	&hC054		 aktuelle Zeilennummer setzen
C2BF: 7752A6	CAL	&hA652		 Variablenname lesen
C2C2: 31C0AB	JP	NC,&hABC0	 keiner vorhanden? dann SN Error
C2C5: 773A01	CAL	&h013A		 evtl. vorhand. Komma in Text berlesen
C2C8: B4AD	JR	NZ,&hC29C	 war keins da? dann Schleife ->
C2CA: 0927	SB	$7,#1		 Anzahl der offenen Schleifen verringern
C2CC: B48E	JR	NZ,&hC2BF	 noch welche offen? dann Schleife ->
C2CE: 7754C0	CAL	&hC054		 aktuelle Zeilennummer setzen
C2D1: 41002C	SBC	$0,","		 Zeichen ein Komma?
C2D4: B006	JR	Z,&hC2DB	  dann ->
C2D6: 77FF00	CAL	&h00FF		 ist es ein Trennzeichen?
C2D9: B518	JR	C,&hC2F2	  dann ->
C2DB: 7752A6	CAL	&hA652		 Variablenname lesen
C2DE: 31C0AB	JP	NC,&hABC0	 keiner da? dann SN Error
C2E1: 7758A7	CAL	&hA758		 Variable im Speicher finden
C2E4: 3114AC	JP	NC,&hAC14	 nicht gefunden? dann FO Error
C2E7: AF00	PPUW	$0		 Variablendatenadresse holen
C2E9: A701	PHUW	$1		  und wieder speichern
C2EB: 8153	SBCW	$19,#2		 ist es nicht dieselbe Variable?
C2ED: 3414AC	JP	NZ,&hAC14	  dann FO Error
C2F0: 960F	PRE	IX,$15		 Textzeiger auf Variablenname setzen
C2F2: 7730C3	CAL	&hC330		 richtigen Eintrag heraussuchen
C2F5: B525	JR	C,&hC31B	 gefunden? dann ->
C2F7: D640566F	PRE	IZ,&h6F56	 IZ Zeiger auf akt. Zeilennummer
C2FB: A907	LDW	$7,(IZ+#0)	 diese holen
C2FD: EF0360	PPU4	$3		 Var.datenadr. und Zeilennummer holen
C300: E70660	PHU4	$6		  und wieder speichern
C303: A105	STW	$5,(IZ+#0)	 gespeicherte als akt. Zeilennr. speich.
C305: D6403569	PRE	IZ,&h6935	 IZ Zeiger auf FOR-Stapel-Untergrenze
C309: A915	LDW	$21,(IZ+#0)	 diese holen
C30B: D1111A00	LDW	$17,26		 $17/18 Lnge eines Eintrags setzen
C30F: 7794A9	CAL	&hA994		 FOR-Stapel-Eintrag ffnen
C312: 897511	SBW	$21,$17		 Eintragsadresse korrigieren
C315: 826507	LDW	$5,$7		 Zeilennr. der NEXT-Anweisung holen
C318: 7754C0	CAL	&hC054		 als aktuelle Zeilennummer setzen
~Seite 133
--  --  --  --  --  --  --  --  --  --	RICHTIGEN EINTRAG GEFUNDEN
C31B: 9655	PRE	IZ,$21		 IZ Zeiger auf Eintrag
C31D: 9E00	GRE	IX,$0		 Textzeiger ablegen
C31F: EF02A0	PPU6	$2		 alle Parameter wieder holen
C322: E300E0	STI8	$0,(IZ+#0)	 und im Eintrag speichern
C325: 774AC3	CAL	&hC34A		 Schrittweite im Eintrag speichern
C328: 774AC3	CAL	&hC34A		 Endwert im Eintrag speichern
C32B: 77BDC3	CAL	&hC3BD		 Schleifenvariablenwert u.a. holen
C32E: B757	JR	&hC386		 auf Schleifenende prfen ->
--  --  --  --  --  --  --  --  --  -->	RICHTIGEN EINTRAG HERAUSSUCHEN
C330: 9E04	GRE	IX,$4		 IX ablegen
C332: D6403569	PRE	IZ,&h6935	 IZ Zeiger auf FOR-Stapel-Untergrenze
C336: E91560	LD4	$21,(IZ+#0)	 diese und -Obergrenze holen
C339: 9655	PRE	IZ,$21		 IZ Zeiger auf FOR-Stapel
C33B: 817517	SBCW	$21,$23		 schon am Ende des FOR-Stapels?
C33E: F0	RTN	Z		  dann zurck
C33F: BB04	SBCW	(IZ+#0),$4	 ist es der richtige Eintrag?
C341: 30F404	JP	Z,&h04F4	  dann C=1 und Z=1 setzen
C344: 6D001A	LDD	$0,(IZ+26)	 IZ auf nchsten Eintrag erhhen
C347: 9ED58E	GREJ	IZ,$21,&hC33B	 IZ in $21/22 ablegen und Schleife ->
C34A: 772C00	CAL	&h002C		 NUM1 aus dem Userstack holen
C34D: E30AE0	STI8	$10,(IZ+#0)	  und im Speicher ablegen
C350: 2312	STI	$18,(IZ+#0)	  |
C352: F7	RTN			 zurck
-------------------------------------->	BASIC-ANWEISUNG NEXT
C353: 7766AB	CAL	&hAB66		 im Direktmodus FC Error
C356: 77F900	CAL	&h00F9 [NEXTC]	 Zeichen aus Text lesen
C359: 7730C3	CAL	&hC330		 richtigen Eintrag suchen
C35C: 3114AC	JP	NC,&hAC14	 FO Error
C35F: 77BDC3	CAL	&hC3BD		 Schleifenvariablenwert u.a. holen
C362: E61740	PHS3	$23		 Vorzeichen und Zeiger speichern
C365: A601	PHSW	$1		 Zeiger auf Variable speichern
C367: 9655	PRE	IZ,$21		 IZ Zeiger auf Eintrag
C369: 420008	LD	$0,8		 Offset auf Schrittweite holen
C36C: EB40E0	LDI8	$0,(IZ+#2)	 diese nach NUM0 holen
C36F: 2D08	LDD	$8,(IZ+#0)	 |
C371: 774A08	CAL	&h084A		 NUM1=NUM1+NUM0
C374: 1A30	DIU	$16		 Ergebnis wieder in internes
C376: DA1240	DID3	$18		 FLP-Format wandeln
C379: EE1380	PPS5	$19		 alle Werte wieder holen
C37C: 9653	PRE	IZ,$19		 IZ Zeiger auf Schleifenvariable
C37E: E10AE0	ST8	$10,(IZ+#0)	 neuen Wert speichern
C381: DA3040	DIU3	$16		 wieder in externes Format
C384: 1A10	DID	$16		  wandeln
C386: 9655	PRE	IZ,$21		 IZ Zeiger auf Eintrag
C388: 420011	LD	$0,17		 Offset auf Endwert holen
C38B: EB40E0	LDI8	$0,(IZ+#2)	 diesen nach NUM0 holen
C38E: 2D08	LDD	$8,(IZ+#0)	 |
C390: 77B79B	CAL	&h9BB7 [NCP]	 mit Schleifenwert vergleichen
C393: B01E	JR	Z,&hC3B2	 beide gleich? dann ok ->
C395: B517	JR	C,&hC3AD	 Endwert<Schleifenwert? dann ->
C397: 411705	SBC	$23,5		 ist Schrittweite negativ?
C39A: B117	JR	NC,&hC3B2	  dann ok ->
C39C: D1111A00	LDW	$17,26		 $17/18 Lnge eines Eintrags
C3A0: 77F4A9	CAL	&hA9F4		 FOR-Stapel-Eintrag lschen
C3A3: 7752A6	CAL	&hA652		 Variablenname lesen
~Seite 134
C3A6: F1	RTN	NC		 keiner gefunden? dann zurck
C3A7: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
C3AA: B0D8	JR	Z,&hC353	 war eins da? dann Schleife ->
C3AC: F7	RTN			 sonst zurck
C3AD: 411705	SBC	$23,5		 ist Schrittweite negativ?
C3B0: B195	JR	NC,&hC39C	  dann Schleife beenden ->
C3B2: 9655	PRE	IZ,$21		 IZ Zeiger auf Eintrag
C3B4: E922C0	LD7	$2,(IZ+#1)	 Zeilennummer nach $5/6 holen
C3B7: 7754C0	CAL	&hC054		 aktuelle Zeilennummer setzen
C3BA: 9607	PRE	IX,$7		 Textz. hinter FOR-TO-Anweisung setzen
C3BC: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	SCHLEIFENVARIABLENWERT U.A. HOLEN
C3BD: 9655	PRE	IZ,$21		 IZ Zeiger auf Eintrag
C3BF: E92140	LD3	$1,(IZ+#1)	 $2/3 Zeiger auf Variablendaten holen
C3C2: 691710	LD	$23,(IZ+&h10)	 Vorzeichen der Schrittweite holen
C3C5: 9642	PRE	IZ,$2		 IZ Zeiger auf Variablendaten
C3C7: 2B20	LDI	$0,(IZ+#1)	 Lnge des Variablennamens holen
C3C9: A940	LDW	$0,(IZ+#2)	 Zeiger auf Variable holen
C3CB: 9640	PRE	IZ,$0		 IZ Zeiger auf Variable
C3CD: 3737A7	JP	&hA737		 NUM1 holen & in externes Format bringen
-------------------------------------->	BASIC-ANWEISUNG IF
C3D0: 778999	CAL	&h9989 [EXPRW]	 arithmetischen Ausdruck lesen
C3D3: 0130	SBC	$16,#1		 Ausdruck=0?
C3D5: B523	JR	C,&hC3F9	  dann ->
C3D7: 420249	LD	$2,73		 falls vorhanden, GOTO-Token
C3DA: 772801	CAL	&h0128		  berlesen
C3DD: B018	JR	Z,&hC3F6	 war eins da? dann ->
C3DF: 420247	LD	$2,71		 falls vorhanden, THEN-Token
C3E2: 772E01	CAL	&h012E		  berlesen
C3E5: 34C0AB	JP	NZ,&hABC0	 war keins da? dann SN Error
C3E8: 77F900	CAL	&h00F9 [NEXTC]	 nchstes Zeichen aus Text lesen
C3EB: 410003	SBC	$0,3		 folgt eine Zeilennummer?
C3EE: B007	JR	Z,&hC3F6	  dann ->
C3F0: 410022	SBC	$0,'"'		 folgt kein Filename?
C3F3: 3499C0	JP	NZ,&hC099	  dann in Interpreterschleife ->
C3F6: 3779C1	JP	&hC179		 sonst zur BASIC-Anweisung GOTO ->
C3F9: 77FFC3	CAL	&hC3FF		 zugehriges ELSE suchen
C3FC: F1	RTN	NC		 nicht gefunden? dann zurck
C3FD: B796	JR	&hC3E8		 sonst Befehle hinter ELSE ausfhren ->
--  --  --  --  --  --  --  --  --  -->	ZUGEHRIGES ELSE SUCHEN
C3FF: D1021F03	LDW	$2,&h031F	 $2=31, $3=3,
C403: D1040407	LDW	$4,&h0704	  $4=4 und $5=7 setzen
C407: 0226	LD	$6,#1		 Zhler fr offene IF-Abfr. auf 1 setzen
C409: 2A00	LDI	$0,(IX+#0)	 nchstes Zeichen aus Text lesen
C40B: 0000	ADC	$0,#0		 Zeilenende?
C40D: B02D	JR	Z,&hC43B	  dann ->
C40F: 0142	SBC	$2,#2		 ist es ein ASCII-Zeichen?
C411: B589	JR	C,&hC409	  dann Schleife ->
C413: 0143	SBC	$3,#2		 folgt eine Zeilennummer?
C415: B019	JR	Z,&hC42F	  dann zum berlesen ->
C417: B18F	JR	NC,&hC409	 sonst Schleife ->
C419: 2A01	LDI	$1,(IX+#0)	 Tokenbyte aus Text lesen
C41B: 0144	SBC	$4,#2		 ist es ein Befehlstoken?
C41D: B015	JR	Z,&hC433	  dann zum berlesen des Befehls ->
C41F: 0145	SBC	$5,#2		 auch kein Sondertoken?
C421: B499	JR	NZ,&hC409	  dann Schleife ->
~Seite 135
C423: 410148	SBC	$1,72		 ist es nicht das ELSE-Token?
C426: B49E	JR	NZ,&hC409	  dann Schleife ->
C428: 0926	SB	$6,#1		 Zahl der offenen IF-Abfragen herabsetzen
C42A: B4A2	JR	NZ,&hC409	 noch mehr offen? dann Schleife ->
C42C: 013F	SBC	$31,#1		 sonst C=1
C42E: F7	RTN			 zurck
C42F: AA00	LDIW	$0,(IX+#0)	 Zeilennummer berlesen
C431: B7A9	JR	&hC409		 und Schleife ->
C433: 41018D	SBC	$1,141		 ist es nicht das IF-Token?
C436: B4AE	JR	NZ,&hC409	  dann Schleife ->
C438: 08A6B1	ADJ	$6,#1,&hC409	 Zahl der IF-Abfr. erhhen u. Schl. ->
C43B: 2CA0	LDD	$0,(IX-#1)	 Textzeiger um 1 Zeichen herabsetzen
C43D: F7	RTN			 zurck
-------------------------------------->	BASIC-ANWEISUNGEN DRAW UND DRAWC
C43E: 2700	PHU	$0		 Kennzeichen fr DRAW bzw. DRAWC retten
C440: 773E01	CAL	&h013E		 evtl. vorhandenen Bindestrich berlesen
C443: B009	JR	Z,&hC44D	 war einer da? dann ->
C445: 776AC4	CAL	&hC46A		 sonst Koordinaten lesen und speichern
C448: 773E01	CAL	&h013E		 evtl. vorhandenen Bindestrich berlesen
C44B: B417	JR	NZ,&hC463	 war keiner da? dann ->
C44D: D6401B69	PRE	IZ,&h691B	 IZ Zeiger auf Grafikcursor
C451: A90E	LDW	$14,(IZ+#0)	 diesen holen
C453: A5AF	STDW	$15,(IZ-#1)	 und als Ausgangspunkt speichern
C455: 776AC4	CAL	&hC46A		 Koordinaten lesen und speichern
C458: 7777C4	CAL	&hC477		 Drawline-Algorithmus ausfhren
C45B: 773E01	CAL	&h013E		 evtl. vorhandenen Bindestrich berlesen
C45E: B092	JR	Z,&hC44D	 war einer da? dann Schleife ->
C460: 2F00	PPU	$0		 Kennzeichen lschen
C462: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	EINZELPUNKT SETZEN ODER LSCHEN
C463: 618E02	ST	$14,(IZ-2)	 Koordinaten auch als Ausgangs-
C466: 21AF	ST	$15,(IZ-#1)	  koordinaten speichern
C468: B791	JR	&hC458		 zum Drawline-Algorithmus ->
--  --  --  --  --  --  --  --  --  -->	KOORDINATEN LESEN UND SPEICHERN
C46A: 7781A3	CAL	&hA381		 Koordinaten aus Text lesen
C46D: D6401B69	PRE	IZ,&h691B	 IZ Zeiger auf Grafikcursor
C471: A10E	STW	$14,(IZ+#0)	 Koordinaten dort speichern
C473: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	REST VOM DRAWLINE-ALGORITHMUS
C474: 08B556	ADJ	$21,#1,&hC4CC
--  --  --  --  --  --  --  --  --  -->	DRAWLINE-ALGORITHMUS ANWENDEN
C477: C971F1	SBB8	$17,$17		 Register $17 und $19-25 lschen
C47A: 0232	LD	$18,#1		 Register $18=1
C47C: C27993	LD5	$25,$19		 |
C47F: D6401969	PRE	IZ,&h6919	 IZ Zeiger auf Startkoordinaten
C483: E90C60	LD4	$12,(IZ+#0)	 diese und Zielkoordinaten holen
C486: 016E0C	SBC	$14,$12		 ist ZielX>StartX?
C489: B108	JR	NC,&hC492	  dann ->
C48B: A60D	PHSW	$13		 sonst Start- und Zielkoordinaten
C48D: 826C0E	LDW	$12,$14		  vertauschen
C490: AE0E	PPSW	$14		 |
C492: 027C0E	LD	$28,$14		 $28 DiffX=ZielX-StartX
C495: 097C0C	SB	$28,$12		 |
C498: B103	JR	NC,&hC49C	 grer Null? dann ->      {berflssig}
C49A: 1B1C	CMP	$28		 sonst DiffX komplementieren {   !!!   }
C49C: 027A0F	LD	$26,$15		 $25/26 DiffY=ZielX-StartX
~Seite 136
C49F: 097A0D	SB	$26,$13		 |
C4A2: B105	JR	NC,&hC4A8	 grer Null? dann ->
C4A4: 1B59	INV	$25		 Kennzeichen setzen        {krzer: ---}
C4A6: 1B1A	CMP	$26		 DiffY komplementieren        {CMPW $25}
C4A8: 017A1C	SBC	$26,$28		 ist DiffX=DiffY?
C4AB: B0B8	JR	Z,&hC474	  dann ->
C4AD: B50A	JR	C,&hC4B8	 oder DiffX>DiffY? dann ->
C4AF: 1B51	INV	$17		 sonst Kennzeichen fr vertauschte Diff.
C4B1: 261A	PHS	$26		 DiffX und DiffY vertauschen
C4B3: 027A1C	LD	$26,$28		 |
C4B6: 2E1C	PPS	$28		 |
C4B8: D1000080	LDW	$0,&h8000	 Bitzhler zurcksetzen
C4BC: 987A	BIUW	$26		 DiffY verdoppeln
C4BE: 817A1C	SBCW	$26,$28		 immer noch DiffY<DiffX?
C4C1: B506	JR	C,&hC4C8	  dann ->
C4C3: 897A1C	SBW	$26,$28		 sonst DiffX von DiffY abziehen
C4C6: 8853	ADW	$19,#2		 Bit setzen
C4C8: 9841	BIDW	$1		 Bitzhler herabsetzen
C4CA: B48F	JR	NZ,&hC4BC	 noch nicht Null? dann Schleife ->
C4CC: 0011	ADC	$17,#0		 Differenzen vertauscht?
C4CE: B409	JR	NZ,&hC4D8	  dann ->
C4D0: 0019	ADC	$25,#0		 war StartY<ZielY?
C4D2: B005	JR	Z,&hC4D8	  dann ->
C4D4: 0D15	NA	$21,#0		 sonst FlagY setzen
C4D6: 9B13	CMPW	$19		 und Bitzhler invertieren
C4D8: 0011	ADC	$17,#0		 Differenzen nicht vertauscht?
C4DA: B007	JR	Z,&hC4E2	  dann ->
C4DC: 0019	ADC	$25,#0		 war StartY<ZielY?
C4DE: B003	JR	Z,&hC4E2	  dann ->
C4E0: 0D12	NA	$18,#0		 sonst FlagX setzen
C4E2: 0011	ADC	$17,#0		 Differenzen vertauscht?
C4E4: B42E	JR	NZ,&hC513	  dann ->
C4E6: 02780D	LD	$24,$13		 innere Schleife mit Y-Position
C4E9: 7729C5	CAL	&hC529		 Grafikpunkt setzen bzw. lschen
C4EC: 0011	ADC	$17,#0		 Differenzen vertauscht?
C4EE: B42E	JR	NZ,&hC51D	  dann ->
C4F0: 016C0E	SBC	$12,$14		 ist ZielX erreicht?
C4F3: B02D	JR	Z,&hC521	  dann Ende des Algorithmus ->
C4F5: 887613	ADW	$22,$19		 Bitzhler addieren/subtrahieren
C4F8: B103	JR	NC,&hC4FC	 kein berlauf? dann ->
C4FA: 0838	AD	$24,#1		 Schleifenzhler erhhen
C4FC: 087815	AD	$24,$21		 um FlagY erhhen
C4FF: 026018	LD	$0,$24		 Schleifenzhler holen
C502: 441780	ANC	$23,&h80	 Gesamtbitzhler positiv?
C505: B003	JR	Z,&hC509	  dann ->
C507: 0820	AD	$0,#1		 sonst Schleifenzhler erhhen
C509: 0011	ADC	$17,#0		 Differenzen vertauscht?
C50B: B40B	JR	NZ,&hC517	  dann ->
C50D: 086C12	AD	$12,$18		 X-Position um FlagX erhhen
C510: 02CDA9	LDJ	$13,#2,&hC4E9	 Y-Position = Schleifenzhler und ->
C513: 02F80CAD	LDJ	$24,$12,&hC4E9	 innere Schleife mit X-Position und ->
C517: 024C	LD	$12,#2		 X-Position = Schleifenzhler und ->
C519: 08ED12B3	ADJ	$13,$18,&hC4E9	 Y-Position um FlagY erhhen
C51D: 01ED0FAD	SBCJ	$13,$15,&hC4F3	 ZielY erreicht? und ->
C521: 9E17	GRE	IX,$23		 Textzeiger ablegen
C523: 772C02	CAL	&h022C [DOTDI]	 Display auffrischen
~Seite 137
C526: 9617	PRE	IX,$23		 Textzeiger wieder setzen
C528: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	GRAFIKPUNKT SETZEN BZW. LSCHEN
C529: 77A0A3	CAL	&hA3A0		 Grafikposition berechnen & Inhalt holen
C52C: 0221	LD	$1,#1		 Bit 0 setzen
C52E: 0822	AD	$2,#1		 Bit-Nummer heraufsetzen
C530: B004	JR	Z,&hC535	 schon richtiges Bit? dann ->
C532: 18E186	BIUJ	$1,&hC52E	 schon Bit heraufschieben u. Schleife ->
C535: 2F02	PPU	$2		 Anweisungskennzeichen holen
C537: 2702	PHU	$2		  und wieder speichern
C539: 410268	SBC	$2,104		 ist es die DRAW-Anweisung?
C53C: B008	JR	Z,&hC545	  dann ->
C53E: 1B41	INV	$1		 Maske invertieren
C540: 0C41	AN	$1,#2		 Punkt lschen
C542: 2501	STD	$1,(IZ+#0)	 Grafikbyte wieder in Displaypuffer
C544: F7	RTN			 zurck
C545: 0EC185	ORJ	$1,#2,&hC542	 Punkt setzen und ->
-------------------------------------->	BASIC-ANWEISUNG LOCATE
C548: 77AE98	CAL	&h98AE		 Byte-Wert aus Text lesen
C54B: 410F20	SBC	$15,32		 grer als 31?
C54E: B143	JR	NC,&hC592	 dann BS Error
C550: 260F	PHS	$15		 Spalte zwischenspeichern
C552: 774C01	CAL	&h014C		 Komma im Text berlesen
C555: 77AE98	CAL	&h98AE		 Byte-Wert aus Text lesen
C558: 410F08	SBC	$15,8		 grer als 7?
C55B: B136	JR	NC,&hC592	  dann BS Error
C55D: 2E00	PPS	$0		 Spalte wieder holen
C55F: 1A2F	DIU	$15		 Zeile mit 32 multiplizieren
C561: 186F	BIU	$15		 |
C563: 084F	AD	$15,#2		 und Spalte addieren
C565: D640C868	PRE	IZ,&h68C8	 IZ Zeiger auf Cursorzeiger
C569: 778FC5	CAL	&hC58F		 diesen setzen  {krzer: ST $15,(IZ+#0)}
C56C: 9E17	GRE	IX,$23		 Programmzeiger retten
C56E: 77C703	CAL	&h03C7		 eventuell Bildschirm scrollen
C571: B7CC	JR	&hC526		 Programmzeiger wieder holen ->
-------------------------------------->	BASIC-ANWEISUNG POKE
C573: 77A398	CAL	&h98A3		 16bit-Adresse aus Text lesen
C576: A610	PHSW	$16		 und zwischenspeichern
C578: 774C01	CAL	&h014C		 Komma im Text berlesen
C57B: 77AE98	CAL	&h98AE		 Byte-Wert aus Text lesen
C57E: AE02	PPSW	$2		 Adresse wieder holen
C580: 96C20D	PREJ	IZ,$2,&hC58F	 IZ Zeiger auf Adresse und "poken" ->
-------------------------------------->	BASIC-ANWEISUNG ANGLE
C583: 77AE98	CAL	&h98AE		 Byte-Wert aus Text lesen
C586: 410F03	SBC	$15,3		 grer als 2?
C589: B108	JR	NC,&hC592	  dann BS Error ->
C58B: D640F368	PRE	IZ,&h68F3	 IZ Zeiger auf Winkelmodus
C58F: 250F	STD	$15,(IZ+#0)	 diesen dort speichern
C591: F7	RTN			 zurck
C592: 37F8AB	JP	&hABF8		 BS Error ausgeben
-------------------------------------->	BASIC-BEFEHL TROFF
C595: 028F03	LDJ	$15,#0,&hC59A	 Kennzeichen fr TROFF setzen und ->
~Seite 138
-------------------------------------->	BASIC-BEFEHL TRON
C598: 022F	LD	$15,#1		 Kennzeichen fr TRON setzen
C59A: D6402769	PRE	IZ,&h6927	 IZ Zeiger auf Trace-Modus-Flag
C59E: B790	JR	&hC58F		 und dieses setzen ->
-------------------------------------->	BASIC-ANWEISUNG DEF
C5A0: 4202A0	LD	$2,160		 falls vorhanden, CHR$-Token
C5A3: 772C01	CAL	&h012C		  berlesen
C5A6: 34C0AB	JP	NZ,&hABC0	 war keins da? dann SN Error
C5A9: 775201	CAL	&h0152		 offene Klammer im Text berlesen
C5AC: 77AE98	CAL	&h98AE		 Byte-Wert aus dem Text lesen
C5AF: 490FF0	SB	$15,240		 kleiner als 240?
C5B2: B5A1	JR	C,&hC592	  dann BS Error ->
C5B4: 186F	BIU	$15		 Offset in RAM-Zeichensatztabelle
C5B6: 02600F	LD	$0,$15		  berechnen
C5B9: 186F	BIU	$15		  |
C5BB: 084F	AD	$15,#2		  |
C5BD: 260F	PHS	$15		 Offset speichern
C5BF: 775001	CAL	&h0150		 geschlossene Klammer im Text berlesen
C5C2: 775401	CAL	&h0154		 Gleichheitszeichen im Text berlesen
C5C5: 77EB9C	CAL	&h9CEB		 Stringausdruck aus Text lesen
C5C8: 41110C	SBC	$17,12		 Lnge des Strings nicht 12?
C5CB: 34FCAB	JP	NZ,&hABFC	  dann FC Error                {krzer:}
C5CE: D1004A6B	LDW	$0,&h6B4A	 $0/1 Zeiger auf RAM-Zeichensatz   {---}
C5D2: 2E02	PPS	$2		 Offset wieder holen
C5D4: 0203	LD	$3,#0		 High-Byte nullsetzen              {---}
C5D6: 8842	ADW	$2,#2		 Basisadresse addieren       {GRE IX,$4}
C5D8: 9E04	GRE	IX,$4		 Textzeiger retten       {PRE IX,&h64BA}
C5DA: 9602	PRE	IX,$2		 IX Zeiger auf Zeichen  {LDD $3,(IX+$2)}
C5DC: 964F	PRE	IZ,$15		 IZ Zeiger auf Stringbeginn
C5DE: 420206	LD	$2,6		 Zhler auf 6 Bytes setzen
C5E1: 2B00	LDI	$0,(IZ+#0)	 erste Hexziffer lesen
C5E3: 776001	CAL	&h0160		 Hexziffer in binre Zahl wandeln
C5E6: 0241	LD	$1,#2		 und nach $1 kopieren
C5E8: 2B00	LDI	$0,(IZ+#0)	 zweite Hexziffer lesen
C5EA: 776001	CAL	&h0160		 Hexziffer in binre Zahl wandeln
C5ED: 1A21	DIU	$1		 erste Ziffer*16+zweite Ziffer
C5EF: 0841	AD	$1,#2		 |
C5F1: 2201	STI	$1,(IX+#0)	 Byte in den Zeichenspeicher bringen
C5F3: 0922	SB	$2,#1		 Zhler dekrementieren
C5F5: B495	JR	NZ,&hC5E1	 noch ein Byte? dann Schleife ->
C5F7: 9604	PRE	IX,$4		 Textzeiger wieder holen
C5F9: F7	RTN			 zurck
-------------------------------------->	BEI TRON DATEINAME AUSGEBEN
C5FA: D6402769	PRE	IZ,&h6927	 IZ Zeiger auf Trace-Modusflag
C5FE: 391F	ADC	(IZ+#0),$31	 Trace ausgeschaltet?
C600: F0	RTN	Z		  dann zurck
C601: 7726C6	CAL	&hC626		 Cursor evtl. in neue Zeile bringen
C604: 7733C6	CAL	&hC633		 aktuellen Dateinamen ausgeben
C607: B728	JR	&hC630		 CRLF ausgeben ->
--  --  --  --  --  --  --  --  --  -->	BEI TRON ZEILENNUMMER AUSGEBEN
C609: D6402769	PRE	IZ,&h6927	 IZ Zeiger auf Trace-Modusflag
C60D: 391F	ADC	(IZ+#0),$31	 Trace ausgeschaltet?
C60F: F0	RTN	Z		  dann zurck
C610: 773EC6	CAL	&hC63E		 aktuelle Zeilennummer ausgeben
C613: D640C868	PRE	IZ,&h68C8	 IZ Zeiger auf Cursorzeiger
C617: 2D00	LDD	$0,(IZ+#0)	 diesen holen
~Seite 139
C619: 4C00F8	AN	$0,&hF8		 auf Achtertabulator filtern
C61C: 480008	AD	$0,8		 und einen Tabulator addieren
C61F: B510	JR	C,&hC630	 berlauf? dann CRLF ausgeben ->
C621: 2500	STD	$0,(IZ+#0)	 Cursorzeiger speichern
C623: 376CC5	JP	&hC56C		 evtl. Display scrollen ->
--  --  --  --  --  --  --  --  --  -->	EURSOR EVTL. IN NEUE ZEILE BRINGEN
C626: D640C868	PRE	IZ,&h68C8	 IZ Zeiger auf Cursorzeiger
C62A: 2D00	LDD	$0,(IZ+#0)	 diesen holen
C62C: 44001F	ANC	$0,&h1F		 bereits in erster Spalte?
C62F: F0	RTN	Z		  dann zurck
C630: 37CE95	JP	&h95CE		 sonst CRLF ausgeben
--  --  --  --  --  --  --  --  --  -->	DATEINAME IN ECKIGEN KLAMMERN AUSGEBEN
C633: 42105B	LD	$16,"["		 offene eckige Klammer holen
C636: 77D795	CAL	&h95D7 [OUTAC]	 und ausgeben
C639: 7778AD	CAL	&hAD78		 aktuellen Dateinamen ausgeben
C63C: B70A	JR	&hC647		 geschlossene eckige Klammer ausgeben ->
--  --  --  --  --  --  --  --  --  -->	ZEILENNR. IN ECKIGEN KLAMMERN AUSGEBEN
C63E: 42105B	LD	$16,"["		 offene eckige Klammer holen
C641: 77D795	CAL	&h95D7 [OUTAC]	 und ausgeben
C644: 7761AD	CAL	&hAD61		 aktuelle Zeilennummer ausgeben
C647: 42105D	LD	$16,"]"		 geschlossene eckige Klammer holen
C64A: 37D795	JP	&h95D7 [OUTAC]	 und zum Ausgeben ->
-------------------------------------->	BASIC-ANWEISUNG VAR
C64D: 420257	LD	$2,87		 falls vorhanden, LIST-Token
C650: 772801	CAL	&h0128		  berlesen
C653: 34C0AB	JP	NZ,&hABC0	 war keins da? dann SN Error
C656: 770301	CAL	&h0103		 Ende der Anweisung berprfen
C659: 7726C6	CAL	&hC626		 Cursor evtl. in neue Zeile bringen
C65C: 9E1C	GRE	IX,$28		 Textzeiger ablegen
C65E: D6403B69	PRE	IZ,&h693B	 IZ Zeiger auf Var.daten-Untergrenze
C662: E91760	LD4	$23,(IZ+#0)	 diese und -Obergrenze holen
C665: 9657	PRE	IZ,$23		 IZ Zeiger auf Variablendeskriptoren
C667: 9E40	GRE	IZ,$0		 IZ in $0/1 ablegen
C669: 8159	SBCW	$25,#2		 ist Ende des Bereichs erreicht?
C66B: B037	JR	Z,&hC6A3	  dann ->
C66D: AB11	LDIW	$17,(IZ+#0)	 sonst Var.typ und Var.namenlnge lesen
C66F: 9E4F	GRE	IZ,$15		 IZ ablegen
C671: E61260	PHS4	$18		 Register $15-18 speichern
C674: 027711	LD	$23,$17		 Variablentyp nach $23 kopieren
C677: 9A52	BYDW	$18		 $17=Var.namenlnge, $18=0 setzen
C679: 776496	CAL	&h9664 [PRLB1]	 Variablenname ausgeben
C67C: 0017	ADC	$23,#0		 ist es eine Stringvariable?
C67E: 421024	LD	$16,"$"		 Kennzeichen fr String holen
C681: 72D795	CAL	LZ,&h95D7	  dann ausgeben
C684: 1877	BIU	$23		 ist es eine Feldvariable?
C686: B10C	JR	NC,&hC693	  dann ->
C688: 421028	LD	$16,"("		 sonst offene Klammer holen
C68B: 77D795	CAL	&h95D7 [OUTAC]	  und ausgeben
C68E: 0830	AD	$16,#1		 geschlossene Klammer holen
C690: 77D795	CAL	&h95D7 [OUTAC]	  und ausgeben
C693: 772791	CAL	&h9127		 evtl. pausieren
C696: 7713C6	CAL	&hC613		 Cursor auf nchsten Ber-Tab. setzen
C699: EE0F60	PPS4	$15		 Werte wieder holen
C69C: 964F	PRE	IZ,$15		 IZ Zeiger auf Variablendeskriptor
C69E: AB6012	LDIW	$0,(IZ+$18)	 Eintrag berlesen
C6A1: B7BB	JR	&hC667		 und Schleife ->
~Seite 140
C6A3: 7726C6	CAL	&hC626		 Cursor evtl. in neue Zeile bringen
C6A6: 961C	PRE	IX,$28		 Textzeiger wieder setzen
C6A8: F7	RTN			 zurck
-------------------------------------->	BASIC-ANWEISUNG LET
C6A9: 771AA6	CAL	&hA61A		 Variablendeskriptor lesen
C6AC: 775401	CAL	&h0154		 Gleichheitszeichen im Text berlesen
C6AF: D6401069	PRE	IZ,&h6910	 IZ Zeiger auf Var.deskr.  {krzer: ---}
C6B3: E90080	LD5	$0,(IZ+#0)	 diesen holen                      {---}
C6B6: E60480	PHS5	$4		 und zwischenspeichern        {PHSS $16}
C6B9: 0001	ADC	$1,#0		 ist es eine Stringvariable?{ADC $13,#0}
C6BB: B242	JR	LZ,&hC6FE	  dann ->
C6BD: 778999	CAL	&h9989 [SIKI]	 arithmetischen Ausdruck lesen
C6C0: EE0380	PPS5	$3		 Variablendeskriptor wieder holen
C6C3: D6401069	PRE	IZ,&h6910	 IZ Zeiger auf Variablendeskriptor
C6C7: E10380	ST5	$3,(IZ+#0)	 diesen wieder setzen
C6CA: 77CD92	CAL	&h92CD		 Betriebsmodus holen
C6CD: 410210	SBC	$2,16		 nicht im CALC-Modus?
C6D0: B407	JR	NZ,&hC6D8	  dann ->
C6D2: C27364	LD4	$19,$4		 Deskriptor nach $19-22 kopieren
C6D5: 411308	SBC	$19,8		 ist es keine einfache Zahl?
C6D8: 3490A7	JP	NZ,&hA790	  dann Variable zuweisen ->
C6DB: E612E0	PHS8	$18		 NUM1 in den Systemstack bringen
C6DE: 260A	PHS	$10		 |
C6E0: E61660	PHS4	$22		 Deskriptor zwischenspeichern
C6E3: 7790A7	CAL	&hA790		 Variable zuweisen
C6E6: EE1360	PPS4	$19		 Deskriptor wieder holen
C6E9: 77E7AD	CAL	&hADE7		 Variablenname ausgeben
C6EC: 42103D	LD	$16,"="		 Gleichheitszeichen holen
C6EF: 77D795	CAL	&h95D7 [OUTAC]	 und ausgeben
C6F2: EE0AE0	PPS8	$10		 NUM1 aus Systemstack holen
C6F5: EE1240	PPS3	$18		 Rcksprungadresse lschen
C6F8: 77A0AA	CAL	&hAAA0		 NUM1 in den ANS-Speicher bringen
C6FB: 3764AA	JP	&hAA64		 Zahl ausgeben ->
C6FE: 77EB9C	CAL	&h9CEB		 Stringausdruck aus Text lesen
C701: B7C2	JR	&hC6C0		 und zum Zuweisen ->
-------------------------------------->	HIER ABARBEITEN, WENN KEIN BEFEHLSTOKEN
					 GEFUNDEN WURDE
C703: 77F900	CAL	&h00F9 [NEXTC]	 nchstes Zeichen aus Text lesen
C706: 410020	SBC	$0," "		 kein Token?
C709: B1E1	JR	NC,&hC6A9	  dann zur LET-Anweisung ->
C70B: 2A22	LDI	$2,(IX+#1)	 Tokenbyte lesen
C70D: 410006	SBC	$0,6		 ist es ein Stringfunktions-Token?
C710: B00F	JR	Z,&hC720	  dann ->
C712: 410007	SBC	$0,7		 ist es kein Sondertoken?
C715: B407	JR	NZ,&hC71D	  dann SN Error ->
C717: 410248	SBC	$2,72		 ist es das ELSE-Token?
C71A: 30C7C8	JP	Z,&hC8C7	  dann Rest der Zeile berlesen ->
C71D: 37C0AB	JP	&hABC0		 sonst SN Error
C720: 41029B	SBC	$2,155		 ist es das INPUT-Token?
C723: 3019D5	JP	Z,&hD519	  dann zur INPUT-Anweisung ->
C726: 378AAA	JP	&hAA8A		 noch auf DATE$=/TIME$= prfen ->
~Seite 141
-------------------------------------->	BASIC-ANWEISUNG DIM
C729: 7725A6	CAL	&hA625		 Variablendeskriptor holen
C72C: 000C	ADC	$12,#0		 Zahl der Dimensionen=0?
C72E: 30C0AB	JP	Z,&hABC0	  dann SN Error
C731: 7758A7	CAL	&hA758		 Feld im Speicher suchen
C734: B50A	JR	C,&hC73F	 gefunden? dann ->
C736: 778FA8	CAL	&hA88F		 Feld einrichten
C739: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
C73C: B094	JR	Z,&hC729	 war eins da? dann Schleife ->
C73E: F7	RTN			 zurck
C73F: 9655	PRE	IZ,$21		 IZ Zeiger auf Variable
C741: 2B18	LDI	$24,(IZ+#0)	 Zahl der Dimensionen berlesen
C743: 77E6A8	CAL	&hA8E6		 Feldspeicherbedarf berechnen
C746: 016C18	SBC	$12,$24		 stimmt die Zahl der Dimensionen nicht
C749: 34F4AB	JP	NZ,&hABF4	  berein? dann DD Error
C74C: 9E60	GRE	US,$0		 Userstackzeiger ablegen
C74E: 9640	PRE	IZ,$0		 IZ Zeiger auf neue Maximalindizes
C750: 82620F	LDW	$2,$15		 alten Platzbedarf nach $2/3 kopieren
C753: 77E6A8	CAL	&hA8E6		 Feldspeicherbedarf berechnen
C756: 8142	SBCW	$2,#2		 Bedarf nicht gleich?
C758: 34F4AB	JP	NZ,&hABF4	  dann DD Error
C75B: 7775A8	CAL	&hA875		 Maximalindizes einsetzen
C75E: B7A6	JR	&hC739		 auf evtl. Komma testen ->
-------------------------------------->	BASIC-ANWEISUNG ERASE
C760: 7752A6	CAL	&hA652		 Variablenname aus Text lesen
C763: B106	JR	NC,&hC76A	 war keiner da? dann ->
C765: 480D80	AD	$13,128		 zur Feldvariable machen
C768: B56D	JR	C,&hC7D6	 war schon eine? dann ->
C76A: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
C76D: B006	JR	Z,&hC774	 war eins da? dann ->
C76F: 770301	CAL	&h0103		 sonst Ende der Anweisung berprfen
C772: 013F	SBC	$31,#1		 C=1 setzen
C774: 1C40	GFL	$0		 Flags ablegen
C776: 2600	PHS	$0		  und speichern
C778: 7758A7	CAL	&hA758		 Variable im Speicher suchen
C77B: B122	JR	NC,&hC79E	 nicht gefunden? dann ->
C77D: 77F9A8	CAL	&hA8F9		 Endadresse der Variable feststellen
C780: 897115	SBW	$17,$21		 Lnge der Variablendaten setzen
C783: 000D	ADC	$13,#0		 ein Stringfeld?
C785: B21F	JR	LZ,&hC7A5	  dann ->
C787: 7701AA	CAL	&hAA01		 Variablen-Bereich zusammenschieben
C78A: 02710E	LD	$17,$14		 Lnge des Variablennamens holen
C78D: 0212	LD	$18,#0		 High-Byte holen
C78F: D1000400	LDW	$0,4		 4 Bytes dazu addieren
C793: 8851	ADW	$17,#2		 |
C795: 827513	LDW	$21,$19		 $21/22 Zeiger auf Beginn der Variable
C798: 77FBA9	CAL	&hA9FB		 Variablendaten-Bereich zusammenschieben
C79B: 77DEAD	CAL	&hADDE		 FOR-Stapel leeren
C79E: 2E00	PPS	$0		 Flags wieder holen
C7A0: 1440	PFL	$0		  und setzen
C7A2: B1C3	JR	NC,&hC760	 noch ein Feld? dann Schleife ->
C7A4: F7	RTN			 zurck
C7A5: 771EA9	CAL	&hA91E		 String-Speicher zusammenschieben
C7A8: B79F	JR	&hC78A		 und ->
~Seite 142
-------------------------------------->	BASIC-ANWEISUNG RESUME
C7AA: 7766AB	CAL	&hAB66		 im Direktmodus FC Error
C7AD: D640546F	PRE	IZ,&h6F54	 IZ Zeiger auf Aktivfileheader-Zeiger
C7B1: A900	LDW	$0,(IZ+#0)	 diesen holen
C7B3: D6401D69	PRE	IZ,&h691D	 IZ Zeiger auf Fehlerverarb.-Bereich
C7B7: BB00	SBCW	(IZ+#0),$0	 ERROR-Routine nicht in demselben
C7B9: 3408AC	JP	NZ,&hAC08	  BASIC-Programm? dann RE Error
C7BC: EB01E0	LDI8	$1,(IZ+#0)	 Fehlerverarb.-Speicher lesen
C7BF: 3B3E	SBC	(IZ+#1),$30	 ist ERROR-Routine gar nicht aktiv?
C7C1: 3508AC	JP	C,&hAC08	  dann RE Error
C7C4: 420282	LD	$2,130		 falls vorhanden, NEXT-Token
C7C7: 772801	CAL	&h0128		  berlesen
C7CA: B019	JR	Z,&hC7E4	 war es vorhanden? dann ->
C7CC: 77FF00	CAL	&h00FF		 ist es ein Trennzeichen?
C7CF: B509	JR	C,&hC7D9	  dann ->
C7D1: 410003	SBC	$0,3		 folgt eine Zeilennummer?
C7D4: B021	JR	Z,&hC7F6	  dann ->
C7D6: 37C0AB	JP	&hABC0		 sonst SN Error
C7D9: 9607	PRE	IX,$7		 IX Textzeiger vor den fehlerhaften Bef.
C7DB: 7754C0	CAL	&hC054		 aktuelle Zeilennummer setzen
C7DE: 7702C8	CAL	&hC802		 ERROR-Status zurcksetzen
C7E1: 3799C0	JP	&hC099		 in die Interpreterschleife
--  --  --  --  --  --  --  --  --  --	RESUME-NEXT VERARBEITEN
C7E4: 770301	CAL	&h0103		 auf Ende der Anweisung berprfen
C7E7: 9607	PRE	IX,$7		 IX Textzeiger vor den fehlerhaften Bef.
C7E9: 77C4C8	CAL	&hC8C4		 alle Zeichen bis z. Doppelpkt berlesen
C7EC: 2C21	LDD	$1,(IX+#1)	 Doppelpunkt berlesen
C7EE: B094	JR	Z,&hC7DB	 nicht am Zeilenende? dann ->
C7F0: 7702C8	CAL	&hC802		 ERROR-Status zurcksetzen
C7F3: 378AC0	JP	&hC08A		 in die Interpreterschleife ->
--  --  --  --  --  --  --  --  --  --	RESUME-ZEILENNUMMER VERARBEITEN
C7F6: 77B7C1	CAL	&hC1B7		 Zeilennummer aus Text lesen
C7F9: 770301	CAL	&h0103		 auf Ende der Anweisung berprfen
C7FC: 7702C8	CAL	&hC802		 ERROR-Status zurcksetzen
C7FF: 3782C1	JP	&hC182		 und zur GOTO-Anweisung
--  --  --  --  --  --  --  --  --  -->	ERROR-STATUS ZURCKSETZEN
C802: D6402669	PRE	IZ,&h6926	 IZ Zeiger auf ERROR-Status
C806: 251F	STD	$31,(IZ+#0)	 auf "nicht aktiv" setzen
C808: F7	RTN			 zurck
-------------------------------------->	ON-ERROR VERARBEITEN
C809: 420249	LD	$2,73		 falls vorhanden, GOTO-Token
C80C: 772801	CAL	&h0128		  berlesen
C80F: B4BA	JR	NZ,&hC7D6	 war keins da? dann SN Error ->
C811: 77F900	CAL	&h00F9 [NEXTC]	 nchstes Zeichen aus Text lesen
C814: 410003	SBC	$0,3		 folgt eine Zeilennummer?
C817: B021	JR	Z,&hC839	  dann ->
C819: 410030	SBC	$0,"0"		 folgt nicht Zeilennummer 0?
C81C: B4C7	JR	NZ,&hC7D6	  dann SN Error ->
C81E: 2C20	LDD	$0,(IX+#1)	 die 0 berlesen
C820: C97171	SBB4	$17,$17		 Zeilennummer und Textzeiger auf
C823: 7742C8	CAL	&hC842		  ERROR-Routine lschen
C826: D6402169	PRE	IZ,&h6921	 IZ Zeiger auf Fehlerzeilennummer ERL
C82A: E905A0	LD6	$5,(IZ+#0)	 diese mit ERR, Adresse und Status holen
C82D: 012A	SBC	$10,#1		 steht ON-ERROR-Anweisung nicht in der
C82F: F5	RTN	C		  ERROR-Routine? dann zurck
C830: 7754C0	CAL	&hC054		 sonst aktuelle Zeilennummer setzen
~Seite 143
C833: 027209	LD	$18,$9		 Fehlernummer in das richtige Register
C836: 3789AC	JP	&hAC89		 zur Ausgabe der Fehlermeldung
C839: 77BFC1	CAL	&hC1BF		 Zeilennummer im Programm suchen
C83C: D640546F	PRE	IZ,&h6F54	 IZ Zeiger auf Aktivfileheader-Zeiger
C840: A911	LDW	$17,(IZ+#0)	 diesen holen
C842: 770301	CAL	&h0103		 auf Ende der Anweisung prfen
C845: D6401D69	PRE	IZ,&h691D	 IZ Zeiger auf Fehlerverarb.-Bereich
C849: E11160	ST4	$17,(IZ+#0)	 Fileheaderzeiger und Adresse speichern
C84C: F7	RTN			 zurck
-------------------------------------->	BASIC-ANWEISUNG ON
C84D: 7766AB	CAL	&hAB66		 im Direktmodus FC Error
C850: 420286	LD	$2,134		 falls vorhanden, dann ERROR-Token
C853: 772801	CAL	&h0128		  berlesen
C856: B0CE	JR	Z,&hC809	 war eine da? dann ->
C858: 778999	CAL	&h9989 [EXPRW]	 arithmetischen Ausdruck lesen
C85B: 0132	SBC	$18,#1		 ist Ausdruck kleiner als 1?
C85D: B466	JR	NZ,&hC8C4	  dann ->
C85F: 411102	SBC	$17,2		 ist Ausdruck grer als 100?
C862: B161	JR	NC,&hC8C4	  dann ->
C864: 77B198	CAL	&h98B1 [BIN01]	 FLP-Zahl in Byte-Wert wandeln
C867: 420249	LD	$2,73		 falls vorhanden, GOTO-Token
C86A: 772801	CAL	&h0128		  berlesen
C86D: B009	JR	Z,&hC877	 war eins da? dann ->
C86F: 0822	AD	$2,#1		 falls vorhanden, GOSUB-Token
C871: 772801	CAL	&h0128		  berlesen
C874: 34C0AB	JP	NZ,&hABC0	 war keins da? dann SN Error
C877: 77FF00	CAL	&h00FF		 ist Anweisung zu Ende?
C87A: 35C0AB	JP	C,&hABC0	  dann SN Error
C87D: 026E02	LD	$14,$2		 GOTO/GOSUB-Kennzeichen nach $14 bringen
C880: 092F	SB	$15,#1		 Byte-Wert herabzhlen
C882: B01F	JR	Z,&hC8A2	 gewnschte Zielwert erreicht? dann ->
C884: A60F	PHSW	$15		 sonst Kennzeichen und Zhler speichern
C886: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
C889: B00F	JR	Z,&hC899	 war eins da? dann ->
C88B: 410003	SBC	$0,3		 folgt Zeilennummer?
C88E: B00F	JR	Z,&hC89E	  dann ->
C890: 77EB9C	CAL	&h9CEB		 sonst Stringausdruck aus dem Text lesen
C893: 77CFAD	CAL	&hADCF		 Direktmodus setzen ???
C896: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
C899: AE0E	PPSW	$14		 Kennzeichen und Zhler wieder holen
C89B: B09C	JR	Z,&hC880	 war Komma da? dann Schleife ->
C89D: F7	RTN			 zurck
C89E: AA20	LDIW	$0,(IX+#1)	 Zeilennummer berlesen
C8A0: B78B	JR	&hC896		 und ->
C8A2: 77FF00	CAL	&h00FF		 am Ende der Anweisung?
C8A5: F5	RTN	C		  dann zurck
C8A6: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
C8A9: B01A	JR	Z,&hC8C4	 war eins da? dann ->
C8AB: 260E	PHS	$14		 GOTO/GOSUB-Kennzeichen speichern
C8AD: 77B7C1	CAL	&hC1B7		 Zeilennummer im Programm suchen
C8B0: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
C8B3: 740301	CAL	NZ,&h0103	 war keins da? dann Ende des Bef. prfen
C8B6: 2E0E	PPS	$14		 Kennzeichen wieder holen
C8B8: 410E49	SBC	$14,73		 ist es ON-GOTO?
C8BB: 3082C1	JP	Z,&hC182	  dann zur GOTO-Anweisung ->
C8BE: 77C4C8	CAL	&hC8C4		 sonst Zeichen bis Befehlsende berlesen
~Seite 144
C8C1: 3791C1	JP	&hC191		 und zur GOSUB-Anweisung
-------------------------------------->	ZEICHEN BIS ZUM BEFEHLSENDE BERLESEN
C8C4: 02A203	LDJ	$2,#1,&hC8C9	 nach Doppelpunkt suchen ->
-------------------------------------->	BASIC-ANWEISUNGEN REM UND DATA
C8C7: 0202	LD	$2,#0		 nach Zeilenende suchen
C8C9: D1031F03	LDW	$3,&h031F	 $3=31 und $4=3 setzen
C8CD: 2A00	LDI	$0,(IX+#0)	 nchstes Zeichen aus Text lesen
C8CF: 0143	SBC	$3,#2		 folgt kein Steuerzeichen?
C8D1: B585	JR	C,&hC8CD	  dann Schleife ->
C8D3: 0142	SBC	$2,#2		 das gesuchte Zeichen oder Zeilenende?
C8D5: B10F	JR	NC,&hC8E5	  dann ->
C8D7: 0144	SBC	$4,#2		 folgt eine Zeilennummer?
C8D9: B007	JR	Z,&hC8E1	  dann ->
C8DB: B18F	JR	NC,&hC8CD	 folgt kein Token? dann Schleife ->
C8DD: 2C20	LDD	$0,(IX+#1)	 Tokenbyte im Text berlesen
C8DF: B793	JR	&hC8CD		  und Schleife ->
C8E1: AA00	LDIW	$0,(IX+#0)	 Zeilennummer im Text berlesen
C8E3: B797	JR	&hC8CD		 und Schleife ->
C8E5: 2CA1	LDD	$1,(IX-#1)	 Textzeiger auf gesuchtes Zeichen setzen
C8E7: F7	RTN			 zurck
-------------------------------------->	BASIC-BEFEHL NEW
C8E8: 7790B6	CAL	&hB690		 richtigen Modus & Password prfen
C8EB: 770301	CAL	&h0103		 auf Ende des Befehls prfen
C8EE: 7720B7	CAL	&hB720		 Start- und Endadr. des Programms holen
C8F1: 772CB7	CAL	&hB72C		 Lnge des Programms berechnen
C8F4: 776FB2	CAL	&hB26F		 Programm aus dem BASIC-Speicher lschen
C8F7: 37A390	JP	&h90A3		 zurck in den Direktmodus ->
-------------------------------------->	BASIC-ANWEISUNG READ
C8FA: 7766AB	CAL	&hAB66		 im Direktmodus FC Error
C8FD: 771AA6	CAL	&hA61A		 Variablendeskriptor lesen und speichern
C900: 9E00	GRE	IX,$0		 Textzeiger ablegen
C902: A601	PHSW	$1		  und speichern
C904: D6401769	PRE	IZ,&h6917	 IZ Zeiger auf DATA-Zeiger
C908: A90F	LDW	$15,(IZ+#0)	 diesen holen
C90A: 960F	PRE	IX,$15		 IX Zeiger in DATA-Zeile
C90C: 812F	SBCW	$15,#1		 noch kein DATA gelesen?
C90E: B514	JR	C,&hC923	  dann erstes suchen ->
C910: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
C913: B017	JR	Z,&hC92B	 war eins da? dann ->
C915: 2C21	LDD	$1,(IX+#1)	 nchstes Zeichen lesen
C917: 410080	SBC	$0,128		 ist es das DATA-Token?
C91A: B010	JR	Z,&hC92B	  dann ->
C91C: 0000	ADC	$0,#0		 ist die Zeile zu Ende?
C91E: B009	JR	Z,&hC928	  dann nchste suchen ->
C920: 37C0AB	JP	&hABC0		 sonst SN Error
C923: 7720B7	CAL	&hB720		 Start- und Endadr. des Programms holen
C926: 9619	PRE	IX,$25		 IX Textzeiger auf Programmbeginn
C928: 773DC9	CAL	&hC93D		 nchste DATA-Anweisung suchen
C92B: 77BF9D	CAL	&h9DBF		 Datum aus dem Text lesen
C92E: 9E0F	GRE	IX,$15		 Textzeiger ablegen
C930: 778DC9	CAL	&hC98D		 und als DATA-Zeiger speichern
C933: AE00	PPSW	$0		 Textzeiger wieder holen
C935: 9600	PRE	IX,$0		  und setzen
C937: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
C93A: B0BE	JR	Z,&hC8FD	 war eins da? dann Schleife ->
C93C: F7	RTN			 zurck
~Seite 145
--  --  --  --  --  --  --  --  --  -->	NCHSTE DATA-ANWEISUNG SUCHEN
C93D: D1021F03	LDW	$2,&h031F	 $2=31, $3=3
C941: 420404	LD	$4,4		 und $4=4 setzen
C944: 2A00	LDI	$0,(IX+#0)	 Zeilenlnge berlesen
C946: 0000	ADC	$0,#0		 am Programmende?
C948: 3010AC	JP	Z,&hAC10	  dann DA Error
C94B: AA00	LDIW	$0,(IX+#0)	 Zeilennummer berlesen
C94D: 2A00	LDI	$0,(IX+#0)	 nchstes Zeichen lesen
C94F: 0142	SBC	$2,#2		 ist es kein Steuerzeichen?
C951: B585	JR	C,&hC94D	  dann Schleife ->
C953: 0000	ADC	$0,#0		 am Zeilenende?
C955: B092	JR	Z,&hC944	  dann nchste Zeile durchsuchen ->
C957: 0143	SBC	$3,#2		 folgt eine Zeilennummer?
C959: B08F	JR	Z,&hC94B	 dann diese berlesen und Schleife ->
C95B: B18F	JR	NC,&hC94D	 Doppelpunkt od. Apostr.? dann Schl. ->
C95D: 2A01	LDI	$1,(IX+#0)	 sonst Tokenbyte berlesen
C95F: 0144	SBC	$4,#2		 kein Befehlstoken?
C961: B495	JR	NZ,&hC94D	  dann Schleife ->
C963: 410180	SBC	$1,128		 ist es nicht das DATA-Token?
C966: B49A	JR	NZ,&hC94D	  dann Schleife ->
C968: 9E0F	GRE	IX,$15		 sonst Textzeiger ablegen
C96A: F7	RTN			 zurck
-------------------------------------->	BASIC-ANWEISUNG RESTORE
C96B: 7766AB	CAL	&hAB66		 im Direktmodus FC Error
C96E: 77F900	CAL	&h00F9 [NEXTC]	 nchstes Zeichen lesen
C971: 410003	SBC	$0,3		 ist Anweisung zu Ende?
C974: B523	JR	C,&hC998	  dann ->
C976: B01D	JR	Z,&hC994	 folgt eine Zeilennummer? dann ->
C978: 770A9A	CAL	&h9A0A		 arithm. Ausdruck in Klammern lesen
C97B: 77CD98	CAL	&h98CD [BIN02]	 FLP-Zahl in Wort-Wert wandeln
C97E: 9E17	GRE	IX,$23		 Textzeiger ablegen
C980: 77D1B4	CAL	&hB4D1 [LNSCH]	 Zeile im Speicher suchen
C983: 3100AC	JP	NC,&hAC00	 nicht gefunden? dann UL Error
C986: 773DC9	CAL	&hC93D		 nchste DATA-Anweisung suchen
C989: 892F	SBW	$15,#1		 Zeiger auf Datum herabsetzen
C98B: 9617	PRE	IX,$23		 Textzeiger wieder holen
--  --  --  --  --  --  --  --  --  -->	$15/16 ALS DATA-ZEIGER ABLEGEN
C98D: D6401769	PRE	IZ,&h6917	 IZ Zeiger auf DATA-Zeiger
C991: A10F	STW	$15,(IZ+#0)	 Register $15/16 dort ablegen
C993: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	RESTORE-ZEILENNUMMER ABARBEITEN
C994: AA2F	LDIW	$15,(IX+#1)	 Zeilennummer lesen
C996: B799	JR	&hC97E		 und ->
--  --  --  --  --  --  --  --  --  --	RESTORE ABARBEITEN
C998: 89EF0F8E	SBWJ	$15,$15,&hC98D	 Zeilennummernspeicher lschen und ->
-------------------------------------->	CLEAR,, ABARBEITEN
C99C: 2CA0	LDD	$0,(IX-#1)	 IX herabsetzen
C99E: B70E	JR	&hC9AD		 und ->
--  --  --  --  --  --  --  --  --  --	CLEAR x ABARBEITEN
C9A0: 77CA98	CAL	&h98CA		 positiven Wort-Wert aus dem Text lesen
C9A3: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
C9A6: B023	JR	Z,&hC9CA	 war eins da? dann ->
C9A8: B704	JR	&hC9AD		 sonst ->
~Seite 146
--  --  --  --  --  --  --  --  --  -->	CLEAR ABARBEITEN
C9AA: 77A6CA	CAL	&hCAA6		 Gre des Stringspeichers berechnen
C9AD: 826D0F	LDW	$13,$15		 und nach $13/14 bringen
C9B0: D6402F69	PRE	IZ,&h692F	 IZ Zeiger auf FCB-Bereichsbeginn-Zeiger
C9B4: A90F	LDW	$15,(IZ+#0)	 diesen holen
C9B6: 49907023	SBJ	$16,&h70,&hC9DC	 Lnge des ML-Bereichs berechnen und ->
-------------------------------------->	BASIC-BEFEHL CLEAR
C9BA: 773EC1	CAL	&hC13E		 alle Kanle schlieen
C9BD: 77FF00	CAL	&h00FF		 Ende des Befehls?
C9C0: B597	JR	C,&hC9AA	  dann ->
C9C2: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
C9C5: B4A6	JR	NZ,&hC9A0	  war keins da? dann ->
C9C7: 77A6CA	CAL	&hCAA6		 Gre des Stringspeichers berechnen
C9CA: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
C9CD: B0B2	JR	Z,&hC99C	  war eins da? dann ->
C9CF: A610	PHSW	$16		 Stringspeichergre speichern
C9D1: 77CA98	CAL	&h98CA		 positiven Wort-Wert aus dem Text lesen
C9D4: 411010	SBC	$16,16		 dieser grer als 4096?
C9D7: 315DCA	JP	NC,&hCA5D	  dann OM Error
C9DA: AE0D	PPSW	$13		 Stringspeichergre wieder holen
C9DC: E61060	PHS4	$16		 Gren speichern
C9DF: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
C9E2: B47D	JR	NZ,&hCA60	  war keins da? dann ->
C9E4: 775FAB	CAL	&hAB5F		 im Programmodus FC Error
C9E7: 77CA98	CAL	&h98CA		 positiven Wort-Wert aus Text lesen
C9EA: 770301	CAL	&h0103		 auf Ende des Befehls berprfen
C9ED: EE0060	PPS4	$0		 Gren wieder holen
C9F0: E60360	PHS4	$3		 und wieder speichern
C9F3: 8842	ADW	$2,#2		 ML- und Stringspeicher mehr als 64 kB?
C9F5: B567	JR	C,&hCA5D	  dann DM Error
C9F7: 81620F	SBCW	$2,$15		 grer als Gesamtsystemspeichergre?
C9FA: B162	JR	NC,&hCA5D	 dann ebenfalls OM Error
C9FC: D6404C69	PRE	IZ,&h694C	 IZ Zeiger auf Speicherobergrenze
CA00: 391E	ADC	(IZ+#0),$30	 ist RP-32 eingesteckt?
CA02: D10CFF8F	LDW	$12,&h8FFF	 Maximalgre des Freispeichers setzen
CA06: B505	JR	C,&hCA0C	  dann ->
CA08: D10C0010	LDW	$12,&h1000	 sonst Maximalgre fr 8kB RAM setzen
CA0C: D6404169	PRE	IZ,&h6941	 IZ Zeiger auf Beginn der BASIC-Progr.
CA10: EB00A0	LDI6	$0,(IZ+#0)	 diesen und andere Zeiger holen
CA13: E906A0	LD6	$6,(IZ+#0)	 weitere Zeiger holen
CA16: 8942	SBW	$2,#2		 $2/3 Lnge der BASIC-Programme zusammen
CA18: 8944	SBW	$4,#2		 $4/5 Lnge der Files & Progr. zusammen
CA1A: 896A06	SBW	$10,$6		 $10/11 Gre der Directorys und
CA1D: 886A04	ADW	$10,$4		  aller Files & Programme zusammen
CA20: 886A0F	ADW	$10,$15		 ist angeforderter Systemspeicher nicht
CA23: B539	JR	C,&hCA5D	  machbar? dann OM Error
CA25: 816C0A	SBCW	$12,$10		 ist benutzter Speicher zu gro?
CA28: B534	JR	C,&hCA5D	  dann OM Error
CA2A: A601	PHSW	$1		 alter Beginn der BASIC-Progr. speichern
CA2C: D1000070	LDW	$0,&h7000	 $0/1 Beginn der BASIC-Programme
CA30: 88600F	ADW	$0,$15		 |
CA33: 8842	ADW	$2,#2		 $2/3 Beginn der Datenfiles
CA35: 8844	ADW	$4,#2		 $4/5 Ende der Datenfiles
CA37: E5A5A0	STD6	$5,(IZ-#1)	 in Zeigern ablegen
CA3A: AE02	PPSW	$2		 alten Beginn der BASIC-Progr. holen
CA3C: 8944	SBW	$4,#2		 $4/5 Lnge aller Files & Programme
~Seite 147
CA3E: 8248	LDW	$8,#2		 $8/9 Offset fr Verschiebung der
CA40: 896802	SBW	$8,$2			Programme und Datenfiles
CA43: 6D0E0A	LDD	$14,(IZ+10)	 IZ Zeiger auf Speicherobergrenze
CA46: A90A	LDW	$10,(IZ+#0)	 diese holen
CA48: 9646	PRE	IZ,$6		 IZ Zeiger auf Beginn der Directories
CA4A: 420E03	LD	$14,3		 $14 Offset fr Endadresse im Fileheader
CA4D: 81660A	SBCW	$6,$10		 schon am Ende der Directories?
CA50: B027	JR	Z,&hCA78	  dann ->
CA52: BD28	ADW	(IZ+#1),$8	 Anfangsadresse verndern
CA54: BD680E	ADW	(IZ+$14),$8	 Endadresse verndern
CA57: 6D0620	LDD	$6,(IZ+32)	 IZ um Lnge eines Fileheaders erhhen
CA5A: 9EC68F	GREJ	IZ,$6,&hCA4D	 IZ ablegen und Schleife
CA5D: 37BDAB	JP	&hABBD		 zum OM Error
--  --  --  --  --  --  --  --  --  --
CA60: 886D0F	ADW	$13,$15		 ML- und Stringspeicher mehr als 64 kB?
CA63: B587	JR	C,&hCA5D	  dann OM Error
CA65: D6404169	PRE	IZ,&h6941	 IZ Zeiger auf Beginn der BASIC-Progr.
CA69: A900	LDW	$0,(IZ+#0)	 diesen holen
CA6B: 490170	SB	$1,&h70		 Gre des Systemspeichers berechnen
CA6E: 814D	SBCW	$13,#2		 geforderter ML- und Stringspeicher mehr
CA70: B194	JR	NC,&hCA5D	  als Systemspeicher? dann OM Error
CA72: 770301	CAL	&h0103		 auf Ende des Befehls berprfen
CA75: 029D0A	LDJ	$29,#0,&hCA81	 Kennzeichen lschen und ->
CA78: 77F3CB	CAL	&hCBF3		 Block kopieren, IX beibehalten
CA7B: 023D	LD	$29,#1		 Kennzeichen setzen
CA7D: D6404169	PRE	IZ,&h6941	 IZ Zeiger auf Beginn der BASIC-Progr.
CA81: A900	LDW	$0,(IZ+#0)	 diesen holen
CA83: AE02	PPSW	$2		 Gre des Stringspeichers holen
CA85: 896002	SBW	$0,$2		 Zeiger auf Stringspeicher-Untergrenze
CA88: 420E06	LD	$14,6		 Zhler auf 6mal setzen
CA8B: 779FCA	CAL	&hCA9F		 Zeiger mehrmals rckwrts setzen
CA8E: AE00	PPSW	$0		 Gre des Masch.sprache-Bereichs holen
CA90: 480170	AD	$1,&h70		 Zeiger auf Masch.sprache-Ber.-Obergr.
CA93: 420E03	LD	$14,3		 Zhler auf 3mal setzen
CA96: 779FCA	CAL	&hCA9F		 Zeiger mehrmals rckwrts setzen
CA99: 013D	SBC	$29,#1		 sind keine BASIC-Programme verschoben
CA9B: F4	RTN	NZ		  worden? dann zurck
CA9C: 37A390	JP	&h90A3		 sonst in den Direktmodus zurckkehren ->
--  --  --  --  --  --  --  --  --  --	ZEIGER ($14)MAL RCKWRTS SETZEN
CA9F: A5A1	STDW	$1,(IZ-#1)	 Zeiger in den Speicher bringen
CAA1: 092E	SB	$14,#1		 Zhler herabsetzen
CAA3: B485	JR	NZ,&hCA9F	 noch einmal? dann Schleife ->
CAA5: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	GRSSE DES STRINGSPEICHER BERECHNEN
CAA6: D6403D69	PRE	IZ,&h693D	 IZ Zeiger auf Str.speicher-Untergrenze
CAAA: E90BA0	LD6	$11,(IZ+#0)	 mit maximaler Obergrenze holen
CAAD: 896F0B	SBW	$15,$11		 Gre des Stringspeichers berechnen
CAB0: F7	RTN			 zurck
--------------------------------------	PRINT# VERARBEITEN
CAB1: 77D990	CAL	&h90D9		 Ausgabe auf FCB lenken   {krzer wre:}
CAB4: 77EAD2	CAL	&hD2EA		 "#" berlesen u. Kanalnummer 1esen{---}
CAB7: 772DD3	CAL	&hD32D		 zugehrigen FCB suchen     {CAL &hD59E}
CABA: D6400E69	PRE	IZ,&h690E	 IZ Zeiger auf Aktiv-FCB-Zeiger    {---}
CABE: A108	STW	$8,(IZ+#0)	 FCB-Zeiger dort speichern
CAC0: 77A4D5	CAL	&hD5A4		 Filemodus holen                   {---}
CAC3: 490031	SB	$0,49		 Direktzugriff?
~Seite 148
CAC6: 302CAC	JP	Z,&hAC2C	  dann AM Error
CAC9: 0920	SB	$0,#1		 nur Eingabe?
CACB: 302CAC	JP	Z,&hAC2C	  dann ebenfalls AM Error
CACE: 77FF00	CAL	&h00FF		 Anweisung zu Ende?
CAD1: B521	JR	C,&hCAF3	  dann ->
CAD3: 774C01	CAL	&h014C		 sonst Komma im Text berlesen
CAD6: B70E	JR	&hCAE5		 und ->
-------------------------------------->	BASIC-ANWEISUNG LPRINT
CAD8: 77DD90	CAL	&h90DD		 Ausgabe auf Drucker lenken
CADB: B709	JR	&hCAE5		 und ->
-------------------------------------->	BASIC-ANWEISUNG PRINT
CADD: 77E190	CAL	&h90E1		 Ausgabe auf Display lenken
CAE0: 774201	CAL	&h0142		 evtl. vorhand. Nummerzeichen berlesen
CAE3: B0B3	JR	Z,&hCAB1	 war eins da? dann ->
CAE5: 4202C2	LD	$2,194		 falls vorhanden, USING-Token
CAE8: 772E01	CAL	&h012E		  berlesen
CAEB: 306ACD	JP	Z,&hCD6A	 war es da? dann ->
CAEE: 77FF00	CAL	&h00FF		 Anweisung nicht zu Ende?
CAF1: B107	JR	NC,&hCAF9	  dann ->
CAF3: 77CE95	CAL	&h95CE		 CRLF ausgeben
CAF6: 37E190	JP	&h90E1		 Ausgabe wieder auf Display lenken ->
CAF9: 41003B	SBC	$0,";"		 ein Semikolon im Text?
CAFC: B009	JR	Z,&hCB06	  dann ->
CAFE: 41002C	SBC	$0,","		 ist es auch kein Komma?
CB01: B40D	JR	NZ,&hCB0F	  dann ->
CB03: 7794CB	CAL	&hCB94		 Komma-Tabulator ausfhren
CB06: 2C20	LDD	$0,(IX+#1)	 nchstes Zeichen lesen
CB08: 77FF00	CAL	&h00FF		 Anweisung nicht zu Ende?
CB0B: B193	JR	NC,&hCAF9	  dann Schleife ->
CB0D: B798	JR	&hCAF6		 sonst ->
CB0F: 410007	SBC	$0,7		 folgt kein Sonder-Token?
CB12: B42C	JR	NZ,&hCB3F	  dann ->
CB14: 2820	LD	$0,(IX+#1)	 sonst Tokenbyte lesen
CB16: 4900BB	SB	$0,187		 dieses ist >=187?
CB19: B125	JR	NC,&hCB3F	  dann ->
CB1B: 480005	AD	$0,5		 nicht NORM, REV oder TAB?
CB1E: 31C0AB	JP	NC,&hABC0	  dann SN Error
CB21: 2A21	LDI	$1,(IX+#1)	 Tokenbyte berlesen
CB23: B012	JR	Z,&hCB36	 ist es TAB? dann ->
CB25: 7757CB	CAL	&hCB57		 Eingabemodus holen
CB28: B4BB	JR	NZ,&hCAEE	 Ausg. nicht auf Display? dann Schl. ->
CB2A: 410004	SBC	$0,4		 ist es NORM?
CB2D: B00D	JR	Z,&hCB3B	  dann ->
CB2F: 4E0120	OR	$1,&h20		 sonst REV-Bit setzen
CB32: 2501	STD	$1,(IZ+#0)	 als Eingabemodus speichern
CB34: B7C7	JR	&hCAEE		  und Schleife ->
CB36: 776ECB	CAL	&hCB6E		 TAB-Funktion ausfhren
CB39: B7CC	JR	&hCAEE		 und Schleife ->
CB3B: 4C81DF8C	ANJ	$1,&hDF,&hCB32	 REV-Bit lschen und ->
CB3F: 77E598	CAL	&h98E5 [SIKI]	 Ausdruck aus dem Text lesen
CB42: 9E1C	GRE	IX,$28		 Textzeiger ablegen
CB44: B50D	JR	C,&hCB52	 Stringausdruck? dann ->
CB46: 7755A5	CAL	&hA555		 Zahl in einen String wandeln
CB49: 776496	CAL	&h9664 [PRLB1]	 String ausgeben
CB4C: 775204	CAL	&h0452		 ein Leerzeichen ausgeben
CB4F: 969CE3	PREJ	IX,$28,&hCAEE	 Textzeiger wieder setzen u. Schleife ->
~Seite 149
CB52: 7764AA	CAL	&hAA64		 String ausgeben
CB55: B787	JR	&hCB4F		 und ->
--  --  --  --  --  --  --  --  --  -->	EINGABEMODUS HOLEN
CB57: D6400C69	PRE	IZ,&h690C	 IZ Zeiger auf Ausgabegertenummer
CB5B: 391F	ADC	(IZ+#0),$31	 ist Display Ausgabegert? dann Z=1
CB5D: D640C768	PRE	IZ,&h68C7	 IZ Zeiger auf Eingabemodus
CB61: 2D01	LDD	$1,(IZ+#0)	 diesen holen
CB63: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	REST DER TAB-FUNKTION
CB64: D640C868	PRE	IZ,&h68C8	 IZ Zeiger auf Cursorzeiger
CB68: 2D00	LDD	$0,(IZ+#0)	 diesen holen
CB6A: 4C801F12	ANJ	$0,&h1F,&hCB7F	 Zeile herausfiltern und ->
--  --  --  --  --  --  --  --  --  -->	TAB-FUNKTION AUSFHREN
CB6E: 770A9A	CAL	&h9A0A		 arithm. Ausdruck in Klammern holen
CB71: 77B198	CAL	&h98B1 [BIN01]	 FLP-Zahl in Byte-Wert wandeln
CB74: D6400C69	PRE	IZ,&h690C	 IZ Zeiger auf Ausgabegertenummer
CB78: 391F	ADC	(IZ+#0),$31	 ist Display Ausgabegert?
CB7A: B097	JR	Z,&hCB64	  dann ->
CB7C: 77B2CB	CAL	&hCBB2		 Spaltenposition holen
CB7F: 094F	SB	$15,#2		 schon an geforderter Position?
CB81: F0	RTN	Z		  dann zurck
CB82: B106	JR	NC,&hCB89	 noch nicht da? dann ->
CB84: 084F	AD	$15,#2		 sonst geforderte Pos. wiederherstellen
CB86: 77CE95	CAL	&h95CE [OUTCR]	 CRLF ausgeben
CB89: 02710F	LD	$17,$15		 $17 Zhler fr auszugebende Leerzeichen
CB8C: 0931	SB	$17,#1		 Zhler herabsetzen
CB8E: F5	RTN	C		 am Ende der Schleife? dann zurck
CB8F: 775204	CAL	&h0452		 ein Leerzeichen ausgeben
CB92: B787	JR	&hCB8C		 und Schleife ->
--  --  --  --  --  --  --  --  --  -->	","-FUNKTION AUSFHREN
CB94: D6400C69	PRE	IZ,&h690C	 IZ Zeiger auf Ausgabegert
CB98: 391F	ADC	(IZ+#0),$31	 Ausgabe geht ans Display?
CB9A: 30CE95	JP	Z,&h95CE	 dann CRLF ausgeben und zurck
CB9D: 77B2CB	CAL	&hCBB2		 Spaltenposition holen
CBA0: 0211	LD	$17,#0		 Tabulatorposition zurcksetzen
CBA2: 48110E	AD	$17,14		 einen Tabulatorschritt hinzuzhlen
CBA5: B509	JR	C,&hCBAF	 berlauf? dann ->
CBA7: 016011	SBC	$0,$17		 noch nicht ber alte Position hinaus?
CBAA: B189	JR	NC,&hCBA2	  dann Schleife ->
CBAC: 09D1A2	SBJ	$17,#2,&hCB8C	 Zahl der Leerzeichen berechnen und ->
CBAF: 029185	LDJ	$17,#0,&hCBAC	 Tabulator auf Null setzen und ->
--  --  --  --  --  --  --  --  --  -->	SPALTENPOSITION HOLEN
CBB2: D6400C69	PRE	IZ,&h690C	 IZ Zeiger auf Ausgabegertenummer
CBB6: 2D00	LDD	$0,(IZ+#0)	 diese holen
CBB8: 440002	ANC	$0,2		 Ausgabe geht auf Drucker?
CBBB: B408	JR	NZ,&hCBC4	  dann ->
CBBD: 7722CC	CAL	&hCC22		 IZ Zeiger auf aktiven FCB
CBC0: 6D001B	LDD	$0,(IZ+&h1B)	 Spaltenposition holen
CBC3: F7	RTN			 zurck
CBC4: D6400D69	PRE	IZ,&h690D	 IZ Zeiger auf Drucker-Spaltenposition
CBC8: 2D00	LDD	$0,(IZ+#0)	 diese holen
CBCA: F7	RTN			 zurck
~Seite 150
-------------------------------------->	BASIC-ANWEISUNG LSET
CBCB: 77FBCB	CAL	&hCBFB		 gesamte Anweisung einlesen und verarb.
CBCE: E60240	PHS3	$2		 FIELD-Stringdeskr. zwischenspeichern
CBD1: 77F0CB	CAL	&hCBF0		 String in den Stringspeicher bringen
CBD4: EE0040	PPS3	$0		 FIELD-Stringdeskr. wieder holen
CBD7: 9640	PRE	IZ,$0		 IZ Zeiger auf FIELD-Stringanfang
CBD9: 2D6011	LDD	$0,(IZ+$17)	 IZ um Lnge des Strings erhhen
CBDC: 420320	LD	$3," "		 Leerzeichen holen
CBDF: 0922	SB	$2,#1		 Anzahl der Fllzeichen verringern
CBE1: F5	RTN	C		 Schleife zu Ende? dann zurck
CBE2: 2303	STI	$3,(IZ+#0)	 Leerzeichen als Fllzeichen speichern
CBE4: B786	JR	&hCBDF		 und Schleife ->
--  --  --  --  --  --  --  --  --  -->	BASIC-ANWEISUNG RSET
CBE6: 77FBCB	CAL	&hCBFB		 gesamte Anweisung einlesen und verarb.
CBE9: 9640	PRE	IZ,$0		 IZ Zeiger auf FIELD-Stringdeskriptor
CBEB: 77DCCB	CAL	&hCBDC		 Leerzeichen in den String bringen
CBEE: 9E40	GRE	IZ,$0		 IZ als Zieladresse ablegen
CBF0: C2626F	LD4	$2,$15		 Quelladresse und Lnge holen
CBF3: 9E1A	GRE	IX,$26		 IX ablegen
CBF5: 774890	CAL	&h9048 [BUPDN]	 Bereich kopieren
CBF8: 961A	PRE	IX,$26		 IX wieder setzen
CBFA: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	GESAMTE ANWEISUNG EINLESEN UND VERARB.
CBFB: 778FA6	CAL	&hA68F		 Stringvariablendeskr. u. -inhalt holen
CBFE: 9653	PRE	IZ,$19		 IZ Zeiger auf Variablendeskriptor
CC00: 2D00	LDD	$0,(IZ+#0)	 Variablentyp holen
CC02: 440040	ANC	$0,&h40		 keine FIELD-Variable?
CC05: 30FCAB	JP	Z,&hABFC	  dann FC Error
CC08: 775401	CAL	&h0154		 Gleichheitszeichen im Text berlesen
CC0B: E61140	PHS3	$17		 Stringdeskriptor zwischenspeichern
CC0E: 77EB9C	CAL	&h9CEB		 Stringausdruck lesen
CC11: EE0040	PPS3	$0		 Stringdeskriptor wieder holen
CC14: 016211	SBC	$2,$17		 ist der Stringausdruck krzer?
CC17: B104	JR	NC,&hCC1C	  dann ->
CC19: 027102	LD	$17,$2		 sonst auf Maximallnge abschneiden
CC1C: 096211	SB	$2,$17		 Anzahl der Fllzeichen berechnen
CC1F: 0212	LD	$18,#0		 High-Byte der Lnge auf Null setzen
CC21: F7	RTN			 zurck
-------------------------------------->	IZ ZEIGER AUF AKTIVEN FCB
CC22: D6400E69	PRE	IZ,&h690E	 IZ Zeiger auf Aktiv-FCB-Zeiger
CC26: A908	LDW	$8,(IZ+#0)	 diesen holen
CC28: 9648	PRE	IZ,$8		 IZ Zeiger auf aktiven FCB
CC2A: F7	RTN			 zurck
-------------------------------------->	REST
CC2B: 41100A	SBC	$16,10		 Ausgabezeichen ein LF?
CC2E: B036	JR	Z,&hCC65	  dann ->
CC30: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	BYTE AUF MT-KANAL AUSGEBEN
CC31: D640716F	PRE	IZ,&h6F71	 IZ Zeiger auf Blocklnge
CC35: BDBE	ADW	(IZ-#1),$30	 diese erhhen
CC37: A9A5	LDW	$5,(IZ-#1)	 Blocklnge holen
CC39: A920	LDW	$0,(IZ+#1)	 Flags holen
CC3B: 0207	LD	$7,#0		 Kennzeichen fr normalen Block holen
CC3D: 9E02	GRE	IX,$2		 Datenpufferzeiger in $2/3 ablegen
CC3F: 8822	ADW	$2,#1		 und erhhen
CC41: 0121	SBC	$1,#1		 ist es BASIC-ASCII-Speicherung?
~Seite 151
CC43: B099	JR	Z,&hCC2B	  dann auf LF warten ->
CC45: 0100	SBC	$0,#0		 war letztes Zeichen ein CR?
CC47: B416	JR	NZ,&hCC5E	  dann ->
CC49: 41100D	SBC	$16,13		 ist Ausgabezeichen ein CR?
CC4C: B009	JR	Z,&hCC56	  dann ->
CC4E: 817B02	SBCW	$27,$2		 steht Zeiger auf File-Ende?
CC51: B011	JR	Z,&hCC63	  dann ->
CC53: 018608	SBCJ	$6,#0,&hCC5D	 ist High-Byte der Blocklnge Null? ->
CC56: 2800	LD	$0,(IX+#0)	 nchstes Zeichen lesen
CC58: 213E	ST	$30,(IZ+#1)	 Flag fr gelesenes CR setzen
CC5A: 41000A	SBC	$0,10		 ist das ein LF?
CC5D: F0	RTN	Z		  dann zurck
CC5E: 817B02	SBCW	$27,$2		 steht Zeiger nicht auf File-Ende?
CC61: B403	JR	NZ,&hCC65	  dann ->
CC63: 0227	LD	$7,#1		 letzter-Block-Flag setzen
CC65: BFA5	SBW	(IZ-#1),$5	 Blocklnge auf Null setzen
CC67: 213F	ST	$31,(IZ+#1)	 Flag CR zurcksetzen
CC69: 9608	PRE	IX,$8		 IX Zeiger auf Datenpuffer
CC6B: 6C0023	LDD	$0,(IX+&h23)	 |
CC6E: 7766E2	CAL	&hE266		 ganzen Block auf MT-Port ausgeben
CC71: 9648	PRE	IZ,$8		 IZ Zeiger auf aktiven FCB
--  --  --  --  --  --  --  --  --  -->	BLOCKNUMMER INKREMENTIEREN
CC73: 420010	LD	$0,16		 Offset auf Datenpuffer-Anfangszeiger
CC76: A941	LDW	$1,(IZ+#2)	 diesen holen
CC78: 420017	LD	$0,23		 Offset auf Zeiger in Datenpuffer
CC7B: A341	STIW	$1,(IZ+#2)	 in diesen speichern
CC7D: BD1E	ADW	(IZ+#0),$30	 Blockanzahl inkrementieren
CC7F: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	AUSGABE AUF FCB-KANAL
CC80: 7722CC	CAL	&hCC22		 IZ Zeiger auf aktiven FCB
CC83: 690704	LD	$7,(IZ+4)	 Gerteart holen
CC86: 410702	SBC	$7,2		 ist es die RS232C-Schnittstelle?
CC89: 30FFBE	JP	Z,&hBEFF [PRTRS] dann Ausgabe auf dieselbe ->
CC8C: B509	JR	C,&hCC96	 Speicher oder Disk? dann ->
--  --  --  --  --  --  --  --  --  --	ALLGEMEINE AUSGABE AUF MT-KANAL
CC8E: 29A0	LD	$0,(IZ-#1)	 MT-Filetyp holen
CC90: 410024	SBC	$0,36		 ist es kein "S"-File?
CC93: 345AE2	JP	NZ,&hE25A	  dann direkt Ausgabe auf MT-Port ->
CC96: 420017	LD	$0,23		 Offset auf Zeiger in Datenpuffer
CC99: A942	LDW	$2,(IZ+#2)	 diesen holen
CC9B: BD5E	ADW	(IZ+#2),$30	 und Zeiger im FCB inkrementieren
CC9D: 9642	PRE	IZ,$2		 IZ Zeiger in Datenpuffer
CC9F: 2310	STI	$16,(IZ+#0)	 Ausgabezeichen dort speichern
CCA1: 410703	SBC	$7,3		 Ausgabe auf MT?
CCA4: B0F4	JR	Z,&hCC31	  dann ->
CCA6: 9648	PRE	IZ,$8		 IZ Zeiger auf aktiven FCB
CCA8: 7D1E14	AD	(IZ+20),$30	 Pufferzhler inkrementieren
CCAB: F1	RTN	NC		 Puffer noch nicht voll? dann zurck
CCAC: 7773CC	CAL	&hCC73		 Pufferz. zurcks., Blockanzahl erhhen
CCAF: D1000001	LDW	$0,256		 $0/1 Lnge des Datenpuffers
CCB3: 0127	SBC	$7,#1		 Ausgabe auf Disk?
CCB5: B038	JR	Z,&hCCEE	  dann ->
~Seite 152
--  --  --  --  --  --  --  --  --  --	DATENPUFFER IN SPEICHER "AUSGEBEN"
CCB7: 9648	PRE	IZ,$8		 IZ Zeiger auf aktiven FCB
CCB9: E61CA0	PHS6	$28		 Register $23-28 zwischenspeichern
CCBC: D118101D	LDW	$24,&h1D10	 Offsets $24=16 und $25=29 setzen
CCC0: A97718	LDW	$23,(IZ+$24)	 Datenpuffer-Anfangszeiger holen
CCC3: EB7979	LDI4	$25,(IZ+$25)	 Beginn und Ende im Speicher holen
CCC6: A902	LDW	$2,(IZ+#0)	 Zeiger in den Speicher holen
CCC8: D6004569	PRE	IX,&h6945	 IX Zeiger auf Freispeicher-Untergrenze
CCCC: E806A0	LD6	$6,(IX+#0)	 mit -Obergrenze und BASIC-Dir.-Untergr.
CCCF: 896806	SBW	$8,$6		  holen.
CCD2: 8948	SBW	$8,#2		 ist nicht mehr gengend Freispeicher
CCD4: 35BDAB	JP	C,&hABBD	  vorhanden? dann OM Error
CCD7: 799E05	ADC	(IZ-5),$30	 ist es ein BASIC-Programm?
CCDA: B520	JR	C,&hCCFB	  dann ->
CCDC: 7792B2	CAL	&hB292		 sonst Datenfile-Speicher ffnen
CCDF: 8244	LDW	$4,#2		 $4/5=256 Lnge des Puffers
CCE1: 826002	LDW	$0,$2		 $0/1     Zieladresse
CCE4: 826217	LDW	$2,$23		 $2/3     Quelladresse
CCE7: 774890	CAL	&h9048 [BUPDN]	 Datenpuffer in den Speicher kopieren
CCEA: EE17A0	PPS6	$23		 Register $23-28 wieder holen
CCED: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	DATENPUFFER AUF DISK AUSGEBEN
CCEE: 9608	PRE	IX,$8		 IX Zeiger auf aktiven FCB
CCF0: 680202	LD	$2,(IX+2)	 $2 Kanalnummer
CCF3: 6C0323	LDD	$3,(IX+35)	 IX Zeiger auf Datenpuffer-Anfang
CCF6: 8247	LDW	$7,#2		 $7/8 Lnge des Datenpuffers
CCF8: 3705DA	JP	&hDA05 [FDWRB]	 Block an FDD ausgeben
--  --  --  --  --  --  --  --  --  --	BASIC-SPEICHER FFNEN
CCFB: 778EB2	CAL	&hB28E		 BASIC-Speicher ffnen
CCFE: B7A0	JR	&hCCDF		 und ->
-------------------------------------->	BASIC-ANWEISUNG SET
CD00: 771CCD	CAL	&hCD1C		 gesamte Anweisung lesen und verarbeiten
CD03: 7749DA	CAL	&hDA49 [FDRDR]	 Datensatz von FDD lesen
CD06: B70B	JR	&hCD12		 und ->
--  --  --  --  --  --  --  --  --  -->	BASIC-ANWEISUNG PUT
CD08: 771CCD	CAL	&hCD1C		 gesamte Anweisung lesen und verarbeiten
CD0B: D1070001	LDW	$7,256		 $7/8 Datensatzlnge
CD0F: 7710DA	CAL	&hDA10 [FDWRR]	 Datensatz an FDD ausgeben
CD12: 960A	PRE	IX,$10		 Textzeiger wieder setzen
CD14: 964C	PRE	IZ,$12		 IZ Zeiger auf aktiven FCB
CD16: 420019	LD	$0,25		 Offset auf Datensatznummer
CD19: BD5E	ADW	(IZ+#2),$30	 Datensatznummer inkrementieren
CD1B: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	GESAMTE ANWEISUNG LESEN UND VERARBEITEN
CD1C: 77EAD2	CAL	&hD2EA		 "#" berlesen und Kanalnummer holen
CD1F: 772DD3	CAL	&hD32D		 zugehrigen FCB suchen
CD22: 77A4D5	CAL	&hD5A4		 Filemodus holen
CD25: 410031	SBC	$0,49		 kein Direktzugriff?
CD28: 342CAC	JP	NZ,&hAC2C	  dann AM Error
CD2B: 9648	PRE	IZ,$8		 IZ Zeiger auf aktiven FCB {berflssig}
CD2D: 7B1E04	SBC	(IZ+4),$30	 keine Disketten-Datei?
CD30: 342CAC	JP	NZ,&hAC2C	  dann AM Error
CD33: 774C01	CAL	&h014C		 Komma im Text berlesen
CD36: A609	PHSW	$9		 Zeiger auf aktiven FCB ablegen
CD38: 778999	CAL	&h9989 [EXPRW]	 arithmetischen Ausdruck lesen
CD3B: 77D398	CAL	&h98D3 [BIN12]	 und in Wort-Wert 1..65535 wandeln
~Seite 153
CD3E: AE08	PPSW	$8		 Zeiger wieder holen
CD40: 9648	PRE	IZ,$8		 IZ Zeiger auf aktiven FCB
CD42: 420019	LD	$0,25		 Offset auf Datensatznummerspeicher
CD45: A14F	STW	$15,(IZ+#2)	 gelesene Datensatznummer dort ablegen
CD47: 770301	CAL	&h0103		 Ende der Anweisung berprfen
CD4A: 9E0A	GRE	IX,$10		 $10/11 Textzeiger
CD4C: 9608	PRE	IX,$8
CD4E: 9E0C	GRE	IX,$12		 $12/13 Zeiger auf aktiven FCB
CD50: 680202	LD	$2,(IX+&h02)	 $2     Kanalnummer
CD53: 82630F	LDW	$3,$15		 $3/4   Datensatznummer
CD56: 6C0023	LDD	$0,(IX+&h23)	 IX     Zeiger auf Datensatz
CD59: F7	RTN			 zurck
--------------------------------------	PRINT-USING-FORMATZEICHEN-SPRUNGTABELLE
CD5A: A3   &CE67			 "#"
CD5D: 2EA3 &CE65			 ".#"
CD61: A1   &CE47			 "!"
CD64: A6   &CE4E			 "&"
CD67: C0   &62CE			 "@"
--  --  --  --  --  --  --  --  --  -->	PRINT-USING AUSFHREN
CD6A: 77EB9C	CAL	&h9CEB		 Stringausdruck aus Text lesen
CD6D: 77819D	CAL	&h9D81		 Nullbyte im Zeichenop.stapel anfgen
CD70: 77F900	CAL	&h00F9 [NEXTC]	 nchstes Zeichen holen
CD73: 41003B	SBC	$0,";"		 folgt kein Semikolon?
CD76: 34C0AB	JP	NZ,&hABC0	  dann SN Error
CD79: 2C20	LDD	$0,(IX+#1)	 sonst Semikolon berlesen
CD7B: A610	PHSW	$16		 Zeiger auf Formatstring speichern
CD7D: A610	PHSW	$16		 Zeiger in Formatstring speichern
CD7F: 77E598	CAL	&h98E5 [SIKI]	 Ausdruck aus Text lesen
CD82: 9E1C	GRE	IX,$28		 Textzeiger ablegen
CD84: B547	JR	C,&hCDCC	 ein Stringausdruck? dann ->
CD86: 772400	CAL	&h0024		 NUM1 in den Userstack bringen
CD89: AE0F	PPSW	$15		 Zeiger in Formatstring holen
CD8B: 77FFCD	CAL	&hCDFF		 Formatstring interpretieren
CD8E: 3004AC	JP	Z,&hAC04	 Formatstring zu Ende? dann TM Error
CD91: 3504AC	JP	C,&hAC04	 Stringfeld? dann TM Error
CD94: 9E0F	GRE	IX,$15		 Zeiger in Formatstring ablegen
CD96: A610	PHSW	$16		  und speichern
CD98: 7738CF	CAL	&hCF38		 Zahl formatgem in String wandeln
CD9B: 776496	CAL	&h9664 [PRLB1]	 Zeichenkette ausgeben
CD9E: AE0F	PPSW	$15		 Zeiger in Formatstring wieder holen
CDA0: 77FFCD	CAL	&hCDFF		 Formatstring interpretieren
CDA3: B405	JR	NZ,&hCDA9	  dann ->
CDA5: AE0F	PPSW	$15		 sonst erneut Zeiger auf Formatstring
CDA7: A610	PHSW	$16		  holen und wieder speichern
CDA9: 961C	PRE	IX,$28		 Textzeiger wieder setzen
CDAB: 77FF00	CAL	&h00FF		 Anweisung zu Ende?
CDAE: B518	JR	C,&hCDC7	  dann ->
CDB0: 41003B	SBC	$0,";"		 ist Zeichen ein Semikolon?
CDB3: B007	JR	Z,&hCDBB	  dann ->
CDB5: 41002C	SBC	$0,","		 auch kein Komma?
CDB8: 34C0AB	JP	NZ,&hABC0	  dann SN Error
CDBB: 2C20	LDD	$0,(IX+#1)	 Semikolon oder Komma im Text berlesen
CDBD: 77FF00	CAL	&h00FF		 noch kein Ende der Anweisung?
CDC0: B1C4	JR	NC,&hCD7D	  dann Schleife ->
CDC2: AE00	PPSW	$0		 Zeiger auf Formatstring lschen
CDC4: 37E190	JP	&h90E1		 Ausgabe auf Display lenken und zurck
~Seite 154
CDC7: 77CE95	CAL	&h95CE [OUTCR]	 CRLF ausgeben
CDCA: B789	JR	&hCDC2		 und ->
CDCC: C2734F	LD3	$19,$15		 Stringdeskriptor kopieren
CDCF: AE0F	PPSW	$15		 Zeiger in Formatstring holen
CDD1: 77FFCD	CAL	&hCDFF		 Formatstring interpretieren. Nummern-
CDD4: 3104AC	JP	NC,&hAC04	  feld od. Formatstr.ende? dann TM Error
CDD7: 9E0F	GRE	IX,$15		 Zeiger in Formatstring ablegen
CDD9: A610	PHSW	$16		  und speichern
CDDB: 017115	SBC	$17,$21		 ist String lnger als Formateintrag?
CDDE: B50E	JR	C,&hCDED	  dann ->
CDE0: 0031	ADC	$17,#1		 soll ganzer String ausgegeben werden?
CDE2: B507	JR	C,&hCDEA	  dann mit C=1 ->
CDE4: 097115	SB	$17,$21		 C=0 setzen und
CDE7: 027B11	LD	$27,$17		 $27 Anzahl der Fllzeichen
CDEA: 027115	LD	$17,$21		 $17 Lnge des Strings
CDED: 1C5A	GFL	$26		 Flags ablegen
CDEF: 826F13	LDW	$15,$19		 Stringzeiger holen
CDF2: 7764AA	CAL	&hAA64		 Zeichenkette ausgeben
CDF5: 02711B	LD	$17,$27		 Anzahl der Fllzeichen holen
CDF8: 145A	PFL	$26		 Flags wieder setzen
CDFA: 718CCB	CAL	NC,&hCB8C	 evtl. mit Leerzeichen auffllen
CDFD: B7E0	JR	&hCD9E		 und Schleife ->
--  --  --  --  --  --  --  --  --  -->	FORMATSTRING INTERPRETIEREN
CDFF: C97777	SBB4	$23,$23		 Formatspeicher lschen
CE02: 421810	LD	$24,16		 Bit 4 setzen {keine Bedeutung???}
CE05: 566010	PST	UA,%00010000	 Konfiguration setzen: IZ liest aus ROM
CE08: D6405ACD	PRE	IZ,&hCD5A	 IZ Zeiger auf Formatzeichentabelle
CE0C: 960F	PRE	IX,$15		 IX Zeiger in Formatstring
CE0E: 2A00	LDI	$0,(IX+#0)	 nchstes Zeichen aus Formatstring lesen
CE10: 2D01	LDD	$1,(IZ+#0)	 Formatzeichen aus Tabelle holen
CE12: 4C017F	AN	$1,&h7F		 Bit 7 lschen
CE15: 2B02	LDI	$2,(IZ+#0)	 Formatzeichen nochmals lesen
CE17: 0141	SBC	$1,#2		 im String nicht gefunden?
CE19: B40C	JR	NZ,&hCE26	  dann ->
CE1B: 1862	BIU	$2		 sonst: Bit 7 war nicht gesetzt?
CE1D: B190	JR	NC,&hCE0E	  dann Schleife ->
CE1F: 2CA0	LDD	$0,(IX-#1)	 Zeiger in Formatstring herabsetzen
CE21: A905	LDW	$5,(IZ+#0)	 Sprungadresse nach $5/6 holen
CE23: 37E699	JP	&h99E6		 ber Register springen ->
CE26: 1862	BIU	$2		 Bit 7 testen
CE28: 2B02	LDI	$2,(IZ+#0)	 nchstes Zeichen aus Tabelle lesen
CE2A: B185	JR	NC,&hCE26	 Bit 7 war gelscht? dann Schleife ->
CE2C: 2D20	LDD	$0,(IZ+#1)	 Sprungadresse bersetzen
CE2E: 410140	SBC	$1,64		 war Formatzeicheneintrag nicht das "@"?
CE31: B4A6	JR	NZ,&hCE0C	  dann Schleife ->
CE33: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
CE36: 960F	PRE	IX,$15		 IX Zeiger in Formatstring
CE38: 2A10	LDI	$16,(IX+#0)	 nchstes Zeichen aus Formatstring lesen
CE3A: 0010	ADC	$16,#0		 Endekennzeichen?
CE3C: B007	JR	Z,&hCE44	  dann ->
CE3E: 77D795	CAL	&h95D7 [OUTAC]	 Zeichen ausgeben
CE41: 9E8FBE	GREJ	IX,$15,&hCE05	 IX ablegen und Schleife ->
CE44: 2CA0	LDD	$0,(IX-#1)	 Zeiger um ein Zeichen herabsetzen
CE46: F7	RTN			 zurck
~Seite 155
--  --  --  --  --  --  --  --  --  --	"!" IM FORMATSTRING VERARBEITEN
CE47: 0231	LD	$17,#1		 String auf ein Zeichen abschneiden
CE49: 2C20	LDD	$0,(IX+#1)	 Ausrufezeichen im Formatstr. berlesen
CE4B: 013F	SBC	$31,#1		 C=1 setzen (Stringfeld)
CE4D: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	"&" IM FORMATSTRING VERARBEITEN
CE4E: 9E01	GRE	IX,$1		 Zeiger in Formatstring ablegen
CE50: 2C23	LDD	$3,(IX+#1)	 Kaufmannsund in Formatstring berlesen
CE52: 77F900	CAL	&h00F9 [NEXTC]	 nchstes Zeichen<>Leerzeichen lesen
CE55: 410026	SBC	$0,"&"		 ist es kein Kaufmannsund?
CE58: B4A6	JR	NZ,&hCE33	  dann war es keine Formatanweisung ->
CE5A: 2C20	LDD	$0,(IX+#1)	 Kaufmannsund in Formatstring berlesen
CE5C: 9E11	GRE	IX,$17		 Zeiger ablegen
CE5E: 89F10196	SBWJ	$17,$1,&hCE4B	 Feldlnge berechnen und ->
--  --  --  --  --  --  --  --  --  --	"@" IM FORMATSTRING VERARBEITEN
CE62: 0D919B	NAJ	$17,#0,&hCE49	 Kennzeichen setzen und ->
--  --  --  --  --  --  --  --  --  --	".#" IM FORMATSTRING VERARBEITEN
CE65: 2CA0	LDD	$0,(IX-#1)	 Zeiger auf den Punkt setzen
--  --  --  --  --  --  --  --  --  --	"#" IM FORMATSTRING VERARBEITEN
CE67: 2A00	LDI	$0,(IX+#0)	 nchstes Zeichen aus Formatstring lesen
CE69: 410023	SBC	$0,"#"		 ist es kein Nummerzeichen?
CE6C: B40C	JR	NZ,&hCE79	  dann ->
CE6E: 441804	ANC	$24,4		 im Vorkommateil?
CE71: B004	JR	Z,&hCE76	  dann ->
CE73: 08BA8E	ADJ	$26,#1,&hCE67	 Nachkommalnge erhhen und Schleife ->
CE76: 08B991	ADJ	$25,#1,&hCE67	 Vorkommalnge erhhen und Schleife ->
CE79: 41002E	SBC	$0,"."		 ist es auch kein Dezimalpunkt?
CE7C: B40A	JR	NZ,&hCE87	  dann ->
CE7E: 441804	ANC	$24,4		 schon im Nachkommateil?
CE81: B42E	JR	NZ,&hCEB0	  dann ->
CE83: 4E98049F	ORJ	$24,4,&hCE67	 sonst Nachkommaflag setzen, Schleife ->
CE87: 41002C	SBC	$0,","		 ist es auch kein Trennkomma?
CE8A: B40A	JR	NZ,&hCE95	  dann ->
CE8C: 441804	ANC	$24,4		 schon im Nachkommateil?
CE8F: B420	JR	NZ,&hCEB0	  dann ->
CE91: 4E98029E	ORJ	$24,2,&hCE76	 sonst Trennflag setzen und Schleife ->
CE95: 41005E	SBC	$0,"^"		 auch kein Dach?
CE98: B417	JR	NZ,&hCEB0	  dann ->
CE9A: 9E00	GRE	IX,$0		 Stringzeiger ablegen
CE9C: 420203	LD	$2,3		 Zhler auf 3 weitere Dcher setzen
CE9F: 2A03	LDI	$3,(IX+#0)	 nchstes Zeichen aus Formatstring lesen
CEA1: 41035E	SBC	$3,"^"		 ist es kein Dach?
CEA4: B409	JR	NZ,&hCEAE	  dann ->
CEA6: 0922	SB	$2,#1		 sonst Zhler herabsetzen
CEA8: B48A	JR	NZ,&hCE9F	 noch nicht Null? dann Schleife ->
CEAA: 4E980805	ORJ	$24,8,&hCEB2	 Exponentialflag setzen und ->
CEAE: 9600	PRE	IX,$0		 IX wieder Zeiger in String setzen
CEB0: 2CA0	LDD	$0,(IX-#1)	 IX herabsetzen
CEB2: 4E1810	OR	$24,&h10	 Bit 4 setzen {keine Bedeutung???}
CEB5: 826019	LDW	$0,$25		 Vorkomma- und Nachkommastellen kopieren
CEB8: 0841	AD	$1,#2		  und addieren
CEBA: 410120	SBC	$1,32		 gesamt mehr als 32 Stellen?
CEBD: 31C0AB	JP	NC,&hABC0	  dann SN Error
CEC0: 0001	ADC	$1,#0		 C=0 setzen (Nummernfeld)
CEC2: F7	RTN			 zurck
~Seite 156
--  --  --  --  --  --  --  --  --  --	EXPONENTIALFLAG AUSWERTEN
CEC3: 411902	SBC	$25,2		 mehr als eine Vorkommastelle?
CEC6: B130	JR	NC,&hCEF7	  dann ->
CEC8: 001A	ADC	$26,#0		 keine Nachkommastellen?
CECA: B05D	JR	Z,&hCF28	  dann Fehler ->
CECC: 02671A	LD	$7,$26		 $7 Zahl der Nachkommastellen
CECF: 772CA4	CAL	&hA42C		 Zahl runden
CED2: 0019	ADC	$25,#0		 Vorkommastellen auszugeben?
CED4: B408	JR	NZ,&hCEDD	  dann ->
CED6: 411605	SBC	$22,5		 ist Zahl negativ?
CED9: B14E	JR	NC,&hCF28	  dann Fehler ->
CEDB: 0E38	OR	$24,#1		 kein Vorzeichen auszugeben
CEDD: 8131	SBCW	$17,#1		 ganze Zahl?
CEDF: B50C	JR	C,&hCEEC	  dann ->
CEE1: 0012	ADC	$18,#0		 Exponent negativ?
CEE3: B006	JR	Z,&hCEEA	  dann ->
CEE5: 411199	SBC	$17,&h99	 ist Exponent schon auf +99?
CEE8: B03F	JR	Z,&hCF28	  dann Fehler ->
CEEA: 8A31	ADBW	$17,#1		 sonst Exponent erhhen
CEEC: 0019	ADC	$25,#0		 keine Vorkommastellen auszugeben?
CEEE: B003	JR	Z,&hCEF2	  dann ->
CEF0: 0939	SB	$25,#1		 Zahl der Vorkommastellen verringern
CEF2: 0200	LD	$0,#0		 kein Fllzeichen ausgeben {krzer: ---}
CEF4: 379CCF	JP	&hCF9C		 und ->                      {JP &hCF9A)
CEF7: 026719	LD	$7,$25		 $7 Vorkommastellen+Nachkommastellen-1
CEFA: 08671A	AD	$7,$26		 |
CEFD: 0927	SB	$7,#1		 |
CEFF: 772CA4	CAL	&hA42C		 Zahl runden
CF02: 026019	LD	$0,$25		 Zahl der Vorkommastellen holen
CF05: 490002	SB	$0,2		  und zwei abziehen
CF08: 773AD0	CAL	&hD03A		 Binrzahl in $0 nach BCD wandeln
CF0B: 0432	ANC	$18,#1		 Exponent positiv?
CF0D: B411	JR	NZ,&hCF1F	  dann ->
CF0F: 016011	SBC	$0,$17		 ist berechnete Verschiebung<Exponent?
CF12: B50C	JR	C,&hCF1F	  dann ->
CF14: 0131	SBC	$17,#1		 ist Exponent>0?
CF16: B111	JR	NC,&hCF28	  dann Fehler ->
CF18: 026019	LD	$0,$25		 Zahl der Vorkommastellen holen
CF1B: 49800207	SBJ	$0,2,&hCF25	  und zwei abziehen und ->
CF1F: 0201	LD	$1,#0		 High-Byte auf Null setzen
CF21: 8B51	SBBW	$17,#2		 Exponent um berechn. Betrag verringern
CF23: 0200	LD	$0,#0		 keine Fllzeichen ausgeben
CF25: 09B975	SBJ	$25,#1,&hCF9C	 Vorkommastellen verringern und ->
--  --  --  --  --  --  --  --  --  --	BEI FEHLER "%ZAHL" AUSGEBEN
CF28: 421025	LD	$16,"%"		 Prozentzeichen holen
CF2B: 77D795	CAL	&h95D7 [OUTAC]	  und ausgeben
CF2E: D660426A	PRE	US,&h6A42	 US Zeiger auf gespeicherte Zahl
CF32: 772C00	CAL	&h002C		 NUM1 aus dem Userstack holen
CF35: 3755A5	JP	&hA555		 NUM1 in einen String wandeln
--  --  --  --  --  --  --  --  --  -->	ZAHL FORMATGEMSS IN STRING WANDELN
CF38: 772C00	CAL	&h002C		 NUM1 aus dem Userstack holen
CF3B: 027612	LD	$22,$18		 Vorzeichen kopieren
CF3E: 77BCA3	CAL	&hA3BC		 NUM1=ABS(NUM1)
CF41: D640AF6F	PRE	IZ,&h6FAF	 IZ Zeiger auf Formatzwischenspeicher
CF45: 441808	ANC	$24,8		 ist das Exponentialflag gesetzt?
CF48: 34C3CE	JP	NZ,&hCEC3	  dann ->
~Seite 157
CF4B: 411605	SBC	$22,5		 Zahl positiv?
CF4E: B55D	JR	C,&hCFAC	  dann ->
CF50: 0939	SB	$25,#1		 Zahl der Vorkommastellen herabsetzen
CF52: B5AB	JR	C,&hCF28	 Unterlauf? dann Fehler ->
CF54: 02671A	LD	$7,$26		 $7 Zahl der Nachkommastellen
CF57: A612	PHSW	$18		 Exponent inkl. Vorzeichen speichern
CF59: 0012	ADC	$18,#0		 ist Exponent positiv?
CF5B: B453	JR	NZ,&hCFAF	  dann ->
CF5D: 9A71	BYUW	$17		 Exponent=100-Exponent (BCD)
CF5F: 0B7112	SBB	$17,$18		 |
CF62: 773F9A	CAL	&h9A3F [NISIN]	 BCD-Zahl in $17 nach binr wandeln
CF65: 096711	SB	$7,$17		 $7 um Exponent verringern
CF68: 0827	AD	$7,#1		 und 1 addieren
CF6A: AE11	PPSW	$17		 Exponent inkl. Vorzeichen wieder holen
CF6C: 772CA4	CAL	&hA42C		 Zahl runden
CF6F: 2611	PHS	$17		 Exponent speichern
CF71: 773F9A	CAL	&h9A3F		 BCD-Zahl in $17 nach binr wandeln
CF74: 026011	LD	$0,$17		 Zahl der Ziffern setzen
CF77: 0254	LD	$20,#2		 und auch nach $20 bringen
CF79: 2E11	PPS	$17		 Exponent wieder holen
CF7B: 0012	ADC	$18,#0		 ist Exponent negativ?
CF7D: B015	JR	Z,&hCF93	  dann ->
CF7F: 441802	ANC	$24,2		 ist Trennkommaflag gelscht?
CF82: B033	JR	Z,&hCFB6	  dann ->
CF84: 016019	SBC	$0,$25		 mehr Ziffern als Vorkommastellen?
CF87: B1E0	JR	NC,&hCF28	  dann Fehler ->
CF89: 0253	LD	$19,#2		 Fllzeichenzahl holen
CF8B: 491303	SB	$19,3		 3 abziehen
CF8E: B527	JR	C,&hCFB6	 Unterlauf? dann ->
CF90: 09B987	SBJ	$25,#1,&hCF8B	 sonst Vorkommastellen verringern und ->
CF93: 026019	LD	$0,$25		 Fllzeichenzahl=Vorkommastellenzahl-1
CF96: 0920	SB	$0,#1		 |
CF98: B103	JR	NC,&hCF9C	 kein Unterlauf? dann ->
CF9A: 0200	LD	$0,#0		 kein Fllzeichen ausgeben
CF9C: 8139	SBCW	$25,#1		 Vor- und Nachkommastellenzahl=0?
CF9E: B5F7	JR	C,&hCF28	  dann Fehler ->
CFA0: 421520	LD	$21," "		 Leerzeichen holen
CFA3: 0920	SB	$0,#1		 Zhler herabsetzen
CFA5: B51B	JR	C,&hCFC1	 Schleifenende? dann ->
CFA7: 2315	STI	$21,(IZ+#0)	 Zeichen in den Puffer setzen
CFA9: 09B988	SBJ	$25,#1,&hCFA3	 Vorkommastellen verringern, Schleife ->
CFAC: 0EB8DA	ORJ	$24,#1,&hCF54	 kein Vorzeichen auszugeben und ->
CFAF: 773F9A	CAL	&h9A3F [NISIN]	 BCD-Zahl in $17 nach binr wandeln
CFB2: 08E711CD	ADJ	$7,$17,&hCF68	 $7 um Exponent erhhen und ->
CFB6: 096019	SB	$0,$25		 Vorkommastellen v. Ziffernzahl abziehen
CFB9: 3128CF	JP	NC,&hCF28	 Unterlauf? dann Fehler ->
CFBC: 0820	AD	$0,#1		 Fllzeichenzahl erhhen
CFBE: 1B80A4	CMPJ	$0,&hCF9C	 alles fllen ->
CFC1: 027316	LD	$19,$22		 Vorzeichen nach $19 bringen
CFC4: 0438	ANC	$24,#1		 Vorzeichen ausgeben?
CFC6: 70F1A4	CAL	Z,&hA4F1	  dann Vorz. der Mantisse in den Puffer
CFC9: 0019	ADC	$25,#0		 kein Vorkommateil?
CFCB: B00F	JR	Z,&hCFDB	  dann ->
CFCD: 441808	ANC	$24,8		 Exponentialteil auszugeben?
CFD0: B43E	JR	NZ,&hD00F	  dann ->
CFD2: 0012	ADC	$18,#0		 Exponent positiv?
~Seite 158
CFD4: B43A	JR	NZ,&hD00F	  dann ->
CFD6: 421530	LD	$21,"0"		 ASCII-Ziffer Null holen
CFD9: 2315	STI	$21,(IZ+#0)	 und in den Puffer setzen
CFDB: 441804	ANC	$24,4		 kein Nachkommateil auszugeben?
CFDE: B023	JR	Z,&hD002	  dann ->
CFE0: 42152E	LD	$21,"."		 Punkt holen
CFE3: 2315	STI	$21,(IZ+#0)	 und in den Puffer setzen
CFE5: 001A	ADC	$26,#0		 keine Nachkommastellen?
CFE7: B01A	JR	Z,&hD002	  dann ->
CFE9: 441808	ANC	$24,8		 Exponentialteil auszugeben?
CFEC: B444	JR	NZ,&hD031	  dann ->
CFEE: 0012	ADC	$18,#0		 Exponent positiv?
CFF0: B440	JR	NZ,&hD031	  dann ->
CFF2: 421530	LD	$21,"0"		 ASCII-Ziffer Null holen
CFF5: 0834	AD	$20,#1		 Zhler erhhen
CFF7: 411464	SBC	$20,100		 zu Ende?
CFFA: B036	JR	Z,&hD031	  dann ->
CFFC: 2315	STI	$21,(IZ+#0)	 Zeichen in den Puffer bringen
CFFE: 093A	SB	$26,#1		 Zahl der Nachkommastellen verringern
D000: B48C	JR	NZ,&hCFF5	 noch eine ausgeben? dann Schleife ->
D002: 441808	ANC	$24,8		 Exponentialteil auszugeben?
D005: 7415A5	CAL	NZ,&hA515	  dann diesen ausgeben
D008: D10FAF6F	LDW	$15,&h6FAF	 $15/16 Zeiger auf Puffer
D00C: 37EBA5	JP	&hA5EB		 Lnge des Strings feststellen ->
D00F: 7709A5	CAL	&hA509		 Ziffer in den Puffer bringen
D012: 0939	SB	$25,#1		 Zahl der Vorkommastellen verringern
D014: B0BA	JR	Z,&hCFDB	 zu Ende? dann ->
D016: 441802	ANC	$24,2		 keine Trennkommata einfgen?
D019: B08B	JR	Z,&hD00F	  dann ->
D01B: 441808	ANC	$24,8		 soll Exponent ausgegeben werden?
D01E: B490	JR	NZ,&hD00F	  dann ->
D020: 026019	LD	$0,$25		 Zahl der Vorkommastellen holen
D023: 490003	SB	$0,3		 3 abziehen
D026: B598	JR	C,&hD00F	 Unterlauf? dann Schleife ->
D028: B486	JR	NZ,&hD023	 noch einmal abziehen? dann ->
D02A: 42152C	LD	$21,","		 Komma holen
D02D: 2315	STI	$21,(IZ+#0)	 dieses in den Puffer setzen
D02F: B7A1	JR	&hD00F		 und Schleife ->
D031: 7709A5	CAL	&hA509		 Ziffer in den Puffer bringen
D034: 093A	SB	$26,#1		 Zahl der Nachkommastellen verringern
D036: B486	JR	NZ,&hD031	 noch eine ausgeben? dann Schleife ->
D038: B7B7	JR	&hD002		 und ->
--  --  --  --  --  --  --  --  --  -->	Binrzahl in $0 nach BCD wandeln
D03A: 4201F0	LD	$1,-&h10	 BCD-Zehnerstelle zurcksetzen
D03D: 480110	AD	$1,&h10		 10 in BCD addieren
D040: 49000A	SB	$0,10		 10 abziehen
D043: B187	JR	NC,&hD03D	 kein Unterlauf? dann Schleife ->
D045: 48000A	AD	$0,10		 Einerstelle korrigieren
D048: 086001	AD	$0,$1		 BCD-Zehnerstelle addieren
D04B: F7	RTN			 zurck
-------------------------------------->	BASIC-ANWEISUNG STAT
D04C: 77FF00	CAL	&h00FF		 Anweisung zu Ende?
D04F: B535	JR	C,&hD085	  dann ->
D051: 42026A	LD	$2,106		 falls vorhanden, CLEAR-Token
D054: 772801	CAL	&h0128		  berlesen
D057: B410	JR	NZ,&hD068	 war keins da? dann ->
~Seite 159
--  --  --  --  --  --  --  --  --  -->	STAT-CLEAR AUSFHREN
D059: 9E1C	GRE	IX,$28		 Textzeiger ablegen
D05B: D102B26B	LDW	$2,&h6BB2	 $2/3 Startadresse des STAT-Bereichs
D05F: 420448	LD	$4,72		 $4/5 Lnge des STAT-Bereichs
D062: 771690	CAL	&h9016		 STAT-Bereich lschen
D065: 961C	PRE	IX,$28		 Textzeiger wieder setzen
D067: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	STAT AUSFHREN
D068: 77FF00	CAL	&h00FF		 Anweisung zu Ende?
D06B: B019	JR	Z,&hD085	  dann ->
D06D: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
D070: B059	JR	Z,&hD0CA	 war eins da? dann ->
D072: 778999	CAL	&h9989 [EXPRW]	 arithmetischen Ausdruck lesen
D075: 7726A0	CAL	&hA026		 NUM0=NUM1:NUM1=letzter STAT-X-Wert
D078: 77F3D0	CAL	&hD0F3		 NUM0 als neuen STAT-X-Wert speichern
D07B: 773A01	CAL	&h013A		 evtl. vorhand. Komma in Text berlesen
D07E: B04B	JR	Z,&hD0CA	 war eins da? dann ->
D080: 774001	CAL	&h0140		 evtl. vorhand. Semikolon im Text berl.
D083: B04B	JR	Z,&hD0CF	 war eins da? dann ->
D085: 77D908	CAL	&h08D9		 NUM0=1
D088: 772809	CAL	&h0928		 NUM0 und NUM1 vertauschen
D08B: 777EE4	CAL	&hE47E		 IZ Zeiger auf WORK-Speicher
D08E: E30AE0	STI8	$10,(IZ+#0)	 NUM1 dort speichern
D091: 2512	STD	$18,(IZ+#0)	 |
D093: 021D	LD	$29,#0		 Kennzeichen fr X-Durchlauf setzen
D095: 421C13	LD	$28,19		 Offset auf CNT setzen
D098: 777EE4	CAL	&hE47E		 IZ Zeiger auf WORK
D09B: EB0AE0	LDI8	$10,(IZ+#0)	 NUM1=Hufigkeit
D09E: 2D12	LDD	$18,(IZ+#0)	 |
D0A0: 411C13	SBC	$28,19		 steht Offset auf CNT?
D0A3: B00C	JR	Z,&hD0B0	  dann ->
D0A5: 043C	ANC	$28,#1		 steht Offset auf einer Y-Funktion?
D0A7: 77DFD0	CAL	&hD0DF		 NUM1 mit X oder Y multiplizieren
D0AA: 411C2E	SBC	$28,46		 steht Offset auf SUMX2, SUMY2 oder
D0AD: 71DFD0	CAL	NC,&hD0DF	  SUMXY? dann NUM1 mit X, Y bzw. Y mult.
D0B0: 7744A0	CAL	&hA044		 NUM0=NUM1:NUM1 aus dem STAT-Ber. holen
D0B3: 774A08	CAL	&h084A		 NUM1=NUM1+NUM0
D0B6: 411D80	SBC	$29,&h80	 im Y-Durchlauf?
D0B9: 70F0D0	CAL	Z,&hD0F0	  dann NUM0 und NUM1 vert.:NUM0 speich.
D0BC: 481C09	AD	$28,9		 Offset auf nchste STAT-Zahl
D0BF: 411C41	SBC	$28,65		 noch eine Zahl zu ndern?
D0C2: B5AB	JR	C,&hD098	  denn Schleife ->
D0C4: 481D80	AD	$29,&h80	 Kennzeichen invertieren
D0C7: B1B3	JR	NC,&hD095	 fehlt Y-Durchlauf? dann Schleife ->
D0C9: F7	RTN			 zurck
D0CA: 774001	CAL	&h0140		 evtl. vorhand. Semikolon im Text berl.
D0CD: B406	JR	NZ,&hD0D4	 war keins da? dann ->
D0CF: 778999	CAL	&h9989 [EXPRW]	 arithmetischen Ausdruck lesen
D0D2: B7C8	JR	&hD08B		 und ->
D0D4: 778999	CAL	&h9989 [EXPRW]	 arithmetischen Ausdruck lesen
D0D7: 7729A0	CAL	&hA029		 NUM0=NUM1:NUM1=letzter STAT-Y-Wert
D0DA: 77F3D0	CAL	&hD0F3		 NUM0 als neuen STAT-Y-Wert speichern
D0DD: B7DE	JR	&hD080		 und ->
~Seite 160
--  --  --  --  --  --  --  --  --  --	NUM1 mit X oder Y multiplizieren
D0DF: 261C	PHS	$28		 Offset retten
D0E1: 023C	LD	$28,#1		 Offset auf STAT-X-Wert setzen
D0E3: B004	JR	Z,&hD0E8	 eine X-Funktion? dann ->
D0E5: 421C0A	LD	$28,10		 sonst Offset auf STAT-Y-Wert setzen
D0E8: 7744A0	CAL	&hA044		 NUM0=NUM1:NUM1=STAT-X/Y-Wert
D0EB: 2E1C	PPS	$28		 Offset wieder holen
D0ED: 377708	JP	&h0877		 NUM1=NUM1*NUM0 und zurck
--  --  --  --  --  --  --  --  --  -->	NUM0 UND NUM1 VERTAUSCHEN:NUM0 SPEICHERN
D0F0: 772809	CAL	&h0928		 NUM1 und NUM0 vertauschen
--  --  --  --  --  --  --  --  --  -->	NUM0 SPEICHERN
D0F3: E508E0	STD8	$8,(IZ+#0)	 NUM0 speichern
D0F6: 25A0	STD	$0,(IZ-#1)	 |
D0F8: F7	RTN			 zurck
-------------------------------------->	STARTZAHL FR RND-FUNKTION SETZEN
D0F9: 77A89E	CAL	&h9EA8		 Startzahl fr die RND-Funktion holen
D0FC: D640196D	PRE	IZ,&h6D19	 IZ Zeiger hinter RND-Speicher
D100: B78E	JR	&hD0F3		 und zum Speichern ->
-------------------------------------->	BASIC-ANWEISUNG OPEN
D102: 7766AB	CAL	&hAB66		 im Direktmodus FC Error
D105: 770CE4	CAL	&hE40C		 Filename holen, berprfen & interpret.
D108: 410B03	SBC	$11,3		 wird versucht, ein MT-File zu ffnen?
D10B: 30C0AB	JP	Z,&hABC0	  dann SN Error
D10E: D1002301	LDW	$0,35+256	 FCB-Lnge holen
D112: 410B02	SBC	$11,2		 nicht RS232C?
D115: B403	JR	NZ,&hD119	  dann ->
D117: 0201	LD	$1,#0		 sonst keinen Datenpuffer anlegen
D119: 9E5C	GRE	IZ,$28		 {berflssig?}
D11B: D640AF6F	PRE	IZ,&h6FAF	 IZ Zeiger auf Open-FCB
D11F: A300	STIW	$0,(IZ+#0)	 FCB-Lnge speichern
D121: D1028131	LDW	$2,&h3181	 Filemodus Direktzugriff setzen
D125: 772801	CAL	&h0128		 falls vorhanden, FOR-Token berlesen
D128: B425	JR	NZ,&hD14E	 war keins da? dann ->
D12A: D1029B32	LDW	$2,&h329B	 Filemodus Eingabe setzen
D12E: 772C01	CAL	&h012C		 falls vorhanden, INPUT-Token berlesen
D131: B01C	JR	Z,&hD14E	 war eins da? dann ->
D133: D102BD34	LDW	$2,&h34BD	 Filemodus APPEND-Ausgabe setzen
D137: 772E01	CAL	&h012E		 falls vorhanden, APPEND-Token berlesen
D13A: B013	JR	Z,&hD14E	 war eins da? dann ->
D13C: 420299	LD	$2,153		 falls vorhanden, OUT-Token
D13F: 772801	CAL	&h0128		  berlesen
D142: B408	JR	NZ,&hD14B	 war keins da? dann SN Error ->
D144: D102A530	LDW	$2,&h30A5	 Filemodus Ausgabe setzen
D148: 772801	CAL	&h0128		 falls vorhanden, PUT-Token berlesen
D14B: 34C0AB	JP	NZ,&hABC0	 war keins da? dann SN Error
D14E: 2323	STI	$3,(IZ+#1)	 Filemodus in Open-FCB speichern
D150: 230B	STI	$11,(IZ+#0)	 Gertenummer in Open-FCB speichern
D152: 42010B	LD	$1,11		 Zhler auf 11 Zeichen setzen
D155: 410B02	SBC	$11,2		 ist es ein RS232C-File?
D158: 0203	LD	$3,#0		 Zeichen auf Null setzen
D15A: B006	JR	Z,&hD161	  dann ->
D15C: 11631C	LD	$3,($28)	 sonst Zeichen aus Filename holen
D15F: 883C	ADW	$28,#1		 Zeiger in String erhhen
D161: 2303	STI	$3,(IZ+#0)	 Zeichen in Open-FCB speichern
D163: 0921	SB	$1,#1		 Zhler herabsetzen
D165: B491	JR	NZ,&hD155	 noch einmal? dann Schleife ->
~Seite 161
D167: A60D	PHSW	$13		 RS232C-Parameter zwischenspeichern
D169: 4202BC	LD	$2,188		 falls vorhanden, AS-Token
D16C: 772E01	CAL	&h012E		  berlesen
D16F: B4A5	JR	NZ,&hD14B	 war keins da? dann SN Error
D171: 77EAD2	CAL	&hD2EA		 "#" berlesen und Kanalnummer lesen
D174: 770301	CAL	&h0103		 auf Ende der Anweisung berprfen
D177: D640AF6F	PRE	IZ,&h6FAF	 IZ Zeiger auf Open-FCB
D17B: AB00	LDIW	$0,(IZ+#0)	 Lnge des FCB lesen
D17D: 210F	ST	$15,(IZ+#0)	 Kanalnummer in Open-FCB speichern
D17F: 772F9A	CAL	&h9A2F		 auf gengenden Systemspeicher testen
D182: D1002300	LDW	$0,35		 Lnge des FCB-Headers holen
D186: 8842	ADW	$2,#2		 $2/3 Datenpuffer-Anfangsadr.
D188: D640BF6F	PRE	IZ,&h6FBF	 IZ Zeiger in Open-FCB
D18C: A302	STIW	$2,(IZ+#0)	 Datenpuffer-Anfangsadr. speichern
D18E: C964C4	SBB7	$4,$4		 Pufferzhler u.a. zurcksetzen
D191: 826702	LDW	$7,$2		 $7/8 Datenpuffer-Zeiger
D194: 0823	AD	$3,#1		 $2/3 Datenpuffer-Endadresse
D196: E302C0	STI7	$2,(IZ+#0)	 im Open-FCB speichern
D199: A309	STIW	$9,(IZ+#0)	 Datensatznummer lschen
D19B: A309	STIW	$9,(IZ+#0)	 Spaltenpos. und Filetypkennz. lschen
D19D: 7702D3	CAL	&hD302		 FCB mit angegebener Kanalnummer suchen
D1A0: 3428AC	JP	NZ,&hAC28	 gefunden? dann OP Error
D1A3: 77F4D1	CAL	&hD1F4		 dopp. ffnen desselben Files verbieten
D1A6: AE0C	PPSW	$12		 RS232C-Parameter wieder holen
D1A8: 116B0F	LD	$11,($15)	 Gerteadresse holen
--  --  --  --  --  --  --  --  --  -->	EINSPRUNG AUS SYSTEM-KANAL-OPEN-ROUTINE
D1AB: 012B	SBC	$11,#1		 File auf Disk?
D1AD: 3045D2	JP	Z,&hD245	  dann ->
D1B0: 316CD2	JP	NC,&hD26C	 RS232C-Kanal? dann ->
--  --  --  --  --  --  --  --  --  --	FILE IM SPEICHER FFNEN
D1B3: 773AD3	CAL	&hD33A		 Open-FCB-Filename nach WORK kopieren
D1B6: 698A0D	LD	$10,(IZ-13)	 Filemodus holen
D1B9: 410A31	SBC	$10,&h31	 Direktzugriff?
D1BC: 302CAC	JP	Z,&hAC2C	  dann AM Error
D1BF: 77FAE3	CAL	&hE3FA		 Fileheader im Speicher suchen
D1C2: B552	JR	C,&hD215	 nicht gefunden? dann ->
D1C4: D640CB6F	PRE	IZ,&h6FCB	 IZ Zeiger auf Open-FCB-Filetypkennz.
D1C8: 3B1F	SBC	(IZ+#0),$31	 kam Befehl von der BASIC-OPEN-Anweisung?
D1CA: B407	JR	NZ,&hD1D2	  dann ->
D1CC: 410324	SBC	$3,36		 kein sequentielles Datenfile?
D1CF: 342CAC	JP	NZ,&hAC2C	  dann AM Error
D1D2: 2103	ST	$3,(IZ+#0)	 Filetypkennzeichen setzen
D1D4: 9646	PRE	IZ,$6		 IZ Zeiger auf Fileheader
D1D6: E92060	LD4	$0,(IZ+#1)	 Anfangs- und Endadresse holen
D1D9: 773BD2	CAL	&hD23B		 Speicher-Zeiger in Open-FCB setzen
D1DC: C25960	LD4	$25,#2		 Anfangs- und Endadresse kopieren
D1DF: 410A34	SBC	$10,&h34	 nicht APPEND-Ausgabe?
D1E2: B405	JR	NZ,&hD1E8	  dann ->
D1E4: 8922	SBW	$2,#1		 Endadresse vor EOF setzen
D1E6: A102	STW	$2,(IZ+#0)	 und als Zeiger in den Speicher setzen
D1E8: 8942	SBW	$2,#2		 $2/3 Lnge des Files-1
D1EA: 8922	SBW	$2,#1		 |             (fr Endekennzeichen)
D1EC: 410A30	SBC	$10,&h30	 Ausgabe?
D1EF: 704DD3	CAL	Z,&hD34D	  dann vorhandenes File lschen
D1F2: B741	JR	&hD234		 und ->
~Seite 162
--  --  --  --  --  --  --  --  --  -->	DOPP. FFNEN DESSELBEN FILES VERHINDERN
D1F4: 771CD3	CAL	&hD31C		 $8/9 Zeiger auf ersten FCB
D1F7: D10FB36F	LDW	$15,&h6FB3	 $15/16 Zeiger auf Open-FCB-Gerteadr.
D1FB: F0	RTN	Z		 keine FCBs vorhanden? dann zurck
D1FC: D1050400	LDW	$5,4		 Offset auf Gerteadresse
D200: 886508	ADW	$5,$8		 zur FCB-Basisadresse addieren
D203: 42070C	LD	$7,12		 Lnge der Strings auf 12 setzen
D206: 42110C	LD	$17,12		 |
D209: 77D19B	CAL	&h9BD1 [MCP]	 Vergleich beider Gerteadr. & Filenamen
D20C: 3028AC	JP	Z,&hAC28	  gleich? dann OP Error
D20F: 7734D3	CAL	&hD334		 Zeiger auf nchsten FCB setzen
D212: B497	JR	NZ,&hD1FC	 noch einer da? dann Schleife ->
D214: F7	RTN			  zurck
--  --  --  --  --  --  --  --  --  --	NEUES FILE IM SPEICHER FFNEN
D215: 410A30	SBC	$10,48		 nicht Ausgabe?
D218: 34E0AB	JP	NZ,&hABE0	  dann NF Error
D21B: 7762D3	CAL	&hD362		 IX und IZ in den Userstack bringen
D21E: D640CB6F	PRE	IZ,&h6FCB	 IZ Zeiger auf Filetypkennzeichen?
D222: 391E	ADC	(IZ+#0),$30	 ist es ein BASIC-Programm-File?
D224: B511	JR	C,&hD236	  dann ->
D226: 77C2B1	CAL	&hB1C2 [NDFMK]	 Datei-Fileheader erzeugen
D229: 7757D3	CAL	&hD357		 IX und IZ aus dem Userstack holen
D22C: 826002	LDW	$0,$2		 $0/1 Anfangsadresse des Files
D22F: 8822	ADW	$2,#1		 $2/3 Endadresse des Files
D231: 773BD2	CAL	&hD23B		 Speicher-Zeiger in Open-FCB setzen
D234: B769	JR	&hD29E		 und ->
D236: 77D2B1	CAL	&hB1D2 [NBFMK]	 BASIC-Fileheader erzeugen
D239: B791	JR	&hD229		 und ->
--  --  --  --  --  --  --  --  --  -->	SPEICHER-ZEIGER IN OPEN-FCB SETZEN
D23B: D640CC6F	PRE	IZ,&h6FCC	 IZ Zeiger auf Speicherz. im Open-FCB
D23F: E30060	STI4	$0,(IZ+#0)	 Anfangs- und Endadresse speichern
D242: A100	STW	$0,(IZ+#0)	 Zeiger in den Speicher zurcksetzen
D244: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	FILE AUF DISK FFNEN
D245: 773AD3	CAL	&hD33A		 Open-FCB-Filename nach WORK kopieren
D248: 77BBD2	CAL	&hD2BB		 Open-FCB-Header nach FCB kopieren
D24B: 9E1C	GRE	IX,$28		 Textzeiger ablegen
D24D: 9602	PRE	IX,$2		 IX Zeiger auf neuen FCB
D24F: 778DD9	CAL	&hD98D		 File physikalisch auf Disk ffnen
D252: 9654	PRE	IZ,$20		 IZ Zeiger auf FCB-Pufferzhler
D254: 6B0013	LDI	$0,(IZ+19)	 |
D257: A31A	STIW	$26,(IZ+#0)	 Pufferzhler ablegen
D259: 9E16	GRE	IX,$22		 Zeiger auf ?!? ablegen
D25B: E13660	ST4	$22,(IZ+#1)	 Speicher-Beginn und -Ende ablegen
D25E: 77E2D2	CAL	&hD2E2		 IZ Zeiger auf FCB und $0 Kanalnummer
D261: 9E02	GRE	IX,$2		 Zeiger auf Datenpuffer ablegen
D263: 410131	SBC	$1,49		 Direktzugriff?
D266: 702390	CAL	Z,&h9023	  dann Datenpuffer lschen
D269: 969C36	PREJ	IX,$28,&hD2A1	 Textzeiger wieder setzen und ->
--  --  --  --  --  --  --  --  --  --	KANAL FR RS232C FFNEN
D26C: D1000232	LDW	$0,&h3202	 $0=2 setzen
D270: D640B26F	PRE	IZ,&h6FB2	 IZ Zeiger auf Open-FCB-Filemodus
D274: 3B01	SBC	(IZ+#0),$1	 Eingabe?
D276: B017	JR	Z,&hD28E	  dann ->
D278: D1000130	LDW	$0,&h3001	 $0=1 setzen
D27C: 3B01	SBC	(IZ+#0),$1	 Ausgabe?
~Seite 163
D27E: B00F	JR	Z,&hD28E	  dann ->
D280: D1000331	LDW	$0,&h3103	 $0=3 setzen
D284: 3B01	SBC	(IZ+#0),$1	 kein Direktzugriff?
D286: 342CAC	JP	NZ,&hAC2C	  dann AM Error
D289: 420141	LD	$1,65		 sonst RS232C-Direktzugriff
D28C: 2101	ST	$1,(IZ+#0)	  als Filemodus setzen
D28E: D640016C	PRE	IZ,&h6C01	 IZ Zeiger auf RS232C-Parameter
D292: A50D	STDW	$13,(IZ+#0)	 diese dort speichern
D294: 9A4C	BYDW	$12		 $11=Parameter, $12=0
D296: 020E	LD	$14,#0		 $14=0 setzen
D298: E5AE60	STD4	$14,(IZ-#1)	 und als Parameter setzen
D29B: 7711BE	CAL	&hBE11 [RSOPN]	 Schnittstelle fr RS232C vorbereiten
--  --  --  --  --  --  --  --  --  --	NOCH SPEICHERVERWALTUNG KORRIGIEREN
D29E: 77BBD2	CAL	&hD2BB		 Open-FCB-Header in den FCB bringen
D2A1: 0100	SBC	$0,#0		 ist System-Kanal zu ffnen?
D2A3: B00B	JR	Z,&hD2AF	  dann ->
D2A5: A908	LDW	$8,(IZ+#0)	 Lnge des FCB holen
D2A7: D6403269	PRE	IZ,&h6932	 IZ Zeiger auf Zeichenop.stapel-Zeiger
D2AB: BDA8	ADW	(IZ-#1),$8	 diese entsprechend erhhen
D2AD: BD28	ADW	(IZ+#1),$8	 |
D2AF: 9654	PRE	IZ,$20		 IZ Zeiger auf FCB
D2B1: D1000332	LDW	$0,&h3203	 Offset auf Filemodus setzen
D2B5: 3B41	SBC	(IZ+#2),$1	 ein Eingabefile?
D2B7: 3072D6	JP	Z,&hD672	 dann ersten Datenpuffer bereitst. ->
D2BA: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	OPEN-FCB-HEADER IN DEN FCB BRINGEN
D2BB: D1003169	LDW	$0,&h6931	 $0/1 Zeiger auf FCB-Speicher-Obergrenze
D2BF: 9142	LDW	$2,(#2)		 diese holen
D2C1: D640B16F	PRE	IZ,&h6FB1	 IZ Zeiger auf Open-FCB-Kanalnummer
D2C5: 3B1F	SBC	(IZ+#0),$31	 ist nicht der Systemkanal zu ffnen?
D2C7: B405	JR	NZ,&hD2CD	  dann ->
D2C9: D1021D6E	LDW	$2,&h6E1D	 $2/3 Zeiger auf System-FCB
D2CD: 827402	LDW	$20,$2		 $20/21 Zeiger auf zuget. FCB-Speicher
D2D0: D640AF6F	PRE	IZ,&h6FAF	 IZ Zeiger auf Open-FCB-Header
D2D4: 420123	LD	$1,35		 Zhler auf Lnge des FCB-Headers setzen
D2D7: 2B00	LDI	$0,(IZ+#0)	 Byte aus Open-FCB holen
D2D9: 106002	ST	$0,($2)		 und im FCB-Header speichern
D2DC: 8822	ADW	$2,#1		 Zeiger in FCB-Header erhhen
D2DE: 0921	SB	$1,#1		 Zhler herabsetzen
D2E0: B48A	JR	NZ,&hD2D7	 noch ein Byte? dann Schleife ->
D2E2: 9654	PRE	IZ,$20		 IZ Zeiger auf FCB
D2E4: 420002	LD	$0,2		 Offset auf Kanalnummer setzen
D2E7: A940	LDW	$0,(IZ+#2)	 diese und Filemodus holen
D2E9: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	"#" BERLESEN UND KANALNUMMER LESEN
D2EA: 774201	CAL	&h0142		 evtl. vorhand. Nummerzeichen berlesen
D2ED: 77AE98	CAL	&h98AE		 Byte-Wert aus den Text lesen
D2F0: 010F	SBC	$15,#0		 Kanalnummer ist 0?
D2F2: B005	JR	Z,&hD2F8	  dann BN Error ->
D2F4: 410F10	SBC	$15,16		 Kanalnummer kleiner als 16?
D2F7: F5	RTN	C		  dann zurck
D2F8: 37DCAB	JP	&hABDC		 sonst BN Error
~Seite 164
--  --  --  --  --  --  --  --  --  -->	FCB MIT KANALNUMMER 0..15 SUCHEN
D2FB: D1081D6E	LDW	$8,&h6E1D	 $8/9 Zeiger auf System-FCB
D2FF: 012F	SBC	$15,#1		 Systemkanal?
D301: F5	RTN	C		 dann mit C=1 zurck
--  --  --  --  --  --  --  --  --  -->	FCB MIT KANALNUMMER 1..15 SUCHEN
D302: 771CD3	CAL	&hD31C		 $8/9 Zeiger auf ersten FCB
D305: F0	RTN	Z		 am Ende des FCB-Bereichs? dann zurck
D306: D1000200	LDW	$0,2		 Offset auf Kanalnummer setzen
D30A: 886008	ADW	$0,$8		 FCB-Untergrenze addieren
D30D: 1144	LD	$4,(#2)		 Kanalnummer des FCB holen
D30F: 016F04	SBC	$15,$4		 angegebene Kanalnummer?
D312: B006	JR	Z,&hD319	 dann mit C=1 zurck
D314: 7734D3	CAL	&hD334		 Zeiger auf nchsten FCB setzen
D317: B793	JR	&hD305		 Schleife
D319: 013F	SBC	$31,#1		 Z=0, C=1 setzen
D31B: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	$8/9 ZEIGER AUF ERSTEN FCB
D31C: D1002F69	LDW	$0,&h692F	 $0/1 Zeiger auf FCB-Untergrenze
D320: 9148	LDW	$8,(#2)		 $8/9 Zeiger auf ersten FCB
D322: D1023169	LDW	$2,&h6931	 $2/3 Zeiger auf FCB-Obergrenze
D326: 916202	LDW	$2,($2)		 diese holen
D329: 816208	SBCW	$2,$8		 FCB-Bereich zu Ende?
D32C: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	OFFENEN FCB MIT KANALNUMMER ($15) SUCHEN
D32D: 7702D3	CAL	&hD302		 FCB mit Kanalnummer ($15) suchen
D330: 3028AC	JP	Z,&hAC28	 nicht gefunden? dann OP Error
D333: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	ADRESSE AUF NCHSTEN FCB SETZEN
D334: 916008	LDW	$0,($8)		 Lnge des FCB holen
D337: 88C897	ADWJ	$8,#2,&hD322	 und zur FCB-Adresse addieren und ->
--  --  --  --  --  --  --  --  --  -->	OPEN-FCB-FILENAME NACH WORK KOPIEREN
D33A: D640B46F	PRE	IZ,&h6FB4	 IZ Zeiger auf Open-FCB-Filename
D33E: D102F468	LDW	$2,&h68F4	 $2/3 Zeiger auf WORK-Speicher
D342: 0022	ADC	$2,#1		 am Ende des Filenamens?
D344: F5	RTN	C		  dann zurck
D345: 2B05	LDI	$5,(IZ+#0)	 Zeichen aus Open-FCB lesen
D347: 106502	ST	$5,($2)		 und im WORK-Speicher ablegen
D34A: 88A28A	ADWJ	$2,#1,&hD342	 Adresse erhhen und Schleife ->
--  --  --  --  --  --  --  --  --  -->	VORHANDENES DATENFILE LSCHEN
D34D: A5A1	STDW	$1,(IZ-#1)	 Endadresse = Startadresse setzen
D34F: BD1E	ADW	(IZ+#0),$30	 und 1 fr das Endekennzeichen addieren
D351: 7762D3	CAL	&hD362		 IX und IZ im Userstack ablegen
D354: 776CB2	CAL	&hB26C		 Datenfile-Speicher zusammenschieben
--  --  --  --  --  --  --  --  --  -->	IX UND IZ AUS USERSTACK WIEDER HOLEN
D357: E60360	PHS4	$3		 Register $0-3 zwischenspeichern
D35A: EF0060	PPU4	$0		 Werte aus dem Userstack holen
D35D: 9600	PRE	IX,$0		 IX wieder setzen
D35F: 96C20B	PREJ	IZ,$2,&hD36C	 IZ wieder setzen und ->
--  --  --  --  --  --  --  --  --  -->	IX UND IZ IM USERSTACK ABLEGEN
D362: E60360	PHS4	$3		 Register $0-3 zwischenspeichern
D365: 9E00	GRE	IX,$0		 IX in $0/1 ablegen
D367: 9E42	GRE	IZ,$2		 IZ in $2/3 ablegen
D369: E70360	PHU4	$3		 und auf dem Userstack ablegen
D36C: EE0060	PPS4	$0		 Register $0-3 wieder holen
D36F: F7	RTN			 zurck
~Seite 165
--  --  --  --  --  --  --  --  --  -->	BASIC-ANWEISUNG CLOSE
D370: 771CD3	CAL	&hD31C		 $8/9 Zeiger auf ersten FCB
D373: B00B	JR	Z,&hD37F	 FCB-Bereich zu Ende? dann ->
D375: 9648	PRE	IZ,$8		 IZ Zeiger auf FCB
D377: 611F15	ST	$31,(IZ+21)	 ...
D37A: 7734D3	CAL	&hD334		 Zeiger auf nchsten FCB setzen
D37D: B489	JR	NZ,&hD375	 noch einer vorhanden? dann ->
D37F: 77FF00	CAL	&h00FF		 ist Anweisung zu Ende?
D382: B510	JR	C,&hD393	  dann alle Kanle schlieen
D384: 77EAD2	CAL	&hD2EA		 "#" berlesen und Kanalnummer lesen
D387: 77ACD3	CAL	&hD3AC		 Kanal schlieen
D38A: 77FF00	CAL	&h00FF		 ist Anweisung zu Ende?
D38D: F5	RTN	C		  dann zurck
D38E: 774C01	CAL	&h014C		 Komma in Text berlesen
D391: B78E	JR	&hD384		  und Schleife ->
--  --  --  --  --  --  --  --  --  -->	ALLE KANLE SCHLIESSEN
D393: 771CD3	CAL	&hD31C		 $8/9 Zeiger auf ersten FCB
D396: 3057BE	JP	Z,&hBE57	 keiner mehr da? dann evtl. RS232C schl.
D399: 9648	PRE	IZ,$8		 IZ Zeiger auf FCB
D39B: 690F02	LD	$15,(IZ+2)	 Kanalnummer holen
D39E: 77ACD3	CAL	&hD3AC		 Kanal schlieen
D3A1: B78F	JR	&hD393		 und Schleife ->
--  --  --  --  --  --  --  --  --  --	REST
D3A3: 827C08	LDW	$28,$8		 Zeiger auf FCB retten
D3A6: 775DBE	CAL	&hBE5D [RSCLO]	 RS232C-Kanal schlieen
D3A9: 96DC2D	PREJ	IZ,$28,&hD3D8	 IZ Zeiger auf FCB und ->
--  --  --  --  --  --  --  --  --  -->	KANAL MIT KANALNUMMER ($15) SCHLIESSEN
D3AC: 7702D3	CAL	&hD302		 FCB mit angespr. Kanalnummer suchen
D3AF: F0	RTN	Z		 nicht gefunden? dann zurck
D3B0: 9648	PRE	IZ,$8		 IZ Zeiger auf FCB
D3B2: E90080	LD5	$0,(IZ+#0)	 FCB-Parameter holen
D3B5: 7F1E15	SB	(IZ+21),$30	 ist ...?
D3B8: B112	JR	NC,&hD3CB	  dann ->
D3BA: 410402	SBC	$4,2		 RS232C-Kanal?
D3BD: B09B	JR	Z,&hD3A3	  dann ->
D3BF: 440303	ANC	$3,3		 Filemodus ist (APPEND-)Ausgabe?
D3C2: E60440	PHS3	$4		 FCB-Parameter speichern
D3C5: 7077D4	CAL	Z,&hD477	  dann Rest-Puffer ausgeben
D3C8: EE0240	PPS3	$2		 FCB-Parameter wieder holen
D3CB: 9E5C	GRE	IZ,$28		 Zeiger auf FCB ablegen
D3CD: 410401	SBC	$4,1		 kein FDD-Kanal?
D3D0: B407	JR	NZ,&hD3D8	  dann ->
D3D2: 026302	LD	$3,$2		 Kanalnummer holen
D3D5: 77E6D8	CAL	&hD8E6 [FDCLO]	 FDD-Kanal physikalisch schlieen
D3D8: A90C	LDW	$12,(IZ+#0)	 $12/13 Lnge des zu schlieenden FCB
D3DA: 827A0C	LDW	$26,$12		 $26/27 Zeiger auf FCB-Ende+1
D3DD: 887A1C	ADW	$26,$28		 |
D3E0: 771CD3	CAL	&hD31C		 $8/9 Zeiger auf ersten FCB
D3E3: 817C08	SBCW	$28,$8		 ist dieser FCB nicht verschoben worden?
D3E6: B112	JR	NC,&hD3F9	  dann ->
D3E8: 9648	PRE	IZ,$8		 sonst IZ Zeiger auf FCB
D3EA: 420010	LD	$0,16		 Offset auf Datenpuffer-Beginn
D3ED: BF4C	SBW	(IZ+#2),$12	 diesen herabsetzen
D3EF: 420012	LD	$0,18		 Offset auf Datenpuffer-Ende
D3F2: BF4C	SBW	(IZ+#2),$12	 dieses herabsetzen
D3F4: 420017	LD	$0,23		 Offset auf Datenpuffer-Zeiger
~Seite 166
D3F7: BF4C	SBW	(IZ+#2),$12	 diesen herabsetzen
D3F9: 7734D3	CAL	&hD334		 Zeiger auf nchsten FCB setzen
D3FC: B49A	JR	NZ,&hD3E3	 noch mehr FCBs? dann Schleife ->
D3FE: D6403B69	PRE	IZ,&h693B	 IZ Zeiger auf Variablendaten-Untergr.
D402: E90860	LD4	$8,(IZ+#0)	 diese und Obergrenze holen
D405: 81680A	SBCW	$8,$10		 Variablendatenbereich zu Ende?
D408: B137	JR	NC,&hD440	  dann ->
D40A: 9648	PRE	IZ,$8		 IZ Zeiger auf Variablendeskriptor
D40C: AB04	LDIW	$4,(IZ+#0)	 Var.typ und Var.namenlnge holen
D40E: 440440	ANC	$4,%01000000	 keine FIELD-Variable?
D411: B022	JR	Z,&hD434	  dann ->
D413: A96205	LDW	$2,(IZ+$5)	 Zeiger auf Variable holen
D416: 9642	PRE	IZ,$2		 IZ Zeiger auf Variable
D418: 420002	LD	$0,2		 Offset auf Stringadresse
D41B: A942	LDW	$2,(IZ+#2)	 diese holen
D41D: 81621C	SBCW	$2,$28		 liegt sie nicht innerhalb des zu
D420: B513	JR	C,&hD434	  schlieenden FCB-Datenpuffers?
D422: BF4C	SBW	(IZ+#2),$12	  |
D424: 81621A	SBCW	$2,$26		  |
D427: B10C	JR	NC,&hD434	   dann ->
D429: 4C04BF	AN	$4,%10111111	 FIELD-Flag lschen
D42C: 106408	ST	$4,($8)		 und Variablentyp speichern
D42F: 8940	SBW	$0,#2		 Stringlnge und -zeiger lschen
D431: E13F40	ST3	$31,(IZ+#1)	 |
D434: 0206	LD	$6,#0		 High-Byte auf Null setzen
D436: 886805	ADW	$8,$5		 Zeiger auf nchsten Variablendeskriptor
D439: D1000400	LDW	$0,4		  setzen
D43D: 88C8BA	ADWJ	$8,#2,&hD405	 und Schleife ->
D440: 82601C	LDW	$0,$28		 $0/1 Zieladresse
D443: 82621A	LDW	$2,$26		 $2/3 Quelladresse
D446: D6403269	PRE	IZ,&h6932	 IZ Zeiger auf Zeichenop.stapel-Zeiger
D44A: A924	LDW	$4,(IZ+#1)	 $4/5 Gre des zu verschiebenden
D44C: 896402	SBW	$4,$2		       Bereichs
D44F: BFAC	SBW	(IZ-#1),$12	 Zeichenop.stapel-Zeiger herabsetzen
D451: BF2C	SBW	(IZ+#1),$12	 |
D453: 37F3CB	JP	&hCBF3		 Block verschieben, IX beibehalten ->
-------------------------------------->	SYSTEM-FCB SCHLIESSEN
D456: D6401D6E	PRE	IZ,&h6E1D	 IZ Zeiger auf System-FCB
D45A: E90080	LD5	$0,(IZ+#0)	 FCB-Parameter holen
D45D: 410402	SBC	$4,2		 RS232C-Kanal?
D460: 315DBE	JP	NC,&hBE5D [RSCLO] dann diesen schlieen ->
D463: 410330	SBC	$3,&h30		 Filemodus nicht auf Ausgabe?
D466: B40B	JR	NZ,&hD472	  dann ->
D468: 0104	SBC	$4,#0		 RAM-Speicher-File?
D46A: B00C	JR	Z,&hD477	  dann Rest-Puffer ausgeben ->
D46C: 7777D4	CAL	&hD477		 Rest-Puffer ausgeben
D46F: 37E4D8	JP	&hD8E4		 und ->
D472: 0104	SBC	$4,#0		 RAM-Speicher-File?
D474: F0	RTN	Z		  dann zurck
D475: B787	JR	&hD46F		 sonst ->
--  --  --  --  --  --  --  --  --  -->	REST-PUFFER AUSGEBEN
D477: 7762D3	CAL	&hD362		 IX und IZ im Userstack ablegen
D47A: 0104	SBC	$4,#0		 kein RAM-Speicher-File?
D47C: B40C	JR	NZ,&hD489	  dann ->
D47E: 690014	LD	$0,(IZ+20)	 Pufferzhler holen
D481: 0201	LD	$1,#0		 High-Byte auf Null setzen
~Seite 167
D483: 77B7CC	CAL	&hCCB7		 Datenpuffer in "Speicher" ausgeben
D486: 3757D3	JP	&hD357		 IX und IZ aus dem Userstack holen
D489: 690714	LD	$7,(IZ+20)	 Pufferzhler holen
D48C: 0208	LD	$8,#0		 High-Byte auf Null setzen
D48E: 420010	LD	$0,16		 Offset auf Datenpuffer-Beginn
D491: A940	LDW	$0,(IZ+#2)	 diesen holen
D493: 9600	PRE	IX,$0		 IX Zeiger auf Datenpuffer
D495: 7705DA	CAL	&hDA05 [FDWRB]	 Datenpuffer an FDD ausgeben
D498: B793	JR	&hD486		 und ->
-------------------------------------->	BASIC-ANWEISUNG FIELD
D49A: 77EAD2	CAL	&hD2EA		 "#" berlesen und Kanalnummer lesen
D49D: 772DD3	CAL	&hD32D		 offenen FCB mit dieser Kanalnr. suchen
D4A0: 9648	PRE	IZ,$8		 IZ Zeiger auf FCB
D4A2: D1000331	LDW	$0,&h3103	 $0=3 und $1=&h31 setzen
D4A6: 3B41	SBC	(IZ+#2),$1	 kein FDD-Direktzugriff?
D4A8: 342CAC	JP	NZ,&hAC2C	  dann AM Error
D4AB: 774C01	CAL	&h014C		 Komma im Text berlesen
D4AE: 773801	CAL	&h0138		 evtl. vorhand. Klammeraffen berlesen
D4B1: 420010	LD	$0,16		 Offset auf Datenpuffer-Beginn setzen
D4B4: AB4A	LDIW	$10,(IZ+#2)	 diesen holen
D4B6: AB06	LDIW	$6,(IZ+#0)	 Datenpuffer-Ende holen
D4B8: B409	JR	NZ,&hD4C2	 war kein Klammeraffe da? dann ->
D4BA: 774C01	CAL	&h014C		 Komma im Text berlesen
D4BD: 420003	LD	$0,3		 Offset auf Datenpuffer-Zeiger
D4C0: A94A	LDW	$10,(IZ+#2)	 diesen holen
D4C2: E60BA0	PHS6	$11		 Parameter zwischenspeichern
D4C5: 77AE98	CAL	&h98AE		 Byte-Wert aus Text lesen
D4C8: 260F	PHS	$15		 Byte-Wert zwischenspeichern
D4CA: 4202BC	LD	$2,188		 falls vorhanden, AS-Token
D4CD: 772E01	CAL	&h012E		  berlesen
D4D0: 34C0AB	JP	NZ,&hABC0	 war keins da? dann SN Error
D4D3: 771AA6	CAL	&hA61A		 Variablendeskriptor lesen
D4D6: 440D88	ANC	$13,&h88	 numerische und/oder Feldvariable?
D4D9: 34FCAB	JP	NZ,&hABFC	  dann TM Error
D4DC: EE01C0	PPS7	$1		 Parameter wieder holen
D4DF: D10FF468	LDW	$15,&h68F4	 $15/16 Zeiger auf WORK-Puffer
D4E3: 421103	LD	$17,3		 $17/18 Stringlnge 3
D4E6: 964F	PRE	IZ,$15		 IZ Zeiger auf WORK-Puffer
D4E8: 2301	STI	$1,(IZ+#0)	 Lnge im WORK-Puffer ablegen
D4EA: A106	STW	$6,(IZ+#0)	 Datenpuffer-Zeiger ablegen
D4EC: 9A41	BYDW	$1		 $0=Lnge, $1=0 setzen
D4EE: 8846	ADW	$6,#2		 Datenpuffer-Zeiger erhhen
D4F0: 816206	SBCW	$2,$6		 hher als Datenpuffer-Endadresse?
D4F3: 3524AC	JP	C,&hAC24	  dann FD Error
D4F6: E607A0	PHS6	$7		 Parameter zwischenspeichern
D4F9: 260D	PHS	$13		 Variablentyp zwischenspeichern
D4FB: 7790A7	CAL	&hA790		 Variable zuweisen
D4FE: 2E00	PPS	$0		 Variablentyp wieder holen
D500: 4E0040	OR	$0,%01000000	 FIELD-Flag setzen
D503: 106013	ST	$0,($19)	 und speichern
D506: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
D509: B0C5	JR	Z,&hD4C5	 war eins da? dann Schleife ->
D50B: 770301	CAL	&h0103		 auf Ende der Anweisung berprfen
D50E: EE01A0	PPS6	$1		 Parameter wieder holen
D511: 9643	PRE	IZ,$3		 IZ Zeiger auf Datenpuffer-Zeiger
D513: 630517	STI	$5,(IZ+23)	 diesen neu setzen
~Seite 168
D516: 2106	ST	$6,(IZ+#0)	 |
D518: F7	RTN			 zurck
-------------------------------------->	BASIC-ANWEISUNG INPUT
D519: 7766AB	CAL	&hAB66		 im Direktmodus FC Error
D51C: 774201	CAL	&h0142		 evtl. vorhand. Nummerzeichen berlesen
D51F: 3442D7	JP	NZ,&hD742	 war keins da? dann ->
D522: 7790D5	CAL	&hD590		 Kanalnr. lesen & FCB auf Eingabe prfen
D525: 774C01	CAL	&h014C		 Komma im Text berlesen
D528: A609	PHSW	$9		 FCB-Zeiger zwischenspeichern
D52A: 771AA6	CAL	&hA61A		 Variablendeskriptor lesen
D52D: AE08	PPSW	$8		 FCB-Zeiger wieder holen
D52F: D6400060	PRE	IZ,&h6000	 IZ Zeiger auf Eingabepuffer
D533: 9E13	GRE	IX,$19		 Zeiger auf Variable ablegen
D535: A614	PHSW	$20		  und speichern
D537: 77B0D5	CAL	&hD5B0		 Zeile holen
D53A: D6000060	PRE	IX,&h6000	 IX Zeiger auf Eingabepuffer
D53E: A609	PHSW	$9		 FCB-Zeiger zwischenspeichern
D540: 77BF9D	CAL	&h9DBF		 String oder Zahl aus Zeile lesen
D543: AE08	PPSW	$8		 FCB-Zeiger wieder holen
D545: AE13	PPSW	$19		 Zeiger auf Variable wieder holen
D547: 9613	PRE	IX,$19		 IX Zeiger auf Variable
D549: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
D54C: B0A5	JR	Z,&hD528	 war eins da? dann Schleife ->
D54E: B73E	JR	&hD58D		 sonst ->
-------------------------------------->	BASIC-ANWEISUNG LINE INPUT
D550: 42029B	LD	$2,155		 falls vorhanden, INPUT-Token
D553: 772C01	CAL	&h012C		  berlesen
D556: 34C0AB	JP	NZ,&hABC0	 war keins da? dann SN Error
D559: 774201	CAL	&h0142		 evtl. vorhand. Nummerzeichen berlesen
D55C: B487	JR	NZ,&hD556	 war keins da? dann SN Error ->
D55E: 7790D5	CAL	&hD590		 Kanalnr. lesen & FCB auf Eingabe prfen
D561: 774C01	CAL	&h014C		 Komma im Text berlesen
D564: A609	PHSW	$9		 FCB-Zeiger zwischenspeichern
D566: 771AA6	CAL	&hA61A		 Variablendeskriptor lesen
D569: AE08	PPSW	$8		 FCB-Zeiger wieder holen       {krzer:}
D56B: D6401169	PRE	IZ,&h6911	 IZ Zeiger auf Variablendeskriptor {---}
D56F: 3B1F	SBC	(IZ+#0),$31	 kein String?               {SBC $13,#0}
D571: 36FCAB	JP	LNZ,&hABFC	  dann TM Error
D574: 9E15	GRE	IX,$21		 Textzeiger ablegen
D576: A616	PHSW	$22		  und zwischenspeichern
D578: D6400060	PRE	IZ,&h6000	 IZ Zeiger auf Eingabepuffer
D57C: 77ADD5	CAL	&hD5AD		 Zeile holen
D57F: AE15	PPSW	$21		 Textzeiger wieder holen
D581: 9615	PRE	IX,$21		  und setzen
D583: 027117	LD	$17,$23		 $17    Lnge der Eingabezeile
D586: D10F0060	LDW	$15,&h6000	 $15/16 Zeiger auf WORK-Puffer
D58A: 7790A7	CAL	&hA790		 Variable zuweisen
D58D: 370301	JP	&h0103		 auf Ende der Anweisung berprfen
--  --  --  --  --  --  --  --  --  -->	KANALNR. LESEN & FCB AUF EINGABE PRFEN
D590: 779ED5	CAL	&hD59E		 Kanalnummer lesen und FCB suchen
D593: 410032	SBC	$0,&h32		 Filemodus auf Eingabe?
D596: F0	RTN	Z		  dann zurck
D597: 410041	SBC	$0,&h41		 oder RS232C-Direktzugriff?
D59A: F0	RTN	Z		  dann zurck
D59B: 372CAC	JP	&hAC2C		 sonst AM Error
~Seite 169
--  --  --  --  --  --  --  --  --  -->	KANALNUMMER LESEN UND FCB SUCHEN
D59E: 77EAD2	CAL	&hD2EA		 "#" berlesen und Kanalnummer lesen
D5A1: 772DD3	CAL	&hD32D		 offenen FCB mit dieser Kanalnr. suchen
D5A4: 9648	PRE	IZ,$8		 IZ Zeiger auf FCB
D5A6: 690003	LD	$0,(IZ+3)	 Filemodus holen
D5A9: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	BIS FILE-ENDE EINE ZEILE EINLESEN
D5AA: 770DD8	CAL	&hD80D		 bei EOF File schlieen
--  --  --  --  --  --  --  --  --  -->	LINE-INPUT-ZEILE EINLESEN
D5AD: 0D9503	NAJ	$21,#0,&hD5B2	 Kennzeichen f. LINE INPUT setzen und ->
--  --  --  --  --  --  --  --  --  -->	INPUT-ZEILE EINLESEN
D5B0: 0215	LD	$21,#0		 Kennzeichen f. INPUT setzen
D5B2: 9E1C	GRE	IX,$28		 IX ablegen
D5B4: 897616	SBW	$22,$22		 Flags lschen
D5B7: 7735D6	CAL	&hD635		 nchstes Zeichen einlesen
D5BA: 41000D	SBC	$0,13		 ist es ein CR?
D5BD: B064	JR	Z,&hD622	  dann ->
D5BF: 0115	SBC	$21,#0		 LINE-INPUT-Modus?
D5C1: B410	JR	NZ,&hD5D2	  dann ->
D5C3: 410022	SBC	$0,'"'		 ist es ein Anfhrungszeichen?
D5C6: B034	JR	Z,&hD5FB	  dann ->
D5C8: 41002C	SBC	$0,","		 oder ein Komma?
D5CB: B029	JR	Z,&hD5F5	  dann ->
D5CD: 410020	SBC	$0," "		 oder ein Leerzeichen?
D5D0: B014	JR	Z,&hD5E5	  dann ->
D5D2: 41007F	SBC	$0,127		 ist es DEL?
D5D5: B09F	JR	Z,&hD5B7	  dann Schleife ->
D5D7: 410020	SBC	$0,32		 ist ein Steuerzeichen?
D5DA: B5A4	JR	C,&hD5B7	  dann Schleife ->
D5DC: 2300	STI	$0,(IZ+#0)	 Zeichen in Puffer ablegen
D5DE: 0837	AD	$23,#1		 Pufferlnge erhhen
D5E0: B4AA	JR	NZ,&hD5B7	 kein berlauf? dann Schleife ->
D5E2: 37C4AB	JP	&hABC4		 sonst ST Error
--  --  --  --  --  --  --  --  --  --	LEERZEICHEN IST AUFGETRETEN
D5E5: 0117	SBC	$23,#0		 Puffer noch leer?
D5E7: B0B1	JR	Z,&hD5B7	  dann Schleife ->
D5E9: D6001169	PRE	IX,&h6911	 IX Zeiger in Variablendeskriptor
D5ED: 2801	LD	$1,(IX+#0)	 Varieblentyp lesen
D5EF: 0101	SBC	$1,#0		 ist es eine Stringvariable?
D5F1: B296	JR	LZ,&hD5DC	  dann speichern ->
D5F3: B70F	JR	&hD603		 sonst ->
--  --  --  --  --  --  --  --  --  --	KOMMA IST AUFGETRETEN
D5F5: 0116	SBC	$22,#0		 innerhalb von Anfhrungszeichen?
D5F7: B49C	JR	NZ,&hD5DC	  dann speichern ->
D5F9: B735	JR	&hD62F		 sonst Ende ->
--  --  --  --  --  --  --  --  --  --	ANFHRUNGSZEICHEN IST AUFGETRETEN
D5FB: 0117	SBC	$23,#0		 Puffer noch leer?
D5FD: B014	JR	Z,&hD612	  dann ->
D5FF: 0116	SBC	$22,#0		 noch kein Anfhrungszeichen gewesen?
D601: B0A6	JR	Z,&hD5DC	  dann speichern ->
D603: 77E1D6	CAL	&hD6E1		 nchstes Zeichen testweise lesen
D606: B428	JR	NZ,&hD62F	  dann Ende ->
D608: 410020	SBC	$0," "		 ist es kein Leerzeichen?
D60B: B409	JR	NZ,&hD615	  dann ->
D60D: 7735D6	CAL	&hD635		 nchstes Zeichen einlesen
D610: B78E	JR	&hD603		 und Schleife ->
~Seite 170
D612: 09B6B8	SBJ	$22,#1,&hD5DC	 Kennzeichen setzen und speichern ->
D615: 41002C	SBC	$0,","		 ist es ein Komma?
D618: B013	JR	Z,&hD62C	  dann ->
D61A: 41000D	SBC	$0,13		 ist es kein CR?
D61D: B411	JR	NZ,&hD62F	  dann Ende ->
D61F: 7735D6	CAL	&hD635		 nchstes Zeichen einlesen
D622: 77E5D6	CAL	&hD6E5		 nchstes Zeichen testweise lesen
D625: B409	JR	NZ,&hD62F	 war keins im Puffer? dann Ende ->
D627: 41000A	SBC	$0,10		 ist es kein LF?
D62A: B404	JR	NZ,&hD62F	  dann ->
D62C: 7735D6	CAL	&hD635		 nchstes Zeichen einlesen
D62F: 211F	ST	$31,(IZ+#0)	 Endekennzeichen in den Puffer setzen
D631: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	BIS FILE-ENDE FR VERIFY ZEICHEN LESEN
D632: 770DD8	CAL	&hD80D		 bei EOF File schlieen
--  --  --  --  --  --  --  --  --  -->	EIN ZEICHEN VON PERIPHERIE HOLEN
D635: 9E41	GRE	IZ,$1		 IZ ablegen
D637: A602	PHSW	$2		  und speichern
D639: 9648	PRE	IZ,$8		 IZ Zeiger auf FCB
D63B: 420002	LD	$0,2		 ist es ein RS232C- oder MT-File?
D63E: 7B0004	SBC	(IZ+4),$0	 |
D641: B128	JR	NC,&hD66A	  dann ->
D643: 7739D7	CAL	&hD739		 FCB-Parameter holen
D646: 3410AC	JP	NZ,&hAC10	 EOF gefunden? dann DA Error
D649: 117005	LD	$16,($5)	 Zeichen aus Datenpuffer holen
D64C: 8825	ADW	$5,#1		 Datenpufferzeiger erhhen
D64E: 0922	SB	$2,#1		 Pufferzhler herabsetzen
D650: E14280	ST5	$2,(IZ+#2)	 Parameter wieder im FCB speichern
D653: 2610	PHS	$16		 Zeichen zwischenspeichern
D655: B40B	JR	NZ,&hD661	 Pufferzhler noch nicht Null? dann ->
D657: 420012	LD	$0,&h12		 Offset auf Datenpuffer-Ende
D65A: 3B45	SBC	(IZ+#2),$5	 Datenpuffer-Ende noch nicht erreicht?
D65C: B408	JR	NZ,&hD665	  dann ->
D65E: 7772D6	CAL	&hD672		 sonst nchsten Datenpuffer bereitst.
D661: 2E00	PPS	$0		 Zeichen wieder holen
D663: B709	JR	&hD66D		 und ->
D665: 7F1E16	SB	(IZ+&h16),$30	 EOF setzen
D668: B788	JR	&hD661		 und ->
D66A: 7799BE	CAL	&hBE99		 ein Zeichen von RS232C oder MT holen
D66D: AE01	PPSW	$1		 IZ wieder setzen
D66F: 9641	PRE	IZ,$1		 |
D671: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	NCHSTEN DATENPUFFER BEREITSTELLEN
D672: 9E5C	GRE	IZ,$28		 IZ ablegen
D674: A609	PHSW	$9		 Zeiger auf FCB zwischenspeichern
D676: 7B1E04	SBC	(IZ+4),$30	 Eingabe vom FDD-Kanal?
D679: 30AAD6	JP	Z,&hD6AA	  dann ->
D67C: B161	JR	NC,&hD6DE	 oder von RS232C oder MT? dann zurck ->
D67E: 42001F	LD	$0,31		 Offset auf FCB-Speicherzeiger
D681: E94760	LD4	$7,(IZ+#2)	 diese lesen
D684: 896709	SBW	$7,$9		 Lnge des Files ohne Endekennzeichen
D687: 8927	SBW	$7,#1		  berechnen
D689: B051	JR	Z,&hD6DB	 am Ende des Files? dann ->
D68B: 0108	SBC	$8,#0		 High-Byte der Restlnge =0?
D68D: B005	JR	Z,&hD693	  dann ->
D68F: D1070001	LDW	$7,256		 Lnge des Datenpuffers holen
~Seite 171
D693: 610714	ST	$7,(IZ+20)	 Pufferzhler setzen (zhlt rckwrts)
D696: 826407	LDW	$4,$7		 $4/5 Lnge des zu kopierenden Bereichs
D699: 826209	LDW	$2,$9		 $2/3 Quelladresse
D69C: 420021	LD	$0,33		 Offset auf Zeiger in Speicherfile
D69F: BD47	ADW	(IZ+#2),$7	 diesen um Puffergre erhhen
D6A1: 1840	BID	$0		 Offset auf Datenpuffer-Beginn
D6A3: A940	LDW	$0,(IZ+#2)	 $0/1 Zieladresse=Datenpuffer-Beginn
D6A5: 77F3CB	CAL	&hCBF3		 Bereich kopieren, IX beibehalten
D6A8: B721	JR	&hD6CA		 und ->
D6AA: 9E18	GRE	IX,$24		 IX ablegen
D6AC: 690202	LD	$2,(IZ+2)	 $2 Kanalnummer
D6AF: 420010	LD	$0,16		 Offset auf Datenpuffer-Beginn
D6B2: A940	LDW	$0,(IZ+#2)	 IX Zeiger auf Datenpuffer
D6B4: 9600	PRE	IX,$0		 |
D6B6: 7F1E16	SB	(IZ+22),$30	 EOF setzen
D6B9: 773EDA	CAL	&hDA3E		 Block aus FDD-File lesen
D6BC: 611F16	ST	$31,(IZ+22)	 EOF zurcksetzen
D6BF: 965C	PRE	IZ,$28		 IZ wieder Zeiger auf FCB
D6C1: 9618	PRE	IX,$24		 IX wieder setzen
D6C3: 813A	SBCW	$26,#1		 kein Byte gelesen?
D6C5: B515	JR	C,&hD6DB	  dann EOF setzen ->
D6C7: 611A14	ST	$26,(IZ+20)	 sonst Pufferzhler setzen
D6CA: 965C	PRE	IZ,$28		 IZ wieder Zeiger auf FCB
D6CC: 420010	LD	$0,16		 Offset auf Datenpuffer-Beginn
D6CF: A942	LDW	$2,(IZ+#2)	 diesen holen
D6D1: 420017	LD	$0,23		 Offset auf Datenpuffer-Zeiger
D6D4: A342	STIW	$2,(IZ+#2)	 diesen auf den Beginn setzen
D6D6: BD3E	ADW	(IZ+#1),$30	 Blocknummer erhhen
D6D8: 96DC04	PREJ	IZ,$28,&hD6DE	 IZ wieder Zeiger auf FCB und ->
D6DB: 7F1E16	SB	(IZ+22),$30	 EOF setzen
D6DE: AE08	PPSW	$8		 $8/9 wieder holen
D6E0: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	ZEICHEN TESTWEISE HOLEN
D6E1: 271E	PHU	$30		 Kennzeichen fr Warten speichern
D6E3: B703	JR	&hD6E7		 und ->
--  --  --  --  --  --  --  --  --  -->	WENN EINS DA, ZEICHEN TESTWEISE HOLEN
D6E5: 271F	PHU	$31		 Kennzeichen fr Nichtwarten speichern
D6E7: 9E41	GRE	IZ,$1		 IZ ablegen
D6E9: A602	PHSW	$2		  und speichern
D6EB: 2F01	PPU	$1		 Kennzeichen wieder holen
D6ED: 9648	PRE	IZ,$8		 IZ Zeiger auf FCB
D6EF: 420002	LD	$0,2		 Eingabe von RS232C oder MT?
D6F2: 7B0004	SBC	(IZ+4),$0	 |
D6F5: B10A	JR	NC,&hD700	  dann ->
D6F7: 7739D7	CAL	&hD739		 FCB-Parameter holen
D6FA: 116005	LD	$0,($5)		 Zeichen lesen
D6FD: 376DD6	JP	&hD66D		 IZ wieder setzen und zurck ->
D700: B42A	JR	NZ,&hD72B	 Eingabe von MT? dann ->
D702: 2601	PHS	$1		 Kennzeichen zwischenspeichern
D704: 77E291	CAL	&h91E2 [KYCHK]	 auf OFF, C.Boot, BRK und STOP prfen
D707: D640066C	PRE	IZ,&h6C06	 IZ Zeiger auf Anzahl im Empfangspuffer
D70B: 799F07	ADC	(IZ-7),$31	 Fehler aufgetreten?
D70E: 34D9BE	JP	NZ,&hBED9	  dann ->
D711: 391F	ADC	(IZ+#0),$31	 kein Zeichen im Empfangspuffer?
D713: 2E01	PPS	$1		 Kennzeichen wieder holen
D715: B00C	JR	Z,&hD722	  dann ->
~Seite 172
D717: AB00	LDIW	$0,(IZ+#0)	 Anz. Zeichen und Empfangspufferz. holen
D719: 0941	SB	$1,#2		 Offset in den Empfangspuffer berechnen
D71B: 296001	LD	$0,(IZ+$1)	 Zeichen aus Empfangspuffer holen
D71E: 0140	SBC	$0,#2		 Z=1 setzen
D720: B7A4	JR	&hD6FD		  und ->
D722: 0121	SBC	$1,#1		 Kennzeichen fr Warten gesetzt?
D724: B0A3	JR	Z,&hD702	  dann ->
D726: B7AA	JR	&hD6FD		 sonst ->
--  --  --  --  --  --  --  --  --  --	REST
D728: 7735D6	CAL	&hD635		 nchstes Zeichen einlesen
--  --  --  --  --  --  --  --  --  -->	ZEICHEN VON MT LESEN
D72B: D6406E6F	PRE	IZ,&h6F6E	 IZ Zeiger auf Kassettenpuffer-Lnge
D72F: 3B1E	SBC	(IZ+#0),$30	 noch ein Zeichen da?
D731: B18A	JR	NC,&hD728	  dann ->
D733: 7757BE	CAL	&hBE57		 sonst INT1 sperren
D736: 01BFBB	SBCJ	$31,#1,&hD6FD	 Z=0 setzen und ->
--  --  --  --  --  --  --  --  --  -->	FCB-PARAMETER HOLEN
D739: 420014	LD	$0,20		 Offset auf Pufferzhler
D73C: E94280	LD5	$2,(IZ+#2)	 diesen u.a. holen
D73F: 0104	SBC	$4,#0		 EOF-Kennzeichen gelscht?
D741: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	INPUT VOM BILDSCHIRM AUSFHREN
D742: 9E00	GRE	IX,$0		 Textzeiger ablegen
D744: D6402869	PRE	IZ,&h6928	 IZ Zeiger auf Textzeiger-Zw.speicher
D748: A100	STW	$0,(IZ+#0)	 Textzeiger dort ablegen
D74A: D6604B6A	PRE	US,&h6A4B	 Userstackzeiger zurcksetzen
D74E: D6402869	PRE	IZ,&h6928	 IZ Zeiger auf Textzeiger-Zw.speicher
D752: A900	LDW	$0,(IZ+#0)	 Textzeiger wieder holen
D754: 9600	PRE	IX,$0		  und setzen
D756: 77F900	CAL	&h00F9 [NEXTC]	 nchstes Zeichen holen
D759: C97474	SBB4	$20,$20		 Kennzeichen zurcksetzen
D75C: 0232	LD	$18,#1		 Kennzeichen f. auszugebendes Fregez.
D75E: 410022	SBC	$0,'"'		 ist es kein Anfhrungszeichen?
D761: B416	JR	NZ,&hD778	  dann ->
D763: 77EB9C	CAL	&h9CEB		 Stringausdruck aus dem Text lesen
D766: 82750F	LDW	$21,$15		 $21/22 Zeiger auf Stringausdruck
D769: 027411	LD	$20,$17		 $20    Lnge des Stringausdrucks
D76C: 0232	LD	$18,#1		 Kennzeichen f. auszugebendes Fragez.
D76E: 774001	CAL	&h0140		 evtl. vorhand. Semikolon im Text berl.
D771: B006	JR	Z,&hD778	 war eins da? dann ->
D773: 774C01	CAL	&h014C		 Komma im Text berlesen
D776: 0212	LD	$18,#0		 Kennz. f. kein auszugebendes Fragez.
D778: E617A0	PHS6	$23		 Register $18-23 retten
D77B: 771AA6	CAL	&hA61A		 Variablendeskriptor lesen
D77E: EE12A0	PPS6	$18		 Register $18-23 wieder holen
D781: 77D2AE	CAL	&hAED2		 Abfrage im Abfrage-Betriebsmodus machen
D784: B4BB	JR	NZ,&hD74A	 Fehler aufgetreten? dann ->
D786: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
D789: B0C8	JR	Z,&hD742	 war eins da? dann Schleife ->
D78B: 370301	JP	&h0103		 auf Ende der Anweisung berprfen
-------------------------------------->	BASIC-FUNKTION INPUT$
D78E: 2A02	LDI	$2,(IX+#0)	 Zeichen lesen
D790: 410224	SBC	$2,"$"		 kein Dollarzeichen?
D793: 34C0AB	JP	NZ,&hABC0	  dann SN Error
D796: 775201	CAL	&h0152		 offene Klammer im Text berlesen
D799: 77AE98	CAL	&h98AE		 Byte-Wert aus Text lesen
~Seite 173
D79C: A710	PHUW	$16		 diesen zwischenspeichern
D79E: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
D7A1: 0215	LD	$21,#0		 Kennzeichen f. Tastatur setzen
D7A3: B406	JR	NZ,&hD7AA	 war kein Komma da? dann ->
D7A5: 7790D5	CAL	&hD590		 Kanalnr suchen & FCB auf Eingabe prfen
D7A8: 0D15	NA	$21,#0		 Kennzeichen f. FCB setzen
D7AA: 775001	CAL	&h0150		 geschlossene Klammer im Text berlesen
D7AD: 9E01	GRE	IX,$1		 Textzeiger ablegen
D7AF: A602	PHSW	$2		  und zwischenspeichern
D7B1: 773691	CAL	&h9136		 Cursorblinken einschalten
D7B4: AF00	PPUW	$0		 Anzahl der zu holenden Zeichen holen
D7B6: 772F9A	CAL	&h9A2F		 und auf Platz in Systemspeicher prfen
D7B9: 2600	PHS	$0		 Zeichenanzahl zwischenspeichern
D7BB: A603	PHSW	$3		 Zeiger auf Eingabestring retten
D7BD: 827602	LDW	$22,$2		 $22/23 Zeiger in Eingabestring
D7C0: 0254	LD	$20,#2		 $20    Zhler
D7C2: 0934	SB	$20,#1		 Zhler herabsetzen
D7C4: B517	JR	C,&hD7DC	 keine Zeichen mehr? dann ->
D7C6: 0115	SBC	$21,#0		 Tastatureingabe?
D7C8: B00C	JR	Z,&hD7D5	  dann ->
D7CA: 7735D6	CAL	&hD635		 nchstes Zeichen von Peripherie lesen
D7CD: 106016	ST	$0,($22)	 im Systemspeicher ablegen
D7D0: 88B690	ADWJ	$22,#1,&hD7C2	 Zeiger erhhen und Schleife ->
D7D3: B587	JR	C,&hD7CD	 keine Sondertaste? dann ->
D7D5: 77B9E8	CAL	&hE8B9 [KYIN]	 auf Tastendruck warten
D7D8: 4180F088	SBCJ	$0,240,&hD7D3	 und ->
D7DC: EE0F40	PPS3	$15		 Stringdeskriptor wieder holen
D7DF: AE01	PPSW	$1		 Textzeiger wieder holen
D7E1: 9601	PRE	IX,$1		  und setzen
D7E3: F7	RTN			 zurck
-------------------------------------->	BASIC-FUNKTION EOF
D7E4: 77B998	CAL	&h98B9 [BIN11]	 NUM1 in Byte-Wert 1..255 wandeln
D7E7: 77F4D2	CAL	&hD2F4		 ist er grer als 15? dann BN Error
D7EA: 772DD3	CAL	&hD32D		 offenen FCB mit dieser Kanalnr. suchen
D7ED: 9648	PRE	IZ,$8		 IZ Zeiger auf FCB
D7EF: 7739D7	CAL	&hD739		 FCB-Parameter mit EOF-Flag holen
D7F2: 690004	LD	$0,(IZ+4)	 Gerteadresse holen
D7F5: 410002	SBC	$0,2		 ist es kein RS232C-Kanal?
D7F8: B40B	JR	NZ,&hD804	  dann ->
D7FA: D640066C	PRE	IZ,&h6C06	 IZ Zeiger auf Zeichenzahl im Empfangsp.
D7FE: 391F	ADC	(IZ+#0),$31	 Empfangspuffer nicht leer?
D800: B403	JR	NZ,&hD804	  dann ->
D802: 0924	SB	$4,#1		 sonst $4=&hFF setzen
D804: 026F04	LD	$15,$4		 Wort setzen
D807: 027004	LD	$16,$4		 |
D80A: 37F49A	JP	&h9AF4 [CNVR]	 Wort-Wert zu FLP-Zahl wandeln ->
-------------------------------------->	BEI EOF FILE SCHLIESSEN
D80D: 770792	CAL	&h9207 [BKCK]	 auf OFF, C.Boot und BRK prfen
D810: D1081D6E	LDW	$8,&h6E1D	 $8/9 Zeiger auf System-FCB
D814: D100336E	LDW	$0,&h6E33	 $0/1 Zeiger auf System-FCB-EOF
D818: 1140	LD	$0,(#2)		 EOF-Kennzeichen holen
D81A: 0020	ADC	$0,#1		 ist es nicht gesetzt?
D81C: F4	RTN	NZ		  dann zurck
D81D: EE0060	PPS4	$0		 sonst 2 letzte Rcksprungadr. lschen
D820: 7756D4	CAL	&hD456		 System-FCB schlieen
D823: 773892	CAL	&h9238		 I/O-Aktiv-Flag lschen
~Seite 174
0826: 3758E3	JP	&hE358		 I/O-Aktivitt beenden

=== FDD-ROUTINEN ===============================================================
Grundstzliches zum FDD-Interface:
Immer wird ein Byte ausgegeben und direkt daran anschlieend eines eingelesen!
Dabei kann das einlesene oder ausgegebene Byte natrlich auch ein Dummy sein.
Es gibt verschiedene Befehle an das Interface, die im folgenden aufgefhrt sind:
ST    - Diskstatus:    +1: Batterie zu schwach
                       +2: Passwort gesetzt
                       +4: keine Diskette eingelegt
                       +8: Diskettenfehler
                      +16: Formatierfehler
                      +32: Diskettenfehler
                      +64: Diskette voll
                     +128: Kanal ist nicht geffnet
BS    - Befehlsstatus: +1: Directory zu Ende (nur &0x)
                       +2: Passwort gesetzt (nur &34)
                       +4: Schreibfehler (nur &1x) oder File-Ende (nur &2x)
                       +8: Filename schon vorhanden (nur &60)
                      +16: File nicht gefunden (nur &30/&32/&34)
                      +32: Kanal schon geffnet (nur &3x)
                      +64: Zugriffsmodus nicht erlaubt (nur &3x/&1x/&2x)
                     +128: Kanal ist nicht geffnet (nur &13/&2x/&40/&C0)
DU    - Dummy-Byte =0
LB/HB - Low-/High-Byte der Blocklnge
LD/HD - Low-/High-Byte der Datensatznummer
KN    - Kanalnummer 0..15
FT    - Filetyp-Byte
FN    - Zeichen aus Filename
a) ersten Filetyp+Filenamen aus Directory lesen:
      >&00 <ST >DU <15 >DU <0 >DU <BS >DU <FT {>DU <FN}*14
   nchsten Filetyp+Filenamen aus Directory lesen:
      >&01 <ST >DU <15 >DU <0 >DU <BS >DU <FT {>DU <FN}*14
   vorherigen Filetyp+Filenamen aus Directory lesen:
      >&02 <ST >DU <15 >DU <0 >DU <BS >DU <FT {>DU <FN}*14
b) FDWRB: Block in File schreiben:
      >&10 <ST >L(B+2) <ST >H(B+2) <ST >KN <ST
           {>BB <ST}*B >DU <BS
   FDWRR: Datensatz in File schreiben:
      >&11 <ST >L(B+4) <ST >H(B+4) <ST >KN <ST >LD <ST >HD <ST
           {>BB <ST}*B >DU <BS
c) FDRDB: Block aus File lesen:
      >&20 <ST >L(B+2) <ST >H(B+2) <ST >KN <ST
           >DU <L(B+1) >DU <H(B+1) {>DU <BB}*B
   FDRDR: Datensatz aus File lesen:
      >&21 <ST >L(B+4) <ST >H(B+4) <ST >KN <ST >DU <LD >DU <HD
           >DU <L(B+1) >DU <H(B+1) {>DU <BB}*B
d) FDOPN: File ffnen (x=0: Ausgabe, =1: Eingabe, =2: Direktzugriff,
                        =4: Anhngen):
      >&3x <ST >18 <ST >0 <ST >0 <ST >KN <ST
           >FT <ST {>FN <ST}*14 >FT <ST >DU <LB
           >DU <HB >DU <BS {>DU <FN}*14 >???
e) FDCLO: File schlieen:
      >&40 <BS >KN <DU
f) File auf Disk lschen:
      >&50 <ST
~Seite 175
g) File auf Disk umbenennen:
      >&60 <ST >34 <ST >0 <ST >255 <ST {>FNOLD <ST}*14
           >255 <ST >0 <ST >FT <ST {>FNNEW <ST}*14 >0 <BS
h) Interface inaktivieren:
      >&80
i) Diskette formatieren (auf den Status mu lnger gewartet werden):
      >&90 <ST
j) Lnge eines Files holen:
      >&C0 <ST >KN <ST >DU <BS >DU <LD >DU <HD
-------------------------------------->	FILENAME+EXTENSION+KENNZEICHEN AUSGEBEN
					  (BENUTZT BEI FDD-OPEN)
D829: D104F468	LDW	$4,&h68F4	 $4/5 Zeiger auf WORK-Speicher
D82D: 271F	PHU	$31		 Kennzeichen 0 retten
D82F: 02E10309	LDJ	$1,$3,&hD83B	 Filekennzeichen nach $1 holen und ->
--  --  --  --  --  --  --  --  --  -->	FILENAME+EXTENSION AUSGEBEN
D833: D104F468	LDW	$4,&h68F4	 $4/5 Zeiger auf WORK-Speicher
D837: 0D01	NA	$1,#0		 Kennzeichen 255 retten
D839: 2701	PHU	$1		 |
D83B: 777CD8	CAL	&hD87C		 Byte ausgeben und Status verarbeiten
D83E: 42060E	LD	$6,14		 Zhler auf 14 setzen
D841: 116104	LD	$1,($4)		 Zeichen aus WORK-Speicher holen
D844: 7704D9	CAL	&hD904		 und an FDD ausgeben
D847: 8824	ADW	$4,#1		 Adresszeiger erhhen
D849: 0926	SB	$6,#1		 noch ein Zeichen auszugeben?
D84B: B48B	JR	NZ,&hD841	  dann Schleife ->
D84D: B72C	JR	&hD87A		 gerettetes Byte ausgeben
-------------------------------------->	WORT IN $5/6 AUF FDD AUSGEBEN
D84F: 826105	LDW	$1,$5		 Wort nach $1/2 holen
--  --  --  --  --  --  --  --  --  -->	WORT IN $1/2 AUF FDD AUSGEBEN
D852: 2702	PHU	$2		 High-Byte retten
D854: 777CD8	CAL	&hD87C		 ($1) an FDD ausgeben
D857: 777AD8	CAL	&hD87A		 ($2) an FDD ausgeben
D85A: 028120	LDJ	$1,#0,&hD87C	 0 an FDD ausgeben
-------------------------------------->	BLOCK-/DATENSATZBEFEHL AN FDD AUSGEBEN
D85D: 0421	ANC	$1,#1		 Datensatzbefehl?
D85F: B40B	JR	NZ,&hD86B	  dann ->
D861: 2702	PHU	$2		 Kanalnummer zwischenspeichern
D863: 777CD8	CAL	&hD87C		 Befehl an FDD ausgeben
D866: 774FD8	CAL	&hD84F		 Anzahl Bytes+2 an FDD ausgeben
D869: B710	JR	&hD87A		 Kanalnummer an FDD ausgeben ->
D86B: E70440	PHU3	$4		 Kanal- und Datensatznummer speichern
D86E: 777CD8	CAL	&hD87C		 Befehl an FDD ausgeben
D871: 774FD8	CAL	&hD84F		 Anzahl Bytes+4 an FDD ausgeben
D874: 777AD8	CAL	&hD87A		 Kanalnummer an FDD ausgeben
D877: 777AD8	CAL	&hD87A		 Datensatznummer an FDD ausgeben
D87A: 2F01	PPU	$1		 |
--  --  --  --  --  --  --  --  --  -->	BYTE AUSGEBEN UND STATUS VERARBEITEN
D87C: 7704D9	CAL	&hD904		 ($1) an FDD ausgeben
--  --  --  --  --  --  --  --  --  -->	FDD-STATUS AUSWERTEN
D87F: F0	RTN	Z		 kein Fehler aufgetreten? dann zurck
D880: D6404D69	PRE	IZ,&h694D	 IZ Zeiger auf ACJMP
D884: D10754EF	LDW	$7,&hEF54	 BRK-Routine der [disk  ]-Routine
D888: BB07	SBCW	(IZ+#0),$7	  aktiv?
D88A: D10261E5	LDW	$2,&hE561	 $2/3 Zeiger auf MEN-Einsprungroutine
D88E: 70C390	CAL	Z,&h90C3 [BRSTR]  dann Vektor ACJMP setzen
D891: D64069F0	PRE	IZ,&hF069	 IZ Zeiger auf Fehlerroutinentabelle
~Seite 176
D895: 0202	LD	$2,#0		 Fehleroffset auf Null setzen
D897: 0420	ANC	$0,#1		 Bit im FDD-Status nicht gesetzt?
D899: B407	JR	NZ,&hD8A1	  dann ->
D89B: 1840	BID	$0		 sonst Status herabschieben
D89D: 48820289	ADJ	$2,2,&hD897	 Fehleroffset erhhen und Schleife ->
D8A1: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
D8A3: A96F02	LDW	$15,(IZ+$2)	 Fehleradresse holen
D8A6: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
D8A9: DE0F	JP	($15)		 ber Register springen ->
-------------------------------------->	BASIC-ANWEISUNG FORMAT
D8AB: 7780E6	CAL	&hE680		 Interface-Flag holen
D8AE: 410155	SBC	$1,&h55		 ist kein MD-100 angeschlossen?
D8B1: 34D0AB	JP	NZ,&hABD0	  dann NR Error ->
D8B4: 770301	CAL	&h0103		 auf Ende der Anweisung berprfen
D8B7: 772ED9	CAL	&hD92E		 FDD nicht annahmebereit?
D8BA: B484	JR	NZ,&hD8B7	  dann Schleife ->
D8BC: D100040C	LDW	$0,&h0C04	 $0/1 Zeiger auf Ausgabe-Port
D8C0: 504090	ST	&h90,(#2)	 Formatier-Befehl absetzen
D8C3: 5620C0	PST	PD,&hC0		 Strobe setzen
D8C6: 772ED9	CAL	&hD92E		 FDD noch beschftigt?
D8C9: B084	JR	Z,&hD8C6	  dann Schleife ->
D8CB: 771ED9	CAL	&hD91E		 FDD-Status holen
D8CE: B7D0	JR	&hD87F		  und auswerten ->
-------------------------------------->	INTERFACE WEGEN LOW-BATTERY ABHNGEN
D8D0: 0D03	NA	$3,#0		 Interfaceflag auf "kein FA-7/MD-100"
D8D2: D640FA6B	PRE	IZ,&h6BFA	 IZ Zeiger auf Interfaceflag
D8D6: 2503	STD	$3,(IZ+#0)	 dieses setzen
D8D8: 77E9D8	CAL	&hD8E9		 FDD-Kanal schlieen
D8DB: 774CD9	CAL	&hD94C		 FCB suchen und schlieen
D8DE: 5620DC	PST	PD,%11011100	 PD zurcksetzen
D8E1: 37E4AB	JP	&hABE4		 zum LB Error
-------------------------------------->	SYSTEM-KANAL SCHLIESSEN
D8E4: 0203	LD	$3,#0		 Kanalnummer 0 setzen
--  --  --  --  --  --  --  --  --  -->	FDCLO: FDD-KANAL SCHLIESSEN
D8E6: 7791DA	CAL	&hDA91		 auf angeschlossenes MD-100 berprfen
D8E9: 420140	LD	$1,&h40		 Close-Befehl holen
D8EC: 7704D9	CAL	&hD904		 und an FDD ausgeben
D8EF: 0100	SBC	$0,#0		 Fehler aufgetreten?
D8F1: F4	RTN	NZ		  dann zurck
D8F2: 02E1030F	LDJ	$1,$3,&hD904	 sonst Kanalnummer ausgeben ->
-------------------------------------->	DREI BYTES VON FDD ABHOLEN
D8F6: 7702D9	CAL	&hD902		 Nullbyte auf FDD ausgeben
D8F9: 0243	LD	$3,#2		 $3 abgeholtes Zeichen
D8FB: 7702D9	CAL	&hD902		 Nullbyte auf FDD ausgeben
D8FE: 0244	LD	$4,#2		 $4 abgeholtes Zeichen
D900: 8923	SBW	$3,#1		 und $3/4 herabsetzen
--  --  --  --  --  --  --  --  --  -->	NULLBYTE AUF FDD AUSGEBEN
D902: 0201	LD	$1,#0		 Ausgaberegister auf Null setzen
--  --  --  --  --  --  --  --  --  -->	BYTE AUF FDD AUSGEBEN UND EINS ABHOLEN
D904: 2601	PHS	$1		 Ausgabebyte zwischenspeichern
D906: 8221	LDW	$1,#1		 Zhler auf 65534 setzen (invertiert)
D908: 772AD9	CAL	&hD92A		 FDD nicht annahmebereit?
D90B: B484	JR	NZ,&hD908	  dann Schleife ->
D90D: 2E02	PPS	$2		 Ausgabebyte wieder holen
D90F: 7715FF	CAL	&hFF15		 $0/1 Zeiger auf Ausgabe-Port &h0C04
D912: 1042	ST	$2,(#2)		 Ausgabebyte absetzen
~Seite 177
D914: 5620C0	PST	PD,%11000000	 Strobe setzen
D917: 8221	LDW	$1,#1		 Zhler auf 65534 setzen (invertiert)
D919: 772AD9	CAL	&hD92A		 FDD beschftigt?
D91C: B084	JR	Z,&hD919	  dann Schleife ->
D91E: D100030C	LDW	$0,&h0C03	 IZ Zeiger auf Eingabe-Port
D922: 1140	LD	$0,(#2)		 Byte abholen
D924: 5620C4	PST	PD,%11000100	 Strobe zurcksetzen
D927: 0100	SBC	$0,#0		 ist Byte (FDD-Status) ok? dann Z=1
D929: F7	RTN			 zurck
-------------------------------------->	DISK-BUSY-STATUS LESEN
D92A: 8821	ADW	$1,#1		 Zhler inkrementieren
D92C: B010	JR	Z,&hD93D	 Wartezeit abgelaufen? dann ->
D92E: 2601	PHS	$1		 Register $1 retten
D930: 1C01	GPO	$1		 Port holen
D932: 1C00	GPO	$0		 Port noch einmal holen
D934: 0141	SBC	$1,#2		 gelesene Werte nicht gleich?
D936: 2E01	PPS	$1		 Register $1 wieder holen
D938: B48B	JR	NZ,&hD92E	  dann Schleife ->
D93A: 0420	ANC	$0,#1		 auf Disk-BUSY-Status testen
D93C: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	RESET AUF INTERFACE GEBEN
D93D: 774CD9	CAL	&hD94C		 FDD-Kanal suchen und schlieen
D940: 5620D4	PST	PD,%11010100	 RESET-Bit setzen
D943: 77B6E3	CAL	&hE3B6		 Routine als Zeitverzgerung benutzen
D946: 5620C4	PST	PD,%11000100	 RESET-Bit wieder lschen
D949: 3720AC	JP	&hAC20		 und zum FM Error
-------------------------------------->	FDD-KANAL SUCHEN UND SCHLIESSEN
D94C: 771CD3	CAL	&hD31C		 $8/9 Zeiger auf ersten FCB
D94F: F0	RTN	Z		 alle FCBs geprft? dann zurck
D950: 9648	PRE	IZ,$8		 IZ Zeiger auf FCB
D952: 420402	LD	$4,2		 ist es FDD-Kanal?
D955: 7B0404	SBC	(IZ+4),$4	 |
D958: B006	JR	Z,&hD95F	  dann ->
D95A: 7734D3	CAL	&hD334		 Zeiger auf nchsten FCB setzen
D95D: B78F	JR	&hD94F		 und Schleife ->
D95F: 37B2D3	JP	&hD3B2		 FCB schlieen
-------------------------------------->	VORHERIGEN FILENAMEN AUS DISK-DIR. HOLEN
D962: 42810206	LDJ	$1,2,&hD96B	 Befehl holen und ->
--  --  --  --  --  --  --  --  --  -->	NCHSTEN FILENAMEN AUS DISK-DIR. HOLEN
D966: 02A103	LDJ	$1,#1,&hD96B	 Befehl holen und ->
--  --  --  --  --  --  --  --  --  -->	ERSTEN FILENAMEN AUS DISK-DIR. HOLEN
D969: 0201	LD	$1,#0		 Befehl holen
D96B: 777CD8	CAL	&hD87C		 Byte an FDD ausgeben und Status verarb.
D96E: 77F6D8	CAL	&hD8F6		 16bit-Zhler von FDD lesen
D971: 0420	ANC	$0,#1		 ist Directory zu Ende?
D973: 34DAD9	JP	NZ,&hD9DA	  dann ->
D976: D1055A6F	LDW	$5,&h6F5A	 IZ Zeiger auf FDD-Filenamenspeicher
D97A: 7700D9	CAL	&hD900		 Zhler herabsetzen und Byte holen
D97D: 106005	ST	$0,($5)		 im Puffer speichern
D980: 8825	ADW	$5,#1		 Adresszeiger erhhen
D982: 0103	SBC	$3,#0		 noch mehr Bytes zu holen?
D984: B48B	JR	NZ,&hD97A	  dann Schleife ->
D986: F7	RTN			 zurck
~Seite 178
-------------------------------------->	SYSTEM-FDD-KANAL FFNEN
D987: 026316	LD	$3,$22		 Filetyp aus $22 holen
D98A: 028014	LDJ	$0,#0,&hD9A0	 Kanalnummer 0 setzen und ->
--  --  --  --  --  --  --  --  --  -->	FFNEN EINES OPEN-FDD-KANALS
D98D: D640B16F	PRE	IZ,&h6FB1	 IZ Zeiger auf Open-FCB-Kanalnummer
D991: 3B1E	SBC	(IZ+#0),$30	 ist es der System-Kanal?
D993: B58D	JR	C,&hD987	  dann ->
D995: 420324	LD	$3,36		 Filetyp auf "S" setzen
D998: 410131	SBC	$1,&h31		 nicht Direktzugriff?
D99B: B404	JR	NZ,&hD9A0	  dann ->
D99D: 4203A4	LD	$3,164		 Filetyp auf "R" setzen
--  --  --  --  --  --  --  --  --  -->	FDOPN: FFNEN EINES FDD-KANALS
D9A0: 610024	ST	$0,(IZ+36)	 Kanalnummer ablegen
D9A3: A701	PHUW	$1		 diese und Zugriffsart zwischenspeichern
D9A5: 777CD8	CAL	&hD87C		 Zugriffsart ausgeben, Status verarb.
D9A8: D1011200	LDW	$1,18		 Lnge des Headers setzen
D9AC: 7752D8	CAL	&hD852		 diese an FDD ausgeben
D9AF: 777AD8	CAL	&hD87A		 Kanalnummer an FDD ausgeben
D9B2: 7729D8	CAL	&hD829		 Filename+Ext+Filetyp ausgeben
D9B5: 77F6D8	CAL	&hD8F6		 File-Lnge und Befehlsstatus holen
D9B8: C97878	SBB4	$24,$24		 Blocklnge lschen
D9BB: 2F05	PPU	$5		 Zugriffsart wieder holen
D9BD: 440020	ANC	$0,&h20		 war File schon geffnet?
D9C0: 3428AC	JP	NZ,&hAC28	 dann OP Error
D9C3: 770ADB	CAL	&hDB0A		 Passwort-Bit abfragen
D9C6: 410532	SBC	$5,&h32		 Filemodus Eingabe oder APPEND-Ausgabe?
D9C9: 7104DB	CAL	NC,&hDB04	  dann prfen, ob File gefunden wurde
D9CC: 8123	SBCW	$3,#1		 keine Bytes mehr zu holen?
D9CE: F5	RTN	C		  dann zurck
D9CF: 7700D9	CAL	&hD900		 $3/4 herabsetzen & Byte von FDD abholen
D9D2: 61001A	ST	$0,(IZ+26)	 und als Filetyp zwischenspeichern
D9D5: 410534	SBC	$5,&h34		 Filemodus APPEND-Ausgabe?
D9D8: B009	JR	Z,&hD9E2	  dann ->
D9DA: 8123	SBCW	$3,#1		 schon alle Bytes berlesen?
D9DC: F5	RTN	C		  dann zurck
D9DD: 7700D9	CAL	&hD900		 $3/4 herabsetzen & Byte von FDD abholen
D9E0: B787	JR	&hD9DA		 und Schleife ->
D9E2: 410024	SBC	$0,36		 Filetyp nicht "S"?
D9E5: B40D	JR	NZ,&hD9F3	  dann ->
D9E7: 42050F	LD	$5,15		 Zhler auf 15 Bytes setzen
D9EA: 7700D9	CAL	&hD900		 $3/4 herabsetzen & Byte von FDD abholen
D9ED: 0925	SB	$5,#1		 Zhler herabsetzen
D9EF: B486	JR	NZ,&hD9EA	 noch mehr berlesen? dann Schleife ->
D9F1: B778	JR	&hDA6A		 Rest in den Speicher einlesen ->
D9F3: 77DAD9	CAL	&hD9DA		 Bytes bis zum Schlu berlesen
D9F6: 690324	LD	$3,(IZ+36)	 Kanalnummer holen
D9F9: 77E6D8	CAL	&hD8E6		 Kanal schlieen
D9FC: 372CAC	JP	&hAC2C		 und zum AM Error
-------------------------------------->	GANZE SPEICHER-SEITE ZUM FDD-KANAL
D9FF: D1070001	LDW	$7,256		 Blocklnge festlegen
DA03: 0202	LD	$2,#0		 Kanalnummer Null setzen
~Seite 179
--  --  --  --  --  --  --  --  --  -->	FDWRB: BLOCK AUF FDD-KANAL AUSGEBEN
DA05: D1050200	LDW	$5,2		 Lnge des Headers setzen
DA09: 7791DA	CAL	&hDA91		 auf angeschlossenes MD-100 berprfen
DA0C: 4281100B	LDJ	$1,&h10,&hDA1A	 Befehlsnummer setzen und ->
--  --  --  --  --  --  --  --  --  -->	FDWRR: DATENSATZ AUF FDD-KANAL AUSGEBEN
DA10: D1050400	LDW	$5,4		 Lnge des Headers setzen
DA14: 7791DA	CAL	&hDA91		 auf angeschlossenes MD-100 berprfen
DA17: 420111	LD	$1,&h11		 Befehlsnummer setzen
DA1A: 886507	ADW	$5,$7		 Anzahl der auszugebenden Bytes setzen
DA1D: 775DD8	CAL	&hD85D		 Block-/Datensatzbefehl an FDD ausgeben
DA20: 8927	SBW	$7,#1		 Zhler herabsetzen
DA22: B508	JR	C,&hDA2B	 alle Bytes ausgegeben? dann ->
DA24: 2A01	LDI	$1,(IX+#0)	 Byte aus dem Speicher holen
DA26: 777CD8	CAL	&hD87C		 Byte ausgeben und Status verarbeiten
DA29: B78A	JR	&hDA20		 und Schleife ->
--  --  --  --  --  --  --  --  --  -->	WORT UND BEFEHLSSTATUS VON FDD ABHOLEN
DA2B: 77F6D8	CAL	&hD8F6		 Dummy-Wort und Befehlsstatus holen
DA2E: 0040	ADC	$0,#2		 war Kanal nicht geffnet?
DA30: B52A	JR	C,&hDA5B	  dann OP Error ->
DA32: 440040	ANC	$0,&h40		 war es kein Ausgabekanal?
DA35: B42B	JR	NZ,&hDA61	  dann AM Error ->
DA37: 440004	ANC	$0,4		 kein Schreibfehler aufgetreten?
DA3A: F0	RTN	Z		  dann zurck
DA3B: 37D4AB	JP	&hABD4		 sonst RW Error
-------------------------------------->	FDRDB: BYTE VOM FDD-KANAL HOLEN
DA3E: D1050200	LDW	$5,2		 Lnge des Headers setzen
DA42: 7791DA	CAL	&hDA91		 auf angeschlossenes MD-100 berprfen
DA45: 4281200B	LDJ	$1,&h20,&hDA53	 Befehl setzen und ->
-------------------------------------->	FDRDR: Datensatz von FDD-Kanal holen
DA49: D1050400	LDW	$5,4		 Lnge des Headers setzen
DA4D: 7791DA	CAL	&hDA91		 auf angeschlossenes MD-100 berprfen
DA50: 420121	LD	$1,&h21		 Befehl setzen
DA53: 775DD8	CAL	&hD85D		 Block-/Datensatzbefehl an FDD ausgeben
DA56: 77F6D8	CAL	&hD8F6		 Blocklnge und Befehlsstatus abholen
DA59: 0040	ADC	$0,#2		 war Kanal nicht geffnet?
DA5B: 3528AC	JP	C,&hAC28	  dann OP Error
DA5E: 440040	ANC	$0,&h40		 war es kein Eingabekanal?
DA61: 342CAC	JP	NZ,&hAC2C	  dann AM Error
DA64: 440004	ANC	$0,4		 keine Daten mehr?
DA67: 3410AC	JP	NZ,&hAC10	  dann DA Error
--  --  --  --  --  --  --  --  --  -->	BLOCKLNGE RETTEN UND BLOCK IN SPEICHER
DA6A: 827A03	LDW	$26,$3		 Lnge des Blocks retten
--  --  --  --  --  --  --  --  --  -->	BLOCK VON FDD IN DEN SPEICHER EINLESEN
DA6D: 8123	SBCW	$3,#1		 schon alle Bytes geholt?
DA6F: F5	RTN	C		  dann zurck
DA70: 7700D9	CAL	&hD900		 $3/4 herabsetzen & Byte von FDD abholen
DA73: 2200	STI	$0,(IX+#0)	 dieses in den Speicher bringen
DA75: B789	JR	&hDA6D		 und Schleife ->
-------------------------------------->	BLOCK EINES FILES VON FDD EINLESEN
								(FR DISK-LOAD)
DA77: D1012000	LDW	$1,&h0020	 Befehl fr Blocklesen setzen
DA7B: D1050200	LDW	$5,2		 Lnge des Headers setzen
DA7F: 775DD8	CAL	&hD85D		 Block-/Datensatzbefehl an FDD ausgeben
DA82: 772BDA	CAL	&hDA2B		 Blocklnge und Befehlsstatus abholen
DA85: 026504	LD	$5,$4		 High-Byte der gelesenen Blockgre kop.
DA88: BF03	SBW	(IZ+#0),$3	 Filelnge um geles. Blockgr. verringern
~Seite 180
DA8A: B19E	JR	NC,&hDA6D	  dann Block in den Speicher lesen ->
DA8C: 961E	PRE	IX,$30		 IX auf ROM-Speicher setzen
DA8E: 0285A3	LDJ	$5,#0,&hDA6D	 EOF-Flag setzen und Block berlesen ->
-------------------------------------->	AUF ANGESCHLOSSENES MD-100 BERPRFEN
DA91: D100FA6B	LDW	$0,&h6BFA	 $0/1 Zeiger auf Interface-Flag
DA95: 1140	LD	$0,(#2)		 dieses holen
DA97: 410055	SBC	$0,85		 ist MD-100-Interface angeschlossen?
DA9A: F0	RTN	Z		  dann zurck
DA9B: AE00	PPSW	$0		 sonst Rcksprungadresse lschen
DA9D: F7	RTN			  und zurck
-------------------------------------->	FILELNGE FESTSTELLEN (FR LOF-FUNKTION)
DA9E: 4201C0	LD	$1,&hC0		 Befehl setzen
DAA1: 2602	PHS	$2		 Kanalnummer zwischenspeichern
DAA3: 777CD8	CAL	&hD87C		 Byte ausgeben und Status verarbeiten
DAA6: 2E01	PPS	$1		 Kanalnummer wieder holen
DAA8: 777CD8	CAL	&hD87C		 diese ausgeben und Status verarbeiten
DAAB: 7702D9	CAL	&hD902		 Befehlsstatus von FDD abholen
DAAE: 2600	PHS	$0		 und zwischenspeichern
DAB0: 7702D9	CAL	&hD902		 Low-Byte von FDD abholen
DAB3: 024F	LD	$15,#2		 und nach $15 bringen
DAB5: 7702D9	CAL	&hD902		 High-Byte von FDD abholen
DAB8: 0250	LD	$16,#2		 und nach $16 bringen
DABA: 2E00	PPS	$0		 Befehlsstatus wieder holen
DABC: 1860	BIU	$0		 war Kanal nicht geffnet?
DABE: 3528AC	JP	C,&hAC28	  dann OP Error
DAC1: 37F49A	JP	&h9AF4 [CNVR]	 Wort-Wert in FLP-Zahl wandeln
-------------------------------------->	REGISTER $0..15 ALS ZEICHEN AUSGEBEN
DAC4: 271E	PHU	$30		 Endekennzeichen abspeichern
DAC6: E70FE0	PHU8	$15		 Register $15..0 auf den Userstack
DAC9: E707E0	PHU8	$7		  ablegen
DACC: 2F10	PPU	$16		 ein Zeichen abholen
DACE: 0130	SBC	$16,#1		 Endekennzeichen?
DAD0: F0	RTN	Z		  dann zurck
DAD1: 77D795	CAL	&h95D7 [OUTAC]	 Zeichen in $16 ausgeben
DAD4: B789	JR	&hDACC		 und Schleife ->
-------------------------------------->	FILE AUF DISK LSCHEN
DAD6: 420150	LD	$1,&h50		 Befehl setzen
DAD9: 777CD8	CAL	&hD87C		 und an FDD ausgeben
DADC: D1011100	LDW	$1,17		 Lnge des Headers setzen
DAE0: 7752D8	CAL	&hD852		 und diese an FDD ausgeben
DAE3: B71A	JR	&hDAFE		 und ->
-------------------------------------->	FILE AUF DISK UMBENENNEN
DAE5: 420160	LD	$1,&h60		 Befehl setzen
DAE8: 777CD8	CAL	&hD87C		 und an FDD ausgeben
DAEB: D1012200	LDW	$1,34		 Lnge des Headers setzen
DAEF: 7752D8	CAL	&hD852		 und diese an FDD ausgeben
DAF2: D104B46F	LDW	$4,&h6FB4	 Zeiger auf Open-FCB-Filename
DAF6: 7737D8	CAL	&hD837		 diesen an FDD ausgeben
DAF9: 0201	LD	$1,#0		 Null-Byte holen
DAFB: 777CD8	CAL	&hD87C		 und an FDD ausgeben
DAFE: 7733D8	CAL	&hD833		 Filename aus WORK-Speicher ausgeben
DB01: 77F6D8	CAL	&hD8F6		 Blocklnge und Befehlsstatus abholen
~Seite 181
--  --  --  --  --  --  --  --  --  --	FILE NICHT GEFUNDEN?
DB04: 440010	ANC	$0,16		 File nicht gefunden?
DB07: 30E0AB	JP	Z,&hABE0	  dann NF Error
--  --  --  --  --  --  --  --  --  --	PASSWORT-SCHUTZ ABFRAGEN
DB0A: 440002	ANC	$0,2		 ist Passwort definiert?
DB0D: 340CAC	JP	NZ,&hAC0C	  dann PR Error
DB10: 440008	ANC	$0,8
DB13: F7	RTN			 zurck

=== VERSCHIEDENE BASIC-SYSTEM-BEFEHLE UND -ANWEISUNGEN =========================
-------------------------------------->	BASIC-ANWEISUNG DATE$=
DB14: 77EAE3	CAL	&hE3EA		 String lesen und bereitstellen
DB17: 7752ED	CAL	&hED52		 Datum aus dem String lesen
DB1A: B110	JR	NC,&hDB2B	 Fehler? dann FC Error
DB1C: D600AD6B	PRE	IX,&h6BAD	 IX Zeiger auf Rechner-Datum
DB20: E00340	ST3	$3,(IX+#0)	 dort speichern
DB23: B711	JR	&hDB35		 und ->
-------------------------------------->	BASIC-ANWEISUNG TIME$=
DB25: 77EAE3	CAL	&hE3EA		 String lesen und bereitstellen
DB28: 77E8ED	CAL	&hEDE8		 Uhrzeit aus dem String lesen
DB2B: 31FCAB	JP	NC,&hABFC	 Fehler? dann FC Error
DB2E: D600B06B	PRE	IX,&h6BB0	 IX Zeiger auf Rechner-Uhrzeit
DB32: F9	CLT			 Sekunden auf Null setzen
DB33: A000	STW	$0,(IX+#0)	 Rechner-Uhrzeit setzen
DB35: AF00	PPUW	$0		 Textzeiger wieder holen
DB37: 9600	PRE	IX,$0		  und setzen
DB39: F7	RTN			 zurck
-------------------------------------->	BASIC-BEFEHL SYSTEM
DB3A: 770301	CAL	&h0103		 auf Ende des Befehls berprfen
DB3D: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
DB3F: D6409BDB	PRE	IZ,&hDB9B	 IZ Zeiger auf SYSTEM-Text
DB43: EB00E0	LDI8	$0,(IZ+#0)	 diesen in die Register $0-15
DB46: EB08E0	LDI8	$8,(IZ+#0)	 |
DB49: E916C0	LD7	$22,(IZ+#0)	 und $22-28 holen
DB4C: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
DB4F: D640F368	PRE	IZ,&h68F3	 IZ Zeiger auf Winkelmodus
DB53: 2D06	LDD	$6,(IZ+#0)	 diesen hinter den Text "ANGLE" holen
DB55: 4E0630	OR	$6,"0"		 und in ASCII-Ziffer wandeln
DB58: 77C4DA	CAL	&hDAC4		 Register $0..15 als Zeichen ausgeben
DB5B: D6402F69	PRE	IZ,&h692F	 IZ Zeiger auf Speicherverwaltung
DB5F: AB10	LDIW	$16,(IZ+#0)	 alle Zeiger holen und in
DB61: EB06A0	LDI6	$6,(IZ+#0)	  geeigneter Weise zur schnellen
DB64: 6D000B	LDD	$0,(IZ+&h0B)	  Ausgabe im Userstack ablegen
DB67: ED0360	LDD4	$3,(IZ+#0)	  |
DB6A: E70360	PHU4	$3		  |
DB6D: ADA1	LDDW	$1,(IZ-#1)	  |
DB6F: 6D0408	LDD	$4,(IZ+8)	  |
DB72: E90460	LD4	$4,(IZ+#0)	  |
DB75: E70BE0	PHU8	$11		 restliche Free-Parameter ablegen
DB78: E71CC0	PHU7	$28		 Text "Free" speichern
DB7B: A703	PHUW	$3		 CLEAR-Parameter speichern
DB7D: A711	PHUW	$17		 |
DB7F: 77C7DB	CAL	&hDBC7		 Stringspeicherplatz ausgeben
DB82: 77B2DB	CAL	&hDBB2		 "," & Masch.sprache-Speicher ausgeben
DB85: 77B2DB	CAL	&hDBB2		 "," & Gesamtsystemspeicher ausgeben
DB88: 77C1DB	CAL	&hDBC1		 Free-Text und -Speicher ausgeben
~Seite 182
DB8B: D11C563A	LDW	$28,"V:"	 Text "V:" holen
DB8F: 77BEDB	CAL	&hDBBE		  & mit Gre des Var.speichers ausgeben
DB92: 421C24	LD	$28,"$"		 Text "$:" holen
DB95: 77BEDB	CAL	&hDBBE		  & mit Gre des Stringspeichers ausg.
DB98: 37CE95	JP	&h95CE [OUTCR]	 CRLF ausgeben
-------------------------------------->	TEXTE FR SYSTEM-BEFEHL
DB9B: 414E474C45202020			 "ANGLE   "
DBA3: 20434C4541522000			 " CLEAR ",0
DBAB: 0D465245452001			 CR,"FREE ",1
-------------------------------------->	GRSSE DES ML-/SYSTEMSPEICHERS AUSGEBEN
DBB2: 42102C	LD	$16,","		 Komma holen
DBB5: 77D795	CAL	&h95D7 [OUTAC]	 und ausgeben
DBB8: AF02	PPUW	$2		 Wort-Wert holen
DBBA: 4983700C	SBJ	$3,&h70,&hDBC9	 Systemspeicher-Beginn abziehen und ->
-------------------------------------->	GRSSE DES STRING-/VAR.SPEICHERS AUSG.
DBBE: E71E60	PHU4	$30		 Text speichern
DBC1: 77CCDA	CAL	&hDACC		 gespeicherten Text ausgeben
DBC4: EF0060	PPU4	$0		 Zeiger wieder holen
-------------------------------------->	GRSSE EINES BEREICHS AUSGEBEN
DBC7: 8942	SBW	$2,#2		 Gre des Bereichs bestimmen
DBC9: 421030	LD	$16,"0"		 ASCII-Ziffer Null holen
DBCC: 8122	SBCW	$2,#1		 ist Bereich leer?
DBCE: 35D795	JP	C,&h95D7 [OUTAC]  dann ausgeben ->
DBD1: D640566F	PRE	IZ,&h6F56	 IZ Zeiger auf aktuelle Zeilennummer
DBD5: A900	LDW	$0,(IZ+#0)	 diese holen
DBD7: A601	PHSW	$1		  und zwischenspeichern
DBD9: A102	STW	$2,(IZ+#0)	 Wort-Wert dort speichern
DBDB: 7761AD	CAL	&hAD61		 Wort-Wert im Klartext ausgeben
DBDE: AE05	PPSW	$5		 Zeilennummer wieder holen
DBE0: 3754C0	JP	&hC054		  und speichern ->
-------------------------------------->	BASIC-BEFEHL PASS
DBE3: 779EE3	CAL	&hE39E		 richtigen Betriebsmodus prfen
DBE6: 77EAE3	CAL	&hE3EA		 String lesen und bereitstellen
DBE9: C968E8	SBB8	$8,$8		 Passwort-Speicher lschen
DBEC: 42800804	LDJ	$0,8,&hDBF3	 Zhler auf 8 Bytes setzen und ->
DBF0: DA4FE0	BYD8	$15		 Passwort-Speicher weiterschieben
DBF3: 0111	SBC	$17,#0		 String zu Ende?
DBF5: B005	JR	Z,&hDBFB	  dann ->
DBF7: 0931	SB	$17,#1		 Stringlnge herabsetzen
DBF9: 2A0F	LDI	$15,(IX+#0)	 Zeichen aus String lesen
DBFB: 0920	SB	$0,#1		 Maximallnge herabsetzen
DBFD: B48E	JR	NZ,&hDBF0	 noch nicht Null? dann einschieben ->
DBFF: 0108	SBC	$8,#0		 Leerstring angegeben?
DC01: 30C0AB	JP	Z,&hABC0	  dann SN Error
DC04: 7720B7	CAL	&hB720		 Start- und Endadr. des Programms holen
DC07: DB48E0	INV8	$8		 Passwort verschlsseln
DC0A: 6C0011	LDD	$0,(IX+17)	 erstes Zeichen des Passworts holen
DC0D: 0020	ADC	$0,#1		 war File nicht geschtzt?
DC0F: B00C	JR	Z,&hDC1C	  dann ->
DC11: E821C0	LD7	$1,(IX+#1)	 restliches Passwort holen
DC14: CF48E0	XR8	$8,#2		 stimmt es nicht mit dem angegebenen
DC17: 340CAC	JP	NZ,&hAC0C	  berein? dann PR Error
DC1A: 0928	SB	$8,#1		 $8=&hFF f. gelschtes Passwort setzen
DC1C: E008E0	ST8	$8,(IX+#0)	 gesamtes Passwort in den Fileheader
DC1F: B707	JR	&hDC27		 und zurck in den Direktmodus ->
~Seite 183
-------------------------------------->	BASIC-BEFEHL SAVE
DC21: 779EE3	CAL	&hE39E		 richtigen Betriebsmodus prfen
DC24: 776FDC	CAL	&hDC6F		 Programm speichern
DC27: 37A390	JP	&h90A3		 zurck in den Direktmodus ->
-------------------------------------->	BASIC-BEFEHL VERIFY
DC2A: 7793D3	CAL	&hD393		 alle Kanle schlieen
DC2D: 77C6AD	CAL	&hADC6		 Direktmodus setzen
DC30: 4285030E	LDJ	$5,3,&hDC41	 VERIFY-Modus setzen und ->
-------------------------------------->	BASIC-BEFEHL LOAD
DC34: 779EE3	CAL	&hE39E		 richtigen Betriebsmodus prfen
DC37: 775EDE	CAL	&hDE5E		 Programm laden
DC3A: B794	JR	&hDC27		 und zurck in den Direktmodus ->
-------------------------------------->	BASIC-BEFEHL MERGE
DC3C: 779EE3	CAL	&hE39E		 richtigen Betriebsmodus prfen
DC3F: 0225	LD	$5,#1		 MERGE-Modus setzen
DC41: 7760DE	CAL	&hDE60		 Programm anhngen/vergleichen
DC44: B79E	JR	&hDC27		 und zurck in den Direktmodus ->
--------------------------------------	REST VON SAVE
DC46: 012A	SBC	$10,#1		 "A"-Option nicht gesetzt?
DC48: B459	JR	NZ,&hDCA2	 dann ->
DC4A: 372CAC	JP	&hAC2C		 sonst AM Error
--  --  --  --  --  --  --  --  --  --	REST VON SAVE-RAM
DC4D: 8940	SBW	$0,#2		 Offsets setzen
DC4F: 411110	SBC	$17,16		 kein "B"-File?
DC52: B404	JR	NZ,&hDC57	  dann ->
DC54: 420002	LD	$0,2		 Offset auf BASIC-Directory setzen
DC57: D6404769	PRE	IZ,&h6947	 IZ Zeiger auf Directory-Untergenze
DC5B: A94F	LDW	$15,(IZ+#2)	 entsprechende Dir.-Untergrenze holen
DC5D: 77B6E3	CAL	&hE3B6		 Passwort und ML-Adressen in den
DC60: 774890	CAL	&h9048 [BUPDN]	  Fileheader bringen
DC63: 411110	SBC	$17,16		 kein "M"-File?
DC66: B167	JR	NC,&hDCCE	  dann ->
DC68: 964F	PRE	IZ,$15		 IZ Zeiger auf Fileheader
DC6A: 651105	STD	$17,(IZ+5)	 Filetyp setzen
DC6D: B760	JR	&hDCCE		 und ->
--  --  --  --  --  --  --  --  --  -->	PROGRAMM SPEICHERN
DC6F: A607	PHSW	$7		 Zeiger auf Fileheader zwischenspeichern
DC71: 770CE4	CAL	&hE40C		 Filename lesen und auswerten
DC74: 420A03	LD	$10,3		 Kennzeichen fr RS232C-ASCII setzen
DC77: 410B02	SBC	$11,2		 RS232C angesprochen?
DC7A: B010	JR	Z,&hDC8B	  dann ->
DC7C: 020A	LD	$10,#0		 Kennzeichen fr Binr setzen
DC7E: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
DC81: B409	JR	NZ,&hDC8B	 war keins da? dann ->
DC83: 420141	LD	$1,"A"		 sonst Kennbuchstabe "A" im Text
DC86: 775601	CAL	&h0156		  berlesen
DC89: 022A	LD	$10,#1		 Kennzeichen fr ASCII setzen
DC8B: 770301	CAL	&h0103		 auf Ende des Befehls berprfen
DC8E: AE08	PPSW	$8		 Zeiger auf Fileheader wieder holen
--  --  --  --  --  --  --  --  --  -->	FILE SPEICHERN
DC90: 9608	PRE	IX,$8		 IX Zeiger auf Fileheader
DC92: E82380	LD5	$3,(IX+#1)	 Adressen und Filetyp holen
DC95: 896503	SBW	$5,$3		 Lnge berechnen
DC98: 8125	SBCW	$5,#1		 File leer?
DC9A: F0	RTN	Z		  dann zurck
DC9B: 410710	SBC	$7,16		 kein "B"-File?
~Seite 184
DC9E: B4D9	JR	NZ,&hDC46	  dann ->
DCA0: 0C2A	AN	$10,#1		 ASCII-Speicherung filtern
DCA2: 012A	SBC	$10,#1		 Binr speichern?
DCA4: B409	JR	NZ,&hDCAE	  dann ->
DCA6: 9E06	GRE	IX,$6		 Zeiger auf Fileheader ablegen
DCA8: 779CB6	CAL	&hB69C		 auf Passwort-Schutz prfen
DCAB: 420724	LD	$7,36		 Filetyp "S" setzen
DCAE: E60B80	PHS5	$11		 Parameter in $7-11 zwischenspeichern
DCB1: 779AE0	CAL	&hE09A		 System-Kanal zur Ausgabe ffnen
DCB4: EE1180	PPS5	$17		 Parameter nach $17-21 holen
DCB7: 9612	PRE	IX,$18		 IX Zeiger auf Fileheader
DCB9: 411370	SBC	$19,&h70	 nicht der Systemfileheader?
DCBC: 7120B7	CAL	NC,&hB720	  dann IX Zeiger auf Aktivfileheader
DCBF: E83960	LD4	$25,(IX+#1)	 Start- und Endadresse des Files holen
DCC2: 0135	SBC	$21,#1		 ins RAM speichern?
DCC4: B5F8	JR	C,&hDC4D	  dann ->
DCC6: B407	JR	NZ,&hDCCE	 auch nicht auf Disk? dann ->
DCC8: 411124	SBC	$17,36		 Filetyp ist nicht "S"?
DCCB: 74FFD9	CAL	NZ,&hD9FF	  dann ganze Speicherseite an FDD ausg.
DCCE: D640706F	PRE	IZ,&h6F70	 IZ Zeiger auf MT-Blocklnge und -Flags
DCD2: C96464	SBB4	$4,$4		 alle Flags lschen
DCD5: E30440	STI3	$4,(IZ+#0)	 und speichern
DCD8: 2514	STD	$20,(IZ+#0)	 ASCII-Flag speichern
DCDA: 9619	PRE	IX,$25		 IX Zeiger auf Quellfilebeginn
DCDC: 0134	SBC	$20,#1		 in ASCII speichern?
DCDE: B042	JR	Z,&hDD21	  dann ->
DCE0: 0115	SBC	$21,#0		 nicht ins RAM speichern?
DCE2: B417	JR	NZ,&hDCFA	  dann ->
DCE4: 82601B	LDW	$0,$27		 Lnge des Files feststellen
DCE7: 896019	SBW	$0,$25		 |
DCEA: A61A	PHSW	$26		 Filebeginn speichern
DCEC: D6403E6E	PRE	IZ,&h6E3E	 IZ Zeiger auf FCB-Speicherzeiger
DCF0: A919	LDW	$25,(IZ+#0)	 diesen holen
DCF2: 770BE0	CAL	&hE00B		 File-Lnge setzen, Filespeicher ffnen
DCF5: AE02	PPSW	$2		 Quellfilebeginn wieder holen
DCF7: 3776DF	JP	&hDF76		 Speicherblock verschieben und zurck ->
DCFA: 411503	SBC	$21,3		 nicht auf MT speichern?
DCFD: B40D	JR	NZ,&hDD0B	  dann ->
DCFF: D6401C6E	PRE	IZ,&h6E1C	 IZ Zeiger auf MT-Filetyp
DD03: 2D00	LDD	$0,(IZ+#0)	 diesen holen
DD05: 410024	SBC	$0,36		 kein "S"-File?
DD08: 7466E2	CAL	NZ,&hE266	 dann Datenblock#0 an MT-Kanal ausgeben
DD0B: 9E00	GRE	IX,$0		 Zeiger in Quellfile ablegen
DD0D: 8820	ADW	$0,#1		 Adresse erhhen
DD0F: 0135	SBC	$21,#1		 auf Disk speichern?
DD11: B036	JR	Z,&hDD48	  dann ->
DD13: 815B	SBCW	$27,#2		 schon am Quellfile-Ende angekommen?
DD15: B048	JR	Z,&hDD5E	  dann ->
DD17: 2A10	LDI	$16,(IX+#0)	 nchstes Zeichen aus Quellfile lesen
DD19: 77D795	CAL	&h95D7 [OUTAC]	 und ausgeben
DD1C: 770792	CAL	&h9207 [BKCK]	 auf OFF, C.Boot und BRK prfen
DD1F: B795	JR	&hDD0B		 und Schleife ->
~Seite 185
--  --  --  --  --  --  --  --  --  --	BASIC-ASCII-SPEICHERUNG
DD21: 2615	PHS	$21		 Gerteadresse zwischenspeichern
DD23: 8926	SBW	$6,#1		 Endzeilennummer auf 65535 setzen
DD25: 77AFE6	CAL	&hE6AF		 IZ Zeiger auf Direktmodusflag
DD28: A132	STW	$18,(IZ+#1)	 Aktivfileheaderzeiger besetzen
DD2A: 770CB6	CAL	&hB60C		 Bereich auflisten
DD2D: 2E15	PPS	$21		 Gerteadresse wieder holen
DD2F: 411503	SBC	$21,3		 Speicherung auf MT?
DD32: 420702	LD	$7,2		 $7 Kennzeichen fr letzter Block
DD35: D1050200	LDW	$5,2		 Blocklnge auf 2 setzen
DD39: 7066E2	CAL	Z,&hE266	  dann Datenblock#2 auf MT ausgeben
DD3C: 7756D4	CAL	&hD456		 System-FCB schlieen
DD3F: 773892	CAL	&h9238		 I/O-Aktiv-Flag lschen
DD42: 7747E3	CAL	&hE347		 Kanal physikalisch schlieen
DD45: 37E190	JP	&h90E1		 zurck zum Direktmodus ->
--  --  --  --  --  --  --  --  --  --	SPEICHERUNG AUF DISK
DD48: 82671B	LDW	$7,$27		 $7/8 Lnge des Restfiles bestimmen
DD4B: 8947	SBW	$7,#2		 |
DD4D: 0128	SBC	$8,#1		 weniger als eine Speicherseite?
DD4F: B506	JR	C,&hDD56	  dann ->
DD51: 77FFD9	CAL	&hD9FF		 ganze Speicherseite an FDD ausgeben
DD54: B7CA	JR	&hDD0B		 und Schleife ->
DD56: 7703DA	CAL	&hDA03		 Rest an FDD ausgeben
DD59: 77E4D8	CAL	&hD8E4		 System-Kanal schlieen
DD5C: B79E	JR	&hDD3F		 und ->
--  --  --  --  --  --  --  --  --  --	AM QUELLFILE-ENDE ANGEKOMMEN
DD5E: 0435	ANC	$21,#1		 Speicherung nach RAM oder RS232C?
DD60: B0A5	JR	Z,&hDD3C	  dann schlieen ->
DD62: D6401C6E	PRE	IZ,&h6E1C	 IZ Zeiger auf MT-Filetyp
DD66: 2D00	LDD	$0,(IZ+#0)	 Filetyp holen
DD68: 410024	SBC	$0,36		 war es kein "S"-File?
DD6B: 74B1E1	CAL	NZ,&hE1B1	  dann Prfsumme auf MT-Port ausgeben
DD6E: B7B3	JR	&hDD3C		 und schlieen ->
-------------------------------------->	BASIC-BEFEHL BLOAD
DD70: 770CE4	CAL	&hE40C		 Filename lesen und auswerten
DD73: 77C7E3	CAL	&hE3C7		 RS232C verbieten, MT-Kanal prfen
DD76: E60D40	PHS3	$13		 Quellparameter zwischenspeichern
DD79: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
DD7C: 022E	LD	$14,#1		 Ladeverschiebungsflag lschen
DD7E: B40B	JR	NZ,&hDD8A	 war kein Komma da? dann ->
DD80: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
DD83: B00D	JR	Z,&hDD91	 war eins da? dann ->
DD85: 77A398	CAL	&h98A3		 Wort-Wert aus Text lesen
DD88: 020E	LD	$14,#0		 Ladeverschiebungsflag setzen
DD8A: 020A	LD	$10,#0		 RUN-Flag lschen
DD8C: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
DD8F: B409	JR	NZ,&hDD99	 war keins da? dann ->
DD91: 420152	LD	$1,"R"		 Kennzeichen fr RUN holen
DD94: 022A	LD	$10,#1		 RUN-Flag setzen
DD96: 775601	CAL	&h0156		 RUN-Kennzeichen im Text berlesen
DD99: 770301	CAL	&h0103		 auf Ende des Befehls berprfen
DD9C: 8237	LDW	$23,#1		 $23=1, $24=0 setzen
DD9E: 421602	LD	$22,2		 BLOAD-Modus setzen
DDA1: EE0B40	PPS3	$11		 Quellparameter wieder holen
DDA4: 9E00	GRE	IX,$0		 Textzeiger ablegen
DDA6: A601	PHSW	$1		  und retten
~Seite 186
DDA8: 260A	PHS	$10		 RUN-Flag retten
DDAA: E71040	PHU3	$16		 Lade-Adresse und Ladeversch.flag retten
DDAD: 7777DE	CAL	&hDE77		 File laden
DDB0: AF0F	PPUW	$15		 RUN-Adresse holen
DDB2: 2E00	PPS	$0		 RUN-Flag wieder holen
DDB4: 01A020	SBCJ	$0,#1,&hDDD6	 ist es gesetzt? und ->
-------------------------------------->	BASIC-BEFEHL CALL
DDB7: 77E598	CAL	&h98E5 [SIKI]	 Ausdruck aus dem Text lesen
DDBA: 9E00	GRE	IX,$0		 Textzeiger ablegen
DDBC: A601	PHSW	$1		  und retten
DDBE: B112	JR	NC,&hDDD1	 kein String? dann ->
DDC0: 771CB2	CAL	&hB21C		 Filename aus String in WORK bringen
DDC3: 42040D	LD	$4,13		 Filetyp "M" setzen
DDC6: 7718E8	CAL	&hE818 [FNSCH]	 File im Speicher suchen
DDC9: 35E0AB	JP	C,&hABE0	 nicht vorhanden? dann NF Error
DDCC: 77E2DD	CAL	&hDDE2		 in den Userbereich laden u. starten
DDCF: B709	JR	&hDDD9		 Textzeiger wieder holen ->
DDD1: 77A698	CAL	&h98A6 [BINM2]	 FLP-Zahl in Adresswort wandeln
DDD4: 011F	SBC	$31,#0		 Z=1 setzen
DDD6: 7013DE	CAL	Z,&hDE13	 wenn Z=1, dann ML-Programm ausfhren
DDD9: AE00	PPSW	$0		 Textzeiger wieder holen
DDDB: 9600	PRE	IX,$0		  und setzen
--  --  --  --  --  --  --  --  --  -->	USERSTACKZEIGER ZURCKSETZEN
DDDD: D6604B6A	PRE	US,&h6A4B	 Userstackzeiger zurcksetzen
DDE1: F7	RTN			 zurck
-------------------------------------->	MASCHINENPROGRAMM IN DEN ML-BEREICH
							LADEN UND STARTEN
DDE2: 9606	PRE	IX,$6		 IX Zeiger auf Fileheader
DDE4: A822	LDW	$2,(IX+#1)	 $2/3 Startadresse im Speicher
DDE6: 6A0019	LDI	$0,(IX+25)	 $0/1 Lade-Anfangsadresse
DDE9: 2A01	LDI	$1,(IX+#0)	 |
DDEB: AA04	LDIW	$4,(IX+#0)	 $4/5 Lade-Endadresse
DDED: A80F	LDW	$15,(IX+#0)	 $15/16 Ausfhrungsadresse
DDEF: D11BFA6F	LDW	$27,&h6FFA	 $27/28 Beginn des erlaubten Bereichs
DDF3: D6402F69	PRE	IZ,&h692F	 IZ Zeiger auf ML-Bereich-Obergrenze
DDF7: A919	LDW	$25,(IZ+#0)	 diese nach $25/26 holen
DDF9: 81601B	SBCW	$0,$27		 Lade-Anfangsadresse<Beginn des ML-
DDFC: 35BDAB	JP	C,&hABBD	  Bereichs? dann OM Error
DDFF: 816019	SBCW	$0,$25		 Lade-Anfangsadresse>Ende des ML-
DE02: 31BDAB	JP	NC,&hABBD	  Bereichs? dann OM Error
DE05: 817B04	SBCW	$27,$4		 Lade-Endadresse<Beginn des ML-Bereichs?
DE08: B187	JR	NC,&hDE02	  dann OM Error
DE0A: BB04	SBCW	(IZ+#0),$4	 Lade-Endadresse>Ende des ML-Bereichs?
DE0C: B591	JR	C,&hDDFC	  dann OM Error
DE0E: 8944	SBW	$4,#2		 $4/5 Lnge des Maschinenprogramms
DE10: 774890	CAL	&h9048 [BUPDN]	 Speicherblock in den ML-Bereich holen
--  --  --  --  --  --  --  --  --  -->	MASCHINENPROGRAMM EVTL. AUSFHREN
DE13: 812F	SBCW	$15,#1		 keine Startadresse angegeben?
DE15: 352CAC	JP	C,&hAC2C	  dann AM Error
DE18: 37A9D8	JP	&hD8A9		 sonst starten ->     {krzer: JP ($15)}
-------------------------------------->	DISK-LADEROUTINE
DE1B: 773990	CAL	&h9039		 Disk-Filename nach WORK bringen
DE1E: 022B	LD	$11,#1		 Gerteadresse auf FDD setzen
DE20: C9F65654	SBBJ3	$22,$22,&hDE77	 LOAD-Modus und File laden
~Seite 187
-------------------------------------->	VERIFY AUSFHREN
DE24: 7732D6	CAL	&hD632		 bis File-Ende Zeichen einlesen
DE27: B784	JR	&hDE24		 und Schleife ->
--  --  --  --  --  --  --  --  --  --	REST VON BLOAD-RAM
DE29: 770FE8	CAL	&hE80F		 Fileheader beliebigen Filetyps suchen
DE2C: 9646	PRE	IZ,$6		 IZ Zeiger auf ML-Zeiger im Fileheader
DE2E: 6D0019	LDD	$0,(IZ+25)	 |
DE31: B716	JR	&hDE48		 und ->
--------------------------------------	BLOAD UND VERIFY AUSFHREN
DE33: 2E12	PPS	$18		 Gerteadresse wieder holen
DE35: B492	JR	NZ,&hDE24	 im VERIFY-Modus? dann ->
DE37: 41050D	SBC	$5,13		 ist es kein "M"-File?
DE3A: 342CAC	JP	NZ,&hAC2C	  dann AM Error
DE3D: EF1840	PPU3	$24		 Ladeversch.flag und Startadresse holen
DE40: 0112	SBC	$18,#0		 aus dem Speicher laden?
DE42: B09A	JR	Z,&hDE29	  dann ->
DE44: D640596E	PRE	IZ,&h6E40+25	 IZ Zeiger auf ML-Adr im FCB-Datenpuffer
DE48: E900A0	LD6	$0,(IZ+#0)	 ML-Adressen holen
DE4B: 0138	SBC	$24,#1		 Ladeverschiebung?
DE4D: B403	JR	NZ,&hDE51	  dann ->
DE4F: 8259	LDW	$25,#2		 sonst alte Ladeadresse holen
DE51: 8942	SBW	$2,#2		 Lnge des Files feststellen
DE53: D6406A6F	PRE	IZ,&h6F6A	 IZ Zeiger auf Filelnge
DE57: A102	STW	$2,(IZ+#0)	 diese speichern
DE59: A705	PHUW	$5		 RUN-Adresse im Userstack ablegen
DE5B: 3766DF	JP	&hDF66		 und ->
-------------------------------------->	PROGRAMM LADEN
DE5E: 0205	LD	$5,#0		 LOAD-Modus setzen
--  --  --  --  --  --  --  --  --  -->	PROGRAMM LADEN/ANHNGEN/VERGLEICHEN
DE60: E60740	PHS3	$7		 Modus und .-. retten
DE63: 770CE4	CAL	&hE40C		 Filename lesen und auswerten
DE66: 770301	CAL	&h0103		 auf Ende des Befehls berprfen
DE69: EE1640	PPS3	$22		 Modus und .-. wieder holen
DE6C: 411603	SBC	$22,3		 nicht VERIFY-Modus?
DE6F: B407	JR	NZ,&hDE77	  dann ->
DE71: 410B03	SBC	$11,3		 nicht MT?
DE74: 342CAC	JP	NZ,&hAC2C	  dann AM Error
--  --  --  --  --  --  --  --  --  -->	FILE LADEN/ANHNGEN/VERGLEICHEN
DE77: 410B02	SBC	$11,&h02	 von RS232C laden?
DE7A: 420735	LD	$7,36-239	 Filetyp "S" setzen
DE7D: B004	JR	Z,&hDE82	  dann ->
DE7F: 420710	LD	$7,255-239	 sonst Filetyp beliebig setzen
DE82: 260B	PHS	$11		 Gerteadresse zwischenspeichern
DE84: E61960	PHS4	$25		 alle Flags zwischenspeichern
DE87: 420A32	LD	$10,&h32	 Filemodus auf Eingabe setzen
DE8A: 77A3E0	CAL	&hE0A3		 System-Kanal ffnen
DE8D: EE0E60	PPS4	$14		 Flags wieder holen
DE90: D640CB6F	PRE	IZ,&h6FCB	 IZ Zeiger auf Open-FCB-Filetyp
DE94: 2D05	LDD	$5,(IZ+#0)	 diesen holen
DE96: 400580	ADC	$5,128		 ist es ein "R"-File?
DE99: B52A	JR	C,&hDEC4	 dann AM Error ->
DE9B: 0206	LD	$6,#0		 ASCII-Wandlung zurcksetzen
DE9D: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
DEA0: 2D10	LDD	$16,(IZ+#0)	 diesen holen
DEA2: 441040	ANC	$16,64		 im MENU-Modus?
DEA5: B421	JR	NZ,&hDEC7	  dann ->
~Seite 188
DEA7: 410E02	SBC	$14,2		 im BLOAD- oder VERIFY-Modus?
DEAA: 3133DE	JP	NC,&hDE33	  dann ->
DEAD: 410510	SBC	$5,16		 ist es ein "B"-File?
DEB0: B005	JR	Z,&hDEB6	  dann ->
DEB2: B511	JR	C,&hDEC4	 oder ein "M"-File? dann AM Error
DEB4: 0226	LD	$6,#1		 ASCII-Wandlung setzen
DEB6: A606	PHSW	$6		 Wandlung und Filetyp retten
DEB8: 7720B7	CAL	&hB720		 Start- und Endadr. des Aktivfiles holen
DEBB: 012E	SBC	$14,#1		 nicht im MERGE-Modus?
DEBD: B430	JR	NZ,&hDEEE	  dann ->
DEBF: 410524	SBC	$5,36		 ist es ein "S"-File?
DEC2: B02B	JR	Z,&hDEEE	  dann ->
DEC4: 372CAC	JP	&hAC2C		 sonst AM Error
DEC7: A606	PHSW	$6		 Wandlung und Filetyp.speichern
DEC9: 77E8E7	CAL	&hE7E8		 Filename nicht leer?
DECC: 4204FF	LD	$4,255		 Filetyp auf beliebig setzen
DECF: B405	JR	NZ,&hDED5	  dann ->
DED1: 2E04	PPS	$4		 Filetyp holen
DED3: 2604	PHS	$4		 und wieder speichern
DED5: 7718E8	CAL	&hE818 [FNSCH]	 File suchen
DED8: 7142E8	CAL	NC,&hE842 [KILL] gefunden? dann lschen
DEDB: 2E00	PPS	$0		 Filetyp holen
DEDD: 2600	PHS	$0		 und wieder speichern
DEDF: 410010	SBC	$0,16		 ist es ein "S"-File?
DEE2: 777CEA	CAL	&hEA7C		 neuen Fileeintrag erzeugen
DEE5: 022E	LD	$14,#1		 MERGE-Modus setzen
DEE7: 9606	PRE	IX,$6		 IX Zeiger auf Fileheader
DEE9: 77AFE6	CAL	&hE6AF		 IZ Zeiger auf Aktivfileheader-Zeiger
DEEC: A126	STW	$6,(IZ+#1)	 Zeiger dort speichern
DEEE: EE0F40	PPS3	$15		 Filetyp, Wandlung u. Gerteadresse holen
DEF1: E61040	PHS3	$16		 Modus, Filetyp und Wandlung retten
DEF4: 0431	ANC	$17,#1		 RAM- oder RS232C-Kanal?
DEF6: B01A	JR	Z,&hDF11	  dann ->
DEF8: D640406E	PRE	IZ,&h6E40	 IZ Zeiger auf System-FCB-Datenpuffer
DEFC: 410F24	SBC	$15,36		 ist es kein "S"-File?
DEFF: B41C	JR	NZ,&hDF1C	  dann ->
DF01: 0131	SBC	$17,#1		 FDD-Kanal?
DF03: B00A	JR	Z,&hDF0E	  dann ->
DF05: 0130	SBC	$16,#1		 ist ASCII-Wandlung eingeschaltet?
DF07: B017	JR	Z,&hDF1F	  dann ->
DF09: 791E11	ADC	(IZ+17),$30	 Passwort gesetzt?
DF0C: B437	JR	NZ,&hDF44	  dann PR Error ->
DF0E: 378CDF	JP	&hDF8C		 sonst File lesen ->
DF11: 411102	SBC	$17,2		 ist es der RS232C-Kanal?
DF14: B087	JR	Z,&hDF0E	  dann File lesen ->
DF16: 77FAE3	CAL	&hE3FA		 File mit beliebigen Filetyp suchen
DF19: 96C604	PREJ	IZ,$6,&hDF1F	 IZ Zeiger auf Fileheader und ->
DF1C: 600F05	ST	$15,(IX+5)	 Filetyp speichern
DF1F: E93460	LD4	$20,(IZ+#1)	 Adressen lesen
DF22: 9E52	GRE	IZ,$18		 Zeiger auf Datenpuffer ablegen
DF24: 7720B7	CAL	&hB720		 Start- und Endadr. im Speicher holen
DF27: 9E0F	GRE	IX,$15		 Zeiger auf Fileheader ablegen
DF29: 77B6E3	CAL	&hE3B6		 Zeiger auf Passwrter setzen
DF2C: 9642	PRE	IZ,$2		 IZ Zeiger auf Datenpuffer-Passwort
DF2E: EB04E0	LDI8	$4,(IZ+#0)	 dieses holen
DF31: E918A0	LD6	$24,(IZ+#0)	 ML-Adressen holen
~Seite 189
DF34: 0024	ADC	$4,#1		 kein Passwort?
DF36: B513	JR	C,&hDF4A	  dann ->
DF38: 9640	PRE	IZ,$0		 IZ Zeiger auf Fileheader-Passwort
DF3A: E90CE0	LD8	$12,(IZ+#0)	 dieses holen
DF3D: 002C	ADC	$12,#1		 keins definiert?
DF3F: B507	JR	C,&hDF47	  dann ->
DF41: C764EC	XRC8	$4,$12		 sind beide nicht gleich?
DF44: 340CAC	JP	NZ,&hAC0C	  dann PR Error
DF47: E104E0	ST8	$4,(IZ+#0)	 Passwort im Fileheader speichern
DF4A: 9640	PRE	IZ,$0		 IZ Zeiger auf Fileheader-Passwort
DF4C: EB00E0	LDI8	$0,(IZ+#0)	 dieses holen
DF4F: E118A0	ST6	$24,(IZ+#0)	 ML-Adressen ablegen
DF52: EE1040	PPS3	$16		 Modus, Filetyp und Wandlung holen
DF55: 771FE0	CAL	&hE01F		 evtl. File in RAM leeren
DF58: B063	JR	Z,&hDFBC	 Wandlung eingeschaltet? dann ->
DF5A: 7720B7	CAL	&hB720		 Start- und Endadr. des Aktivfiles holen
DF5D: 826016	LDW	$0,$22		 Lnge des Files berechnen
DF60: 896014	SBW	$0,$20		 |
DF63: 770BE0	CAL	&hE00B		 Lnge speichern und Filespeicher ffnen
DF66: 9619	PRE	IX,$25		 IX Zeiger auf Quell-Filebeginn
DF68: D6403A6E	PRE	IZ,&h6E3A	 IZ Zeiger auf System-FCB-Adressen
DF6C: 7B9E19	SBC	(IZ-25),$30	 Laden von Disk?
DF6F: 30F0DF	JP	Z,&hDFF0	  dann ->
DF72: B112	JR	NC,&hDF85	 von RS232C- oder MT-Kanal? dann ->
DF74: A902	LDW	$2,(IZ+#0)	 Quelladresse holen
DF76: 826019	LDW	$0,$25		 Zieladresse im Speicher holen
DF79: D6406A6F	PRE	IZ,&h6F6A	 IZ Zeiger auf File-Lnge
DF7D: A904	LDW	$4,(IZ+#0)	 diese nach $4/5 holen
DF7F: 774890	CAL	&h9048 [BUPDN]	 Speicherblock verschieben
DF82: 37E190	JP	&h90E1		 Ausgabe auf Display lenken
DF85: 7732D6	CAL	&hD632		 bis File-Ende Zeichen einlesen
DF88: 2200	STI	$0,(IX+#0)	 und im Speicher ablegen
DF8A: B786	JR	&hDF85		 und Schleife ->
--  --  --  --  --  --  --  --  --  --	FILE EINLESEN
DF8C: EE1040	PPS3	$16		 Modus, Filetyp und Wandlung holen
DF8F: 771FE0	CAL	&hE01F		 evtl. File leeren
DF92: B029	JR	Z,&hDFBC	 Wandlung eingeschaltet? dann ->
DF94: 7720B7	CAL	&hB720		 Start- und Endadr. des Aktivfiles holen
DF97: AA31	LDIW	$17,(IX+#1)	 Start-Adresse nach $17/18 holen
DF99: 9E13	GRE	IX,$19		 Zeiger auf Fileheader-Endadr. ablegen
DF9B: 9611	PRE	IX,$17		 IX Zeiger auf Filebeginn im Speicher
DF9D: 7732D6	CAL	&hD632		 bis File-Ende ein Zeichen einlesen
DFA0: D6404569	PRE	IZ,&h6945	 IZ Zeiger auf Freispeichergrenzen
DFA4: E90160	LD4	$1,(IZ+#0)	 diese holen
DFA7: 816301	SBCW	$3,$1		 kein Speicher mehr frei?
DFAA: 30BDAB	JP	Z,&hABBD	  dann OM Error
DFAD: BD1E	ADW	(IZ+#0),$30	 Freispeicher-Untergrenze erhhen
DFAF: 2200	STI	$0,(IX+#0)	 Zeichen im Datenpuffer speichern
DFB1: 42001A	LD	$0,26		 EOF-Zeichen holen
DFB4: 2000	ST	$0,(IX+#0)	 und ans File-Ende setzen
DFB6: 9653	PRE	IZ,$19		 IZ Zeiger auf Fileheader-Endadresse
DFB8: BD1E	ADW	(IZ+#0),$30	 diese erhhen
DFBA: B79E	JR	&hDF9D		 und Schleife ->
~Seite 190
--  --  --  --  --  --  --  --  --  --	FILE EINLESEN UND IN BASIC-TEXT WANDELN
DFBC: D100196E	LDW	$0,&h6E19	 $0/1 Zeiger auf Dummy-Zeilenende
DFC0: D0400000	STW	0,(#2)		 dieses setzen (fr Tokenisier-Routine)
DFC4: D6401A6D	PRE	IZ,&h6D1A	 IZ Zeiger auf Eingabe-Zeile
DFC8: 231F	STI	$31,(IZ+#0)	 am Anfang eine Null speichern
DFCA: 77AAD5	CAL	&hD5AA		 bis File-Ende eine Zeile einlesen
DFCD: 7758E3	CAL	&hE358		 Interface inaktivieren
DFD0: 771F90	CAL	&h901F [INCLR]	 Eingabepuffer lschen
DFD3: 896E0E	SBW	$14,$14		 Lnge und Flags zurcksetzen
DFD6: D640196E	PRE	IZ,&h6E19	 IZ Zeiger auf Dummy-Zeilenende
DFDA: D6001B6D	PRE	IX,&h6D1B	 IX Zeiger auf Eingabe-Zeile
DFDE: 420020	LD	$0," "		 Leerzeichen holen
DFE1: 3A00	SBC	(IX+#0),$0	 ist in der Zeile ein Steuerzeichen?
DFE3: B5A8	JR	C,&hDFBC	  dann ->
DFE5: 77AB96	CAL	&h96AB		 sonst Zeile tokenisieren
DFE8: 7720B7	CAL	&hB720		 Start- und Endadr. des Aktivfiles holen
DFEB: 77BFB3	CAL	&hB3BF		 Zeile in Programm einfgen/lschen
DFEE: B7B3	JR	&hDFBC		 und Schleife ->
--  --  --  --  --  --  --  --  --  --	FILE VON DISK EINLESEN
DFF0: D640336E	PRE	IZ,&h6E1D+22	 IZ Zeiger auf FCB-EOF-Flag
DFF4: 391E	ADC	(IZ+#0),$30	 ist dieses gesetzt?
DFF6: B011	JR	Z,&hE008	  dann ->
DFF8: D6406A6F	PRE	IZ,&h6F6A	 IZ Zeiger auf File-Lnge
DFFC: 7777DA	CAL	&hDA77		 Block des Files von FDD einlesen
DFFF: 0125	SBC	$5,#1		 noch nicht EOF?
E001: B186	JR	NC,&hDFFC	  dann Schleife ->
E003: BB1E	SBCW	(IZ+#0),$30	 stimmt File-Lnge nicht?
E005: 31D4AB	JP	NC,&hABD4	  dann RW Error
E008: 3720D8	JP	&hD820		 System-FCB schlieen, I/O beenden ->
--------------------------------------	LNGE SPEICHERN UND FILE-SPEICHER FFNEN
E00B: 8920	SBW	$0,#1		 um Fileendekennzeichen herabsetzen
E00D: D6406A6F	PRE	IZ,&h6F6A	 IZ Zeiger auf File-Lnge
E011: A100	STW	$0,(IZ+#0)	 diese speichern
E013: 826219	LDW	$2,$25		 Ladeadresse holen
E016: 411110	SBC	$17,16		 ist es kein "B"-File?
E019: 3492B2	JP	NZ,&hB292	  dann Datenfile-Speicher ffnen ->
E01C: 378EB2	JP	&hB28E		 sonst BASIC-Programm-Speicher ffnen ->
--------------------------------------	IM LOAD-MODUS FILE EVTL. LEEREN
E01F: 0130	SBC	$16,#1		 im MERGE-Modus?
E021: B00D	JR	Z,&hE02F	  dann ->
E023: 77C6AD	CAL	&hADC6		 Direktmodus setzen
E026: 7720B7	CAL	&hB720		 Start- und Endadr. des Aktivfiles holen
E029: 772CB7	CAL	&hB72C		 File-Lnge berechnen
E02C: 746FB2	CAL	NZ,&hB26F	 BASIC-Progr.-Speicher zusammenschieben
E02F: 0132	SBC	$18,#1		 ASCII-Wandlung eingeschaltet?
E031: F7	RTN			 zurck
-------------------------------------->	BASIC-BEFEHL BSAVE
E032: 770CE4	CAL	&hE40C		 Filename lesen und auswerten
E035: 77D8E3	CAL	&hE3D8		 und von WORK nach Open-FCB kopieren
E038: 77C7E3	CAL	&hE3C7		 RS232C verbieten und MT-Kanal prfen
E03B: E60D40	PHS3	$13		 Parameter und Gerteadresse retten
E03E: 77F4D1	CAL	&hD1F4		 dopp. ffnen desselben Files verhindern
E041: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
E044: B409	JR	NZ,&hE04E	 war keins da? dann SN Error ->
E046: 77A398	CAL	&h98A3		 Wort-Wert aus dem Text lesen
E049: A610	PHSW	$16		  und retten
~Seite 191
E04B: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
E04E: 34C0AB	JP	NZ,&hABC0	 war keins da? dann SN Error
E051: 77A398	CAL	&h98A3		 Wort-Wert aus dem Text lesen
E054: AE0D	PPSW	$13		 Anfangsadresse wieder holen
E056: 886F0D	ADW	$15,$13		 Endadresse berechnen
E059: 35F8AB	JP	C,&hABF8	 berlauf? dann BS Error
E05C: E61060	PHS4	$16		 Anfangs- und Endadr. retten
E05F: 896F0F	SBW	$15,$15		 Startadresse auf Null setzen
E062: 773A01	CAL	&h013A		 evtl. vorhand. Komma im Text berlesen
E065: 70A398	CAL	Z,&h98A3	 war eins da? dann Wort-Wert lesen
E068: 770301	CAL	&h0103		 auf Ende des Befehls prfen
E06B: 773AD3	CAL	&hD33A		 Filename vom Open-FCB nach WORK kopieren
E06E: EE0B60	PPS4	$11		 Adressen wieder holen
E071: D6408D6F	PRE	IZ,&h6F8D	 IZ Zeiger in Open-Fileheader
E075: E10BA0	ST6	$11,(IZ+#0)	 alle Adressen speichern
E078: 0D00	NA	$0,#0		 $0 auf &hFF setzen
E07A: 618008	ST	$0,(IZ-8)	 Passwort lschen
E07D: 42000D	LD	$0,13		 Filetyp "M" holen
E080: 658014	STD	$0,(IZ-20)	  und setzen
E083: 882D	ADW	$13,#1		 Endadresse erhhen
E085: E5AE60	STD4	$14,(IZ-#1)	 Adressen setzen
E088: 77F3E3	CAL	&hE3F3		 IX retten und IX Zeiger auf RUN-Adresse
E08B: EE0B40	PPS3	$11		 Gerteadresse und Parameter holen
E08E: 020A	LD	$10,#0		 keine ASCII-Wandlung vornehmen
E090: D108746F	LDW	$8,&h6F74	 Zeiger auf System-Header
E094: 7790DC	CAL	&hDC90		 File speichern
E097: 3735DB	JP	&hDB35		 IX wieder holen und setzen ->
-------------------------------------->	SYSTEM-KANAL FR AUSGABE FFNEN
E09A: 77D990	CAL	&h90D9		 Ausgabe auf FCB lenken
E09D: 420A30	LD	$10,&h30	 Filemodus auf Ausgabe setzen
E0A0: 827708	LDW	$23,$8		 Fileheaderzeiger kopieren
--  --  --  --  --  --  --  --  --  -->	SYSTEM-KANAL FFNEN
E0A3: D6400E69	PRE	IZ,&h690E	 IZ Zeiger auf Aktiv-FCB-Zeiger
E0A7: 027A16	LD	$26,$22
E0AA: 027607	LD	$22,$7		 Filetyp kopieren
E0AD: D1001D6E	LDW	$0,&h6E1D	 $0/1 Zeiger auf System-Fileheader
E0B1: A100	STW	$0,(IZ+#0)	 in den Aktiv-FCB-Zeiger bringen
E0B3: D1072301	LDW	$7,&h0123	 Lnge des FCB setzen
E0B7: 0209	LD	$9,#0		 Kanalnummer Null setzen
E0B9: D640AF6F	PRE	IZ,&h6FAF	 IZ Zeiger auf Open-FCB-Header
E0BD: E30780	STI5	$7,(IZ+#0)	 Register $7-11 in Open-FCB speichern
E0C0: 77D8E3	CAL	&hE3D8		 Filename von WORK nach Open-FCB kopieren
E0C3: D100406E	LDW	$0,&h6E40	 $0/1 Beginn des System-Datenpuffers
E0C7: D102406F	LDW	$2,&h6F40	 $2/3 Ende des System-Datenpuffers
E0CB: C96444	SBB3	$4,$4		 Pufferzhler u.a. zurcksetzen
E0CE: E300C0	STI7	$0,(IZ+#0)	 Register $0-6 im Open-FCB speichern
E0D1: 896202	SBW	$2,$2		 Blockanzahl zurcksetzen
E0D4: 026516	LD	$5,$22		 Filetyp kopieren
E0D7: 4805EF	AD	$5,239		  und vorbereiten
E0DA: E100A0	ST6	$0,(IZ+#0)	 Register $0-5 im Open-FCB speichern
E0DD: 012B	SBC	$11,#1		 ist es ein FDD-Kanal?
E0DF: B023	JR	Z,&hE103	  dann ->
E0E1: B136	JR	NC,&hE118	 ein RS232C- oder MT-Kanal? dann ->
~Seite 192
--  --  --  --  --  --  --  --  --  --	RAM-KANAL FFNEN
E0E3: 77FAE3	CAL	&hE3FA		 File mit beliebigem Filetyp suchen
E0E6: B519	JR	C,&hE100	 nicht gefunden? dann ->
E0E8: 817706	SBCW	$23,$6		 derselbe Fileheader?
E0EB: 30D8AB	JP	Z,&hABD8	  dann BF Error
E0EE: 010A	SBC	$10,#0		 nicht Ausgabe?
E0F0: B60F	JR	LNZ,&hE100	 dann ->   (sonst fr BLOAD fragen)
E0F2: 411870	SBC	$24,&h70	 Quellfileheader nicht vom System?
E0F5: B107	JR	NC,&hE0FD	  dann ->
E0F7: 41030D	SBC	$3,13		 gefundenes kein "M"-File?
E0FA: 34D8AB	JP	NZ,&hABD8	  dann BF Error
E0FD: 7742E8	CAL	&hE842 [KILL]	 File im Speicher lschen
E100: 37ABD1	JP	&hD1AB		 in die Open-Routine springen
--  --  --  --  --  --  --  --  --  --	DISK-FILE FFNEN
E103: D640406E	PRE	IZ,&h6E40	 IZ Zeiger auf System-Datenpuffer
E107: C940E0	SBB8	$0,#2		 $0/1=&hFFFF
E10A: 8920	SBW	$0,#1		 $2-7=0
E10C: E12060	ST4	$0,(IZ+#1)	 Anfangs- und Endadresse setzen
E10F: 650011	STD	$0,(IZ+17)	 Passwort lschen
E112: E300E0	STI8	$0,(IZ+#0)	 |
E115: E102A0	ST6	$2,(IZ+#0)	 ML-Adressen lschen
--  --  --  --  --  --  --  --  --  --	RS232C- ODER MT-KANAL FFNEN
E118: 77CD92	CAL	&h92CD		 Betriebsmodus holen
E11B: 4E0220	OR	$2,32		 I/O-Aktiv-Flag setzen
E11E: 2502	STD	$2,(IZ+#0)	 Betriebsmodus speichern
E120: 410B03	SBC	$11,3		 nicht der MT-Kanal?
E123: B4A4	JR	NZ,&hE100	  dann in die Open-Routine ->

=== KASSETTEN-ROUTINEN =========================================================
E125: 7757BE	CAL	&hBE57		 INT1 sperren
E128: 827B0C	LDW	$27,$12		 Parameter nach $27/28 kopieren
E12B: D1001D6E	LDW	$0,&h6E1D	 $0/1 Zieladresse
E12F: D102AF6F	LDW	$2,&h6FAF	 $2/3 Quelladresse
E133: D1042300	LDW	$4,35		 $4/5 Lnge des FCB-Headers
E137: 774890	CAL	&h9048 [BUPDN]	 Bereich kopieren
E13A: D600FC6B	PRE	IX,&h6BFC	 IX Zeiger auf MT-Baudrate
E13E: 241B	STD	$27,(IX+#0)	 diese speichern
E140: 8940	SBW	$0,#2		 Status-Speicher lschen
E142: E03F40	ST3	$31,(IX+#1)	 |
E145: 7792BF	CAL	&hBF92		 &h0C02=&h18
E148: 611F03	ST	$31,(IZ+&h03)	 Befehl 0 an FDD absetzen
E14B: 21BB	ST	$27,(IZ-#1)	 MT-Parameter speichern
E14D: 773DE3	CAL	&hE33D		 20ms warten
E150: 010A	SBC	$10,#0		 nicht Ausgabe?
E152: 420041	LD	$0,&h41		 Kennzeichen fr Ausgabe holen
E155: B664	JR	LNZ,&hE1BA	  dann ->
E157: 2100	ST	$0,(IZ+#0)	 Interface auf Ausgabe stellen
E159: 20BE	ST	$30,(IX-#1)	 MT-Ausgabe-Modus festlegen
E15B: 4204C8	LD	$4,200		 Zeitdauer auf 6 Sekunden setzen
E15E: 77BCE2	CAL	&hE2BC		 Zeitspanne warten
E161: D6406C6F	PRE	IZ,&h6F6C	 IZ Zeiger auf Prfsumme
E165: 251F	STD	$31,(IZ+#0)	 diese zurcksetzen
E167: 420048	LD	$0,"H"		 Fileheader-Kennzeichen holen
E16A: 775DE2	CAL	&hE25D		 und an MT-Port ausgeben
E16D: 026016	LD	$0,$22		 Filetyp holen
E170: 775DE2	CAL	&hE25D		 und an MT-Port ausgeben
~Seite 193
E173: D6401C6E	PRE	IZ,&h6E1C	 IZ Zeiger auf MT-Filetyp
E177: 2100	ST	$0,(IZ+#0)	 diesen dort speichern
E179: 8222	LDW	$2,#1		 File-Lnge zurcksetzen
E17B: 410024	SBC	$0,36		 ist es ein "S"-File?
E17E: B008	JR	Z,&hE187	  dann ->
E180: 9617	PRE	IX,$23		 IX Zeiger auf Fileheader
E182: E82060	LD4	$0,(IX+#1)	 Adressen holen
E185: 8942	SBW	$2,#2		 File-Lnge ohne Endekennzeichen
E187: 8922	SBW	$2,#1		  berechnen
E189: D1050B00	LDW	$5,11		 Lnge von Filename mit Extension setzen
E18D: D600226E	PRE	IX,&h6E22	 IX Zeiger auf FCB-Filename
E191: 77D0E2	CAL	&hE2D0		 diesen an den MT-Port ausgeben
E194: 9617	PRE	IX,$23		 IX Zeiger auf Passwort innerhalb
E196: 6C0011	LDD	$0,(IX+17)	  des Fileheaders
E199: D1050E00	LDW	$5,14		 Lnge von Passwort und ML-Adressen
E19D: 77D0E2	CAL	&hE2D0		 diese an den MT-Port ausgeben
E1A0: 026002	LD	$0,$2		 Low-Byte der File-Lnge holen
E1A3: 775DE2	CAL	&hE25D		 und an den MT-Port ausgeben
E1A6: 026003	LD	$0,$3		 High-Byte der File-Lnge holen
E1A9: 775DE2	CAL	&hE25D		 und an den MT-Port ausgeben
E1AC: 480570	AD	$5,&h70		 noch einmal? (insgesamt dreimal)
E1AF: B190	JR	NC,&hE1A0	  dann Schleife ->
--  --  --  --  --  --  --  --  --  -->	PRFSUMME AUF MT-KANAL AUSGEBEN
E1B1: D6406C6F	PRE	IZ,&h6F6C	 IZ Zeiger auf Prfsumme
E1B5: 2D00	LDD	$0,(IZ+#0)	 diese holen
E1B7: 3760BF	JP	&hBF60 [NXTO]	 und an MT-Port ausgeben
-------------------------------------->	MT-KANAL ZUR EINGABE FFNEN
E1BA: 0820	AD	$0,#1		 $0=&h42 setzen
E1BC: 2100	ST	$0,(IZ+#0)	 &h0C01=&h42
E1BE: 420002	LD	$0,&h02		 Kennzeichen fr Eingabe holen
E1C1: 20A0	ST	$0,(IX-#1)	 und als MT-Modus festlegen
E1C3: 777FE3	CAL	&hE37F		 auf File-Anfang auf Kassette warten
E1C6: 7750E2	CAL	&hE250		 Byte vom MT-Port abholen
E1C9: 410030	SBC	$0,48		 nicht Filetyp ??? gefunden?
E1CC: B404	JR	NZ,&hE1D1	  dann ->
E1CE: 420024	LD	$0,36		 sonst Filetyp "S" setzen
E1D1: 0255	LD	$21,#2		 Filetyp nach $21 kopieren
E1D3: D640CB6F	PRE	IZ,&h6FCB	 IZ Zeiger auf Open-FCB-Filetyp
E1D7: 2500	STD	$0,(IZ+#0)	 diesen setzen
E1D9: 42050B	LD	$5,11		 Lnge von Filename & Extension setzen
E1DC: D600F468	PRE	IX,&h68F4	 IX Zeiger auf den WORK-Puffer
E1E0: 7750E2	CAL	&hE250		 Byte vom MT-Port abholen
E1E3: 2200	STI	$0,(IX+#0)	 und im WORK-Puffer ablegen
E1E5: 0925	SB	$5,#1		 Zhler herabsetzen
E1E7: B488	JR	NZ,&hE1E0	 noch einmal? dann Schleife ->
E1E9: 6C8011	LDD	$0,(IX-17)	 IX Zeiger auf WORK-Puffer-6
E1EC: 776BE7	CAL	&hE76B		 gesamte File-Information in Register
E1EF: 77C4DA	CAL	&hDAC4		  lesen und ausgeben
E1F2: 77CE95	CAL	&h95CE [OUTCR]	 CRLF ausgeben
E1F5: D600226E	PRE	IX,&h6E22	 IX Zeiger auf FCB-Filename
E1F9: 777EE4	CAL	&hE47E		 IZ Zeiger auf WORK-Puffer
E1FC: 043C	ANC	$28,#1		 ist kein Filename angegeben?
E1FE: B410	JR	NZ,&hE20F	  dann ->
E200: 42020B	LD	$2,11		 Zhler auf 11 setzen
E203: 2A00	LDI	$0,(IX+#0)	 Zeichen aus FCB-Header lesen
E205: 2B01	LDI	$1,(IZ+#0)	 Zeichen aus WORK-Puffer lesen
~Seite 194
E207: 0141	SBC	$1,#2		 stimmen sie nicht berein?
E209: B4C7	JR	NZ,&hE1C3	  dann
E20B: 0922	SB	$2,#1		 Zhler herabsetzen
E20D: B48B	JR	NZ,&hE203	 nicht Null? dann Schleife ->
E20F: D600516E	PRE	IX,&h6E40+17	 IX Zeiger in System-Puffer
E213: 42050E	LD	$5,14		 Zhler auf 14 setzen
E216: 7750E2	CAL	&hE250		 Byte vom MT-Port abholen
E219: 2200	STI	$0,(IX+#0)	 und im System-Puffer speichern
E21B: 0925	SB	$5,#1		 Zhler herabsetzen
E21D: B488	JR	NZ,&hE216	 nicht Null? dann Schleife ->
E21F: 7750E2	CAL	&hE250		 Byte vom MT-Port abholen
E222: 0245	LD	$5,#2		 und als Low-Byte nach $5 bringen
E224: 7750E2	CAL	&hE250		 Byte vom MT-Port abholen
E227: 0246	LD	$6,#2		 und als High-Byte nach $6 bringen
E229: D640706F	PRE	IZ,&h6F70	 IZ Zeiger auf MT-Eingabe-File-Lnge
E22D: A105	STW	$5,(IZ+#0)	 File-Lnge dort speichern
E22F: 8825	ADW	$5,#1		 diese erhhen
E231: 6C801F	LDD	$0,(IX-31)	 Zeiger in Betriebsart holen
E234: 896303	SBW	$3,$3		 Anfangsadresse auf Null setzen
E237: E02360	ST4	$3,(IX+#1)	 und mit Endadresse speichern
E23A: 420505	LD	$5,5		 Zhler auf 5 setzen
E23D: 7750E2	CAL	&hE250		 Byte von MT-Port abholen
E240: 0925	SB	$5,#1		 Zhler herabsetzen
E242: B486	JR	NZ,&hE23D	 noch mehr? dann Schleife ->
--  --  --  --  --  --  --  --  --  -->	MT-BLOCKFLAG LSCHEN, PRFSUMME PRFEN
E244: D1006E6F	LDW	$0,&h6F6E	 IZ Zeiger auf MT-Blockflag
E248: 105F	ST	$31,(#2)	 dieses lschen
E24A: 3B1F	SBC	(IZ+#0),$31	 Prfsumme nicht in Ordnung?
E24C: 34D4AB	JP	NZ,&hABD4	  dann RW Error
E24F: F7	RTN			 zurck
-------------------------------------->	BYTE VON MT-PORT ABHOLEN
E250: 779CBE	CAL	&hBE9C [RSGET]	 Byte von MT-Port holen
E253: D6406C6F	PRE	IZ,&h6F6C	 IZ Zeiger auf Prfsumme
E257: 3D00	AD	(IZ+#0),$0	 Byte zu Prfsumme addieren
E259: F7	RTN			 zurck
-------------------------------------->	BYTE IN $16 AN MT-PORT AUSGEBEN
E25A: 026010	LD	$0,$16		 Zeichen ins Ausgaberegister holen
--  --  --  --  --  --  --  --  --  -->	BYTE AN MT-PORT AUSGEBEN
E25D: D6406C6F	PRE	IZ,&h6F6C	 IZ Zeiger auf Prfsumme
E261: 3F00	SB	(IZ+#0),$0	 Byte von Prfsumme abziehen
E263: 3760BF	JP	&hBF60 [NXTO]	 und an MT-Port ausgeben ->
-------------------------------------->	DATENBLOCK AUF DEN MT-PORT AUSGEBEN
  (I: $5/6 Blocklnge, $7=0: normaler Block, =1: letzter Block =2: EOF-Block
      IX Zeiger auf Speicherbereich)
E266: 420478	LD	$4,120		 Zeitdauer auf 3.6 Sekunden
E269: 77BCE2	CAL	&hE2BC		 diese Zeitspanne warten
E26C: D6406C6F	PRE	IZ,&h6F6C	 IZ Zeiger auf Prfsumme
E270: 251F	STD	$31,(IZ+#0)	 auf diese auf Null setzen
E272: 420044	LD	$0,"D"		 Kennzeichen fr die Daten holen
E275: 775DE2	CAL	&hE25D		 und auf MT-Port ausgeben
E278: D6401C6E	PRE	IZ,&h6E1C	 IZ Zeiger auf MT-Filetyp
E27C: 2D00	LDD	$0,(IZ+#0)	 diesen holen
E27E: 775DE2	CAL	&hE25D		 und auf MT-Port ausgeben
E281: 410024	SBC	$0,36		 ist es kein "S"-File?
E284: 4200FF	LD	$0,255		 Filetyp lschen
E287: B4AB	JR	NZ,&hE25D	  dann auf MT-Port ausgeben ->
~Seite 195
E289: 0107	SBC	$7,#0		 kein normaler Block?
E28B: B403	JR	NZ,&hE28F	  dann ->
E28D: 0200	LD	$0,#0		 Nullbyte holen
E28F: 775DE2	CAL	&hE25D		 und auf MT-Port ausgeben
E292: 026005	LD	$0,$5		 Low-Byte der Blocklnge holen
E295: 775DE2	CAL	&hE25D		 und auf MT-Port ausgeben
E298: 026006	LD	$0,$6		 High-Byte der Blocklnge holen
E29B: 775DE2	CAL	&hE25D		 und auf MT-Port ausgeben
E29E: 410702	SBC	$7,2		 EOF-Block?
E2A1: B006	JR	Z,&hE2A8	  dann ->
E2A3: 77D0E2	CAL	&hE2D0		 Speicherbereich auf MT-Port ausgeben
E2A6: B70D	JR	&hE2B4		 und ->
E2A8: 42000D	LD	$0,13		 CR holen
E2AB: 775DE2	CAL	&hE25D		 und auf MT-Port ausgeben
E2AE: 42000A	LD	$0,10		 LF holen
E2B1: 775DE2	CAL	&hE25D		 und auf MT-Port ausgeben
E2B4: 77B1E1	CAL	&hE1B1		 Prfsumme auf MT-Port ausgeben
--  --  --  --  --  --  --  --  --  -->	60ms WARTEN
E2B7: 42840202	LDJ	$4,2,&hE2BC	 Zeitdauer auf 60ms setzen
--  --  --  --  --  --  --  --  --  --
E2BB: F0	RTN	Z		 Schleifenende? dann zurck
--  --  --  --  --  --  --  --  --  -->	($4)MAL 30ms WARTEN
E2BC: 420332	LD	$3,50		 Anfangswert der inneren Schleife holen
E2BF: E60480	PHS5	$4		 Register $0-4 zwischenspeichern
E2C2: 770792	CAL	&h9207 [BKCK]	 auf OFF, C.Boot und BRK prfen
E2C5: EE0080	PPS5	$0		 Register $0-4 wieder holen
E2C8: 0923	SB	$3,#1		 inneren Schleifenzhler herabsetzen
E2CA: B48C	JR	NZ,&hE2BF	 noch einmal? dann Schleife ->
E2CC: 09A493	SBJ	$4,#1,&hE2BB	 ueren Schleifenz. herabs. u. Schl. ->
--  --  --  --  --  --  --  --  --  --
E2CF: F0	RTN	Z		 Schleife zu Ende? dann zurck
--  --  --  --  --  --  --  --  --  -->	SPEICHERBEREICH AN MT-KANAL AUSGEBEN
E2D0: 2A00	LDI	$0,(IX+#0)	 nchstes Zeichen lesen
E2D2: 775DE2	CAL	&hE25D		 und auf MT-Port ausgeben
E2D5: 89A588	SBWJ	$5,#1,&hE2CF	 Lnge herabsetzen und Schleife ->
--  --  --  --  --  --  --  --  --  -->	ZEICHEN VON MT-KANAL LESEN
E2D8: D640336E	PRE	IZ,&h6E1D+16	 IZ Zeiger auf MT-EOF-Flag
E2DC: 391E	ADC	(IZ+#0),$30	 ist dieses gesetzt?
E2DE: 3510AC	JP	C,&hAC10	  dann DA Error
E2E1: D6406E6F	PRE	IZ,&h6F6E	 IZ Zeiger auf MT-Blockflag
E2E5: 3B1F	SBC	(IZ+#0),$31	 weitere Zeichen in denselben Block?
E2E7: B42C	JR	NZ,&hE314	  dann ->
E2E9: 211E	ST	$30,(IZ+#0)	 sonst auf MT-Blockflag setzen
E2EB: 7734E3	CAL	&hE334		 20ms warten, NUL an FDD, 20ms warten
E2EE: 7791E3	CAL	&hE391		 auf Datenblockbeginn auf Kassette warten
E2F1: 7750E2	CAL	&hE250		 Byte vom MT-Port abholen
E2F4: 0245	LD	$5,#2		 und nach $5 bringen
E2F6: 7750E2	CAL	&hE250		 noch ein Byte vom MT-Port abholen
E2F9: D6406F6F	PRE	IZ,&h6F6F	 IZ Zeiger auf MT-File-Endeflag
E2FD: 2500	STD	$0,(IZ+#0)	 und dort speichern
E2FF: 440520	ANC	$5,32		 ist es kein "S"-File?
E302: B011	JR	Z,&hE314	  dann ->
E304: 7750E2	CAL	&hE250		 Byte vom MT-Port abholen
E307: 0246	LD	$6,#2		 und nach $6 bringen
E309: 7750E2	CAL	&hE250		 weiteres Byte vom MT-Port abholen
E30C: 0247	LD	$7,#2		 und nach $7 bringen
~Seite 196
E30E: D640706F	PRE	IZ,&h6F70	 IZ Zeiger auf MT-Eingabe-Blocklnge
E312: A106	STW	$6,(IZ+#0)	 diese setzen
E314: 7750E2	CAL	&hE250		 Byte vom MT-Port abholen
E317: D6406F6F	PRE	IZ,&h6F6F	 IZ Zeiger auf MT-File-Endeflag
E31B: BF3E	SBW	(IZ+#1),$30	 Blocklngenzhler herabsetzen
E31D: F4	RTN	NZ		 ungleich Null? dann zurck
E31E: 3B1F	SBC	(IZ+#0),$31	 ist es nicht der letzte Block?
E320: B007	JR	Z,&hE328	  dann ->
E322: D640336E	PRE	IZ,&h6E1D+16	 IZ Zeiger auf MT-EOF-Flag
E326: 3F1E	SB	(IZ+#0),$30	 dieses setzen
E328: 0247	LD	$7,#2		 Byte zwischenspeichern
E32A: 7750E2	CAL	&hE250		 Byte vom MT-Port abholen
E32D: 7744E2	CAL	&hE244		 MT-Blockflag lschen, Prfsumme prfen
E330: 026007	LD	$0,$7		 Byte wieder holen
E333: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	NULLBYTE AN FDD ABSETZEN
E334: 773DE3	CAL	&hE33D		 20ms warten
E337: D640040C	PRE	IZ,&h0C04	 IZ Zeiger auf Ausgabe-Port
E33B: 251F	STD	$31,(IZ+#0)	 Nullbyte an FDD absetzen
--  --  --  --  --  --  --  --  --  -->	20ms WARTEN
E33D: 0200	LD	$0,#0		 Zhler auf Null setzen
E33F: 77758F	CAL	&h8F75		 Routine als Verzgerung benutzen
E342: 0920	SB	$0,#1		 Zhler herabsetzen
E344: B486	JR	NZ,&hE33F	 noch weiter warten? dann Schleife ->
E346: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	I/O-AKTIVITT BEENDEN
E347: D640216E	PRE	IZ,&h6E21	 IZ Zeiger auf System-FCB-Gerteadresse
E34B: 2D10	LDD	$16,(IZ+#0)	 diese holen
E34D: 441002	ANC	$16,2		 ist es der RS232C- oder der MT-Kanal?
E350: 745DBE	CAL	NZ,&hBE5D [RSCLO] dann diesen schlieen
E353: 0130	SBC	$16,#1		 ist es ein FDD-Kanal?
E355: 70E4D8	CAL	Z,&hD8E4	  dann System-FDD-Kanal schlieen
--  --  --  --  --  --  --  --  --  -->	INTERFACE INAKTIVIEREN
E358: D640040C	PRE	IZ,&h0C04	 IZ Zeiger auf Ausgabe-Port
E35C: 4280801C	LDJ	$0,128,&hE37B	 Befehl 128 an FDD-Kanal absetzen ->
--  --  --  --  --  --  --  --  --  -->	BLOCKANFANG AUF KASSETTE ABWARTEN
E360: 42050A	LD	$5,10		 Zhler setzen
E363: 770792	CAL	&h9207 [BKCK]	 auf OFF, C.Boot und BRK prfen
E366: 29A0	LD	$0,(IZ-#1)	 Eingabe-Port lesen
E368: 4400C0	ANC	$0,&hC0		 Prfton noch nicht gefunden?
E36B: B48C	JR	NZ,&hE360	  dann Schleife ->
E36D: 0925	SB	$5,#1		 Zhler herabsetzen (insgesamt ca. 8ms)
E36F: B48D	JR	NZ,&hE363	 noch einmal? dann Schleife ->
E371: 773BBE	CAL	&hBE3B		 Empfangspuffer leeren u. INT1 freigeben
E374: 779CBE	CAL	&hBE9C [RSGET]	 Byte vom MT-Kanal lesen
E377: D6406C6F	PRE	IZ,&h6F6C	 IZ Zeiger auf Prfsumme
E37B: 2500	STD	$0,(IZ+#0)	 Byte dort ablegen
E37D: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --
E37E: F0	RTN	Z		 Erkennungszeichen gefunden? dann zurck
--  --  --  --  --  --  --  --  --  -->	AUF HEADERBEGINN AUF KASSETTE WARTEN
E37F: 7792BF	CAL	&hBF92		 &h0C02=&h18
E382: 77B7E2	CAL	&hE2B7		 60ms warten
E385: 7796BF	CAL	&hBF96		 &h0C02=&h18
E388: 2921	LD	$1,(IZ+#1)	 Eingabe-Port lesen
E38A: 7760E3	CAL	&hE360		 auf Blockbeginn auf Kassette warten
~Seite 197
E38D: 41804892	SBCJ	$0,"H",&hE37E	 nicht Headerkennzeichen? und ->
--  --  --  --  --  --  --  --  --  -->	AUF DATENBEGINN AUF KASSETTE WARTEN
E391: 7792BF	CAL	&hBF92		 &h0C02=&h18
E394: 7760E3	CAL	&hE360		 warten, bis sich etwas tut
E397: 410044	SBC	$0,"D"		 nicht Erkennungszeichen fr Daten?
E39A: 34D4AB	JP	NZ,&hABD4	  dann RN Error
E39D: F7	RTN			 sonst zurck

=== VERSCHIEDENE, EIN- UND AUSGABE BETREFFENDE ROUTINEN ========================
--  --  --  --  --  --  --  --  --  -->	KANLE SCHLIESSEN UND AUF BASIC- UND
							PROGRAMM-MODUS PRFEN
E39E: 7793D3	CAL	&hD393		 alle Kanle schlieen
E3A1: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
E3A4: E90380	LD5	$3,(IZ+#0)	 diesen u.a. holen
E3A7: 0125	SBC	$5,#1		 im Programmodus?
E3A9: B006	JR	Z,&hE3B0	  dann ->
E3AB: 0123	SBC	$3,#1		 nicht im BASIC-Modus?
E3AD: 34FCAB	JP	NZ,&hABFC	  dann FC Error
E3B0: C97171	SBB4	$17,$17		 Adresse der ERROR-Routine
E3B3: 3745C8	JP	&hC845		  lschen
--  --  --  --  --  --  --  --  --  -->	PASSW. & ML-ADR. Z. KOPIEREN VORBEREITEN
E3B6: D1001100	LDW	$0,17		 Offset auf Passwort holen
E3BA: 826212	LDW	$2,$18		 $2/3 Quelladresse
E3BD: 8842	ADW	$2,#2		 |
E3BF: 88600F	ADW	$0,$15		 $0/1 Zieladresse
E3C2: D1040E00	LDW	$4,14		 $4/5 Lnge
E3C6: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	RS232C VERBIETEN, MT-KANAL BERPRFEN
E3C7: 410B02	SBC	$11,2		 ist RS232C-Kanal angesprochen?
E3CA: 30C0AB	JP	Z,&hABC0	  dann SN Error
E3CD: F5	RTN	C		 auch nicht MT-Kanal? dann zurck
--  --  --  --  --  --  --  --  --  -->	OP ERROR BEI GEFFNETEM RS232C-/MT-KANAL
E3CE: D640FB6B	PRE	IZ,&h6BFB	 IZ Zeiger auf RS232C-Transfermodus
E3D2: 3B1E	SBC	(IZ+#0),$30	 noch kein RS232C-Kanal geffnet
E3D4: F5	RTN	C		  dann zurck
E3D5: 3728AC	JP	&hAC28		 sonst OP Error
--  --  --  --  --  --  --  --  --  -->	FILENAME VON WORK NACH OPEN-FCB KOPIEREN
E3D8: D640B46F	PRE	IZ,&h6FB4	 IZ Zeiger auf Open-FCB-Filename
E3DC: D100F468	LDW	$0,&h68F4	 $0/1 Zeiger auf WORK-Puffer
E3E0: 0020	ADC	$0,#1		 am Ende des Filenamens?
E3E2: F0	RTN	Z		  dann zurck
E3E3: 1142	LD	$2,(#2)		 Zeichen aus WORK-Puffer holen
E3E5: 2302	STI	$2,(IZ+#0)	 und in den Open-FCB bringen
E3E7: 08A089	ADJ	$0,#1,&hE3E0	 Adresse erhhen und Schleife ->
-------------------------------------->	STRING LESEN UND BEREITSTELLEN
E3EA: 77EB9C	CAL	&h9CEB		 Stringausdruck aus Text lesen
E3ED: 77819D	CAL	&h9D81		 Nullbyte im Zeichenop.stapel anfgen
E3F0: 77CFAD	CAL	&hADCF		 Zeichenoperationsstapel leeren
E3F3: 9E00	GRE	IX,$0		 Textzeiger ablegen
E3F5: A701	PHUW	$1		  und in den Userstack bringen
E3F7: 960F	PRE	IX,$15		 IX Zeiger auf String
E3F9: F7	RTN			 zurck
~Seite 198
-------------------------------------->	FILE MIT BELIEBIGEN FILETYP SUCHEN
E3FA: 9E1B	GRE	IX,$27		 IX ablegen
E3FC: 770FE8	CAL	&hE80F		 File mit beliebigen Filetyp suchen
E3FF: 961B	PRE	IX,$27		 IX wieder setzen
E401: F7	RTN			 zurck
--------------------------------------	REST VON FILENAME LESEN
E402: AA00	LDIW	$0,(IX+#0)	 "0:" berlesen
E404: 49910237	SBJ	$17,2,&hE43E	 Stringlnge herabsetzen und ->
--  --  --  --  --  --  --  --  --  -->	REST VON FILENAME LESEN
E408: 418B0341	SBCJ	$11,3,&hE44C	 MT angesprochen? und ->
--  --  --  --  --  --  --  --  --  -->	FILENAME LESEN UND AUSWERTEN
E40C: 77EAE3	CAL	&hE3EA		 String lesen und bereitstellen
E40F: 022B	LD	$11,#1		 FDD-Kanal setzen
E411: E80080	LD5	$0,(IX+#0)	 erste fnf Zeichen des Strings lesen
E414: D109303A	LDW	$9,"0:"		 "0:" holen
E418: 8149	SBCW	$9,#2		 "0:" am Stringanfang?
E41A: B099	JR	Z,&hE402	   dann ->
E41C: 082B	AD	$11,#1		 RS232C-Kanal setzen
E41E: D106434F	LDW	$6,"CO"		 "COM" holen
E422: 42084D	LD	$8,"M"		 |
E425: C74680	XRC5	$6,#2		 "COM0:" am Stringanfang?
E428: B00F	JR	Z,&hE438	  dann ->
E42A: 020B	LD	$11,#0		 RAM-Kanal setzen
E42C: D1074153	LDW	$7,"AS"		 "AS" holen
E430: C74680	XRC5	$6,#2		 nicht "CAS0:" am Stringanfang?
E433: B41A	JR	NZ,&hE44E	  dann ->
E435: 420B03	LD	$11,3		 MT-Kanal setzen
E438: EA0080	LDI5	$0,(IX+#0)	 erste fnf Zeichen berlesen
E43B: 491105	SB	$17,5		 Stringlnge herabsetzen
E43E: 9E0F	GRE	IX,$15		 $15/16 Beginn des Filenamen
E440: 7780E6	CAL	&hE680		 kein Interface vorhanden?
E443: 30D0AB	JP	Z,&hABD0	  dann NR Error
E446: 0101	SBC	$1,#0		 MD-100 angeschlossen?
E448: B4C1	JR	NZ,&hE408	  dann ->
E44A: 012B	SBC	$11,#1		 Disk angesprochen?
E44C: B08A	JR	Z,&hE443	  dann NR Error ->
E44E: 410B02	SBC	$11,2		 RS232C angesprochen?
E451: B031	JR	Z,&hE483	  dann ->
E453: B511	JR	C,&hE465	 Disk/Speicher angesprochen? dann ->
E455: 822C	LDW	$12,#1		 Parameter lschen
E457: 770CE5	CAL	&hE50C		 DIP-Schalter des Interfaces abfragen
E45A: 4100C0	SBC	$0,&hC0		 mehr als 2400 Baud eingestellt?
E45D: B104	JR	NC,&hE462	  dann AM Error ->
E45F: 4000C0	ADC	$0,&hC0		 weniger als 300 Baud eingestellt?
E462: 312CAC	JP	NC,&hAC2C	  dann AM Error
E465: E60D40	PHS3	$13		 Gerteadresse und Parameter speichern
E468: 771CB2	CAL	&hB21C		 Filename aus String nach WORK bringen
E46B: 77E8E7	CAL	&hE7E8		 ist Filename nicht leer?
E46E: EE0B40	PPS3	$11		 Gerteadresse u. Parameter wieder holen
E471: B409	JR	NZ,&hE47B	  dann ->
E473: 410B03	SBC	$11,3		 nicht MT angesprochen?
E476: 34D8AB	JP	NZ,&hABD8	  dann BF Error
E479: 022D	LD	$13,#1		 Kennzeichen fr beliebigen Namen setzen
E47B: 7735DB	CAL	&hDB35		 Textzeiger wieder holen und setzen
~Seite 199
--  --  --  --  --  --  --  --  --  -->	IZ ZEIGER AUF WORK-PUFFER
E47E: D640F468	PRE	IZ,&h68F4	 IZ Zeiger auf WORK-Puffer
E482: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	RS232C-PARAMETER AUS FILENAME LESEN
E483: D640006C	PRE	IZ,&h6C00	 IZ Zeiger auf RS232C-Parameter
E487: A90C	LDW	$12,(IZ+#0)	 diese holen
E489: 770CE5	CAL	&hE50C		 DIP-Schalter des Interfaces abfragen
E48C: 7725E5	CAL	&hE525		 Komma berlesen und Zeichen lesen
E48F: B576	JR	C,&hE506	 String zu Ende? dann ->
E491: B015	JR	Z,&hE4A7	 war Komma da? dann ->
E493: 770A01	CAL	&h010A		 ist es keine Ziffer?
E496: B12C	JR	NC,&hE4C3	  dann SN Error ->
E498: 410038	SBC	$0,"8"		 grer als 7?
E49B: B127	JR	NC,&hE4C3	  dann SN Error ->
E49D: 1B40	INV	$0		 zur Baudrate wandeln
E49F: 1A20	DIU	$0		 |
E4A1: 771AE5	CAL	&hE51A		 und in Parameter einblenden
E4A4: 7754E5	CAL	&hE554		 ein Zeichen weiter evtl Komma berlesen
E4A7: 7725E5	CAL	&hE525		 Komma berlesen und Zeichen lesen
E4AA: B55B	JR	C,&hE506	 String zu Ende? dann ->
E4AC: B01C	JR	Z,&hE4C9	 war Komma da? dann ->
E4AE: 4C0CF9	AN	$12,%11111001	 gerade Paritt setzen
E4B1: 410045	SBC	$0,"E"		 ist gelesenes Zeichen ein "E"?
E4B4: B011	JR	Z,&hE4C6	  dann ->
E4B6: 4E0C02	OR	$12,2		 ungerade Paritt setzen
E4B9: 49004F	SB	$0,"O"		 ist gelesenes Zeichen ein "O"?
E4BC: B009	JR	Z,&hE4C6	  dann ->
E4BE: 4E0C04	OR	$12,4		 keine Paritt setzen
E4C1: 0020	ADC	$0,#1		 ist gelesenes Zeichen kein "N"?
E4C3: 31C0AB	JP	NC,&hABC0	  dann SN Error
E4C6: 7754E5	CAL	&hE554		 ein Zeichen weiter evtl Komma berlesen
E4C9: 4202F7	LD	$2,%11110111	 Bit fr Zeichenbitlnge holen
E4CC: D1033738	LDW	$3,"78"		 mgliche Zeichen dafr holen
E4D0: 772CE5	CAL	&hE52C		 Parameter entsprechend korrigieren
E4D3: 4202EF	LD	$2,%11101111	 Bit fr Stoppbitlnge holen
E4D6: D1033132	LDW	$3,"12"		 mgliche Zeichen dafr holen
E4DA: 772CE5	CAL	&hE52C		 Parameter entsprechend korrigieren
E4DD: 42044E	LD	$4,"N"		 mgliches Zeichen holen
E4E0: D102FB43	LDW	$2,&h43FB	 "C" und %11111011 holen
E4E4: 772CE5	CAL	&hE52C		 CTS-Steuerung feststellen
E4E7: D102F744	LDW	$2,&h44F7	 "D" und %11110111 holen
E4EB: 772CE5	CAL	&hE52C		 DSR-Steuerung feststellen
E4EE: D102EF43	LDW	$2,&h43EF	 "C" und %11101111 holen
E4F2: 772CE5	CAL	&hE52C		 CD-Steuerung feststellen
E4F5: D102FD42	LDW	$2,&h42FD	 "B" und %11011111 holen
E4F9: 772CE5	CAL	&hE52C		 Puffer-belegt-Steuerung feststellen
E4FC: D102FE53	LDW	$2,&h53FE	 "S" und %11111110 holen
E500: 772CE5	CAL	&hE52C		 SI/SO-Steuerung feststellen
E503: 770301	CAL	&h0103		 auf Ende des Strings berprfen
E506: 7701E8	CAL	&hE801		 WORK-Puffer mit Leerfilename besetzen
E509: 377BE4	JP	&hE47B		 und ->
~Seite 200
--  --  --  --  --  --  --  --  --  -->	DIP-SCHALTER DES INTERFACES ABFRAGEN
E50C: D640010C	PRE	IZ,&h0C01	 IZ Zeiger auf DIP-Schalter-Port
E510: 2D00	LDD	$0,(IZ+#0)	 einmal lesen
E512: 2D02	LDD	$2,(IZ+#0)	 noch einmal lesen
E514: 0142	SBC	$2,#2		 nicht gleich?
E516: B487	JR	NZ,&hE510	  dann Schleife ->
E518: 1860	BIU	$0		 Baudrate in obere Bits bringen
E51A: 1860	BIU	$0		  (*4)
E51C: 4C00E0	AN	$0,%11100000	 restliche Bits ausblenden
E51F: 4C0C1F	AN	$12,&h1F	 und in die Parameterbytes
E522: 0E4C	OR	$12,#2		  einfgen
E524: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	KOMMA BERLESEN UND ZEICHEN LESEN
E525: 773A01	CAL	&h013A		 evtl. vorhand. Komma berlesen
E528: F0	RTN	Z		 war eins da? dann zurck
E529: 37FF00	JP	&h00FF		 sonst auf Stringende testen
--  --  --  --  --  --  --  --  --  -->	BIT SETZEN ODER LSCHEN
E52C: 7725E5	CAL	&hE525		 Komma berlesen und Zeichen lesen
E52F: B52D	JR	C,&hE55D	 String zu Ende? dann ->
E531: F0	RTN	Z		 war ein Komma da? dann zurck
E532: 41044E	SBC	$4,"N"		 ist zweite Mglichkeit das "N"?
E535: B005	JR	Z,&hE53B	  dann ->
E537: 0CEC0204	ANJ	$12,$2,&hE53E	 im ersten Parameterbyte Bit lschen ->
E53B: 0C6D02	AN	$13,$2		 im zweiten Parameterbyte Bit lschen
E53E: 0144	SBC	$4,#2		 ist zweite Mglichkeit genannt?
E540: B013	JR	Z,&hE554	  dann ->
E542: 1B42	INV	$2		 sonst Bitmaske invertieren
E544: 41044E	SBC	$4,"N"		 ist zweite Mglichkeit des "N"?
E547: B005	JR	Z,&hE54D	  dann ->
E549: 0EEC0204	ORJ	$12,$2,&hE550	 im ersten Parameterbyte Bit setzen
E54D: 0E6D02	OR	$13,$2		 im zweiten Parameterbyte Bit setzen
E550: 0143	SBC	$3,#2		 ist nicht erste Mglichkeit genannt?
E552: B407	JR	NZ,&hE55A	  dann ->
--  --  --  --  --  --  --  --  --  -->	EIN ZEICHEN WEITER EVTL. KOMMA BERLESEN
E554: 2C20	LDD	$0,(IX+#1)	 nchstes Zeichen lesen
E556: 773A01	CAL	&h013A		 evtl. vorhand. Komma berlesen
E559: F0	RTN	Z		 war eins da? dann zurck
E55A: 370301	JP	&h0103		 auf Ende des Strings berprfen
--  --  --  --  --  --  --  --  --  --	VORZEITIGES STRINGENDE ERREICHT
E55D: AE00	PPSW	$0		 Rcksprungadresse lschen
E55F: B7DA	JR	&hE506		  und ->

=== MEN-MODUS ROUTINEN ========================================================
-------------------------------------->	EINSPRUNG AUS
E561: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
E564: 02800B	LDJ	$0,#0,&hE571	 Kennzeichen fr Einstieg setzen und ->
-------------------------------------->	MEN-TASTE VERARBEITEN
E567: 773892	CAL	&h9238		 I/O-Aktiv-Flag lschen
E56A: A900	LDW	$0,(IZ+#0)	 Betriebsmodus holen
E56C: 440040	ANC	$0,&h40		 schon im MEN-Modus?
E56F: B42A	JR	NZ,&hE59A	  dann ->
E571: D1014000	LDW	$1,&h0040	 MEN-Modus und erste Menteil setzen
E575: A301	STIW	$1,(IZ+#0)	 |
E577: 231F	STI	$31,(IZ+#0)	 Hauptmenmodus setzen
E579: 44000F	ANC	$0,&h0F		 aus BASIC- oder einem der EDIT-Modi
E57C: B42E	JR	NZ,&hE5AB	  gekommen? dann ->
~Seite 201
E57E: 77B4E6	CAL	&hE6B4		 Men-Modus vorbereiten
E581: 021D	LD	$29,#0		 Cursor auf linke Spalte
E583: D640956F	PRE	IZ,&h6F95	 IZ Zeiger auf Men-Headertabelle
E587: 420806	LD	$8,6		 Zhler auf 6 anzuzeigende Files setzen
E58A: 77CCE6	CAL	&hE6CC		 Zeiger auf nchsten Fileheader setzen
E58D: B507	JR	C,&hE595	 am Ende der Directories? dann ->
E58F: A306	STIW	$6,(IZ+#0)	 sonst Zeiger in die Men-Headertabelle
E591: 0928	SB	$8,#1		 Zhler herabsetzen
E593: B48A	JR	NZ,&hE58A	 noch mehr? dann Schleife ->
E595: 77A8E9	CAL	&hE9A8		 Cursor setzen
E598: B73B	JR	&hE5D4		 und ->
--  --  --  --  --  --  --  --  --  --	RECHNER WAR SCHON IM MEN-MODUS
E59A: D6004D69	PRE	IX,&h694D	 IX Zeiger auf ACJMP-Vektor
E59E: D10354EF	LDW	$3,&hEF54	 $3/4 Zeiger auf DISK-BRK-Routine
E5A2: BA03	SBCW	(IX+#0),$3	 ist DISK-BRK-Routine aktiv?
E5A4: B0B4	JR	Z,&hE571	  dann ->
E5A6: 253F	STD	$31,(IZ+#1)	 sonst Menteilnummer zurcksetzen
E5A8: 373092	JP	&h9230		 und Sprung ber ACJMP ->
---  --  --  --  --  --  --  --  --  --	AUFRUF AUS BASIC-/EDIT-MODI
E5AB: A910	LDW	$16,(IZ+#0)	 Zeiger auf aktiven Fileheader holen
E5AD: 77B4E6	CAL	&hE6B4		 MEN-Modus vorbereiten
E5B0: 0205	LD	$5,#0		 Flag zurcksetzen
E5B2: 77F5E6	CAL	&hE6F5		 die zwei nchsten Eintrge holen
E5B5: B51E	JR	C,&hE5D4	 war schon der letzte? dann ->
E5B7: B409	JR	NZ,&hE5C1	 nur noch ein Eintrag? dann ->
E5B9: 817006	SBCW	$16,$6		 ist es nicht der zweite?
E5BC: B404	JR	NZ,&hE5C1	  dann ->
E5BE: 08B306	ADJ	$19,#1,&hE5C6	 sonst Cursor erhhen und ->
E5C1: 817008	SBCW	$16,$8		 ist es der nicht erste Eintrag?
E5C4: B406	JR	NZ,&hE5CB	  dann ->
E5C6: 0225	LD	$5,#1		 Flag fr "Fileheader gefunden" setzen
E5C8: 77B2E9	CAL	&hE9B2		 Men-Cursor speichern
E5CB: 411304	SBC	$19,4		 noch nicht sechs Eintrge gelesen?
E5CE: B59D	JR	C,&hE5B2	  dann Schleife ->
E5D0: 0125	SBC	$5,#1		 Fileheader noch nicht gefunden?
E5D2: B4A1	JR	NZ,&hE5B2	  dann Schleife ->
--  --  --  --  --  --  --  --  --  -->	MEN ANZEIGEN
E5D4: 77E704	CAL	&h04E7		 Display- und Grafikpuffer lschen
E5D7: D6400061	PRE	IZ,&h6100	 IZ Zeiger auf Displaypuffer
E5DB: 421D06	LD	$29,6		 Zhler auf 6 Eintrge setzen
E5DE: D11B956F	LDW	$27,&h6F95	 $27/28 Zeiger auf Men-Headertabelle
E5E2: 91661B	LDW	$6,($27)	 Eintrag nach $6/7 holen
E5E5: 481B02	AD	$27,2		 Zeiger auf nchsten Eintrag setzen
E5E8: 8126	SBCW	$6,#1		 Eintrag leer?
E5EA: B510	JR	C,&hE5FB	  dann ->
E5EC: 9606	PRE	IX,$6		 sonst IX Zeiger auf Fileheader
E5EE: 776EE7	CAL	&hE76E		 gesamte File-Information in Register
E5F1: E300E0	STI8	$0,(IZ+#0)	  holen und im Displaypuffer speichern
E5F4: E308E0	STI8	$8,(IZ+#0)	  |
E5F7: 093D	SB	$29,#1		 Zhler herabsetzen
E5F9: B498	JR	NZ,&hE5E2	 noch einmal? dann Schleife ->
E5FB: 77D1E8	CAL	&hE8D1		 File-Cursor anzeigen
E5FE: 370E95	JP	&h950E		 Menpunkte anz. & Haupt-Eingabeschl. ->
~Seite 202
--  --  --  --  --  --  --  --  --  -->	MEN-BRK-ROUTINE
E601: D7004A6B	PRE	SS,&h6B4A	 Systemstackzeiger zurcksetzen
E605: 77DDDD	CAL	&hDDDD		 Userstackzeiger zurcksetzen
E608: 77E190	CAL	&h90E1		 Ausgabe auf Display lenken
E60B: 7758E3	CAL	&hE358		 Interface inaktivieren
E60E: 77C6AD	CAL	&hADC6		 Hauptmenmodus setzen
E611: B7BE	JR	&hE5D4		 zum Anzeigen des Mens ->
-------------------------------------->	TASTENVERARBEITUNG IM MEN-MODUS
E613: 4100F0	SBC	$0,240		 MEMO-Taste?
E616: B045	JR	Z,&hE65C	  dann ->
E618: 4100F5	SBC	$0,245		 nicht die LCKEY-Taste?
E61B: B409	JR	NZ,&hE625	  dann ->
E61D: 0123	SBC	$3,#1		 im Hauptmenmodus?
E61F: 35F094	JP	C,&h94F0	  dann Men weiterschalten
E622: 371C92	JP	&h921C		 sonst ->
E625: 0123	SBC	$3,#1		 nicht im Hauptmenmodus?
E627: B121	JR	NC,&hE649	  dann ->
E629: 0100	SBC	$0,#0		 wurde kein Shortkey eingegeben?
E62B: B406	JR	NZ,&hE632	  dann ->
E62D: 77D901	CAL	&h01D9		 Shortkeyoffset berlesen
E630: B74D	JR	&hE67E		 zurck zur Eingaberoutine ->
E632: D640A4EF	PRE	IZ,&hEFA4	 IZ Zeiger auf Men-Tastensprungtabelle
E636: 4900FC	SB	$0,252		 ist Zeichen <ANS?
E639: B51F	JR	C,&hE659	 dann ber Tabelle springen ->
E63B: 6D0112	LDD	$1,(IZ+18)	 IZ Zeiger auf Men-Sensortastentabelle
E63E: 1860	BIU	$0		 Offset erhhen
E640: 1842	BID	$2		 Menteilnummer in den Offset
E642: 1842	BID	$2		  einbringen
E644: 0E42	OR	$2,#2		  |
E646: 37A1D8	JP	&hD8A1		 und Sprung ber Sprungtabelle ->
--  --  --  --  --  --  --  --  --  --	NICHT IM HAUPTMENMODUS
E649: B012	JR	Z,&hE65C	 im Men-Eingabemodus? dann ->
E64B: D640C8EF	PRE	IZ,&hEFCE-6	 IZ Zeiger auf Untermen-Tabellenzeiger
E64F: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
E651: A96503	LDW	$5,(IZ+$3)	 $5/6 Zeiger auf Untermen-Sprungtabelle
E654: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
E657: 9645	PRE	IZ,$5		 IZ Zeiger auf Untermen-Sprungtabelle
E659: 376E93	JP	&h936E		 ber Tabelle springen ->
--  --  --  --  --  --  --  --  --  --	IM MEN-EINGABEMODUS
E65C: 4100F4	SBC	$0,244		 IN-Taste gedrckt?
E65F: B015	JR	Z,&hE675	  dann ->
E661: B11C	JR	NC,&hE67E	 zurck zur Eingaberoutine
E663: 41000D	SBC	$0,13		 nicht die EXE-Taste? dann
E666: 34FD93	JP	NZ,&h93FD	  evtl. ANS, OUT, Shortkeys ausgeben ->
E669: 771990	CAL	&h9019		 Zeilenlnge festst., Eing.puffer lschen
E66C: 771091	CAL	&h9110		 NoScroll-Bit lschen
E66F: 7715B7	CAL	&hB715		 Drei-Zeilen-Modus setzen
E672: 373F91	JP	&h913F		 Cursorblinken abschalten ->
--  --  --  --  --  --  --  --  --  --	IN-TASTE VERARBEITEN
E675: 774F92	CAL	&h924F		 Zeile in den CALC-Speicher kopieren
E678: 421018	LD	$16,&h18	 Zeichen fr "Zeile lschen" holen
E67B: 77D795	CAL	&h95D7 [OUTAC]	  und ausgeben
E67E: B72D	JR	&hE6AC		 zurck zur Eingaberoutine
~Seite 203
-------------------------------------->	TEST AUF ANGESCHLOSSENES INTERFACE
E680: D103FA6B	LDW	$3,&h6BFA	 $3/4 Zeiger auf Interfaceflag
E684: 116103	LD	$1,($3)		 dieses holen
E687: 0021	ADC	$1,#1		 kein Interface vorhanden?
E689: F7	RTN			 zurck
-------------------------------------->	IZ ZEIGER AUF MEN-CURSUR
E68A: D640946F	PRE	IZ,&h6F94	 IZ Zeiger auf Men-Cursor
E68E: F7	RTN			 zurck
-------------------------------------->	DATUM ABFRAGEN
E68F: D1006461	LDW	$0,"da"		 Text "date?" holen
E693: 420274	LD	$2,"t"		 |
E696: D103653F	LDW	$3,"e?"		 |
E69A: 77B995	CAL	&h95B9		 IZ Zeiger auf ASCII-Menzeilenpuffer
E69D: E10080	ST5	$0,(IZ+#0)	 Text dort speichern
E6A0: 420665	LD	$6,101		 Cursorpos. u. Displ.Zeilenbeginn holen
--  --  --  --  --  --  --  --  --  -->	MEN-EINGABEMODUS VORBEREITEN
E6A3: 023D	LD	$29,#1		 Men-Eingabemodus setzen {funkt. nicht}
E6A5: D1077F04	LDW	$7,&h047F	 Ende der Display-Zeile holen
E6A9: 7734B7	CAL	&hB734		 Eingabe vorbereiten
E6AC: 37E693	JP	&h93E6		 wieder in die Eingaberoutine
-------------------------------------->	ZEIGER AUF DIREKTMODUSFLAG
E6AF: D640536F	PRE	IZ,&h6F53	 IZ Zeiger auf Direktmodusflag
E6B3: F7	RTN			 zurck
-------------------------------------->	MEN-MODUS VORBEREITEN
E6B4: D10201E6	LDW	$2,&hE601	 $2/3 Adresse der MEN-BRK-Routine
E6B8: 77C390	CAL	&h90C3		 diese in den ACJMP-Vektor bringen
E6BB: D102946F	LDW	$2,&h6F94	 $2/3 Zeiger auf Men-Cursor
E6BF: 42040D	LD	$4,13		 $4/5 Lnge der Tabelle
E6C2: 771690	CAL	&h9016		 Bereich lschen
--  --  --  --  --  --  --  --  --  -->	$6/7 AUF SPEICHEROBERGRENZE SETZEN
E6C5: D6004B69	PRE	IX,&h694B	 IX Zeiger auf Speicherobergrenze
E6C9: A806	LDW	$6,(IX+#0)	 diese holen
E6CB: F7	RTN			 zurck
-------------------------------------->	ZEIGER AUF NCHSTEN FILEHEADER SETZEN
E6CC: D1004769	LDW	$0,&h6947	 $0/1 Zeiger auf Beginn der Directories
E6D0: 9140	LDW	$0,(#2)		 diesen holen
E6D2: 8146	SBCW	$6,#2		 schon dort angekommen?
E6D4: B01D	JR	Z,&hE6F2	  dann mit C=1 zurck ->
E6D6: D1002000	LDW	$0,32		 sonst Zeiger auf nchsten Fileheader
E6DA: 8946	SBW	$6,#2		  setzen
E6DC: F7	RTN			 zurck
-------------------------------------->	WENN MGLICH, ZEIGER AUF VORHERIGEN
							FILEHEADER SETZEN
E6DD: D1004B69	LDW	$0,&h694B	 $0/1 Zeiger auf Speicherobergrenze
E6E1: 9140	LDW	$0,(#2)		 diese holen
E6E3: D1022000	LDW	$2,32		 Lnge eines Fileheaders holen
E6E7: 896002	SBW	$0,$2		 Zeiger auf nchsten Fileheader setzen
E6EA: 8146	SBCW	$6,#2		 richtigen Fileheader gefunden?
E6EC: B005	JR	Z,&hE6F2	  dann mit C=1 zurck ->
E6EE: 886602	ADW	$6,$2		 sonst Zeiger auf vorherigen Fileheader
E6F1: F7	RTN			 und mit C=0 zurck
E6F2: 013F	SBC	$31,#1		 C=1 setzen
E6F4: F7	RTN			 zurck
~Seite 204
-------------------------------------->	NCHSTE ZWEI EINTRGE IN MEN-HEADER-
								TABELLE HOLEN
E6F5: 77CCE6	CAL	&hE6CC		 Zeiger auf nchsten Fileheader holen
E6F8: F5	RTN	C		 war schon der letzte? dann zurck
E6F9: D640956F	PRE	IZ,&h6F95	 IZ Zeiger auf Men-Headertabelle
E6FD: 0213	LD	$19,#0		 Cursor auf Null setzen
E6FF: E90060	LD4	$0,(IZ+#0)	 zwei Eintrge holen
E702: 8120	SBCW	$0,#1		 ist der erste leer?
E704: B519	JR	C,&hE71E	  dann ->
E706: 411304	SBC	$19,4		 Cursor nicht auf dem fnften Eintrag?
E709: B426	JR	NZ,&hE730	  dann ->
E70B: D640996F	PRE	IZ,&h6F99	 IZ Zeiger in Men-Headertabelle
E70F: E908E0	LD8	$8,(IZ+#0)	 dritten bis sechsten Eintrag holen
E712: 6D8004	LDD	$0,(IZ-4)	 IZ Zeiger auf Men-Headertabelle
E715: E308E0	STI8	$8,(IZ+#0)	 als ersten bis vierten Eintrag setzen
E718: C94060	SBB4	$0,#2		 fnften und sechsten Eintrag lschen
E71B: E10060	ST4	$0,(IZ+#0)	 |
E71E: A306	STIW	$6,(IZ+#0)	 aktuellen Fileheaderzeiger ablegen
E720: 826806	LDW	$8,$6		 Fileheaderadresse nach $8/9 holen
E723: 77CCE6	CAL	&hE6CC		 Zeiger auf nchsten Fileheader holen
E726: B506	JR	C,&hE72D	 war's der letzte? dann mit Z=0 zurck ->
E728: A106	STW	$6,(IZ+#0)	 Fileheaderzeiger ablegen
E72A: 011F	SBC	$31,#0		 Z=1 setzen
E72C: F7	RTN			 zurck
E72D: 011E	SBC	$30,#0		 Z=0 setzen
E72F: F7	RTN			 zurck
E730: EB0060	LDI4	$0,(IZ+#0)	 zwei Eintrge berlesen
E733: 489302B7	ADJ	$19,2,&hE6FF	 File-Cursor erhhen und Schleife ->
-------------------------------------->	DOTMK: TEILE DES DISPLAYPUFFERS IN DEN
							GRAFIKPUFFER BRINGEN
E737: 02600A	LD	$0,$10		 Startposition holen
E73A: 094B	SB	$11,#2		 Anzahl der Zeichen feststellen
E73C: 420161	LD	$1,&h61		 zum Zeiger komplettieren
E73F: 9640	PRE	IZ,$0		 IZ Zeiger in Displaypuffer
E741: 02600A	LD	$0,$10		 Position holen
E744: 77A605	CAL	&h05A6		 Adresse im Grafikpuffer berechnen
E747: 2B05	LDI	$5,(IZ+#0)	 Zeichen aus Displaypuffer holen
E749: 77EF02	CAL	&h02EF		 und in den Grafikpuffer bringen
E74C: 092B	SB	$11,#1		 Zhler herabsetzen
E74E: F5	RTN	C		 fertig? dann zurck
E74F: 08AA90	ADJ	$10,#1,&hE741	 sonst Position erhhen, Schleife ->
-------------------------------------->	CURSORZEIGER & AUSGEW. FILEHEADER HOLEN
E752: 779FEF	CAL	&hEF9F		 IX Zeiger auf Cursorzeiger
--  --  --  --  --  --  --  --  --  -->	AUSGEWHLTEN FILEHEADER HOLEN
E755: 778AE6	CAL	&hE68A		 IZ Zeiger auf Men-Cursor
E758: 2900	LD	$0,(IZ+#0)	 diesen holen
E75A: BB3E	SBCW	(IZ+#1),$30	 erster Eintrag leer?
E75C: 355095	JP	C,&h9550	  dann in die Haupt-Eingabeschleife ->
E75F: 0221	LD	$1,#1		 sonst Offset auf den vom Cursor
E761: 0841	AD	$1,#2		  festgelegten Eintrag berechnen
E763: 0841	AD	$1,#2		  |
E765: A96601	LDW	$6,(IZ+$1)	 Eintrag holen
E768: 8126	SBCW	$6,#1		 ist dieser leer?
E76A: F7	RTN			 zurck
~Seite 205
-------------------------------------->	GESAMTE FILE-INFORMATION IN REGISTER
E76B: 029004	LDJ	$16,#0,&hE771	 C.Boot und Preset zurcksetzen und
--  --  --  --  --  --  --  --  --  -->	FILE-INFORMATION AUS FILEHEADER HOLEN
E76E: E810A0	LD6	$16,(IX+#0)	 C.Boot-/Preset-Flag und Filetyp holen
E771: 779EE7	CAL	&hE79E		 kompletten File-Namen in Register holen
E774: D10E2020	LDW	$14,"  "	 Leerzeichen holen
E778: 420C23	LD	$12,"#"		 Kennzeichen fr C.Boot-File setzen
E77B: 0130	SBC	$16,#1		 ist es C.Boot- oder Preset-File?
E77D: B104	JR	NC,&hE782	  dann ->
E77F: 420C20	LD	$12," "		 sonst Kennzeichen lschen
E782: B404	JR	NZ,&hE787	 kein Preset-File? dann ->
E784: 420C2A	LD	$12,"*"		 Kennzeichen fr Preset-File setzen
E787: 420D4D	LD	$13,"M"		 Kennzeichen fr ML-File setzen
E78A: 411510	SBC	$21,16		 ist es kein BASIC-File?
E78D: B405	JR	NZ,&hE793	  dann ->
E78F: 420D42	LD	$13,"B"		 sonst Kennzeichen fr BASIC-File setzen
E792: F7	RTN			 zurck
E793: F5	RTN	C		 ist es ein ML-File? dann zurck
E794: 420D53	LD	$13,"S"		 Kennzeichen fr sequent. File setzen
E797: 411531	SBC	$21,49		 ist es denn eins?
E79A: F5	RTN	C		  dann zurck
E79B: 092D	SB	$13,#1		 Kennz. fr Direktzugriffs-File setzen
E79D: F7	RTN			 zurck
-------------------------------------->	FILENAME AUS FILEHEADER IN REG. HOLEN
E79E: 6A0006	LDI	$0,(IX+6)	 Filename holen
E7A1: EA01C0	LDI7	$1,(IX+#0)	 |
E7A4: 42082E	LD	$8,"."		 "." setzen
E7A7: EA0940	LDI3	$9,(IX+#0)	 Extension holen
E7AA: F7	RTN			 zurck
-------------------------------------->	UMBENENNUNG ABFRAGEN
E7AB: 77F28F	CAL	&h8FF2		 Men-Eing.modus setzen, Menz.p. lschen
E7AE: D1006E65	LDW	$0,"ne"		 Text "new name?" holen
E7B2: D1027720	LDW	$2,"w "		 |
E7B6: D1046E61	LDW	$4,"na"		 |
E7BA: D1066D65	LDW	$6,"me"		 |
E7BE: 42083F	LD	$8,"?"		 |
E7C1: 77B995	CAL	&h95B9		 IZ Zeiger auf Menzeilenpuffer
E7C4: E300E0	STI8	$0,(IZ+#0)	 Text dort speichern
E7C7: 2508	STD	$8,(IZ+#0)	 |
E7C9: 420669	LD	$6,105		 Cursorpos. u. Displayz.-Beginn setzen
E7CC: 77A3E6	CAL	&hE6A3		 Men-Eingabe machen lassen
E7CF: 421061	LD	$16,&h61	 High-Byte des Displaypuffers holen
E7D2: D600CC68	PRE	IX,&h68CC	 IX Zeiger auf Displayzeilen-Beginn
E7D6: 2C0F	LDD	$15,(IX+#0)	 diesen holen
E7D8: 964F	PRE	IZ,$15		 IZ Zeiger in den Displaypuffer
E7DA: 0211	LD	$17,#0		 Zhler zurcksetzen
E7DC: 2B00	LDI	$0,(IZ+#0)	 Zeichen lesen
E7DE: 0120	SBC	$0,#1		 Endekennzeichen erreicht?
E7E0: B504	JR	C,&hE7E5	  dann ->
E7E2: 08B188	ADJ	$17,#1,&hE7DC	 sonst Zhler erhhen und Schleife ->
E7E5: 771CB2	CAL	&hB21C		 Filename aus String nach WORK bringen
E7E8: 777EE4	CAL	&hE47E		 IZ Zeiger auf WORK-Puffer
E7EB: EB08E0	LDI8	$8,(IZ+#0)	 Filename holen
E7EE: E90440	LD3	$4,(IZ+#0)	 Extension holen
~Seite 206
--  --  --  --  --  --  --  --  --  -->	IST KEIN FILENANE ANGEGEBEN? DANN Z=1
E7F1: D1002020	LDW	$0,"  "		 Leerzeichen zum Vergleich holen
E7F5: 8242	LDW	$2,#2		 |
E7F7: C74440	XRC3	$4,#2		 Extension angegeben?
E7FA: F4	RTN	NZ		  dann zurck
E7FB: 0247	LD	$7,#2		 noch ein Leerzeichen holen
E7FD: C748E0	XRC8	$8,#2		 Filename angegeben?
E800: F7	RTN			 zurck
-------------------------------------->	WORK-PUFFER LSCHEN
E801: 777EE4	CAL	&hE47E		 IZ Zeiger auf WORK-Puffer
E804: D100200B	LDW	$0,&h0B20	 Zhler auf 11 und Leerzeichen holen
E808: 2300	STI	$0,(IZ+#0)	 Leerzeichen in den Puffer schreiben
E80A: 0921	SB	$1,#1		 Zhler herabsetzen
E80C: B485	JR	NZ,&hE808	 noch ein Zeichen? dann Schleife ->
E80E: F7	RTN			 zurck
-------------------------------------->	FILE BELIEBIGEN FILETYPS SUCHEN
E80F: 0D8407	NAJ	$4,#0,&hE818	 Kennzeichen fr beliebig setzen und ->
--  --  --  --  --  --  --  --  --  -->	DEFAULT-DATENFILE SUCHEN
E812: 420424	LD	$4,36		 Filetyp auf "S" setzen
E815: 7701E8	CAL	&hE801		 WORK lschen
--  --  --  --  --  --  --  --  --  -->	FNSCH: FILE IM DIRECTORY SUCHEN
E818: 77C5E6	CAL	&hE6C5		 Zeiger auf Speicherobergrenze setzen
E81B: 77CCE6	CAL	&hE6CC		 Zeiger auf nchsten Fileheader setzen
E81E: F5	RTN	C		 Directory zu Ende? dann zurck
E81F: 9606	PRE	IX,$6		 IX Zeiger auf Fileheader
E821: 777EE4	CAL	&hE47E		 IZ Zeiger auf WORK-Puffer
E824: 42000B	LD	$0,11		 Zhler auf 11 setzen
E827: 6A0305	LDI	$3,(IX+5)	 gefundenen Filetyp holen
E82A: 0024	ADC	$4,#1		 kein bestimmter File-Typ gesucht?
E82C: B506	JR	C,&hE833	  dann ->
E82E: 016403	SBC	$4,$3		 stimmt Filetyp nicht berein?
E831: B497	JR	NZ,&hE81B	  dann Schleife ->
E833: 2A01	LDI	$1,(IX+#0)	 Zeichen aus Fileheader-Filename lesen
E835: 3B01	SBC	(IZ+#0),$1	 nicht dasselbe wie das im WORK-Puffer?
E837: B49D	JR	NZ,&hE81B	  dann Schleife ->
E839: 2B01	LDI	$1,(IZ+#0)	 Zeichen im WORK-Puffer berlesen
E83B: 0920	SB	$0,#1		 Zhler herabsetzen
E83D: B48B	JR	NZ,&hE833	 nicht alles verglichen? dann Schl. ->
E83F: 011E	SBC	$30,#0		 C=0 setzen
E841: F7	RTN			 zurck
-------------------------------------->	KILL: FILE IM SPEICHER LSCHEN
E842: 9E04	GRE	IX,$4		 IX ablegen
E844: 826006	LDW	$0,$6		 Fileheaderadresse kopieren
E847: E60760	PHS4	$7		 IX und Fileheaderadresse retten
E84A: 7773B3	CAL	&hB373		 File aus Speicher lschen
E84D: EE0460	PPS4	$4		 IX und Fileheaderadresse wieder holen
E850: 9604	PRE	IX,$4		 IX wieder setzen
E852: D1022000	LDW	$2,32		 C.Boot-, Preset- und Aktivfileheader-
E856: B70B	JR	&hE862		  zeiger um Lnge e. Eintrags erhhen ->
-------------------------------------->	NACH DEM FILEEINSETZEN C.BOOT-, PRESET-
					  UND AKTIVFILEHEADER-ZEIGER KORRIGIEREN
E858: D102E0FF	LDW	$2,-32		 Additionsoffset setzen
E85C: D6404969	PRE	IZ,&h6949	 IZ Zeiger auf Beginn des BASIC-Dir.
E860: A906	LDW	$6,(IZ+#0)	 diesen holen
~Seite 207
--  --  --  --  --  --  --  --  --  -->	C.BOOT-, PRESET- UND AKTIVFILEHEADER-
							ZEIGER KORRIGIEREN
E862: D10405FF	LDW	$4,&hFF05	 Zhler $4 auf 5 und $5=&hFF setzen
E866: D640476F	PRE	IZ,&h6F47	 IZ Zeiger C.Boot-Fileheader-Zeiger
E86A: A900	LDW	$0,(IZ+#0)	 C.Boot-/Preset-Fileheader-Zeiger holen
E86C: 8120	SBCW	$0,#1		 C.Boot-/Preset-File nicht vorhanden?
E86E: B51D	JR	C,&hE88C	  dann ->
E870: 8146	SBCW	$6,#2		 Fileheader liegt im Speicher hher?
E872: B519	JR	C,&hE88C	  dann Eintrag nicht verndern ->
E874: B424	JR	NZ,&hE899	 nicht Zeiger auf angegeb. File? dann ->
E876: 0103	SBC	$3,#0		 soll Fileeintrag eingesetzt werden?
E878: B420	JR	NZ,&hE899	  dann ->
E87A: 8940	SBW	$0,#2		 Register auf Null setzen
E87C: 410405	SBC	$4,5		 nicht der C.Boot-Headerzeiger?
E87F: B40C	JR	NZ,&hE88C	  dann ->
E881: A100	STW	$0,(IZ+#0)	 C.Boot-Fileheaderzeiger lschen
E883: 619F05	ST	$31,(IZ-5)	 C.Boot-Status auf inaktiv setzen
E886: 618504	ST	$5,(IZ-4)	 Datum lschen
E889: 618502	ST	$5,(IZ-2)	 Uhrzeit lschen
E88C: A300	STIW	$0,(IZ+#0)	 Eintrag lschen, IZ auf nchsten Eintrag
E88E: 0924	SB	$4,#1		 Zhler herabsetzen
E890: F5	RTN	C		  dann zurck
E891: B4A8	JR	NZ,&hE86A	 noch ein Durchlauf? dann Schleife ->
E893: D640546F	PRE	IZ,&h6F54	 IZ Zeiger auf Aktivfileheader-Zeiger
E897: B7AE	JR	&hE86A		 und Schleife ->
E899: 88E00290	ADWJ	$0,$2,&hE88C	 Fileheader-Zeiger korrigieren und ->
-------------------------------------->	FILE-LSCHEN ABFRAGEN
E89D: D1106B69	LDW	$16,"ki"	 Text "kill" holen
E8A1: D1126C6C	LDW	$18,"ll"	 |
E8A5: 77F78F	CAL	&h8FF7		 Menzeilenpuffer lschen
E8A8: 77B995	CAL	&h95B9		 IZ Zeiger auf Menzeilenpuffer
E8AB: D1143F79	LDW	$20,"?y"	 Text "?y/n" holen
E8AF: D1162F6E	LDW	$22,"/n"	 |
E8B3: E110E0	ST8	$16,(IZ+#0)	 Text in den Menzeilenpuffer
E8B6: 772EB9	CAL	&hB92E		 Menzeile anzeigen
--  --  --  --  --  --  --  --  --  -->	KYIN: ABFRAGE DER TASTATUR AUF EXE & Y
E8B9: 77A094	CAL	&h94A0		 Taste erwarten, Sondertasten verarb.
E8BC: 0120	SBC	$0,#1		 ist kein Shortkey eingegeben worden?
E8BE: B106	JR	NC,&hE8C5	  dann ->
E8C0: 77D901	CAL	&h01D9		 sonst Shortkeyoffset berlesen
E8C3: 0D00	NA	$0,#0		 Kennzeichen &hFF setzen
E8C5: 41000D	SBC	$0,&h0D		 ist es EXE gewesen?
E8C8: F0	RTN	Z		  dann mit Z=1 zurck
E8C9: 410059	SBC	$0,"Y"		 oder war es "Y"?
E8CC: F0	RTN	Z		  dann auch mit Z=1 zurck
E8CD: 410079	SBC	$0,"y"		 oder vielleicht "y"?
E8D0: F7	RTN			 zurck
-------------------------------------->	AKTUELLEN DATEINAMEN INVERTIEREN
E8D1: D10A005F	LDW	$10,&h5F00	 $10=0, $11=95 setzen
E8D5: 7737E7	CAL	&hE737		 erste drei Zeilen in den Grafikpuffer
E8D8: D600946F	PRE	IX,&h6F94	 IX Zeiger auf Men-Cursor
E8DC: 2801	LD	$1,(IX+#0)	 diesen holen
E8DE: 1A21	DIU	$1		 und zum Display-Cursor umrechnen
E8E0: 2828	LD	$8,(IX+#1)	 Low-Byte des ersten Eintrags holen
					  {Fehler? Sollte nicht das High-Byte
					   geholt werden?}
~Seite 208
E8E2: 779FEF	CAL	&hEF9F		 IZ Zeiger auf Cursorzeiger
E8E5: 420003	LD	$0,3
E8E8: 600008	ST	$0,(IX+8)	 Displaymodus setzen
E8EB: 28A0	LD	$0,(IX-#1)	 Eingabemodus holen
E8ED: 4E0008	OR	$0,%00001000	 NoScroll-Bit setzen
E8F0: 4C00FD	AN	$0,%11111101	 Cursorblinken lschen
E8F3: C96282	SBB5	$2,$2		 Displayoffset, Zeilenparameter lschen
E8F6: 42075F	LD	$7,95		 Displayende holen
E8F9: E0A0E0	ST8	$0,(IX-#1)	 alles setzen
E8FC: 9A41	BYDW	$1		 Cursor nach $0 bringen
E8FE: 0108	SBC	$8,#0		 erster Eintrag nicht leer?
					 {funktioniert ohne RP-32 nicht korrekt}
E900: 748390	CAL	NZ,&h9083	  dann Dateiname invertieren
E903: 372C02	JP	&h022C [DOTDI]	 Display auffrischen ->
--------------------------------------
E906: 0420	ANC	$0,#1		 Cursor in linker Spalte?
E908: B025	JR	Z,&hE92E	  dann ->
--  --  --  --  --  --  --  --  --  -->	MEN: CURSOR-RECHTS VERARBEITEN
E90A: 7752E7	CAL	&hE752		 Cursor- & ausgew. Fileheaderzeiger holen
E90D: 410005	SBC	$0,5		 Cursor nicht auf letztem Eintrag?
E910: B40D	JR	NZ,&hE91E	  dann ->
E912: 77F5E6	CAL	&hE6F5		 nchste zwei Eintrge holen
E915: B518	JR	C,&hE92E	 war schon der letzte? dann ->
E917: 778AE6	CAL	&hE68A		 IZ Zeiger auf Men-Cursor
E91A: 3F1E	SB	(IZ+#0),$30	 Men-Cursor nach links setzen
E91C: B743	JR	&hE960		 und Anzeigen des Mens ->
E91E: 420103	LD	$1,3		 Offset auf nchsten Eintrag setzen
E921: 7761E7	CAL	&hE761		 diesen holen
E924: B509	JR	C,&hE92E	 nicht vorhanden? dann ->
E926: 3D1E	AD	(IZ+#0),$30	 sonst Men-Cursor nach rechts setzen
E928: 77D003	CAL	&h03D0
E92B: 772D08	CAL	&h082D
E92E: 375095	JP	&h9550		 in die Haupt-Eingabewarteschleife ->
-------------------------------------->	MEN: CURSOR-RUNTER VERARBEITEN
E931: 7752E7	CAL	&hE752		 Cursor- & ausgew. Fileheaderzeiger holen
E934: 410004	SBC	$0,4		 Cursor auf vorletztem Eintrag?
E937: B014	JR	Z,&hE94C	  dann ->
E939: B117	JR	NC,&hE951	 oder auf letzten Eintrag? dann ->
E93B: 420105	LD	$1,5		 Offset auf bernchsten Eintrag setzen
E93E: 7761E7	CAL	&hE761		 diesen holen
E941: B5BC	JR	C,&hE906	 nicht vorhanden? dann ->
E943: 3D1E	AD	(IZ+#0),$30	 sonst Men-Cursor nach unten setzen
E945: 3D1E	AD	(IZ+#0),$30	 |
E947: 77CC03	CAL	&h03CC
E94A: B7A0	JR	&hE92B		 und ->
E94C: 77CCE6	CAL	&hE6CC		 Zeiger auf nchsten Fileheader setzen
E94F: B5A2	JR	C,&hE92E	 war schon der letzte? dann ->
E951: 77F5E6	CAL	&hE6F5		 nchste zwei Eintrge holen
E954: B5A7	JR	C,&hE92E	 war schon der letzte? dann ->
E956: B009	JR	Z,&hE960	 nur noch einer gewesen? dann ->
E958: 778AE6	CAL	&hE68A		 IZ Zeiger auf Men-Cursor
E95B: 420004	LD	$0,4		 Cursor auf vorletzten Eintrag setzen
E95E: 2500	STD	$0,(IZ+#0)	 |
E960: 772D08	CAL	&h082D
E963: 37D4E5	JP	&hE5D4		 zum Anzeigen des Mens
~Seite 209
-------------------------------------->	MEN: CURSOR-RAUF VERARBEITEN
E966: 7752E7	CAL	&hE752		 Cursor- & ausgew. Fileheaderzeiger holen
E969: 0205	LD	$5,#0		 nach Men-Rollen nichts ndern
E96B: 0120	SBC	$0,#1		 Cursor auf erstem Eintrag?
E96D: B51A	JR	C,&hE988	  dann ->
E96F: B00A	JR	Z,&hE97A	 oder auf dem zweiten? dann ->
E971: 3F1E	SB	(IZ+#0),$30	 sonst Mencursor nach oben setzen
E973: 3F1E	SB	(IZ+#0),$30	 |
E975: 77E103	CAL	&h03E1
E978: B7CE	JR	&hE92B		 und in die Haupt-Warteschleife ->
E97A: 77DDE6	CAL	&hE6DD		 Zeiger auf vorherigen File-Header setzen
E97D: B70A	JR	&hE988		 und ->
-------------------------------------->	MEN: CURSOR-LINKS VERARBEITEN
E97F: 7752E7	CAL	&hE752		 Cursor- & ausgew. Fileheaderzeiger holen
E982: 0120	SBC	$0,#1		 noch nicht in erster Zeile?
E984: B11C	JR	NC,&hE9A1	  dann ->
E986: 0225	LD	$5,#1		 nach Men-Rollen nichts ndern
E988: 77DDE6	CAL	&hE6DD		 Zeiger auf vorherigen File-Header setzen
E98B: B5DE	JR	C,&hE92E	 war schon erster gewesen? dann ->
E98D: 3D05	AD	(IZ+#0),$5	 Men-Cursor nach Rollen ndern
E98F: E928E0	LD8	$8,(IZ+#1)	 die ersten vier Eintrge holen
E992: 6D020C	LDD	$2,(IZ+12)	 Zeiger in letzten Eintrag setzen
E995: E50FE0	STD8	$15,(IZ+#0)	 als letzte vier Eintrge speichern
E998: A5A7	STDW	$7,(IZ-#1)	 zweiten Eintrag setzen
E99A: 77DDE6	CAL	&hE6DD		 Zeiger auf vorherigen File-Header setzen
E99D: A5A7	STDW	$7,(IZ-#1)	 ersten Eintrag setzen
E99F: B7C0	JR	&hE960		 zum Anzeigen des Mens ->
E9A1: 3F1E	SB	(IZ+#0),$30	 Men-Cursor links setzen
E9A3: 77E503	CAL	&h03E5
E9A6: B7AF	JR	&hE978		 und in die Haupt-Warteschleife ->
-------------------------------------->	CURSOR AUF DAS RICHTIGE FILE SETZEN
E9A8: 421305	LD	$19,5		 Cursor berechnen
E9AB: 097308	SB	$19,$8		 |
E9AE: 017D13	SBC	$29,$19		 ist Cursor nicht auf dem Bildschirm?
E9B1: F5	RTN	C		  dann zurck
--  --  --  --  --  --  --  --  --  -->	MEN-CURSOR SPEICHERN
E9B2: 778AE6	CAL	&hE68A		 IZ Zeiger auf Men-Cursor
E9B5: 2513	STD	$19,(IZ+#0)	 Cursor speichern
E9B7: F7	RTN			 zurck
-------------------------------------->
E9B8: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
E9BB: 251E	STD	$30,(IZ+#0)	 BASIC-Modus setzen
E9BD: B707	JR	&hE9C5		 und ->
--  --  --  --  --  --  --  --  --  -->	BASIC-ANWEISUNG CHAIN
E9BF: 779EE3	CAL	&hE39E		 Kanle schl., auf BASIC-Progr.modus pr.
E9C2: 775EDE	CAL	&hDE5E		 File laden/anhngen/vergleichen
E9C5: 7720B7	CAL	&hB720		 Start- u. Endadr. des akt. Files holen
E9C8: 9E06	GRE	IX,$6		 Zeiger auf Fileheader ablegen
E9CA: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
E9CD: 2D03	LDD	$3,(IZ+#0)	 diesen holen
E9CF: B70F	JR	&hE9DF		 und ->
~Seite 210
--  --  --  --  --  --  --  --  --  -->	[DISK  ]: EXE-TASTE VERARBEITEN
E9D1: 771BDE	CAL	&hDE1B		 File von Diskette laden
E9D4: 7720B7	CAL	&hB720		 Start- u. Endadr. des akt. Files holen
E9D7: 9E8604	GREJ	IX,$6,&hE9DD	 Zeiger auf Fileheader ablegen und
--  --  --  --  --  --  --  --  --  -->	MEN: EXE-TASTE VERARBEITEN
E9DA: 7755E7	CAL	&hE755		 ausgewhlten Fileheaderzeiger holen
E9DD: 0203	LD	$3,#0		 Kennzeichen fr CAL-Modus holen
E9DF: 9646	PRE	IZ,$6		 IZ Zeiger auf Aktivfileheader-Zeiger
E9E1: 6D0105	LDD	$1,(IZ+5)	 Filetyp holen
E9E4: 410110	SBC	$1,16		 ist es ein "B"-File?
E9E7: B010	JR	Z,&hE9F8	  dann ausfhren ->
E9E9: B11D	JR	NC,&hEA07	 oder ein "S"-File? dann editieren ->
E9EB: A607	PHSW	$7		 Zeiger auf Fileheader retten
E9ED: 77C795	CAL	&h95C7		 CLS auf Display ausgeben
E9F0: AE06	PPSW	$6		 Zeiger auf Fileheader wieder holen
E9F2: 77E2DD	CAL	&hDDE2		 Progr. in Userber. laden und starten
E9F5: 37E294	JP	&h94E2		 CAL-Modus einschalten ->
E9F8: 77BE95	CAL	&h95BE		 CAL-Modus setzen und CLS ausgeben
E9FB: D6000060	PRE	IX,&h6000	 IX Zeiger auf Eingabepuffer
E9FF: 241F	STD	$31,(IX+#0)	 Befehlsende setzen
EA01: 376AC0	JP	&hC06A		 und zum RUN-Befehl ->
-------------------------------------->	[EDIT  ]-TASTE VERARBEITEN
EA04: 7755E7	CAL	&hE755		 ausgewhlten Fileheaderzeiger holen
EA07: 9646	PRE	IZ,$6		  und nach IZ bringen
EA09: 690505	LD	$5,(IZ+5)	 Filetyp holen
EA0C: 410510	SBC	$5,16		 ist es ein "M"-File?
EA0F: 355095	JP	C,&h9550	 dann in Haupt-Eingabewarteschleife ->
EA12: E60740	PHS3	$7		 Filetyp und Fileheaderzeiger retten
EA15: 0223	LD	$3,#1		 Kennzeichen fr BASIC-Modus holen
EA17: 77BE95	CAL	&h95BE		 diesen setzen und CLS ausfhren
EA1A: EE0540	PPS3	$5		 Filetyp u. Fileheaderzeiger wieder holen
EA1D: 410510	SBC	$5,16		 ist es ein "B"-File?
EA20: 709CB6	CAL	Z,&hB69C	  dann Passwort-Schutz berprfen
EA23: 37A5B6	JP	&hB6A5		 in den richtigen Editiermodus ->
-------------------------------------->	[PRESET ]-TASTE VERARBEITEN
EA26: 7755E7	CAL	&hE755		 ausgewhlten Fileheaderzeiger holen
EA29: 9606	PRE	IX,$6		  und nach IX bringen
EA2B: 2801	LD	$1,(IX+#0)	 C.Boot-/Preset-Flag holen
EA2D: D640496F	PRE	IZ,&h6F49	 IZ Zeiger auf Preset-Headertabelle
EA31: 420204	LD	$2,4		 max. 4 Preset-Files
EA34: 0121	SBC	$1,#1		 ist kein Flag gesetzt?
EA36: B518	JR	C,&hEA4F	  dann ->
EA38: B411	JR	NZ,&hEA4A	 oder C.Boot-Flag gesetzt? dann ->
EA3A: AB02	LDIW	$2,(IZ+#0)	 nchsten Preset-Fileheader lesen
EA3C: 816206	SBCW	$2,$6		 mit dem ausgewhlten vergleichen
EA3F: B486	JR	NZ,&hEA3A	 nicht gefunden? dann Schleife ->
EA41: 896606	SBW	$6,$6		 Eintrag lschen
EA44: A5A7	STDW	$7,(IZ-#1)	 |
EA46: 0F21	XR	$1,#1		 Preset-Flag invertieren
EA48: 2401	STD	$1,(IX+#0)	  und speichern
EA4A: 37D4E5	JP	&hE5D4		 zum Anzeigen des Mens ->
~Seite 211
--  --  --  --  --  --  --  --  --  --	SUCHE NACH FREIEM PRESET-TABELLENEINTRAG
EA4D: B084	JR	Z,&hEA4A	 Ende, wenn nicht gefunden
EA4F: AB08	LDIW	$8,(IZ+#0)	 nchsten Eintrag lesen
EA51: 8128	SBCW	$8,#1		 ist dieser leer?
EA53: B590	JR	C,&hEA44	  dann zum Eintragen ->
EA55: 09A28A	SBJ	$2,#1,&hEA4D	 Zhler herabsetzen und Schleife ->
-------------------------------------->	[DATA  ]-TASTE VERARBEITEN
EA58: 7712E8	CAL	&hE812		 nach "S"-File ohne Filename suchen
EA5B: 029D0A	LDJ	$29,#0,&hEA67	 Kennzeichen fr "S"-File setzen und ->
--  --  --  --  --  --  --  --  --  -->	[BASIC ]-TASTE VERARBEITEN
EA5E: 420410	LD	$4,16		 Filetyp fr "B"-Files setzen
EA61: 7715E8	CAL	&hE815		 nach File ohne Filename suchen
EA64: 421D02	LD	$29,2		 Kennzeichen fr "B"-File setzen
EA67: B107	JR	NC,&hEA6F	 File gefunden? dann ->
EA69: 411D02	SBC	$29,2		 war es nicht die [BASIC ]-Taste?
EA6C: 777CEA	CAL	&hEA7C		 Leerfile erzeugen
EA6F: 011D	SBC	$29,#0		 war es die [DATA  ]-Taste?
EA71: 3007EA	JP	Z,&hEA07	  dann zur [EDIT  ]-Routine ->
EA74: 0223	LD	$3,#1		 Kennzeichen fr BASIC-Modus holen
EA76: 77BE95	CAL	&h95BE		 Betriebsmodus setzen und CLS ausgeben
EA79: 37A390	JP	&h90A3		 in den Direktmodus ->
-------------------------------------->	LEERFILE ERZEUGEN
EA7C: B40E	JR	NZ,&hEA8B	 "S"-File erzeugen? dann ->
EA7E: 77D2B1	CAL	&hB1D2 [NBMFK]	 BASIC-File erzeugen
EA81: 420002	LD	$0,2		 Offset auf BASIC-Directory setzen
EA84: D6404769	PRE	IZ,&h6947	 IZ Zeiger auf Directory-Zeiger
EA88: A946	LDW	$6,(IZ+#2)	 Fileheaderadresse holen
EA8A: F7	RTN			 zurck
EA8B: 77C2B1	CAL	&hB1C2 [NDMFK]	 Datenfile erzeugen
EA8E: 02808C	LDJ	$0,#0,&hEA84	 Offset auf Datenfile-Dir. setzen und ->
-------------------------------------->	[KILL  ]-TASTE VERARBEITEN
EA91: 7755E7	CAL	&hE755		 ausgew. Fileheaderz. holen{berflssig}
EA94: 779DE8	CAL	&hE89D		 File-Lschen abfragen
EA97: 340E95	JP	NZ,&h950E	 nicht lschen? dann zurck ->
EA9A: 7755E7	CAL	&hE755		 ausgewhlten Fileheaderzeiger holen
EA9D: 7742E8	CAL	&hE842 [KILL]	 File lschen
EAA0: D600946F	PRE	IX,&h6F94	 IX Zeiger auf Men-Cursor
EAA4: E82660	LD4	$6,(IX+#1)	 erste zwei Eintrge holen
EAA7: 2C1D	LDD	$29,(IX+#0)	 Men-Cursor holen
EAA9: 013D	SBC	$29,#1		 nicht auf erstem Eintrag?
EAAB: B112	JR	NC,&hEABE	  dann ->
EAAD: 8128	SBCW	$8,#1		 zweiter Eintrag nicht leer?
EAAF: B10E	JR	NC,&hEABE	  dann ->
EAB1: 77DDE6	CAL	&hE6DD		 Zeiger auf vorherigen File-Header setzen
EAB4: 357EE5	JP	C,&hE57E	 war schon der erste? dann zum Men ->
EAB7: 77DDE6	CAL	&hE6DD		 Zeiger auf vorherigen File-Header setzen
EABA: 023D	LD	$29,#1		 Men-Cursor in rechte Spalte
EABC: 241E	STD	$30,(IX+#0)	 Men-Cursor auf zweiten Eintrag setzen
EABE: D640A06F	PRE	IZ,&h6FA0	 IZ Zeiger in letzten Eintrag
EAC2: C968E8	SBB8	$8,$8		 Register $8-15 lschen
EAC5: E50FE0	STD8	$15,(IZ+#0)	 alle Eintrge lschen
EAC8: E5AF60	STD4	$15,(IZ-#1)	 |
EACB: 420806	LD	$8,6		 sechs Fileheaderzeiger in die Men-
EACE: 378FE5	JP	&hE58F		  headertabelle eintragen ->
~Seite 212
-------------------------------------->	[NAME  ]-TASTE VERARBEITEN
EAD1: 7755E7	CAL	&hE755		 ausgewhlten Fileheaderzeiger holen
EAD4: 77ABE7	CAL	&hE7AB		 Umbenennung abfragen
EAD7: 30FBEA	JP	Z,&hEAFB	 kein Filename angegeben? dann ->
EADA: 770FE8	CAL	&hE80F		 Filename beliebigen Filetyps suchen
EADD: B50C	JR	C,&hEAEA	 nicht gefunden? dann ->
EADF: 827C06	LDW	$28,$6		 Fileheaderzeiger kopieren
EAE2: 7755E7	CAL	&hE755		 ausgewhlten Fileheaderzeiger holen
EAE5: 817C06	SBCW	$28,$6		 ist es anderes File mit diesem Namen?
EAE8: B498	JR	NZ,&hEAD1	  dann noch einmal ->
EAEA: 7755E7	CAL	&hE755		 ausgewhlten Fileheaderzeiger holen
EAED: D102F468	LDW	$2,&h68F4	 $2/3 Zeiger auf WORK-Puffer
EAF1: 9646	PRE	IZ,$6		 IZ Zeiger auf Fileheader-Filename
EAF3: 6D0006	LDD	$0,(IZ+6)	 |
EAF6: 9E40	GRE	IZ,$0		 und in $0/1 ablegen
EAF8: 774490	CAL	&h9044		 Filename von WORK in Fileheader kopieren
EAFB: 370EE6	JP	&hE60E		 Hauptmenmodus setzen, Men anzeigen ->
-------------------------------------->	[LLIST ]-TASTE VERARBEITEN
EAFE: 7719EB	CAL	&hEB19		 File-Adr. holen und auf Leerfile prfen
EB01: 411D10	SBC	$29,16		 ist es ein "M"-File?
EB04: B525	JR	C,&hEB2A	  dann in die Haupt-Warteschleife ->
EB06: 7780E6	CAL	&hE680		 ist kein Interface angeschlossen?
EB09: B020	JR	Z,&hEB2A	  dann in die Haupt-Warteschleife ->
EB0B: 779CB6	CAL	&hB69C		 auf gesetztes Passwort berprfen
EB0E: 77F78F	CAL	&h8FF7		 Menzeilenpuffer lschen
EB11: 772EB9	CAL	&hB92E		 leeren Puffer auf Display bringen
EB14: 77CDBF	CAL	&hBFCD		 File auf Drucker ausgeben
EB17: B79D	JR	&hEAFB		 Hauptmenmodus setzen, Men anzeigen ->
-------------------------------------->	FILE-ADR. HOLEN UND AUF LEERFILE PRFEN
EB19: 7755E7	CAL	&hE755		 ausgewhlten Fileheaderzeiger holen
EB1C: 77AFE6	CAL	&hE6AF		 IZ Zeiger auf Aktivfileheader-Zeiger
EB1F: A126	STW	$6,(IZ+#1)	 als diesen speichern
EB21: 9606	PRE	IX,$6		 IX Zeiger auf Fileheaderzeiger
EB23: E83980	LD5	$25,(IX+#1)	 Start- und Endadresse und Filetyp holen
EB26: 772CB7	CAL	&hB72C		 Filelnge berechnen
EB29: F4	RTN	NZ		 kein leeres File? dann zurck
EB2A: 375095	JP	&h9550		 in die Haupt-Warteschleife
-------------------------------------->	[LOAD  ]-TASTE VERARBEITEN
EB2D: D600FEEF	PRE	IX,&hEFFE	 Zeiger auf LOAD-Gerteauswahl-Text
EB31: 420006	LD	$0,6		 Kennzeichen fr Untermenmodus LOAD
EB34: 7780E6	CAL	&hE680		 ist kein Interface angeschlossen?
EB37: 305095	JP	Z,&h9550	  dann zurck in Haupt-Warteschleife
EB3A: 77AFE6	CAL	&hE6AF		 IZ Zeiger auf Direktmodus-Flag
EB3D: 2100	ST	$0,(IZ+#0)	 Untermenmodus setzen
EB3F: 420804	LD	$8,4		 Zhler auf vier Menpunkte setzen
EB42: 023D	LD	$29,#1		 Kennz. fr "keine Datensatznr. anzeigen"
EB44: 7739B9	CAL	&hB939		 ist es das FA-7 oder das MD-100?
EB47: 0101	SBC	$1,#0		 MD-100 angeschlossen?
EB49: B40C	JR	NZ,&hEB56	  dann ->
EB4B: D640BA68	PRE	IZ,&h68BA	 IZ Zeiger in den Menzeilenpuffer
EB4F: D11C4D54	LDW	$28,"MT"	 Text "MT  " statt "disk" setzen
EB53: E11C60	ST4	$28,(IZ+#0)	 |
EB56: 77B995	CAL	&h95B9		 IZ Zeiger auf Menzeilenpuffer
EB59: 374D95	JP	&h954D		 Men anz. u. in die Haupt-Warteschl. ->
~Seite 213
-------------------------------------->	[SAVE  ]-TASTE VERARBEITEN
EB5C: 7755E7	CAL	&hE755		 ausgewhlten Fileheaderzeiger holen
EB5F: D6001EF0	PRE	IX,&hF01E	 IX Zeiger auf SAVE-Gerteauswahl-Text
EB63: 420008	LD	$0,8		 Kennzeichen fr Untermenmodus SAVE
EB66: 7780E6	CAL	&hE680		 Interface vorhanden?
EB69: B4B0	JR	NZ,&hEB3A	  dann zur Auswahl ->
--  --  --  --  --  --  --  --  --  -->	[SAVE  ]: [RAM   ]-TASTE VERARBEITEN
EB6B: 429D0710	LDJ	$29,7,&hEB7E	 Kennz. fr SAVE-RAM setzen und ->
--  --  --  --  --  --  --  --  --  -->	[LOAD  ]: [RS232C]-TASTE VERARBEITEN
EB6F: 429D090C	LDJ	$29,9,&hEB7E	 Kennz. fr LOAD-RS232C setzen und ->
--  --  --  --  --  --  --  --  --  -->	[SAVE  ]: [RS232C]-TASTE VERARBEITEN
EB73: 429D0B08	LDJ	$29,11,&hEB7E	 Kennz. fr SAVE-RS232C setzen und ->
--  --  --  --  --  --  --  --  --  -->	[LOAD  ]: [dsk/MT]-TASTE VERARBEITEN
EB77: 429D0504	LDJ	$29,5,&hEB7E	 Kennz. fr LOAD-DISK/MT setzen und ->
--  --  --  --  --  --  --  --  --  -->	[SAVE  ]: [dsk/MT]-TASTE VERARBEITEN
EB7B: 421D03	LD	$29,3		 Kennz. fr SAVE-DISK/MT setzen
EB7E: 77F78F	CAL	&h8FF7		 Menz.p. lschen   {krzer: CAL &h8FF2}
EB81: 77AFE6	CAL	&hE6AF		 IZ Zeiger auf Untermenmodus      {---}
EB84: 251E	STD	$30,(IZ+#0)	 und auf Abfragemodus setzen       {---}
EB86: 77B995	CAL	&h95B9		 IZ Zeiger auf Menzeilenpuffer
EB89: D1007361	LDW	$0,"sa"		 Text "save" holen
EB8D: D1027665	LDW	$2,"ve"		 |
EB91: 441D02	ANC	$29,2		 im SAVE-Modus?
EB94: B409	JR	NZ,&hEB9E	  dann ->
EB96: D1006C6F	LDW	$0,"lo"		 Text "load" holen
EB9A: D1026164	LDW	$2,"ad"		 |
EB9E: 420422	LD	$4,&h22		 Anfhrungszeichen holen
EBA1: E30080	STI5	$0,(IZ+#0)	 gesamten Text in den Menzeilenpuffer
EBA4: D11A303A	LDW	$26,&h3A30	 Text "0:" holen
EBA8: 421C65	LD	$28,101		 Cursorposition 3*32+5 holen
EBAB: 411D07	SBC	$29,7		 SAVE-RAM?
EBAE: 304FEC	JP	Z,&hEC4F	  dann ->
EBB1: 421C6A	LD	$28,106		 Cursorposition 3*32+10 holen
EBB4: 3538EC	JP	C,&hEC38	 LOAD/SAVE-DISK/MT? dann ->
--  --  --  --  --  --  --  --  --  --	RS232C-PARAMETER ALS FILENAME SETZEN
EBB7: D1184F4D	LDW	$24,"OM"	 Text "COM" holen
EBBB: 421743	LD	$23,"C"		 |
EBBE: E31780	STI5	$23,(IZ+#0)	 und "COM0:" in den Menzeilenpuffer
EBC1: D600006C	PRE	IX,&h6C00	 IX Zeiger auf RS232C-Parameter
EBC5: A800	LDW	$0,(IX+#0)	 diese holen
EBC7: 0247	LD	$7,#2		 Baudrate kopieren,
EBC9: 1B47	INV	$7		  herausfiltern
EBCB: 4C07E0	AN	$7,&hE0		  |
EBCE: 1A07	DID	$7		  und zur ASCII-Ziffer wandeln
EBD0: 1847	BID	$7		  |
EBD2: 4E0730	OR	$7,"0"		  |
EBD5: D1082C4E	LDW	$8,",N"		 Text ",N" holen
EBD9: 440004	ANC	$0,4		 keine Paritt gesetzt?
EBDC: B40C	JR	NZ,&hEBE9	  dann ->
EBDE: 42094F	LD	$9,"O"		 Zeichen "O" holen
EBE1: 440002	ANC	$0,2		 ungerade Paritt gesetzt?
EBE4: B404	JR	NZ,&hEBE9	  dann ->
EBE6: 420945	LD	$9,"E"		 sonst Zeichen "E" holen
EBE9: D10A2C38	LDW	$10,",8"	 sonstige Parameter auf Default setzen
EBED: D10C2C32	LDW	$12,",2"	 |
EBF1: D10E2C43	LDW	$14,",C"	 |
~Seite 214
EBF5: C270EE	LD8	$16,$14		 |
EBF8: 0831	AD	$17,#1		 |
EBFA: 0935	SB	$21,#1		 nun steht ",8,2,C,D,C,B,S" in den
EBFC: 421753	LD	$23,"S"		  Registern
EBFF: 440008	ANC	$0,8		 acht Datenbits?
EC02: B003	JR	Z,&hEC06	  dann ->
EC04: 092B	SB	$11,#1		 sonst auf sieben setzen
EC06: 440010	ANC	$0,16		 zwei Stoppbits?
EC09: B003	JR	Z,&hEC0D	  dann ->
EC0B: 092D	SB	$13,#1		 sonst auf eins setzen
EC0D: 42004E	LD	$0,"N"		 Zeichen "N" holen
EC10: 1841	BID	$1		 SI/SO-Steuerung?
EC12: B503	JR	C,&hEC16	  dann ->
EC14: 0257	LD	$23,#2		 sonst auf "N" setzen
EC16: 1841	BID	$1		 Puffer-belegt-Steuerung?
EC18: B503	JR	C,&hEC1C	  dann ->
EC1A: 0255	LD	$21,#2		 sonst auf "N" setzen
EC1C: 1841	BID	$1		 CTS-Signalsteuerung?
EC1E: B503	JR	C,&hEC22	  dann ->
EC20: 024F	LD	$15,#2		 sonst auf "N" setzen
EC22: 1841	BID	$1		 DSR-Signalsteuerung?
EC24: B503	JR	C,&hEC28	  dann ->
EC26: 0251	LD	$17,#2		 sonst auf "N" setzen
EC28: 1841	BID	$1		 CD-Signalsteuerung?
EC2A: B503	JR	C,&hEC2E	  dann ->
EC2C: 0253	LD	$19,#2		 sonst auf "N" setzen
EC2E: E307E0	STI8	$7,(IZ+#0)	 alle Parameter in den Menzeilenpuffer
EC31: E30FE0	STI8	$15,(IZ+#0)	  setzen
EC34: 2117	ST	$23,(IZ+#0)	  |
EC36: B72F	JR	&hEC66		 und ->
--  --  --  --  --  --  --  --  --  --	DISK-/MT-GERTENAME SETZEN
EC38: 7780E6	CAL	&hE680		 auf angeschlossenes Interface prfen
EC3B: 0101	SBC	$1,#0		 ist es das FA-7?
EC3D: B007	JR	Z,&hEC45	  dann ->
EC3F: A31A	STIW	$26,(IZ+#0)	 sonst "0:" in den Menzeilenpuffer
EC41: 429C670B	LDJ	$28,103,&hEC4F	 Cursorposition 3*32+7 holen und ->
EC45: D1184153	LDW	$24,"AS"	 Text "CAS" holen
EC49: 421743	LD	$23,"C"		 |
EC4C: E31780	STI5	$23,(IZ+#0)	 und "CAS0:" in den Menzeilenpuffer
--  --  --  --  --  --  --  --  --  --	BEI SAVE FILENAME SETZEN
EC4F: 441D02	ANC	$29,2		 LOAD?
EC52: B013	JR	Z,&hEC66	  dann ->
EC54: 9E50	GRE	IZ,$16		 IZ ablegen
EC56: 7755E7	CAL	&hE755		 ausgewhlten Fileheaderzeiger holen
EC59: 9650	PRE	IZ,$16		 IZ wieder holen
EC5B: 9606	PRE	IX,$6		 IX Zeiger auf Fileheader
EC5D: 779EE7	CAL	&hE79E		 Filename in Register holen
EC60: E300E0	STI8	$0,(IZ+#0)	 und hinter alles andere setzen
EC63: E10860	ST4	$8,(IZ+#0)	 |
EC66: 02661C	LD	$6,$28		 Cursorpos. & Display-Zeilenbeginn holen
EC69: 261D	PHS	$29		 Modus zwischenspeichern
EC6B: 77A3E6	CAL	&hE6A3		 Eingabe durchfhren lassen
EC6E: D6006461	PRE	IX,&h6164	 IX Zeiger auf Filename im Displaypuffer
EC72: 778696	CAL	&h9686		 Zeile "tokenisieren"
EC75: D102A6EC	LDW	$2,&hECA6	 $2/3 Zeiger auf LOAD-/SAVE-BRK-Routine
EC79: 77C390	CAL	&h90C3 [BRSTR]	 diesen im ACJMP-Vektor speichern
~Seite 215
EC7C: 778AE6	CAL	&hE68A		 IZ Zeiger auf Men-Cursor
EC7F: 2900	LD	$0,(IZ+#0)	 diesen holen
EC81: 775FE7	CAL	&hE75F		 ausgewhlten Fileheader holen
EC84: 77AFE6	CAL	&hE6AF		 IZ Zeiger auf Aktivfileheader-Zeiger
EC87: A126	STW	$6,(IZ+#1)	 Fileheader-Zeiger dort speichern
EC89: 2E00	PPS	$0		 Modus wiederholen
EC8B: 440002	ANC	$0,2		 LOAD?
EC8E: B00A	JR	Z,&hEC99	  dann ->
EC90: D6000060	PRE	IX,&h6000	 IX Zeiger auf Eingabepuffer
EC94: 776FDC	CAL	&hDC6F		 Programm speichern
EC97: B70E	JR	&hECA6		 und Men-Cursor setzen ->
EC99: 77E704	CAL	&h04E7 [CLEDB]	 Display- und Grafikpuffer lschen
EC9C: 772C02	CAL	&h022C [DOTDI]	 Display auffrischen
EC9F: D6000060	PRE	IX,&h6000	 IX Zeiger auf Eingabepuffer
ECA3: 775EDE	CAL	&hDE5E		 Programm laden
--  --  --  --  --  --  --  --  --  -->	LOAD-/SAVE-BRK-ROUT.: MEN-CURSOR SETZEN
ECA6: 7720B7	CAL	&hB720		 IX Zeiger Aktivfileheader
ECA9: 9E10	GRE	IX,$16		 und nach $16/17 ablegen
ECAB: 77C6AD	CAL	&hADC6		 Hauptmenmodus setzen
ECAE: 37ADE5	JP	&hE5AD		 Men-Cursor richtig setzen ->
-------------------------------------->	[DISK  ]: [LOAD  ]-TASTE VERARBEITEN
ECB1: 771BDE	CAL	&hDE1B		 File von Diskette laden
ECB4: B78F	JR	&hECA6		 und Men-Cursor setzen ->
-------------------------------------->	[C.BOOT]-TASTE VERARBEITEN
ECB6: 7755E7	CAL	&hE755		 ausgewhlten Fileheaderzeiger holen
ECB9: 9646	PRE	IZ,$6		 IZ Zeiger auf Fileheader
ECBB: 3B1E	SBC	(IZ+#0),$30	 ist Preset-Flag gesetzt?
ECBD: 305095	JP	Z,&h9550	  dann in Haupt-Eingabewarteschleife ->
ECC0: B10A	JR	NC,&hECCB	 ist C.Boot-Flag gesetzt? dann ->
ECC2: D640476F	PRE	IZ,&h6F47	 IZ Zeiger auf C.Boot-Fileheader-Zeiger
ECC6: BB1E	SBCW	(IZ+#0),$30	 gibt es schon ein C.Boot-File?
ECC8: 315095	JP	NC,&h9550	  dann in Haupt-Eingabewarteschleife ->
ECCB: 77F28F	CAL	&h8FF2		 Eing.modus setzen, Menz.puffer lschen
ECCE: D640456F	PRE	IZ,&h6F45	 IZ Zeiger auf C.Boot-Uhrzeit
ECD2: A902	LDW	$2,(IZ+#0)	 diese holen
ECD4: 0022	ADC	$2,#1		 keine vorhanden?
ECD6: B008	JR	Z,&hECDF	  dann ->
ECD8: D10FA668	LDW	$15,&h68A6	 $15/16 Zeiger in Menzeilenpuffer
ECDC: 77B0A1	CAL	&hA1B0		 Uhrzeit dekodieren
ECDF: D1007469	LDW	$0,"ti"		 Text "tim" holen
ECE3: 42026D	LD	$2,"m"		 |
ECE6: 7796E6	CAL	&hE696		 Uhrzeit abfragen
ECE9: D6006561	PRE	IX,&h6165	 IX Zeiger in Displayzeile
ECED: 0D00	NA	$0,#0		 Uhrzeitspeicher lschen
ECEF: 3A1E	SBC	(IX+#0),$30	 Eingabe vorhanden?
ECF1: 71E8ED	CAL	NC,&hEDE8	  dann Uhrzeit aus der Eingabe lesen
ECF4: B1AA	JR	NC,&hECCB	 Fehler? dann noch einmal ->
ECF6: 8242	LDW	$2,#2		 Uhrzeit nach $2/3 holen
ECF8: 7755E7	CAL	&hE755		 ausgewhlten Fileheaderzeiger holen
ECFB: D640446F	PRE	IZ,&h6F44	 IZ Zeiger in C.Boot-Uhrzeit
ECFF: 0022	ADC	$2,#1		 keine Uhrzeit angegeben?
ED01: B03F	JR	Z,&hED41	  dann ->
ED03: A322	STIW	$2,(IZ+#1)	 C.Boot-Uhrzeit setzen
ED05: A106	STW	$6,(IZ+#0)	 C.Boot-Fileheader-Zeiger setzen
ED07: 420002	LD	$0,2		 C.Boot-Flag holen
ED0A: 106006	ST	$0,($6)		 und in den Fileheader setzen
~Seite 216
ED0D: 77F78F	CAL	&h8FF7		 Menzeilenpuffer lschen
ED10: D640436F	PRE	IZ,&h6F43	 IZ Zeiger auf C.Boot-Datum
ED14: A902	LDW	$2,(IZ+#0)	 dieses holen
ED16: D640AD6B	PRE	IZ,&h6BAD	 IZ Zeiger auf Rechner-Datum
ED1A: 2D01	LDD	$1,(IZ+#0)	 Jahreszahl holen
ED1C: 0022	ADC	$2,#1		 kein Datum gesetzt?
ED1E: B008	JR	Z,&hED27	  dann ->
ED20: D10FA668	LDW	$15,&h68A6	 $15/16 Zeiger in den Menzeilenpuffer
ED24: 7788A1	CAL	&hA188		 Datum dekodieren
ED27: 778FE6	CAL	&hE68F		 IZ Zeiger auf Untermenmodus
ED2A: D6006561	PRE	IX,&h6165	 IX Zeiger in den Displaymodus
ED2E: 0D04	NA	$4,#0		 Datumspeicher lschen
ED30: 3A1E	SBC	(IX+#0),$30	 Eingabe vorhanden?
ED32: 7152ED	CAL	NC,&hED52	  dann Datum aus der Eingabe lesen
ED35: B1A9	JR	NC,&hED0D	 Fehler? dann noch einmal ->
ED37: D640436F	PRE	IZ,&h6F43	 IZ Zeiger auf C.Boot-Datum
ED3B: A104	STW	$4,(IZ+#0)	 dieses dort speichern
ED3D: 82E2040F	LDWJ	$2,$4,&hED4F	 Datum nach $2/3 {berflssig?} und ->
--  --  --  --  --  --  --  --  --  --	C.BOOT LSCHEN
ED41: C940A0	SBB6	$0,#2		 C.Boot-Uhrzeit, -Datum und
ED44: 0920	SB	$0,#1		  Fileheader-Zeiger lschen
ED46: 0922	SB	$2,#1		  |
ED48: E1A0A0	ST6	$0,(IZ-#1)	  |
ED4B: 9646	PRE	IZ,$6		 IZ Zeiger auf Fileheader
ED4D: 251F	STD	$31,(IZ+#0)	 C.Boot-/Preset-Flag lschen
ED4F: 370EE6	JP	&hE60E		 Hauptmenmodus setzen, Men anzeigen
-------------------------------------->	DATUM LESEN & IN INTERNES FORMAT BRINGEN
ED52: 420312	LD	$3,&h12		 maximal zwlfter Monat erlaubt
ED55: 7709EE	CAL	&hEE09		 Monat lesen
ED58: 2600	PHS	$0		 und zwischenspeichern
ED5A: B53D	JR	C,&hED98	 Fehler? dann mit C=0 zurck ->
ED5C: 41012D	SBC	$1,"-"		 nchstes Zeichen kein Bindestrich?
ED5F: B438	JR	NZ,&hED98	  dann mit C=0 zurck ->
ED61: 2C20	LDD	$0,(IX+#1)	 Bindestrich berlesen
ED63: 420331	LD	$3,&h31		 maximal 31. Tag erlaubt
ED66: 7709EE	CAL	&hEE09		 Tag lesen
ED69: B52E	JR	C,&hED98	 Fehler? dann mit C=0 zurck ->
ED6B: 41012D	SBC	$1,"-"		 nchstes Zeichen ein Bindestrich?
ED6E: B010	JR	Z,&hED7F	  dann ->
ED70: 0121	SBC	$1,#1		 String nicht zu Ende?
ED72: B125	JR	NC,&hED98	  dann mit C=0 zurck ->
ED74: D640AD6B	PRE	IZ,&h6BAD	 IZ Zeiger auf Rechner-Datum
ED78: 2903	LD	$3,(IZ+#0)	 Jahreszahl holen
ED7A: 2E05	PPS	$5		 Monat wieder holen
ED7C: 02C443	LDJ	$4,#2,&hEDC1	 Tag holen u. zur Plausibilittskontr.->
ED7F: 2600	PHS	$0		 Tag zwischenspeichern
ED81: 2C20	LDD	$0,(IX+#1)	 Bindestrich berlesen
ED83: 420202	LD	$2,2		 Kennzeichen fr Jahrhundert setzen
ED86: 770BEE	CAL	&hEE0B		 dieses lesen
ED89: B50C	JR	C,&hED96	 Fehler? dann mit C=0 zurck
ED8B: 2600	PHS	$0		 Jahrhundert zwischenspeichern
ED8D: 0D02	NA	$2,#0		 Kennzeichen fr Jahreszahl setzen
ED8F: 770BEE	CAL	&hEE0B		 diese lesen
ED92: B10A	JR	NC,&hED9D	 kein Fehler? dann ->
~Seite 217
--  --  --  --  --  --  --  --  --  --	RCKKEHR NACH FEHLER
ED94: 2E00	PPS	$0		 Systemstack bereinigen
ED96: 2E00	PPS	$0		 |
ED98: 2E00	PPS	$0		 |
ED9A: 011E	SBC	$30,#0		 C=0 setzen
ED9C: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	GANZES DATUM EINGELESEN
ED9D: 0121	SBC	$1,#1		 String nicht zu Ende?
ED9F: 2E01	PPS	$1		 Jahrhundert wieder holen
EDA1: B18C	JR	NC,&hED96	  dann mit C=0 zurck ->
EDA3: 410119	SBC	$1,&h19		 nicht 20. Jahrhundert?
EDA6: B405	JR	NZ,&hEDAC	  dann ->
EDA8: 40808009	ADCJ	$0,&h80,&hEDB4	 <1980? und ->
EDAC: 410120	SBC	$1,&h20		 auch nicht 21. Jahrhundert?
EDAF: B49A	JR	NZ,&hED96	  dann ->
EDB1: 410080	SBC	$0,&h80		 >=2080?
EDB4: B19F	JR	NC,&hED96	  dann mit C=0 zurck ->
EDB6: 0203	LD	$3,#0		 Zhler zurcksetzen
EDB8: 0B20	SBB	$0,#1		 von Jahreszahl 1 abziehen (BCD)
EDBA: B504	JR	C,&hEDBF	 Unterlauf? dann ->
EDBC: 08A386	ADJ	$3,#1,&hEDB8	 Sonst Zhler erhhen und Schleife ->
EDBF: AE04	PPSW	$4		 Tag und Monat wieder holen
--  --  --  --  --  --  --  --  --  -->	PLAUSIBILITTSKONTROLLE FR TAGE
EDC1: 410502	SBC	$5,2		 Februar?
EDC4: B00E	JR	Z,&hEDD3	  dann ->
EDC6: 410508	SBC	$5,8		 >=August?
EDC9: B116	JR	NC,&hEDE0	  dann ->
EDCB: 0425	ANC	$5,#1		 ungerader Monat?
EDCD: B416	JR	NZ,&hEDE4	  dann ->
EDCF: 410431	SBC	$4,&h31		 ber dem 30. Tag?
EDD2: F7	RTN			 zurck
EDD3: 440303	ANC	$3,3		 kein Schaltjahr?
EDD6: B405	JR	NZ,&hEDDC	  dann ->
EDD8: 410430	SBC	$4,&h30		 ber dem 29. Tag?
EDDB: F7	RTN			 zurck
EDDC: 410429	SBC	$4,&h29		 ber dem 28. Tag?
EDDF: F7	RTN			 zurck
EDE0: 0425	ANC	$5,#1		 ungerader Monat?
EDE2: B494	JR	NZ,&hEDCF	  dann ->
EDE4: 410432	SBC	$4,&h32		 ber dem 31. Tag?
EDE7: F7	RTN			 zurck
-------------------------------------->	UHRZEIT LESEN, IN INTERNES FORMAT BRINGEN
EDE8: 420323	LD	$3,&h23		 max. 23. Stunde erlaubt
EDEB: 7706EE	CAL	&hEE06		 Stunde lesen
EDEE: 2600	PHS	$0		 und zwischenspeichern
EDF0: B5D9	JR	C,&hED98	 Fehler? dann mit C=0 zurck ->
EDF2: 41013A	SBC	$1,":"		 kein Doppelpunkt folgend?
EDF5: B4DE	JR	NZ,&hED98	  dann mit C=0 zurck ->
EDF7: 2C20	LDD	$0,(IX+#1)	 Doppelpunkt berlesen
EDF9: 420359	LD	$3,&h59		 max. 59. Minute erlaubt
EDFC: 7706EE	CAL	&hEE06		 Minute lesen
EDFF: B5E8	JR	C,&hED98	 Fehler? dann mit C=0 zurck ->
EE01: 0121	SBC	$1,#1		 String nicht zu Ende? dann C=0
EE03: 2E01	PPS	$1		 Stunde wieder holen
EE05: F7	RTN			 zurck
~Seite 218
--  --  --  --  --  --  --  --  --  -->	STUNDE ODER MINUTE LESEN
EE06: 028203	LDJ	$2,#0,&hEE0B	 Minimum auf 0 festlegen und ->
--  --  --  --  --  --  --  --  --  -->	TAG ODER MONAT LESEN
EE09: 0222	LD	$2,#1		 Minimum auf 1 festlegen
--  --  --  --  --  --  --  --  --  -->	MAX. ZWEI ZIFFERN LESEN UND NACH BCD
EE0B: 770801	CAL	&h0108		 nchstes Zeichen eine Ziffer?
EE0E: B504	JR	C,&hEE13	  dann ->
EE10: 013F	SBC	$31,#1		 C=1 setzen
EE12: F7	RTN			 zurck
EE13: 0241	LD	$1,#2		 Ziffer nach $1 bringen
EE15: 2C20	LDD	$0,(IX+#1)	 nchstes Zeichen holen
EE17: 770A01	CAL	&h010A		 ist das auch eine Ziffer?
EE1A: B509	JR	C,&hEE24	  dann ->
EE1C: 0022	ADC	$2,#1		 ist Jahrhundert zu lesen?
EE1E: F5	RTN	C		  dann mit C=1 zurck
EE1F: 9A01	DIDW	$1		 einfache Ziffer bereitstellen
EE21: 1A8007	DIDJ	$0,&hEE2A	 und ->
EE24: 1A20	DIU	$0		 Doppelziffer zusammenstellen
EE26: 9A01	DIDW	$1		 |
EE28: 2C21	LDD	$1,(IX+#1)	 zweite Ziffer berlesen
EE2A: 2C01	LDD	$1,(IX+#0)	 Trennzeichen lesen
EE2C: 0122	SBC	$2,#1		 nicht Tag oder Monat lesen?
EE2E: B407	JR	NZ,&hEE36	  dann ->
EE30: 0120	SBC	$0,#1		 gelesener Wert ist Null?
EE32: F5	RTN	C		  denn mit C=1 zurck
EE33: 0143	SBC	$3,#2		 gelesener Wert grer als Maximalwert?
EE35: F7	RTN			 zurck
EE36: F1	RTN	NC		 Jahreszahl lesen? dann mit C=0 zurck
EE37: B785	JR	&hEE33		 und ->
-------------------------------------->	[DISK  ]-TASTE VERARBEITEN
EE39: 7780E6	CAL	&hE680		 auf angeschlossenes Interface testen
EE3C: 410155	SBC	$1,85		 ist es nicht das MD-100?
EE3F: 345095	JP	NZ,&h9550	 dann zurck in Haupt-Warteschleife ->
EE42: 7769D9	CAL	&hD969		 ersten Filenamen aus Disk-Direct. holen
EE45: D10254EF	LDW	$2,&hEF54	 $2/3 Zeiger auf DISK-BRK-Routine
EE49: 77C390	CAL	&h90C3 [BRSTR]	 diesen im ACJMP-Vektor speichern
EE4C: B464	JR	NZ,&hEEB1	 Directory leer? dann ->
EE4E: D1110001	LDW	$17,&h0100	 Cursor auf Null und $18=1
--  --  --  --  --  --  --  --  --  -->	DISK-MEN ANZEIGEN
EE52: 77E704	CAL	&h04E7 [CLEDB]	 Display- und Grafikpuffer lschen
EE55: D113956F	LDW	$19,&h6F95	 $19/20 Zeiger auf Men-Headertabelle
EE59: D6400061	PRE	IZ,&h6100	 IZ Zeiger auf Displaypuffer
EE5D: 0216	LD	$22,#0		 Zhler auf Null setzen
EE5F: D600556F	PRE	IX,&h6F5A-5	 IX Zeiger auf FDD-Filename
EE63: 681505	LD	$21,(IX+5)	 Filetyp holen
EE66: 776BE7	CAL	&hE76B		 gesamte File-Information in Register
EE69: 107213	ST	$18,($19)	 Eintragnummer in Headertabelle bringen
EE6C: 0833	AD	$19,#1		 Adresse erhhen
EE6E: 0832	AD	$18,#1		 Eintragnummer erhhen
EE70: E300E0	STI8	$0,(IZ+#0)	 File-Information in den Displaypuffer
EE73: E308E0	STI8	$8,(IZ+#0)	  bringen
EE76: 896E0E	SBW	$14,$14		 Endekennzeichen zurcksetzen
EE79: 7766D9	CAL	&hD966		 nchsten Filenamen aus Disk-Dir. holen
EE7C: B431	JR	NZ,&hEEAE	 Directory zu Ende? dann ->
EE7E: 0836	AD	$22,#1		 Zhler erhhen
EE80: 411606	SBC	$22,6		 noch nicht sechs gelesen?
~Seite 219
EE83: B4A5	JR	NZ,&hEE5F	  dann Schleife ->
EE85: 906E13	STW	$14,($19)	 Endekennzeichen in die Headertabelle
EE88: 017611	SBC	$22,$17		 Men-Cursor innerhalb des Displays?
EE8B: B104	JR	NC,&hEE90	  dann ->
EE8D: 027116	LD	$17,$22		 sonst Men-Cursor auf sechs setzen
EE90: 778AE6	CAL	&hE68A		 IZ Zeiger auf Men-Cursor
EE93: 2511	STD	$17,(IZ+#0)	 Men-Cursor dort speichern
EE95: 09F61104	SBJ	$22,$17,&hEE9C
--  --  --  --  --  --  --  --  --  --	REST DER SCHLEIFE
EE99: 7762D9	CAL	&hD962		 vorherigen Filenamen aus Disk-Dir. holen
--  --  --  --  --  --  --  --  --  --	DISK-DIR.-ZEIGER AUF FILE UNTER CURSOR
EE9C: 0936	SB	$22,#1		 Zhler herabsetzen
EE9E: B186	JR	NC,&hEE99	 noch einmal? dann Schleife ->
EEA0: 77D1E8	CAL	&hE8D1		 aktuellen Dateinamen invertieren
--  --  --  --  --  --  --  --  --  --	DISK-MENPUNKTE ANZEIGEN
EEA3: D6003EF0	PRE	IX,&hF03E	 IX Zeiger auf DISK-Menzeile
EEA7: D1000A01	LDW	$0,&h010A	 Untermenmodus auf 10 und $1=1 setzen
EEAB: 373AEB	JP	&hEB3A		 Bildschirm inkl. Men anzeigen ->
--  --  --  --  --  --  --  --  --  --	DIRECTORY ZU ENDE
EEAE: 89AEAB	SBWJ	$14,#1,&hEE85	 Endekennzeichen setzen und ->
--  --  --  --  --  --  --  --  --  --	DIRECTORY LEER
EEB1: 77E704	CAL	&h04E7 [CLEDB]	 Display- und Grafikpuffer lschen
EEB4: 77BBE6	CAL	&hE6BB		 Men-Headertabelle lschen
EEB7: B798	JR	&hEEA0		 und ins Men ->
-------------------------------------->	[DISK  ]: CURSOR-RECHTS VERARBEITEN
EEB9: 7791EF	CAL	&hEF91		 zwei Disk-Eintrge ab Men-Cursor holen
EEBC: 0022	ADC	$2,#1		 zweiter Eintrag leer?
EEBE: B039	JR	Z,&hEEF8	  dann ->
EEC0: 410005	SBC	$0,5		 Cursor nicht auf letztem Eintrag?
EEC3: B40F	JR	NZ,&hEED3	  dann ->
EEC5: 0931	SB	$17,#1		 Men-Cursor herabsetzen
EEC7: 421303	LD	$19,3		 Zhler auf 3 Filenamen setzen
EECA: 7788EF	CAL	&hEF88		 um 3 Filenamen in Disk-Dir. zurckgehen
EECD: 772D08	CAL	&h082D
EED0: 3752EE	JP	&hEE52		 Disk-Men anzeigen ->
EED3: 7766D9	CAL	&hD966		 nchsten Filenamen aus Disk-Dir. holen
EED6: 778AE6	CAL	&hE68A		 IZ Zeiger auf Men-Cursor
EED9: 3726E9	JP	&hE926		 Men-Cursor rechts und Men anzeigen ->
-------------------------------------->	[DISK  ]: CURSOR-RUNTER VERARBEITEN
EEDC: 7791EF	CAL	&hEF91		 zwei Disk-Eintrge ab Men-Cursor holen
EEDF: 0022	ADC	$2,#1		 nchster Eintrag leer?
EEE1: B016	JR	Z,&hEEF8	  dann ->
EEE3: 2D02	LDD	$2,(IZ+#0)	 bernchsten Eintrag holen
EEE5: 0022	ADC	$2,#1		 ist dieser leer?
EEE7: B00C	JR	Z,&hEEF4	  dann ->
EEE9: 410004	SBC	$0,4		 Men-Cursor noch nicht in letzter
EEEC: B50E	JR	C,&hEEFB	  Display-Zeile? dann ->
EEEE: B4A8	JR	NZ,&hEEC7	 Men-Cursor auf letzten Eintrag? dann ->
EEF0: 429302A9	LDJ	$19,2,&hEECA	 sonst .. und ->
EEF4: 0420	ANC	$0,#1		 Men-Cursor in rechter Spalte?
EEF6: B4B7	JR	NZ,&hEEC0	  dann ->
EEF8: 375095	JP	&h9550		 zurck in die Haupt-Warteschleife ->
EEFB: 7766D9	CAL	&hD966		 die beiden nchsten Filenamen aus
EEFE: 7766D9	CAL	&hD966		  Disk-Directory holen
EF01: 778AE6	CAL	&hE68A		 IZ Zeiger auf Men-Cursor
EF04: 3743E9	JP	&hE943		 Men-Cursor nach unten, Men anzeigen ->
~Seite 220
-------------------------------------->	[DISK  ]: CURSOR-LINKS VERARBEITEN
EF07: 7791EF	CAL	&hEF91		 zwei Disk-Eintrge ab Men-Cursor holen
EF0A: 0120	SBC	$0,#1		 Men-Cursor nicht auf erstem Eintrag?
EF0C: B108	JR	NC,&hEF15	  dann ->
EF0E: 0121	SBC	$1,#1		 steht Cursor auf Directory-Beginn?
EF10: B099	JR	Z,&hEEF8	  dann zurck ->
EF12: 08B1A4	ADJ	$17,#1,&hEEF0	 Cursor erhhen und ->
EF15: 7762D9	CAL	&hD962		 vorh. Filenamen aus Disk-Dir. holen
EF18: 778AE6	CAL	&hE68A		 IZ Zeiger auf Men-Cursor
EF1B: 37A1E9	JP	&hE9A1		 Men-Cursor links und Men anzeigen ->
-------------------------------------->	[DISK  ]: CURSOR-RAUF VERARBEITEN
EF1E: 7791EF	CAL	&hEF91		 zwei Disk-Eintrge ab Men-Cursor holen
EF21: 410002	SBC	$0,2		 Men-Cursor nicht auf ersten beiden
EF24: B109	JR	NC,&hEF2E	  Eintrgen? dann ->
EF26: 410103	SBC	$1,3		 schon auf ersten Directory-Eintrgen?
EF29: B5B2	JR	C,&hEEF8	  dann ->
EF2B: 04A0BF	ANCJ	$0,#1,&hEEEE	 Men-Cursor in rechter Spalte? ->
EF2E: 7762D9	CAL	&hD962		 vorherigen Filenamen aus
EF31: 7762D9	CAL	&hD962		  Disk-Directory holen
EF34: 778AE6	CAL	&hE68A		 IZ Zeiger auf Men-Cursor
EF37: 3771E9	JP	&hE971		 Men-Cursor rauf und Men anzeigen
-------------------------------------->	[DISK  ]: [KILL  ]-TASTE VERARBEITEN
EF3A: 773990	CAL	&h9039		 FDD-Filename in WORK-Puffer kopieren
EF3D: 779DE8	CAL	&hE89D		 File-Lschen abfragen
EF40: 34A3EE	JP	NZ,&hEEA3	 nicht? dann Disk-Menpunkte anz. ->
EF43: 77D6DA	CAL	&hDAD6		 FDD-KILL ausfhren
EF46: 778AE6	CAL	&hE68A		 IZ Zeiger auf Men-Cursor
EF49: 791E02	ADC	(IZ+2),$30	 nicht am Ende des Directories gewesen?
EF4C: B407	JR	NZ,&hEF54	  dann ->
EF4E: 251E	STD	$30,(IZ+#0)	 sonst Men-Cursor auf zweiten Eintrag
EF50: 3F3E	SB	(IZ+#1),$30	 Eintragnummer um 2 herabsetzen
EF52: 3F3E	SB	(IZ+#1),$30	 |
--  --  --  --  --  --  --  --  --  -->	DISK-BRK-ROUTINE: DISK-DIRECTORY AUF
					       RICHTIGEN FILENAMEN ZEIGEN LASSEN
EF54: D7004A6B	PRE	SS,&h6B4A	 Systemstackzeiger zurcksetzen
EF58: 77DDDD	CAL	&hDDDD		 Userstackzeiger zurcksetzen
EF5B: 7791EF	CAL	&hEF91		 zwei Disk-Eintrge ab Men-Cursor holen
EF5E: 778AE6	CAL	&hE68A		 IZ Zeiger auf Men-Cursor
EF61: 2D32	LDD	$18,(IZ+#1)	 Nummer des ersten Eintrags holen
EF63: 0233	LD	$19,#1		 Zhler zurcksetzen
EF65: 7769D9	CAL	&hD969		 ersten Filenamen aus Disk-Direct. holen
EF68: 35B1EE	JP	C,&hEEB1	 Directory leer? dann ->
EF6B: 017213	SBC	$18,$19		 richtiges File erreicht?
EF6E: 3052EE	JP	Z,&hEE52	  dann Disk-Men anzeigen
EF71: 7766D9	CAL	&hD966		 nchsten Filenamen aus Disk-Dir. holen
EF74: 08B38B	ADJ	$19,#1,&hEF6B	 Zhler erhhen und Schleife ->
-------------------------------------->	[DISK  ]: [NAME  ]-TASTE VERARBEITEN
EF77: 773990	CAL	&h9039		 FDD-Filename in WORK-Puffer kopieren
EF7A: 77D8E3	CAL	&hE3D8		 Filename von WORK nach Open-FCB kopieren
EF7D: 77ABE7	CAL	&hE7AB		 Umbenennung abfragen
EF80: 74E5DA	CAL	NZ,&hDAE5	 Filename angegeben? dann FDD-NAME ausf.
EF83: B487	JR	NZ,&hEF7D	 Fehler? dann noch einmal ->
EF85: B7B2	JR	&hEF54		 Disk-Dir. auf richt. Filenamen setzen ->
~Seite 221
--------------------------------------	REST
EF87: F0	RTN	Z		 schon am Ende? dann zurck
--  --  --  --  --  --  --  --  --  -->	($19)MAL EINEN FILENAMEN ZURCKGEHEN
EF88: 7762D9	CAL	&hD962		 vorherigen Filenamen aus Disk-Dir. holen
EF8B: F4	RTN	NZ		 noch nicht am Dir.-Beginn? dann zurck
EF8C: 0932	SB	$18,#1		 Eintragnummer herabsetzen
EF8E: 09B389	SBJ	$19,#1,&hEF87	 Zhler herabsetzen und Schleife ->
-------------------------------------->	ZWEI DISK-EINTRGE AB MEN-CURSOR HOLEN
EF91: 778AE6	CAL	&hE68A		 IZ Zeiger auf Men-Cursor
EF94: 3B3E	SBC	(IZ+#1),$30	 Directory leer?
EF96: 355095	JP	C,&h9550	 dann in die Haupt-Warteschleife ->
EF99: 2B00	LDI	$0,(IZ+#0)	 Men-Cursor lesen
EF9B: AB41	LDIW	$1,(IZ+#2)	 zwei Eintrge holen
EF9D: 8251	LDW	$17,#2		 und nach $17/18 kopieren
EF9F: D600C868	PRE	IX,&h68C8	 IX Zeiger auf Cursorposition
EFA3: F7	RTN			 zurck
--------------------------------------	MEN-SPRUNGTABELLE
EFA4: 20 &E90A | 21 &E97F | 22 &E966	 rechts   | links    | rauf
EFAD: 23 &E931 | 11 &E9DA | 00 &9550	 runter   | EXE      | sonst
--------------------------------------	MENU-MENPUNKT-SPRUNGTABELLE
EFB6: &EA5E | &EA58 | &EA04		 [basic ] | [data  ] | [edit  ]
EFBC: &EE39 | &EAD1 | &EA91		 [disk  ] | [name  ] | [kill  ]
EFC2: &EB2D | &EB5C | &F4FF		 [load  ] | [save  ] | [asmbl ]
EFC8: &EAFE | &ECB6 | &EA26		 [llist ] | [c.boot] | [preset]
--------------------------------------	ZEIGER AUF SPRUNGTABELLEN
EFCE: &EFF5 | &EFEC | &EFD4		 [load  ] | [save  ] | [disk  ]
--------------------------------------	[DISK  ]-SPRUNGTABELLE
EFD4: 1C &EEB9 | 1D &EF07 | 1E &EF1E	 rechts   | links    | rauf
EFDD: 1F &EEDC | 0D &E9D1		 runter   | EXE
EFE3: FD &EF77 | FE &EF3A | FF &ECB1	 [name  ] | [kill  ] | [load  ]
--  --  --  --  --  --  --  --  --  --	[SAVE  ]-GERTEAUSWAHL-SPRUNGTABELLE
EFEC: FD &EB6B | FE &EB73 | FF &EB7B	 [RAM   ] | [RS232C] | [dsk/MT]
--  --  --  --  --  --  --  --  --  --	[LOAD  ]-GERTEAUSWAHL-SPRUNGTABELLE
EFF5: FE &EB6F | FF &EB77 | 00 &9550	 [RS232C] | [dsk/MT] | sonst
--------------------------------------	[LOAD  ]-MENZEILE
EFFE: 6C6F616422202020			 'load"   '
F006: 2020202020202020			 "        "
F00E: 5B5253323332435D			 "[RS232C]"
F016: 5B6469736B20205D			 "[disk  ]"
--------------------------------------	[SAVE  ]-MENZEILE
F01E: 7361766522202020			 'save"   '
F026: 5B52414D2020205D			 "[RAM   ]"
F02E: 5B5253323332435D			 "[RS232C]"
F036: 5B6469736B20205D			 "[disk  ]"
--------------------------------------	[DISK  ]-MENZEILE
F03E: 0120202020202020			 "        "
F046: 5B6E616D6520205D			 "[name  ]"
F04E: 5B6B696C6C20205D			 "[kill  ]"
F056: 5B6C6F616420205D			 "[load  ]"

--------------------------------------	NAME DER AUTOSTARTDATEI
F05E: 4155544F20202020455845		 "AUTO    EXE"
~Seite 222
-------------------------------------->	SPRUNGTABELLE FR FDD-FEHLER
F069: &D8D0 | &AC0C | &ABD0 | &AC38	 LowBat | PR-Err | NR-Err | DF-Err
F071: &D93D | &AC38 | &ABE8 | &AC28	 Format | DF-Err | FL-Err | OP-Err

=== MONITOR ====================================================================
-------------------------------------->	BASIC-BEFEHL MON
F079: 770301	CAL	&h0103		 auf Ende des Befehls berprfen
F07C: 7793D3	CAL	&hD393		 alle Kanle schlieen
F07F: 77FBB6	CAL	&hB6FB		 Vier-Zeilen-Modus setzen
F082: 778604	CAL	&h0486
F085: 77FCF0	CAL	&hF0FC		 ACJMP-Vektor setzen, WORK-Puffer lschen
F088: 421040	LD	$16,%01000000	 IZ liest aus Bank 1 und IX aus Bank 0
F08B: 60900C	ST	$16,(IX-12)	 Konfig. im MON-Bankspeicher ablegen
--  --  --  --  --  --  --  --  --  -->	MON-SCHLEIFE
F08E: 42103E	LD	$16,"?"		 MON-Prompt holen
F091: 77D795	CAL	&h95D7 [OUTAC]	 und ausgeben
F094: 770DF1	CAL	&hF10D		 Eingabezeile festlegen
F097: 77B9E8	CAL	&hE8B9 [KYIN]	 auf Eingabe warten
F09A: 41000D	SBC	$0,13		 ist es nicht die EXE-Taste?
F09D: B416	JR	NZ,&hF0B4	  dann ->
F09F: 771091	CAL	&h9110		 NoScroll-Bit lschen
F0A2: 77EA90	CAL	&h90EA		 Puffer lschen und 1. Zeichen holen
F0A5: 778696	CAL	&h9686		 Zeile in den Eingabepuffer bernehmen
F0A8: 77CE95	CAL	&h95CE [OUTCR]	 CRLF ausgeben
F0AB: D6400060	PRE	IZ,&h6000	 IZ Zeiger auf Eingabepuffer
F0AF: 77C0F0	CAL	&hF0C0		 Befehl verarbeiten
F0B2: B7A5	JR	&hF08E		 und Schleife ->
F0B4: 4100F0	SBC	$0,240		 Sonder- oder Sensortaste?
F0B7: B1A1	JR	NC,&hF097	  dann Schleife ->
F0B9: 0250	LD	$16,#2		 sonst Zeichen ins Ausgabereg. bringen
F0BB: 77D795	CAL	&h95D7 [OUTAC]	 dieses ausgeben
F0BE: B7A8	JR	&hF097		 und Schleife ->
-------------------------------------->	BEFEHL VERARBEITEN
F0C0: 391F	ADC	(IZ+#0),$31	 Zeile leer?
F0C2: B022	JR	Z,&hF0E5	  dann Fehler ->
F0C4: 9E4A	GRE	IZ,$10		 Zeiger auf Eingabepuffer ablegen
F0C6: 2900	LD	$0,(IZ+#0)	 Zeichen aus Eingabepuffer holen
F0C8: 775B01	CAL	&h015B [TCAPS]	 Klein- in Grobuchstabe wandeln
F0CB: 2300	STI	$0,(IZ+#0)	 und wieder speichern
F0CD: 391F	ADC	(IZ+#0),$31	 nicht am Zeilenende?
F0CF: B48A	JR	NZ,&hF0C6	  dann Schleife ->
F0D1: 964A	PRE	IZ,$10		 IZ Zeiger auf Eingabepuffer
F0D3: 2B13	LDI	$19,(IZ+#0)	 Zeichen aus Eingabepuffer lesen
F0D5: 491342	SB	$19,"B"		 ist es der Bank-Befehl?
F0D8: B047	JR	Z,&hF120	  dann ->
F0DA: 491302	SB	$19,2		 ist es der Display-Befehl?
F0DD: 305BF1	JP	Z,&hF15B	  dann ->
F0E0: 0933	SB	$19,#1		 oder der Edit-Befehl?
F0E2: 3029F2	JP	Z,&hF229	  dann ->
--  --  --  --  --  --  --  --  --  -->	FEHLER VORGEKOMMEN
F0E5: 42103F	LD	$16,"?"		 Fragezeichen holen
F0E8: 77D795	CAL	&h95D7		 und ausgeben
~Seite 223
--  --  --  --  --  --  --  --  --  -->	MON-BRK-ROUTINE
F0EB: D6604B6A	PRE	US,&h6A4B	 Userstackzeiger zurcksetzen
F0EF: D7004A6B	PRE	SS,&h6B4A	 Systemstackzeiger zurcksetzen
F0F3: 771091	CAL	&h9110		 NoScroll-Bit lschen
F0F6: 77CE95	CAL	&h95CE [OUTCR]	 CRLF ausgeben
F0F9: 378EF0	JP	&hF08E		 zurck zur Eingabeschleife ->
-------------------------------------->	ACJMP-VEKTOR SETZEN, WORK-PUFFER LSCHEN
F0FC: D102EBF0	LDW	$2,&hF0EB	 $2/3 Adresse der MON-BRK-Routine
F100: 77C390	CAL	&h90C3 [BRSTR]	 diese in ACJMP-Vektor speichern
F103: D102F468	LDW	$2,&h68F4	 $2/3 Zeiger auf WORK-Puffer
F107: 420418	LD	$4,24		 $4/5 Lnge des WORK-Puffers
F10A: 371690	JP	&h9016		 Bereich lschen ->
-------------------------------------->	EINGABEZEILE FESTLEGEN
F10D: 771491	CAL	&h9114		 NoScroll-Bit und Cursorblinken setzen
F110: 292B	LD	$11,(IZ+#1)	 Cursorposition holen
F112: 4C0BE0	AN	$11,%11100000	 Zeile ausfiltern
F115: 082B	AD	$11,#1		 Spalte 1 berechnen
F117: 630B06	STI	$11,(IZ+6)	 als Beginn der Eingabezeile festlegen
F11A: 4E0B1F	OR	$11,&h1F	 Spalte 31 berechnen
F11D: 210B	ST	$11,(IZ+#0)	 als Ende der Eingabezeile festlegen
F11F: F7	RTN			 zurck
-------------------------------------->	BANK-BEFEHL
F120: 391F	ADC	(IZ+#0),$31	 noch mehr Zeichen in der Zeile?
F122: B4BE	JR	NZ,&hF0E5	  dann Fehler ->
F124: D6400069	PRE	IZ,&h6900	 IZ Zeiger auf MON-Bankspeicher
F128: 290F	LD	$15,(IZ+#0)	 Konfiguration holen
F12A: 42100C	LD	$16,&h0C	 und zur ASCII-Zahl wandeln
F12D: 986F	BIUW	$15		 |
F12F: 986F	BIUW	$15		 |
F131: 77D795	CAL	&h95D7 [OUTAC]	 Zeichen ausgeben
F134: 77D9F2	CAL	&hF2D9		 Bindestrich ausgeben
F137: 77B9E8	CAL	&hE8B9 [KYIN]	 auf Eingabe warten
F13A: 41000D	SBC	$0,13		 ist es die EXE-Taste?
F13D: 30CE95	JP	Z,&h95CE [OUTCR]  dann CRLF ausgeben ->
F140: 0250	LD	$16,#2		 Eingabe fr Ausgabe zwischenspeichern
F142: 776001	CAL	&h0160 [CHEX1]	 Hexziffer nach binr wandeln
F145: B18F	JR	NC,&hF137	 war es keine Ziffer? dann Schleife ->
F147: 0120	SBC	$0,#1		 "0" eingegeben?
F149: B506	JR	C,&hF150	  dann ->
F14B: B495	JR	NZ,&hF137	 auch nicht "1"? dann Schleife ->
F14D: 420040	LD	$0,%01000000	 Konfiguration fr Bank 1 holen
F150: D6400069	PRE	IZ,&h6900	 IZ Zeiger auf MON-Bankspeicher
F154: 2100	ST	$0,(IZ+#0)	 Konfiguration dort speichern
F156: 77D795	CAL	&h95D7 [OUTAC]	 Zeichen ausgeben
F159: B723	JR	&hF17D		 CRLF ausgeben ->
-------------------------------------->	DISPLAY-BEFEHL
F15B: 391F	ADC	(IZ+#0),$31	 Zeile schon zu Ende?
F15D: B022	JR	Z,&hF180	  dann ->
F15F: 7785F1	CAL	&hF185		 Adresse lesen
F162: D600F568	PRE	IX,&h68F5	 IX Zeiger auf MON-Adressspeicher
F166: A213	STIW	$19,(IX+#0)	 Adresse dort speichern
F168: 0000	ADC	$0,#0		 am Ende der Zeile?
F16A: B015	JR	Z,&hF180	  dann ->
F16C: 41002C	SBC	$0,","		 folgt kein Komma?
F16F: B4CE	JR	NZ,&hF122	  dann Fehler ->
F171: 7785F1	CAL	&hF185		 Adresse lesen
~Seite 224
F174: A013	STW	$19,(IX+#0)	 als Endadresse speichern
F176: 0000	ADC	$0,#0		 Zeile noch nicht zu Ende?
F178: B48A	JR	NZ,&hF16F	 dann Fehler ->
F17A: 77A1F1	CAL	&hF1A1		 Bereich ausgeben
F17D: 37CE95	JP	&h95CE [OUTCR]	 CRLF ausgeben
F180: 7793F1	CAL	&hF193		 nur eine Zeile ausgeben
F183: B787	JR	&hF17D		 CRLF ausgeben ->
-------------------------------------->	HEXZAHL LESEN
F185: 897313	SBW	$19,$19		 Wortspeicher lschen
F188: 2B00	LDI	$0,(IZ+#0)	 Zeichen aus Eingabepuffer lesen
F18A: 776001	CAL	&h0160 [CHEX1]	 Hexziffer nach binr wandeln
F18D: F1	RTN	NC		 keine Hexziffer gewesen? dann zurck
F18E: 9A33	DIUW	$19		 sonst Wortspeicher hochschieben
F190: 0ED38A	ORJ	$19,#2,&hF188	 Ziffer hinzufgen und Schleife ->
-------------------------------------->	KOMPLETTE ZEILE AUSGEBEN
F193: 77E5F1	CAL	&hF1E5		 aktuelle Adresse ausgeben
F196: 421108	LD	$17,8		 Zhler auf 8 Bytes setzen
F199: 77FDF1	CAL	&hF1FD		 Byte an aktueller Adresse ausgeben
F19C: 0931	SB	$17,#1		 Zhler herabsetzen
F19E: B486	JR	NZ,&hF199	 noch einmal? dann Schleife ->
F1A0: F7	RTN			 zurck
-------------------------------------->	BEREICH AUSGEBEN
F1A1: D640F568	PRE	IZ,&h68F5	 IZ Zeiger auf MON-Adressspeicher
F1A5: E91560	LD4	$21,(IZ+#0)	 Start- und Endadresse holen
F1A8: 897715	SBW	$23,$21		 Lnge des Bereichs feststellen
F1AB: 35E5F0	JP	C,&hF0E5	 Unterlauf? dann Fehler ->
F1AE: D1190800	LDW	$25,8		 Konstante 8 holen
F1B2: 8837	ADW	$23,#1		 ganzen Speicher ausgeben?
F1B4: B51A	JR	C,&hF1CF	  dann ->
F1B6: 817719	SBCW	$23,$25		 noch 8 Bytes auszugehen?
F1B9: B0A7	JR	Z,&hF193	  dann komplette Zeile ausgeben ->
F1BB: B50C	JR	C,&hF1C8	 weniger? dann Restbytes ausgeben ->
F1BD: 897719	SBW	$23,$25		 Lnge um 8 erniedrigen
F1C0: 7793F1	CAL	&hF193		 komplette Zeile ausgeben
F1C3: 77CE95	CAL	&h95CE		 CRLF ausgeben
F1C6: B791	JR	&hF1B6		 und Schleife ->
F1C8: 77E5F1	CAL	&hF1E5		 aktuelle Adresse ausgeben
F1CB: 02F117B5	LDJ	$17,$23,&hF199	 restliche Bytes ausgeben ->
F1CF: D117F8FF	LDW	$23,&hFFF8	 um berlauf zu vermeiden, Lnge setzen
F1D3: B794	JR	&hF1C0		 und zur Ausgabeschleife ->
-------------------------------------->	HEX-ADRESSE AUSGEBEN
F1D5: A90E	LDW	$14,(IZ+#0)	 Adresse holen
F1D7: 421D04	LD	$29,4		 Zhler auf vier Zeichen setzen
F1DA: DA2E40	DIU3	$14		 nchstes Nibble in Ausgabespeicher
F1DD: 77D3F2	CAL	&hF2D3		  schieben und Hexziffer ausgeben
F1E0: 093D	SB	$29,#1		 Zhler herabsetzen
F1E2: B489	JR	NZ,&hF1DA	 noch einmal? dann Schleife ->
F1E4: F7	RTN			 zurck
-------------------------------------->	AKTUELLE ADRESSE AUSGEBEN
F1E5: D640F568	PRE	IZ,&h68F5	 IZ Zeiger auf MON-Adressspeicher
F1E9: 77D5F1	CAL	&hF1D5		 Startadresse ausgeben
F1EC: 375004	JP	&h0450		 zwei Leerzeichen ausgeben
~Seite 225
-------------------------------------->	UMWANDLUNG BINR NACH HEXZIFFER
F1EF: 4C100F	AN	$16,&h0F	 unteres Nibble filtern
F1F2: 4E1030	OR	$16,"0"		 zur ASCII-Ziffer wandeln
F1F5: 41103A	SBC	$16,"9"+1	 Ziffer kleiner gleich 9?
F1F8: F5	RTN	C		  dann zurck
F1F9: 481007	AD	$16,"A"-"9"-1	 sonst zum Buchstaben korrigieren
F1FC: F7	RTN			 zurck
-------------------------------------->	BYTE AN AKTUELLER ADRESSE AUSGEBEN
F1FD: D640F568	PRE	IZ,&h68F5	 IZ Zeiger auf MON-Adressspeicher
F201: A913	LDW	$19,(IZ+#0)	 Startadresse holen
F203: BD1E	ADW	(IZ+#0),$30	 und im Speicher inkrementieren
F205: 41140C	SBC	$20,&h0C	 Adresse im Prozessor-ROM?
F208: B519	JR	C,&hF222	  dann ->
F20A: 9653	PRE	IZ,$19		 IZ Zeiger auf Adresse
F20C: 1E72	GST	UA,$18		 Konfiguration ablegen
F20E: D6000069	PRE	IX,&h6900	 IX Zeiger auf MON-Bankspeicher
F212: 2810	LD	$16,(IX+#0)	 Konfiguration holen
F214: 1670	PST	UA,$16		 und setzen
F216: 77CBF2	CAL	&hF2CB		 Byte holen und oberes Nibble ausgeben
F219: 77D1F2	CAL	&hF2D1		 unteres Nibble ausgeben
F21C: 775204	CAL	&h0452		 Leerzeichen ausgeben
F21F: 372791	JP	&h9127		 evtl. Pause abwarten ->
F222: 0D0F	NA	$15,#0		 Inhalt auf &hFF setzen
F224: 77D1F2	CAL	&hF2D1		 oberes Nibble ausgeben
F227: B78F	JR	&hF219		 und ->
-------------------------------------->	EDIT-BEFEHL
F229: 391F	ADC	(IZ+#0),$31	 Zeile schon zu Ende?
F22B: B00F	JR	Z,&hF23B	  dann ->
F22D: 7785F1	CAL	&hF185		 Adresse holen
F230: D6000169	PRE	IX,&h6901	 IX Zeiger auf MON-Editadresse
F234: A013	STW	$19,(IX+#0)	 Adresse dort speichern
F236: 0000	ADC	$0,#0		 Zeile noch nicht zu Ende?
F238: 34E5F0	JP	NZ,&hF0E5	  dann Fehler ->
F23B: D11A0301	LDW	$26,&h0103	 noch 4 Bytes, oberes Nibble
F23F: D6400169	PRE	IZ,&h6901	 IZ Zeiger auf MON-Editadresse
F243: 77E9F1	CAL	&hF1E9		 Adresse mit zwei Leerzeichen ausgeben
F246: 77B7F2	CAL	&hF2B7		 Byte an aktueller Adresse ausgeben
F249: 77D9F2	CAL	&hF2D9		 Bindestrich ausgeben
F24C: 77B9E8	CAL	&hE8B9 [KYIN]	 auf Eingabe warten
F24F: 41000D	SBC	$0,13		 ist es die EXE-Taste?
F252: 30CE95	JP	Z,&h95CE [OUTCR]  dann CRLF ausgeben ->
F255: 410020	SBC	$0," "		 ein Leerzeichen?
F258: B03A	JR	Z,&hF293	  dann ->
F25A: 410008	SBC	$0,8		 Rckschritt?
F25D: B03F	JR	Z,&hF29D	  dann ->
F25F: 0250	LD	$16,#2		 Zeichen in Ausgaberegister bringen
F261: 776001	CAL	&h0160 [CHEX1]	 Hexziffer nach binr wandeln
F264: B199	JR	NC,&hF24C	 keine Hexziffer gewesen? dann Schl. ->
F266: 001B	ADC	$27,#0		 oberes Nibble eingeben?
F268: B41F	JR	NZ,&hF288	  dann ->
--  --  --  --  --  --  --  --  --  --	UNTERES NIBBLE VERARBEITEN
F26A: 0E54	OR	$20,#2		 sonst Byte komplettieren
F26C: 77D795	CAL	&h95D7 [OUTAC]	 Zeichen ausgeben
F26F: 77A8F2	CAL	&hF2A8		 MON-Editadresse holen und Bank setzen
F272: 2114	ST	$20,(IZ+#0)	 Byte speichern
F274: 1672	PST	UA,$18		 alte Konfiguration wieder setzen
~Seite 226
F276: D6400169	PRE	IZ,&h6901	 IZ Zeiger auf MON-Editadresse
F27A: BD1E	ADW	(IZ+#0),$30	 diese inkrementieren
F27C: 023B	LD	$27,#1		 Flag auf oberes Nibble setzen
F27E: 001A	ADC	$26,#0		 letztes Byte der Zeile?
F280: B022	JR	Z,&hF2A3	  dann ->
F282: 775204	CAL	&h0452		 Leerzeichen ausgeben
F285: 09BAC1	SBJ	$26,#1,&hF246	 Zhler herabsetzen und Schleife ->
--  --  --  --  --  --  --  --  --  --	OBERES NIBBLE VERARBEITEN
F288: 093B	SB	$27,#1		 Flag auf zweite Ziffer setzen
F28A: 1A20	DIU	$0		 in oberes Nibble hochschieben
F28C: 0254	LD	$20,#2		 und in Zwischenspeicher bringen
F28E: 77D795	CAL	&h95D7 [OUTAC]	 Zeichen ausgeben
F291: B7C6	JR	&hF24C		 und Schleife ->
--  --  --  --  --  --  --  --  --  --	LEERZEICHEN EINGEGEBEN
F293: 001B	ADC	$27,#0		 unteres Nibble?
F295: 705204	CAL	Z,&h0452	 dann Leerzeichen ausgeben
F298: 775004	CAL	&h0450		 zwei Leerzeichen ausgeben
F29B: B7A6	JR	&hF276		 und zum Erhhen der Adresse ->
--  --  --  --  --  --  --  --  --  --	RCKSCHRITT EINGEGEBEN
F29D: D6400169	PRE	IZ,&h6901	 IZ Zeiger auf MON-Editadresse
F2A1: BF1E	SBW	(IZ+#0),$30	 diese dekrementieren
F2A3: 77CE95	CAL	&h95CE [OUTCR]	 CRLF ausgeben
F2A6: B7EC	JR	&hF23B		 wieder in neuer Zeile weiter ->
-------------------------------------->	MON-EDITADRESSE HOLEN UND BANK SETZEN
F2A8: D6400069	PRE	IZ,&h6900	 IZ Zeiger auf MON-Bankspeicher
F2AC: 2B13	LDI	$19,(IZ+#0)	 Konfiguration holen
F2AE: 1E72	GST	UA,$18		 alte Konfiguration zwischenspeichern
F2B0: A915	LDW	$21,(IZ+#0)	 MON-Editadresse holen
F2B2: 9655	PRE	IZ,$21		 und nach IZ bringen
F2B4: 1673	PST	UA,$19		 Konfiguration setzen
F2B6: F7	RTN			 zurck
-------------------------------------->	BYTE AN MON-EDITADRESSE AUSGEBEN
F2B7: 77A8F2	CAL	&hF2A8		 MON-Editadresse holen und Bank setzen
F2BA: 41160C	SBC	$22,&h0C	 im Prozessor-ROM?
F2BD: B506	JR	C,&hF2C4	  dann ->
F2BF: 77CBF2	CAL	&hF2CB		 Byte holen und oberes Nibble ausgeben
F2C2: B70E	JR	&hF2D1		 unteres Nibbles ausgeben
F2C4: 0D0F	NA	$15,#0		 Byte auf &hFF setzen
F2C6: 77CFF2	CAL	&hF2CF		 oberes Nibble ausgeben
F2C9: B707	JR	&hF2D1		 unteres Nibble ausgeben
-------------------------------------->	BYTE HOLEN UND OBERES NIBBLE AUSGEBEN
F2CB: FB	SLW			 Prozessor bremsen
F2CC: 290F	LD	$15,(IZ+#0)	 Byte holen
F2CE: FA	FST			 Prozessor wieder beschleunigen
F2CF: 1672	PST	UA,$18		 Konfiguration wieder setzen
--  --  --  --  --  --  --  --  --  -->	OBERES NIBBLE AUSGEBEN
F2D1: 9A2F	DIUW	$15		 oberes Nibble ins Ausgaberegister
F2D3: 77EFF1	CAL	&hF1EF		 Binr- nach Hexziffer umwandeln
F2D6: 37D795	JP	&h95D7 [OUTAC]	 Zeichen ausgeben ->
-------------------------------------->	BINDESTRICH AUSGEBEN
F2D9: 42902D86	LDJ	$16,"-",&hF2D6	 Bindestrich holen und ausgeben ->
~Seite 227
=== ASSEBMLER ==================================================================
--------------------------------------	MNEMONIC-BUCHSTABEN-VERWEISTABELLE
F2DD: 41 &F311 | 42 &F33B | 43 &F360	 A | B | C
F2E0: 44 &F377 | 45 &F390 | 46 &F395	 D | E | F
F2E3: 47 &F39A | 49 &F3AB | 4A &F3B5	 G | I | J
F2E6: 4C &F3BC | 4E &F3CD | 4F &F3E2	 L | N | O
F2E9: 50 &F3FB | 52 &F42C | 53 &F448	 P | R | S
F2EC: 54 &F484 | 58 &F489 | 00		 T | X
--------------------------------------	MNEMONICS-TABELLE
 (Zeichen rckwrts, letztes hat Bit7=1, danach folgen Befehlsart und Code)
--  --  --  --  --  --  --  --  --  --	A
F2EF: C4      0D 08 | 42C4	13 0A	 AD	| ADB
F2EF: 5742C4  11 8A | 43C4	0D 00	 ADBW	| ADC
F2EF: 5743C4  12 80 | 57C4	12 88	 ADCW	| ADW
F2EF: CE      13 0C | 43CE	13 04	 AN	| ANC
F2EF: 5743CE  11 84 | 57CE	11 8C	 ANCW	| ANW
F2EF: 00				 Ende
--  --  --  --  --  --  --  --  --  --	B
F2EF: 4EC4    00 D9 | 44C9	05 18	 BDN	| BID
F2EF: 5744C9  05 98 | 55C9	06 18	 BIDW	| BIU
F2EF: 5755C9  06 98 | 50D5	00 D8	 BIUW	| BUP
F2EF: 5744D9  05 9A | 5755D9	06 9A	 BYDW	| BYUW
F2EF: 00				 Ende
--  --  --  --  --  --  --  --  --  --	C
F2EF: 494EC1  00 FC | 4CC1	0B 77	 CANI	| CAL
F2EF: 54CC    00 F9 | 50CD	03 1B	 CLT	| CMP
F2EF: 5750CD  03 9B | 00		 CMPW	| Ende
--  --  --  --  --  --  --  --  --  --	D
F2EF: C2      30 02 | 44C9	03 1A	 DB	| DID
F2EF: 5744C9  03 9A | 55C9	04 1A	 DIDW	| DIU
F2EF: 5755C9  04 9A | D3	30 04	 DIUW	| DS
F2EF: 00				 Ende
--  --  --  --  --  --  --  --  --  --	E
F2EF: 55D1    30 01 | 00		 EQU	| Ende
--  --  --  --  --  --  --  --  --  --	F
F2EF: 54D3    00 FA | 00		 FST	| Ende
--  --  --  --  --  --  --  --  --  --	G
F2EF: 4CC6    05 1C | 4FD0	03 1C	 GFL	| GPO
F2EF: 45D2    08 9E | 54D3	07 1E	 GRE	| GST
F2EF: 00				 Ende
--  --  --  --  --  --  --  --  --  --	I
F2EF: 56CE    05 1B | 5756CE	05 9B	 INV	| INVW
F2EF: 00				 Ende
--  --  --  --  --  --  --  --  --  --	J
F2EF: D2      02 B7 | D0	0B 37	 JR	| JP
F2EF: 00				 Ende
--  --  --  --  --  --  --  --  --  --	L
F2EF: C4      0E 02 | 57C4	17 82	 LD	| LDW
F2EF: 49C4    10 2A | 5749C4	0F AA	 LDI	| LDIW
F2EF: 00				 Ende
--  --  --  --  --  --  --  --  --  --	N
F2EF: C1      13 0D | 43C1	13 05	 NA	| NAC
F2EF: 5743C1  11 85 | 57C1	11 8D	 NACW	| NAW
F2EF: 50CF    00 F8 | 00		 NOP	| Ende
~Seite 228
--  --  --  --  --  --  --  --  --  --	O
F2EF: 46C6    00 FE | D2	13 0E	 OFF	| OR
F2EF: 43D2    13 06 | 5743D2	11 86	 ORC	| ORCW
F2EF: 57D2    11 8E | 47D2	30 00	 ORW	| ORG
F2EF: 00				 Ende
--  --  --  --  --  --  --  --  --  --	P
F2EF: 4CC6    09 14 | 53C8	03 26	 PFL	| PHS
F2EF: 5753C8  03 A6 | 55C8	03 27	 PHSW	| PHU
F2EF: 5755C8  03 A7 | 53D0	03 2E	 PHUW	| PPS
F2EF: 5753D0  03 AE | 55D0	03 2F	 PPSW	| PPU
F2EF: 5755D0  03 AF | 45D2	16 96	 PPUW	| PRE
F2EF: 54D3    15 56 | 00		 PST	| Ende
--  --  --  --  --  --  --  --  --  --	R
F2EF: 44CF    03 18 | 5744CF	03 98	 ROD	| RODW
F2EF: 55CF    04 18 | 5755CF	04 98	 ROU	| ROUW
F2EF: 4ED4    01 F7 | 494ED4	00 FD	 RTN	| RTNI
F2EF: 00				 Ende
--  --  --  --  --  --  --  --  --  --	S
F2EF: C2      0D 09 | 42C2	13 0B	 SB	| SBB
F2EF: 5742C2  11 8B | 43C2	0D 01	 SBBW	| SBC
F2EF: 5743C2  12 81 | 57C2	12 89	 SBCW	| SBW
F2EF: 4EC4    0A 5D | 57CC	00 FB	 SDN	| SLW
F2EF: D4      0C 10 | 545241D4	30 03	 ST	| START
F2EF: 57D4    14 90 | 49D4	10 22	 STW	| STI
F2EF: 5749D4  0F A2 | 50D5	0A 5C	 STIW	| SUP
F2EF: 00				 Ende
--  --  --  --  --  --  --  --  --  --	T
F2EF: 50D2    00 FF | 00		 TRP	| Ende
--  --  --  --  --  --  --  --  --  --	X
F2EF: D2      13 0F | 43D2	13 07	 XR	| XRC
F2EF: 5743D2  11 87 | 57D2	11 8F	 XRCW	| XRW
F2EF: 00				 Ende
--------------------------------------	STARTADRESSEN FR DIE BEFEHLSTYPEN
F49A: &FBEE | &FBF5 | &FC2D | &FC7B	  0 |  1 |  2 |  3
F4A2: &FC81 | &FC85 | &FC78 | &FCC7	  4 |  5 |  6 |  7
F4AA: &FCD1 | &FE05 | &FCD6 | &FCE4	  8 |  9 | 10 | 11
F4B2: &FD91 | &FDA0 | &FDD6 | &FD1D	 12 | 13 | 14 | 15
F4BA: &FD22 | &FD35 | &FD43 | &FD60	 16 | 17 | 18 | 19
F4C2: &FD82 | &FE0D | &FE32 | &FE4F	 20 | 21 | 22 | 23
--------------------------------------	SPRUNGBEDINGUNGEN
F4CA: 000000				 ___ (Platz fr LNZ!)
F4CD: 430000 | 4E5A00 | 555A00		 C__ | NZ_ | UZ_
F4D6: 4C5A00 | 4E4300 | 5A0000		 LZ_ | NC_ | Z__
--------------------------------------	8BIT-REGISTERNAMEN
F4DF: 5045 | 5044 | 0000 | 5541		 PE PD __ UA
F4E7: 4941 | 4945 | 0000 | 544D		 IA IE __ TM
--------------------------------------	16BIT-REGISTERNAMEN
F4EF: 4958 | 4959 | 495A | 5553		 IX IY IZ US
F4F7: 5353 | 4B59 | 4B59 | 4B59		 SS KY KY KY
-------------------------------------->	[ASMBL ]-TASTE VERARBEITEN
F4FF: 7719EB	CAL	&hEB19		 angesprochenes File leer? dann zurck
F502: 411D24	SBC	$29,36		 ist es kein "S"-File?
F505: 345095	JP	NZ,&h9550	 dann in Haupt-Warteschleife ->
F508: 9606	PRE	IX,$6		 IX Zeiger auf Fileheader
F50A: 779EE7	CAL	&hE79E		 Fileneme in Register holen
F50D: 777EE4	CAL	&hE47E		 IZ Zeiger auf WORK-Puffer
~Seite 229
F510: E300E0	STI8	$0,(IZ+#0)	 Filename in den WORK-Puffer bringen
F513: 420045	LD	$0,"E"		 Extension "EXE" holen
F516: D1015845	LDW	$1,"XE"	 |
F51A: E10040	ST3	$0,(IZ+#0)	 und im WORK-Speicher ablegen
F51D: C74940	XRC3	$9,#2		 hat SRC-File die Extension "EXE"?
F520: B008	JR	Z,&hF529	  dann ->
F522: D1015252	LDW	$1,"RR"		 Extension "ERR" holen
F526: C74940	XRC3	$9,#2		 hat SRC-File die Extension "ERR"?
F529: 305095	JP	Z,&h9550	  dann in die Haupt-Warteschleife ->
F52C: D1106C69	LDW	$16,"li"	 Text "list" holen
F530: D1127374	LDW	$18,"st"	 |
F534: 7780E6	CAL	&hE680		 auf angeschlossenes Interface prfen
F537: 440180	ANC	$1,&h80		 ist Druckerport vorhanden?
F53A: 70A5E8	CAL	Z,&hE8A5	  dann Abfrage fr Protokoll machen
F53D: 420180	LD	$1,&h80		 Flag auf ersten Durchgang setzen
F540: B404	JR	NZ,&hF545	 kein Protokoll? dann ->
F542: 420190	LD	$1,&h90		 Flag fr Protokoll setzen
F545: 4100F5	SBC	$0,245		 LCKEY-Taste gedrckt?
F548: 300E95	JP	Z,&h950E	  dann zurck in Haupt-Warteschleife ->
F54B: 2601	PHS	$1		 Druckflag retten
F54D: 770FE8	CAL	&hE80F		 EXE-File suchen
F550: 7142E8	CAL	NC,&hE842 [KILL]  vorhanden? dann lschen
F553: D100FD68	LDW	$0,&h68FD	 $0/1 Zeiger in WORK-Puffer
F557: D0405252	STW	&h5252,(#2)	 Extension in "ERR" ndern
F55B: 770FE8	CAL	&hE80F		 ERR-File suchen
F55E: 7142E8	CAL	NC,&hE842 [KILL] vorhanden? dann lschen
F561: 77E704	CAL	&h04E7 [CLEDB]	 Display- und Grafikpuffer lschen
F564: 772C02	CAL	&h022C [DOTDI]	 Display auffrischen
F567: 77F78F	CAL	&h8FF7		 Menzeilenpuffer lschen
F56A: 77B995	CAL	&h95B9		 IZ Zeiger auf Menzeilenpuffer
F56D: D1005354	LDW	$0,"ST"		 Text "START!" holen
F571: D1024152	LDW	$2,"AR"		 |
F575: D1045421	LDW	$4,"T!"		 |
F579: E120A0	ST6	$0,(IZ+#1)	 und in den Menzeilenpuffer bringen
F57C: 772EB9	CAL	&hB92E		 Menzeile anzeigen
F57F: D102A6F6	LDW	$2,&hF6A6	 $2/3 Adresse der ASMBL-BRK-Adresse
F583: 77C390	CAL	&h90C3 [BRSTR]	 diese im ACJMP-Vektor speichern
F586: 2E12	PPS	$18		 Flags wieder holen
F588: 777A8F	CAL	&h8F7A		 IZ Zeiger auf Betriebsmodus
F58B: 420280	LD	$2,&h80		 ASMBL-Modus einfgen
F58E: 3D02	AD	(IZ+#0),$2	 |
F590: 7703F1	CAL	&hF103		 ganzen Arbeitsspeicher lschen
F593: 771F90	CAL	&h901F [INCLR]	 Bytespeicher lschen
F596: 7720B7	CAL	&hB720		 Start- u. Endadr. des SRC-Files holen
F599: 777EE4	CAL	&hE47E		 IZ Zeiger auf WORK-Puffer
F59C: A139	STW	$25,(IZ+#1)	 Startadresse speichern
F59E: 420762	LD	$7,&h62		 Endadresse des ERR-Files
F5A1: 610707	ST	$7,(IZ+7)	  speichern
F5A4: D6404769	PRE	IZ,&h6947	 IZ Zeiger auf Directory-Untergrenze
F5A8: A91B	LDW	$27,(IZ+#0)	 diese holen
--  --  --  --  --  --  --  --  --  --	DURCHLAUF STARTEN
F5AA: D6404569	PRE	IZ,&h6945	 IZ Zeiger auf Freispeicher-Untergrenze
F5AE: A915	LDW	$21,(IZ+#0)	 diese holen
F5B0: 777EE4	CAL	&hE47E		 IZ Zeiger auf WORK-Puffer
F5B3: AB24	LDIW	$4,(IZ+#1)	 SRC-Startadresse wieder holen
F5B5: 9604	PRE	IX,$4		 IX ist Textzeiger in SRC-File
~Seite 230
F5B7: A13E	STW	$30,(IZ+#1)	 Zeilennummer auf 1 setzen
F5B9: 631F09	STI	$31,(IZ+9)	 {berflssig}
F5BC: 211F	ST	$31,(IZ+#0)	 {    !!!    }
F5BE: 4C12F7	AN	$18,&hF7	 Flag fr angegebenes ORG lschen
F5C1: 77C7F6	CAL	&hF6C7		 Zeile verarbeiten
F5C4: 41001A	SBC	$0,26		 File nicht zu Ende?
F5C7: B487	JR	NZ,&hF5C1	  dann Schleife ->
F5C9: 481280	AD	$18,&h80	 erster Durchlauf gewesen?
F5CC: B5A3	JR	C,&hF5AA	  dann zweiten starten ->
F5CE: 106015	ST	$0,($21)	 EOF-Zeichen in EXE-File setzen
F5D1: 8835	ADW	$21,#1		 EXE-Fileende erhhen
F5D3: D10A2000	LDW	$10,32		 Lnge eines Fileheaders holen
F5D7: D6404869	PRE	IZ,&h6948	 IZ Zeiger auf Freispeicher-Obergrenze
F5DB: AD18	LDDW	$24,(IZ+#0)	 diese holen
F5DD: 89770A	SBW	$23,$10		 um eine Fileheader-Lnge herabsetzen
F5E0: 817715	SBCW	$23,$21		 kein Platz mehr dafr da?
F5E3: 35BDAB	JP	C,&hABBD	  dann OM Error
F5E6: ADA2	LDDW	$2,(IZ-#1)	 $1/2 Beginn des Freispeichers
F5E8: 826315	LDW	$3,$21		 $3/4 Ende des EXE-Files
F5EB: 42050D	LD	$5,13		 $5   Filetyp "M"
F5EE: 77A9F6	CAL	&hF6A9		 mit Filename im Fileheader speichern
F5F1: D1004558	LDW	$0,"EX"		 Extension "EXE" holen
F5F5: 0242	LD	$2,#2		 |
F5F7: 77C1F6	CAL	&hF6C1		 diese speichern und Passwort lschen
F5FA: D640FE68	PRE	IZ,&h68FE	 IZ Zeiger auf ML-Adressen
F5FE: E900A0	LD6	$0,(IZ+#0)	 diese holen
F601: E200C0	STI7	$0,(IX+#0)	 und im Fileheader speichern
F604: D640FA68	PRE	IZ,&h68FA	 IZ Zeiger auf ERR-Fileende-Zeiger
F608: A910	LDW	$16,(IZ+#0)	 diesen holen
F60A: A912	LDW	$18,(IZ+#0)	 |
F60C: D1080062	LDW	$8,&h6200	 Startadresse im Speicher holen
F610: 897008	SBW	$16,$8		 Lnge des ERR-Files bestimmen
F613: B03D	JR	Z,&hF651	 kein Fehler gewesen? dann ->
F615: 887015	ADW	$16,$21		 neue Startadresse berechnen
F618: B5B6	JR	C,&hF5E3	 bertrag? dann OM Error
F61A: 89770A	SBW	$23,$10		 Headeradresse herabsetzen
F61D: 826115	LDW	$1,$21		 $1/2 Startadresse
F620: 826310	LDW	$3,$16		 $3/4 Endadresse+1 (fr EOF-Zeichen)
F623: 8823	ADW	$3,#1		 |
F625: 817703	SBCW	$23,$3		 nicht gengend Speicher?
F628: B5C6	JR	C,&hF5E3	  dann OM Error ->
F62A: 420524	LD	$5,36		 $5   Filetyp "S"
F62D: 77A9F6	CAL	&hF6A9		 Fileheader fllen
F630: D1004552	LDW	$0,"ER"		 Extension "ERR" holen
F634: 420252	LD	$2,"R"		 |
F637: 77C1F6	CAL	&hF6C1		 diese speichern und Passwort lschen
F63A: 826E10	LDW	$14,$16		 $14/15 ERR-Fileende im Speicher
F63D: 892E	SBW	$14,#1		 |
F63F: 8932	SBW	$18,#1		 $18/19 ERR-Fileende
F641: 9612	PRE	IX,$18		 IX Quellendadresse
F643: 9628	PRE	IY,$8		 IY Quellanfangsadresse
F645: 964E	PRE	IZ,$14		 IZ Zielendadresse
F647: D9	BDN			 Block verschieben
F648: 42001A	LD	$0,26		 EOF-Zeichen holen
F64B: 9610	PRE	IX,$16		 IX Zeiger auf ERR-Fileende im Speicher
F64D: 2200	STI	$0,(IX+#0)	 EOF setzen
~Seite 231
F64F: 9E15	GRE	IX,$21		 echtes ERR-Fileende nach $21/22 bringen
F651: D6004569	PRE	IX,&h6945	 IX Zeiger auf Freispeicher-Untergrenze
F655: E01560	ST4	$21,(IX+#0)	 diese und -Obergrenze neu setzen
F658: 77AFE6	CAL	&hE6AF		 IZ Zeiger auf Akitvfileheader-Zeiger
F65B: A137	STW	$23,(IZ+#1)	 ERR- (oder EXE-) Fileheaderz. setzen
F65D: 420040	LD	$0,&h40		 Kennzeichen fr MEN-Modus holen
F660: 618002	ST	$0,(IZ-&h02)	 und als Betriebsmodus speichern
F663: 77B995	CAL	&h95B9		 Menzeilenpuffer lschen
F666: D11A454E	LDW	$26,"EN"	 Text "END!" holen
F66A: D11C4421	LDW	$28,"D!"	 |
F66E: E33AA0	STI6	$26,(IZ+#1)	 und in den Menzeilenpuffer bringen
F671: D100544F	LDW	$0,"TO"		 Text "TOTAL" holen
F675: 0242	LD	$2,#2		 |
F677: D103414C	LDW	$3,"AL"		 |
F67B: E30080	STI5	$0,(IZ+#0)	 und in den Menzeilenpuffer bringen
F67E: D1194552	LDW	$25,"ER"	 Text "ERROR" holen
F682: D11B524F	LDW	$27,"RO"	 |
F686: 421D52	LD	$29,"R"		 |
F689: E339A0	STI6	$25,(IZ+#1)	 und in den Menzeilenpuffer bringen
F68C: D600F768	PRE	IX,&h68F7	 IX Zeiger auf Fehleranzahl
F690: 280F	LD	$15,(IX+#0)	 diese holen
F692: 021D	LD	$29,#0		 Zhler auf Null setzen
F694: 9A2F	DIUW	$15		 Nibble in Ausgaberegister
F696: 77EFF1	CAL	&hF1EF		 Binr- in Hexziffer wandeln
F699: 2310	STI	$16,(IZ+#0)	 in Puffer speichern
F69B: 481D80	AD	$29,&h80	 erstes Nibble gewesen?
F69E: B18B	JR	NC,&hF694	  dann Schleife ->
F6A0: 772EB9	CAL	&hB92E		 Menzeilenpuffer anzeigen
F6A3: 77B9E8	CAL	&hE8B9 [KYIN]	 auf Eingabe warten
--  --  --  --  --  --  --  --  --  -->	ASMBL-BRK-ROUTINE
F6A6: 37A6EC	JP	&hECA6		 Men-Cursor auf richtiges File ->
-------------------------------------->	FILEHEADER FLLEN
F6A9: 9617	PRE	IX,$23		 IX Zeiger auf Fileheader
F6AB: 0200	LD	$0,#0		 C.Boot-/Preset-Flag lschen
F6AD: E200A0	STI6	$0,(IX+#0)	 mit Adressen und Filetyp speichern
F6B0: 77AFE6	CAL	&hE6AF		 IZ Zeiger auf SRC-Fileheader-Zeiger
F6B3: A92C	LDW	$12,(IZ+#1)	 diesen holen
F6B5: 964C	PRE	IZ,$12		 IZ Zeiger auf SRC-Fileheader
F6B7: 6B0005	LDI	$0,(IZ+5)	 Filename holen
F6BA: E900E0	LD8	$0,(IZ+#0)	 |
F6BD: E200E0	STI8	$0,(IX+#0)	 und in den neuen Fileheader kopieren
F6C0: F7	RTN			 zurck
-------------------------------------->	EXTENSION SPEICHERN, PASSWORT LSCHEN
F6C1: E20040	STI3	$0,(IX+#0)	 Extension im Fileheader speichern
F6C4: 0D8089	NAJ	$0,#0,&hF6BD	 Password lschen ->
-------------------------------------->	ZEILE VERARBEITEN
  (I/O:	$18  +8: ORG-Zeile schon gelesen,
            +16: Protokoll im zweiten Durchlauf ausgeben,
            +32: Fehler in der Zeile aufgetreten,
            +64: Labeldefinition am Zeilenanfang gelesen,
           +128: erster Durchlauf,
	$21/22 physikalische Adresse im EXE-File,
	$27/28 Labelspeicher-Untergenze,
   O:	$19/20 Byteanzahl im Bytespeicher)

F6C7: 897313	SBW	$19,$19		 Anzahl der Bytes lschen
~Seite 232
F6CA: 4C129F	AN	$18,%10011111	 Fehler- und Labeldef.flag lschen
F6CD: 0217	LD	$23,#0		 letzte Fehlernummer lschen {berfl.}
F6CF: D6400869	PRE	IZ,&h6908	 IZ Zeiger auf Bytespeicherzeiger
F6D3: D1080060	LDW	$8,&h6000	 $8/9 Zeiger auf Bytespeicher
F6D7: A308	STIW	$8,(IZ+#0)	 und diesen speichern
F6D9: 9E08	GRE	IX,$8		 SRC-Textzeiger ablegen
F6DB: A108	STW	$8,(IZ+#0)	 und ebenfalls speichern
F6DD: D640AE61	PRE	IZ,&h61AE	 IZ Zeiger auf
F6E1: A115	STW	$21,(IZ+#0)	 augenbl. Speicheradresse speichern
F6E3: 77F900	CAL	&h00F9 [NEXTC]	 Zeichen aus Text lesen
F6E6: 41001A	SBC	$0,26		 Ende des SRC-Files?
F6E9: F0	RTN	Z		  dann zurck
F6EA: 7737F8	CAL	&hF837		 Argument aus Zeile lesen
F6ED: 41000A	SBC	$0,10		 war es keine Labeldefinition?
F6F0: B411	JR	NZ,&hF702	  dann ->
F6F2: D6400069	PRE	IZ,&h6900	 IZ Zeiger auf Logik-Adressenzeiger
F6F6: A908	LDW	$8,(IZ+#0)	 logische Adresse holen
F6F8: D640A561	PRE	IZ,&h61A5	 IZ Zeiger auf Labeldef.speicher
F6FC: E103C0	ST7	$3,(IZ+#0)	 Label inkl. Adresse zwischenspeichern
F6FF: 7737F8	CAL	&hF837		 Argument aus Zeile lesen
F702: 441208	ANC	$18,8		 ist noch kein Speicheradr. angegeben?
F705: B058	JR	Z,&hF75E	  dann ->
F707: 410009	SBC	$0,9		 kein Label?
F70A: B444	JR	NZ,&hF74F	  dann ->
F70C: 77BBFA	CAL	&hFABB		 Befehl erkennen
F70F: 7159FB	CAL	NC,&hFB59	 nicht gefunden? dann ERR4
F712: 410130	SBC	$1,&h30		 ist es eine Direktive?
F715: B043	JR	Z,&hF759	  dann ->
F717: 77F5FA	CAL	&hFAF5		 Byteanzahl aus Befehlstyp ermitteln
F71A: 401280	ADC	$18,&h80	 im ersten Durchgang?
F71D: B536	JR	C,&hF754	  dann ->
--  --  --  --  --  --  --  --  --  --	IM ZWEITEN DURCHGANG HIER WEITER
F71F: 77DDFB	CAL	&hFBDD		 Befehl verarbeiten
F722: 7737F8	CAL	&hF837		 Argument aus Zeile lesen
F725: 0000	ADC	$0,#0		 kein Zeilenende?
F727: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
F72A: 027012	LD	$16,$18		 im zweiten Durchgang und
F72D: 4C1090	AN	$16,&h90	 |
F730: 491010	SB	$16,&h10	 soll Protokoll erstellt werden?
F733: 70A5F7	CAL	Z,&hF7A5	  dann Zeile ausdrucken
F736: 887513	ADW	$21,$19		 physikalische Adresse erhhen
F739: 35BDAB	JP	C,&hABBD	 berlauf? dann OM Error
F73C: D6400069	PRE	IZ,&h6900	 IZ Zeiger auf physikalische Adresse
F740: BD13	ADW	(IZ+#0),$19	 diese ebenfalls erhhen
F742: D640F868	PRE	IZ,&h68F8	 IZ Zeiger auf Zeilennummer
F746: A90A	LDW	$10,(IZ+#0)	 diese holen
F748: 8A2A	ADBW	$10,#1		 und inkrementieren (BCD)
F74A: A10A	STW	$10,(IZ+#0)	 und zurckspeichern
F74C: 375EB4	JP	&hB45E		 Zeilenrest berlesen
--  --  --  --  --  --  --  --  --  --	KEIN BEFEHL GEFUNDEN
F74F: 0800	AD	$0,#0		 ist Zeile nicht zu Ende?
F751: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
~Seite 233
--  --  --  --  --  --  --  --  --  --	IM ERSTEN DURCHGANG HIER
F754: 7795F9	CAL	&hF995		 Label definieren
F757: B7AE	JR	&hF72A		 und ->
--  --  --  --  --  --  --  --  --  --	DIREKTIVE VERARBEITEN
F759: 77F1F9	CAL	&hF9F1		 ber Sprungtabelle springen
F75C: B7BB	JR	&hF722		 und ->
--  --  --  --  --  --  --  --  --  --	AUF ORG-ZEILE WARTEN
F75E: 0000	ADC	$0,#0		 am Ende der Zeile?
F760: B0B7	JR	Z,&hF72A	  dann ->
F762: 410009	SBC	$0,9		 ist es kein Label?
F765: 3485AC	JP	NZ,&hAC85	  dann OR Error
F768: 77BBFA	CAL	&hFABB		 Befehl erkennen
F76B: 3185AC	JP	NC,&hAC85	 kein Befehl? dann OR Error
F76E: 410130	SBC	$1,&h30		 keine Direktive?
F771: B48D	JR	NZ,&hF765	  dann OR Error
F773: 0422	ANC	$2,#1		 EQU- oder START-Direktive?
F775: B49D	JR	NZ,&hF759	  dann ->
F777: 0002	ADC	$2,#0		 nicht ORG-Direktive?
F779: B495	JR	NZ,&hF765	  dann OR Error
F77B: 441240	ANC	$18,&h40	 Labeldefinition gelesen?
F77E: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
F781: 7751FA	CAL	&hFA51		 Argument lesen, ist es keine Zahl?
F784: B19A	JR	NC,&hF76B	  dann OR Error
F786: 826A15	LDW	$10,$21		 Offset physik. zu log. Adresse
F789: 896A08	SBW	$10,$8		  berechnen
F78C: D640FC68	PRE	IZ,&h68FC	 IZ Zeiger auf Offsetspeicher
F790: A30A	STIW	$10,(IZ+#0)	 Offset speichern
F792: A308	STIW	$8,(IZ+#0)	 Adresse als EXE-Lade-Adresse
F794: A308	STIW	$8,(IZ+#0)	 und als logische Adresse setzen
F796: 4E9208EF	ORJ	$18,8,&hF72A	 Flag fr gegebenes ORG setzen und ->
--------------------------------------	FEHLER PROTOKOLLIEREN
F79A: 42103F	LD	$16,"?"		 Fragezeichen holen
F79D: 77D795	CAL	&h95D7 [OUTAC]	 und ausgeben
F7A0: 775204	CAL	&h0452		 Leerzeichen ausgeben
F7A3: B72E	JR	&hF7D2		 und ->
--  --  --  --  --  --  --  --  --  -->	ZEILE AUF DRUCKER AUSGEBEN
  (bei mehr als vier Bytes in der Zeile werden diese ordentlich in die
   nchsten Zeilen gedruckt)
F7A5: E717E0	PHU8	$23		 Register $16-23 zwischenspeichern
F7A8: 0233	LD	$19,#1		 Flag fr "mehr als 4 Bytes" zurcks.
F7AA: 77DD90	CAL	&h90DD		 Ausgabe auf Drucker lenken
F7AD: D6400869	PRE	IZ,&h6908	 IZ Zeiger auf Bytespeicherzeiger
F7B1: A916	LDW	$22,(IZ+#0)	 diesen holen
F7B3: D1140060	LDW	$20,&h6000	 $20/21 Zeiger auf Bytespeicher
F7B7: 6D8E10	LDD	$14,(IZ-16)	 IZ Zeiger auf Zeilennummer
F7BA: 77D5F1	CAL	&hF1D5		 diese ausgeben
F7BD: 42103A	LD	$16,":"		 Doppelpunkt holen
F7C0: 77D795	CAL	&h95D7 [OUTAC]	 und ausgeben
F7C3: D6400069	PRE	IZ,&h6900	 IZ Zeiger auf Logik-Adressenspeicher
F7C7: 77D5F1	CAL	&hF1D5		 logische Adresse ausgeben
F7CA: 441220	ANC	$18,&h20	 ist Fehler aufgetreten?
F7CD: B4B4	JR	NZ,&hF79A	  dann dies protokollieren ->
F7CF: 775004	CAL	&h0450		 sonst Leerzeichen ausgeben
F7D2: 421D04	LD	$29,4		 maximal vier Bytes ausgeben
F7D5: 817614	SBCW	$22,$20		 kein Byte mehr im Bytespeicher?
F7D8: B038	JR	Z,&hF811	  dann ->
~Seite 234
F7DA: 9654	PRE	IZ,$20		 IZ Zeiger auf Byte im Bytespeicher
F7DC: 290F	LD	$15,(IZ+#0)	 dieses holen
F7DE: 77D1F2	CAL	&hF2D1		 oberes Nibble ausgeben
F7E1: 77D1F2	CAL	&hF2D1		 Unteres Nibble ausgeben
F7E4: 8834	ADW	$20,#1		 Zeiger erhhen
F7E6: 093D	SB	$29,#1		 Byteanzahl herabsetzen
F7E8: B494	JR	NZ,&hF7D5	 noch eins ausgeben? dann Schleife ->
F7EA: 775004	CAL	&h0450		 zwei Leerzeichen ausgeben
F7ED: 0013	ADC	$19,#0		 noch mehr Bytes auszugeben?
F7EF: B010	JR	Z,&hF800	  dann ->
F7F1: D6400A69	PRE	IZ,&h690A	 IZ Zeiger auf SRC-Filezeiger
F7F5: A90E	LDW	$14,(IZ+#0)	 diesen holen
F7F7: 964E	PRE	IZ,$14		 IZ Zeiger in SRC-File
F7F9: 2B10	LDI	$16,(IZ+#0)	 Zeichen aus Zeile holen
F7FB: 41100D	SBC	$16,13		 kein CR?
F7FE: B417	JR	NZ,&hF816	  dann ->
F800: 77CE95	CAL	&h95CE [OUTCR]	 sonst CRLF ausgeben
F803: 0213	LD	$19,#0		 Flag fr "mehr als 4 Bytes" setzen
F805: 817614	SBCW	$22,$20		 noch mehr Bytes auszugeben?
F808: B419	JR	NZ,&hF822	  dann ->
F80A: 77E190	CAL	&h90E1		 Ausgabe auf Display lenken
F80D: EF10E0	PPU8	$16		 Register $16-23 wieder holen
F810: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	BYTESPALTE AUFFLLEN
F811: 775004	CAL	&h0450		 zwei Leerzeichen ausgeben
F814: B7AF	JR	&hF7E6		 und in die Schleife ->
--  --  --  --  --  --  --  --  --  --	ZEICHEN AUS ZEILE AUSGEBEN
F816: 9E47	GRE	IZ,$7		 IZ ablegen
F818: A708	PHUW	$8		  und retten
F81A: 77D795	CAL	&h95D7 [OUTAC]	 Zeichen ausgeben
F81D: AF07	PPUW	$7		 IZ wieder holen
F81F: 96C7A8	PREJ	IZ,$7,&hF7F9	  und setzen und ->
--  --  --  --  --  --  --  --  --  --	DRUCKPOSITION AUF BYTESPALTE BRINGEN
F822: 421D0B	LD	$29,11		 Zhler fr 11 Leerzeichen setzen
F825: 775204	CAL	&h0452		 Leerzeichen ausgeben
F828: 093D	SB	$29,#1		 Zhler herabsetzen
F82A: B0D9	JR	Z,&hF7D2	 alle ausgegeben? dann ->
F82C: B788	JR	&hF825		 sonst Schleife ->
-------------------------------------->	AUF HAUPTREG. BERPR., ARG. LESEN
F82E: 7749FB	CAL	&hFB49		 Argument auf Hauptregister berprfen
--  --  --  --  --  --  --  --  --  -->	HAUPTREG. ODERN, ZWEITES ARG. LESEN
F831: 773CFD	CAL	&hFD3C		 Registernr. geodert mit 96 nach $24
--  --  --  --  --  --  --  --  --  -->	KOMMA BERLESEN, ARGUMENT LESEN
F834: 7713FD	CAL	&hFD13		 Komma berlesen
--  --  --  --  --  --  --  --  --  -->	ARGUMENT AUS ZEILE LESEN
  (I/O: IX Zeiger in Zeile,
   O:	$0=0: CR oder EOF oder ';', ='+', ='-', =',', ='"',
	  ='$': Hauptregister [Wert in $8], =24: ($)
	  =9: Label, =10: Labeldefinition [Label in $3-7],
	  =11: Zahl<32, =12: Zahl<256, =13: Zahl [Wort in $8/9],
	  =16: (IX+$), =17: (IX-$), =18: (IX+n), =19: (IX-n),
	  =20: (IZ+$), =21: (IZ-$), =22: (IZ+n), =23: (IZ-n)	)
F837: 77F900	CAL	&h00F9 [NEXTC]	 Zeichen aus Zeile holen
F83A: 49000D	SB	$0,13		 ist es ein CR?
F83D: F0	RTN	Z		  dann mit $0=0 zurck
F83E: 49000D	SB	$0,13		 oder ein EOF-Zeichen?
~Seite 235
F841: F0	RTN	Z		  dann mit $0=0 zurck
F842: 490021	SB	$0,33		 ";" (Kommentarbeginn)?
F845: F0	RTN	Z		  dann mit $0=0 zurck
F846: 2800	LD	$0,(IX+#0)	 Zeichen erneut holen
F848: 7775F9	CAL	&hF975		 Klammeraffe oder Unterstrich?
F84B: 3030F9	JP	Z,&hF930	  dann Label lesen ->
F84E: 771D01	CAL	&h011D [OKAM1]	 ist es ein Buchstabe?
F851: 3530F9	JP	C,&hF930	  dann Label lesen ->
F854: 770A01	CAL	&h010A [OKNM1]	 ist es eine Ziffer?
F857: B536	JR	C,&hF88E	  dann Zahl lesen ->
F859: 2A00	LDI	$0,(IX+#0)	 Zeiger in Zeile erhhen
F85B: 410024	SBC	$0,"$"		 folgt Registerbezeichnung?
F85E: B01F	JR	Z,&hF87E	  dann diese lesen ->
F860: 410028	SBC	$0,"("		 folgt eine offene Klammer?
F863: B06F	JR	Z,&hF8D3	  dann ->
F865: 410026	SBC	$0,"&"		 folgt Hexzahl?
F868: B049	JR	Z,&hF8B2	  dann diese lesen ->
F86A: 41002B	SBC	$0,"+"		 ist es ein Plus?
F86D: F0	RTN	Z		  dann zurck
F86E: 41002C	SBC	$0,","		 ist es ein Komma?
F871: F0	RTN	Z		  dann zurck
F872: 41002D	SBC	$0,"-"		 ist es ein Minus?
F875: F0	RTN	Z		  dann zurck
F876: 410022	SBC	$0,'"'		 ist es ein Anfhrungszeichen?
F879: F0	RTN	Z		  dann zurck
F87A: 4200FF	LD	$0,255		 sonst $0 auf 255 setzen
F87D: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	REGISTERBEZEICHNUNG LESEN
F87E: 777DF9	CAL	&hF97D		 auf Unterlauf im Systemstack achten
F881: 7737F8	CAL	&hF837		 Argument aus Zeile lesen
F884: 41000B	SBC	$0,11		 keine Zahl<32 gewesen?
F887: 344DFB	JP	NZ,&hFB4D	  dann ERR3
F88A: 420024	LD	$0,"$"		 Kennzeichen setzen
F88D: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	ZAHL AUS ZEILE LESEN
F88E: A712	PHUW	$18		 Register $18-19 und $1-2 zwischen-
F890: A702	PHUW	$2		  speichern
F892: 772898	CAL	&h9828 [DTBIN]	 Zahl aus Zeile lesen
F895: AF01	PPUW	$1		 Register $1-2 wieder holen
F897: 826811	LDW	$8,$17		 Zahl nach $8/9 bringen
F89A: AF11	PPUW	$17		 Register $18-19 wieder holen
F89C: 754DFB	CAL	C,&hFB4D	 Fehler aufgetreten? dann ERR3
F89F: D10A2000	LDW	$10,32		 max. Registernummer holen
F8A3: 42000B	LD	$0,11		 Kennzeichen fr Zahl<32 setzen
F8A6: 81680A	SBCW	$8,$10		 Zahl wirklich kleiner als 32?
F8A9: F5	RTN	C		  dann zurck
F8AA: 0820	AD	$0,#1		 Kennzeichen fr Zahl<256 setzen
F8AC: 0009	ADC	$9,#0		 Zahl wirklich kleiner als 256?
F8AE: F0	RTN	Z		  dann zurck
F8AF: 0820	AD	$0,#1		 sonst Kennzeichen fr Adresse setzen
F8B1: F7	RTN			 zurck
~Seite 236
--  --  --  --  --  --  --  --  --  --	HEXZAHL AUS ZEILE LESEN
F8B2: 896808	SBW	$8,$8		 Argumentspeicher auf Null setzen
F8B5: 2A00	LDI	$0,(IX+#0)	 nchstes Zeichen lesen
F8B7: 410048	SBC	$0,"H"		 kein "H"?
F8BA: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
F8BD: 421D04	LD	$29,&h04	 Zhler auf max. 4 Hexziffern setzen
F8C0: 2800	LD	$0,(IX+#0)	 Zeichen holen
F8C2: 776001	CAL	&h0160 [CHEX1]	 Hex- nach Binrziffer wandeln
F8C5: B1A7	JR	NC,&hF89F	 keine Hexziffer? dann Kennz.setzen ->
F8C7: 9A28	DIUW	$8		 Argumentspeicher hochschieben
F8C9: 0E48	OR	$8,#2		 neues Nibble einfgen
F8CB: 2A00	LDI	$0,(IX+#0)	 Zeiger in Zeile erhhen
F8CD: 093D	SB	$29,#1		 Zhler herabsetzen
F8CF: B490	JR	NZ,&hF8C0	 noch einmal? dann Schleife ->
F8D1: B7B3	JR	&hF89F		 zum Kennzeichensetzen
--  --  --  --  --  --  --  --  --  --	KLAMMERAUSDRUCK AUS ZEILE LESEN
F8D3: 777DF9	CAL	&hF97D		 auf Unterlauf im Systemstack achten
F8D6: 7737F8	CAL	&hF837		 Argument aus Zeile lesen
F8D9: 410024	SBC	$0,"$"		 Registerbezeichnung gewesen?
F8DC: B04F	JR	Z,&hF92C	  dann ->
F8DE: 410009	SBC	$0,9		 ist es kein Label?
F8E1: B446	JR	NZ,&hF928	  dann ->
F8E3: 410349	SBC	$3,"I"		 erstes Zeichen nicht "I"?
F8E6: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
F8E9: 420E10	LD	$14,16		 Offset fr (IX+$) setzen
F8EC: 410458	SBC	$4,"X"		 danach ein "X"?
F8EF: B00A	JR	Z,&hF8FA	  dann ->
F8F1: 41045A	SBC	$4,"Z"		 auch kein "Z"?
F8F4: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
F8F7: 420E14	LD	$14,20		 sonst Offset fr (IZ+$) setzen
F8FA: 0005	ADC	$5,#0		 noch ein Zeichen?
F8FC: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
F8FF: 7737F8	CAL	&hF837		 Argument aus Zeile lesen
F902: 41002B	SBC	$0,"+"		 war es ein "+"?
F905: B009	JR	Z,&hF90F	  dann ->
F907: 0E2E	OR	$14,#1		 Offset auf (Ir-$) erhhen
F909: 41002D	SBC	$0,"-"		 war es auch kein "-"?
F90C: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
F90F: 7737F8	CAL	&hF837		 Argument aus Zeile lesen
F912: 410024	SBC	$0,"$"		 war es ein Register?
F915: B00A	JR	Z,&hF920	  dann ->
F917: 775BFA	CAL	&hFA5B		 auf Zahl<256 testen
F91A: 714DFB	CAL	NC,&hFB4D	  sonst ERR3
F91D: 4E0E02	OR	$14,2		 Offset fr (Irn) erhhen
F920: 02600E	LD	$0,$14		 als Rckgabewert setzen
F923: 2A10	LDI	$16,(IX+#0)	 nchstes Zeichen lesen
F925: 411029	SBC	$16,")"		 keine geschlossene Klammer?
F928: 344DFB	JP	NZ,&hFB4D	  dann ERR3
F92B: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --
F92C: 4280188C	LDJ	$0,24,&hF923	 Rckgabewert fr ($) setzen und ->
Seite 237
--  --  --  --  --  --  --  --  --  --	LABEL AUS ZEILE LESEN
F930: C96383	SBB5	$3,$3		 Labelregister lschen
F933: D640A061	PRE	IZ,&h61A0	 IZ Zeiger auf Labelspeicher
F937: E10380	ST5	$3,(IZ+#0)	 diesen lschen
F93A: 421D05	LD	$29,5		 Zhler auf max. 5 Labelzeichen setzen
F93D: 2800	LD	$0,(IX+#0)	 Zeichen aus Zeile holen
F93F: 770A01	CAL	&h010A [OKNM1]	 ist es eine Ziffer?
F942: B50B	JR	C,&hF94E	  dann ->
F944: 771D01	CAL	&h011D [OKAM1]	 ist es ein Buchstabe?
F947: B506	JR	C,&hF94E	  dann ->
F949: 7775F9	CAL	&hF975		 nicht Klammeraffe oder Unterstrich?
F94C: B40E	JR	NZ,&hF95B	  dann ->
F94E: 775B01	CAL	&h015B [TCAPS]	 Klein- in Grobuchstabe wandeln
F951: 2300	STI	$0,(IZ+#0)	 Zeichen in den Labelspeicher
F953: 2A00	LDI	$0,(IX+#0)	 Zeiger in Zeile erhhen
F955: 093D	SB	$29,#1		 Zhler herabsetzen
F957: B49B	JR	NZ,&hF93D	 noch einmal? dann Schleife ->
F959: 2800	LD	$0,(IX+#0)	 Zeichen noch einmal holen
F95B: 420309	LD	$3,9		 Kennzeichen fr Label setzen
F95E: 41003A	SBC	$0,":"		 ist Zeichen kein Doppelpunkt?
F961: B408	JR	NZ,&hF96A	  dann ->
F963: 2A00	LDI	$0,(IX+#0)	 Zeiger in Zeile erhhen
F965: 0823	AD	$3,#1		 Kennzeichen korrigieren
F967: 4E1240	OR	$18,&h40	 Flag fr Labeldefinition setzen
F96A: 026003	LD	$0,$3		 Rckgabewert setzen
F96D: D640A061	PRE	IZ,&h61A0	 IZ Zeiger auf Labelspeicher
F971: E90380	LD5	$3,(IZ+#0)	 und ganzes Label in Register holen
F974: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	KLAMMERAFFE ODER UNTERSTRICH?
F975: 410040	SBC	$0,"@"		 ist Zeichen ein Klammeraffe?
F978: F0	RTN	Z		  dann zurck
F979: 41005F	SBC	$0,"_"		 oder ist es ein Unterstrich?
F97C: F7	RTN			 zurck
-------------------------------------->	AUF UNTERLAUF IM SYSTEMSTACK ACHTEN
F97D: D10C706A	LDW	$12,&h6A70	 Untergrenze fr Systemstack holen
F981: 9F0A	GRE	SS,$10		 Systemstackzeiger ablegen
F983: 816A0C	SBCW	$10,$12		 noch Platz im Systemstack?
F986: F1	RTN	NC		  dann zurck
F987: 2C00	LDD	$0,(IX+#0)	 aktuelles Zeichen lesen
F989: 41000D	SBC	$0,13		 ist es ein CR?
F98C: F0	RTN	Z		  dann zurck
F98D: 41001A	SBC	$0,26		 ist es das EOF-Zeichen?
F990: F0	RTN	Z		  dann zurck
F991: 2C20	LDD	$0,(IX+#1)	 nchstes Zeichen lesen
F993: B78B	JR	&hF989		 und Schleife ->
-------------------------------------->	EVTL. LABEL DEFINIEREN
F995: 4112C0	SBC	$18,&hC0	 nicht im ersten Durchlauf oder keine
F998: F5	RTN	C		  Labeldefinition? dann zurck
--  --  --  --  --  --  --  --  --  --	LABEL DEFINIEREN
F999: D640A561	PRE	IZ,&h61A5	 IZ Zeiger auf Labeldef.speicher
F99D: E903C0	LD7	$3,(IZ+#0)	 zu definierendes Label mit Adr. holen
F9A0: 77BEF9	CAL	&hF9BE		 Labelname in Tabelle suchen
F9A3: 3051FB	JP	Z,&hFB51	 gefunden? dann ERR1
F9A6: 826E15	LDW	$14,$21		 Programmende holen
F9A9: D10C0600	LDW	$12,6		 und Lnge eines Labeleintrags-1
F9AD: 886E0C	ADW	$14,$12		  hinzuaddieren
~Seite 238
F9B0: 816E1B	SBCW	$14,$27		 kein Platz fr neues Label?
F9B3: 31BDAB	JP	NC,&hABBD	  dann OM Error
F9B6: 965B	PRE	IZ,$27		 IZ Zeiger auf Labeltabelle
F9B8: E5A9C0	STD7	$9,(IZ-#1)	 Label mit Adresse einsetzen
F9BB: 9E5B	GRE	IZ,$27		 neuen Zeiger auf Labeltabelle ablegen
F9BD: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	LABEL IN TABELLE SUCHEN UND WERT HOLEN
F9BE: E71A60	PHU4	$26		 Register $23-26 retten
F9C1: D6404769	PRE	IZ,&h6947	 IZ Ende der Labeltabelle
F9C5: A919	LDW	$25,(IZ+#0)	  holen
F9C7: 81791B	SBCW	$25,$27		 kein Label definiert?
F9CA: B012	JR	Z,&hF9DD	  dann ->
F9CC: 965B	PRE	IZ,$27		 IZ Zeiger auf Tabelleneintrag
F9CE: EB0AC0	LDI7	$10,(IZ+#0)	 Label aus Tabelle holen
F9D1: C7638A	XRC5	$3,$10		 ist es das gesuchte?
F9D4: B00B	JR	Z,&hF9E0	  dann ->
F9D6: 9E4A	GRE	IZ,$10		 Zeiger in Labeltabelle ablegen
F9D8: 81790A	SBCW	$25,$10		 noch nicht am Ende?
F9DB: B48E	JR	NZ,&hF9CE	  dann Schleife ->
F9DD: 00BE04	ADCJ	$30,#1,&hF9E3	 C=1 und zurck ->
F9E0: 82680F	LDW	$8,$15		 Adresse bernehmen
F9E3: EF1760	PPU4	$23		 Register $25-26 wieder holen
F9E6: F7	RTN			 zurck
--------------------------------------	ADRESSEN DER DIREKTIVEN-ROUTINEN
F9E7: &F9FA | &FA1F | &FA72		 ORG   | EQU   | DB
F9ED: &FA36 | &FA66			 START | DS
-------------------------------------->	DIREKTIVEN VERARBEITEN
F9F1: 1862	BIU	$2		 Direktivennummer verdoppeln
F9F3: D640E7F9	PRE	IZ,&hF9E7	 IZ Zeiger auf Direktiven-Routinen
F9F7: 37A1D8	JP	&hD8A1		 ber Sprungtabelle springen ->
-------------------------------------->	ORG-DIREKTIVE
F9FA: 441240	ANC	$18,&h40	 war Labeldefinition am Zeilenanfang?
F9FD: 745DFB	CAL	NZ,&hFB5D	  dann ERR5
FA00: 7751FA	CAL	&hFA51		 Argument lesen, ist es keine Zahl?
FA03: 3185AC	JP	NC,&hAC85	  dann OR Error
FA06: D640FC68	PRE	IZ,&h68FC	 IZ Zeiger auf Offsetspeicher
FA0A: AB0A	LDIW	$10,(IZ+#0)	 Offset holen {krzer: LDI4 $10,(IZ+#0)}
FA0C: AB0C	LDIW	$12,(IZ+#0)	 EXE-Ladeadresse holen             {---}
FA0E: A108	STW	$8,(IZ+#0)	 als neues EXE-Fileende setzen
FA10: 88680A	ADW	$8,$10		 Offset addieren
FA13: B504	JR	C,&hFA18	  dann OR Error ->
FA15: 816815	SBCW	$8,$21		 kleiner als physikalische Adresse?
FA18: 3585AC	JP	C,&hAC85	  dann OR Error
FA1B: 827508	LDW	$21,$8		 neue physikalische Adresse setzen
FA1E: F7	RTN			 zurck
-------------------------------------->	EQU-DIREKTIVE
FA1F: 441240	ANC	$18,&h40	 keine Labeldefinition am Zeilenanfang?
FA22: B077	JR	Z,&hFA9A	  dann ERR3
FA24: 7751FA	CAL	&hFA51		 Argument lesen, ist es keine Zahl?
FA27: B172	JR	NC,&hFA9A	  dann ERR3
FA29: D640AA61	PRE	IZ,&h61AA	 IZ Zeiger auf Labeladressspeicher
FA2D: A108	STW	$8,(IZ+#0)	 Adresse dort speichern
FA2F: 411280	SBC	$18,&h80	 im ersten Durchgang?
FA32: 7199F9	CAL	NC,&hF999	  dann Label definieren
FA35: F7	RTN			 zurck
~Seite 239
-------------------------------------->	START-DIREKTIVE
FA36: 441240	ANC	$18,&h40	 war Labeldefinition am Zeilenanfang?
FA39: B460	JR	NZ,&hFA9A	  dann ERR3
FA3B: 7751FA	CAL	&hFA51		 Argument lesen, ist es eine Zahl?
FA3E: B50B	JR	C,&hFA4A	  dann ->
FA40: 410009	SBC	$0,9		 war es auch kein Label?
FA43: B456	JR	NZ,&hFA9A	  dann ERR3
FA45: 77BEF9	CAL	&hF9BE		 Label suchen und Wert holen
FA48: B451	JR	NZ,&hFA9A	 unbekanntes Label? dann ERR3
FA4A: D6400269	PRE	IZ,&h6902	 IZ Zeiger auf EXE-Startadressspeicher
FA4E: A108	STW	$8,(IZ+#0)	 Wert dort speichern
FA50: F7	RTN			 zurck
-------------------------------------->	ARGUMENT LESEN, IST ES KEINE ZAHL?
FA51: 7737F8	CAL	&hF837		 Argument aus Zeile lesen
FA54: 428F0E07	LDJ	$15,14,&hFA5E	 Maximalwert holen und ->
--  --  --  --  --  --  --  --  --  -->	ARGUMENT LESEN, IST ES KEINE BYTE-ZAHL?
FA58: 7737F8	CAL	&hF837		 Argument aus Zeile lesen
FA5B: 420F0D	LD	$15,13		 Maximalwert holen
FA5E: 4000F5	ADC	$0,245		 ist es keine Zahl?
FA61: F1	RTN	NC		  dann mit C=1 zurck
FA62: 01600F	SBC	$0,$15		  |
FA65: F7	RTN			 zurck
-------------------------------------->	DS-DIREKTIVE
FA66: 7795F9	CAL	&hF995		 evtl. Label definieren
FA69: 7751FA	CAL	&hFA51		 Argument lesen, ist es keine Zahl?
FA6C: B12D	JR	NC,&hFA9A	  dann ERR3 ->
FA6E: 827308	LDW	$19,$8		 Wert als Byteanzahl setzen
FA71: F7	RTN			 zurck
-------------------------------------->	DB-DIREKTIVE
FA72: 7795F9	CAL	&hF995		 evtl. Label definieren
FA75: 7737F8	CAL	&hF837		 Argument aus Text lesen
FA78: 410022	SBC	$0,'"'		 folgt eine Zeichenkette?
FA7B: B021	JR	Z,&hFA9D	  dann ->
FA7D: 775BFA	CAL	&hFA5B		 ist es keine Zahl im Byte-Bereich?
FA80: B119	JR	NC,&hFA9A	  dann ERR3 ->
FA82: 8833	ADW	$19,#1		 Byteanzahl erhhen
FA84: 411280	SBC	$18,&h80	 im ersten Durchlauf?
FA87: B107	JR	NC,&hFA8F	  dann ->
FA89: 026208	LD	$2,$8		 Wert ins Ausgaberegister kopieren
FA8C: 77D5FE	CAL	&hFED5		 ein Byte in den Bytespeicher bringen
FA8F: 7737F8	CAL	&hF837		 Argument aus Text lesen
FA92: 41002C	SBC	$0,","		 ein Komma?
FA95: B0A1	JR	Z,&hFA75	  dann Schleife ->
FA97: 0100	SBC	$0,#0		 Zeile zu Ende?
FA99: F0	RTN	Z		  dann zurck
FA9A: 374DFB	JP	&hFB4D		 zum ERR3 ->
--  --  --  --  --  --  --  --  --  --	ZEICHENKETTE EINLESEN
FA9D: 021D	LD	$29,#0		 Stringlnge auf Null setzen
FA9F: 2802	LD	$2,(IX+#0)	 Zeichen holen
FAA1: 41020D	SBC	$2,13		 ist es ein CR?
FAA4: B08B	JR	Z,&hFA9A	  dann ERR3 ->
FAA6: 2A02	LDI	$2,(IX+#0)	 Zeiger in Zeile erhhen
FAA8: 410222	SBC	$2,'"'		 ist Zeichenkette zu Ende?
FAAB: B09D	JR	Z,&hFA8F	  dann ->
FAAD: 8833	ADW	$19,#1		 Byteanzahl erhhen
FAAF: 411280	SBC	$18,&h80	 im zweiten Durchlauf?
~Seite 240
FAB2: 75D5FE	CAL	C,&hFED5	  dann Byte in den Bytespeicher bringen
FAB5: 083D	AD	$29,#1		 Stringlnge erhhen
FAB7: B199	JR	NC,&hFA9F	 noch unter 256 Zeichen? dann Schleife ->
FAB9: B796	JR	&hFAA4		 sonst ERR3 ->
-------------------------------------->	BEFEHL ERKENNEN
FABB: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
FABD: D640DBF2	PRE	IZ,&hF2DD-2	 IZ Zeiger auf Befehlsanfangsbuchst.tab.
FAC1: 6B1002	LDI	$16,(IZ+2)	 nchsten Eintrag lesen
FAC4: 0010	ADC	$16,#0		 Tabelle zu Ende?
FAC6: B02A	JR	Z,&hFAF1	  dann zurck ->
FAC8: 017003	SBC	$16,$3		 stimmt Anfangsbuchstabe nicht berein?
FACB: B48B	JR	NZ,&hFAC1	  dann Schleife ->
FACD: A90A	LDW	$10,(IZ+#0)	 sonst Adresse der Mnemonictabelle lesen
FACF: 96CA03	PREJ	IZ,$10,&hFAD4	 IZ Zeiger auf diese und ->
FAD2: 2B2A	LDI	$10,(IZ+#1)	 Adresse berlesen
FAD4: C96A6A	SBB4	$10,$10		 Befehlvergleichsregister lschen
FAD7: 2B0A	LDI	$10,(IZ+#0)	 Zeichen aus Tabelle lesen
FAD9: 006A0A	ADC	$10,$10		 ist das siebte Bit gesetzt?
FADC: B508	JR	C,&hFAE5	  dann ->
FADE: B012	JR	Z,&hFAF1	 ist Tabelle zu Ende? dann ->
FAE0: DA6A60	BYU4	$10		 Zeichen einschieben
FAE3: B78D	JR	&hFAD7		 und Schleife ->
FAE5: 490A80	SB	$10,&h80	 siebtes Bit lschen
FAE8: C76A64	XRC4	$10,$4		 stimmt Mnemonic nicht mit Label berein?
FAEB: B49A	JR	NZ,&hFAD2	  dann ->
FAED: A901	LDW	$1,(IZ+#0)	 Befehlstyp und Opcode holen
FAEF: 013F	SBC	$31,#1		 C=1 und Z=0 setzen
FAF1: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
FAF4: F7	RTN			 zurck
-------------------------------------->	BYTEANZAHL AUS BEFEHLSTYP ERMITTELN
FAF5: 0233	LD	$19,#1		 Byteanzahl auf 1 setzen
FAF7: 410102	SBC	$1,2		 impliziter Befehl?
FAFA: F5	RTN	C		  dann zurck
FAFB: 0833	AD	$19,#1		 Byteanzahl auf 2 erhhen
FAFD: 41010B	SBC	$1,11		 Zwei-Byte-Befehl?
FB00: F5	RTN	C		  dann zurck
FB01: 0833	AD	$19,#1		 Byteanzahl auf 3 erhhen
FB03: 410115	SBC	$1,21		 Drei-Byte-Befehl?
FB06: F5	RTN	C		  dann zurck
FB07: 9E0A	GRE	IX,$10		 Zeiger in Zeile ablegen
FB09: A70B	PHUW	$11		  und zwischenspeichern
FB0B: 410116	SBC	$1,22		 ist es ein PST-Befehl?
FB0E: B511	JR	C,&hFB20	  dann ->
FB10: B024	JR	Z,&hFB35	 oder ein PRE-Befehl? dann ->
--  --  --  --  --  --  --  --  --  --	LDW-BYTELNGE FESTSTELLEN
FB12: 7737F8	CAL	&hF837		 Argument aus Zeile lesen
FB15: 0100	SBC	$0,#0		 am Zeilenende?
FB17: B018	JR	Z,&hFB30	  dann ->
FB19: 7754FA	CAL	&hFA54		 ist es keine Zahl?
FB1C: B18B	JR	NC,&hFB12	  dann Schleife ->
FB1E: B70F	JR	&hFB2E		 sonst ->
~Seite 241
--  --  --  --  --  --  --  --  --  --	PST-BYTELNGE FESTSTELLEN
FB20: 0933	SB	$19,#1		 Byteanzahl auf 2 herabsetzen
FB22: 7737F8	CAL	&hF837		 Argument aus Zeile lesen
FB25: 0100	SBC	$0,#0		 am Ende der Zeile?
FB27: B008	JR	Z,&hFB30	  dann ->
FB29: 775BFA	CAL	&hFA5B		 ist es keine Zahl im Bytebereich?
FB2C: B18B	JR	NC,&hFB22	  dann Schleife ->
FB2E: 0833	AD	$19,#1		 Byteanzahl auf 3 erhhen
FB30: AF0A	PPUW	$10		 Zeiger in Zeile wieder holen
FB32: 960A	PRE	IX,$10		  und setzen
FB34: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  --	PRE-BYTELNGE FESTSTELLEN
FB35: 0933	SB	$19,#1		 Byteanzahl auf 2 herabsetzen
FB37: 7737F8	CAL	&hF837		 Argument aus Text lesen
FB3A: 0100	SBC	$0,#0		 am Ende der Zeile?
FB3C: B08D	JR	Z,&hFB30	  dann ->
FB3E: 7754FA	CAL	&hFA54		 ist es keine Zahl?
FB41: B18B	JR	NC,&hFB37	  dann Schleife ->
FB43: 08B397	ADJ	$19,#1,&hFB2E	 Byteanzahl auf 4 erhhen
-------------------------------------->	KOMMA BERLESEN, HAUPTREGISTER LESEN
FB46: 7734F8	CAL	&hF834		 Komma berlesen, Argument lesen
--  --  --  --  --  --  --  --  --  -->	AUF HAUPTREGISTER BERPRFEN
FB49: 410024	SBC	$0,"$"		 ist es ein Hauptregister?
FB4C: F0	RTN	Z		 dann zurck
--  --  --  --  --  --  --  --  --  -->	ERR3 IN ERR-FILE AUSGEBEN
FB4D: 42973310	LDJ	$23,"3",&hFB60	 Fehlernummer 3 holen und ->
--  --  --  --  --  --  --  --  --  -->	ERR1 IN ERR-FILE AUSGEBEN
FB51: 42973113	LDJ	$23,"1",&hFB67	 Fehlernummer 1 holen und ->
--  --  --  --  --  --  --  --  --  -->	ERR2 IN ERR-FILE AUSGEBEN
FB55: 42973208	LDJ	$23,"2",&hFB60	 Fehlernummer 2 holen und ->
--  --  --  --  --  --  --  --  --  -->	ERR4 IN ERR-FILE AUSGEBEN
FB59: 42973404	LDJ	$23,"4",&hFB60	 Fehlernummer 4 holen und ->
--  --  --  --  --  --  --  --  --  -->	ERR5 IN ERR-FILE AUSGEBEN
FB5D: 421735	LD	$23,"5"		 Fehlernummer 5 holen
FB60: 026A12	LD	$10,$18		 im ersten Durchlauf oder
FB63: 4C0AA0	AN	$10,&hA0	  schon ein Fehler in der Zeile?
FB66: F4	RTN	NZ		 dann zurck
FB67: E71C60	PHU4	$28		 Register $25-28 zwischenspeichern
FB6A: 9E1B	GRE	IX,$27		 Zeiger in Zeile ablegen
FB6C: D640FA68	PRE	IZ,&h68FA	 IZ Zeiger auf ERR-Fileende-Zeiger
FB70: A919	LDW	$25,(IZ+#0)	 diesen holen
FB72: D10C0064	LDW	$12,&h6400	 $12/13 Ende des ERR-Filespeichers
FB76: 81790C	SBCW	$25,$12		 schon bei demselben angelangt?
FB79: B133	JR	NC,&hFBAD	  dann ->
FB7B: 9659	PRE	IZ,$25		 IZ Zeiger auf ERR-Fileende
FB7D: 420A4C	LD	$10,"L"		 Zeichen "L" holen
FB80: D600F868	PRE	IX,&h68F8	 IX Zeiger auf Zeilennummerspeicher
FB84: 77C4FB	CAL	&hFBC4		 Zeichen und Zeilennr. in das ERR-File
FB87: 420A3A	LD	$10,":"		 Zeichen ":" holen
FB8A: D6000069	PRE	IX,&h6900	 IX Zeiger auf Logik-Adressspeicher
FB8E: 77C4FB	CAL	&hFBC4		 Zeichen und log. Adr. in das ERR-File
FB91: D10A2045	LDW	$10," E"	 Text " ERR" holen
FB95: D10C5252	LDW	$12,"RR"	 |
FB99: 420D52	LD	$13,"R"		 {berflssig!}
FB9C: 026E17	LD	$14,$23		 Fehlernummer
FB9F: 420F0D	LD	$15,13		  und CR holen
~Seite 242
FBA2: E30AA0	STI6	$10,(IZ+#0)	 Text speichern
FBA5: 9E59	GRE	IZ,$25		 Zeiger auf ERR-Fileende ablegen
FBA7: D640FA68	PRE	IZ,&h68FA	 IZ Zeiger auf ERR-Fileende-Zeiger
FBAB: A119	STW	$25,(IZ+#0)	 diesen dort speichern
FBAD: D640F768	PRE	IZ,&h68F7	 IZ Zeiger auf Fehleranzahlspeicher
FBB1: 290A	LD	$10,(IZ+#0)	 Fehleranzahl holen
FBB3: 0A2A	ADB	$10,#1		 und erhhen (BCD)
FBB5: B103	JR	NC,&hFBB9	 kein berlauf? dann ->
FBB7: 0B2A	SBB	$10,#1		 sonst wieder auf 99 setzen
FBB9: 210A	ST	$10,(IZ+#0)	 und speichern
FBBB: 4E1220	OR	$18,&h20	 Fehlerflag setzen
FBBE: 961B	PRE	IX,$27		 Zeiger in Zeile wieder setzen
FBC0: EF1960	PPU4	$25		 Register $25-28 wieder holen
FBC3: F7	RTN			 zurck
--  --  --  --  --  --  --  --  --  -->	ZEICHEN UND ZAHL IN DAS ERR-FILE BRINGEN
FBC4: 230A	STI	$10,(IZ+#0)	 Zeichen in das ERR-File bringen
FBC6: 421D04	LD	$29,4		 Zhler auf vier Nibbles holen
FBC9: 0210	LD	$16,#0		 Ausgaberegister auf Null setzen
FBCB: A80E	LDW	$14,(IX+#0)	 Wort aus Speicher holen
FBCD: DA2E40	DIU3	$14		 Nibble in Ausgaberegister schieben
FBD0: 4C100F	AN	$16,&h0F	 unteres Nibble filtern
FBD3: 77EFF1	CAL	&hF1EF		 Binr- in Hexziffer wandeln
FBD6: 2310	STI	$16,(IZ+#0)	 Ziffer in das ERR-File bringen
FBD8: 093D	SB	$29,#1		 Zhler herabsetzen
FBDA: B48E	JR	NZ,&hFBCD	 noch einmal? dann Schleife ->
FBDC: F7	RTN			 zurck
-------------------------------------->	BEFEHL VERARBEITEN
FBDD: 1861	BIU	$1		 Befehlstyp verdoppeln
FBDF: 7737F8	CAL	&hF837		 Argument aus Zeile lesen
FBE2: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
FBE4: D6409AF4	PRE	IZ,&hF49A	 IZ Zeiger auf Befehlstypadressen
FBE8: A96F01	LDW	$15,(IZ+$1)	 richtige holen
FBEB: 37A6D8	JP	&hD8A6		 und ber Register springen ->
-------------------------------------->	BEFEHLSTYP 0 VERARBEITEN
  (BDN, BUP, NOP, CLT, FST, SLW, CANI, RTNI, OFF, TRP)
FBEE: 0100	SBC	$0,#0		 nicht am Ende der Zeile?
FBF0: 344DFB	JP	NZ,&hFB4D	  dann ERR3
FBF3: B711	JR	&hFC05		 sonst Byte in den Bytespeicher ->
-------------------------------------->	BEFEHLSTYP 1 VERARBEITEN (RTN)
FBF5: 0100	SBC	$0,#0		 am Ende der Zeile?
FBF7: B00D	JR	Z,&hFC05	  dann Byte in den Bytespeicher ->
FBF9: 410009	SBC	$0,9		 kein Label?
FBFC: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
FBFF: 7708FC	CAL	&hFC08		 Bedingung erkennen
FC02: 754DFB	CAL	C,&hFB4D	 nicht gefunden? dann ERR3
FC05: 37D5FE	JP	&hFED5		 Ein-Byte-Befehl speichern ->
-------------------------------------->	BEDINGUNG ERKENNEN
FC08: 421D07	LD	$29,7		 Zhler auf 7 setzen
FC0B: 4C02F0	AN	$2,&hF0		 unteres Nibble im Opcode lschen
FC0E: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
FC10: D640CAF4	PRE	IZ,&hF4CA	 IZ Zeiger auf Bedingungen
FC14: EB0A40	LDI3	$10,(IZ+#0)	 Bedingung holen
FC17: 093D	SB	$29,#1		 Zhler herabsetzen
FC19: B50C	JR	C,&hFC26	 schon alle Bedingungen gewesen? dann ->
FC1B: C7634A	XRC3	$3,$10		 stimmt Bedingg nicht mit Label berein?
FC1E: B48B	JR	NZ,&hFC14	 dann Schleife ->
~Seite 243
FC20: 0E621D	OR	$2,$29		 Opcode mit Bedingung ergnzen
FC23: 009F04	ADCJ	$31,#0,&hFC29	 C=0 setzen und ->
FC26: 4E0207	OR	$2,7		 Opcode wieder ergnzen
FC29: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
FC2C: F7	RTN			 zurck
-------------------------------------->	BEFEHLSTYP 2 VERARBEITEN (JR)
FC2D: 0211	LD	$17,#0		 Bit 7 des Sprungbefehls lschen
FC2F: 410009	SBC	$0,9		 ist Argument kein Label?
FC32: B428	JR	NZ,&hFC5B	  dann ->
FC34: 7708FC	CAL	&hFC08		 Bedingung erkennen
FC37: B509	JR	C,&hFC41	 nicht gefunden? dann ->
FC39: 7734F8	CAL	&hF834		 Komma berlesen, Argument lesen
FC3C: 410009	SBC	$0,9		 kein Label?
FC3F: B41B	JR	NZ,&hFC5B	  dann ->
FC41: 77BEF9	CAL	&hF9BE		 Label suchen und Wert holen
FC44: 744DFB	CAL	NZ,&hFB4D	 nicht gefunden? dann ERR3
FC47: D6400069	PRE	IZ,&h6900	 IZ Zeiger auf Logik-Adressspeicher
FC4B: A90E	LDW	$14,(IZ+#0)	 logische Adresse holen
FC4D: 882E	ADW	$14,#1		 und um 1 erhhen
FC4F: 89680E	SBW	$8,$14		 relative Adresse berechnen
FC52: B105	JR	NC,&hFC58	 Vorwrtssprung? dann ->
FC54: 1811	ROD	$17		 sonst Bit 7 setzen
FC56: 9B08	CMPW	$8		 Sprungadresse komplementieren
FC58: 01A911	SBCJ	$9,#1,&hFC6B	 ist High-Byte nicht Null? und ->
FC5B: 4000D5	ADC	$0,-"+"		 ist es ein Pluszeichen?
FC5E: B009	JR	Z,&hFC68	  dann ->
FC60: 1811	ROD	$17		 sonst Bit 7 setzen
FC62: 41002D	SBC	$0,"-"		 ist es kein Minuszeichen?
FC65: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
FC68: 7758FA	CAL	&hFA58		 Argument lesen, ist es keine Byte-Zahl?
FC6B: 714DFB	CAL	NC,&hFB4D	  dann ERR3
FC6E: 440880	ANC	$8,&h80		 grer als 127?
FC71: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
FC74: 0EE81107	ORJ	$8,$17,&hFC7E	 Bit 7 zur relativen Adresse odern und ->
-------------------------------------->	BEFEHLSTYP 6 (BIU(W), BYUW)
FC78: 4E0860	OR	$8,&h60		 Bits im Operanden setzen
--  --  --  --  --  --  --  --  --  -->	BEFEHLSTYP 3 (ROD, PHS..)
FC7B: 7749FB	CAL	&hFB49		 auf Hauptregister berprfen
FC7E: 37D8FE	JP	&hFED8		 Zwei-Byte-Befehl speichern ->
--  --  --  --  --  --  --  --  --  -->	BEFEHLSTYP 4 (DIU(W), ROU(W))
FC81: 4E882089	ORJ	$8,&h20,&hFC7B	 Bits im Operanden setzen und ->
--  --  --  --  --  --  --  --  --  -->	BEFEHLSTYP 5 (BID(W), BYDW, INV(W), GPL)
FC85: 4E88408D	ORJ	$8,&h40,&hFC7B	 Bits im Operanden setzen und ->
-------------------------------------->	16BIT-REGISTERNAME ERKENNEN
FC89: D640EFF4	PRE	IZ,&hF4EF	 IZ Zeiger auf 16bit-Registernamen
FC8D: B705	JR	&hFC93		 und ->
--  --  --  --  --  --  --  --  --  -->	8BIT-REGISTERNAME ERKENNEN
FC8F: D640DFF4	PRE	IZ,&hF4DF	 IZ Zeiger auf 8bit-Registernamen
FC93: 410009	SBC	$0,9		 ist Argument kein Label?
FC96: B41B	JR	NZ,&hFCB2	  dann ->
FC98: 0105	SBC	$5,#0		 Label lnger als zwei Zeichen?
FC9A: B417	JR	NZ,&hFCB2	  dann ->
FC9C: 896A0A	SBW	$10,$10		 Zeiger auf Null setzen
FC9F: 167F	PST	UA,$31		 ROM-Lese-Konfiguration setzen
FCA1: AB0E	LDIW	$14,(IZ+#0)	 Registername aus Tabelle lesen
FCA3: 566050	PST	UA,&h50		 Standard-Konfiguration setzen
~Seite 244
FCA6: 876E03	XRCW	$14,$3		 richtiger Registername gefunden?
FCA9: B00B	JR	Z,&hFCB5	  dann ->
FCAB: 082A	AD	$10,#1		 Zeiger erhhen
FCAD: 410A08	SBC	$10,8		 noch nicht 8 Registernamen?
FCB0: B492	JR	NZ,&hFC9F	  dann Schleife ->
FCB2: 374DFB	JP	&hFB4D		 sonst ERR3
FCB5: 027D0A	LD	$29,$10		 Registernummer nach $29 kopieren
FCB8: 9A2A	DIUW	$10		 Registernummer mit 64 multiplizieren
FCBA: 986A	BIUW	$10		 |
FCBC: 986A	BIUW	$10		 |
FCBE: 184A	BID	$10		 unteres Byte wieder halbieren
FCC0: 02780A	LD	$24,$10		 unteres Byte nach $24 kopieren
FCC3: 0E620B	OR	$2,$11		 oberes Byte in Opcode bernehmen
FCC6: F7	RTN			 zurck
-------------------------------------->	BEFEHLSTYP 7 (GST)
FCC7: 778FFC	CAL	&hFC8F		 8bit-Register erkennen
FCCA: 7746FB	CAL	&hFB46		 Komma berlesen und Hauptregister holen
FCCD: 0EE81811	ORJ	$8,$24,&hFCE1	 Registernummer einfgen und ->
--  --  --  --  --  --  --  --  --  -->	BEFEHLSTYP 8 (GRE)
FCD1: 7789FC	CAL	&hFC89		 16bit-Register erkennen
FCD4: B78B	JR	&hFCCA		 und ->
-------------------------------------->	BEFEHLSTYP 10 (SDN, SUP)
FCD6: 775BFA	CAL	&hFA5B		 ist Argument eine Byte-Zahl?
FCD9: B507	JR	C,&hFCE1	  dann ->
FCDB: 7749FB	CAL	&hFB49		 auf Hauptregister berprfen
FCDE: 4E0280	OR	$2,&h80		 Opcode berichtigen
FCE1: 37D8FE	JP	&hFED8		 Zwei-Byte-Befehl speichern ->
-------------------------------------->	BEFEHLSTYP 11 (CAL, JP)
FCE4: 410009	SBC	$0,9		 ist Argument kein Label?
FCE7: B416	JR	NZ,&hFCFE	  dann ->
FCE9: 7708FC	CAL	&hFC08		 Bedingung erkennen
FCEC: B509	JR	C,&hFCF6	 nicht gefunden? dann ->
FCEE: 7734F8	CAL	&hF834		 Komma berlesen, Argument lesen
FCF1: 410009	SBC	$0,9		 ist es kein Label?
FCF4: B409	JR	NZ,&hFCFE	  dann ->
FCF6: 77BEF9	CAL	&hF9BE		 Label suchen und Wert holen
FCF9: 744DFB	CAL	NZ,&hFB4D	 nicht gefunden? dann ERR3
FCFC: B735	JR	&hFD32		 und ->
FCFE: 7754FA	CAL	&hFA54		 ist es keine Zahl?
FD01: 714DFB	CAL	NC,&hFB4D	  dann ERR3
FD04: B72D	JR	&hFD32		 und ->
-------------------------------------->	$,($)- ODER $,(Ir1)-ARGUMENT LESEN
FD06: 7749FB	CAL	&hFB49		 Argument auf Hauptregister berprfen
FD09: 027808	LD	$24,$8		 Registernummer ablegen
FD0C: 779FFE	CAL	&hFE9F		 Komma berl., ($)- oder (Ir)-Arg. lesen
FD0F: 410019	SBC	$0,25		 ist es ein (Ir$)-Argument?
FD12: F7	RTN			 zurck
-------------------------------------->	KOMMA BERLESEN
FD13: 7737F8	CAL	&hF837		 Argument aus Text lesen
FD16: 41002C	SBC	$0,","		 ist es kein Komma?
FD19: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
FD1C: F7	RTN			 zurck
~Seite 245
-------------------------------------->	BEFEHLSTYP 15 (LDIW, STIW)
FD1D: 7706FD	CAL	&hFD06		 $,($)- oder $,(Ir)-Argument lesen
FD20: B709	JR	&hFD2A		 und ->
-------------------------------------->	BEFEHLSTYP 16 (LDI, STI)
FD22: 7706FD	CAL	&hFD06		 $,($)- oder $,(Ir)-Argument lesen
FD25: B007	JR	Z,&hFD2D	 ist es ein (Ir$)-Argument? dann ->
FD27: 41001A	SBC	$0,26		 auch nicht (Irn)-Argument?
FD2A: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
FD2D: 9A68	BYUW	$8		 Registernummer nach $9 bringen
FD2F: 026818	LD	$8,$24		 erstes Register wieder holen
FD32: 37DCFE	JP	&hFEDC		 Drei-Byte-Befehl speichern ->
-------------------------------------->	BEFEHLSTYP 17
  (ADBW, AN(C)W, NA(C)W, OR(C)W, XR(C)W, SBBW)
FD35: 772EF8	CAL	&hF82E		 auf Hauptreg. berpr., Arg. lesen
FD38: 41802491	SBCJ	$0,"$",&hFD2A	 ist es Hauptregister? und ->
-------------------------------------->	REGISTER GEODERT MIT 96 NACH $24 BRINGEN
FD3C: 4E0860	OR	$8,&h60		 Bits setzen
FD3F: 027808	LD	$24,$8		 und nach $24 kopieren
FD42: F7	RTN			 zurck
-------------------------------------->	BEFEHLSTYP 18 (AD(C)W,SB(C)W)
FD43: 410024	SBC	$0,"$"		 Argument ist Hauptregister?
FD46: B011	JR	Z,&hFD58	  dann ->
FD48: 0218	LD	$24,#0		 Hauptregisterbits lschen
FD4A: 420AB8	LD	$10,&hB8	 opcode fr AD/SB (Ir$),$ setzen
FD4D: 7786FE	CAL	&hFE86		 Opcode berechnen, Argument lesen
FD50: 410019	SBC	$0,25		 nicht (Ir$),$-Argument?
FD53: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
FD56: B75C	JR	&hFDB3		 und ->
FD58: 773CFD	CAL	&hFD3C		 Registernr. geodert mit 96 nach $24
FD5B: 7746FB	CAL	&hFB46		 Komma berlesen und Hauptregister holen
FD5E: B7B2	JR	&hFD2D		 und ->
-------------------------------------->	BEFEHLSTYP 19
  (ADB, AN(C), NA(C), OR(C), XR(C), SBB)
FD60: 772EF8	CAL	&hF82E		 auf Hauptreg. berpr., Arg. lesen
FD63: 410024	SBC	$0,"$"		 ist es ein Hauptregister?
FD66: B089	JR	Z,&hFD5E	  dann ->
FD68: 775BFA	CAL	&hFA5B		 ist Argument keine Byte-Zahl?
FD6B: 714DFB	CAL	NC,&hFB4D	  dann ERR3
FD6E: 4E0240	OR	$2,&h40		 Bits im Opcode setzen
FD71: 4C989F96	ANJ	$24,&h9F,&hFD5E	 Bits im ersten Register lschen und ->
-------------------------------------->	$,($)- ODER $,(Ir)-ARGUMENT LESEN
FD75: 7749FB	CAL	&hFB49		 Argument auf Hauptregister berprfen
FD78: 773CFD	CAL	&hFD3C		 Register geodert mit 96 nach $24
FD7B: 779FFE	CAL	&hFE9F		 Komma berl., ($)- oder (Ir)-Arg. lesen
FD7E: 410018	SBC	$0,24		 ist es ($)-Argument?
FD81: F7	RTN			 zurck
-------------------------------------->	BEFEHLSTYP 20 (STW)
FD82: 7775FD	CAL	&hFD75		 $,($)- oder $,(Ir)-Argument lesen
FD85: B0A8	JR	Z,&hFD5E	 ist es ein $,($)-Argument? dann ->
FD87: 410019	SBC	$0,25		 auch nicht $,(Ir$)-Argument?
FD8A: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
FD8D: 488210B2	ADJ	$2,&h10,&hFD5E	 Opcode korrigieren und ->
~Seite 246
-------------------------------------->	BEFEHLSTYP 12 (ST)
FD91: 7775FD	CAL	&hFD75		 $,($)- oder $,(Ir)-Argument lesen
FD94: B0B7	JR	Z,&hFD5E	 ist es ein $,($)-Argument? dann ->
FD96: 480210	AD	$2,&h10		 Opcode korrigieren
FD99: 410019	SBC	$0,25		 ist es ein $,(Ir$)-Argument?
FD9C: B0BF	JR	Z,&hFD5E	  dann ->
FD9E: B7B1	JR	&hFD6E		 sonst ->
-------------------------------------->	BEFEHLSTYP 13 (AD(C), SB(C))
FDA0: 410024	SBC	$0,"$"		 ist Argument ein Hauptregister?
FDA3: B01C	JR	Z,&hFDC0	  dann ->
FDA5: 0218	LD	$24,#0		 Bits lschen
FDA7: 420A38	LD	$10,&h38	 Opcode fr ADC (IX$),$ setzen
FDAA: 7786FE	CAL	&hFE86		 Opcode berechnen, Argument lesen
FDAD: 410018	SBC	$0,24		 ist es ($),$-Argument?
FDB0: 704DFB	CAL	Z,&hFB4D	  dann ERR3
FDB3: 2708	PHU	$8		 Register zwischenspeichern
FDB5: 7746FB	CAL	&hFB46		 Komma berlesen und Hauptreg. holen
FDB8: 0E6818	OR	$8,$24		 mit Bits odieren
FDBB: 2F09	PPU	$9		 Register wieder holen
FDBD: 37DCFE	JP	&hFEDC		 Drei-Byte-Befehl speichern ->
FDC0: 7731F8	CAL	&hF831		 Hauptreg. odern, zweites Arg. lesen
FDC3: 410024	SBC	$0,"$"		 ist es ein Hauptregister?
FDC6: B0E9	JR	Z,&hFD5E	  dann ->
FDC8: 4E0240	OR	$2,&h40		 Opcode korrigieren
FDCB: 4C181F	AN	$24,&h1F	 Bits in Register lschen
FDCE: 775BFA	CAL	&hFA5B		 ist Argument keine Byte-Zahl?
FDD1: 714DFB	CAL	NC,&hFB4D	  dann ERR3
FDD4: B7F7	JR	&hFD5E		 sonst ->
-------------------------------------->	BEFEHLSTYP 14 (LD)
FDD6: 772EF8	CAL	&hF82E		 auf Hauptreg. berpr., Arg. lesen
FDD9: 410024	SBC	$0,"$"		 ist es ein Hauptregister?
FDDC: B025	JR	Z,&hFE02	  dann ->
FDDE: 420242	LD	$2,&h42		 Opcode fr LD $,n setzen
FDE1: 4C181F	AN	$24,&h1F	 Bits in Register lschen
FDE4: 775BFA	CAL	&hFA5B		 ist Argument eine Byte-Zahl?
FDE7: B51A	JR	C,&hFE02	  dann ->
FDE9: 420268	LD	$2,&h68		 Opcode fr LD $,(Ir+n) setzen
FDEC: 77A2FE	CAL	&hFEA2		 auf ($), (Ir$) oder (Irn) prfen
FDEF: 41001A	SBC	$0,26		 ist es (Irn)-Argument?
FDF2: B00F	JR	Z,&hFE02	  dann ->
FDF4: 4E1860	OR	$24,&h60	 Bits in Register setzen
FDF7: 4C022F	AN	$2,&h2F		 Bits im Opcode lschen
FDFA: 410019	SBC	$0,25		 ist es (Ir$)-Argument?
FDFD: B004	JR	Z,&hFE02	  dann ->
FDFF: 420211	LD	$2,&h11		 Opcode fr LD $,($) setzen
FE02: 372DFD	JP	&hFD2D		  und ->
FE05: 421840	LD	$24,&h40	 Bits setzen
FE08: 7749FB	CAL	&hFB49		 Argument auf Hauptregister berprfen
FE0B: B720	JR	&hFE2C		 und ->
-------------------------------------->	BEFEHLSTYP 21 (PST)
FE0D: 778FFC	CAL	&hFC8F		 8bit-Register erkennen
FE10: 411D06	SBC	$29,6		 ist es TM-Register?
FE13: 714DFB	CAL	NC,&hFB4D	  dann ERR3
FE16: 7734F8	CAL	&hF834		 Komma berlesen, Argument lesen
FE19: 9A68	BYUW	$8		 Wert nach $9 bringen
FE1B: 026818	LD	$8,$24		 Register nach $8 holen
~Seite 247
FE1E: 775BFA	CAL	&hFA5B		 ist Argument eine Byte-Zahl?
FE21: 35DCFE	JP	C,&hFEDC	  dann Drei-Byte-Befehl speichern ->
FE24: 9A49	BYDW	$9		 sonst Register wieder nach $8
FE26: 4C021F	AN	$2,&h1F		 Bit im Opcode lschen
FE29: 7749FB	CAL	&hFB49		 Argument auf Hauptregister berprfen
FE2C: 0E6818	OR	$8,$24		 Register in Hauptregister einbauen
FE2F: 37D8FE	JP	&hFED8		 Zwei-Byte-Befehl speichern
-------------------------------------->	BEFEHLSTYP 22 (PRE)
FE32: 7789FC	CAL	&hFC89		 16bit-Register erkennen
FE35: 411D05	SBC	$29,5		 ist es das KY-Register?
FE38: 714DFB	CAL	NC,&hFB4D	  dann ERR3
FE3B: 7734F8	CAL	&hF834		 Komma berlesen, Argument lesen
FE3E: 7754FA	CAL	&hFA54		 ist es keine Zahl?
FE41: B199	JR	NC,&hFE29	  dann ->
FE43: DA6840	BYU3	$8		 Adresse nach $9/10 bringen
FE46: 026818	LD	$8,$24		 Register nach $8 holen
FE49: 4E0240	OR	$2,&h40		 Bit im Opcode setzen
FE4C: 37E0FE	JP	&hFEE0		 Vier-Byte-Befehl speichern
-------------------------------------->	BEFEHLSTYP 23 (LDW)
FE4F: 7749FB	CAL	&hFB49		 Argument auf Hauptregister berprfen
FE52: 027808	LD	$24,$8		 Registernummer nach $24 bringen
FE55: 7713FD	CAL	&hFD13		 Komma berlesen
FE58: 7751FA	CAL	&hFA51		 Argument holen, ist es eine Zahl?
FE5B: B520	JR	C,&hFE7C	  dann ->
FE5D: 4E1860	OR	$24,&h60	 Bits im Register setzen
FE60: 410024	SBC	$0,"$"		 ist zweites Arg. ein Hauptregister?
FE63: B015	JR	Z,&hFE79	  dann ->
FE65: 4202A8	LD	$2,&hA8		 Opcode fr LDW $,(Ir+$) holen
FE68: 77A2FE	CAL	&hFEA2		 auf ($), (Ir$) oder (Irn) prfen
FE6B: 410019	SBC	$0,25		 ist es (Ir$)-Argument?
FE6E: B00A	JR	Z,&hFE79	  dann ->
FE70: 410018	SBC	$0,24		 ist es nicht ($)-Argument?
FE73: 744DFB	CAL	NZ,&hFB4D	  dann ERR3
FE76: 420291	LD	$2,&h91		 Opcode fr LDW $,($) holen
FE79: 372DFD	JP	&hFD2D		 und ->
FE7C: 4202D1	LD	$2,&hD1		 Opcode fr LDW $,addr holen
FE7F: DA6840	BYU3	$8		 Adresse nach $9/10 bringen
FE82: 02E818B9	LDJ	$8,$24,&hFE4C	 Register nach $8 holen und ->
-------------------------------------->	AD(C)(W), SB(C)(W) VORBEREITEN
FE86: 4C020F	AN	$2,&h0F		 Bits im Opcode lschen
FE89: B011	JR	Z,&hFE9B	 gleich Null? dann ->
FE8B: 480A02	AD	$10,2		 sonst neuen Opcode erhhen
FE8E: 410208	SBC	$2,8		 ist unteres Nibble kleiner als 8?
FE91: B509	JR	C,&hFE9B	  dann ->
FE93: B004	JR	Z,&hFE98	 oder ist es gleich 8?
FE95: 480A02	AD	$10,2		 sonst neuen Opcode erhhen
FE98: 480A02	AD	$10,2		 neuen Opcode erhhen
FE9B: 02E20A04	LDJ	$2,$10,&hFEA2	 als Opcode setzen und ->
-------------------------------------->	KOMMA BERL., ($)- ODER (Ir)-ARG. LESEN
  (O: $0=24: ($), =25: (Ir$), =26: (Irn) )
FE9F: 7734F8	CAL	&hF834		 Komma berlesen, Argument lesen
FEA2: 410018	SBC	$0,24		 ist es ein ($)-Argument?
FEA5: F0	RTN	Z		  dann zurck
FEA6: 410019	SBC	$0,25		 ist es kein (Ir)-Argument?
FEA9: 714DFB	CAL	NC,&hFB4D	  dann ERR3
FEAC: 410010	SBC	$0,16		  |
~Seite 248
FEAF: 754DFB	CAL	C,&hFB4D	  |
FEB2: 410014	SBC	$0,20		 ist IX angesprochen?
FEB5: B503	JR	C,&hFEB9	  dann ->
FEB7: 0E22	OR	$2,#1		 sonst Opcode erhhen
FEB9: 024E	LD	$14,#2		 Kennzeichnung nach $14 bringen
FEBB: 42001A	LD	$0,26		 Kennzeichen fr (Irn) setzen
FEBE: 042E	ANC	$14,#1		 ist Versatz positiv?
FEC0: B004	JR	Z,&hFEC5	  dann ->
FEC2: 4E1880	OR	$24,&h80	 sonst Negativflag setzen
FEC5: 440E02	ANC	$14,2		 ist Versatz eine Zahl?
FEC8: B408	JR	NZ,&hFED1	  dann ->
FECA: 420019	LD	$0,25		 sonst Kennzeichen fr (Ir$) setzen
FECD: 4E1860	OR	$24,&h60	 Bits setzen
FED0: F7	RTN			 zurck
FED1: 4E0240	OR	$2,&h40		 Opcode fr (Irn) erhhen
FED4: F7	RTN			 zurck
-------------------------------------->	EIN-BYTE-BEFEHL SPEICHERN
FED5: 02AB0C	LDJ	$11,#1,&hFEE3	 Zhler auf 1 Byte setzen und ->
--  --  --  --  --  --  --  --  --  -->	ZWEI-BYTE-BEFEHL SPEICHERN
FED8: 428B0208	LDJ	$11,2,&hFEE3	 Zhler auf 2 Bytes setzen und ->
--  --  --  --  --  --  --  --  --  -->	DREI-BYTE-BEFEHL SPEICHERN
FEDC: 428B0304	LDJ	$11,3,&hFEE3	 Zhler auf 3 Bytes setzen und ->
--  --  --  --  --  --  --  --  --  -->	VIER-BYTE-BEFEHL SPEICHERN
FEE0: 420B04	LD	$11,4		 Zhler auf 4 Bytes setzen
FEE3: 826C15	LDW	$12,$21		 physikalische Adresse holen
FEE6: 886C13	ADW	$12,$19		 und Lnge des Befehls addieren
FEE9: 817B0C	SBCW	$27,$12		 ragt Programm in den Labelspeicher?
FEEC: 35BDAB	JP	C,&hABBD	  dann OM Error
FEEF: D6400869	PRE	IZ,&h6908	 IZ Zeiger auf Bytespeicherzeiger
FEF3: 77FAFE	CAL	&hFEFA		 Code in den Speicher bringen
FEF6: D640AE61	PRE	IZ,&h61AE	 IZ Zeiger auf
--  --  --  --  --  --  --  --  --  -->	CODE IN DEN SPEICHER BRINGEN
FEFA: 027D0B	LD	$29,$11		 Lnge des Befehls in Zhler bringen
FEFD: 026702	LD	$7,$2		 Opcode nach $7 bringen
FF00: E70A60	PHU4	$10		 gesamten Code retten
FF03: A90E	LDW	$14,(IZ+#0)	 Speicheradresse holen
FF05: BD1E	ADW	(IZ+#0),$30	  und im Speicher erhhen
FF07: 10670E	ST	$7,($14)	 Code im Speicher ablegen
FF0A: DA4A60	BYD4	$10		 nchstes Byte zur Ausgabe schieben
FF0D: 093D	SB	$29,#1		 Zhler herabsetzen
FF0F: B48D	JR	NZ,&hFF03	 kein Ende? dann Schleife ->
FF11: EF0760	PPU4	$7		 gesamten Code wieder holen
FF14: F7	RTN			 zurck

=== NICHT BENUTZTER VEKTOR (???) ===============================================
-------------------------------------->	$0/1 ZEIGER AUF FDD-AUSGABE-PORT
FF15: D100040C	LDW	$0,&h0C04	 $0/1 Zeiger auf FDD-Ausgabe-Port
FF19: F7	RTN			 zurck

--------------------------------------	UNBENUTZTER BEREICH (35 BYTES)
FF1A: FFFFFFFFFFFFFFFF
FF22: FFFFFFFFFFFFFFFF
FF2A: FFFFFFFFFFFFFFFF
FF32: FFFFFFFFFFFFFFFF
FF3A: FFFFFF
~Seite 249
--------------------------------------	?
FF3D: 95

=== TEXT FR HAUPTMEN =========================================================
--------------------------------------	TEXT FR HAUPTMEN
FF3E: 5B6261736963205D			 [basic ]
FF46: 5B6461746120205D			 [data  ]
FF4E: 5B6564697420205D			 [edit  ]
FF56: 5B6469736B20205D			 [disk  ]
FF5E: 5B6E616D6520205D			 [name  ]
FF66: 5B6B696C6C20205D			 [kill  ]
FF6E: 5B6C6F616420205D			 [load  ]
FF76: 5B7361766520205D			 [save  ]
FF7E: 5B61736D626C205D			 [asmbl ]
FF86: 5B6C6C697374205D			 [llist ]
FF8E: 5B632E626F6F745D			 [c.boot]
FF96: 5B7072657365745D			 [preset]

=== SPRUNGTABELLE FR ROM-ROUTINEN =============================================
-------------------------------------->	SPRUNGTABELLE
  (wird im Prozessor-ROM vermutlich als Sprungreferenz benutzt)
FF9E: 37D795	JP	&h95D7 [OUTAC]	 Zeichen ausgeben
FFA1: D1018414	LDN	$1,&h14B4	 Offsets setzen
FFA5: F7	RTN			 zurck
FFA6: 370F05	JP	&h050F
FFA9: 377109	JP	&h0971
FFAC: 377E06	JP	&h067E
FFAF: 372E02	JP	&h022E
FFB2: 37D900	JP	&h00D9
FFB5: 37E305	JP	&h05E3
FFB8: 373004	JP	&h0430
FFBB: 379CBF	JP	&hBF9C		 INT1-Interrupt-Routine
FFBE: 37C48D	JP	&h8DC4
FFC1: 37DE8D	JP	&h8DDE		 Einschaltroutine
FFC4: 376400	JP	&h0064
FFC7: 37FA6F	JP	&h6FFA		 TRP-Interrupt-Routine
FFCA: 37D78E	JP	&h8ED7		 ON-Interrupt-Routine
FFCD: 374F8E	JP	&h8E4F		 One-Minute-Timer-Interrupt-Routine
FFD0: 37FD6F	JP	&h6FFD		 INT2-Interrupt-Routine
FFD3: 37138E	JP	&h8E13		 Kontrast festlegen
FFD6: 37C0AB	JP	&hABC0		 SN Error
FFD9: 37F0AB	JP	&hABF0		 MA Error
FFDC: 37ECAB	JP	&hABEC		 OV Error
FFDF: 37F8AB	JP	&hABF8		 BS Error
FFE2: 37C8AB	JP	&hABC8		 TC Error
FFE5: 3724AB	JP	&hAB24		 Tastatur-Pieps-Erzeugung
FFE8: 37A89E	JP	&h9EA8		 Startzahl fr RND holen
FFEB: 37B09E	JP	&h9EB0		 Lnge eines Viertelkreises holen
FFEE: 37B49E	JP	&h9EB4		 Umrechngszahl in akt. Winkelmodus holen
FFF1: 37C19A	JP	&h9AC1		 Hexzahl nach "&" aus Text lesen
FFF4: 3742A2	JP	&hA242
FFF7: 374890	JP	&h9048		 Speicherverschiebe-Routine
FFFA: 378390	JP	&h9083		 Men-Balken invertieren
FFFD: 37758F	JP	&h8F75		 LDW $30,&h0001 ausfhren
~Seite 250
A. bersicht ber alle Befehle des HD61700-Prezessors

Bedeutung der Hochzahlen:
1	Benutzung eines Kurzregisters mglich, dann Befehl um ein Byte krzer,
	statt $HR (immer zweites, wenn zwei Hauptregister angegeben, ist ein
	Hauptregister Versatz fr eines der Indexregister IX oder IZ, so
	dieses) steht dann #c (c=0, 1 oder 2), (C2b5/6=00: #0, =01: #1,
	=10: #2, =11: normales Hauptregister)
2	Benutzen eines Kurzregisters mglich, Befehl wird dadurch aber nicht
	krzer, Schreibweise siehe 1.
3	Anhngen eines relativen Sprungbefehls mglich. Dann Befehl um ein Byte
	lnger, Mnemonic erhlt Anhngsel J, (C2b7=1)

Erklrung: (dabei bedeuten C2/C3: Befehlsbyte Nr. 2/3, bx: Bit 2^x)
ROx/BIx		C2b5/6=00: ROD, =01: ROU, =10: BID, =11: BIU
DIx/BYx		C2b5/6=00: DID, =01: DIU, =10: BYD, =11: BYU
CMP/INV		C2b6=0: CMP, =1: INV
GPO/GFL		C2b6=0: GPO, =1: GFL
a		(C3b5/6/7)+1 = Wirklnge (2..8)
c		(CZb5/6) =00: Kurzregister #0, =01: #1, =10: #2
r1		C2b5/b=00: PE, =01: PD, =10: ??, =11: UA
r2		C2b5/6=00: IA, =01: IE, =11: TM (nur Lesen)
s1		C2b5/6=00: IX, =01: IY, =10: IZ, =11: US
s2		C2b5/6=00: SS, =01: KY (nur Lesen)
LNZ		neue Bedingung: nur springen, wenn LZ-Flag nicht gesetzt ist
		 (Kombination aus den Bedingungen NZ und LZ)
rel		(C2)b7=0: +, =1: -, b0..6: Schrittweite (0-127),
		 zhlt immer ab dem Byte, in dem die Schrittweite steht.
n		8-Bit-Wert
addr		16-Bit-Wert
		C2b7=0: +, =1: -

Code-Lngen der bisher undokumentierten Befehle:

JP ($)			2	|	PSH #c,$		3
LDa $,$ usw.		3	|	LDD/LDDW/STD/STDW	3
ST n,(#c)		3	|	STW addr,(#c)		4


x=	|   x + &h00	|   x + &h40	|   x + &h80	|   x + &hC0
--------+---------------+---------------+---------------+---------------
h00	|ADC $,$ 1 3	|ADC $,n 3	|ADCW $,S 1 3	|ADCa $,$ 2 3
h01	|SBC $,$ 1 3	|SBC $,n 3	|SBCW $,$ 1 3	|SBCa $,$ 2 3
h02	|LD $,$ 1 3	|LD $,n 3	|LDW $,$ 1 3	|LBa $,$ 2 3
h03	|		|		|		|
h04	|ANC $,$ 1 3	|ANC $,n 3	|ANCW $,$ 1 3	|ANCa $,$ 2 3
h05	|NAC $,$ 1 3	|NAC $,n 3	|NACW $,$ 1 3	|NACa $,$ 2 3
h06	|ORC $,$ 1 3	|ORC $,n 3	|ORCW $,$ 1 3	|ORCa $,$ 2 3
h07	|XRC $,$ 1 3	|XRC $,n 3	|XRCW $,$ 1 3	|XRCa $,$ 2 3
h08	|AD $,$ 1 3	|AD $,n 3	|ADW $,$ 1 3	|ADa $,$ 2 3
h09	|SB $,$ 1 3	|SB $,n 3	|SBW $,$ 1 3	|SBa $,$ 2 3
h0A	|ADB $,$ 1 3	|ADB $,n 3	|ADBW $,$ 1 3	|ADBa $,$ 2 3
h0B	|SBB $,$ 1 3	|SBB $,n 3	|SBBW $,$ 1 3	|SBBa $,$ 2 3
h0C	|AN $,$ 1 3	|AN $,n 3	|ANW $,$ 1 3	|ANa $,$ 2 3
h0D	|NA $,$ 1 3	|NA $,n 3	|NAW $,$ 1 3	|NAa $,$ 2 3
h0E	|OR $,$ 1 3	|OR $,n 3	|ORW $,$ 1 3	|ORa $,$ 2 3
h0F	|XR $,$ 1 3	|XR $,n 3	|XRW $,$ 1 3	|XRa $,$ 2 3
~Seite 251
x=	|   x + &h00	|   x + &h40	|   x + &h80	|   x + &hC0
--------+---------------+---------------+---------------+---------------
h10	|ST $,($) 1 3	|ST n,(#c)	|STW $,($) 1 3	|STW addr,(#c)
h11	|LD $,($) 1 3	|		|LDW $,($) 1 3	|LDW $,addr
h12	|		|		|		|
h13	|		|		|		|
h14	|PFL $ 3	|		|		|
h15	|		|PSH #c,$ 3	|		|
h16	|PST r1,$ 3	|PST r1,n 3	|PRE s1,$ 3	|PRE s1,addr
h17	|PST r2,$ 3	|PST r2,n 3	|PRE $2,$ 3	|PRE $2,addr
h18	|ROx/BIx $ 3	|		|ROxW/BIxW $ 3	|BUP
h19	|		|		|		|BDN
h1A	|DIx $ 3	|		|DIxW/BYxW $ 3	|DIxa/BYxa $ 3
h1B	|CMP/INV $ 3	|		|CMPW/INVW $ 3	|CMPa/INVa $ 3
h1C	|GPO/GFL $ 3	|SUP n		|		|SUP $
h1D	|		|SDN n		|		|SDN $
h1E	|GST r1,$ 3	|		|GRE s1,$ 3	|JP ($)
h1F	|GST r2,$ 3	|		|GRE s2,$ 3	|
h20	|ST $,(IX$) 1	|ST $,(IXn)	|STW $,(IX$) 1	|STa $,(IX$) 2
h21	|ST $,(IZ$) 1	|ST $,(IZn)	|STW $,(IZ$) 1	|STa $,(IZ$) 2
h22	|STI $,(IX$) 1	|STI $,(IXn)	|STIW $,(IX$) 1|STIa $,(IX$) 2
h23	|STI $,(IZ$) 1	|STI $,(IZn)	|STIW $,(IZ$) 1|STIa $,(IZ$) 2
h24	|STD $,(IX$) 1	|STD $,(IXn)	|STDW $,(IX$) 1|STDa $,(IX$) 2
h25	|STD $,(IZ$) 1	|STD $,(IZn)	|STDW $,(IZ$) 1|STDa $,(IZ$) 2
h26	|PHS $		|		|PHSW $		|PHSa $
h27	|PHU $		|		|PHUW $		|PHUa $
h28	|LD $,(IX$) 1	|LD $,(IXn)	|LDW $,(IX$) 1	|LDa $,(IX$) 2
h29	|LD $,(IZ$) 1	|LD $,(IZn)	|LDW $,(IZ$) 1	|LDa $,(IZ$) 2
h2A	|LDI $,(IX$) 1	|LDI $,(IXn)	|LDIW $,(IX$) 1|LDIa $,(IX$) 2
h2B	|LDI $,(IZ$) 1	|LDI $,(IZn)	|LDIW $,(IZ$) 1|LDIa $,(IZ$) 2
h2C	|LDD $,(IX$) 1	|LDD $,(IXn)	|LDDW $,(IX$) 1|LDDa $,(IX$) 2
h2D	|LDD $,(IZ$) 1	|LDD $,(IZn)	|LDDW $,(IZ$) 1|LDDa $,(IZ$) 2
h2E	|PPS $		|		|PPSW $		|PPSa $
h2F	|PPU $		|		|PPUW $		|PPUa $
h30	|JP Z,addr	|CAL Z,addr	|JR Z,rel	|RTN Z
h31	|JP NC,addr	|CAL NC,addr	|JR NC,rel	|RTN NC
h32	|JP LZ,addr	|CAL LZ,addr	|JR LZ,rel	|RTN LZ
h33	|JP UZ,addr	|CAL UZ,addr	|JR UZ,rel	|RTN UZ
h34	|JP NZ,addr	|CAL NZ,addr	|JR NZ,rel	|RTN NZ
h35	|JP C,addr	|CAL C,addr	|JR C,rel	|RTN C
h36	|JP LNZ,addr	|CAL LNZ,addr	|JR LNZ,rel	|RTN LNZ
h37	|JP addr	|CAL addr	|JR rel		|RTN
h38	|ADC $,(IX$) 1	|ADC $,(IXn)	|ADCW $,(IX$) 1|NOP
h39	|ADC $,(IZ$) 1	|ADC $,(IZn)	|ADCW $,(IZ$) 1|CLT
h3A	|SBC $,(IX$) 1	|SBC $,(IXn)	|SBCW $,(IX$) 1|FST
h3B	|SBC $,(IZ$) 1	|SBC $,(IZn)	|SBCW $,(IZ$) 1|SLW
h3C	|AD $,(IX$) 1	|AD $,(IXn)	|ADW $,(IX$) 1	|CANI
h3D	|AD $,(IZ$) 1	|AD $,(IZn)	|ADW $,(IZ$) 1	|RTNI
h3E	|SB $,(IX$) 1	|SB $,(IXn)	|SBW $,(IX$) 1	|OFF
h3F	|SB $,(IZ$) 1	|SB $,(IZn)	|SBW $,(IZ$) 1	|TRP
~Seite 252
B. Referenzliste
8000:		Zeichensatztabelle
88ED:		Tokentexttabelle
8BEC:		Adresstabelle der Funktionen
8C88:		Adresstabelle der Stringfunktionen
8D38:		NEW ALL-Taste verarbeiten
8DC4:		RESET-Taste verarbeiten
8DDE:		Einschaltroutine
8E08:		Default-Kontrast festlegen
8E13:		Kontrast festlegen
8E38:		Kontrast erhhen
8E49:		Kontrast herabsetzen
8ED7:		ON-Interruptroutine
8F6C:		Defaultregister initialisieren
8F7A:		IZ Zeiger auf Betriebsmodus
8FF2:		Programmodus setzen + Menzeilenpuffer leeren
8FFF:		Bildschirmparameter zurcksetzen
9019:		Zeilenlnge feststellen, Eingabepuffer lschen
901F:	INCLR:	Eingabepuffer lschen
9039:		DISK-Filename in den WORK-Puffer
9048:	BUPDN:	Verschieben eines Bereichs
9083:		MENU-Cursorbalken setzen
909B:		CAL-/BASIC-BRK-Routine
90A3:		Rckkehr in den Direktmodus
90C3:	BRSTR:	Vektor fr BRK-Routine setzen
90CA:		Tastaturpuffer zurcksetzen
90D9:		Ausgabe auf FCB lenken
90DD:		Ausgabe auf Drucker lenken
90E1:		Ausgabe auf Display lenken
90EA:		IX auf erstes Zeichen der Displayzeile
9127:		Pausierung berprfen und abwarten
9139:		Eingabemodus setzen
913F:		Cursorblinken lschen
9142:		Eingabemodus lschen
914A:		KEY-Impulsfreigabe
9150:		KEY-Impulsverbot
9158:	CRTKY:	Warten auf eine Taste
91E2:	KYCHK:	auf OFF/C.Boot/BRK/STOP prfen
9207:	BKCK:	auf OFF, C.BOOT und BRK prfen
921C:		nach BRK-Taste/Fehler hier weiter
9238:		I/O-Aktiv-Flag lschen
924F:		Zeile in den CALC-Speicher kopieren
9271:		IN-Taste verarbeiten
9292:		OUT-Taste verarbeiten
929A:		CALC-Speicher ausgeben
92A8:		NUM1=ANS-Zahl
92B2:		ANS-Zahl auf Display ausgeben
92C4:		evtl. I/O-Aktivitt beenden
92CD:		Betriebsmodus nach $2 holen
92D3:		ANS-Taste verarbeiten
92DC:		ENG-Status lschen, Eingabemodus testen
92ED:		ENG-Status ggfs. lschen
92FD:		CRLF ausgeben, wenn ENG-Status gesetzt
9307:		IX Eingabemodus/IZ ENG-Status
9310:		ggfs. C.Boot-File starten
9339:		CONT-Taste verarbeiten
~Seite 253
934C:		PRESET-Tasten verarbeiten
938A:		ENG- & SHIFT-ENG-Taste verarbeiten
93E6:		Eingabewarteschleife
9415:		Zeichen auf den Bildschirm bringen
9429:		Shortkey ausgeben
94A0:		Taste erwarten, Sondertasten verarbeiten
94E2:		CAL-Taste verarbeiten
94F0:		LCKEY-Taste verarbeiten
9550:		Haupt-Warteschleife
9575:		Vier-Zeilen-Modus setzen
9592:		PRESET-Menzeile aufbauen
95BE:		Betriebsmodus setzen und CLS
95CA:		BASIC-Befehl CLS
95CE:	OUTCR:	CRLF ausgeben
95D7:	OUTAC:	Zeichen ausgeben
9614:		Spaltennummer auf Null setzen
9618:		Ausgabe auf den Bildschirm
9664:	PRLB1:	Ausgabe eines Strings
9669:	PRLB2:	Ausgabe eines Strings aus dem ROM
9686:		Zeile tokenisieren
9828:	DTBIN:	Zeilennummer lesen
985A:		Lesen einer Zeilennummer>0
9863:		Lesen einer Zeilennummer
98A3:		Ausdruck lesen und BINM2 ausfhren
98A6:	BINM2:	FLP-Zahl in Wort-Wert wandeln
98AE:		Ausdruck lesen und BIN01 ausfhren
98B1:	BIN01:	FLP-Zahl in Byte-Wert wandeln
98B9:	BIN11:	FLP-Zahl in Byte-Wert wandeln
98CA:		Ausdruck lesen und BIN02 ausfhren
98CD:	BIN02:	FLP-Zahl in Wort-Wert wandeln
98D3:	BIN12:	FLP-Zahl in Wort-Wert wandeln
98E5:	SIKI:	Ausdruck aus dem Text lesen
9989:	EXPRW:	arithm. Ausdruck aus dem Text lesen
9990:		Einzel-Argument lesen
9A01:		Stringausdruck in Klammern lesen
9A0A:		arithm. Ausdruck in Klammern lesen
9A14:		auf Platz im Systemstack prfen
9A2F:		auf gengenden Systemspeicher testen
9A3F:	NISIN:	BCD-Zahl nach binr wandeln
9AF4:	CNVR:	Wort-Wert in FLP-Zahl wandeln
9B2B:		FLP-Zahl in Wort-Wert wandeln
9BB7:	NCP:	zwei FLP-Zahlen vergleichen
9BD1:	MCP:	zwei Strings vergleichen
9BF9:		Vorzeichenwechsel: NUM1=-NUM1
9C03:		BASIC-Operation NOT
9C0C:		BASIC-Operationen AND/OR/XOR
9C25:		NUM0=NUM1 und NUM1 aus Userstack holen
9C2E:		BASIC-Operation -
9C31:		BASIC-Operation +
9C3A:		BASIC-Operation *
9C42:		BASIC-Operation 
9C64:		BASIC-Operation /
9C6C:		BASIC-Operation ^
9C72:		BASIC-Operation MOD
9C99:	BXWY:	Division WRD1/WRD0
9CE4:		16bit-Multiplikation ausfhren
9CEB:		Stringausdruck lesen
9D6F:		String in Anfhrungszeichen lesen
9D81:		eine Null im Zeichenop.Stapel anhngen
~Seite 254
9D8C:		String aus Text lesen (fr DATA)
9DAC:		Zahl mit Vorzeichen aus Text lesen (fr DATA)
9DF0:		interne Rundung durchfhren
9E3B:		BASIC-Funktion INKEY$
9EA4:		NUM0=PI setzen
9EA8:		Verschiedene Zahlen holen
9ED7:		BASIC-Funktion HYPSIN
9EDB:		BASIC-Funktion HYPCOS
9EDF:		BASIC-Funktion HYPTAN
9EE2:		BASIC-Funktion HYPASN
9EE6:		BASIC-Funktion HYPACS
9EEA:		BASIC-Funktion HYPATN
9FA6:		NUM1=NUM1*NUM0
9FF4:		BASIC-Funktion RND
A021:		BASIC-Funktion PI
A026:		letzten STAT-X-Wert holen
A029:		letzten STAT-Y-Wert holen
A02D:		BASIC-Funktion CNT
A031:		BASIC-Funktion SUMX
A035:		BASIC-Funktion SUMY
A039:		BASIC-Funktion SUMX2
A03D:		BASIC-Funktion SUMY2
A041:		BASIC-Funktion SUMXY
A050:		NUM1=(SUMz2-SUMz^2)/CNT
A054:		NUM1=(SUMX2-SUMX^2)/CNT
A062:		NUM1=(SUMY2-SUMY^2)/CNT
A078:		BASIC-Funktion SDX
A07C:		BASIC-Funktion SDY
A092:		BASIC-Funktion SDXN
A098:		BASIC-Funktion SDYN
A09E:		BASIC-Funktion MEANX
A0A3:		BASIC-Funktion MEANY
A0AB:		NUM1=SUMXY-SUMX*MEANY
A0B9:		NUM1=MEANY*SUMX2-MEANX*SUMXY
A0D4:		BASIC-Funktion LRA
A0DF:		BASIC-Funktion LRB
A0E4:		BASIC-Funktion COR
A102:		BASIC-Funktion EOX
A11A:		BASIC-Funktion EOY
A132:		BASIC-Funktion DEG
A167:		NUM0=60 setzen
A16F:		NUM0=3600 setzen
A17A:		BASIC-Funktion DATE$
A198:		BASIC-Funktion TIME$
A1F2:		BASIC-Funktion DMS$
A299:		BASIC-Funktion FIX
A309:		NUM2=FRAC(NUM1); NUM1 beibehalten
A312:		BASIC-Funktion INT
A320:		BASIC-Funktion FRAC
A32A:		BASIC-Funktion SGN
A33A:		BASIC-Funktion ASC
A345:		BASIC-Funktion ERR
A350:		BASIC-Funktion ERL
A35B:		BASIC-Funktion LEN
A362:		BASIC-Funktion PEEK
A368:		BASIC-Funktion POINT
A381:		Grafikkoordinaten aus Text lesen
A3A0:		Grafikposition berechnen & Inhalt holen
A3BC:		BASIC-Funktion ABS
~Seite 255
A3C4:		BASIC-Funktion VAL
A3D3:		Textzeiger wieder holen und setzen
A3D8:		BASIC-Funktion ROUND
A446:		BASIC-Funktion MID$
A48E:		BASIC-Funktionen LEFT$/RIGHT$
A4BF:		BASIC-Funktion CHRS
A4CA:		BASIC-Funktion HEX$
A555:		BASIC-Funktion STR$
A5E7:		Stringdeskriptor fr WORK erstellen
A61A:		Variablendeskriptor holen und ablegen
A625:		Variablendeskriptor lesen
A652:		Variablenname lesen
A790:		Variable zuweisen
A91E:		String-Speicher zusammenschieben
A938:		String-Speicher ffnen
A990:		Variablendaten-Bereich ffnen
A994:		FOR-Stapel ffnen
A997:		GOSUB-Stapel ffnen
A99B:		Variablen-Bereich ffnen
A9F4:		FOR-Stapel zusammenschieben
A9F7:		GOSUB-Stapel zusammenschieben
A9FB:		Variablen-Bereich zusammenschieben
AA24:		Zeile im Direktmodus verarbeiten
AAB9:		BASIC-Befehl BEEP
AAE3:		tiefen Ton erzeugen
AAE9:		Ton erzeugen
AB11:		hohen Ton erzeugen
AB1A:		evtl. Tastenklick erzeugen
AB27:		Zeilenbereich aus dem Text lesen
AB59:		BASIC-Modus erlauben
AB5F:		Direktmodus erlauben
AB66:		Programmodus erlauben
AB6C:		auf Direktmodus testen
AB71:		auf BASIC-Modus testen
AB79:		Text der Fehlermeldungen
ABBD:		AUSGABE VON FEHLERMELDUNGEN
AC85:		OR Error ausgeben
ACFF:		Dateiname und Zeilennummer ausgeben
AD1E:		Texte von Systemmeldungen
AD39:		"ERROR" ausgeben
AD3F:		"STOP" ausgeben
AD45:		"BREAK" ausgeben
AD4B:		"ready" ausgeben
AD5B:		Bindestrich und Zeilennummer ausgeben
AD61:		aktuelle Zeilennummer ausgeben
AD78:		aktuellen Dateinamen ausgeben
ADAB:		BRK-Routine fr laufendes BASIC-Programm
ADB7:		temporre Stapel lschen
ADC6:		Direktmodus setzen
ADCC:		Zeichenoperationsstapel leeren
ADD8:		GOSUB-Stapel leeren
ADDE:		FOR-Stapel leeren
ADF3:		CALC-Taste verarbeiten
AED2:		Variable im Abfrage-Modus eingeben
AFA4:		ROLL DOWN ausgeben
AFAE:		ROLL UP ausgeben
AFB8:		CR ausgeben
AFD0:		Tabelle der BASIC-Befehlsadressen
B0C5:	ENLST:	Enttokenisieren einer BASIC-Zeile
~Seite 256
B1C2:	NDFMK:	sequentielle Datei erzeugen
B1D2:	NBFMK:	BASIC-File erzeugen
B21C:		Filenamen aus String in WORK bringen
B26C:		Datenfile-Speicher zusammenschieben
B26F:		BASIC-Programmspeicher zusammenschieben
B28E:		BASIC-Programmspeicher ffnen
B292:		Datenfile-Speicher ffnen
B33E:		Datenfile-Fileheader ffnen
B341:		BASIC-Programm-Fileheader ffnen
B373:		File aus dem Speicher lschen
B392:		Datenfile-Fileheader entfernen
B395:		BASIC-Programm-Fileheader entfernen
B3B6:		BASIC-Zeile einfgen/lschen
B42C:		Zeile in Datenfile austauschen
B45E:		Zeichen bis zum Zeilenende berlesen
B476:		Zeiger in nchste Zeile setzen
B48B:		BASIC-Zeile berlesen
B495:		Zeiger in vorherige Zeile setzen
B4CE:		Anfangs-BASIC-Zeile suchen
B4D1:	LNSCH:	BASIC-Zeile suchen
B4E6:		Zeiger auf gewnschten Datensatz setzen
B50D:		Anzahl der Datenstze+1 feststellen
B517:		Datensatznummer feststellen
B52C:		gefundene Zeichenkette invertieren
B5B7:		BASIC-Befehl DELETE
B5BF:		Zeilenbereich lschen
B5E3:		BASIC-Befehl LLIST
B5E8:		BASIC-Befehl LIST
B60C:		Bereich auflisten
B64A:		BASIC-Befehl EDIT
B690:		richtigen Modus & Password prfen
B696:		Password-Schutz abfragen
B6C1:		MEMO-File suchen
B6FB:		Vier-Zeilen-Modus setzen
B701:		Drei-Zeilen-Modus und mehr setzen
B720:		Start- & Endadresse des aktuellen Files holen
B72C:		Anzahl der Bytes in File feststellen
B776:		MEMO-IN-Taste verarbeiten
B788:		BRK-Routine fr MEMO-IN & DATA-EDIT
B7BC:		Register $17-29 retten
BB8E:		[search]-Taste verarbeiten
BB92:		[delete]-Taste verarbeiten
BC85:		[next  ]-Taste verarbeiten
BC8C:		Suchwort mit Zeileninhalt vergleichen
BD53:		MEMO-Taste verarbeiten
BDB4:		IX auf nchsten Wortanfang setzen
BE11:	RSOPN:	RS232C-Kanal ffnen
BE4F:		INT1 freigeben
BE57:		INT1 sperren
BE5D:	RSCLO:	RS232C-Kanal schlieen
BE9C:	RSGET:	Zeichen von RS232C holen
BED9:		RS232C-Fehlerverarbeitung
BEFF:	PRTRS:	Zeichen an RS232C ausgeben
BF9C:		INT1-Routine (fr RS232C)
C000:		BASIC-Funktion LOF
C035:		BASIC-Befehl STOP
C054:		aktuelle Zeilennummer speichern
C05B:		BASIC-Befehl END
C067:		BASIC-Befehl RUN
~Seite 257
C08A:		Interpreter-Befehlsschleife
C0A2:		BASIC-Zeile abarbeiten
C0DB:		CONT-Taste verarbeiten
C102:		auf Ende des Befehls prfen, ' berlesen
C128:		Stapel lschen, Kanle schlieen
C152:		BASIC-Anweisung RETURN
C179:		BASIC-Anweisung GOTO
C188:		BASIC-Anweisung GOSUB
C1B7:		Zeilennr. oder Filename lesen und suchen
C1EB:		Sprung ausfhren
C211:		BASIC-Anweisung FOR
C353:		BASIC-Anweisung NEXT
C3D0:		BASIC-Anweisung IF
C43E:		BASIC-Anweisungen DRAW und DRAWC
C463:		Einzelpunkt setzen oder lschen
C46A:		Koordinaten lesen und speichern
C529:		Grafikpunkt setzen bzw. lschen
C548:		BASIC-Anweisung LOCATE
C573:		BASIC-Anweisung POKE
C583:		BASIC-Anweisung ANGLE
C595:		BASIC-Befehl TROFF
C598:		BASIC-Befehl TRON
C5A0:		BASIC-Anweisung DEF
C5FA:		bei TRON Dateiname ausgeben
C609:		bei TRON Zeilennummer ausgeben
C626:		Cursor evtl. in neue Zeile bringen
C633:		Dateiname in eckigen Klammern ausgeben
C63E:		Zeilennr. in eckigen Klammern ausgeben
C64D:		BASIC-Anweisung VAR
C6A9:		BASIC-Anweisung LET
C729:		BASIC-Anweisung DIM
C760:		BASIC-Anweisung ERASE
C7AA:		BASIC-Anweisung RESUME
C84D:		BASIC-Anweisung ON
C8C4:		Zeichen bis zum Befehlsende berlesen
C8C7:		BASIC-Anweisungen REM und DATA
C8E8:		BASIC-Befehl NEW
C8FA:		BASIC-Anweisung READ
C96B:		BASIC-Anweisung RESTORE
C9BA:		BASIC-Befehl CLEAR
CAD8:		BASIC-Anweisung LPRINT
CADD:		BASIC-Anweisung PRINT
CBCB:		BASIC-Anweisung LSET
CBE6:		BASIC-Anweisung RSET
CC22:		IZ Zeiger auf aktiven FCB
CCFB:		BASIC-Speicher ffnen
CD00:		BASIC-Anweisung GET
CD08:		BASIC-Anweisung PUT
D03A:		Binrzahl in $0 nach BCD wandeln
D04C:		BASIC-Anweisung STAT
D102:		BASIC-Anweisung OPEN
D2FB:		FCB mit Kanalnummer 0..15 suchen
D302:		FCB mit Kanalnummer 1..15 suchen
D31C:		$8/9 Zeiger auf ersten FCB
D32D:		offenen FCB mit Kanalnummer ($15) suchen
D334:		Adresse auf nchsten FCB setzen
D33A:		Open-FCB-Filename nach WORK kopieren
D357:		IX und IZ aus Userstack holen
D362:		IX und IZ im Userstack ablegen
~Seite 258
D370:		BASIC-Anweisung CLOSE
D393:		alle Kanle schlieen
D3AC:		Kanal mit Kanalnummer ($15) schlieen
D456:		System-FCB schlieen
D49A:		BASIC-Anweisung FIELD
D519:		BASIC-Anweisung INPUT
D550:		BASIC-Anweisung LINE INPUT
D59E:		Kanalnummer lesen und FCB suchen
D78E:		BASIC-Funktion INPUT$
D7E4:		BASIC-Funktion EOF
D80D:		bei EOF File schlieen
D8AB:		BASIC-Anweisung FORMAT
D8E4:		System-FDD-Kanal schlieen
D8E6:	FDCLO:	FDD-Kanal schlieen
D962:		vorherigen Filenamen aus Disk-Dir. holen
D966:		nchsten Filenamen aus Disk-Dir. holen
D969:		ersten Filenamen aus Disk-Dir. holen
D987:		System-FDD-Kanal ffnen
D9A0:	FDOPN:	FDD-Kanal ffnen
DA05:	FDWRB:	Block auf FDD-Kanal ausgeben
DA10:	FDWRR:	Datensatz auf FDD-Kanal ausgeben
DA3E:	FDRDB:	Byte vom FDD-Kanal holen
DA49:	FDRDR:	Datensatz vom FDD-Kanal holen
DA91:		auf angeschlossenes MD-100 berprfen
DAC4:		Register $0..15 als Zeichen ausgeben
DAD6:		File auf Disk lschen
DAE5:		File auf Disk umbenennen
DB14:		BASIC-Anweisung DATE$=
DB25:		BASIC-Anweisung TIME$=
DB3A:		BASIC-Befehl SYSTEM
DBE3:		BASIC-Befehl PASS
DC21:		BASIC-Befehl SAVE
DC2A:		BASIC-Befehl VERIFY
DC34:		BASIC-Befehl LOAD
DC3C:		BASIC-Befehl MERGE
DD70:		BASIC-Befehl BLOAD
DDB7:		BASIC-Befehl CALL
DDDD:		Userstackzeiger zurcksetzen
DE5E:		Programm laden
DE60:		Programm laden/anhngen/vergleichen
DE77:		File laden/anhngen/vergleichen
E032:		BASIC-Befehl BSAVE
E09A:		System-Kanal fr Ausgabe ffnen
E0A3:		System-Kanal ffnen
E1B1:		Prfsumme auf MT-Kanal ausgeben
E1BA:		MT-Kanal zur Eingabe ffnen
E250:		Byte von MT-Port abholen
E25A:		Byte in $16 an MT-Port ausgeben
E25D:		Byte in $0 an MT-Port ausgehen
E266:		Datenblock auf den MT-Port ausgeben
E2B7:		60ms warten
E2BC:		($4) mal 30ms warten
E33D:		20ms warten
E347:		I/O-Aktivitt beenden
E358:		Interface inaktivieren
E360:		Blockanfang auf Kassette abwarten
E37F:		auf Headerbeginn auf Kassette warten
E391:		auf Datenbeginn auf Kassette warten
E3D8:		Filename von WORK nach Open-FCB kopieren
~Seite 259
E47E:		IZ Zeiger auf WORK-Puffer
E483:		RS232C-Parameter aus Filename lesen
E50C:		DIP-Schalter des Interfaces abfragen
E567:		MENU-Taste verarbeiten
E601:		MENU-BRK-Routine
E680:		auf angeschlossenes Interface testen
E68A:		IZ Zeiger auf Men-Cursor
E6A3:		Men-Eingabemodus vorbereiten
E6AF:		IZ Zeiger auf Direktmodusflag
E6C5:		$6/7 auf Speicherobergrenze setzen
E6CC:		Zeiger auf nchsten Fileheader setzen
E737:	DOTMK:	Teile des Displaypuffers in den Grafikpuffer bringen
E76B:		gesamte File-Information in Register
E7F1:		ist kein Filename angegeben? dann Z=1
E801:		WORK-Puffer lschen
E80F:		File beliebigen Filetyps suchen
E818:	FNSCH:	File im Directory suchen
E842:	KILL:	File im Speicher lschen
E8B9:	KYIN:	Abfrage der Tastatur auf EXE & Y
E8D1:		aktuellen Dateinamen invertieren
EA04:		[edit  ]-Taste verarbeiten
EA26:		[preset]-Taste verarbeiten
EA58:		[data  ]-Taste verarbeiten
EA5E:		[basic ]-Taste verarbeiten
EA7C:		Leerfile erzeugen
EA91:		[kill  ]-Taste verarbeiten
EAD1:		[name  ]-Taste verarbeiten
EAFE:		[llist ]-Taste verarbeiten
EB2D:		[load  ]-Taste verarbeiten
EB5C:		[save  ]-Taste verarbeiten
ECB6:		[c.boot]-Taste verarbeiten
ED52:		Datum lesen & in internes Format bringen
EDC1:		Plausibilittskontrolle fr Tage
EDE8:		Uhrzeit lesen & in internes Format bringen
EE39:		[disk  ]-Taste verarbeiten
F079:		BASIC-Befehl MON
F0EB:		MON-BRK-Routine
F120:		MON-BANK-Befehl
F15B:		MON-DISPLAY-Befehl
F185:		Hexzahl lesen
F229:		MON-EDIT-Befehl
F4FF:		[asmbl ]-Taste verarbeiten
F6A6:		ASMBL-BRK-Routine
FF15:		$0/1 Zeiger auf FDD-Ausgabe-Port
FF9E:		ROM-Routinen-Sprungtabelle
~Seite 260
C. Index

"BREAK" ausgeben  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AD45
"ERROR" ausgeben  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AD39
"ready" ausgeben  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AD4B
"STOP" ausgeben   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AD3F
16bit-Multiplikation ausfhren   .  .  .  .  .  .  .  .  .  .  .  .  .  .  9CE4
20ms warten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E33D
30ms mehrfach warten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E2BC
60ms warten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E2B7
Adresse auf nchsten FCB setzen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D334
Adresstabelle der Funktionen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8BEC
Adresstabelle der Stringfunktionen  .  .  .  .  .  .  .  .  .  .  .  .  .  8C88
aktuelle Zeilennummer ausgeben   .  .  .  .  .  .  .  .  .  .  .  .  .  .  AD61
aktuelle Zeilennummer speichern  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C054
aktuellen Dateinamen ausgeben .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AD78
aktuellen Dateinamen invertieren .  .  .  .  .  .  .  .  .  .  .  .  .  .  E8D1
alle Kanle schlieen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D393
Anfangs-BASIC-Zeile suchen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B4CE
ANS-Taste verarbeiten   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  92D3
ANS-Zahl auf Display ausgeben .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  92B2
Anzahl der Bytes im File feststellen   .  .  .  .  .  .  .  .  .  .  .  .  B72C
Anzahl der Datenstze+1 feststellen .  .  .  .  .  .  .  .  .  .  .  .  .  B50D
arithm. Ausdruck in Klammern lesen  .  .  .  .  .  .  .  .  .  .  .  .  .  9A0A
ASMBL-BRK-Routine .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  F6A6
auf angeschlossenes Interface testen   .  .  .  .  .  .  .  .  .  .  .  .  E680
auf angeschlossenes MD-100 berprfen  .  .  .  .  .  .  .  .  .  .  .  .  DA91
auf BASIC-Modus testen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AB71
auf Datenbeginn auf Kassette warten .  .  .  .  .  .  .  .  .  .  .  .  .  E391
auf Direktmodus testen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AB6C
auf Ende des Befehls prfen, ' berlesen  .  .  .  .  .  .  .  .  .  .  .  C102
auf gengenden Systemspeicher testen   .  .  .  .  .  .  .  .  .  .  .  .  9A2F
auf Headerbeginn auf Kassette warten   .  .  .  .  .  .  .  .  .  .  .  .  E37F
auf Platz im Systemstack prfen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9A14
Ausdruck (arithm.) aus dem Text lesen (EXPRW)   .  .  .  .  .  .  .  .  .  9989
Ausdruck aus dem Text lesen (SIKI)  .  .  .  .  .  .  .  .  .  .  .  .  .  98E5
Ausdruck lesen und BIN01 ausfhren  .  .  .  .  .  .  .  .  .  .  .  .  .  98AE
Ausdruck lesen und BIN02 ausfhren  .  .  .  .  .  .  .  .  .  .  .  .  .  98CA
Ausdruck lesen und BINM2 ausfhren  .  .  .  .  .  .  .  .  .  .  .  .  .  98A3
Ausgabe auf den Bildschirm .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9618
Ausgabe auf Display lenken .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  90E1
Ausgabe auf Drucker lenken .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  90DD
Ausgabe auf FCB lenken  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  90D9
AUSGABE VON FEHLERMELDUNGEN   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ABBD
BASIC-Anweisung ANGLE   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C583
BASIC-Anweisung CLOSE   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D370
BASIC-Anweisung DATE$=  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DB14
BASIC-Anweisung DEF  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C5A0
BASIC-Anweisung DIM  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C729
BASIC-Anweisung ERASE   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C760
BASIC-Anweisung FIELD   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D49A
BASIC-Anweisung FOR  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C211
BASIC-Anweisung FORMAT  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D8AB
BASIC-Anweisung GET  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  CD00
BASIC-Anweisung GOSUB   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C188
BASIC-Anweisung GOTO .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C179
BASIC-Anweisung IF   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C3D0
~Seite 261
BASIC-Anweisung INPUT   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D519
BASIC-Anweisung LET  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C6A9
BASIC-Anweisung LINE INPUT .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D550
BASIC-Anweisung LOCATE  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C548
BASIC-Anweisung LPRINT  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  CAD8
BASIC-Anweisung LSET .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  CBCB
BASIC-Anweisung NEXT .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C353
BASIC-Anweisung ON   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C84D
BASIC-Anweisung OPEN .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D102
BASIC-Anweisung POKE .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C573
BASIC-Anweisung PRINT   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  CADD
BASIC-Anweisung PUT  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  CD08
BASIC-Anweisung READ .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C8FA
BASIC-Anweisung RESTORE .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C96B
BASIC-Anweisung RESUME  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C7AA
BASIC-Anweisung RETURN  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C152
BASIC-Anweisung RSET .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  CBE6
BASIC-Anweisung STAT .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D04C
BASIC-Anweisung TIME$=  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DB25
BASIC-Anweisung VAR  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C64D
BASIC-Anweisungen DRAW und DRAWC .  .  .  .  .  .  .  .  .  .  .  .  .  .  C43E
BASIC-Anweisungen REM und DATA   .  .  .  .  .  .  .  .  .  .  .  .  .  .  C8C7
BASIC-Befehl BEEP .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AAB9
BASIC-Befehl BLOAD   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DD70
BASIC-Befehl BSAVE   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E032
BASIC-Befehl CALL .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DDB7
BASIC-Befehl CLEAR   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C9BA
BASIC-Befehl CLS  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  95CA
BASIC-Befehl DELETE  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B5B7
BASIC-Befehl EDIT .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B64A
BASIC-Befehl END  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C05B
BASIC-Befehl LIST .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B5E8
BASIC-Befehl LLIST   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B5E3
BASIC-Befehl LOAD .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DC34
BASIC-Befehl MERGE   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DC3C
BASIC-Befehl MON  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  F079
BASIC-Befehl NEW  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C8E8
BASIC-Befehl PASS .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DBE3
BASIC-Befehl RUN  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C067
BASIC-Befehl SAVE .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DC21
BASIC-Befehl STOP .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C035
BASIC-Befehl SYSTEM  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DB3A
BASIC-Befehl TROFF   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C595
BASIC-Befehl TRON .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C598
BASIC-Befehl VERIFY  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DC2A
BASIC-File erzeugen (NBFMK)   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B1D2
BASIC-Funktion ABS   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A3BC
BASIC-Funktion ASC   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A33A
BASIC-Funktion CHR$  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A4BF
BASIC-Funktion CNT   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A02D
BASIC-Funktion COR   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A0E4
BASIC-Funktion DATE$ .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A17A
BASIC-Funktion DEG   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A132
BASIC-Funktion DMS$  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A1F2
BASIC-Funktion EOF   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D7E4
BASIC-Funktion EOX   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A102
BASIC-Funktion EOY   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A11A
BASIC-Funktion ERL   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A350
BASIC-Funktion ERR   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A345
~Seite 262
BASIC-Funktion FIX   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A299
BASIC-Funktion FRAC  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A320
BASIC-Funktion HEX$  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A4CA
BASIC-Funktion HYPACS   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9EE6
BASIC-Funktion HYPASN   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9EE2
BASIC-Funktion HYPATN   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9EEA
BASIC-Funktion HYPCOS   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9EDB
BASIC-Funktion HYPSIN   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9ED7
BASIC-Funktion HYPTAN   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9EDF
BASIC-Funktion INKEY$   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9E3B
BASIC-Funktion INPUT$   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D78E
BASIC-Funktion INT   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A312
BASIC-Funktion LEN   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A35B
BASIC-Funktion LOF   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C000
BASIC-Funktion LRA   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A0D4
BASIC-Funktion LRB   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A0DF
BASIC-Funktion MEANX .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A09E
BASIC-Funktion MEANY .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A0A3
BASIC-Funktion MID$  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A446
BASIC-Funktion PEEK  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A362
BASIC-Funktion PI .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A021
BASIC-Funktion POINT .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A368
BASIC-Funktion RND   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9FF4
BASIC-Funktion ROUND .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A3D8
BASIC-Funktion SDX   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A078
BASIC-Funktion SDXN  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A092
BASIC-Funktion SDY   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A07C
BASIC-Funktion SDYN  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A098
BASIC-Funktion SGN   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A32A
BASIC Funktion STR$  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A555
BASIC-Funktion SUMX  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A031
BASIC-Funktion SUMX2 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A039
BASIC-Funktion SUMXY .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A041
BASIC-Funktion SUMY  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A035
BASIC-Funktion SUMY2 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A03D
BASIC-Funktion TIME$ .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A198
BASIC-Funktion VAL   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A3C4
BASIC-Funktionen LEFT$/RIGHT$ .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A48E
BASIC-Modus erlauben .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AB59
BASIC-Operation * .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9C3A
BASIC-Operation + .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9C31
BASIC-Operation - .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9C2E
BASIC-Operation / .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9C64
BASIC-Operation MOD  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9C72
BASIC-Operation NOT  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9C03
BASIC-Operation ^ .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9C6C
BASIC-Operation  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9C42
BASIC-Operationen AND/OR/XOR  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9C0C
BASIC-Programm-Fileheader entfernen .  .  .  .  .  .  .  .  .  .  .  .  .  B395
BASIC-Programm-Fileheader ffnen .  .  .  .  .  .  .  .  .  .  .  .  .  .  B341
BASIC-Programmspeicher zusammenschieben   .  .  .  .  .  .  .  .  .  .  .  B26F
BASIC-Programmspeicher ffnen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B28E
BASIC-Speicher ffnen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  CCFB
BASIC-Zeile abarbeiten  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C0A2
BASIC-Zeile einfgen/lschen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B3B6
BASIC-Zeile suchen (LNSCH) .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B4D1
BASIC-Zeile berlesen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B48B
BCD-Zahl nach binr wandeln (NISIN) .  .  .  .  .  .  .  .  .  .  .  .  .  9A3F
bei EOF File schlieen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D80D
~Seite 263
bei TRON Dateiname ausgeben   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C5FA
bei TRON Zeilennummer ausgeben   .  .  .  .  .  .  .  .  .  .  .  .  .  .  C609
Bereich auflisten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B60C
Betriebsmodus nach $2 holen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  92CD
Betriebsmodus setzen und CLS  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  95BE
Bildschirmparameter zurcksetzen .  .  .  .  .  .  .  .  .  .  .  .  .  .  8FFF
BIN01: FLP-Zahl in Byte-Wert wandeln   .  .  .  .  .  .  .  .  .  .  .  .  98B1
BIN02: FLP-Zahl in Wort-Wert wandeln   .  .  .  .  .  .  .  .  .  .  .  .  98CD
BIN11: FLP-Zahl in Byte-Wert wandeln   .  .  .  .  .  .  .  .  .  .  .  .  98B9
BIN12: FLP-Zahl in Wort-Wert wandeln   .  .  .  .  .  .  .  .  .  .  .  .  98D3
Bindestrich und Zeilennummer ausgeben  .  .  .  .  .  .  .  .  .  .  .  .  AD5B
BINM2: FLP-Zahl in Wort-Wert wandeln   .  .  .  .  .  .  .  .  .  .  .  .  98A6
Binrzahl in $0 nach BCD wandeln .  .  .  .  .  .  .  .  .  .  .  .  .  .  D03A
BKCK: auf OFF, C.BOOT und BRK prfen   .  .  .  .  .  .  .  .  .  .  .  .  9207
Blockanfang auf Kassette abwarten   .  .  .  .  .  .  .  .  .  .  .  .  .  E360
BRK-Routine fr laufendes BASIC-Programm  .  .  .  .  .  .  .  .  .  .  .  ADAB
BRK-Routine fr MEMO-IN & DATA-EBIT .  .  .  .  .  .  .  .  .  .  .  .  .  B788
BRSTR: Vektor fr BRK-Routine setzen   .  .  .  .  .  .  .  .  .  .  .  .  90C3
BUPDN: Verschieben eines Bereichs   .  .  .  .  .  .  .  .  .  .  .  .  .  9048
BXWY: Division WRD1/WRD0   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9C99
Byte in $0 an MT-Port ausgeben   .  .  .  .  .  .  .  .  .  .  .  .  .  .  E25D
Byte in $16 an MT-Port ausgeben  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E25A
Byte von MT-Port abholen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E250
CAL-/BASIC-BRK-Routine  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  909B
CAL-Taste verarbeiten   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  94E2
CALC-Speicher ausgeben  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  929A
CALC-Taste verarbeiten  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ADF3
CNVR: Wort-Wert in FLP-Zahl wandeln .  .  .  .  .  .  .  .  .  .  .  .  .  9AF4
CONT-Taste verarbeiten  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9339
CONT-Taste verarbeiten  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C0DB
CR ausgeben .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AFB8
CRLF ausgeben (OUTCR)   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  95CE
CRLF ausgeben, wenn ENG-Status gesetzt .  .  .  .  .  .  .  .  .  .  .  .  92FD
CRTKY: auf eine Taste warten  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9158
Cursor evtl. in neue Zeile bringen  .  .  .  .  .  .  .  .  .  .  .  .  .  C626
Cursorblinken lschen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  913F
Dateiname in eckigen Klammern ausgeben .  .  .  .  .  .  .  .  .  .  .  .  C633
Dateiname und Zeilennummer ausgeben .  .  .  .  .  .  .  .  .  .  .  .  .  ACFF
Datenblock auf den MT-Port ausgeben .  .  .  .  .  .  .  .  .  .  .  .  .  E266
Datenfile-Fileheader entfernen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  B392
Datenfile-Fileheader ffnen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B33E
Datenfile-Speicher zusammenschieben .  .  .  .  .  .  .  .  .  .  .  .  .  B26C
Datenfile-Speicher ffnen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B292
Datensatznummer feststellen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B517
Datum lesen & in internes Format bringen  .  .  .  .  .  .  .  .  .  .  .  ED52
Default-Kontrast festlegen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8E08
DIP-Schalter des Interfaces abfragen   .  .  .  .  .  .  .  .  .  .  .  .  E50C
Direktmodus erlauben .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AB5F
Direktmodus setzen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ADC6
DISK-Filename in den WORK-Puffer .  .  .  .  .  .  .  .  .  .  .  .  .  .  9039
Displaypuffer-Teile in den Grafikpuffer bringen (DOTMK)  .  .  .  .  .  .  E737
DOTMK: Teile des Displaypuffers in den Grafikpuffer bringen .  .  .  .  .  E737
Drei-Zeilen-Modus und mehr setzen   .  .  .  .  .  .  .  .  .  .  .  .  .  B701
DTBIN: Zeilennummer lesen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9828
eine Null in Zeichenoperation-Stapel anhngen   .  .  .  .  .  .  .  .  .  9D81
Eingabemodus lschen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9142
Eingabemodus setzen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9139
Eingabepuffer lschen (INCLR) .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  901F
Eingabewarteschleife .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  93E6
~Seite 264
Einschaltroutine  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8DDE
Einzel-Argument lesen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9990
Einzelpunkt setzen oder lschen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C463
ENG- & SHIFT-ENG-Taste verarbeiten  .  .  .  .  .  .  .  .  .  .  .  .  .  938A
ENG-Status ggf. lschen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  92ED
ENG-Status lschen, Eingabemodus testen   .  .  .  .  .  .  .  .  .  .  .  92DC
ENLST: Enttokenisieren einer BASIC-Zeile  .  .  .  .  .  .  .  .  .  .  .  B0C5
Enttokenisieren einer BASIC-Zeile (ENLST) .  .  .  .  .  .  .  .  .  .  .  B0C5
ersten Filenamen aus Disk-Directory holen .  .  .  .  .  .  .  .  .  .  .  D969
evtl. Tastenklick erzeugen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AB1A
EXPRW: arithm. Ausdruck aus dem Text lesen   .  .  .  .  .  .  .  .  .  .  9989
FCB mit Kanalnummer 0..15 suchen .  .  .  .  .  .  .  .  .  .  .  .  .  .  D2FB
FCB mit Kanalnummer 1..15 suchen .  .  .  .  .  .  .  .  .  .  .  .  .  .  D302
FDCLO: FDD-Kanal schlieen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D8E6
FDD-Ausgabe-Port-Zeiger setzen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  FF15
FDOPN: FDD-Kanal ffnen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D9A0
FDRDB: Byte vom FDD-Kanal holen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DA3E
FDRDR: Datensatz vom FDD-Kanal holen   .  .  .  .  .  .  .  .  .  .  .  .  DA49
FDWRB: Block auf FDD-Kanal ausgeben .  .  .  .  .  .  .  .  .  .  .  .  .  DA05
FDWRR: Datensatz auf FDD-Kanal ausgeben   .  .  .  .  .  .  .  .  .  .  .  DA10
File-Information in Register bringen   .  .  .  .  .  .  .  .  .  .  .  .  E76B
File auf Disk lschen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DAD6
File auf Disk umbenennen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DAE5
File aus dem Speicher lschen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B373
File beliebigen Filetyps suchen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E80F
File beliebigen Filetyps suchen und IX beibehalten .  .  .  .  .  .  .  .  E3FA
File im Directory suchen (FNSCH) .  .  .  .  .  .  .  .  .  .  .  .  .  .  E818
File im Speicher lschen (KILL)  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E842
File laden/anhngen/vergleichen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DE77
Filename von WORK nach Open-FCB kopieren  .  .  .  .  .  .  .  .  .  .  .  E3D8
Filenamen aus String in WORK bringen   .  .  .  .  .  .  .  .  .  .  .  .  B21C
FLP-Zahl in Byte-Wert wandeln (BIN01)  .  .  .  .  .  .  .  .  .  .  .  .  98B1
FLP-Zahl in Byte-Wert wandeln (BIN11)  .  .  .  .  .  .  .  .  .  .  .  .  98B9
FLP-Zahl in Wort-Wert wandeln (BIN02)  .  .  .  .  .  .  .  .  .  .  .  .  98CD
FLP-Zahl in Wort-Wert wandeln (BIN12)  .  .  .  .  .  .  .  .  .  .  .  .  98D3
FLP-Zahl in Wort-Wert wandeln (BINM2)  .  .  .  .  .  .  .  .  .  .  .  .  98A6
FLP-Zahl in Wort-Wert wandeln .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9B2B
FNSCH: File im Directory suchen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E818
FOR-Stapel leeren .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ADDE
FOR-Stapel zusammenschieben   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A9F4
FOR-Stapel ffnen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A994
gefundene Zeichenkette invertieren  .  .  .  .  .  .  .  .  .  .  .  .  .  B52C
ggf. C.Boot-File starten   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9310
GOSUB-Stapel leeren  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ADD8
GOSU8-Stapel zusammenschieben .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A9F7
GOSUB-Stapel ffnen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A997
Grafikkoordinaten aus Text lesen .  .  .  .  .  .  .  .  .  .  .  .  .  .  A381
Grafikposition berechnen & Inhalt holen   .  .  .  .  .  .  .  .  .  .  .  A3A0
Grafikpunkt setzen bzw. lschen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C529
Haupt-Warteschleife  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9550
Hexzahl lesen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  F185
hohen Ton erzeugen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AB11
I/O-Aktiv-Flag lschen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9238
I/O-Aktivitt beenden   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E347
I/O-Aktivitt evtl. beenden   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  92C4
IN-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9271
INCLR: Eingabepuffer lschen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  901F
INT1 freigeben .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  BE4F
INT1 sperren   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  BE57
~Seite 265
INT1-Routine (fr RS232C)  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  BF9C
Interface inaktivieren  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E358
interne Rundung durchfhren   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9DF0
Interpreter-Befehlsschleife   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C08A
ist kein Filename angegeben? dann Z=1  .  .  .  .  .  .  .  .  .  .  .  .  E7F1
IX auf erstes Zeichen der Displayzeile .  .  .  .  .  .  .  .  .  .  .  .  90EA
IX auf nchsten Wortanfang setzen   .  .  .  .  .  .  .  .  .  .  .  .  .  BDB4
IX Eingabemodus/IZ ENG-Status .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9307
IX und IZ aus Userstack holen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D357
IX und IZ in Userstack ablegen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  D362
IZ Zeiger auf aktiven FCB  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  CC22
IZ Zeiger auf Betriebsmodus   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8F7A
IZ Zeiger auf Direktmodusflag .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E6AF
IZ Zeiger auf Men-Cursor  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E68A
IZ Zeiger auf WORK-Puffer  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E47E
Kanal mit Kanalnummer ($15) schlieen  .  .  .  .  .  .  .  .  .  .  .  .  D3AC
Kanalnummer lesen und FCB suchen .  .  .  .  .  .  .  .  .  .  .  .  .  .  D59E
KEY-Impulsfreigabe   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  914A
KEY-Impulsverbot  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9150
KILL: File im Speicher lschen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  E842
Kontrast erhhen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8E38
Kontrast festlegen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8E13
Kontrast herabsetzen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8E49
Koordinaten lesen und speichern  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C46A
Kurzregister initialisieren   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8F6C
KYCHK: auf OFF/C.Boot/BRK/STOP prfen  .  .  .  .  .  .  .  .  .  .  .  .  91E2
KYIN: Abfrage der Tastatur auf EXE & Y .  .  .  .  .  .  .  .  .  .  .  .  E8B9
LCKEY-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  94F0
Leerfile erzeugen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  EA7C
Lesen einer Zeilennummer   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9863
Lesen einer Zeilennummer>0 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  985A
letzten STAT-X-Wert holen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A026
letzten STAT-Y-Wert holen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A029
LNSCH: BASIC-Zeile suchen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B4D1
MCP: zwei Strings vergleichen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9BD1
MEMO-File suchen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B6C1
MEMO-IN-Taste verarbeiten  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B776
MEMO-Taste verarbeiten  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  BD53
MENU-BRK-Routine  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E601
MENU-Cursorbalken setzen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9083
MENU-Taste verarbeiten  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E567
Men-Eingabemodus vorbereiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E6A3
MON-BANK-Befehl   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  F120
MON-BRK-Routine   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  F0EB
MON-DISPLAY-Befehl   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  F15B
MON-EDIT-Befehl   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  F229
MT-Kanal zur Eingabe ffnen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E1BA
NBFMK: BASIC-File erzeugen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B1D2
NCP: zwei FLP-Zahlen vergleichen .  .  .  .  .  .  .  .  .  .  .  .  .  .  9BB7
NDFMK: sequentielle Datei erzeugen  .  .  .  .  .  .  .  .  .  .  .  .  .  B1C2
NEW-ALL-Taste verarbeiten  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8D38
NISIN: BCD-Zahl nach binr wandeln  .  .  .  .  .  .  .  .  .  .  .  .  .  9A3F
NUM0=3600 setzen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A16F
NUM0=60 setzen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A167
NUM0=NUM1 und NUM1 aus Userstack holen .  .  .  .  .  .  .  .  .  .  .  .  9C25
NUM0=PI setzen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9EA4
NUM1=(SUMX2-SUMX^2)/CNT .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A054
NUM1=(SUMY2-SUMY^2)/CNT .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A062
NUM1=(SUMz2-SUMz^2)/CNT .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A050
~Seite 266
NUM1=ANS-Zahl  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  92A8
NUM1=MEANY*SUMX2-MEANX*SUMXY  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A0B9
NUM1=NUM1^NUM0 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9FA6
NUM1=SUMXY-SUMX*MEANY   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A0AB
NUM2=FRAC(NUM1); NUM1 beibehalten   .  .  .  .  .  .  .  .  .  .  .  .  .  A309
nchsten Filenamen aus Disk-Directory holen  .  .  .  .  .  .  .  .  .  .  D966
offenen FCB mit Kanalnummer ($15) suchen  .  .  .  .  .  .  .  .  .  .  .  D32D
ON-Interruptroutine  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8ED7
Open-FCB-Filename nach WORK kopieren   .  .  .  .  .  .  .  .  .  .  .  .  D33A
OR Error ausgeben .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AC85
OUT-Taste verarbeiten   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9292
OUTAC: Zeichen ausgeben .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  95D7
OUTCR: CRLF ausgeben .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  95CE
Password-Schutz abfragen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B696
Pausierung berprfen und abwarten  .  .  .  .  .  .  .  .  .  .  .  .  .  9127
Plausibilittskontrolle fr Tage .  .  .  .  .  .  .  .  .  .  .  .  .  .  EDC1
PRESET-Menzeile aufbauen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9592
PRESET-Tasten verarbeiten  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  934C
PRLB1: String ausgeben  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9664
PRLB2: String aus dem ROM ausgeben  .  .  .  .  .  .  .  .  .  .  .  .  .  9669
Programm laden .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DE5E
Programm laden/anhngen/vergleichen .  .  .  .  .  .  .  .  .  .  .  .  .  DE60
Programmodus erlauben   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AB66
Programmodus setzen + Menzeilenpuffer leeren   .  .  .  .  .  .  .  .  .  8FF2
PRTRS: Zeichen an RS232C ausgeben   .  .  .  .  .  .  .  .  .  .  .  .  .  BEFF
Prfsumme auf MT-Kanal ausgeben  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E1B1
Register $0..15 als Zeichen ausgeben   .  .  .  .  .  .  .  .  .  .  .  .  DAC4
Register $17-29 retten  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B7BC
RESET-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8DC4
richtigen Modus & Password prfen   .  .  .  .  .  .  .  .  .  .  .  .  .  B690
ROLL DOWN ausgeben   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AFA4
ROLL UP ausgeben  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AFAE
ROM-Routinen-Sprungtabelle .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  FF9E
RS232C-Fehlerverarbeitung  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  BED9
RS232C-Parameter aus Filename lesen .  .  .  .  .  .  .  .  .  .  .  .  .  E483
RSCLO: RS232C-Kanal schlieen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  BE5D
RSGET: Zeichen von RS232C holen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  BE9C
RSOPN: RS232C-Kanal ffnen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  BE11
Rckkehr in den Direktmodus   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  90A3
sequentielle Datei erzeugen (NDFMK) .  .  .  .  .  .  .  .  .  .  .  .  .  B1C2
Shortkey ausgeben .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9429
SIKI: Ausdruck aus dem Text lesen   .  .  .  .  .  .  .  .  .  .  .  .  .  98E5
Spaltennummer auf Null setzen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9614
Speicherobergrenze nach $6/7 bringen   .  .  .  .  .  .  .  .  .  .  .  .  E6C5
Sprung ausfhren  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C1EB
Stapel lschen, Kanle schlieen .  .  .  .  .  .  .  .  .  .  .  .  .  .  C128
Start- & Endadresse des aktuellen Files holen   .  .  .  .  .  .  .  .  .  B720
String aus dem ROM ausgeben (PRLB2) .  .  .  .  .  .  .  .  .  .  .  .  .  9669
String aus Text lesen (fr DATA) .  .  .  .  .  .  .  .  .  .  .  .  .  .  9D8C
String ausgeben (PRLB1) .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9664
String in Anfhrungszeichen lesen   .  .  .  .  .  .  .  .  .  .  .  .  .  9D6F
String-Speicher zusammenschieben .  .  .  .  .  .  .  .  .  .  .  .  .  .  A91E
String-Speicher ffnen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A938
Stringausdruck in Klammern lesen .  .  .  .  .  .  .  .  .  .  .  .  .  .  9A01
Stringausdruck lesen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9CEB
Stringdeskriptor fr WORK erstellen .  .  .  .  .  .  .  .  .  .  .  .  .  A5E7
Suchwort mit Zeileninhalt vergleichen  .  .  .  .  .  .  .  .  .  .  .  .  BC8C
System-FCB schlieen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D456
System-FDD-Kanal schlieen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D8E4
~Seite 267
System-FDD-Kanal ffnen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D987
System-Kanal fr Ausgabe ffnen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E09A
System-Kanal ffnen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E0A3
Tabelle der BASIC-Befehlsadressen   .  .  .  .  .  .  .  .  .  .  .  .  .  AFD0
Tastaturpuffer zurcksetzen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  90CA
Taste erwarten, Sondertasten verarbeiten  .  .  .  .  .  .  .  .  .  .  .  94A0
temporre Stapel lschen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ADB7
Text der Fehlermeldungen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AB79
Texte von Systemmeldungen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AD1E
Textzeiger wieder holen und setzen  .  .  .  .  .  .  .  .  .  .  .  .  .  A3D3
tiefen Ton erzeugen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AAE3
Tokenisieren einer Zeile   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9686
Tokentexttabelle  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  88ED
Ton erzeugen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  AAE9
Uhrzeit lesen & in internes Format bringen   .  .  .  .  .  .  .  .  .  .  EDE8
Userstackzeiger zurcksetzen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DDDD
Variable im Abfrage-Modus eingeben  .  .  .  .  .  .  .  .  .  .  .  .  .  AED2
Variable zuweisen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A790
Variablen-Bereich zusammenschieben  .  .  .  .  .  .  .  .  .  .  .  .  .  A9FB
Variablen-Bereich ffnen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A99B
Variablendaten-Bereich ffnen .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A990
Variablendeskriptor holen und ablegen  .  .  .  .  .  .  .  .  .  .  .  .  A61A
Variablendeskriptor lesen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A625
Variablenname lesen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A652
Vektor fr BRK-Routine setzen (BRSTR)  .  .  .  .  .  .  .  .  .  .  .  .  90C3
Verschieben eines Bereichs (BUPDN)  .  .  .  .  .  .  .  .  .  .  .  .  .  9048
Verschiedene Zahlen holen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9EA8
Vier-Zeilen-Modus setzen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9575
Vier-Zeilen-Modus setzen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B6FB
vorherigen Filenamen aus Disk-Directory holen   .  .  .  .  .  .  .  .  .  D962
Vorzeichenwechsel: NUM1=-NUM1 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9BF9
WORK-Puffer lschen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  E801
Wort-Wert in FLP-Zahl wandeln (CNVR)   .  .  .  .  .  .  .  .  .  .  .  .  9AF4
Zahl mit Vorzeichen aus Text lesen (fr DATA)   .  .  .  .  .  .  .  .  .  9DAC
Zeichen an RS232C ausgeben (PRTRS)  .  .  .  .  .  .  .  .  .  .  .  .  .  BEFF
Zeichen auf den Bildschirm bringen  .  .  .  .  .  .  .  .  .  .  .  .  .  9415
Zeichen ausgeben (OUTAC)   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  95D7
Zeichen bis zum Befehlsende berlesen  .  .  .  .  .  .  .  .  .  .  .  .  C8C4
Zeichen bis zum Zeilenende berlesen   .  .  .  .  .  .  .  .  .  .  .  .  B45E
Zeichenoperationsstapel leeren   .  .  .  .  .  .  .  .  .  .  .  .  .  .  ADCC
Zeichensatztabelle   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8000
Zeiger auf ersten FCB setzen  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  D31C
Zeiger auf gewnschten Datensatz setzen   .  .  .  .  .  .  .  .  .  .  .  B4E6
Zeiger auf nchsten Fileheader setzen  .  .  .  .  .  .  .  .  .  .  .  .  E6CC
Zeiger in nchste Zeile setzen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  B476
Zeiger in vorherige Zeile setzen .  .  .  .  .  .  .  .  .  .  .  .  .  .  B495
Zeile in Direktmodus verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  AA24
Zeile in Datenfile austauschen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  B42C
Zeile in den CALC-Speicher kopieren .  .  .  .  .  .  .  .  .  .  .  .  .  924F
Zeilenbereich aus dem Text lesen .  .  .  .  .  .  .  .  .  .  .  .  .  .  AB27
Zeilenbereich lschen   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B5BF
Zeilenlnge feststellen, Eingabepuffer lschen  .  .  .  .  .  .  .  .  .  9019
Zeilennummer in eckigen Klammern ausgeben .  .  .  .  .  .  .  .  .  .  .  C63E
Zeilennummer lesen (DTBIN) .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9828
Zeilennummer oder Filename lesen und suchen  .  .  .  .  .  .  .  .  .  .  C1B7
zwei FLP-Zahlen vergleichen (NCP)   .  .  .  .  .  .  .  .  .  .  .  .  .  9BB7
zwei Strings vergleichen (MCP)   .  .  .  .  .  .  .  .  .  .  .  .  .  .  9BD1
[asmbl ]-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  F4FF
[basic ]-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  EA5E
~Seite 268
[c.boot]-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ECB6
[data  ]-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  EA58
[delete]-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  BB92
[disk  ]-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  EE39
[edit  ]-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  EA04
[kill  ]-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  EA91
[llist ]-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  EAFE
[load  ]-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  EB2D
[name  ]-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  EAD1
[next  ]-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  BC85
[preset]-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  EA26
[save  ]-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  EB5C
[search]-Taste verarbeiten .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  BB8E

