Duda basic protegido

Software y Juegos para retro-computadores, bueeeno... casi puros juegos :-)
Responder
Avatar de Usuario
dogdark
Mensajes: 594
Registrado: Lun Mar 04, 2013 1:36 pm
Contactar:

Duda basic protegido

Mensaje por dogdark » Mar Nov 14, 2017 2:08 pm

generalmente los basic unos los puede listar cuando los graba, pero hey varios que estan con una proteccion de listado y se usa esta referencia.

Código: Seleccionar todo

FOR VARI=PEEK(130)+PEEK(131)*256 TO PEEK(132)+PEEK(133)*256:POKE VARI,155:NEXT VARI
Se puede hacer la inversión, para poder ver el listado de ese programa que debe estar con ese código.????

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: Duda basic protegido

Mensaje por vitoco » Mié Nov 15, 2017 12:41 pm

Sí es posible la vuelta atrás y hacer legible el programa, pero se pierden los nombres originales de las variables.

Las direcciones de memoria 128 a 141 corresponden a los 14 primeros bytes (7 words de punteros) que quedan grabados en cada archivo BASIC, pero habiendo restado (en pareja) los valores de 128(LO) y 129(HI). Por eso los archivos empiezan con los 2 bytes $00.

Entre esos punteros están el 130 (3er y 4to byte) y el 132 (5to y 6to byte) de la tabla de nombres de variables, usados en la rutina para reemplazar los caracteres de los nombres por el caracter 155 ($9B) y destruir visualmente el listado, pero también está el puntero 134 (7mo y 8vo) que indica dónde está la tabla de valores de las variables, y de ahí se puede sacara de qué tipo es cada variable. Esa tabla usa 8 bytes por variable, y el primer byte de cada grupo indica el tipo de esa variable. Creo que el puntero 136 (9no y 10mo byte) sirve para saber donde ya terminó la tabla, y la reste entre estos 2 punteros dividida por 8 daría la cantidad de variables utilizadas. Revisa el Mapping para los detalles de cada puntero.

Mi recomendación es editar el archivo para poner las variables en su tabla y después cargarlo en memoria.

... o usar un programita que hice para eso hace años... 8-)

Avatar de Usuario
dogdark
Mensajes: 594
Registrado: Lun Mar 04, 2013 1:36 pm
Contactar:

Re: Duda basic protegido

Mensaje por dogdark » Mié Nov 15, 2017 12:48 pm

Me recomendaron un programa que esta en otro foro de atari, y con ese obtube el codigo, transformandolo en .lst y luego lo pase como corresponde en basic. Te adjunto el programa.
Basic_XE_Detokenizer_v1.11_1989_06_04_Psycho.rar
basic xe
(26.73 KiB) Descargado 189 veces

Avatar de Usuario
vitoco
Mensajes: 1970
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: Duda basic protegido

Mensaje por vitoco » Mié Nov 15, 2017 2:18 pm

Creo que la vuelta mediante la generación del listado es larga y puede introducir errores... El tema es recuperar las variables, y para eso hay que poner los valores apropiados en su lugar asignado dentro del archivo. Después se carga el programa y se limpia con LIST/ENTER desde el mismo BASIC.

Busqué mi programita y encontré la versión inicial que hace precisamente eso. Está en RecuperaVariables.atr. Para especificar el archivo a modificar, hay que poner D: (o lo que corresponda) al inicio del nombre. OJO que dije "modificar", es decir, perderás el archivo original, así que mejor trabaja con una copia del archivo a listar.

Ahora, con años de circo, lo haría mucho más simple aún. 8-)

Responder