Nascom Journal

  

September 1981 · Ausgabe 9

Viele Leser werden sich gefragt haben, was die Zahl 1905 zu sagen hat, die oben immer zwischen den Zeilen steht.

4096
-CLEAR
1905
-TEXT

Da war sie schon wieder. Des Rätsels Lösung: Der Interpreter gibt immer den obersten aktuellen Stack-Wert aus, wenn er einen Befehl ausgeführt hat und dann „−“ als Prompt-Zeichen. Bei einer Rechenoperation befindet sich auf dem Stack in der Regel das Ergebnis:

1905
-123 456 +
579
-579 456 –
123
-12 13 *
156
– 14 /MOD
2
-POP
11
-TEXT

Seit wann ist denn 156/14 gleich 2? … Das war der Rest, erst mit POP kommt das Ergebnis.

11
-X 8A X 9B AND
138
-X C0C POKEW X 66 NAS-SYS CR
008A
11
-TEXT

Das sieht aber kompliziert aus! Die erste Zeile gibt das Ergebnis der AND-Funktion (bitweise) auf den Stack. Der Interpreter zeigt den Wert an, aber natürlich dezimal (138). Die nächste Zeile wandelt diesen Wert dann in die entsprechen de Hex-Zahl um. Man kann diese Funktion natürlich auch compilieren, zur Abwechslung mal in dezimaler Schreibweise:

11
– : DEZHEX  3084 POKEW
             102 NAS-SYS CD ;
11
-1023 DEZHEX
03FF
11
-TEXT

T2/​T4-Benutzer müssen hier aufpassen! Wie schon der Name sagt, ist die Funktion NAS-SYS die Schnittstelle zum Betriebssystem NAS-SYS 1. Dies ist übrigens der einzige Befehl des Interpreters, der für T2/​T4 völlig neu geschrieben werden muß

Die folgenden Funktionen sind wieder allgemein gültig. Sie erlauben die Definition von Konstanten und Variablen:

- : CONSTANT     GETWORD ENTER
                 CONS    CMPLW
                         CMPLW ;
11
- : VARIABLE     GETWORD ENTER
                 VARBL   CMPLW
                         CMPLW ;


11
-X C29 CONSTANT CURSOR
11
-CURSOR
3113
-DEZHEX
0C29
11
-X C78 CONSTANT UOUT
11
-X D98 VARIABLE TREIBER
11
-TREIBER
5979
-TREIBER PEEKW DEZHEX
0D98
5979
-X C80 TREIBER POKEW
5979
-TREIBER PEEKW UOUT POKE
5979
-CLEAR
19o5
-TEXT

Da ist sie wieder, die 19o5 aber fällt Ihnen nichts auf? Die Schreibweise der Null hat sich geändert, da ich mit der letzten Programmzeile oben ein anderes Treiberprogramm für die Schreibmaschine in den Workspace von NAS-SYS eingetragen habe. Das werde ich aber gleich wieder rückgängig machen und zum Abschluß noch ein Beispiel für die rekursive Definition einer Funktion zeigen:

19o5
-X D98 X C78 POKEW
1905
– : FAC       DUP EQZ IF
                        POP 1
                      ELSE
                        DUP DEC FAC *
                      THEN ;
1905
-6 FAC
720
-X 5B NAS-SYS
NAS-SYS 1

Die Funktion X (eigentlich das Zeichen für das brit. Pfund, aber das gibt’s auf meiner Schreibmaschine nicht) erlaubt die Eingabe von Hex-Zahle auf den Stack. Einige Beispiele:

1905
-X FFFF
65535
-X 1000
4096
-TEXT

NASCOMPL

NASCOMPL: 
Mein Beitrag muß diesmal 
wegen Platmangels ausfallen. 
Das ist nicht so schlimm. 
Aber daß mich 
ein Leser ''albern'' 
 findet, bricht 
mir fast die CPU!

Seite 13 von 28