Proyecto Atari-DMD
- ZZT
- Site Admin
- Mensajes: 10897
- Registrado: Mar Nov 07, 2006 2:45 pm
- Reputación: 10
- Ubicación: La Florida-Santiago-Chile
- Contactar:
Proyecto Atari-DMD
Welcome to my latest project: Atari DMD
http://www.retrogames.cl/dmd.html
Que m....a es un DMD? DMD es el acrónimo de Dot Matrix Display, o display de matriz de puntos.
Es una pantalla que permite mostrar texto, imágenes o animaciones simples de una manera económica y con poca sofisticación. Es usada en muchísimas aplicaciones como radios de auto, microondas... etc. Todo lo que use una pantalla que no necesite una tipo LCD o LED. Por supuesto que el uso que más me interesa es para los flippers. Como saben, ya hize un flipper controlado con un Atari, usando unos simples displays LED de siete segmentos. Ahora, tengo en mente fabricar otro con un aire más "moderno", que tenga una DMD para mostrar texto y puntaje. Por eso me puse en campaña a fabricar mi propia pantalla DMD, por supuesto controlada con un Atari.
Voy a usar 6 displays de puntos matriz de 8 x 8, una plaquita perforada, un cartridge en desuso y harto cable.
En este caso estoy usando la línea CCTL del cartridge para controlar la exploración de las columnas y las filas con los puertos de los joysticks.
Bueno, ya está listo el hardware, y comienza el tema del software.
Acá hice una prueba simple, solo para testear funcionamiento.
Este tipo de displays se exploran por columnas en forma secuencial, lo cual significa que por cada columna se debe enviar el estado de cada uno de los 8 leds. Y eso tiene que hacerse lo suficientemente rápido como para que el ojo no distinga el "parpadeo".
Tiempo atrás hice un intento con solo tres displays (24 columnas) y en basic andubo bien. Sin embargo ahora la exploración es de 48 columnas y creo que no se podrá, por lo tanto estoy tipeando algo en assambler. A ver que tal me va.
http://www.retrogames.cl/dmd.html
Que m....a es un DMD? DMD es el acrónimo de Dot Matrix Display, o display de matriz de puntos.
Es una pantalla que permite mostrar texto, imágenes o animaciones simples de una manera económica y con poca sofisticación. Es usada en muchísimas aplicaciones como radios de auto, microondas... etc. Todo lo que use una pantalla que no necesite una tipo LCD o LED. Por supuesto que el uso que más me interesa es para los flippers. Como saben, ya hize un flipper controlado con un Atari, usando unos simples displays LED de siete segmentos. Ahora, tengo en mente fabricar otro con un aire más "moderno", que tenga una DMD para mostrar texto y puntaje. Por eso me puse en campaña a fabricar mi propia pantalla DMD, por supuesto controlada con un Atari.
Voy a usar 6 displays de puntos matriz de 8 x 8, una plaquita perforada, un cartridge en desuso y harto cable.
En este caso estoy usando la línea CCTL del cartridge para controlar la exploración de las columnas y las filas con los puertos de los joysticks.
Bueno, ya está listo el hardware, y comienza el tema del software.
Acá hice una prueba simple, solo para testear funcionamiento.
Este tipo de displays se exploran por columnas en forma secuencial, lo cual significa que por cada columna se debe enviar el estado de cada uno de los 8 leds. Y eso tiene que hacerse lo suficientemente rápido como para que el ojo no distinga el "parpadeo".
Tiempo atrás hice un intento con solo tres displays (24 columnas) y en basic andubo bien. Sin embargo ahora la exploración es de 48 columnas y creo que no se podrá, por lo tanto estoy tipeando algo en assambler. A ver que tal me va.
- Poltergeist
- expert
- Mensajes: 1617
- Registrado: Lun Jul 14, 2008 7:36 pm
- Reputación: 9
Re: Proyecto Atari-DMD
Interesante... sería un lindo proyecto. Se podrìa aplicar a letreros para precios supongo también.
- ZZT
- Site Admin
- Mensajes: 10897
- Registrado: Mar Nov 07, 2006 2:45 pm
- Reputación: 10
- Ubicación: La Florida-Santiago-Chile
- Contactar:
Re: Proyecto Atari-DMD
Como diría Don Tatan "Por supoto". Esa predunta ni se predunta.Poltergeist escribió:Interesante... sería un lindo proyecto. Se podrìa aplicar a letreros para precios supongo también.
- ZZT
- Site Admin
- Mensajes: 10897
- Registrado: Mar Nov 07, 2006 2:45 pm
- Reputación: 10
- Ubicación: La Florida-Santiago-Chile
- Contactar:
Re: Proyecto Atari-DMD
jo jo jo
- Poltergeist
- expert
- Mensajes: 1617
- Registrado: Lun Jul 14, 2008 7:36 pm
- Reputación: 9
Re: Proyecto Atari-DMD
Buenaaaaa... avanzaste super rápido... se ve la raja el Retrogames ahi con el Atari...
- ZZT
- Site Admin
- Mensajes: 10897
- Registrado: Mar Nov 07, 2006 2:45 pm
- Reputación: 10
- Ubicación: La Florida-Santiago-Chile
- Contactar:
Re: Proyecto Atari-DMD
yes! y con la velocidad del assambler, creo que podría poner más displays. Osea, que la pantalla muestre más caracteres o que las letras sean más grandes. Lo malo, es que no tengo más displays rojos.Poltergeist escribió:Buenaaaaa... avanzaste super rápido... se ve la raja el Retrogames ahi con el Atari...
Re: Proyecto Atari-DMD
quedo bakan,,, se lo implementaras al flipper Centigrade?
- ZZT
- Site Admin
- Mensajes: 10897
- Registrado: Mar Nov 07, 2006 2:45 pm
- Reputación: 10
- Ubicación: La Florida-Santiago-Chile
- Contactar:
Re: Proyecto Atari-DMD
Nup, a otro que voy a hacer más adelante. El Centigrade quedo muy bien, tal como está.Toledo escribió:quedo bakan,,, se lo implementaras al flipper Centigrade?
Re: Proyecto Atari-DMD
Muy interesante el proyecto. Me recuerda al display que realizó Turbo Software, pero con la diferencia de que ese display tenía un microprocesador interno que "hacía la pega" del barrido, efectos y esas cosas. Lo que se hacía desde el Atari eran sólo enviarle instrucciones.
Lucho, ¿servirá instalar unos latch para cada línea de barrido a fin de mejorar la persistencia de las luces? Así ahorrarías ciclos de máquina en el Atari para otras tareas.
Saludos.
Lucho, ¿servirá instalar unos latch para cada línea de barrido a fin de mejorar la persistencia de las luces? Así ahorrarías ciclos de máquina en el Atari para otras tareas.
Saludos.
- ZZT
- Site Admin
- Mensajes: 10897
- Registrado: Mar Nov 07, 2006 2:45 pm
- Reputación: 10
- Ubicación: La Florida-Santiago-Chile
- Contactar:
Re: Proyecto Atari-DMD
Wena Willy, estas alive! Bueno, sí, en este caso Don Atari hace todo, nada de procesadores intermedios. Además todo el diseño software/hardware es mio. Eso me lleeeena de orgullo.WillySoft escribió:Muy interesante el proyecto. Me recuerda al display que realizó Turbo Software, pero con la diferencia de que ese display tenía un microprocesador interno que "hacía la pega" del barrido, efectos y esas cosas. Lo que se hacía desde el Atari eran sólo enviarle instrucciones.
Lucho, ¿servirá instalar unos latch para cada línea de barrido a fin de mejorar la persistencia de las luces? Así ahorrarías ciclos de máquina en el Atari para otras tareas.
Saludos.
Sobre el latch... bueno, el circuito ya tienen latch y sin embargo se ve como se ve. Quizás si le hechas un vistazo al software me puedas ayudar. En más de algo puedo estar fallando, ya que en assambler yo programo "de oído".
Código: Seleccionar todo
*=$4000
; ajustes basicos
inicio
lda #43
sta 54018 ; pone puerto del joy en modo escritura
ldx #255 ; carga primer número a enviar (0)
stx 54016 ; envía número al puerto del joy
; ajustes a posicion de partida
setups
;reset
lda #0
sta 54604 ; start reset (debe ser 0 y 1 con un ck del latch entremedio)
lda #0
sta 54602 ; activando el ck del latch
lda #1
sta 54604 ; end reset
;output_enable
lda #0
sta 54601 ; OE debe ser 0
;exploracion
lda #48
sta 6001 ; exploración columnas (48 veces)
;joy_port
lda #0
sta 54016 ; envía un 0 al joy (8 datos X columna)
;serial_data
lda #1
sta 54600 ; serial data =1 (poner a 0 después de comenzar exploración (inicio1)
inicio1
; comienza ciclo de exploración para activar una columna
columnas
lda #1
sta 54603 ; activa ck
lda #0
sta 54603 ; desactiva ck
lda #1
sta 54602 ; activa latch
lda #0
sta 54602 ; desactiva latch
lda #0
sta 54600 ; serial data= 0. Ya se cargo un 1 al activarse los clock ahora debe ser 0 por cada paso de la exploración (si no pone 0 todas las columnas se activarían)
; lee un dato de la tabla (bytes) y lo manda a la columna activada
leetabla
lda tabla,x ; toma un dato de la tabla
sta 54016 ; y lo envia al puerto del joystick
ldx 6005
dex
stx 6005
jsr tiempo ; subrutina de tiempo (para variar velocidad lee paddle como variable)
veces
; controla la exploración (cantidad de veces=48 columnas)
ldx 6001 ; 6001 esta definida en setups con valor 48
dex ; decrementa
stx 6001 ; almacena
lda 6001 ; carga accA
cmp #0 ; ve si llego a cero
bne inicio1 ; si no a llegado a cero vuelve a aumentar otro paso
; fin ciclo de exploración para activar una columna
jmp setups ; al pasar las 48 columnas vuelve al principio
; sub rutina de tiempo para poder variar la velocidad de muestreo
tiempo
; rutina de tiempo
lda #5
sta 6002
paddle
lda 624 ; dirección paddle(0) 624
sta 6000
loop
ldx 6000
dex
stx 6000
lda 6000
cmp #0
bne loop
loop2
ldx 6002
dex
stx 6002
lda 6002
cmp #0
bne paddle
; fin rutina de tiempo
rts
; datos palabra RETROGAMES
tabla
.byte 155,109,109,179,255 ; S
.byte 189,181,181,129,255 ; E
.byte 129,251,251,129,255 ; M
.byte 131,221,221,131,255 ; A
.byte 139,173,189,195,255 ; G
.byte 195,189,189,195,255 ; O
.byte 147,237,237,129,255 ; R
.byte 253,129,253,255 ; T
.byte 189,181,181,129,255 ; E
.byte 147,237,237,129 ; R
*=$02E0
.word inicio
Re: Proyecto Atari-DMD
Prueba esto:
Código: Seleccionar todo
*=$4000
porta =$d300
setvbv =$e45c
xitvbv =$e462
clock = $14
columnas = 48 ;¿pueden ser más?
vbd
jsr borra.pantalla
jsr despliega.pantalla
jmp xitvbv
init.vbd
ldy #<vbd
ldx #>vbd
lda #$07
jsr setvbv
borra.pantalla
;vamos a tomar la rutina desplegada por ZZT.
;reset
lda #0
sta 54604 ; start reset (debe ser 0 y 1 con un ck del latch entremedio)
lda #0
sta 54602 ; activando el ck del latch
lda #1
sta 54604 ; end reset
;output_enable
lda #0
sta 54601 ; OE debe ser 0
;joy_port
lda #0
sta porta ; envía un 0 al joy (8 datos X columna)
;serial_data
lda #1
sta 54600 ; serial data =1 (poner a 0 después de comenzar exploración (inicio1)
rts
despliega.pantalla
ldx #columnas-1
despliega.pantalla.loop1
jsr inicia.pantalla
lda display,x
jsr imprime.columna
dex
bpl despliega.pantalla.loop1
rts
inicia.pantalla
lda #1
sta 54603 ; activa ck
lda #0
sta 54603 ; desactiva ck
lda #1
sta 54602 ; activa latch
lda #0
sta 54602 ; desactiva latch
lda #0
sta 54600 ; serial data= 0. Ya se cargo un 1 al activarse los clock ahora debe ser 0 por cada paso
; de la exploracion (si no pone 0 todas las columnas se activarían)
rts
imprime.columna
eor #$ff
sta porta
rts
display
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
;La tabla "display" contiene los datos a dibujar,
;los cuales estan definidos de izquierda a derecha,
;tomando cada bit como "0" en apagado y "1" como prendido.
;La lógica del display de ZZT es inversa, es decir,
;"1" para led apagado y "0" para led prendido, ante lo cual
;se realiza un eor #$FF para invertir los bits.
;Además, el barrido es de derecha a izquierda,
;por lo que el índice x comienza desde el último dato
;y termina con el primero.
;Con ello llevamos al estándar de encendido/apagado
;y el barrido de izquierda a derecha.
tabla.datos
.byte 126,18,18,108,0 ;R
.byte 126,74,74,66,0 ;E
.byte 2,126,2,0 ;T
.byte 126,18,18,108,0 ;R
.byte 60,66,66,60,0 ;O
.byte 60,66,82,116,0 ;G
.byte 124,34,34,124,0 ;A
.byte 126,4,4,126,0 ;M
.byte 126,74,74,66,0 ;E
.byte 76,146,146,100 ;S
; .byte 155,109,109,179,255 ; S
; .byte 189,181,181,129,255 ; E
; .byte 129,251,251,129,255 ; M
; .byte 131,221,221,131,255 ; A
; .byte 139,173,189,195,255 ; G
; .byte 195,189,189,195,255 ; O
; .byte 147,237,237,129,255 ; R
; .byte 253,129,253,255 ; T
; .byte 189,181,181,129,255 ; E
; .byte 147,237,237,129 ; R
;
; Fórmula para convertir los datos: 255 - dato original.
inicio
ldx #columnas-1
inicio.loop1
lda tabla.datos,x
sta display,x
dex
bpl inicio.loop1
jsr init.vbd
loop.principal.paso1
ldx contador
ldy #0
loop.principal.paso2
lda tabla.datos,x
sta display,y
inx
cpx #columnas
bne loop.principal.paso3
ldx #0
loop.principal.paso3
iny
cpy #columnas
bne loop.principal.paso2
inc contador
lda contador
cmp #columnas
bne loop.principal.paso4
lda #$0
loop.principal.paso4
sta contador
jsr wait
jsr wait
jsr wait
jmp loop.principal.paso1
wait
lda clock
wait.loop
cmp clock
beq wait.loop
rts
contador
.byte 0
*=$2e0
.word inicio
- ZZT
- Site Admin
- Mensajes: 10897
- Registrado: Mar Nov 07, 2006 2:45 pm
- Reputación: 10
- Ubicación: La Florida-Santiago-Chile
- Contactar:
Re: Proyecto Atari-DMD
Willy, probé tu programa y se enciende la columna 1 y de ahí no se mueve.
Re: Proyecto Atari-DMD
Después de ensayo y error, tenemos esta fuente:ZZT escribió:Willy, probé tu programa y se enciende la columna 1 y de ahí no se mueve.
Código: Seleccionar todo
*=$4000
porta =$d300 ; 54016
pactl =$d302
setvbv =$e45c
xitvbv =$e462
clock = $14
columnas = 48 ;¿pueden ser más?
vbd
jsr borra.pantalla
jsr despliega.pantalla
jmp xitvbv
init.vbd
lda #$2B
sta pactl
lda #$FF
sta porta
ldy #<vbd
ldx #>vbd
lda #$07
jsr setvbv
borra.pantalla
;vamos a tomar la rutina desplegada por ZZT.
;reset
lda #0
sta 54604 ; start reset (debe ser 0 y 1 con un ck del latch entremedio)
lda #0
sta 54602 ; activando el ck del latch
lda #1
sta 54604 ; end reset
;output_enable
lda #0
sta 54601 ; OE debe ser 0
;joy_port
lda #0
sta porta ; envía un 0 al joy (8 datos X columna)
;serial_data
lda #1
sta 54600 ; serial data =1 (poner a 0 después de comenzar exploración (inicio1)
rts
despliega.pantalla
ldx #columnas-1
despliega.pantalla.loop1
jsr inicia.pantalla
lda display,x
jsr imprime.columna
dex
bpl despliega.pantalla.loop1
rts
inicia.pantalla
lda #1
sta 54603 ; activa ck
lda #0
sta 54603 ; desactiva ck
lda #1
sta 54602 ; activa latch
lda #0
sta 54602 ; desactiva latch
lda #0
sta 54600 ; serial data= 0. Ya se cargo un 1 al activarse los clock ahora debe ser 0 por cada paso
; de la exploracion (si no pone 0 todas las columnas se activarían)
rts
imprime.columna
eor #$ff
sta porta
rts
display
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
;La tabla "display" contiene los datos a dibujar,
;los cuales estan definidos de izquierda a derecha,
;tomando cada bit como "0" en apagado y "1" como prendido.
;La lógica del display de ZZT es inversa, es decir,
;"1" para led apagado y "0" para led prendido, ante lo cual
;se realiza un eor #$FF para invertir los bits.
;Además, el barrido es de derecha a izquierda,
;por lo que el índice x comienza desde el último dato
;y termina con el primero.
;Con ello llevamos al estándar de encendido/apagado
;y el barrido de izquierda a derecha.
tabla.datos
.byte 126,18,18,108,0 ;R
.byte 126,74,74,66,0 ;E
.byte 2,126,2,0 ;T
.byte 126,18,18,108,0 ;R
.byte 60,66,66,60,0 ;O
.byte 60,66,82,116,0 ;G
.byte 124,34,34,124,0 ;A
.byte 126,4,4,126,0 ;M
.byte 126,74,74,66,0 ;E
.byte 76,146,146,100 ;S
; .byte 155,109,109,179,255 ; S
; .byte 189,181,181,129,255 ; E
; .byte 129,251,251,129,255 ; M
; .byte 131,221,221,131,255 ; A
; .byte 139,173,189,195,255 ; G
; .byte 195,189,189,195,255 ; O
; .byte 147,237,237,129,255 ; R
; .byte 253,129,253,255 ; T
; .byte 189,181,181,129,255 ; E
; .byte 147,237,237,129 ; R
;
; Fórmula para convertir los datos: 255 - dato original.
inicio
ldx #columnas-1
inicio.loop1
lda tabla.datos,x
sta display,x
dex
bpl inicio.loop1
jsr init.vbd
eterno
jmp eterno
loop.principal.paso1
ldx contador
ldy #0
loop.principal.paso2
lda tabla.datos,x
sta display,y
inx
cpx #columnas
bne loop.principal.paso3
ldx #0
loop.principal.paso3
iny
cpy #columnas
bne loop.principal.paso2
inc contador
lda contador
cmp #columnas
bne loop.principal.paso4
lda #$0
loop.principal.paso4
sta contador
jsr wait
jsr wait
jsr wait
jmp loop.principal.paso1
wait
lda clock
wait.loop
cmp clock
beq wait.loop
rts
contador
.byte 0
*=$2e0
.word inicio
- ZZT
- Site Admin
- Mensajes: 10897
- Registrado: Mar Nov 07, 2006 2:45 pm
- Reputación: 10
- Ubicación: La Florida-Santiago-Chile
- Contactar:
Re: Proyecto Atari-DMD
jo jo jo dos.
Hace AÑOS que quería hacer esta cuestión de desplazar texto. Por fin lo he logrado. El código que hace la magia es bastante simplón. El de Willy hace casi lo mismo, pero con más sofisticación. Ya veremos que otras cosas podemos hacere.
Hace AÑOS que quería hacer esta cuestión de desplazar texto. Por fin lo he logrado. El código que hace la magia es bastante simplón. El de Willy hace casi lo mismo, pero con más sofisticación. Ya veremos que otras cosas podemos hacere.
Código: Seleccionar todo
*=$4000
inicio
lda #43
sta 54018 ; pone puerto del joy en modo escritura
ldx #255 ; carga primer número a enviar (0)
stx 54016 ; envía número al puerto del joy
setups
lda #0
sta 54604 ; reset debe ser 0 y 1
lda #0
sta 54602 ; activando el ck del latch
lda #1
sta 54604 ; reset end
lda #0
sta 54601 ; OE debe ser 0
lda #1
sta 54600 ; data 1
ldx #140
stx 6005 ; dirección clock 1 menos que leetabla
inicio1
lda #255
sta 54016
lda #1
sta 54603
lda #0
sta 54603
lda #1
sta 54602
lda #0
sta 54602
lda #0
sta 54600
leetabla
ldx 6005
lda retrogames,x
sta 54016
ldx 6005
dex
stx 6005
cpx #0
bne t1
ldx #141
stx 6005
t1
jsr tiempo
veces
ldx 6004
dex
stx 6004
lda 6004
cmp #0
bne t2
lda #140
sta 6004
lda #1
sta 54600
t2
jmp inicio1
tiempo
; rutina de tiempo
lda #5
sta 6002
paddle
lda 624
sta 6000
loop
ldx 6000
dex
stx 6000
lda 6000
cmp #0
bne loop
loop2
ldx 6002
dex
stx 6002
lda 6002
cmp #0
bne paddle
; fin rutina de tiempo
rts
retrogames
.byte 255,1,237,237,19 ; R
.byte 255,1,109,109,125 ; E
.byte 255,253,1,253 ; T
.byte 255,1,237,237,19 ; R
.byte 255,131,125,125,131 ; O
.byte 255,131,109,109,139 ; G
.byte 255,3,221,221,3 ; A
.byte 255,1,251,247,251,1 ; M
.byte 255,1,109,109,125 ; E
.byte 255,179,109,109,155 ; S
.byte 255,255,255,255,255 ; espacio
.byte 255,127,191,192,255 ; logo Atari
.byte 0,255,192,191,127 ; logo Atari
.byte 255,255,255 ; espacio
.byte 255,3,221,221,3 ; A
.byte 255,253,1,253 ; T
.byte 255,3,221,221,3 ; A
.byte 255,1,237,237,19 ; R
.byte 255,255,1,255 ; I
.byte 255,255,255 ; espacio
.byte 255,127,191,192,255 ; logo Atari
.byte 0,255,192,191,127 ; logo Atari
.byte 255,255,255,255,255 ; espacio
.byte 255,57,93,109,117,57 ; Z
.byte 255,57,93,109,117,57 ; Z
.byte 255,249,253,1,253,249 ; T
.byte 255,131,125,125,131 ; O
.byte 255,1,237,237,243 ; P
.byte 255,255,255,255,255 ; espacio
*=$02E0
.word inicio
Re: Proyecto Atari-DMD
¡Buena!
Oye, acá te mando la rutina que rota en 90 grados el font del atari, a fin de que quede compatible con el display, que incluye una rutina que demuestra el efecto. Enjoy!
Oye, acá te mando la rutina que rota en 90 grados el font del atari, a fin de que quede compatible con el display, que incluye una rutina que demuestra el efecto. Enjoy!
Código: Seleccionar todo
*=$4000
font = $E000
font2 = $6000
pt.1 = $CB
pt.2 = $CD
caracteres = 128
prepara.font
lda #>font
sta pt.1+1
lda #<font
sta pt.1
lda #>font2
sta pt.2+1
lda #<font2
sta pt.2
lda #caracteres ; caracteres a transferir
sta prepara.font.contador
prepara.font.loop1
ldy #$7 ;transferimos el font a un buffer auxiliar para trabajar
prepara.font.loop2
lda (pt.1),y
sta prepara.font.buffer,y
lda #$00
sta prepara.font.buffer2,y
dey
bpl prepara.font.loop2
; Ahora vamos a transponer los datos
ldx #$00
prepara.font.loop3
asl prepara.font.buffer
rol prepara.font.buffer2,x
asl prepara.font.buffer + 1
rol prepara.font.buffer2,x
asl prepara.font.buffer + 2
rol prepara.font.buffer2,x
asl prepara.font.buffer + 3
rol prepara.font.buffer2,x
asl prepara.font.buffer + 4
rol prepara.font.buffer2,x
asl prepara.font.buffer + 5
rol prepara.font.buffer2,x
asl prepara.font.buffer + 6
rol prepara.font.buffer2,x
asl prepara.font.buffer + 7
rol prepara.font.buffer2,x
inx
cpx #8
bne prepara.font.loop3
; y ahora a copiar al font2
ldy #$7
prepara.font.loop4
lda prepara.font.buffer2,y
sta (pt.2),y
dey
bpl prepara.font.loop4
lda pt.1
clc
adc #$08
sta pt.1
lda pt.1+1
adc #$00
sta pt.1+1
lda pt.2
clc
adc #$08
sta pt.2
lda pt.2+1
adc #$00
sta pt.2+1
dec prepara.font.contador
bne prepara.font.loop1
rts
prepara.font.buffer
.byte 0,0,0,0,0,0,0,0
prepara.font.buffer2
.byte 0,0,0,0,0,0,0,0
prepara.font.contador
.byte 0
inicio
ldy #[tabla.retrogames.fin - tabla.retrogames]
inicio.loop1
lda tabla.retrogames,y
sta (88),y
dey
bpl inicio.loop1
jsr prepara.font
lda #>font2
sta 756
eterno
jmp eterno
tabla.retrogames
.sbyte "RETROGAMES"
tabla.retrogames.fin
*=$2e0
.word inicio