Commodore manía
Commodore 64 => Desarrollo => Ensamblador => Mensaje iniciado por: Maniako en Enero 07, 2016, 12:28:39
-
Aquí estamos otra vez.
Uno de los proyectos que dejé abandonados cuando tuve que retirar a mi pequeñajo en su momento, fue un juego de árcade que se llama Head On.
(http://retroinvaders.com/commodoremania/foro/index.php?action=dlattach;topic=1466.0;attach=1995)
Como llevo un tiempo deseando hacer algo para tratar de desoxidar mi ya casi olvidado código máquina, me he embarcado otra vez en el proyecto. Con mucha ilusión, aprovechando esos pequeños y extraños momentos de tiempo libre que de vez en cuando se dan.
Lo iré haciendo rutina a rutina y las iré colgando para compartir conocimientos y naturalmente, atender a los consejos del personal que habita el foro, muchos de los cuales, tienen conocimientos y experiencias que valoro mas allá de toda medida.
Explicaré un poco como pienso hacerlo funcionar.
Usaré caracteres de la memoria de pantalla para leer lo que hay en la pista (puntos a comer, paredes, bonus, manchas aceite, etc) pero no se mostrará nada, solo el sprite que se irá posicionando encima de donde esté nuestro coche invisible XD.
Solo se podrá mover el coche invisible una vez cada 8 ciclos para dar tiempo a la rutina de posicionar el sprite encima de las coordenadas donde están ahora.
Eso es otra rutina que aún no he creado. Darme tiempo XD
En fin, al trabajo... ;)
PD: Si veis errores en las explicaciones, no lo dudéis, corregidme y lo modificare.
-
Animos con el proyecto!!
Los.colores son un poco... Emmm...
-
Empezaré con la primera rutina que ya posteé por el foro.
Esta coloca un sprite encima de un carácter o zona de pantalla (de 1024 a 2023).
EL sprite está hecho del tamaño de un carácter de pantalla, 8x8 pixels y siempre encuadrado en los primeros 8 pixéls para así, quede siempre "en el mismo lugar".
El código viene ya comentado en lo posible.
Uso coordenadas X e Y de la memoria de pantalla, es decir, X irá de 0 a 39 (40) é Y de 0 a 24 (25) .
El cálculo es muy sencillo, para hallar las coordenadas de un sprite sobre unas coordenadas concretas de la pantalla (X o Y) , solo hay que multiplicar por 8 (8 pixeles por caracter de pantalla) la cordenada deseada y sumarle la corrección , ya que X=0 e Y=0 (de una zona de la memoria de pantalla) equivale a 1024 (el primer caracter de pantala) pero las coordenadas X=0 e Y=0 en un sprite, lo "mostraria" escondido en los bordes de la pantalla.
En este caso y con los sprites que he creado, la corrección a sumar en X al sprite seria #25 y en Y , #50.
;Creado en CBM prg STUDIO 3.6.0
;Pruebas para colocar sprite en pantalla partiendo de unas coordenadas de pantalla
;X de 0 a 39 e Y de 0 a 24
; 10 SYS4096
*=$801
BYTE $0B, $08, $0A, $00, $9E, $34, $30, $39, $36, $00, $00, $00
*=$1000 ;#4096
;Posición sprite en coordenadas X=0 e Y=0 de caracteres, en el sprite es X=#24 e Y=#50
;Formula de caracteres a sprites: Xcar*8+24 Ycar*8+50
facarg=$bc0c
intfac=$b391
sum=$b86a
res=$b853
mul=$ba2b
div=$bb12
facind=$bc9b
msb=$d010 ;Activar >255 sprites
posprites=$D000
spena=$D015
Posmemspr=$07f8 ;#2040
Xcar0=#19 ;Coordenada X coche 0 (el prota) 28*8=224 +24 de correccion=248.
;Es el máximo sin tener que activar el msb
Ycar0=#00 ;Coordenada Y coche 0 (elprota)
;Posicionando y conectando sprites
lda #1
sta spena ;Conecta sprite 0
lda #50
sta posprites+1 ;CoordY
lda #192+2 ;#12288
sta Posmemspr ;Sprite en memoria
loop ;Inutil de momento, solo se ejecuta una vez
lda #00 ;Desactiva el msb antes del cálculo
sta msb ;es mejorable, solo es para la prueba.
;Multiplicando la coordenada X en caracteres para conseguir la coordenada X del sprite:
;Vale también para la coordenada Y. De hecho, se llamará a esta rutina para calcular
;cada eje de cada coche.
;ACU y Registro Y se pueden cargar antes de llamar a esta rutina. Aqui los cargo a
;continuación para las pruebas.
lda #00 ;HIBYTE LoHi Es 0 por que va de 0 a 0 XD
ldy #Xcar0 ;LOBYTE ;00XX coordenada X coche Va de 0 al 39
jsr intfac ;
jsr facarg ;
lda #00 ;HIBYTE LoHi
ldy #08 ;LOBYTE 0008 X8
jsr intfac
jsr mul ;Resultado en $64 y $65 HIBYTE y LOBYTE respectivamente
jsr facind
lda $64 ;Resultado HI de multiplicar Xcar x 8 bits
ldy $65 ;Resultado LO de multiplicar Xcar x 8 bits
jsr intfac
jsr facarg
lda #00
ldy #24 ;Corrección de la posición del sprite , ya que coordnada
;X o Y con valor 0, queda detrás del borde de la pantalla.
jsr intfac
jsr sum
jsr facind
ldy $65
clc ;Por si acaso XD
lda $64 ;Si el numero calculado sobrepasa los 255, el Hibyte no sera 0
beq sigue1 ;Si es cero, pasa de activar el msb
lda #01 ;Si es > de 0 , pasa a activar el msb
sta msb
sigue1 sty posprites ;posprites ;
rts ;Vuelta al basic
*=$3000 ;#12288 12288/64=192 primer sprite
; Derecha
BYTE 0,0,0
BYTE 118,0,0
BYTE 32,0,0
BYTE 63,0,0
BYTE 63,0,0
BYTE 32,0,0
BYTE 118,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0,0
; Izquierda
BYTE 0,0,0
BYTE 110,0,0
BYTE 4,0,0
BYTE 252,0,0
BYTE 252,0,0
BYTE 4,0,0
BYTE 110,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0,0
; Abajo
BYTE 0,0,0
BYTE 66,0,0
BYTE 126,0,0
BYTE 90,0,0
BYTE 24,0,0
BYTE 90,0,0
BYTE 90,0,0
BYTE 24,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0,0
; Arriba
BYTE 24,0,0
BYTE 90,0,0
BYTE 90,0,0
BYTE 24,0,0
BYTE 90,0,0
BYTE 126,0,0
BYTE 66,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0
BYTE 0,0,0,0
-
Animos con el proyecto!!
Los.colores son un poco... Emmm...
Jajajaj, puntilloso!!!
El original era de colores sencillos y básicos como ese.
De todas maneras, esto es un ejercicio de re aprendizaje para mi y una ayuda a todo aquel que deseé empezar con el ensamblador.
Como he dicho, iré poniéndolo paso a paso. Iré añadiendo consejos , ayudas y mejoras a medida que se vaya avanzando.
No he puesto nada aún en el mapa de memoria de colores de pantalla.
Lo más probable es que acabe usando caracteres programables y entonces, haré mapas de colores.
-
Aquí tengo ya la rutina de copiar en pantalla las pistas donde se "competirá" contra los malosos.
Como podéis notar, al tener cada pantalla 1000 caracteres, se tiene que utilizar el direccionado ZERO PAGE. Puede parecer magia negra, pero es muy sencilla de usar para manejarse con números de 16 bit.
Por poner un ejemplo, $0400 (#1024) es la primera zona de memoria de la pantalla, un poke 1024,81 mostrará un punto arriba a la izquierda.
Este número, para poder trabajarlo para que nuestro commodore lo entienda , se divide en HIBYTE y LOBYTE.
$04 es el HIBYTE (bit mas significativo) y $00 seria el LOBYTE (bit menos significativo).
Para mostrar las pantallas, solo hay que cargar las direcciones desde donde leerla, las de mostrar en pantalla siempre son las mismas. Eso se hará con unas tablas y leyéndolas cuando toque. En esta rutina, de momento hacedlo manualmente para ir jugando con ella.
Para no complicarme la vida, podéis ver que he usado $FF para indicarle a la rutina que ya ha terminado de mostrar la pista y que devuelva el control a quién se lo dio.
Observad que voy aumentando el LOBYTE de cada zona y solo cuando se desborda (vuelve a 0), aumenta el HIBYTE.
Desbordar... lo que me gusta con las copas de bebida cuando estoy en la disco!!!
Pero no, en CM, desbordar significa que pasas de los valores permitidos en un bit.
Como sabéis, solo podéis pokear valores del 0 a 255, si ponéis numeros negativos o mayores de 255, os aparece un error.
En CM, si sumas 1 a 255, pasa a ser 0 pero con alteraciones en el REGISTRO DE ESTADO que podéis usar para detectar estas cosas y usarlas a vuestro favor.
Si le restáis 1 a 0, pasa a ser 255 y pasa lo antes explicado.
Yo uso el paso por cero para aumentar el HIBYTE.
;Creado en CBM prg STUDIO 3.6.0
;Este comprueba si el valor leido es $FF.
;Si o es, sabe que ha terminado de leer la pantalla y
;devuelve al programa.
; 10 SYS (4096)
*=$801
BYTE $0E, $08, $0A, $00, $9E, $20, $28, $34, $30, $39, $36, $29, $00, $00, $00
*=$1000
lda #08
sta $d021
sta $d020
lda #$00 ;LO Primera pantalla a leer $4000.
sta $FB ;Lobyte leer caracter.
lda #$40 ;HI Primera pantalla a leer $4000.
sta $FC ;Hibyte leer caracter.
lda #$00 ;LO memoria de pantalla $0400.
sta $FD ;Lobyte escibir caracter.
lda #$04 ;HI memoria de pantalla $0400.
sta $FE ;Hibyte escribir caracter.
ldy #00 ;Y a 0. Necesario pero en este caso inutil.
loop1
lda ($FB),y ;Lectura datos pista.
cmp #$FF ;Si es FF, se acabo el ponerla en pantalla
beq seacabo ;y se vuelve al programa.
sta ($FD),y ;Pokea caracter leido en pantalla.
inc $FB ;Aumenta en 1 el lobyte lectura.
bne pasa1 ;Si no desborda, sigue a lo suyo.
inc $FC ;Si desbordaba, aumenta en 1 el HIBYTE.
pasa1
clc
inc $FD ;Aumenta en 1 el LOBYTE de escritura.
bne pasa2 ;Si no desborda, sigue a lo suyo.
inc $FE ;Aumenta en 1 el HIBYTE de escritura.
pasa2
jmp loop1
seacabo
rts
;PANTALLAS DEL JUEGO
*=$4000
; Screen 1 - $4000
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$49,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$40,$49,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$40,$40,$40,$40,$40,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$10,$15,$0E,$14,$0F,$13,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$37,$33,$32,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$07,$01,$13,$0F,$06,$01,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$38,$38,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$40,$40,$40,$40,$40,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$40,$40,$40,$40,$40,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$ff
; Screen 2 - $43E8
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$72,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20
BYTE $42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$40,$49,$2E,$42,$2E,$55,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$40,$40,$40,$40,$40,$49,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$40,$49,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$40,$40,$40,$40,$40,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$10,$15,$0E,$14,$0F,$13,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$37,$33,$32,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$07,$01,$13,$0F,$06,$01,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$38,$38,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$40,$40,$40,$40,$40,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$40,$4B,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$20,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$40,$40,$40,$40,$40,$4B,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$2E,$42,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$40,$40,$40,$40,$43,$43,$43,$43,$43,$43,$43,$43,$43,$71,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$20,$ff
; Screen 3 - $47D0
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$72,$40,$40,$40,$72,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$42,$20
BYTE $42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$40,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$40,$49,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$40,$40,$40,$40,$40,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$10,$15,$0E,$14,$0F,$13,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$37,$33,$32,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$07,$01,$13,$0F,$06,$01,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$38,$38,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$40,$40,$40,$40,$40,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$40,$4B,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$20,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$40,$40,$40,$40,$40,$4B,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$2E,$42,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$40,$40,$40,$40,$43,$43,$43,$43,$43,$43,$43,$43,$43,$71,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$20,$ff
-
Se me ha ocurrido que en cada nivel, los 3 primeros caracteres serán los colores de fondo , pantalla y color de los caracteres. Así cada nivel tendrá sus colores particulares.
De momento colores fijos simples, el original es así ;)
Lo que me va a dar quebraderos es el tema de cambiar de carril en los coches enemigos. Pero creo que lo tengo resuelto. Ya iré contándoos.
Aqui un ejemplo.
;Creado en CBM prg STUDIO 3.6.0
;Este comprueba si el valor leido es $FF.
;Si o es, sabe que ha terminado de leer la pantalla y
;devuelve al programa.
; 10 SYS (4096)
*=$801
BYTE $0E, $08, $0A, $00, $9E, $20, $28, $34, $30, $39, $36, $29, $00, $00, $00
*=$1000
;Preparando vectores lectura escritura de la pantalla.
lda #$00 ;LO Primera pantalla a leer $4000.
sta $FB ;Lobyte leer caracter.
lda #$40 ;HI Primera pantalla a leer $4000.
sta $FC ;Hibyte leer caracter.
lda #$00 ;LO memoria de pantalla $0400.
sta $FD ;Lobyte escibir caracter.
lda #$04 ;HI memoria de pantalla $0400.
sta $FE ;Hibyte escribir caracter.
ldy #00 ;Y a 0. Necesario pero en este caso inutil.
;Leyendo los 3 primeros datos que soncolores de: fondo, marco y caracteres
lda ($fb),y ;Leer color fondo.
sta $d021
inc $fb
lda ($fb),y ;Leer color marco.
sta $d020
inc $fb
lda ($fb),y ;Leer color de los caracteres.
jsr $AB47 ;Imprimir como chr$. CHR$(5)=Blanco
inc $fb
lda #147 ;borrar pantalla. CTRL HOME para activar el color de caracteres
jsr $AB47
;Impimir pantalla
loop1
lda ($FB),y ;Lectura datos pista.
cmp #$FF ;Si es FF, se acabo el ponerla en pantalla
beq seacabo ;y se vuelve al programa.
sta ($FD),y ;Pokea caracter leido en pantalla.
inc $FB ;Aumenta en 1 el lobyte lectura.
bne pasa1 ;Si no desborda, sigue a lo suyo.
inc $FC ;Si desbordaba, aumenta en 1 el HIBYTE.
pasa1
clc
inc $FD ;Aumenta en 1 el LOBYTE de escritura.
bne pasa2 ;Si no desborda, sigue a lo suyo.
inc $FE ;Aumenta en 1 el HIBYTE de escritura.
pasa2
jmp loop1
seacabo
rts
*=$4000
; Presentación Screen 0 -
BYTE $00,$00,$05 ;Fondo y marco negro. Pistas en blanco, valor en CHR$.
BYTE $55,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$55,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49,$42
BYTE $42,$20,$20,$55,$20,$49,$55,$40,$49,$55,$40,$49,$55,$4D,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$42
BYTE $42,$20,$20,$42,$20,$42,$42,$20,$20,$42,$20,$42,$42,$4D,$4D,$20,$20,$20,$20,$42,$20,$55,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49,$20,$42,$42
BYTE $42,$20,$20,$6B,$40,$73,$6B,$40,$73,$6B,$43,$73,$42,$20,$76,$20,$20,$20,$20,$42,$20,$42,$04,$05,$20,$0D,$01,$0E,$09,$01,$0B,$0F,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$20,$20,$42,$20,$42,$42,$20,$20,$42,$20,$42,$42,$4E,$4E,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$20,$20,$4A,$20,$4B,$4A,$40,$4B,$4A,$20,$4B,$4A,$4E,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$10,$01,$12,$01,$20,$20,$42,$20,$42,$42
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$55,$40,$40,$40,$40,$40,$40,$40,$40,$49,$20,$55,$40,$49,$55,$20,$49,$20,$42,$20,$42,$03,$0F,$0D,$0D,$0F,$04,$0F,$12,$05,$0D,$01,$0E,$09,$01,$42,$20,$42,$42
BYTE $42,$42,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$20,$42,$42,$65,$42,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$55,$40,$40,$40,$40,$49,$20,$42,$20,$42,$20,$42,$42,$42,$42,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$42,$20,$42,$20,$42,$42,$67,$42,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$42,$20,$4A,$40,$4B,$4A,$20,$4B,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$20,$42,$42
BYTE $42,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$42
BYTE $42,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$42
BYTE $4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$FF
-
Añadidas alguna "mejoras".
Añado prg para echaros unas risas XD
Con los cambios intento que, cuando termine el programa, pueda reorganizar las zonas de memoria que ocupa cada cosa sin tener que teclear cambiando un montón de direcciones.
Pulsando el disparo van pasando las pantallas o niveles. Puedo poner 251 niveles mas. Pero conuno o dos mas va sobrado.
;Creado en CBM prg STUDIO 3.6.0
;Este comprueba si el valor leido es $FF.
;Si o es, sabe que ha terminado de leer la pantalla y
;devuelve al programa.
; 10 SYS (4096)
*=$801
BYTE $0E, $08, $0A, $00, $9E, $20, $28, $34, $30, $39, $36, $29, $00, $00, $00
facarg=$bc0c
intfac=$b391
sum=$b86a
res=$b853
mul=$ba2b
div=$bb12
facind=$bc9b
msb=$d010 ;Activar >255 sprites
posprites=$D000
spena=$D015
Posmemspr=$07f8 ;#2040
Joy2= $DC00
nivel=$2F00 ;Variables programa
*=$1000
;Aqui empieza el menú y espera que dispares
lda #00 ;Poner variable niveles a 0
sta nivel ;Primera carga presentacion.
levels lda nivel ;Nivel actual
rol ;X2
tax ;X=ACU
lda vectpant,x ;Direccion de la pantalla según el nivel
sta $FC ;HI
inx ;Vamos a leer la segunda direccion.
lda vectpant,x ;Leyendola.
sta $FB ;LO
jsr mostrar ;muestra la pantalla segun el nivel.
loop2 lda joy2 ;Leer joy puerto2
sbc #101 ;Restale #101
and #16 ;¿Es disparo?
beq salida ;Si. Al juego
jmp loop2 ;No, a leer joy otra vez.
;Empieza el juego en si.
salida inc nivel ;Borar todo esto, es solo la prueba
lda nivel
cmp #04
bne loop3
lda#00
sta nivel
loop3 lda Joy2 ;para mostar los niveles
cmp #127 ;al disparar. Esta rutina espera a
bne loop3 ;soltar el disparo para seguir
clc ;al comparar, se activa el flac carry y hay que
jmp levels ;resetaerlo
;MOSTRAR PANTALLA.
mostrar ;lda #<pantallas ;LOBYTE pantalla a leer.
;sta $FB ;Lobyte leer caracter.
;lda #>pantallas ;HIBYTE pantalla a leer.
;sta $FC ;Hibyte leer caracter.
lda #$00 ;LO memoria de pantalla $0400.
sta $FD ;Lobyte escibir caracter.
lda #$04 ;HI memoria de pantalla $0400.
sta $FE ;Hibyte escribir caracter.
ldy #00 ;Y a 0. Necesario pero en este caso inutil.
;Leyendo los 3 primeros datos que soncolores de: fondo, marco y caracteres
lda ($fb),y ;Leer color fondo.
sta $d021
inc $fb
lda ($fb),y ;Leer color marco.
sta $d020
inc $fb
lda ($fb),y ;Leer color de los caracteres.
jsr $AB47 ;Imprimir como chr$. CHR$(5)=Blanco
inc $fb
lda #147 ;borrar pantalla. CTRL HOME para activar el color de caracteres
jsr $AB47
;Impimir pantalla
loop1
lda ($FB),y ;Lectura datos pista.
cmp #$FF ;Si es FF, se acabo el ponerla en pantalla
beq seacabo ;y se vuelve al programa.
sta ($FD),y ;Pokea caracter leido en pantalla.
inc $FB ;Aumenta en 1 el lobyte lectura.
bne pasa1 ;Si no desborda, sigue a lo suyo.
inc $FC ;Si desbordaba, aumenta en 1 el HIBYTE.
pasa1
clc
inc $FD ;Aumenta en 1 el LOBYTE de escritura.
bne pasa2 ;Si no desborda, sigue a lo suyo.
inc $FE ;Aumenta en 1 el HIBYTE de escritura.
pasa2
jmp loop1
seacabo
rts
*=$2f00 ;Variables en memoria.$2F00-2FFF para cosas variadas XD
*=$3000 ;Tablas fijas
vectpant BYTE $40,$00 ;Presentacion
BYTE $43,$EC ;Primer nivel
BYTE $47,$D8 ;Segundo nivel
BYTE $4b,$c4 ;Tercer nivel
*=$4000 ;Pantallas
pantallas
; Presentación Screen 0 - $4000
BYTE $0E,$0E,$05 ;Fondo y marco negro. Pistas en blanco, valor en CHR$.
BYTE $55,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$55,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49,$42
BYTE $42,$20,$20,$55,$20,$49,$55,$40,$49,$55,$40,$49,$55,$4D,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$42
BYTE $42,$20,$20,$42,$20,$42,$42,$20,$20,$42,$20,$42,$42,$4D,$4D,$20,$20,$20,$20,$42,$20,$55,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49,$20,$42,$42
BYTE $42,$20,$20,$6B,$40,$73,$6B,$40,$73,$6B,$43,$73,$42,$20,$76,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$0D,$01,$0E,$09,$01,$0B,$0F,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$20,$20,$42,$20,$42,$42,$20,$20,$42,$20,$42,$42,$4E,$4E,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$20,$20,$4A,$20,$4B,$4A,$40,$4B,$4A,$20,$4B,$4A,$4E,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$10,$01,$12,$01,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$55,$40,$40,$40,$40,$40,$40,$40,$40,$49,$20,$55,$40,$49,$55,$20,$49,$20,$42,$20,$42,$03,$0F,$0D,$0D,$0F,$04,$0F,$12,$05,$0D,$01,$0E,$09,$01,$42,$20,$42,$42
BYTE $42,$42,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$20,$42,$42,$65,$42,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$55,$40,$40,$40,$40,$49,$20,$42,$20,$42,$20,$42,$42,$42,$42,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$42,$20,$42,$20,$42,$42,$67,$42,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$42,$20,$4A,$40,$4B,$4A,$20,$4B,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$3E,$0A,$0F,$19,$13,$14,$09,$03,$0B,$20,$05,$0E,$20,$10,$0F,$12,$14,$20,$32,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$3E,$04,$09,$13,$10,$01,$12,$01,$20,$10,$01,$12,$01,$20,$05,$0D,$10,$05,$1A,$01,$12,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$20,$42,$42
BYTE $42,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$42
BYTE $42,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$42
BYTE $4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$FF
; Screen 1 - $43EC
BYTE $06,$06,$05 ;Fondo y marco negro. Pistas en blanco, valor en CHR$.
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$49,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$40,$49,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$40,$40,$40,$40,$40,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$10,$15,$0E,$14,$0F,$13,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$07,$01,$13,$0F,$06,$01,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$40,$40,$40,$40,$40,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$40,$40,$40,$40,$40,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$ff
; Screen 2 - $47D8
BYTE $00,$00,$05 ;Fondo y marco negro. Pistas en blanco, valor en CHR$.
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$72,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20
BYTE $42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$40,$49,$2E,$42,$2E,$55,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$40,$40,$40,$40,$40,$49,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$40,$49,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$40,$40,$40,$40,$40,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$10,$15,$0E,$14,$0F,$13,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$07,$01,$13,$0F,$06,$01,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$40,$40,$40,$40,$40,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$40,$4B,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$20,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$40,$40,$40,$40,$40,$4B,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$2E,$42,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$40,$40,$40,$40,$43,$43,$43,$43,$43,$43,$43,$43,$43,$71,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$20,$ff
; Screen 3 - $4BC4
BYTE $07,$07,$90 ;Fondo y marco negro. Pistas en blanco, valor en CHR$.
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$72,$40,$40,$40,$72,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$42,$20
BYTE $42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$40,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$40,$49,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$40,$40,$40,$40,$40,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$10,$15,$0E,$14,$0F,$13,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$07,$01,$13,$0F,$06,$01,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$40,$40,$40,$40,$40,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$40,$4B,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$20,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$40,$40,$40,$40,$40,$4B,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$2E,$42,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$40,$40,$40,$40,$43,$43,$43,$43,$43,$43,$43,$43,$43,$71,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$20,$ff
-
Hey! tiene buena pinta!
-
La verdad que se te ve manejando el CM como si fuera algo sencillo, jejj.
-
Intento que sea jugable y "vistoso". :D
@kikems:
Es "sencillo" aprender CM, pero lioso a la hora de hacer un programa modulable.
En mi firma verás el primer programa que se solía hacer cuando aprendías a usar ensambladores o monitores.
Mi intención al crear este hilo, a parte de motivarme de una vez a hacer algo ;D, es la de animar al personal a empezar a trastear en CM.
Iré poniendo los avances que vaya haciendo en el código siempre intentando explicarlo dentro de mis limitadas posibilidades. Se como hago que funcione, pero explicarlo, a veces, para mi es más difícil que hacerlo.
-
Pufff... lo tengo abandonadisimo y mira que le tengo ganas a este proyecto.
A ver si en estas vacaciones le puedo dedicar algo de tiempo.
-
Si es que te distraen constantemente con otras cosas!
-
Si es que te distraen constantemente con otras cosas!
¿Como lo sabes? :o
-
Tengo un ceksto centido...
-
Un año y 7 meses después, por fín he sacado tiempo libre para tratar de retomar este proyecto casi olvidado.
He hecho la parte del menú añadiendole "vehiculos" que circulan siguiendo el circuito.
En la versión final no se verán puntitos XD, se verán coches formados por sprites que irán moviendose pixel a pixel siguiendo a esos puntos, de caracter a caracter.
El código puede optimizarse , es la primera versión un poco "bruta", pero la cuelgo igualmente para el que quiera echarle un ojo.
;CBM PRG STUDIO 3.10.0
;CONSTANTES:
facarg=$bc0c
intfac=$b391
sum=$b86a
res=$b853
mul=$ba2b
div=$bb12
facind=$bc9b
msb=$d010 ;Activar >255 sprites
posprites=$D000
spena=$D015
Posmemspr=$07f8 ;#2040
Joy2= $DC00
nivel=$2F00 ;Variables programa
; 10 SYS (4096)
*=$0801
BYTE $0E, $08, $0A, $00, $9E, $20, $28, $34, $30, $39, $36, $29, $00, $00, $00
;*******************************************************************************
;*******************************************************************************
*=$1000
;*******************************************************************************
;*******************************************************************************
;Arranque del juego. Puesta a cero de variables:
;LECTURA DE PANTALLAS.
;Puesta a cero de lectura de niveles.
lda #<SCR ;Lo Lectura pantallas
sta Lect0+1
lda #>SCR ;Hi lectura pantallas
sta Lect0+2
;Puesta a cero posiciones coches por nivel.
lda #<COORNIV
sta Lect1+1 ;LO
lda #>COORNIV
sta Lect1+2 ;HI
;Copiar pistas y Coordenadas de los coches
jsr mostrar ;Mostar niveles
jsr NivCoch ;Copiar variables coches (copia según nivel).
;Prueba de movimiento de coordenadas.
Decero; clc
ldx #03
stx RegX
loop1
;Guardando coordenadas para su recuperación en caso de colisión.
ldx RegX
lda CoorX,x
sta TempX
lda CoorY,x
sta TempY
;Moviendo a nuevas coordenadas
jsr MOVER
;Calcular vectores pantalla 16 bit.
jsr CHECK
;¿Hay obstáculo?
jsr Quehay
;Pokea un punto para saber por donde navegan las coordenadas.
ldx RegX
ldy CoorX,x
lda #81
sta ($FB),y
;Bucle de freno para tener tiempo de ver lo que ocurre XD
ldx #25
lop1 ldy #255
lop2 dey
bne lop2
dex
bne lop1
;Pokea un espacio para borrar punto.
ldx RegX
ldy CoorX,x
lda #32 ; #32
sta ($FB),y
dec RegX
bmi Decero
jmp loop1
;===================================SUBRUTINAS==================================
;===================================MOVER COCHES X e Y
MOVER
ldx RegX
Bucle0 lda Dir,x
beq Der
cmp #01
beq Arr
cmp #02
beq Izq
cmp #03
beq Abaj
;-------
Der Inc CoorX,x
jmp sigue0
;-------
Izq dec CoorX,x
jmp sigue0
;-------
Arr dec CoorY,x
jmp sigue0
;-------
Abaj inc CoorY,x
Sigue0 rts
;===================================CHECK.
;Calcula las coordenadas X e Y y carga en ACU lo que haya debajo.
CHECK
ldx RegX
lda #00 ;HI
ldy CoorY,x ;LO coordenada Y de cada coche
jsr intfac
jsr facarg
lda #00 ;HI
ldy #40 ;LO * #40
jsr intfac
jsr mul
jsr facind
lda $64 ;LO
ldy $65 ;HI resultado de CoordY*40
jsr intfac
jsr facarg
lda #04 ;HI
ldy #00 ;LO sumar resultado por #1024
jsr intfac
jsr sum
jsr facind
lda $64 ;LO
ldy $65 ;HI
sty $FB ;LO
sta $FC ;HI
ldx RegX ;Recupernado el valor de X de antes de multiplicar.
ldy CoorX,x
lda ($FB),y ;Peek(1024+(Y*40)+X)
clc
rts
;===================================QUE HAY.
Quehay ;Aquí llega con el valor a comprobar en el ACU.
cmp #32
bne paso2
rts
paso2
cmp #66 ;Obstaculo |
bne paso3
jsr Recor
jsr CdirXtoY
rts
paso3
cmp #64 ;Obstaculo -
bne paso4
jsr Recor
jsr CdirYtoX
rts
paso4
rts ;Volviendo sin nada o futuras ampiaciones del juego.
;Recupera antiguas coordenadas y las recalcula para ceropage.
Recor
ldx RegX
lda TempX
sta CoorX,x
lda TempY
sta CoorY,x
jsr CHECK
rts
;===================================CAMBIODIR.
CdirXtoY ;Cambia dirección de X a Y
ldx RegX
lda CoorY,x
sta TempY ;GUardando Y
inc CoorY,x ;Chequear una posición por debajo.
jsr CHECK ;Recalcular coord 16 bit.
cmp #64
beq paso5
lda #03 ;Abajo
sta Dir,x
inc TempY
jmp Recor ;Cambia direccion y recupera 16 bit
paso5
dec TempY
lda #01 ;Arriba
sta Dir,x
jmp Recor ;Cambia direccion y recupera 16 bit
CdirYtoX
ldx RegX
lda CoorX,x
sta TempX ;GUardando Y
inc CoorX,x ;Chequear una posición a la derecha.
jsr CHECK ;Recalcular coord 16 bit.
cmp #66
beq paso6
lda #00 ;Der
sta Dir,x
inc TempX
jmp Recor ;Cambia direccion y recupera 16 bit
paso6
dec Tempx
lda #02 ;Izq
sta Dir,x
jmp Recor ;Cambia direccion y recupera 16 bit
rts
;===================================MOSTRAR PANTALLAS.
mostrar
;Lectura colores pantallas:
jsr Leer
sta $d021 ;Color Fondo.
jsr Leer
sta $d020 ;Color marco.
jsr Leer
jsr $ab47 ;Color caracteres.
lda #147 ;CHR$ CLR screen
jsr $ab47 ;Para que se muestren del color deseado. Ahorro RAM color.
jsr Leer
sta spena ;Conecta los sprites que van a verse.
;Siempre puesta a cero de ESCRITURA Ram pantalla.
lda #00
sta Escr0+1 ;Lo Escritura RAM pantalla
lda #04
sta Escr0+2 ;Hi Escritura RAM pantalla
;Copiar 1000 chars a pantalla.
loop0 jsr Leer ;Leyendo datos pantallas.
cmp #255
clc
beq fin0 ;Si=Adios
Escr0 sta $ffff ;No importa el valor. Tendrá el correcto.
inc Escr0+1 ;Aumento en 1 el LOBYTE escritura.
bne paso1
inc Escr0+2 ;Aumento en 1 el HIBYtE escritura.
paso1 jmp loop0
fin0 rts
;===================================LEER.
Leer ;Lectura de niveles.
Lect0 lda $ffff ;No importa el valor. Tendrá el correcto.
Ajuste inc Lect0+1 ;Aumento en 1 el LOBYTE lectura.
bne paso0
inc Lect0+2 ;Hi
paso0 rts
;===================================COPIAR VARIABLES COCHES SEGUN NIVEL.
NIVCOCH ldy #00
Lect1 lda $ffff
cmp #255
beq fin2
clc
sta CoorX,y
inc Lect1+1
bne paso9
inc Lect1+2
paso9 iny
jmp Lect1
fin2 rts
;*******************************************************************************
;EMPIEZA LA ZONA DE VARIABLES
;*******************************************************************************
CoorX BYTE $00,$00,$00,$00 ;Coordenadas X de los coches
CoorY BYTE $00,$00,$00,$00 ;Coordenadas Y de los coches
Dir BYTE $00,$00,$00,$00 ;Direcciones de cada coche.0-3
TempX BYTE $00 ;Cache coordenada X para recuperar
TempY BYTE $00 ;Cache coordenada Y para recuperar
Borra BYTE $00 ;Permiso para borrar el punto.
RegX BYTE $00 ;Guarda el registro X
;*******************************************************************************
;Coches por nivel
COORNIV ;X,Y y DIRECCION
; X0 X1 X2 X3 Y0 Y1 Y2 Y3 D0 D1 D2 D3
BYTE $02,$02,$25,$1d,$09,$16,$16,$02,$00,$01,$02,$00,$ff ;Presentacion
BYTE $0c,$0c,$01,$17,$17,$01,$0c,$0c,$00,$02,$01,$01,$ff ;Niv1
BYTE $0c,$0c,$01,$17,$17,$01,$0c,$0c,$00,$02,$01,$01,$ff ;Niv2
BYTE $0c,$0c,$01,$17,$17,$01,$0c,$0c,$00,$02,$01,$01,$ff ;Niv3
;*******************************************************************************
;*******************************************************************************
;*******************************************************************************
;*******************************************************************************
;Pantallas
*=$3000
SCR
BYTE $0E,$0E,$05,$03 ;Fondo, marco, pistas,sprites conectados
BYTE $55,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$55,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49,$42
BYTE $42,$20,$20,$55,$20,$49,$55,$40,$49,$55,$40,$49,$55,$4D,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$42
BYTE $42,$20,$20,$42,$20,$42,$42,$20,$20,$42,$20,$42,$42,$4D,$4D,$20,$20,$20,$20,$42,$20,$55,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49,$20,$42,$42
BYTE $42,$20,$20,$6B,$40,$73,$6B,$40,$73,$6B,$43,$73,$42,$20,$76,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$0D,$01,$0E,$09,$01,$0B,$0F,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$20,$20,$42,$20,$42,$42,$20,$20,$42,$20,$42,$42,$4E,$4E,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$20,$20,$4A,$20,$4B,$4A,$40,$4B,$4A,$20,$4B,$4A,$4E,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$10,$01,$12,$01,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$55,$40,$40,$40,$40,$40,$40,$40,$40,$49,$20,$55,$40,$49,$55,$20,$49,$20,$42,$20,$42,$03,$0F,$0D,$0D,$0F,$04,$0F,$12,$05,$0D,$01,$0E,$09,$01,$42,$20,$42,$42
BYTE $42,$42,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$20,$42,$42,$65,$42,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$55,$40,$40,$40,$40,$49,$20,$42,$20,$42,$20,$42,$42,$42,$42,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$42,$20,$42,$20,$42,$42,$67,$42,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$42,$20,$4A,$40,$4B,$4A,$20,$4B,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$3E,$0A,$0F,$19,$13,$14,$09,$03,$0B,$20,$05,$0E,$20,$10,$0F,$12,$14,$20,$32,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$3E,$04,$09,$13,$10,$01,$12,$01,$20,$10,$01,$12,$01,$20,$05,$0D,$10,$05,$1A,$01,$12,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$20,$42,$42
BYTE $42,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$42
BYTE $42,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$42
BYTE $4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$ff
; Screen 1
BYTE $06,$06,$05,$03 ;Fondo, marco, pistas,sprites conectados
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$49,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$40,$49,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$40,$40,$40,$40,$40,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$10,$15,$0E,$14,$0F,$13,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$07,$01,$13,$0F,$06,$01,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$40,$40,$40,$40,$40,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$40,$40,$40,$40,$40,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$ff
; Screen 2
BYTE $00,$00,$05,$07 ;Fondo, marco, pistas,sprites conectados
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$72,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20
BYTE $42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$40,$49,$2E,$42,$2E,$55,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$40,$40,$40,$40,$40,$49,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$40,$49,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$40,$40,$40,$40,$40,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$10,$15,$0E,$14,$0F,$13,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$07,$01,$13,$0F,$06,$01,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$40,$40,$40,$40,$40,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$40,$4B,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$20,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$40,$40,$40,$40,$40,$4B,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$2E,$42,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$40,$40,$40,$40,$43,$43,$43,$43,$43,$43,$43,$43,$43,$71,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$20,$ff
; Screen 3
BYTE $07,$07,$90,$07 ;Fondo, marco, pistas,sprites conectados
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$72,$40,$40,$40,$72,$40,$40,$40,$40,$40,$40,$40,$40,$40,$49,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$42,$20
BYTE $42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$40,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$40,$49,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$40,$40,$40,$40,$40,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$10,$15,$0E,$14,$0F,$13,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$07,$01,$13,$0F,$06,$01,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$40,$40,$40,$40,$40,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$40,$4B,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$20,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$40,$40,$40,$40,$40,$4B,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$4A,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$2E,$42,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$40,$40,$40,$40,$40,$43,$43,$43,$43,$43,$43,$43,$43,$43,$71,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$4B,$20,$ff
Comento algúnas cosas.
Espero ser capáz de explicame de manera comprensiva, soy mal profesor XD.
Estoy usando subrutinas a porrillo para hacer el código algo más comprensible.
Para los niveles, incluida la presentación, incluyo antes de cada nivel los datos de colores de fondo,marco,pistas y sprites conectados que habrá en ese nivel.
Utilizo rutinas del kernel $AB47 que imprime el caracter CHR$ que necesites.
Para cambiar los colores de las pistas, primero selecciono el color CHR$(xx) y después el CHR$(147) que es CLR, limpia la pantalla y así, todos los carácteres tendrán el nuevo color, así me ahorro tocar la RAM color.
Mi idea es que siempre se muevan los 4 coches pero que simplemente apagando los sprites innecesarios se pueda varial el nivél de dificultad.
Los 4 "coches" se mueven usando un bucle y tablas de coordenadas variables. De está manera, teoricamente se podrian llegar a manejar 255 "objetos" sin enormes cantidades de código, pero demasiado LOOP ralentiza la ejecución del programa.
Las pantallas se muestran secuencialmente. Cada vez que llamo a la rutina, automáticamente se mostrará la siguiente pantalla o nivél. Lo mismo para las coordenadas de los vehiculos para cada nivél y las futuras ampliaciones.
Lo consigo variando directamente los vectores de lectura/escritura en el propio código.
Por ejemplo:
____________________________________________________________________________________
LDA #<pantallas Se carga con el LOBYTE donde estén los niveles
STA Lectura+1 y lo guarda como LOBYTE de Lectura
LDA #>pantallas Se carga con el HIBYTE donde estén los niveles.
STA Lectura+2 y lo guarda como HIBYTE de lectura.
Lo mismo para Escritura, en este caso $0400 que es RAM pantalla.
..............................
Lectura LDA $4000
Escritura STA $0400
INC lectura+1 Aumento el LOBYTE de $4000, pasa a ser $4001
BNE paso1 si no es=0, saltar el ajuste de HIBYTE
INC lectura+2 Aumenta el HIBYTE. De $4000, pasa a 4100.
paso1
INC Escritura+1
etc............
Lo mismo para Escritura. Solo hay que tener en cuenta resetear esos vectores cada vez que el juego empiece de cero y la escritura cada vez que se vaya a usar.
Si veís el código, esos vectores los tengo como $FFFF. No importa el valor que pongáis, al arrancar el juego, los pongo a sus valores correctos.
Para saber cuando termina el bucle de lectura/escritura, reviso el valor leido, si es 255, se termina de leer y se sale del bucle.
*$4000
pantallas BYTE $00,$44,$55,$32,....etc
____________________________________________________________________________________
Si queréis preguntar algo, adelante. Trataré de explicarme lo mejor que pueda ;)
Regresaré de aquí a 1 año y 7 meses ;D ;D ;D
-
Un año y siete meses... estas al límite del vaporware :D
Ejecuto el programa y veo el menu, los puntos/coches parpadean (¿es normal?) y me imagino que todavía no pasa nada cuando le das al disparo, verdad?
-
Sip. Es solo para mover los coches automáticamente siguiendo los carriles.
He hecho que se vean puntitos para poder ver como trabaja, realmente, esos puntitos no se verán nunca, solo sirven para detectar los obstáculos, bonus y otras cosas del juego.
Vaporware...a veces la vida se complica sin tener elección sobre ello. :-\
-
Vaporware...a veces la vida se complica sin tener elección sobre ello. :-\
Podemos crear una subcategoría Vaporware justificado... :P
-
Qué mamoncete eres XD
Bueno, llevo rompiéndome la cabeza con el programa unos cuantos días por que no terminaba de funcionar correctamente. Según el nivel y/o la dirección, los coches atravesaban las barreras pasando de los controles y largándose de viaje por toda la memoria del Commodore 64.
Al final era una estupidez ::) . Siempre es error humano.
Al editar los niveles, resulta ser que hay dos caracteres diferentes numéricamente para la barra horizontal pero idénticos visualmente, el valor #64/$40 y el valor #67/$43. Hice una mezcla de ambos sin darme cuenta. Soy un TOOOOORPEEEE y un grafista muy despistado.
He reescrito el código solucionando otros problemas a la hora de detectar obstáculos. Espero que aparir de ahora, esto se agilice y pueda ir avanzando sin más tropiezos como este.
Lo próximo es hacer desaparecer los testigos de movimiento de los detectores de caracteres y mostrar los sprites moviéndose pixel a pixel siguiendo a los detectores.
¿Para qué detectores?. Pues para poder girar y desplazar el coche prota, contar los puntos comidos, recoger objetos y otras cosillas que se me ocurra implementar, como bombas para romper paredes y acceder a los circuitos laterales cerrados al empezar.
Dejo el código fuente como siempre, por si a alguno le da por estudiarlo y ver los cambios por si me corrige o mejora algo ;)
;Cambiado el sistema de comprobación de obstáculo y solucionado tema gráficos XD.
;CBM PRG Studio 3.10.0
;
;CONSTANTES:
facarg=$bc0c
intfac=$b391
sum=$b86a
res=$b853
mul=$ba2b
div=$bb12
facind=$bc9b
msb=$d010 ;Activar >255 sprites
posprites=$D000
spena=$D015
Posmemspr=$07f8 ;#2040
Joy2= $DC00
nivel=$2F00 ;Variables programa
; 10 SYS (4096)
*=$0801
BYTE $0E, $08, $0A, $00, $9E, $20, $28, $34, $30, $39, $36, $29, $00, $00, $00
;*******************************************************************************
;*******************************************************************************
*=$1000
;*******************************************************************************
;*******************************************************************************
;Arranque del juego. Puesta a cero de variables:
;LECTURA DE PANTALLAS.
;Puesta a cero de lectura de niveles.
lda #<SCR ;Lo Lectura pantallas
sta Lect0+1
lda #>SCR ;Hi lectura pantallas
sta Lect0+2
;Puesta a cero posiciones coches por nivel.
lda #<COORNIV
sta Lect1+1 ;LO
lda #>COORNIV
sta Lect1+2 ;HI
;Copiar pistas y Coordenadas de los coches
;Mostrar menú y cargar valores coordenadas coches para el menú.
jsr mostrar ;Mostar niveles
jsr NivCoch ;Copiar variables coches (copia según nivel).
;Mostrar primera pantalla juego y cargar valores coordenadas coches
jsr mostrar ;Mostar niveles
jsr NivCoch ;Copiar variables coches (copia según nivel).
;Prueba de movimiento de coordenadas.
Decero
lda #03 ;Valor del bucle para movimiento de los 4 vehículos.
sta RegX ;Guardando para procesos.
loop1
;CHECKEAR si choco con algo en sguiente movimiento.
ldx RegX ;Puntero del coche a mover
lda CoorX,x ;Carga coordenada X del vehiculo x XD
sta CACOX ;Guardo en variable de la rutina a calcular X e Y a 16 bits pantalla.
lda CoorY,x ;Idem con Y
sta CACOY
lda Dir,x ;Comprobando dirección para chequeo colisión:
beq checkder ;=0, derecha.
cmp #01
beq checkup ;=1, UP arriba.
cmp #02 ;izqui
beq checkizq ;=2, Izquierda.
jmp checkdown ;Si no es ninguna de las anteriores, es=3, abajo.
checkder ;CHECK DERECHA
inc CACOX ;A comprobar si puedo mover el punto en su dirección.
jsr CALC16
dec CACOX ;Recupero valor anterior.
cmp #66 ;(|) obstaculo
bne fin3 ;Si no hay obstáculo, paso.
jsr XtoY ;Si lo hay, cambiar de dirección.
fin3 jmp poke ;Seguir con el programa,
checkizq
dec CACOX ;A comprobar si puedo mover el punto en su dirección.
jsr CALC16
inc CACOX ;Recupero valor anterior.
cmp #66 ;(|) obstaculo
bne fin4
jsr XtoY
fin4 jmp poke
checkup
dec CACOY ;A comprobar si puedo mover el punto en su dirección.
jsr CALC16
inc CACOY ;Recupero valor anterior.
cmp #67 ;(-) obstaculo
bne fin5
jsr YtoX
fin5 jmp poke
checkdown
inc CACOY ;A comprobar si puedo mover el punto en su dirección.
jsr CALC16
dec CACOY ;Recupero valor anterior.
cmp #67 ;(-) obstaculo
bne fin6
jsr YtoX
fin6 jmp poke
;Pokea punto en pantalla
poke
jsr CALC16
lda #81
ldy CACOX
sta ($FB),y
;Bucle de freno
ldx #20
fren1 ldy #255
fren2 dey
bne fren2
dex
bne fren1
;Borra punto en pantalla
lda #32
ldy CACOX
sta ($FB),y
;Mover coches una vez decididas las nuevas direcciones.
jsr MOVER
;Decrementa RegX hasta ser negativo
ldx RegX
stx $0400 ;Testigo del numero de coche actual.
dec RegX
bpl repe ;Mientras sea positivo, repite el bucle. >=0 hasta 127
jmp Decero ;Sale del bucle
repe jmp loop1
;===================================SUBRUTINAS==================================
;===================================MOVER COCHES X e Y
MOVER
;guardando las coordenadas temporales en su lugar fijo.
ldx RegX ;Numero de vehiculo actual a mover.
lda cacox
sta coorx,x
lda cacoy
sta coory,x
;Aquí empieza el movimiento.
Bucle0 lda Dir,x
beq Der
cmp #01
beq Arr
cmp #02
beq Izq
jmp Abaj
;-------
Der Inc CoorX,x
jmp sigue0
;-------
Izq dec CoorX,x
jmp sigue0
;-------
Arr dec CoorY,x
jmp sigue0
;-------
Abaj inc CoorY,x
Sigue0 rts
;===================================CALC16.
CALC16
;Calcula las coordenadas X e Y y carga en ACU lo que haya debajo.
;$FB y $FC contendrán el valor calculado a utilizar.
lda #00 ;HI
ldy CACOY ;LO coordenada Y de cada coche
jsr intfac
jsr facarg
lda #00 ;HI
ldy #40 ;LO * #40
jsr intfac
jsr mul
jsr facind
lda $64 ;LO
ldy $65 ;HI resultado de CoordY*40
jsr intfac
jsr facarg
ldy #00 ;LO sumar resultado por #1024
lda #04 ;HI
jsr intfac
jsr sum
jsr facind
lda $64 ;LO
ldy $65 ;HI
sty $FB ;LO
sta $FC ;HI
ldy CACOX
lda ($FB),y ;Peek(1024+(Y*40)+X)
clc
rts
;===================================
;===================================CAMBIODIR.
;Solo checkeo en una dirección ya que si hay obstáculo, irá al contrario y si no lo hay, hacia el lado libre.
XtoY ;Cambia dirección de X a Y
inc CACOY ;Aumentando la coordenada Y para ver si está libre u ocupada.
jsr CALC16
dec CACOY ;Recuperando su valor anerior para que el coche aparezca en su lugar.
cmp #67 ;(-)
bne abajo
arriba lda #01
ldx RegX
sta Dir,x ;Guardando la nueva dirección.
rts
abajo lda #03
ldx RegX
sta Dir,x
rts
YtoX ;Cambia dirección de Y a X
inc CACOX
jsr CALC16
dec CACOX
cmp #66 ;(|)
bne dere
izqui lda #02
ldx RegX
sta Dir,x
rts
dere
lda #00
ldx RegX
sta Dir,x
rts
;===================================MOSTRAR PANTALLAS.
mostrar
;Lectura colores pantallas:
jsr Leer
sta $d021 ;Color Fondo.
jsr Leer
sta $d020 ;Color marco.
jsr Leer
jsr $ab47 ;Color caracteres.
lda #147 ;CHR$ CLR screen
jsr $ab47 ;Para que se muestren del color deseado. Ahorro RAM color.
jsr Leer
sta spena ;Conecta los sprites que van a verse.
;Siempre puesta a cero de ESCRITURA Ram pantalla.
lda #00
sta Escr0+1 ;Lo Escritura RAM pantalla
lda #04
sta Escr0+2 ;Hi Escritura RAM pantalla
;Copiar 1000 chars a pantalla.
loop0 jsr Leer ;Leyendo datos pantallas.
cmp #255
clc
beq fin0 ;Si=Adios
Escr0 sta $ffff ;No importa el valor. Tendrá el correcto.
inc Escr0+1 ;Aumento en 1 el LOBYTE escritura.
bne paso1
inc Escr0+2 ;Aumento en 1 el HIBYtE escritura.
paso1 jmp loop0
fin0 rts
;===================================LEER.
Leer ;Lectura de niveles.
Lect0 lda $ffff ;No importa el valor. Tendrá el correcto.
Ajuste inc Lect0+1 ;Aumento en 1 el LOBYTE lectura.
bne paso0
inc Lect0+2 ;Hi
paso0 rts
;===================================COPIAR VARIABLES COCHES SEGUN NIVEL.
;Funciona por los mismos principios que las copias de pantalla.
NIVCOCH ldy #00
Lect1 lda $ffff
cmp #255
beq fin2
sta CoorX,y
jsr leer2
paso9 iny
jmp Lect1
fin2 jsr leer2
rts
;================================LEER DATOS COCHES NIVEL
leer2 inc Lect1+1
bne paso10
inc Lect1+2
paso10 rts
;*******************************************************************************
;EMPIEZA LA ZONA DE VARIABLES
;*******************************************************************************
CoorX BYTE $00,$00,$00,$00 ;Coordenadas X de los coches
CoorY BYTE $00,$00,$00,$00 ;Coordenadas Y de los coches
Dir BYTE $00,$00,$00,$00 ;Direcciones de cada coche.0-3
TempX BYTE $00 ;Cache coordenada X para recuperar
TempY BYTE $00 ;Cache coordenada Y para recuperar
Borra BYTE $00 ;Permiso para borrar el punto.
RegX BYTE $00 ;Guarda el registro X
CACOX BYTE $00
CACOY BYTE $00
;*******************************************************************************
;Coches por nivel
COORNIV ;X,Y y DIRECCION
; X0 X1 X2 X3 Y0 Y1 Y2 Y3 D0 D1 D2 D3
BYTE $02,$02,$25,$1d,$09,$16,$16,$02,$00,$01,$02,$00,$ff ;Presentacion
BYTE $0c,$0c,$01,$17,$17,$01,$0c,$0c,$00,$02,$01,$01,$ff ;Niv1
BYTE $0c,$0c,$01,$17,$17,$01,$0c,$0c,$00,$02,$01,$01,$ff ;Niv2
BYTE $0c,$0c,$01,$17,$17,$01,$0c,$0c,$00,$02,$01,$01,$ff ;Niv3
;*******************************************************************************
;*******************************************************************************
;*******************************************************************************
;*******************************************************************************
;Pantallas
*=$3000
SCR
BYTE $0E,$0E,$05,$03 ;Fondo, marco, pistas,sprites conectados
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$49
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$49,$42
BYTE $42,$20,$20,$55,$20,$49,$55,$43,$49,$55,$43,$49,$55,$4D,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$42
BYTE $42,$20,$20,$42,$20,$42,$42,$20,$20,$42,$20,$42,$42,$4D,$4D,$20,$20,$20,$20,$42,$20,$55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$49,$20,$42,$42
BYTE $42,$20,$20,$6B,$43,$73,$6B,$43,$73,$6B,$43,$73,$42,$20,$76,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$0D,$01,$0E,$09,$01,$0B,$0F,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$20,$20,$42,$20,$42,$42,$20,$20,$42,$20,$42,$42,$4E,$4E,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$20,$20,$4A,$20,$4B,$4A,$43,$4B,$4A,$20,$4B,$4A,$4E,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$10,$01,$12,$01,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$55,$43,$43,$43,$43,$43,$43,$43,$43,$49,$20,$55,$43,$49,$55,$20,$49,$20,$42,$20,$42,$03,$0F,$0D,$0D,$0F,$04,$0F,$12,$05,$0D,$01,$0E,$09,$01,$42,$20,$42,$42
BYTE $42,$42,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$20,$42,$42,$65,$42,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$55,$43,$43,$43,$43,$49,$20,$42,$20,$42,$20,$42,$42,$42,$42,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$42,$20,$42,$20,$42,$42,$67,$42,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$42,$20,$4A,$43,$4B,$4A,$20,$4B,$20,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$4A,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$3E,$0A,$0F,$19,$13,$14,$09,$03,$0B,$20,$05,$0E,$20,$10,$0F,$12,$14,$20,$31,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$3E,$04,$09,$13,$10,$01,$12,$01,$20,$10,$01,$12,$01,$20,$05,$0D,$10,$05,$1A,$01,$12,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$20,$42,$42
BYTE $42,$42,$20,$4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$20,$42,$42
BYTE $42,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$42,$42
BYTE $42,$4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$42
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$FF
; Screen 1
BYTE $06,$06,$05,$03 ;Fondo, marco, pistas,sprites conectados
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$49,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$49,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$10,$15,$0E,$14,$0F,$13,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$07,$01,$13,$0F,$06,$01,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$ff
; Screen 2
BYTE $00,$00,$05,$07 ;Fondo, marco, pistas,sprites conectados
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$72,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$49,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20
BYTE $42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$49,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$49,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$10,$15,$0E,$14,$0F,$13,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$07,$01,$13,$0F,$06,$01,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$20,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$71,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$20,$ff
; Screen 3
BYTE $07,$07,$90,$07 ;Fondo, marco, pistas,sprites conectados
BYTE $55,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$72,$43,$43,$43,$72,$43,$43,$43,$43,$43,$43,$43,$43,$43,$49,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$42,$20
BYTE $42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$49,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$55,$43,$43,$43,$43,$43,$43,$43,$49,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$10,$15,$0E,$14,$0F,$13,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$07,$01,$13,$0F,$06,$01,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$30,$30,$30,$30,$30,$20,$42,$20,$20,$20,$20,$20,$20,$20,$42,$20,$20,$20,$20,$20,$42,$20,$42,$20,$20,$20,$20,$20,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$20,$20,$20,$20,$20,$20,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$20,$42,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$42,$20,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$42,$20
BYTE $42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$20,$20,$20,$20,$20,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$2E,$4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$2E,$42,$20
BYTE $42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$20,$20,$20,$20,$20,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$2E,$42,$20
BYTE $4A,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$71,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$4B,$20,$ff
-
Avanza esto!!