Autor Tema: Programa en código máquina desde cero (o intento de crear un juego).  (Leído 10486 veces)

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Programa en código máquina desde cero (o intento de crear un juego).
« Respuesta #15 en: Julio 17, 2017, 04:36:24 »
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?
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Maniako

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1008
  • SYS 8*4096
    • Ver Perfil
Re:Programa en código máquina desde cero (o intento de crear un juego).
« Respuesta #16 en: Julio 17, 2017, 06:50:57 »
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. :-\
LDA #$50
STA $0400
RTS
Lloré cuando conseguí hacer esto con el monitor del FC1.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Programa en código máquina desde cero (o intento de crear un juego).
« Respuesta #17 en: Julio 17, 2017, 13:52:55 »
Vaporware...a veces la vida se complica sin tener elección sobre ello. :-\

Podemos crear una subcategoría Vaporware justificado... :P
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Maniako

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1008
  • SYS 8*4096
    • Ver Perfil
Re:Programa en código máquina desde cero (o intento de crear un juego).
« Respuesta #18 en: Julio 23, 2017, 02:23:20 »
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 ;)

Código: [Seleccionar]
;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



LDA #$50
STA $0400
RTS
Lloré cuando conseguí hacer esto con el monitor del FC1.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Programa en código máquina desde cero (o intento de crear un juego).
« Respuesta #19 en: Julio 23, 2017, 15:59:39 »
Avanza esto!!
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com