VIC-Bank

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Eine VIC-Bank ist eine von vier möglichen 16K-Bereichen für den VIC im 64K RAM des C64

Der VIC-II besitzt nur 14 Adressleitungen, kann also nur 16K addressieren. Deshalb werden zusätzlich die Bits 0 und 1 des CIA 2 Port A Registers 56576 ($DD00) benutzt, um die Lage des VIC-Adressbereiches im 64K-Speicher zu bestimmen. Die für die Addressierung fehlenden Bits 14 und 15 ergeben sich aus diesen durch Invertierung, d.h. aus 0 wird 1 und aus 1 wird 0.

$DD00 Bits 1/0 Addr.-Bits 15/14 Video-Bank Erreichbare Adressen (hex.)
11 00 0       0-16383 ($0000-$3FFF)
10 01 1 16384-32767 ($4000-$7FFF)
01 10 2 32768-49151 ($8000-$BFFF)
00 11 3 49152-65535 ($C000-$FFFF)

Nach dem Einschalten des C64 ist die Video-Bank 0 aktiv.

Anwendungen:


Beispiel VIC-Bank ab $8000:

  • BASIC: 10 POKE 56576, PEEK(56576) AND 252 OR 1
  • Assembler:
LDA $DD00
AND #$FC	;%11111100
OR  #$01	;%00000001
STA $DD00	;%xxxxxx01

Speicherbelegungsplan des VIC-II[Bearbeiten | Quelltext bearbeiten]

$FFFF ┌─────────────────┐────────
      │                 │
      │                 │
      │                 │
      │       RAM       │ Bank 3
      │                 │
      │                 │
      │                 │
$C000 ├─────────────────┤────────
      │                 │
      │       RAM       │
      │                 │
$A000 ├─────────────────┤ Bank 2
      │ Zeichensatz-ROM │
$9000 ├─────────────────┤
      │       RAM       │
$8000 ├─────────────────┤────────
      │                 │
      │                 │
      │                 │
      │       RAM       │ Bank 1
      │                 │
      │                 │
      │                 │
$4000 ├─────────────────┤───────
      │                 │
      │       RAM       │
      │                 │
$2000 ├─────────────────┤ Bank 0
      │ Zeichensatz-ROM │
$1000 ├─────────────────┤
      │       RAM       │
$0000 └─────────────────┘───────

Das Zeichensatz-ROM wird in den Bänken 0 und 2 jeweils an den VIC-Adressen $1000-$1FFF eingeblendet. In Bank 2 z.B. erscheint es daher an Adresse $9000. Die beiden Standard Zeichensätze sind auf diese Weise unmittelbar lesbar für den VIC (nicht für die CPU), so dass der Programmierer sich nicht um die Zuordnung von RAM für sie kümmern muss. Leider wird dabei auch Speicher belegt, der nun für eine Bitmap, Sprites oder Bildschirmspeicher nicht mehr zur Verfügung steht.


Weblinks[Bearbeiten | Quelltext bearbeiten]