Laden des Assemblerlistings
Wer über genügend Speicherplatz verfügt, kann den ganzen Qelltext an
einem Stück laden. Wer wie ich weniger Speicherplatz hat, muß zunächst
Block 0 laden und dann die anderen Blöcke einzeln eingeben,
assemblieren und wieder löschen. Block 0 muß dabei aber immer im
Speicher bleiben, sonst funktionierts nicht! Jedem Interessenten eine
Quelltextcassette zu schicken ist mir nicht möglich, da die Lade- bzw.
Aufnahmezeit ca. 25 Minuten beträgt. Wir könnten aber einen
„Böhmschen Rundlauf“ organisieren. Wer mir innerhalb von 10
Tagen nach Erscheinen des Heftes Nachricht gibt, dessen Anschrift
wird in eine Liste eingetragen. Der erste auf der Liste erhält
dann von mir eine Cassette und die Liste, kopiert den Quelltext und
schickt die Cassette an den nächsten weiter. Das müßte einmal im
Nascom-1-Format und einmal im Nascom-2-Format geschehen, dann könnten
wir jeden im Laufe der Zeit zufriedenstellen. Wer aber in der
Zwischenzeit schon mit dem Interpreter arbeiten möchte, kann ja schon
einmal den Hex-Dump eintippen – 2 K sind ja noch zu verkraften!
Verzeichnis der Befehle im „Dictionary“
Die Bezeichnungen
stimmen nicht vollständig mit den Namen im Qelltext überein, da
der Assembler nur 6 Zeichen in einer Definition verkraftet. Das
Assemblerlisting enthält ab Zeile 6155 das Interpreter- und
Compiler-Dictionary; dort sind sowohl die Assembler-Marken als
auch die Befehlsnamen des Dictionarys verzeichnet. Im Unterschied
zum Standard- FORTH wird der ganze Namen geprüft, nicht nur die
ersten 3 oder 4 Buchstaben. Es sind beliebig lange Namen möglich.
OR | :Bitweise ODER-Funktion der niederwertigen Bytes von T und T−1 nach T |
AND | :ebenso UND-Funktion |
XOR | :ebenso Exclusiv-ODER |
EQ | :Vergleicht T und T−1; 0 nach T, falls verschieden, sonst −1 |
EQZ | :0 nach T, falls T ungleich 0, sonst −1 nach T |
> | :wenn T > T−1, −1 nach T, sonst 0 nach T |
Speicherzugriff |
PEEKW | :Hole 16-Bit-Wort von der Adresse (T) nach T |
PEEKB | :ebenso, aber 8-Bit-Wort |
POKEW | :schreibt T−1 in den Speicher nach (T) |
POKEB | :ebenso, aber 8-Bit-Wort |
Monitor-Schnittstelle |
NAS-SYS | :niederwertiges Byte von T wird nach ARGC und ARGX geladen, ARG1 bis ARG3 in die Register HL, DE und BC, dann wird die RST-Funktion SCALJ (= DF 5C) aufgerufen. Nur für NAS-SYS zu gebrauchen! |
Eingabe, Ausgabe, Suchen, Vergleichen |
FIRST | :Holt das nächste Byte eines Strings auf den Stack; vorher: T Zeiger auf den String; nachher: T Stringzeichen T−1 Zeiger auf nächstes Byte |
READLINE | :Liest eine Zeile von der Tastatur in den Textpuffer mit Echo auf dem Bildschirm; Ende mit Newline |
GETWORD | :Sucht das nächste Wort einer Zeile und ruft READLINE auf, wenn keins gefunden wird. Nachher enthält T den Zeiger auf das Wort. |
SCAN | :Sucht das nächste Wort im Zeilenpuffer und schiebt es nach vorn usw..... nachher: T = 0, falls kein Wort gefunden wurde, oder T = −1, falls doch und dann ein Zeiger auf das Wort in T−1. (Wer mehr wissen will, muß das Assemblerlisting studieren. |
PRINTS | :Druckt den String, auf den T zeigt. Das erste Byte des Strings muß die Anzahl der Zeichen enthalten. |
CONAXB | :Dezimal-Binärumwandlung: vorher: T Zeiger auf D-String nachher: T = −1, falls Umwandlung erfolgreich, mit Wert in T−1 sonst T = 0 und Zeiger auf String in T−1 |
CONBXA | :Binär-Dezimalumwandlung: |