Eine Frage an die Profis:
Wie schalte ich auf VIC-Bank I ($4000) um und wo liegt dann der Bildschirmspeicher , Char, etc.
Was muss in $d018 und in $01 ?
Du bist in Begriff, Forum64 zu verlassen, um auf die folgende Adresse weitergeleitet zu werden:
Bitte beachte, dass wir für den Inhalt der Zielseite nicht verantwortlich sind und unsere Datenschutzbestimmungen dort keine Anwendung finden.
letzter Beitrag von TheRyk am
Eine Frage an die Profis:
Wie schalte ich auf VIC-Bank I ($4000) um und wo liegt dann der Bildschirmspeicher , Char, etc.
Was muss in $d018 und in $01 ?
lda#$02
sta $dd00
oder wenn du ganz pingelig sein willst:
lda $dd00
and #$fc
ora #$02
sta $dd00
bildschirmspeicher und char liegt dann da, wo es auch in der "vorherigen" bank lag, nur eben ausgehend von $4000.
wenn du also vom standard einschaltzustand umschaltest steht der bildschirm auf $4400 und der char auf $5000.
Super !
Die Standard-Bank taugt irgendwie nicht für meine Zwecke.
Wird gleich ausprobiert.
Danke.
EDIT: sehe gerade, ich lag ja voll daneben /EDIT:
mmmmh irgendwas scheint da bei mir nicht hinzuhauen:
Das sollte doch eingentlich den schirm mit weißen bällen füllen, oder ?
Was mache ich bloß verkehrt
EDIT: hat sich erledigt ...
upps, warum das denn ?
Ich habe schonmal einen fehler gefunden, also in der copycol: ab zeile 28 muss es natürlich sta $da00,x und sta $db00,x, heißen.
Und wenn ich es richtig verstanden habe muss auch noch $D018 umgeschaltet werden.
Wäre dankbar für jede Hilfe.
Auf den ersten Blick kannst du nix mehr am VIC setzen, wenn du die Roms ausschaltest.
Dann hast du einen Fehler beim Color-ROM (die letzten zwei STAs müssen $da00 und $db00 lauten).
Du hast vermutlich wie ich im Emulator getestet. Es wird alles gemacht, nur wenn du die VIC-Bank umschaltest, wird auch der Zeichensatz aus einer anderen Bank gelesen. Bei EMUs ist da meistens 0 drin, deshalb sieht man nichts.
Ja genau. ich teste das auffm vice
ok, ich lade dann mal einen char.
Danke !
jo, font geladen, $d018 richtig bekaspert und nun gehts.
Vielen Dank an alle
bei d018/dd00 find ich immer wieder erwähnenswert das man auch
lda #xy
sta $d018
sta $dd00
machen kann ... einfach mal die in den registern jeweils benutzten bits anschauen
Das macht die Sache etwas einfacher. Ich möchte aber noch ein Koala dazu anzeigen, deshalb muß bei mir $18 in $d018.
Sehe ich doch richtig, oder ? (Fuktioniert auf jeden Fall schon mal mit meiner koala-loop und bild@$6000.)
Auf den ersten Blick kannst du nix mehr am VIC setzen, wenn du die Roms ausschaltest.
Die ROMs haben damit nichts zu tun.
Die ROMs haben damit nichts zu tun.
Man kann doch die VIC-Register nicht mehr ansprechen, wenn man die ROMs ausblendet, oder liege ich da falsch?
Ich benutze das, um unter den Registern Sprites abzulegen. Meine Sprites liegen z. Bsp. bei $D000, da würde ich ja sonst in die Register reinschreiben.
Man kann doch die VIC-Register nicht mehr ansprechen, wenn man die ROMs ausblendet, oder liege ich da falsch?
Ich benutze das, um unter den Registern Sprites abzulegen. Meine Sprites liegen z. Bsp. bei $D000, da würde ich ja sonst in die Register reinschreiben.
kommt drauf an, welchen wert man in die speicheradresse $0001 reinschreibt. hier wird ja $35 (= %0011 0101) benutzt. also roms aus, aber io-bereich an.
http://sta.c64.org/cbm64mem.html
ZitatAlles anzeigen
Processor port. Bits:
Bits #0-#2: Configuration for memory areas $A000-$BFFF, $D000-$DFFF and $E000-$FFFF. Values:
%x00: RAM visible in all three areas.
%x01: RAM visible at $A000-$BFFF and $E000-$FFFF.
%x10: RAM visible at $A000-$BFFF; KERNAL ROM visible at $E000-$FFFF.
%x11: BASIC ROM visible at $A000-$BFFF; KERNAL ROM visible at $E000-$FFFF.
%0xx: Character ROM visible at $D000-$DFFF. (Except for the value %000, see above.)
%1xx: I/O area visible at $D000-$DFFF. (Except for the value %100, see above.)
Bit #3: Datasette output signal level.
Bit #4: Datasette button status; 0 = One or more of PLAY, RECORD, F.FWD or REW pressed; 1 = No button is pressed.
Bit #5: Datasette motor control; 0 = On; 1 = Off.
Default: $37, %00110111.
Ich doof, dann hab ich natürlich Mist verzapft
Hab nicht genau nachgesehen, und noch kann ich die Werte nicht auswendig.
Aber ich gelobe Besserung!
So, die Sache mit $d018 habe ich jetzt endlich gerafft. Ist ja eigentlich auch ganz einfach wenn man es einmal begriffen hat.
Danke nochmal
EDIT: Es geht darum, ein Koala nicht nach $2000, sondern nach $4000 zu packen...
Vor Leichenschänder-Rufen bitte lesen: Es greift das Forum-Dilemma: Fred zu alt, aber es existiert schon ein ähnlicher Fred, wie man's macht, man macht's verkehrt
Habe auch gerade mal "auf die Schnelle" versucht, Vic-Bank in ASM umzuschalten.
An sich habe ich das auch nach etlichem rumprobieren und Googeln hingekriegt.
Habe im Prinzip Puterman's "Display Koala at $2000" (Beispiel aus seinem Kurs, hier aus Codebase verlinkt) wie folgt modifiziert:
1. Das Pic nicht an $2000, sondern an $4000 laden (klar)
2. In den LDA-Zeilen jeweils +$2000 (auch klar)
3. $d018 auf #$80 (Screenmatrix ändern)
4. $dd00 auf #$02 (eigentliches Umschalten der VIC-Bank)
Hier also der Kot
Aber das Ergebnis haut leider nur bedingt hin.
Statt dem hier (vor dem Ändern zum Zwecke des Switch alles gut)
kriege ich das hier:
Es ist zwar FAST gelungen, aber das heißt leider eben doch auch KNAPP vermurkst.
Wieso denn bloß?
DD00 passt, D011 und D016 müssen doch bleiben, und D018 müsste auch hinhauen.
Mein Verdacht ist ja irgendwie, dass in der Copyloop was nicht stimmt.
Wäre schee, wenn jemand mal mit dem Zaun winken täte, Danke im Vorwege!
Äh. Also so wie Du es konfiguriert hast, liegt jetzt Deine Bitmap bei $4000 und Dein Screen bei $6000 - wenn ich mich jetzt nicht auch noch verrechnet habe
Die Kopiererei nach $0400 bis $07e7 bringt natürlich gar nix. Und außerdem wird Dein Koala teilweise den Bereich ab $6000 überrschreiben.
Hmh. STA-Zeilen nicht modifiziert... Wo Du Recht hast: Das ist natürlich wirklich Murks... :rotwerd:
Ich glaube, es sieht nach Kopieren nach $6000 ff besser aus, aber immer noch nicht perfekt.
Liegt das vielleicht am von Dir erwähnten Überlagern des Screens durch das Koala?
Sollte ich also eine andere Bank wählen oder das Screen woanders hintun?
naja...
wenn die screendaten zu beginn auf $5f40-6328 und die colordaten auf $6328-6710 liegen, und du dann die screendaten so wie beschrieben nach $6000 verschiebst kann das ja nur schiefgehen. da überschreibst du ja den bereich wo die eigentlichen daten herkommen.