Aqui comienza el programa y carga la primera bitmap (en ; LOAD BITMAP) , pero en ;ESPACIO no se queda esperando que el jugador pulse la tecla espacio:
*=$0801 ; 2049 POSITION
.WORD NEXT,10 ; PUNTERO SIGUIENTE LINEA Y NUM. LINEA 10
.NULL $9E,^START ; "SYS START" (START=INICIO C.M.)
NEXT .WORD 0 ; END BASIC
.INCLUDE HARDWARE.INC ;DIRECTIVA DE ETIQUETAS
FRAMES .BYTE 0 ; VIDEO FRAMES COUNTER
; LOAD SPRITES
*=$0EC0 ; 3776 POSITION
.BINARY SPRITES.BIN
; START
START SEI ; OFF INTERRUPTS
; UNKONW
LDA $D018
AND #$F1
ORA #$0A
STA $D018
; CLEAR SCREEN
LDA #$20
LDX #$00
CLS STA $0400,X
STA $0500,X
STA $0600,X
STA $0700,X
DEX
BNE CLS
; LOAD BITMAP
LDA $4710
STA $D020
STA $D021
LDX #$00
LOADDCCIMAGE
LDA $3F40,X
STA $0400,X
LDA $4040,X
STA $0500,X
LDA $4140,X
STA $0600,X
LDA $4240,X
STA $0700,X
LDA $4328,X
STA $D800,X
LDA $4428,X
STA $D900,X
LDA $4528,X
STA $DA00,X
LDA $4628,X
STA $DB00,X
INX
BNE LOADDCCIMAGE
LDA #$3B
STA $D011
LDA #$18
STA $D016
LDA #$18
STA $D018
BUCLE
JMP PARAMETROS
*=$1FFE ; 8190 POSITION
.BINARY "PRESENTACION.PRG"
PARAMETROS
; SCREEN COLOR
LDA #$08 ; ORANGE
STA $0286 ; 646 CURSOR POSITION
LDA #$00 ; BLACK
STA $D020 ; SCREEN BORDER
LDA #$00 ; BLACK
STA $D021 ; SCREEN
ESPACIO
LDA $DC01
CMP #$EF
BNE ESPACIO
Sino que tira como un cohete y carga la segunda (En ; BITMAP 2), sin embargo con la segunda si se queda esperando a que se pulse espacio en ;ESPA aqui lo veis:
; BITMAP 2
LDA $4710
STA $D020
STA $D021
LDX #$00
LOADIMAGE
LDA $3F40,X
STA $0400,X
LDA $4040,X
STA $0500,X
LDA $4140,X
STA $0600,X
LDA $4240,X
STA $0700,X
LDA $4328,X
STA $D800,X
LDA $4428,X
STA $D900,X
LDA $4528,X
STA $DA00,X
LDA $4628,X
STA $DB00,X
INX
BNE LOADIMAGE
LDA #$3B
STA $D011
LDA #$18
STA $D016
LDA #$18
STA $D018
CONTINUA
JMP CONT
*=$1FFE ; 8190 POSITION
.BINARY "BITMAP.PRG"
CONT
ESPA
LDA $DC01
CMP #$EF
BNE ESPA
y una vez que es pulsado espacio el programa continua su curso y es mostrado el sprite:
; SCREEN COLOR
LDA #$08 ; ORANGE
STA $0286 ; 646 CURSOR POSITION
LDA #$00 ; BLACK
STA $D020 ; SCREEN BORDER
LDA #$00 ; BLACK
STA $D021 ; SCREEN
; SPRITE POINTERS
LDA #$3B ; BLOCK 59 RIGHT
STA $07F8 ; SPRITE 0 POINTER 2040
; SPRITE COLOR
LDA #$01 ; WHITE
STA SP0COL ; SPRITE 0 NAVE
; SPRITE MULTICOLOR 1 Y 2
LDA #$0B ; 11 DARK GRAY
STA SPMC0 ; MCOLOR 1
LDA #$06 ; BLUE
STA SPMC1 ; MCOLOR 2
; ASIGNAR POSICION INICIAL SPRITES
LDA #0
STA MSIGX
LDA #70
STA SP0X ; X SPRITE 0
LDA #110
STA SP0Y ; Y SPRITE 0
; ON MULTICOLOR SPRITES
LDA #$FF
STA SPMC
; OFF KEYS
LDA 224
STA CIDDRA
; ***************
; * MAINLOOP *
; ***************
UPDATE
; ON SPRITES
LDA #$0F ; ON 0 1 2 3
STA SPENA ; SPRITE ENABLE
MAINLOOP
; WAIT ELECTRONS´ACE
LDA RASTER
CMP #$FF
BNE MAINLOOP
FIN
JMP FIN
Ya os digo que el problema viene al cargar dos bitmaps y marcar la condicion de pulsar espacio para mostrar la segunda y luego el sprite, cosa que no hace, sin embargo con una sola bitmap si lo hace, de hecho entre el intervalo de mostrar la segunda bitmap y el sprite si funcion, pero en el intervalo de la primera y segunda bitmap no se queda esperando.