Repaso de registros del VIC

En las entradas anteriores hemos revisado las funcionalidades principales del VIC. El objetivo de esta entrada es hacer un repaso sistemático de sus registros, para que sirva de referencia, y para prepararnos ya para cambiar de temática y pasar a tratar la música y el sonido con el SID.

Además de indicar las direcciones de los registros, indicaremos sus nombres según el libro “Mapping the Commodore 64”.

Los registros principales del VIC son:

REGISTRO DIRECCIÓN FUNCIÓN
SP0X, SP0Y, SP1X, SP1Y, … $d000 – $d00f Coordenadas X e Y de los ocho sprites.
MSIGX $d010 Bits más significativos de las coordenadas X de los ocho sprites.
SCROLY $d011 Bits 0, 1 y 2: Scroll en la dirección Y.

Bit 3: Modo 24 o 25 filas (1=25, 0=24).

Bit 4: Blanqueo de pantalla (0=blanqueo).

Bit 5: Modo bitmap (1=activo).

Bit 6: Modo carácter con color de fondo extendido (1=activo).

Bit 7: Bit más significativo –bit 8– del RASTER ($d012).

RASTER $d012 Bits 0 – 7 del RASTER.
SPENA $d015 Bits para activar / desactivar los ocho sprites (1=activo).
SCROLX $d016 Bits 0, 1 y 2: Scroll en la dirección X.

Bit 3: Modo 38 o 40 columnas (1=40, 0=38).

Bit 4: Modo bitmap multicolor (1=activo).

YXPAND $d017 Bits para expandir los ocho sprites en la dirección Y (1=expandido).
VMCSB $d018 Bits 1, 2 y 3: Ubicación de los 2K de los juegos de caracteres personalizados.

Bit 3: Ubicación de los 8K del bitmap.

Bits 4, 5, 6 y 7: Ubicación de la RAM de pantalla.

VICIRQ $d019 Información sobre las interrupciones VIC generadas:

Bit 0: RASTER.

Bit 1: Colisión sprite – fondo.

Bit 2: Colisión sprite – sprite.

Bit 3: Lápiz óptico.

Bit 7: Cualquier fuente.

IRQMSK $d01a Programación de las interrupciones del VIC:

Bit 0: RASTER.

Bit 1: Colisión sprite – fondo.

Bit 2: Colisión sprite – sprite.

Bit 3: Lápiz óptico.

SPBGPR $d01b Bits para controlar la prioridad entre sprites y fondo (0=sprite, 1=fondo).
SPMC $d01c Bits para controlar el multicolor de los ocho sprites (1=multicolor).
XXPAND $d01d Bits para expandir los ocho sprites en la dirección X (1=expandido).
SPSPCL $d01e Bits para controlar las colisiones sprite – sprite (1=sí).
SPBGCL $d01f Bits para controlar las colisiones sprite – fondo (1=sí).
EXTCOL $d020 Color del borde de la pantalla.
BGCOL0 $d021 Color de fondo 0.
BGCOL1 $d022 Color de fondo 1.
BGCOL2 $d023 Color de fondo 2.
BGCOL3 $d024 Color de fondo 3.
SPMC0 $d025 Color compartido 0 de los sprites multicolor.
SPMC1 $d026 Color compartido 1 de los sprites multicolor.
SP0COL, SP1COL, … $d027 – $d02e Colores propios de los ocho sprites.

El VIC tiene algún registro adicional, y alguno de los registros vistos también tiene algún bit adicional, pero lo recogido en la tabla de arriba es más del 90%.

Y a partir de ahora, música y sonido…

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s