Huhu,
ich hänge leider noch immer an diesem Problem, dass ich kein Charset vernünftig angezeigt bekomme. Irgendwas scheine ich zu übersehen, denn ich sehe zwar ein paar Zeichen, die sind aber alle falsch. Wie macht man's denn nun richtig?
Das ist jetzt erstmal der Teil, von dem ich denke, dass er funzt. Die Speicherbank ist Nr.3, also c000
Zu 99% habe ich das von Jörn:
Bitte melde dich an, um diesen Link zu sehen.
lda #%00000011 //Datenrichtung für Bit 0 & 1 des Port-A
sta $dd02 //zum Schreiben freigeben
lda $dd00 // Bank 3 aktivieren
and #%11111100
ora #%00000000
sta $dd00
// Bildschirm = c000
lda $d018 //VIC-II Register 24 in den Akku holen
and #%00001111 //Über Bits 7-4
ora #%00000000 //den Beginn des
sta $d018 //Bildschirmspeichers festlegen
// Character = d000
lda $d018 //VIC-II Register 24 in den Akku holen
and #%11110001 //Über Bits 3-1
ora #%00000100 //den Beginn des
sta $d018 //Zeichensatzes festlegen
sei //IRQs sperren
// Char ROM kopieren
lda $01 //ROM-'Konfig' in den Akku
pha //auf dem Stack merken
and #%11111011 //BIT-2 (E/A-Bereich) ausblenden
sta $01 //und zurückschreiben
jsr copyCharROM //Zeichensatz kopieren
pla //ROM-Einstellung vom Stack holen
sta $01 //wiederherstellen
cli //Interrupts freigeben
rts
Alles anzeigen
Ohne copyCharROM sieht es so aus:
Bitte melde dich an, um diesen Anhang zu sehen.
Das dürfte an sich ja richtig sein, auch wenn ich irgendetwas tun muss, was ich noch nicht herausgefunden habe. Muss ich da das Color-RAM noch irgendwie ordnen?
Viel spannender ist auch die Frage:
Funktionieren die Kernal-Funktionen noch richtig? Ich benutze fast immer $FFD2 zur Zeichenausgabe und $e544 zum Löschen des Bildschirmes.
Irgendwas wird von $ffd2 ja auch erzeugt, nur leider Grütze ![]()
Mit copyCharROM sieht es dann so aus:
Bitte melde dich an, um diesen Anhang zu sehen.
Irgendein Schritt scheint noch zu fehlen.