The following table shows the memory locations for the CBM-500's VIC chip registers (bank 15):
Hex
Dec
Description
$D800
55296
Sprite 0 X position
$D801
55297
Sprite 0 Y position
$D802
55298
Sprite 1 X position
$D803
55299
Sprite 1 Y position
$D804
55300
Sprite 2 X position
$D805
55301
Sprite 2 Y position
$D806
55302
Sprite 3 X position
$D807
55303
Sprite 3 Y position
$D808
55304
Sprite 4 X position
$D809
55305
Sprite 4 Y position
$D80A
55306
Sprite 5 X position
$D80B
55307
Sprite 5 Y position
$D80C
55308
Sprite 6 X position
$D80D
55309
Sprite 6 Y position
$D80E
55310
Sprite 7 X position
$D80F
55311
Sprite 7 Y position
$D810
55312
Sprites 7-0 X position MSB
$D811
55313
Bit 7 Raster compare bit 8
Bit 6 1 = Extended colour bit on
Bit 5 1 = Bit map mode on
Bit 4 0 = Blank screen
Bit 3 1 = 25 rows/0 = 24 rows
Bit 2-0 Smooth scroll Y position
$D812
55314
Read/Write raster bits 7-0
$D813
55315
Light pen latch X pos
$D814
55316
Light pen latch Y pos
$D815
55317
Sprite display enable (1=on)
$D816
55318
Bit 7-6 Unused
Bit 5 Set to zero (reset bit)
Bit 4 1 = Multicolour mode on
Bit 3 1 = 40 columns/0 = 38 cols
Bit 2-0 Smooth scroll X position
$D817
55319
Sprite expand vertical
$D818
55320
Bit 7-4 Address of text screen
Bit 3 (Hi-res) Address of hi-res (0 = uses lower 8K block)
Bit 3-1 (Lo-res) Address of chr set (Bit 1 determines lower/graphics set)
Bit 0 Not used
$D819
55321
IRQ Register
$D81A
55322
IRQ Mask Register
$D81B
55323
Sprite to background priority (0 = Sprite in front)