muß, da sonst bei der Entkellerung bei Unterprogrammrückkehr
ein falscher Wert in den Befehlszähler kommt und Programm
undefiniert und nicht ab der Aufrufstelle weiterläuft.
Eine Verschachtelung mehrerer Unterprogramme (ein UP ruft ein
weiteres UP auf) ist möglich, die Anzahle der Schachtelungen
ist theoretisch unbegrenzt.
4.3.12 Ein- und Ausgabebefehle
Wie bereits erwähnt, sind beim U 880 maximal 256 Ein- und Aus-
gabekanäle (Peripherieadressen) adressierbar. Zur Adressierung
bei
Ein-
und
Adreßbusses verwendet. Im Befehl selbst wird die Geräteadresse
(Kanaladresse) entweder direkt ausgegeben oder indirekt über
das C-Register adressiert. Bei direkter Kanaladresse erfolgt
der
Datentransport
Peripherie, bei indirekter Kanaladresse (C-Register muß vorher
mit der Kanaladresse geladen werden) kann der Datentransport
zwischen einem der Register A, B, C, D, E, H, L, und der
Peripherie erfolgen.
IN n
;Eingabe des Kanals n in das A-Register, A:=(n)
IN r
;Eingabe des Kanals, dessen Adresse im C-Register
enthalten ist, nach dem Register 'r'.
OUT n
;Ausgabe des A-Registers nach Kanal 'n', (n):=A
OUT r
;Ausgabe des Registers 'r' nach dem Kanal, dessen
Adresse im C-Register enthalten ist.
Register 'r' = A, B, C, D, E, H, L
Einen
Sonderfall
Inhalt des von Register C adressierten Kanals wird gelesen und
danach entsprechend die Flags gesetzt.
Beispiel:
Das Ausgaberegister mit der Adresse 10H soll defi-
niert mit 00, 01 und 02 geladen werden.
Befehls-
Maschinen-
zähler
kode
--------------------------------------------------------------
1000
0E 10
1003
ED 79
1005
3C
1006
ED 79
1008
3C
1009
ED 79
.
.
1178
76
Ausgaben
wird
immer
zwischen
stellt
der
Quellkode
LD C,10H
;des Registers1002 A8 XOR A ;A:=00H
OUT A
INC A
OUT A
INC A
OUT A
.
.
END: HALT
der
niederwertige
dem
A-Register
Eingabebefehl
Kommentar
;C:=10H Kanaladresse
;(C):=00H
;A:=A+1 = 01H
;(C):=01H
;A:=A+1 = 02H
;(C):=02H
57
Teil
des
und
der
'INF'
dar.
Der