007
01.10.2018, 23:21 Uhr
EPS
|
Ich muß (leider) nochmal darauf zurück kommen. Ich habe jetzt eine ganze Weile experimentiert und komme auf merkwürdige Ergebnisse. Folgendes Testprogramm habe ich der Einfachheit halber mal geschrieben:
CURSO: EQU $B7A0 ;IRM Arbeitszelle: CURSO
; CALL $F003 ;PV I ; DB $23 ;UP: OSTR ; DB $1B ;ESC ; DB "3" ;Anzeige Bild 0, Zugriff Bild 1 ; DB $00
LD A, (IX+1) AND $FA OR $04 LD (IX+1), A OUT ($84), A
LD DE, $1D19 ;Start der Ausgabe in Zeile 29, Spalte 25 LD (CURSO), DE
LD A, "E" CALL $F003 DB 00
CALL $F003 ;PV I DB $23 ;UP: OSTR DB $1B ;ESC DB "2" ;Anzeige Bild 1, Zugriff Bild 1 DB $00
Benutze ich die ESC Code Variante die oben in REM ausgeklammert steht funktioniert die Ausgabe des Buchstaben "E" auf Bild 1 an einer gewünschten Position, kann ich im RAM überprüfen, das "E" ist dann auf Adresse $B1A1. Starte ich es so wie es hier steht, also über die OUT (84h) Variante, funktioniert es nicht. Genauer gesagt wird der Buchstabe "E" im Bild 0 ausgegeben und landet auf Adresse $B6A1!
Kann ich mir nicht erklären ... bin ich zu blöde, übersehe ich da etwas oder ist das am Ende ein "Fehler" im Emulator (KCEMU v0.5.1 von Torsten Paul) das der womöglich das OUT 84h nicht kapiert?
Wäre für Hilfe sehr dankbar, ich knabber da jetzt schon 2 Tage dran und natürlich würde ich das gerne am Live System testen, aber ich bekomme meinen KC erst Ende Oktober wieder, hab derzeit nur den Emulator. Dieser Beitrag wurde am 01.10.2018 um 23:22 Uhr von EPS editiert. |