Sprungadresse im XL-OS


Sprungadresse im XL-OS

von Bernd » Fr 19. Mär 2004, 20:09
Hallo,

ich schreibe gerade ein Speicherverschiebungsprogramm für ein Mega Cartridge. Dafür muß das Modul ab und wieder eingeschaltet werden. Ohne gesperrten IRQ und DMA ist dies nicht möglich. Nach dem Ende des Programmes wird alles wieder freigegeben. Dabei geschieht etwas merkwürdiges. Mein Programm wird nicht weiterbearbeitet und ich finde mich im XL-OS an der Adresse $C0DF mit dem Befehl Jmp$C0DF wieder. Der Rechner läuft in einer Endlosschleife. Im 400/800er Modus läuft alles Störungsfrei.
Wer kann mir weiterhelfen und den Grund für diese Reaktion erklären.

Bernd

Sprungadresse im XL-OS

von Schmutzpuppe » Fr 19. Mär 2004, 22:19
vorredner hat geschrieben:Hallo,

ich schreibe gerade ein Speicherverschiebungsprogramm für ein Mega Cartridge. Dafür muß das Modul ab und wieder eingeschaltet werden. Ohne gesperrten IRQ und DMA ist dies nicht möglich. Nach dem Ende des Programmes wird alles wieder freigegeben. Dabei geschieht etwas merkwürdiges. Mein Programm wird nicht weiterbearbeitet und ich finde mich im XL-OS an der Adresse $C0DF mit dem Befehl Jmp$C0DF wieder. Der Rechner läuft in einer Endlosschleife. Im 400/800er Modus läuft alles Störungsfrei.
Wer kann mir weiterhelfen und den Grund für diese Reaktion erklären.

Bernd

Wenn Du mir einen Blick in den Source gestattest dann kann ich vielleicht helfen.

Sprungadresse im XL-OS

von Bernd » Sa 20. Mär 2004, 15:36
Danke für Dein Angebot, schicke mir bitte noch Deine Emailadresse.

Bernd

Sprungadresse im XL-OS

von Schmutzpuppe » Sa 20. Mär 2004, 19:40
[Editiert am 22/3/2004 von Schmutzpuppe]

Sprungadresse im XL-OS

von Bernd » So 21. Mär 2004, 00:30
Hallo Matthias (Schmutzpuppe),

ich habe meinen Fehler im XL-Modus gefunden. Der Inhalt von $d013 muß in $3fa kopiert werden. Die Adresse $d013 gibt an ob ein Modul eingesteckt wurde, $3fa ist nur das Schattenregister. Jetzt kommt etwas besonderes vom Betriebssystem - ist der Inhalt der beiden Speicherstellen unterschiedlich wird nach $C0DF in die Endlosschleife gesprungen. Nach langen suchen im Bios bin ich dahinter gekommen. Danke nochmals für das Angebot für Deine Hilfe. Bei erneuten Problemen schreibe ich Dich direkt an.

Bernd