Ich schlage mich schon den ganzen Tag mit dem Problem rum, dass ich eine Bitmap anzeigen lassen möchte, die bei Adresse $4000 liegt. Wenn ich's bei $2000 liegen habe, geht das problemlos, in $d018 schreibe ich dann den Wert $18. Welchen Wert muß ich denn nun in $d018 schreiben, damit es angezeigt wird, oder muß ich da noch was anderes beachten?
Hallo Besucher, der Thread wurde 1,6k mal aufgerufen und enthält 7 Antworten
letzter Beitrag von Ingo am
Bitmap aus $4000 anzeigen
- wattie
- Erledigt
-
-
grundsätzlich gilt ja...schau mal in die doku...dazu gibt es tonnenweise doku.
da ich aber auch so ein fauler doku-less-socken bin:erstmal
lda#02
sta $dd00(die hinteren 2 bits bestimmen die lage der VIC bank.
$03 = $0000-$3fff
$02 = $4000-$7fff
$01 = $8000-$bfff
$00 = $c000-$fffflda#80
sta$d018(die vorderen 4 bit bestimmen die lage des videorams + vicbank, immer in $0400er Schritten.
bit 3 die lage der bitmap, 0 = $0000, 8 = $2000 )bitmap liegt somit auf $4000-$5fff und das videoram dazu von $6000-63ff
das wars....
-
Der VIC kann nur 16KB adressieren. Du musst den kompletten Adressbereich des VIC verschieben, das geht IIRC über ein Register der CIA2. Dann im VIC die untere Hälfte der 16K für die Bitmap einstellen und gut
edit:Roland, hatte deine Antwort noch nicht gesehen, die war natürlich praxistauglicher
-
yo...und nur so vorweg.
wenn du dann z.b. noch sprites über die bitmap bewegen willst, daran denken, dass die auch in der selben vic bank wie das bild sein "müssen" (naja, gibt gaaaaanz böse methoden, damit das nicht so sein muss, aber darüber wollen wir hier nicht reden )also, nix mit sprites auf $2000 und bitmap auf $4000....
die sprites sollten dann so von $6400 - $7fff liegen -
argh, ich hatte es so verstanden, das die VIC Bank nur über $d018 ausgewählt wird. Danke Euch beiden für die Erklärung.
Und Sprites verschieben ist jetzt als nächstes dran, die habe ich nämlich noch unter $0a00 liegen
-
-
naja...ganz einfach.
Du must nur $dd00 am rechten border rand umschalten (denn da werden ja die sprite-daten eingelesen) und dann am linken border rand $dd00 wieder zurück schalten (für die Bitmap) -
Ach so...