Página 1 de 2

DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Jue Nov 07, 2019 11:19 am
por dogdark
Como es de saber de muchos, desempolvé el copiador nhp 3.6 del tio parche. Dentro de su estructura, se me ocurrió poder modificar el loader para poder ver la posibilidad de poder levantar copiadores que no están disponibles, como ya lo he hecho con anteriores que se han ido liberando en diferentes lugares, como el famoso malebuk(face). Este código esta armado en programa wudsn y bajo mads, lo mas parecido al mac65
El problema que se me presenta es el siguiente:
lo primero será compartir el código del loader que carga el juego a posterior y que es la portada in sitú del copiador nhp que lo aloja en memoria y después ejecuta.

Imagen

Código: Seleccionar todo

BAFER = $0700
BUFAUX = $0800
?RUTINA = BUFAUX+JUMP-RUTINA
GENDAT = $47
;
	ORG $CC00
	.BYTE $55,$55
    LDY #0
    STY $CC03
    INY
    STY $09
    JSR RECUPERO
    JMP START
NBYTES
    .BYTE 252   ;$FC
FLAGY
    .BYTE 0
FINISH
    .BYTE 0,0
MMMSIOV
    .BYTE $60,$00,$52,$40
    .WORD BAFER
    .BYTE $23,$00
    .WORD $0100
    .BYTE $00,$80
DLIST
    .BYTE $70,$70,$70,$47
    .WORD MENSAJE
    .BYTE $70,$02,$70,$02,$70,$70
    .BYTE $F0,$F0,$F0,$F0,$F0,$F0
    .BYTE $70,$70,$70,$70,$70,$46
DLERR
    .WORD NAME
    .BYTE $70,$02,$41
    .WORD DLIST
MENSAJE
    .SB "       "
    .SB +128,"prisma"
    .SB "       "
    .SB "      PROGRAMAS PARA COMPUTADORES       "
    .SB "              LINEA ATARI               "
NAME
    .SB "                    "
    .SB "     Cargara dentro de "
CONTADOR
    .SB "    Bloques.     "
MERR
    .SB "  -  E R R O R  -   "
    .SB " Retroceda 3 vueltas y presione  START  "
TIEMPO
    LDA #$40
    STA $D40E
    LDX #$E4
    LDY #$5F
    LDA #$06
    JSR $E45C
    RTS
LNEW
    LDX #$04
XNEW
    LDA $02C4,X
    STA PFIN+1,X
    DEX
    BPL XNEW
    LDA $0230
    STA PFIN+6
    LDA $0231
    STA PFIN+7
    LDA 559     ;$022F
    STA PFIN+8
    LDA 756     ;$02F4
    STA PFIN+9
    LDA 755     ;$02F3
    STA PFIN+10
    RTS
NEWL
    LDX #$04
YNEW
    LDA PFIN+1,X
    STA $02C4,X
    DEX
    BPL YNEW
    LDA PFIN+6
    STA $0230
    LDA PFIN+7
    STA $0231
    LDA PFIN+8
    STA 559
    LDA PFIN+9
    STA 756
    LDA PFIN+10
    STA 755
    RTS
NEWDL
    LDX # <DLIST
    LDA # >DLIST
    STX $0230
    STX $D402
    STA $0231
    STA $D403
    LDA #$22
    STA 559
    STA $D400
    LDA #224
    STA 756
    STA $D409
    LDA #$02
    STA 755
    STA $D401
    LDX #$04
COLORLOOP
    LDA TABLA,X
    STA $02C4,X
    STA $D016,X
    DEX
    BPL COLORLOOP
    LDA # <NAME
    LDX # >NAME
    STA DLERR
    STX DLERR+1
    LDX #$CD
    LDY #$D7
    LDA #$06
    JSR $E45C
    LDX #$E5
    LDY #$CD
    LDA #$C0
    STX $0200
    STY $0201
    STA $D40E
    RTS
    LDA #$00
    STA NOSEPO
    LDA $02C6
    STA NOSEPOR02
    JMP $E45F
    PHA
    TXA
    PHA
    LDX NOSEPO
    LDA NOSEPO01,X
    STA $D40A
    STA $D01A
    INC NOSEPO
    PLA
    TAX
    PLA
    RTI
NOSEPO
    .BYTE 0
NOSEPO01
    .BYTE $52,$72,$B4,$EA,$32
NOSEPOR02
    .BYTE $FF,$FF
TABLA
    .BYTE $28,$CA,$00,$44,$00
CONCHAT
    LDA # <MERR
    LDX # >MERR
	STA DLERR
    STX DLERR+1
    RTS
ERROR
    JSR CONCHAT
    LDA #$3C
    STA $D302
    LDA #$FD
    JSR $F2B0
VUELTA
    LDA 53279
    CMP #$06
    BNE VUELTA
    JSR SEARCH
    JMP GRAB
SEARCH
    LDA #$34
    STA $D302
    LDX #$10
    STX $021C
SPEED
    LDX $021C
    BNE SPEED
SIGUE
    LDX #$FD
    STX $14
BUSCA
    LDA $D20F
    AND #$10
    BEQ SIGUE
    LDX $14
    BNE BUSCA
    JMP NEWDL
GBYTE
    CPY NBYTES
    BEQ GRAB
    TYA
    EOR BAFER+3,Y
    EOR GENDAT
    INC GENDAT
    INY
    RTS
GRAB
    LDA $D40B
    BNE GRAB
    LDA PFIN
    BEQ BYE
    JSR LNEW
    JSR NEWDL
?GRAB
    LDX #$0B
MSIO
    LDA MMMSIOV,X
    STA $0300,X
    DEX
    BPL MSIO
    JSR $E459
    BMI ERROR
    LDA BAFER+2
    CMP PFIN
    BCC ERROR
    BEQ RETURN
    JMP ?GRAB
RETURN
    LDA BAFER+255
    STA NBYTES
    LDX #$02
C01
    LDA CONTADOR,X
    CMP #$10
    BNE C02
    LDA #$19
    STA CONTADOR,X
    DEX
    BPL C01
C02
    DEC CONTADOR,X
    JSR NEWL
    DEC PFIN
    LDY #$00
    STY 77
    JMP GBYTE
BYE
    JSR TIEMPO
    LDA #$3C
    LDX #$00
    LDY #$60
    STA $D302
    TXS
    STY BAFER
    JMP ($02E0)
START
    LDY NBYTES
LOOP
    JSR GBYTE
    STA MEMORY+1
    JSR GBYTE
    STA MEMORY+2
    AND MEMORY+1
    CMP #$FF
    BEQ LOOP
    JSR GBYTE
    STA FINISH
    JSR GBYTE
    STA FINISH+1
MBTM
    JSR GBYTE
MEMORY
    STA $FFFF
    LDA MEMORY+1
    CMP FINISH
    BNE OK
    LDA MEMORY+2
    CMP FINISH+1
    BEQ VERFIN
OK
    INC MEMORY+1
    BNE NIM
    INC MEMORY+2
NIM
    JMP MBTM
VERFIN
    LDA $02E2
    ORA $02E3
    BEQ LOOP
    LDX #$F0
    TXS
    STY FLAGY
    JSR TIEMPO
    JSR NEWL
    JSR RINIT
    JSR LNEW
    JSR SEARCH
    LDY FLAGY
    LDX #$00
    TXS
    STX $02E2
    STX $02E3
    JMP LOOP
RINIT
    LDX #PFIN-RUTINA-1
MVRUT
    LDA RUTINA,X
    STA BUFAUX,X
    DEX
    BPL MVRUT
    JMP BUFAUX
RUTINA
    LDA #$3C
    STA $D302
    JSR ?RUTINA
    LDA #$FE
    STA $D301
    RTS
JUMP
    JMP ($02E2)
PFIN
    .BYTE $00,$00,$00,$00,$00,$00
    .BYTE $00,$00,$00,$00,$00
RECUPERO
    JSR LNEW
    LDX #$0B
RECUPER02
    LDA FINRECUPERO,X
    STA $0300,X
    DEX
    BPL RECUPER02
    JSR $E459
    BPL RECUPERO03
    LDA #$3C
    STA $D302
    LDA $D301
    AND #$FD
    STA $D301
    JMP $0400
RECUPERO03
    LDX #$13
RECUPERO04
    LDA FINRECUPERO+2,X
RECUPERO05
    STA NAME,X
    DEX
    BPL RECUPERO04
    LDX #$02
RECUPERO06
    LDA FINRECUPERO+22,X
    STA CONTADOR,X
    DEX
    BPL RECUPERO06
    LDX #$03
    LDA FINRECUPERO+25
    STX $41
    STA PFIN
    LDY #$7F
    LDA #$00
RECUPERO07
    STA $0400,Y
    DEY
    BPL RECUPERO07
    JSR NEWDL
    JMP NEWL
FINRECUPERO
    .BYTE $60,$00,$52,$40
    .WORD FINRECUPERO
    .BYTE $23,$00
    .WORD 26
    .BYTE $00,$80

1ERO
cual es mi problema. Que al realizar algún cambio al dlist este no se ejecuta o después no realiza carga alguna a posterior.

ejemplo
original

Código: Seleccionar todo

DLIST
    .BYTE $70,$70,$70,$47
    .WORD MENSAJE
    .BYTE $70,$02,$70,$02,$70,$70
    .BYTE $F0,$F0,$F0,$F0,$F0,$F0
    .BYTE $70,$70,$70,$70,$70,$46
DLERR
    .WORD NAME
    .BYTE $70,$02,$41
    .WORD DLIST
MENSAJE
    .SB "       "
    .SB +128,"prisma"
    .SB "       "
    .SB "      PROGRAMAS PARA COMPUTADORES       "
    .SB "              LINEA ATARI               "
cambio que quiero

Código: Seleccionar todo

DLIST
    .BYTE $70,$70,$70,$47
    .WORD MENSAJE
    .BYTE $70,$02,$70,$02,$70,$70
    .BYTE $06,$70,$70,$70,$70,$70
    .BYTE $70,$70,$70,$70,$70,$46
DLERR
    .WORD NAME
    .BYTE $70,$02,$41
    .WORD DLIST
MENSAJE
    .SB "       "
    .SB +128,"prisma"
    .SB "       "
    .SB "      PROGRAMAS PARA COMPUTADORES       "
    .SB "              LINEA ATARI               "
    .SB "               PRESENTA                 "
Cambio los bytes $f0, por un $06 y los restantes $70.
obviamente esto esta enmarcado a que esas lineas estan diseñadas para mostrar colores
si retiro las lineas que están en COLORLOOP, eliminadolas o comentándolas, este código deja de funcionar, si COLORLOOP las dejo, el loader aparece corrupto o se cuelga.
dejo en claro que por lo que yo noto, en el codigo principal del copiador, este loader al ser grabado en la cinta, este esta estructurado de forma automatica su largo y deja registrado en la pagina4(4to bloque de inicio en cinta).
invoco a los grandes sobre todo al tio parche, a ver si se acuerda de lo que pasa o como puedo eliminar esa sección de las famosas lineas para crear un loader personalizado manteniendo las variables principales que son name y contador que se recuperaran al final de la carga del loader.
dejo en los adjuntos los archivos que uso.
NHP36.rar
codigos nhp 3.6
(42.55 KiB) Descargado 134 veces

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Jue Nov 07, 2019 11:36 am
por parche
Mandame tu entorno de desarrollo para trabajar sobre el mismo.

Por lo que entendí tienes Eclipse, no se que versión y algún addon que instalaste para compilar.

A simple vista es porque hay una interrupción que es la que genera el arcohiris. El problema de esto es que cuando carga las interrupciones son bloqueadas y seguramente hice algún truco para que se sincronizara y no se desvaneciera el archohiris.

La única forma que tengo de probar sin deshacer lo que tienes es usando tu mismo entorno de desarrollo.

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Jue Nov 07, 2019 11:44 am
por vitoco
Muy a la rápida, veo el siguiente trozo de código

Código: Seleccionar todo

    LDX #$E5
    LDY #$CD
    LDA #$C0
    STX $0200
    STY $0201
    STA $D40E
Eso define la dirección $CDE5 como el vector para hacer la pega de la interrupción (DLI). No sé exactamente a qué parte del loader apunta, pero si has comentado código y se produjo un corrimiento, simplemente vas a colgar el loader. Creo que debes remover esta parte del código para evitar que se cuelgue o haga algo indebido.

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Jue Nov 07, 2019 12:12 pm
por dogdark
parche escribió:
Jue Nov 07, 2019 11:36 am
Mandame tu entorno de desarrollo para trabajar sobre el mismo.

Por lo que entendí tienes Eclipse, no se que versión y algún addon que instalaste para compilar.

A simple vista es porque hay una interrupción que es la que genera el arcohiris. El problema de esto es que cuando carga las interrupciones son bloqueadas y seguramente hice algún truco para que se sincronizara y no se desvaneciera el archohiris.

La única forma que tengo de probar sin deshacer lo que tienes es usando tu mismo entorno de desarrollo.
Eso es lo mismo que yo pienso,,, hay un bloqueo en alguna parte que no logro pillar, al sacar ese arcoiris.. ese es uno de los tantos problemas que hay para modificar..
vitoco escribió:
Jue Nov 07, 2019 11:44 am
Muy a la rápida, veo el siguiente trozo de código

Código: Seleccionar todo

    LDX #$E5
    LDY #$CD
    LDA #$C0
    STX $0200
    STY $0201
    STA $D40E
Eso define la dirección $CDE5 como el vector para hacer la pega de la interrupción (DLI). No sé exactamente a qué parte del loader apunta, pero si has comentado código y se produjo un corrimiento, simplemente vas a colgar el loader. Creo que debes remover esta parte del código para evitar que se cuelgue o haga algo indebido.
comentando eso pasa lo mismo, se bloquea.
alguna trampa hay por ahí. Los secretos de tío parche.

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Jue Nov 07, 2019 12:16 pm
por fcatrin
Miré el código a ver si encontraba algo evidente y no lo encontré.

Lo que indicas del colorloop suena a que aun queda parte del código que depende de la ubicación original del cargador, entonces al modificar una parte, las instrucciones o datos que estaban en un lugar, ya no los encuentra.

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Jue Nov 07, 2019 12:23 pm
por fcatrin
Ahh mira, me cuelgo a lo que dice vitoco, antes de ese codigo hay otro que depende de la ubicación $CDD7

Código: Seleccionar todo

LDX #$CD
LDY #$D7
LDA #$06
JSR $E45C
Busca a que ubicación corresponde $CDD7 y $CDE5, ponles label y cambialos por los respectivos #< y #> apuntando a esos labels

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Jue Nov 07, 2019 12:26 pm
por dogdark
fcatrin escribió:
Jue Nov 07, 2019 12:16 pm
Miré el código a ver si encontraba algo evidente y no lo encontré.

Lo que indicas del colorloop suena a que aun queda parte del código que depende de la ubicación original del cargador, entonces al modificar una parte, las instrucciones o datos que estaban en un lugar, ya no los encuentra.
Por lo qué he revisado. Ya más de 8 meses que llevo en este proyecto., es analizar línea por línea con el mapping y resulta que no te deja agregar ni quitar texto o bytes. Debo agregar una rutina también para ampliar este copiador para juegos más largos.. y para recuperar otros que son de la misma línea. La idea es tener todos los copiador es que se usaron en esa época en una librería del recuerdo.

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Jue Nov 07, 2019 12:53 pm
por vitoco
Como dijo Franco, cualquier referencia a una dirección de memoria dentro del loader que sea manejada con dos LDA, LDX o LDY con una constante del tipo #num o #$hex debes identificar a qué parte del cargador se refiere, ponerle la etiqueta en ese lugar y usar #<etiqueta y #>etiqueta donde corresponda. Así queda todo relocalizable.

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Jue Nov 07, 2019 12:59 pm
por dogdark
Ahora entendí bien vitoco... ensamblare y veré a que apunta esa dirección y colocar etiquetas para ir viendo como mejora el código. Claro si al poner más bytes antes se corre todo

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Jue Nov 07, 2019 1:39 pm
por dogdark
dejo como apunte, la dirección que me nombraban $CDD7, no tiene label,

Código: Seleccionar todo

    LDA #$00
    STA NOSEPO
    LDA $02C6
    STA NOSEPOR02
    JMP $E45F
    PHA
    TXA
    PHA
    LDX NOSEPO
    LDA NOSEPO01,X
    STA $D40A
    STA $D01A
    INC NOSEPO
    PLA
    TAX
    PLA
    RTI
NOSEPO
    .BYTE 0
apunta directamente al LDA #$00

Código: Seleccionar todo

127 CDCB A9 C0		    LDA #$C0
   128 CDCD 8E 00 02		    STX $0200
   129 CDD0 8C 01 02		    STY $0201
   130 CDD3 8D 0E D4		    STA $D40E
   131 CDD6 60			    RTS
   132 CDD7 A9 00		    LDA #$00
   133 CDD9 8D FB CD		    STA NOSEPO
   134 CDDC AD C6 02		    LDA $02C6
   135 CDDF 8D 01 CE		    STA NOSEPOR02
   136 CDE2 4C 5F E4		    JMP $E45F
le agregaré como label RUTNOSEPO
y cambiare el $CD y el $D7
entonces queda así
COLORLOOP
LDA TABLA,X
STA $02C4,X
STA $D016,X
DEX
BPL COLORLOOP
LDA # <NAME
LDX # >NAME
STA DLERR
STX DLERR+1
LDX #>RUTNOSEPO
LDY #<RUTNOSEPO
LDA #$06
JSR $E45C
LDX #$E5
LDY #$CD
LDA #$C0
STX $0200
STY $0201
STA $D40E
RTS
RUTNOSEPO
LDA #$00
STA NOSEPO
de ahí cuento como me va

EDITO
Antes
LDX #<RUTNOSEPO
LDY #>RUTNOSEPO
AHORA
LDX #>RUTNOSEPO
LDY #<RUTNOSEPO

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Jue Nov 07, 2019 2:16 pm
por vitoco
Ya sé a dónde apuntaba la dirección $CDE5 en el trozo de código que puse en el otro post: justo después del JMP $E45F en el trozo de código desensamblado, es decir, sería la línea 137 donde va un PHA, lo cual es obvio para una rutina DLI (que tiene que respaldar el acumulador y otros registros que use). Desde esa línea hasta el RTI lo puedes hacer desaparecer si es que no lo usarás más porque eliminarás la rutina del arco iris, junto con las instrucciones del código que postié. Pero me parece que también se iría a la basura la data utilizada por esa rutina, es decir, los bytes de NOSEPO y NOSEPO01. Pero NOSEPO lo usa la rutina que le pusiste la etiqueta, y es la rutina VBI que reinicia el puntero al primer color del arco iris para cada frame, por lo que esa rutina también se puede ir a la basura, incluyendo el código que activaba el vector (donde usaste el #< y #> de RUTNOSEPO incluyendo el LDA y el JSR $E45C para inicializarlo).

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Jue Nov 07, 2019 2:38 pm
por dogdark
primera prueba realizada, estaría funcionando ok,,, ahora probaremos realizando algunos cambios al dli

Imagen

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Jue Nov 07, 2019 2:54 pm
por dogdark
Yaaaaaa . por fin, primera etapa quemada,,,

Imagen

Imagen

ahora podré comenzar con lo demás, seguiré en el proyecto. Gracias a todos como siempre,,, no cierren el hilo que ahora falta agregar mas bytes jajajjajja,,, al esio para que me leea 4 números de bloques y no 3 que es lo que tiene, pero ya creo que será mas fácil,,, siempre digo lo mismo y quedo entrampado.

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Vie Nov 08, 2019 1:23 am
por fcatrin
Buena!

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Lun Nov 11, 2019 4:13 pm
por dogdark
Ahora mi consulta es más técnica.. hay varios que están siguiendo este hilo y ojalá que la respuesta que me puedan otorgar, sea para quien tiene conocimientos muy básicos en assembler. Porque me preguntaron y no supe como responder, y dije, pregunto y después explico.

COPIA DE ROM A RAM.

yo por lo que se, la copia de la rom a la ram, es copiar desde el primer byte de la pagina 0 - $00 al $FF, porque estos no se pueden modificar directamente a alguna pagina que este disponible para ser usado a posterior, generalmente esto se puede hacer en $C000 al $C0FF (es solo ejemplo), si yo tengo copiados estos bytes en esa pagina, independientemente que estén ahí, solo quedan copiados y aunque trate de ejecutar algún bytes que están en esa pagina no sucedería nada,,,
como se pueden ejecutar esos bytes o las rutinas que conllevan esos bytes si solo quedan muertos, existe algún otro byte en otro lugar que permite poder activar estos como si estuviesen en la pagina 0?.
de antemano muchas gracias.
PD: o sea el comportamiento... como funciona. esa es la idea.

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Lun Nov 11, 2019 5:47 pm
por vitoco
No confundas las cosas... la página cero es la página cero y lo que ahí está sirve para lo que fue definido en el S.O. Esa no se copia ni es necesario respaldarla (salvo excentricidades).

La ROM del S.O. está entre $C000 y $FFFF y es esa la que se copia a la RAM en el mismo rango, pero pasando por un buffer de 16K que podría ser a partir de $4000, teniendo cuidado de saltarse un grupo de páginas de la rom porque esas tienen consecuencias en el hardware (bancos, sonido, player/missile, etc.). El rango a saltarse es $D000 a $D7FF.

Puedes encontrar la rutina de copia en assembler completa en el apéndice 12 del Mapping, justamente en la descripción de PORTB ($D301), que es quien permite hacer los cambios de bancos de memoria.

Sólo si tienes el S.O. en RAM y lo modificas a tu pinta, puedes reasignar las direcciones de memoria de la página cero para lo que desees.

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Lun Nov 11, 2019 6:46 pm
por dogdark
muchas gracias Vitoco por la información, quedo más que clarisimo. me iré directo a esa parte del mapping y lo traduciré para entender bien de que se trata cada byte.

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Mar Nov 12, 2019 11:18 am
por parche
Yo todavía no logro hacer andar el Eclipse JAJAJAJAJA

Ya filo. He estado ocupado con todo este jaleo de las manifestaciones. Parece que vivo en una burbuja que no deja de laburar.

Saludos pero me imaginaba que habia puesto una rutina en las interrupciones.
Cuando hice esa versión había aparecido recién el de Iljor y estaba aprendiendo a jugar con las interrupciones durante la carga.

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Mar Nov 12, 2019 11:53 am
por Suppawer
parche escribió:
Mar Nov 12, 2019 11:18 am
Yo todavía no logro hacer andar el Eclipse JAJAJAJAJA
Yo uso el Notepad++ y compilo con MADS desde la línea de comandos.

Re: DESEMPOLVANDO NHP 3.6 (AYUDA)

Publicado: Mar Nov 12, 2019 3:19 pm
por dogdark
parche escribió:
Mar Nov 12, 2019 11:18 am
Yo todavía no logro hacer andar el Eclipse JAJAJAJAJA
Le dije si necesitaba ayuda me preguntara,,, en este video explico como se instala el wudsn de forma básica y ya pre configurado, a diferencia la que tengo yo,, que uso eclipse directo, más que nada por el theme que uso es gris oscuro, por la hora de trabajo que puedo tener, tratando de entender como se puede modificar los códigos. minuto 3 en adelante.


parche escribió:
Mar Nov 12, 2019 11:18 am
Saludos pero me imaginaba que había puesto una rutina en las interrupciones.
Cuando hice esa versión había aparecido recién el de Iljor y estaba aprendiendo a jugar con las interrupciones durante la carga.
no es tanto alguna rutina de interrupciones, es más que nada la encriptación que le das al código,, se nota que estabas preocupado de que no existiera piratería de tu trabajo en esos años, y byte fuera de su lugar y todo el trabajo se va al carajo.

en este segundo video muestro un proyecto simple que logré armar después de mucho tiempo, gracias a la ayuda de ustedes.