Trasteador

- Mensajes: 5264
- Registrado: Vie Oct 07, 2005 5:18 pm
- Ubicación: En un país tropical.
Vaya, hay algún problema con el paso de los parámetros, no me los coge bien. He modificado una cosilla en el código que estaba sin adaptar.
- Código: Seleccionar todo
CHAIN "CPCBasic.BAS"
DIM sprite00#(15) ' Es suficiente indicar 15 para tener 16 elementos, ya que el array es del índice 0 al
15
DIM i%,a#
DEF SUB imp_sp_normal(%,%,%,%)= _
"ld hl,2" + "add hl,sp" + "push hl" + "pop ix" + "ld l,(ix+0)" + "ld h,(ix+1)" + _
"ld a,(ix+2)" + "ld e,(ix+6)" + "ld d,(ix+7)" + "ld (loop_alto_2+1),a" + "sub 1" + "cpl" + _
"ld (salto_linea+1),a" + "ld a,(ix+4)" + "defb &fd" + "ld h,a" + "ld b,7" + "loop_alto_2" + _
"ld c,4" + "loop_ancho_2:" + "ld a,(de)" + "ld (hl),a" + "inc de" + "inc hl" + "dec c" + "jp
nz,loop_ancho_2" + _
"defb &fd" + "dec h" + "ret z" + "salto_linea" + "ld c,&ff" + "add hl,bc" + "jp nc,loop_alto_2" + "ld
bc,&c050" + _
"add hl,bc" + "ld b,7" + "jp loop_alto_2" + "imp_sp_normal0:" + "ancho0:" + "suma_siguiente_linea0:"
' Da error al ensamblar esta orden porque no están declaradas algunas etiquetas
' Las he declarado al final, aunque no tenga sentido para comprobar que ensambla correctamente
RESTORE datos_sprite00
for i%=0 to 15 ' El primer elemento es índice 0 y el último es 15
read a#
sprite00#(i%)=a#
next
imp_sp_normal @sprite00#(0),8,2,&c000:REM Se da en el primer argumento la dirección del primer elemento
del array
END
' Importante llevar el END antes que los DATA porque si no se ejecuta el código máquina correspondente a
los
' bytes declarados en DATA
datos_sprite00: DATA &07#,&0E#,&2D#,&2D#,&0F#,&2D#,&0F#,&2D#,&0F#,&0F#,&0F#,&2D#,&0F#,&0F#,&07#,-51#
' En el último byte, como ejemplo, he puesto el valor correspondiente a &CD#, que al ser 205 en decimal,
para obtener
' el valor correspondiente en tamaño byte sería 205 - 256 = -51
Salu2,
Arta
Arta












