Assembler Code: Rechner hängt sich im IRQ auf.... ERLEDIGT


Assembler Code: Rechner hängt sich im IRQ auf.... ERLEDIGT

von Bernd » So 30. Mai 2010, 00:09
Hallo zusammen,
ich habe beim Assembler-Proggen ein seltsames Verhalten festgestellt. Starte ich mein Programm, so hängt sich der Rechner sporadisch auf.....
Ursache ist ein Display List Interupt, der im Menü etwas Farbe einspielt. Schalte ich diese nicht ein, läuft alles.

So sieht das Programm aus....

______________________

IRQ PHA
----TYA
----PHA
----LDY Merker
----LDA Farbe,Y -> Farben für die einzelnen Abschnitte
----INY
----CPY #7 -> 7te mal die DLI aufgerufen?
----BCC NULL
----LDY #0 -> Dann den Merker auf "0" setzen....
NULL STY Merker
----STA $D018
----STA $D40A
----PLA
----TAY
----PLA
----RTI
_________________________

Sporadisch kommt es vor dass die Farben durcheinander laufen....Also noch ein Vertical Blank Interrupt
der im Rücklauf den Merker auf "0" setzt.

VBV LDA#0
------STA Merker - Merker wird auf 0 im Bildrücklauf gesetzt...
------JMP $E45F

________________________________

Das Hauptprogramm
LDY # <VBV
LDX # >VBV
LDA #6
JSR $E45C -> Setzt den VBI
POKE $D40E,$0
SEI
POKE $0200, <IRQ
POKE $0201, >IRQ
POKE $0230, <DLIST
POKE $0231, >DLIST
CLI
POKE $D40E,$C0 -> Ende, da hängt es sich auf, auf dem Bildschirm sehe ich nur noch
farbige Streifen...

Poke ist ein Macro!!! Nix anderes als LDA # <IRQ und STA $200. Hat vielleicht einer eine Idee????
Muss ich zwischen der DLIST Änderung und dem Aktivieren eine Zeitschleife setzen??
Die Display List linklusive der Daten sind im gültigen Range Bereich.

Bernd

Re: Assembler Code: Rechner hängt sich im IRQ auf....

von Bernd » So 30. Mai 2010, 13:01
Hallöchen,
der Fehler ist gefunden. Ich hatte vergessen Top Ram und End of Memory neu zu setzen.
Das OS reagiert mit schönen buntern Bildern wenn die DLI nicht verändert werden kann.....

Bernd

Re: Assembler Code: Rechner hängt sich im IRQ auf....

von mega-hz » So 30. Mai 2010, 23:15
poste mal Deine Display List!
vielleicht ist da ein Fehler.

Re: Assembler Code: Rechner hängt sich im IRQ auf.... ERLEDIGT

von Bernd » Mo 31. Mai 2010, 00:22
Hallo Wolfram,
das Problem ist gefunden. Wenn die DLI nicht stimmt, gibt es eine falsche Bildschirmdarstellung,
dabei würde sich der Rechner nicht aufhängen. Ohne Farbe lief ja alles.

Bernd

Re: Assembler Code: Rechner hängt sich im IRQ auf.... ERLEDIGT

von HiassofT » Mo 31. Mai 2010, 13:17
Hallo Bernd, noch ein kleiner Tip:

SEI und CLI brauchst Du nicht, der DLI ist ja ein NMI und wird per $D40E ein/ausgeschaltet.

so long,

Hias

Re: Assembler Code: Rechner hängt sich im IRQ auf.... ERLEDIGT

von Bernd » Fr 4. Jun 2010, 07:45
Hallo Hias,
Danke, die IRQ-Sperre habe ich entfernt.

Viele Grüße,
Bernd