Nascom Journal |
6/80 7/80 |
Das folgende Programm ändert die Zeilennummerierung eines BASIC-Programms. Es ist voll verschiebbar, kann also irgendwo im Speicher stehen.
Wichtig ist nur, daß man nach jedem Kaltstart die Anfangsadresse in USRLOC einträgt, beim ROM-BASIC in 1004 H, 1005 H.
Das Programm wird mit Hilfe der USR(x) -Funktion aufgerufen, wobei als Argument x die neue erste Zeilennummer angegeben wird.
Nun kann man nicht einfach „USR(x)“ als Befehl eingeben – der Erfolg wäre ein SN-Error. Die folgenden Möglichkeiten sind erlaubt:
PRINT USR(X) A = USR(X)
Die neuen Zeilennummern werden – ausgehend von der ersten – jeweils um 10 erhöht. Die Schrittweite 10 ist in Zelle 70 festgelegt.
Was das Programm nicht kann_ es prüft nicht, ob die Zeilennummern noch erlaubt sind (d.h. kleiner als 65529), und es ändert auch nicht die Nummern nach GOTO, GOSUB.
Falls sich jemand an diese Aufgabe setzen will, hier ein par Erklärungen zum Aufbau des Zellenbuffers:
Der Zeilenbuffer beginnt beim ROM-BASIC auf 10FA. Die einzelnen Zeilen sind (nach Zeilen-NR. sortiert) im folgenden Format abgelegt:
2 byte | Adresse der nächsten Zeile |
2 byte | Zeilen-Nr. (HEX) |
n byte | Zeileninhalt: Ziffern,Space in ASCII;alles andere als „Token“ |
Uwe Wurditsch
Seite 16 von 52 |
---|