von Ulf Petersen Weiter geht's mit den Speicheradressen ... 128,128 $80,$81 LOMEM Pointer auf das Low-Memory des BASICS. Die ersten 256 Bytes, auf die gezeigt wird, beinhalten den TOKEN OUTPUT BUFFER, der vom BASIC verwendet wird um BASIC Statements in numerische Formen umzuwandeln. Diese Speicherstelle wird von MEMLO (743,744) gespeist bei der ausführung des NEW-Befehls. Wollen Sie also MELO zur Platzreservierung verwenden, so vergessen Sie bitte auf keinen Fall auch dieses Register zu ändern. Wenn ein File mit SAVE in BASIC gespeichert wird, werden zwei Daten- blöcke geschrieben. Der erste Block besteht aus den sieben Pointern von LOMEM bis STARP (128 bis 141). Der Wert von LOMEM wird von jedem dieser Pointer subtrahiert., so daß die ersten beiden Bytes immer 0 sind. Der zweite Block enthält in dieser Reihenfolge: Namen der Variablen, Werte der Variablen und das in Token umgesetzte Programm. 130,131 $82,$83 VNTP Anfangsadresse der Variablen-Namen- Tabelle. Die Variablen werden in der Reihenfolge ihrer Eingabe im ATASCII- Format abgespeichert. Bis zu 128 Variablen sind erlaubt. Diese sind als Tokens im Programm gespeichert, num- meriert von 128 - 255. 132,133 $84,$85 VNTD Pointer auf die Endadresse der Variablennamen-Tabelle plus 1. Wenn weniger als 128 Variablen verwendet werden, zeigt es auf ein DUMMY-Byte. Wenn 128 Variablen vorhanden sind, zeigt dieses auf das letzte Byte der letzten Variablennamen plus 1. 134,135 $86,$87 VVTP Adresse für die Werte-Tabelle der Variablen. Acht Bytes werden verwendet für jede Variable in einer Tabelle ... Byte SKALAR: 1 = 00 2 = VAR# 3-8= Sechs Bytes BCD-Konstante ARRAY : DIMensioniert ... 1 = 65 2 = VAR# 3+4= OFFSET von STARP 5+6= erstes DIM + 1 7+8= zweites DIM + 1 unDIMensioniert 1 = 64 2 = leer 3-8= siehe DIMensioniert STRING: DIMensioniert 1 = 129 2 = VAR# 3+4= OFFSET von STARP 5+6= Länge 7+8= DIM unDIMensioniert 1 = 128 2 = leer 3-8= siehe DIMensioniert 136,137 $88,$89 STMTAB Die Adresse der Statement-Tabelle, welches den Beginn des BASIC-Programmes darstellt, enthält alle Zeilen des Codes mit Zeilennummer oder ohne in Token-Form. Eingaben ohne Zeilennummer werden mit dem Standardwert 32768 behaftet. Die ersten beiden Bytes einer Zeile in Token-Form sind die Zeilen- nummer und das nächste ist ein DUMMY- Byte, das reserviert ist für den Byte- Zähler (oder Offset) vom Anfang dieser Zeile bis zum Anfang der nächsten Zeile. Darauf folgt ein weiteres Zähler-Byte für die Differenz des Statements- Anfangs der ersten Zeile bis zur nächsten Zeile. 138,139 $8A,$8B STMCUR Aktueller BASIC Statement Pointer, um die Tokens der aktuellen Zeile in die Tabelle einzuordnen. Hier ist übrigens auch die ideale Möglichkeit für einen Kopierschutz gegeben, indem man diesen Pointer völlig durcheinanderbringt. Das Pro- gramm kann nur noch dann mit RUN ge- startet werden. Vorsicht ! Ihr Programm sollte vorher abgespeichert worden sein. 140,141 $8C,$8D STARP Die Adresse des Strings- und Array- Tables und ein Pointer auf das Ende Ihres BASIC-Programmes. Das war's dann wieder mal für diesen Monat. Nächstes Mal nehmen wir dann gleich einen ganzen Stapel auf's Korn, indem wir die Register 142 - 255 vorstellen und damit die PAGE 0 erst einmal abhaken. Bis dann !!!