Constantes del Spectrum para ensamblador

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

Responder
Bubu
Freddy Hardest
Mensajes: 544
Registrado: Mié Oct 31, 2007 12:15 am

Constantes del Spectrum para ensamblador

Mensaje por Bubu » Lun Ene 07, 2008 9:20 pm

Buenas, listo a continuación una serie de constantes útiles para ser utilizadas cuando pogramamos en ensamblador. El que quiera puede copiar y pegar en su pograma, o simplemente usar un INCLUDE o IMPORT. Poco a poco iré subiendo más constantes.

De momento empiezo con las de teclado:

Código: Seleccionar todo

KEYS_CS_TO_V   equ   $FEFE
KEYS_A_TO_G   equ   $FDFE
KEYS_Q_TO_T   equ   $FBFE
KEYS_1_TO_5   equ   $F7FE
KEYS_0_TO_6   equ   $EFFE
KEYS_P_TO_Y   equ   $DFFE
KEYS_ENTER_TO_H   equ   $BFFE
KEYS_SPACE_TO_B   equ   $7FFE

KEY_MASK   equ   $1F

KEY_NONE   equ   $1F
KEY_POS_1   equ   %00000001
KEY_POS_2   equ   %00000010
KEY_POS_3   equ   %00000100
KEY_POS_4   equ   %00001000
KEY_POS_5   equ   %00010000




Ejemplo de uso:


Pograma para leer la tecla Y :

Código: Seleccionar todo

 di
 ld bc, KEYS_P_TO_Y ;bc=semifila de la P a la Y
NO: in a, (c) ;a=tecla pulsada
 and KEY_POS_5 ;aplicamos la máscara de la tecla 5 de esa semifila, que es la Y
 jr z, SI ;si hay tema, salir a SI
 jr NO ;si no, volver a NO
SI: ei
 reti

Bubu
Freddy Hardest
Mensajes: 544
Registrado: Mié Oct 31, 2007 12:15 am

Re: Constantes del Spectrum para ensamblador

Mensaje por Bubu » Vie Ene 25, 2008 12:25 am

Algunas constantes para la pantalla:

Código: Seleccionar todo

VRAM_ADDR equ $4000
VRAM_LENGTH equ $1800
ATTR_ADDR equ $5800
ATTR_LENGTH equ $300

COLS_COUNT equ 32
ROWS_COUNT equ 24


INK_BLACK equ %000
INK_BLUE equ %001
INK_RED equ %010
INK_MAGENTA equ %011
INK_GREEN equ %100
INK_CYAN equ %101
INK_YELLOW equ %110
INK_WHITE equ %111

PAPER_BLACK equ (%000)<<3
PAPER_BLUE equ (%001)<<3
PAPER_RED equ (%010)<<3
PAPER_MAGENTA equ (%011)<<3
PAPER_GREEN equ (%100)<<3
PAPER_CYAN equ (%101)<<3
PAPER_YELLOW equ (%110)<<3
PAPER_WHITE equ (%111)<<3

BRIGHT_ON equ (%1)<<6
BRIGHT_OFF equ (%0)<<6

FLASH_ON equ (%1)<<7
FLASH_OFF equ (%0)<<7

BORDER_BLACK equ %000
BORDER_BLUE equ %001
BORDER_RED equ %010
BORDER_MAGENTA equ %011
BORDER_GREEN equ %100
BORDER_CYAN equ %101
BORDER_YELLOW equ %110
BORDER_WHITE equ %111


Z80user
Manic Miner
Mensajes: 215
Registrado: Vie Jun 08, 2007 9:42 am
Ubicación: En un lugar de la mancha
Contactar:

Re: Constantes del Spectrum para ensamblador

Mensaje por Z80user » Lun Ene 18, 2010 8:18 pm

En las microfichas de la microhobby habia unas definiciones de variables
T04 - Variables del sistema
T08 - Tabla de sintaxis: las direcciones de los comandos de Basic
T14yT15 - ROM: son varias microfichas, que tienen las referencias de direcciones utiles en la rom del spectrum
T16 - Las rutinas que usa la calculadora de la ROM
G27 y siguientes - Mapa de memoria: Algunos nombres de partes de la memoria

http://www.speccy.org/trastero/cosas/Fichas/fichas.htm
Si vas a tirar Hardware, primero pregunta si alguien lo puede recuperar.
No abandones un ordenador en un vertedero, donalo a alguien.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados