Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Maniako

Páginas: 1 ... 4 5 [6] 7 8 ... 64
76
General / Re:Nuevos juegos publicados
« en: Agosto 08, 2017, 09:52:49 »
Algunos tienen fallitos aún por resolver, pero estan muy bien

77
Off-topic / Re:Cosas interesantes...
« en: Agosto 05, 2017, 06:37:23 »
Me voy a poner yo pesao con un dibujante de los 80 hombre...

QUE GRANDE JOSE RAMÓN, DE SABADABADÁ

GENIO!

MAESTRO!

INCREíBLE JOSE RAMÓN! Dónde firma sus libros? VOY CORRIENDO! GRANDE! GRANDE! (que eso de GRANDE me da un asco también, buarj!) (Sí, a mí me dan asco muchas cosas)

https://www.youtube.com/watch?v=6urVkUVoXVA

Joher con San Isidro, tipical spanish  ;D ;D
Que otro haga el trabajo mientras el ... ;D ;D ;D

Me has puesto nostalgico, si, por tú culpa.

78
Off-topic / Re:Cosas interesantes...
« en: Agosto 04, 2017, 06:36:31 »
Desde luego, sincero lo es un rato.

Solo era.curro, pero por lo.menos.lo hacia bien.


Editado. Tato por rato. Es lo que tiene escribir desde el teléfono

79
Desarrollo / Re:Geografia espacial
« en: Agosto 01, 2017, 07:22:24 »
Jajaja. La de cosas curiosas que se hicieron en su momento.
Se está generado desde el basic?. Pues no.se mueve tan mal.

80
General / Re:Nuevos juegos publicados
« en: Julio 30, 2017, 23:23:22 »
Alguien ha probado el TAP del Pentagram en hardware real? En VICE funciona pero he intentado cargarlo en el C64 con un interface de audio y no hay manera  :(

Acabo de probarla en el C64 real con la 1541U2 como tape.
Funciona perfectamente.

81
Que rojos?. Que azules?.
Ahí no veo nada.

82
General / Re:Nuevos juegos en desarrollo
« en: Julio 25, 2017, 18:54:00 »

83
General / Re:PVM en Rockelinux 2: "Amantes del pixel"
« en: Julio 25, 2017, 18:51:42 »
Oh!!. Con la palabra mágica viene incluido el billete de avión? XD

Es una pena que esté tan lejos.
Espero que colguéis fotos y vídeos.

84
Off-topic / Re:Cosas interesantes...
« en: Julio 23, 2017, 23:22:13 »
El museo anónimo de Dany.

https://www.youtube.com/watch?v=ERPXpE_g9h0

Impresionante. Pero el video me ha llegado a marear con tanto meneo.

85
No lo estreses que ya va bastante loco con todo lo que hace este hombre.  ;D
 

86
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




87
General / Re:Cosas interesantes
« en: Julio 18, 2017, 11:16:15 »
http://www.datadoor.net/dubcrt/

Alguién puede leerme lo que hace?.
No paran de cambiar el texto y se me hace imposible leerlo así en inglés.

88
Commodore 128 / Re:Commodore 128D
« en: Julio 17, 2017, 15:08:38 »
Eso es aceite de motor?. :o
Suelo usar un pincel con cedras duras, KH7 (desengrasante limpiador), un trapo de algodón y aire a presión.

Riego el teclado con kh7 y con el pincel voy pasando por los huecos .
De vez en cuando, cuando la porqueria ya esta suelta, paso el trapo para eliminarla.

Repito los mismos pasos hasta que no sale guarreria.

Luego, paso otro trapo humedecido para eliminar en lo posible el.kh7.

Eso para las cajas y teclados.

89
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. :-\

90
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.

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

Páginas: 1 ... 4 5 [6] 7 8 ... 64