000
14.05.2022, 13:30 Uhr
Bert
|
Das Thema gab es schon mal, aber man (bzw. ich) kann dort nicht mehr antworten: https://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=1765
Zitat: | beim Ansteuern des Tor 2 zur Datenausgabe (siehe Doku Teil 2, Seite 8 von Volker Pohlers) reicht es nicht aus, das Betriebsarten-Register P2M (%F6) mit "0" zu belegen. Ferner muß Bit D0 im Register P3M (%F7) auf "1" gesetzt werden. Hier ein Beispiel in BASIC: ... 20 LET A=GETR(%F7) REM Lesen Registerinhalt %F7
|
In der letzten zitierten Zeile liegt der Hase im Pfeffer begraben. Das Register P3M (%F7) ist ein 'Schreibregister'! Hier ist m.E. die Übersetzung im Kieser/Bankel unscharf. Schreibregister meint 'write only'. Dort ist im Prozessor keine Logik für das Rücklesen des Registers verbaut. D.h. der Wert, der von dieser Adresse gelesen wird, kann alles mögliche sein, entspricht aber nicht dem eigentlichen Registerinhalt. Nachfolgende Bitoperationen und anschließendes Zurückschreiben führen dann zu unvorhorsehbaren Systemzuständen.
Neben dem P3M-Register sind im UB88xx auch die Register P01M, P2M, PRE0, PRE1 und IPR betroffen. Wer deren Inhalt braucht, muß sich den Wert an anderer Stelle zwischenspeichern.
Es hat 'ne Weile gedauert, bis ich die Ursache für meine Fehlfunktion gefunden hatte...
Grüße, Bert |