80-Bus Journal |
April 1983 · Ausgabe 4 |
Da ich (vielleicht wie viele Nascom Benutzer) eine Menge von Unterprogrammen für das BASIC hatte, entschloß ich mich, ein Toolkit zu schreiben. Nach einer gründlichen Studie des BASIC, fielen mir nur drei mögliche Methoden ein:
1. Man schreibt einen neuen Interpreter, der genau das gleiche wie das BASIC macht.
2. Man benutzt die Fähigkeit von Nassys, eine eigene INPUT Routine hinzuzufügen. Dies würde allerdings bedeuten, daß die neuen Statements nur außerhalb von BASIC Programmen benützt werden könnten.
3. Man führt einige Änderungen im BASIC durch, sodaß das BASIC „denkt“, es habe mehr Statements als ursprünglich.
Ich habe mich für die dritte Möglichkeit entschlossen, zumal ich das ToolKIT für das Tape-BASIC schreiben wollte, bei dem eine Änderung ja leicht durchgeführt werden kann. Nach einigen Versuchen hatte ich schon Erfolg. Das abgedruckte Assemblerlisting ist die Version, die bei mir nun schon seit über einem Jahr fehlerfrei arbeitet.
1. Sie tippen das Toolkit ein.
2. Jetzt muß die Tabelle, in der die Anfangsadressen der Statements stehen, verschoben werden. Dies macht man mit dem Copy-Befehl
I 124F 0F00 4A
3. BASIC muß wissen, wo die neue Tabelle steht; also ändern Sie ab 183A die Anfangsadresse (0F00).
4. Tippen Sie jetzt ab 0F4A die Startadressen der Statements des Toolkit ein (die Startadresse von ELSE ist nicht 880F sondern 1A83). Ab 0F4A steht also:
83 1A 1A 88 2F 88 55 88 56 88 D0 88 D1 88 E7 88
5. Geben Sie ab 124E im BASIC die neuen Statements ein und schließen Sie mit 80 ab. Ab 12E4 steht nun:
6. Führen Sie die Änderungen, die im Listing stehen durch.
Nun muß das BASIC genau so gut funktionieren wie zuvor. Es hat aber zusätzlich folgende Statements bekommen:
Arbeitet genau so wie in den meisten Basics, die eine IF..THEN..ELSE Mögligkeit besitzen .Setzen Sie immer ein :-Zeichen für das ELSE.
Schaltet einen Printer an. Die Startadresse der Printerroutine müssen sie ab 0F80 eingeben. (Falls ihre Printerroutine bei 0C80 startet, muß ab OF80 stehen: C3 80 0C).
Schaltet den Printer wieder ab.
Unterdrückt die CRLF zeichen; ist nach einem INPUT Befehl wichtig.
Jetzt arbeiten die CRLF-zeichen wieder.
Nach diesem Befehl werden die Zeilennummern im BASIC Programm abgedruckt, und es wird eine bestimmte Zeit gewartet. Diese Zeit ist mit x zu bestimmen, wenn Sie es weglassen, wird die alte Zeitdauer angenommen.
Die Zeilenzahlen werden nicht mehr abgedruckt.
Das Program wird wiederhergestellt (recover) nach einem vesehentlich eingestippten NEW oder CLOAD.
Seite 3 von 28 |
---|