Lenguaje Máquina - NHP

Utilitarios, programación, demos.

Lenguaje Máquina - NHP

Notapor Suppawer » Lun Mar 06, 2017 2:34 pm

Saludos atarianos a todos, en este inicio (real) de Marzo.
Tengo una duda respecto a los NHPs. Analizando la versión basic (.BAS), siempre me pregunté cómo efectuar modificaciones para lograr "recrear" otros NHPs. Lo primero que aprecio es la utilización de "lenguaje de maquina".

Tengo esta imagen ATR (stac130.bas):

disk1.rar
(18.64 KiB) 22 veces


Y este su resultado:
cas1.rar
(4.1 KiB) 20 veces

Imagen

Me interesaría lograr estos cambios:

Imagen


O sea, lograr esto:

Imagen

cas2.rar
(14.2 KiB) 18 veces



¿Alguien sabe la forma de lograr estos cambios? (desde la línea 3010 parece que va la cosa)

Código: Seleccionar todo
https://sites.google.com/site/suppawer/atari/img/mo04.png
Avatar de Usuario
Suppawer
Shapeshifter
Shapeshifter
 
Mensajes: 166
Registrado: Dom Nov 21, 2004 9:36 am

Re: Lenguaje Máquina - NHP

Notapor AsCrNet » Lun Mar 06, 2017 3:44 pm

Yo personalmente partiría revisando como está hecha la pantalla original, para eso cargo el .cas en el altirra y lo detengo en la pantalla para ir al debugger, y escribir la siguiente instrucción en la línea de comando ".dumpdlist"

Código: Seleccionar todo
Altirra> .dumpdlist
  0703: x7   blank 8
  070A:      mode 6 @ 0721
  070D: x4   blank 8
  0711:      mode 6
  0712: x4   blank 8
  0716: x3   mode 2
  0719: x4   blank 8
  071D:      mode 2
  071E:      waitvbl 0703

Esto me mostrara como está formada la Display List (Despliegue de pantalla).A simple vista no se entiende mucho, para ello abrimos nuestro libro atari mapping XL-XE en la pagina 171, o visitamos la siguiente pagina.

Veremos una tabla de los gráficos que el Atari soporta y la combinación de ellos, buscamos en los comentarios BLANK 8 y anotamos su valor (columna instrucción DEC/HEX), entonces según la primera línea 0703: x7 blank 8, tenemos 7 valores $70, y así revisamos cada línea y anotamos su valor.

Al final tenemos el siguiente diseño usando números en hexadecimales
Código: Seleccionar todo
$70,$70,$70,$70,$70,$70,$70
$4B (Load memory scan $40 + mode 6 $0B)
$70,$70,$70,$70
$0B
$70,$70,$70,$70
$02,$02,$02
$70,$70,$70,$70
$02
$41 (Jump and wait for vertical blank $41)

Ya con este pequeño análisis podemos hacer un pequeño programa en MADS (ensamblador) para ver si es real lo que dice el altirra.

Continuara.... :D
/|\ ATARI XL-XE
Avatar de Usuario
AsCrNet
Elemental
Elemental
 
Mensajes: 1046
Registrado: Dom Dic 18, 2005 11:27 am

Re: Lenguaje Máquina - NHP

Notapor AsCrNet » Mar Mar 07, 2017 3:22 pm

Ahora nuestro pequeño programita:
Código: Seleccionar todo
   org $600
   
dlist
   .byte $70,$70,$70,$70,$70,$70,$70
   .byte $4B
   .byte $70,$70,$70,$70
   .byte $0B
   .byte $70,$70,$70,$70
   .byte $02,$02,$02
   .byte $70,$70,$70,$70
   .byte $02
   .byte $41
   .word dlist

inicio
   lda #<dlist
   sta $230
   lda #>dlist
   sta $231

loop jmp loop

   run inicio

Y lo compilamos de la siguiente forma para tener el listado de los bytes.
Código: Seleccionar todo
mads dl1.asm -l:dl1.lst -o:dl1.xex

Si revisamos la lista dl1.lst veremos en directo los valores Hexadecimales del programita compilado en MADS.
Código: Seleccionar todo
mads 2.0.6 build 58 (28 Jan 17)
Source: dl1.asm
     1                org $600
     2                
     3             dlist
     4 FFFF> 0600-0628> 70 70 +    .byte $70,$70,$70,$70,$70,$70,$70
     5 0607 4B            .byte $4B
     6 0608 70 70 70 70         .byte $70,$70,$70,$70
     7 060C 0B            .byte $0B
     8 060D 70 70 70 70         .byte $70,$70,$70,$70
     9 0611 02 02 02         .byte $02,$02,$02
    10 0614 70 70 70 70         .byte $70,$70,$70,$70
    11 0618 02            .byte $02
    12 0619 41            .byte $41
    13 061A 00 06         .word dlist
    14
    15 061C         inicio
    16 061C A9 00         lda #<dlist
    17 061E 8D 30 02         sta $230
    18 0621 A9 06         lda #>dlist
    19 0623 8D 31 02         sta $231
    20
    21 0626 4C 26 06      loop jmp loop
    22
    23 02E0-02E1> 1C 06         run inicio

Ejecutamos directo en el emulador altirra para ver si se parece visualmente.
Imagen
Parece que sí, revisemos el código de maquina directo en atascii

Imagen
Se ve algo similar a la línea 3010 hay unos byte que parece que los interprete mal y otros que deben ser las etiquetas de los textos. La próxima tarea será ponerle los textos a nuestro programita.

Continuara.... :D
/|\ ATARI XL-XE
Avatar de Usuario
AsCrNet
Elemental
Elemental
 
Mensajes: 1046
Registrado: Dom Dic 18, 2005 11:27 am

Re: Lenguaje Máquina - NHP

Notapor lbaeza » Mar Mar 07, 2017 4:44 pm

Viejo...esto se pone cada vez más interesante...
Quedo a la espera del nuevo post del compadre Abel.

Salu2
Dr. von Byte AKA Viagra Killer
Avatar de Usuario
lbaeza
Elemental
Elemental
 
Mensajes: 2148
Registrado: Vie Oct 22, 2004 12:42 am
Ubicación: After all these years...still looking for the goddamn Boletines Centro Atari...

Re: Lenguaje Máquina - NHP

Notapor Suppawer » Mar Mar 07, 2017 5:20 pm

El amigo AsCrNet está haciendo un muy buen análisis.
Quedo en espera del siguiente "capítulo" :D ...
Avatar de Usuario
Suppawer
Shapeshifter
Shapeshifter
 
Mensajes: 166
Registrado: Dom Nov 21, 2004 9:36 am

Re: Lenguaje Máquina - NHP

Notapor AsCrNet » Mié Mar 08, 2017 10:30 am

Gracias colegas :wink: , pero sigamos con la misión. :lawealoca:

El Dlist que tiro el altirra no es correcto al 100% según yo ya que tiene 2 líneas mal, que son :
Código: Seleccionar todo
  070A:      mode 6 @ 0721
  0711:      mode 6

Y estas según yo y el código de máquina del programa en basic deberían decir así :
Código: Seleccionar todo
  070A:      mode 2 @ 0721
  0711:      mode 2

Entonces cambiamos esos 2 valores $4B por $46 y $0B por $06, ahora aplicamos este cambio y agregamos el texto.

Código: Seleccionar todo
   org $600
   
dlist
   .byte $70,$70,$70,$70,$70,$70,$70
   .byte $46
   .word texto
   .byte $70,$70,$70,$70
   .byte $06
   .byte $70,$70,$70,$70
   .byte $02,$02,$02
   .byte $70,$70,$70,$70
   .byte $02
   .byte $41
   .word dlist
   
texto
   dta "   telco presenta   "
   dta "XXXXXXXXXXXXXXXXXXXX"
   dta 73,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82
   dta 82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,79
   dta 124,"         FALTAN 000  BLOQUES          ",124
   dta 75,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82
   dta 82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,76
   dta "   GUARDIA VIEJA 69 TELEFONO 2512769    "
   
inicio
   lda #<dlist
   sta $230
   lda #>dlist
   sta $231

loop jmp loop

   run inicio

Compilamos en mads y ejecutamos en el altirra ya se ve la pantalla como está formada
Imagen

Ahora veamos el código de maquina directo
Imagen

Se ve muy similar solo hay 2 bytes distintos que debe ser la posición de memoria de la etiqueta del texto. También nos damos cuenta que el diseño de la pantalla y textos esta entre las líneas 3010 y 3130 del programa en basic. Ya con esta información creo que estamos listos para hacer nuestro nuevo diseño de pantalla y textos.

Continuara.... :D
/|\ ATARI XL-XE
Avatar de Usuario
AsCrNet
Elemental
Elemental
 
Mensajes: 1046
Registrado: Dom Dic 18, 2005 11:27 am

Re: Lenguaje Máquina - NHP

Notapor Shamus » Jue Mar 09, 2017 8:10 am

Te pasaste Abelín, muy claro, hasta yo entendí. :twisted:
Avatar de Usuario
Shamus
Elemental
Elemental
 
Mensajes: 877
Registrado: Dom Mar 26, 2006 8:38 pm

Re: Lenguaje Máquina - NHP

Notapor AsCrNet » Jue Mar 09, 2017 2:33 pm

Perfecto colega Shamus, esa la idea que sea fácil de entender. :bravo:

Bueno sigamos con la idea del colega Suppawer, ahora con la nueva pantalla (DList y textos) nuestro programita en MADS quedaría así :
Código: Seleccionar todo
   org $600

; Diseño Dlist   
dlist
   .byte $70,$70,$70,$70,$70,$70
   .byte $42
   .word texto
   .byte $02,$02,$02,$02
   .byte $70
   .byte $06
   .byte $70
   .byte $02,$02,$02
   .byte $70,$70,$70,$70
   .byte $02,$02
   .byte $41
   .word dlist

; Texto para Dlist   
texto
   dta 73,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82
   dta 82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,79   
   dta 124,"                TELCO                 ",124
   dta 65,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82
   dta 82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,68   
   dta 124,"               PRESENTA               ",124
   dta 75,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82
   dta 82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,76   
   dta "XXXXXXXXXXXXXXXXXXXX"
   dta 73,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82
   dta 82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,79
   dta 124,"          FALTAN 000 BLOQUES          ",124
   dta 75,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82
   dta 82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,76
   dta "   GUARDIA VIEJA 69 TELEFONO 2512769    "
   dta "          PROVIDENCIA SANTIAGO          "
   
inicio
; Dlist diseño y texto
   lda #<dlist
   sta $230
   lda #>dlist
   sta $231
; Colores
     lda #$3A
   sta $2C4
   lda #$0E
   sta $2C5
   lda #$92
   sta $2C6
   lda #$94
   sta $2C8
; ciclo infinito para pausa.
loop jmp loop

   run inicio

Aquí esta .lst por si necesitas.
Código: Seleccionar todo
mads 2.0.6 build 58 (28 Jan 17)
Source: dl3.asm
     1                org $600
     2
     3             ; Diseño Dlist   
     4             dlist
     5 FFFF> 0600-07E0> 70 70 +    .byte $70,$70,$70,$70,$70,$70
     6 0606 42            .byte $42
     7 0607 1C 06         .word texto
     8 0609 02 02 02 02         .byte $02,$02,$02,$02
     9 060D 70            .byte $70
    10 060E 06            .byte $06
    11 060F 70            .byte $70
    12 0610 02 02 02         .byte $02,$02,$02
    13 0613 70 70 70 70         .byte $70,$70,$70,$70
    14 0617 02 02         .byte $02,$02
    15 0619 41            .byte $41
    16 061A 00 06         .word dlist
    17
    18             ; Texto para Dlist   
    19 061C         texto
    20 061C 49 52 52 52 52 52 +    dta 73,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82
    21 0630 52 52 52 52 52 52 +    dta 82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,79   
    22 0644 7C 00 00 00 00 00 +    dta 124,"                TELCO                 ",124
    23 066C 41 52 52 52 52 52 +    dta 65,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82
    24 0680 52 52 52 52 52 52 +    dta 82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,68   
    25 0694 7C 00 00 00 00 00 +    dta 124,"               PRESENTA               ",124
    26 06BC 4B 52 52 52 52 52 +    dta 75,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82
    27 06D0 52 52 52 52 52 52 +    dta 82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,76   
    28 06E4 38 38 38 38 38 38 +    dta "XXXXXXXXXXXXXXXXXXXX"
    29 06F8 49 52 52 52 52 52 +    dta 73,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82
    30 070C 52 52 52 52 52 52 +    dta 82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,79
    31 0720 7C 00 00 00 00 00 +    dta 124,"          FALTAN 000 BLOQUES          ",124
    32 0748 4B 52 52 52 52 52 +    dta 75,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82
    33 075C 52 52 52 52 52 52 +    dta 82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,76
    34 0770 00 00 00 27 35 21 +    dta "   GUARDIA VIEJA 69 TELEFONO 2512769    "
    35 0798 00 00 00 00 00 00 +    dta "          PROVIDENCIA SANTIAGO          "
    36                
    37 07C0         inicio
    38             ; Dlist diseño y texto
    39 07C0 A9 00         lda #<dlist
    40 07C2 8D 30 02         sta $230
    41 07C5 A9 06         lda #>dlist
    42 07C7 8D 31 02         sta $231
    43             ; Colores
    44 07CA A9 3A          lda #$3A
    45 07CC 8D C4 02         sta $2C4
    46 07CF A9 0E         lda #$0E
    47 07D1 8D C5 02         sta $2C5
    48 07D4 A9 92         lda #$92
    49 07D6 8D C6 02         sta $2C6
    50 07D9 A9 94         lda #$94
    51 07DB 8D C8 02         sta $2C8
    52             ; ciclo infinito para pausa.
    53 07DE 4C DE 07      loop jmp loop
    54
    55 02E0-02E1> C0 07         run inicio

Compilemos y veamos que se ve en el altirra :
Imagen

Perfecto igual que la idea del colega Suppawer, veamos cómo queda en código de maquina:
Imagen

Esta pantalla es un poco más larga en los byte que se deben reemplazar con el programa en Basic.

Ahora colega Suppawer le paso el trabajo a usted en reemplazar, cambiar el código de maquina y nos cuenta cómo le va. :lawealoca: La idea que aplique talento en modificar el programa en Basic :D

Saludos
/|\ ATARI XL-XE
Avatar de Usuario
AsCrNet
Elemental
Elemental
 
Mensajes: 1046
Registrado: Dom Dic 18, 2005 11:27 am

Re: Lenguaje Máquina - NHP

Notapor lbaeza » Jue Mar 09, 2017 2:36 pm

Excelente Abel, muy buen hilo.
Algún día seré pulento para el assembler como usted mijo, por lo menos ganas no me faltan.

Salu2
Dr. von Byte AKA Viagra Killer
Avatar de Usuario
lbaeza
Elemental
Elemental
 
Mensajes: 2148
Registrado: Vie Oct 22, 2004 12:42 am
Ubicación: After all these years...still looking for the goddamn Boletines Centro Atari...

Re: Lenguaje Máquina - NHP

Notapor Suppawer » Jue Mar 09, 2017 6:02 pm

Hola AsCrNet :D . Arduo trabajo el que has hecho.

Bueno, hice los cambios.
new.rar
(3.27 KiB) 11 veces

https://sites.google.com/site/suppawer/atari/img/new1.png

Hasta el momento, nada... :o

¿Algo estamos haciendo mal?

Atte. Suppawer!

Nota:
Lineas 3042 y 3044
CHR$(34)=B
,/15%3=LOQUES
Avatar de Usuario
Suppawer
Shapeshifter
Shapeshifter
 
Mensajes: 166
Registrado: Dom Nov 21, 2004 9:36 am

Re: Lenguaje Máquina - NHP

Notapor AsCrNet » Vie Mar 10, 2017 10:02 am

:aer: prueba dejándolo así :
Imagen
ya que justo viene el diseño de la siguiente DList :D "ppppppp....."

Saludos
/|\ ATARI XL-XE
Avatar de Usuario
AsCrNet
Elemental
Elemental
 
Mensajes: 1046
Registrado: Dom Dic 18, 2005 11:27 am

Re: Lenguaje Máquina - NHP

Notapor Suppawer » Vie Mar 10, 2017 1:42 pm

Hechos los nuevos cambios. Aún nada :o

new2.rar
(3.27 KiB) 16 veces


A todo esto, el dimensionamiento de Q$ en la línea 120, ¿lo mantenemos igual?. ¿Y qué sucederá con el "contador" de bloques, con todos los cambios hechos?
Avatar de Usuario
Suppawer
Shapeshifter
Shapeshifter
 
Mensajes: 166
Registrado: Dom Nov 21, 2004 9:36 am

Re: Lenguaje Máquina - NHP

Notapor dogdark » Vie Mar 10, 2017 4:53 pm

hola amigo suppa, primero que nada interesante el tema, cual es la idea ¿cambiar a un cas la portada de un boot loader por una personalizable?, crear un bootloader en basic llamándolo desde un usr y grabarlo en casette. A ver si le puedo allullar perrin.
http://dogdark.tk es mi web
Avatar de Usuario
dogdark
Shapeshifter
Shapeshifter
 
Mensajes: 178
Registrado: Vie Oct 13, 2006 7:05 pm

Re: Lenguaje Máquina - NHP

Notapor Suppawer » Sab Mar 11, 2017 7:58 am

Hola dogdark. La idea es esa, la de modificar el lenguaje de máquina del stac130.bas para que genere los cas con los títulos y textos by Telco.
Avatar de Usuario
Suppawer
Shapeshifter
Shapeshifter
 
Mensajes: 166
Registrado: Dom Nov 21, 2004 9:36 am

Re: Lenguaje Máquina - NHP

Notapor dogdark » Sab Mar 11, 2017 4:12 pm

Así mirado a la rápida, ya me sentaré a revisar bien el código, hay varios errores, lo primero amigo supa, al modificar los Dlist. se movieron las posiciones de memoria del contador restante de bloques, si este trabaja directamente en una posición fija, jamas te entregara el resultado en la linea a que corresponda, porque esta, por ejemplo la envía a $07A4, al modificar el dlist, esta posición de muestra, cambio a $07B8, es un ejemplo. hay que revisar bien, desamblar el código, y ahí revisar bien a donde va ese cambio para que aparezca el contador, a que me refiero, si el dlist estaba en la linea 10 de arriba hacia abajo ahora yo la veo en la nueve.
Segundo hay que crear un cas original para ver como están estructurados los bloques en el casette, si la carga del dlist se hace en el bloque uno y dos, solo en el dos, si los datos están en el 3 o el 1y2 y el dlist en el 3, depende de como se traspase la grabación al cassette.
http://dogdark.tk es mi web
Avatar de Usuario
dogdark
Shapeshifter
Shapeshifter
 
Mensajes: 178
Registrado: Vie Oct 13, 2006 7:05 pm

Re: Lenguaje Máquina - NHP

Notapor AsCrNet » Lun Mar 13, 2017 7:44 am

Suppawer escribió:Hechos los nuevos cambios. Aún nada :o

Pero mijo nada de qué? :aer: no graba el copiador, no funciona el .cas, etc... El primer paso es ver si se aplicó la nueva pantalla 8) después hay que ver los detalles. Recuerda que solo cambiamos el diseño de ella nada más y aún falta para terminarlo. :D

P.D. sube un .cas para ver qué pasa....

Saludos
/|\ ATARI XL-XE
Avatar de Usuario
AsCrNet
Elemental
Elemental
 
Mensajes: 1046
Registrado: Dom Dic 18, 2005 11:27 am

Re: Lenguaje Máquina - NHP

Notapor Suppawer » Lun Mar 13, 2017 9:24 am

Aquí va el cas:

cas2.rar
(3.94 KiB) 19 veces
Adjuntos
bas2.rar
(3.27 KiB) 24 veces
Avatar de Usuario
Suppawer
Shapeshifter
Shapeshifter
 
Mensajes: 166
Registrado: Dom Nov 21, 2004 9:36 am

Re: Lenguaje Máquina - NHP

Notapor AsCrNet » Lun Mar 13, 2017 10:29 am

Queda corrupto el loader del NHP donde se agrando el diseño de la pantalla, por eso no funciona la carga :plaf:

Saludos
/|\ ATARI XL-XE
Avatar de Usuario
AsCrNet
Elemental
Elemental
 
Mensajes: 1046
Registrado: Dom Dic 18, 2005 11:27 am

Re: Lenguaje Máquina - NHP

Notapor dogdark » Vie Sep 08, 2017 3:01 pm

copiador telco

sistema operativo DOS 2.5

Imagen
Adjuntos
telco.zip
copiador telco
(11.35 KiB) 15 veces
http://dogdark.tk es mi web
Avatar de Usuario
dogdark
Shapeshifter
Shapeshifter
 
Mensajes: 178
Registrado: Vie Oct 13, 2006 7:05 pm

Re: Lenguaje Máquina - NHP

Notapor AsCrNet » Mar Sep 12, 2017 10:30 am

dogdark escribió:copiador telco

Gracias colega dogdark por compartirlo :bravo:

Saludos
/|\ ATARI XL-XE
Avatar de Usuario
AsCrNet
Elemental
Elemental
 
Mensajes: 1046
Registrado: Dom Dic 18, 2005 11:27 am

Re: Lenguaje Máquina - NHP

Notapor Suppawer » Mar Sep 12, 2017 2:01 pm

dogdark, te faltó hacer este pequeño cambio para obtener los colores correctos:

line-lst.rar
(173 Bytes) 18 veces


Imagen

PD: dogdark, ¿qué otros nhps has encontrado en los atr de Netol? Sería bueno documentarlos todos. Encontré varios, pero temo que se me pasaron algunos.
Avatar de Usuario
Suppawer
Shapeshifter
Shapeshifter
 
Mensajes: 166
Registrado: Dom Nov 21, 2004 9:36 am

Re: Lenguaje Máquina - NHP

Notapor dogdark » Mar Sep 12, 2017 7:15 pm

lo comparti como era originalmente, ahi revisare para realizar los cambios pertinentes, en cuanto a los otros los publique al lado, ahora como me permite hacer upload aca, hare un mismo post de recopilacion de copiadores.
http://dogdark.tk es mi web
Avatar de Usuario
dogdark
Shapeshifter
Shapeshifter
 
Mensajes: 178
Registrado: Vie Oct 13, 2006 7:05 pm


Volver a Software

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron