Han sido días complicados acá. Por si no lo saben, trabajo en el Ejército. Se supone que soy Adminstrador de Base Dato pero estoy a cargo de toda la arquitectura del Sistema de Educación a Distancia.
He estado preocupado que no los hackeen. Este Sistema fué clave en el actuar de militares durante el toque de queda. Actuaron de la mejor forma posible ya que tienen muchos cursos de DDHH y son requisito para el ascenso.
Como somos entidad del Ejercito, han hackeado varias páginas acá pero nosotros hasta ahora invictos.
Re: DESEMPOLVANDO NHP 3.6 (AYUDA)
Publicado: Vie Nov 15, 2019 3:02 pm
por dogdark
Bueno tío,,, ya habrán tiempos más tranquilos para analizar todo y con más calma, lo importante es que este bien, un lugar como el suyo es complicado de mantener en linea y sin hackeos,,, cuando se pueda, veamos esto paso a paso,, yo por lo menos ya realice el primer paso que necesitaba, ahora estamos realizando mejoras, para mantener vivo el sistema de casetes para los que somos amantes, aunque digan que esto se esta acabando, somos pocos los que queremos revivir lo que había y dejar nuevas versiones. De todas maneras se agradece enormemente la buena voluntad de su parte.
Re: DESEMPOLVANDO NHP 3.6 (AYUDA)
Publicado: Lun Nov 18, 2019 5:26 pm
por dogdark
Un pequeño avance con el proyecto,,, cambio de velocidades, 4 primeros bloques a 600 baudios, load y carga de juego a 1150, probado en atari real, carga al 90%, si la casetera esta bien regulada pasa de una.
Re: DESEMPOLVANDO NHP 3.6 (AYUDA)
Publicado: Jue Dic 05, 2019 2:28 pm
por dogdark
yo de nuevo..... bueno siguiendo con el proyecto de a poco en una nueva versión pero con la misma tematica y estetica, me encontré con el siguiente problema, que puede que a vitico le haya pasado, dejaremos como ejemplo el goonies, como este juegos u otros son de carga solo para 130xe.
a) en primera instancia ya se modificó tanto el asm principal como el loader para que permitiera la carga de archivos superiores a 250 bloques y que tengan más de 65534 bytes. (logrado).
b)quedo soportando el uso de 4 bancos de memoria más el principal (logrado).
c)se bajo de 252 bytes de data del juego a 251 para colocar otro byte mas para el contador y sobrepasar los 256 bloques restantes(logrado).
Paso a documentar el problema y si es posible alguna aclaración del tema.
goonies comienza con la carga y en su primer bloque aparece la portada del mismo juego, que tengo entendido que ejecuta un sistema de carga para que la data restante se empiece a cargar en los bancos de memoria restante del atari, es como un organizador.
loader del copiador, obliga a que esta portada se elimine y aparezca el dli del copiador nuevamente con la data del nombre y los bloques restantes de lo que se esta cargando, existiendo un pito lento, así avanza como 4 bloques mas descarga y el archivo se cuelga,,, alguna idea en la que me puedan ayudar u orientación al respecto,,, plis..
pd: los demás juegos que tengo comprimidos y procesados para lecturas de casete funcionan bien.
pd2: Vitoco.... en el sitre uso el mismo xex y carga sin problemas.
Re: DESEMPOLVANDO NHP 3.6 (AYUDA)
Publicado: Jue Dic 05, 2019 11:02 pm
por vitoco
Mi primera impresión es que tu loader está chocando con la data cargada (el juego).
No sé exactamente dónde está almacenado el loader, pero por los primeros post de este hilo, parece ser que en $CC00. Al comparar con lo siguiente no se ve colisión explícita, aunque no sé si la rutina inicial hace algo en la memoria donde tienes el loader.
Algo que me di cuenta en tu loader es que manipula $D301, y que de la estructura del XEX puedes ver que también lo usa para forzar la carga de datos del juego directamente sobre cada bloque de memoria extendida. Tal vez tengas un conflicto ahí.
Eso es lo que se me ocurre por ahora sin mirar más código...
Re: DESEMPOLVANDO NHP 3.6 (AYUDA)
Publicado: Vie Dic 06, 2019 12:06 am
por dogdark
este es el código del loader
esta en $CC00, pero al desamblar te aparece el código en $0244
El xex del copiador lo estoy trabajando en MYDOS4.53
voy a adjuntar el código completo que esta en mads, programado en assembler a la antigua, que no es el mismo que el copiador anterior el ultra,,, este es un proyecto para 256k y no para 130xe.
al realizar también el cambio de bancos se descontrola la velocidad, porque meto otro byte en la misma posición, pero como ambos van donde mismo no puedo jugar con la velocidad en otro lado. ahí estoy complicado. me interesa lo primero la carga del archivo,donde lo estoy pisando... porque he revisado y no me logro dar cuenta,,, son esos momentos en que te bloqueas y a veces es algo tan simple.
Gracias por los fuentes. Estuve mirando muy por encima y es demasiado enredado determinar qué compone el loader a nivel de fuentes, pues me llama la atención que el código referencia direcciones de memoria fuera de él. Supongo que él mismo copia porciones de si mismo hacia otros lados o que hay código que fue cargado desde otros ASM.
Además manipula PORTB ($D301), aparentemente para habilitar el BASIC en una parte del código. ¿Para qué? ¿Sólo protección anti pirateo o hay algo más ahí?
Al parecer requiere que la ROM del SO esté copiada en la RAM y modificada durante el proceso de carga, pues en otro lado desabilita la ROM, el BASIC y los bancos de memoria extendida de una, lo que se confirma dices que se te descontrola la velocidad (pero no sé si te refieres en el loader o previamente en el grabador). Si es así, el XEX del Goonies va a volver el SO a ROM 5 veces durante la carga y podría ser el motivo por el que se cuelga.
Por lo tanto, si el loader usa una copia modificada de la ROM activa en la RAM, tal vez lo que necesitas es modificar el XEX del Goonies para que en cada cambio de banco el bit 0 esté en valor 0 y no 1. Eso lo podrías hacer buscando la secuencia de bytes $01-$D3-$01-$D3-$XX-$FF-$FF con $XX cada uno de los bancos $E3, $E7, $EB, $EF y $FF, y restarle 1 dejando $XX como $E2, $E6, $EA, $EE y $FE respectivamente.
Ojo que en todo momento estoy hablando del loader, porque sí me quedó claro que el grabador sí hace uso de una versión modificada de la ROM en la RAM.
Espero te sirva...
Re: DESEMPOLVANDO NHP 3.6 (AYUDA)
Publicado: Vie Dic 06, 2019 3:49 pm
por dogdark
si es medio enredado el código,,, empezaremos desde cero nuevamente,,, porque creo que el problema esta en el cambio de bancos del copiador..
te dejare adjunto el copiador más 2 cas de prueba...
estructura del copiador:
kem2.asm (original del nhp36) - copia la rom a la ram desde $CC00 hacia adelante. esa fué mi consulta anterior sobre la copia de roma ram desde donde empezaba hasta donde llegaba.
loader.asm (modificada con nueva portada) - con los cambios realizados por ayuda del vitoco, funcional para todos los juegos.
nuevas...
hexascii.asm - nos permite poder pasar bytes a números atascii, consultada en este foro y ayuda de xt5.
memo256k.asm - rutina que nos permite poder identificar la cantidad de bancos adicionales encontrados en un atari, código generado por vitoco, desde 1 a 17 bancos.
Lo primero que realice fue modificar el dli para dejarlo personal con una nueva cara en el copiador,donde existirá dos titulos, obviamente se agrega uno que aun no esta anexado, por que empece de nuevo para ver donde se me genera el error. Primeras pruebas con dos juegos, alien ambush y draconus 3, con ambos comienza la carga y finaliza con estos y apareciendo en la pantalla jugable.
Segundo cambio fue alterar la velocidad con un codigo compartido por willysoft que nos permite poder generar la velocidad de los primeros 4 bloques a 800 baudios y desde ahi graba a 1170 baudios, prueba con ambos juegos todo ok.
Para implementar este código lo tuve que introducir desde GAUTO en donde comienza el proceso de grabación, ahí esta implementado y llamo la rutina con un jsr a BAUD.800, y antes de que se produzca el espacio para pasar a grabar el loader llamo a la rutina BAUD.1170, y despues pasa a NHPUT donde se graba la data del juego a 252 bytes por bloque, hasta ahi todo ok, grabado de ambos juegos y probados aparecen en pantalla juagable.
ahoraaaaa viene lo bueno...
Esta rutina nos permite poder realizar los cambios de bancos de memoria y se aplica en FGET donde nos carga la data en memoria desde $4000 hasta $4FFF, según sea el banco disponible, comenzando desde el 177. la carga se realiza sin problema, mostrando en pantalla cual es el portb en el cual se esta ingresando, que se muestra a través de la rutina ESPORTB, que trabaja a la par con hexascii.asm donde pasamos los bytes a atascii.
MOM almacena los valores de x y a, por que generalmente son diferentes y hay que mantenerlos y como son alterados dentro de la rutina de CAMBIOBANCO estos los guardo ahí y los vuelvo a cargar a posterior.
En BANCA se guarda el valor del banco a buscar desde 0 hasta lo encontrado, 1 al 17, siendo seteado a cero antes de ser usada la rutina. ejemplo en FGET esta seteado junto a LEN(cantidad de bytes leidos).
Aplico lo mismo pero en la parte de grabación,, en
originalmente donde esta el llamado a la rutina JSR CAMBIOBANCO esta
CLC
LDA $D301
ADC #$04
STA $D301
Ya realizados estos cambios solo alien ambush aparece en pantalla y jugable, pero Draconus que necesita un cambio de banco este no aparece al final de la carga del juego.
respecto a que deshabilita el basic, lo hace al final del código, que al presionar reset, el programa empieza de nuevo, pero los valores ya existentes no se borran, queda con los mismos internos.
Por lo tanto, si el loader usa una copia modificada de la ROM activa en la RAM, tal vez lo que necesitas es modificar el XEX del Goonies para que en cada cambio de banco el bit 0 esté en valor 0 y no 1. Eso lo podrías hacer buscando la secuencia de bytes $01-$D3-$01-$D3-$XX-$FF-$FF con $XX cada uno de los bancos $E3, $E7, $EB, $EF y $FF, y restarle 1 dejando $XX como $E2, $E6, $EA, $EE y $FE respectivamente.
Realizada la modificación y solo da problemas al final, se cuelga...no parte el juego.... antes no pasaba del 4 bloque.
realice todo de nuevo para ver si era problema de código fuente del copiador, con altos y bajos logre calibrar la velocidad y los bancos de memoria, pude jugar con ellos, también debí modificar de nuevo el loader... ¿Porque?... porque desde el archivo principal, estaba enviando mal los datos al loader,,, lo que corresponde es enviar 1.- 2 bytes $55,$55
2-. 1 byte contador low
3-. 1 byte contador high,
4*. 252 bytes de data
5-. 1 byte final.
y tanto como modifique el fuente principal, tambien tuve que modificar el loader para dejarlos compartibles, desde ahi, ya pude cargar juegos como por ejemplo alien ambush, draconus 3, estos dos apareciendo en pantalla jugable, probe con Goonies y commando 256k, ambos dieron problemas.
Lo otro,,, en los 3 primeros bloques de la carga del juego llamada como pagina 7, se realiza la carga de la rom a la ram modificada, porque se necesita para trabajar con las velocidades en la carga del loader y de la data de los bloques. yo creo que ahí esta el problema final. mas rato te envió los códigos fuentes por wazzup.
Re: DESEMPOLVANDO NHP 3.6 (AYUDA)
Publicado: Lun Dic 09, 2019 12:12 am
por vitoco
Estuve haciendo un poco de traza a tu .CAS y me aburrí...
Lo que pasa es que no sé por qué en Altirra no pude configurar que cargara la data rápidamente como lo hace con el .CAS grabado con SITRE, pero me imagino que Altirra se da cuenta que el SO está modificado y por eso suenan todos sus pitos y no lo hace con parche propio del SIO.
Efectivamente vi cómo cargaba los 3 primeros bloques en la página 7 y mitad de la 8, y cómo desde ahí copiaba la ROM en la RAM y después le borraba algunos pedazos de código en $ED85 y reemplazaba otro más en $ECEF, pero no tengo idea exactamente para qué (ok, sé que es para aumentar los baudios, pero no sé qué es lo que corrige del S.O.). SITRE no requiere modificar la ROM para cargar, ya que al grabar aumenta los baudios sólo a un nivel en que el S.O. normal y sin pichicatas puede detectarlo y administrarlo, pero nunca calculé a cuantos baudios lo dejé.
La página 7, después de cargar el loader, se usa como buffer para cargar los bloques, y e ndemás, vi que también se ponía algo de código en la página 8.
También vi que aún hay interrupciones en la pantalla, pero no sé para qué. Supongo que originalmente era para el arco iris, pero si no está, ¿para qué se quedó?
Sí noté que en algún momento se perdió el control y la traza comenzó a andar erráticamente fuera de la zona del loader y del S.O. No sé si se deba a que alguna interrupción se activó en algún momento crítico de la carga o que la pila de la CPU quedó con basura e hizo un RTI hacia donde no debía... no sé... no lo pude reproducir.
Tengo la sensación que la última parte del XEX está chocando con el código que el loader puso en la página 8, pues el juego carga en página 6 y después eso hace un movimiento de memoria para bajar lo que se cargó en $1700 hasta $700, pisndo la página 8.
También podría ser que lo que le falta al loader es volver a dejar la ROM como memoria oficial después de terminar la carga y antes de pasarle el control al juego.
Hay harto para entretenerse...
Re: DESEMPOLVANDO NHP 3.6 (AYUDA)
Publicado: Mar Dic 10, 2019 8:48 pm
por dogdark
Como el sistema de carga loader, esta dando problemas por el sistema que copia la rom a la ram y este produce conflictos, tengo que si o si eliminar la rom a ram desde los primeros bloques de carga que van en el casette. También cambie el editor con el que estaba trabajando por que me daba problemas y volví al mítico edit plus.
la primera etapa que se graba en el casete consta de 3 bloques donde va la roma ram y una mini portada,este bloque va en $0700, la modifique por 1 solo bloque con código simple y sin portada.
*=$0400
LDX #11
COPY
LDA DATA,X
STA $0300,X
DEX
BPL COPY
JSR 58457
BPL NOJMP
JMP 58487
NOJMP
JMP NOJMP
DATA
.BYTE $60,$00,$52,$40
.BYTE $00,$07 ;indico donde inicia la pagina loader
.BYTE $23,$00
.WORD $AAAA ;byte que paso por defecto
;para el largo del loader
.BYTE $00,$80
código del loader que estoy armando, que no funciona,, algo pasa aquí... por lo menos debería aparecer la pantalla.
en estos dos últimos pueden haber fallos.
y el código del loader
* = $06FE
.BYTE $55,$55
LDX #$00
TXS
STX 580
INX
STX $09
JSR RECUPERO
JMP START
DESCUENTO
.BYTE 0,0
NBYTES
.BYTE 252
DLIST
.BYTE $70,$70,$70,$42
.WORD MENSAJE
.BYTE $70,$06,$70,$02,$70,$70
.BYTE $70,$70,$06,$70,$70,$06
.BYTE $70,$06
.BYTE $70,$70,$70,$70,$02,$70
.BYTE $06
.BYTE $41
.WORD DLIST
MENSAJE
.SBYTE "PARA COMPUTADORAS XL-XE-256K BY DOGDARK"
.SBYTE " "
.SBYTE +128,"dogdark"
.SBYTE " softwares "
.SBYTE " AGRADECIMIENTOS A VITOCO Y WILLYSOFT "
.SBYTE " PRESENTA "
NAME
.SBYTE "--ACA VA EL TITULO--"
NAME2
.SBYTE "--ACA VA EL TITULO--"
.SBYTE " cargara dentro de "
CONTADOR
.SBYTE "0000 Bloques. "
.SBYTE " "
.SBYTE +128,"sistemas"
.SBYTE " stac 2019 "
MERR
.SBYTE " - E R R O R - "
.SBYTE " Retroceda 3 vueltas y presione START "
.SBYTE " "
.SBYTE +128,"sistemas"
.SBYTE " stac 2019 "
CDL
LDX # <DLIST
LDY # >DLIST
LDA $02
STX $0230
STX $D402
STY $0231
STY $D403
STA $02C6
STA $02C8
STA $D018
RTS
START
LDY NBYTES
LOOP
JMP LOOP
PFIN
.BYTE 0,0,0,0,0,0,0,0,0,0,0
RECUPERO
LDX #11
MNANB
LDA DSIO,X
STA $0300,X
DEX
BPL MNANB
JSR $E459
BPL PONDATA
JMP $E477
PONDATA
LDX #19
PONDATA2
LDA DSIO+2,X
STA NAME,X
DEX
BPL PONDATA2
LDX #19
PONDATA3
LDA DSIO+22,X
STA NAME2,X
DEX
BPL PONDATA3
LDX #3
PONDATA4
LDA DSIO+42,X
STA CONTADOR,X
DEX
BPL PONDATA4
LDA DSIO+46
STA DESCUENTO
LDA DSIO+47
STA DESCUENTO+1
LDX #3
STX $41
LDX #$22
STX 559
STX $D400
LDX #$00
TXA
CLP4
STA $0400,X
INX
BPL CLP4
STA $06FE
STA $06FF
JMP CDL
DSIO
.BYTE $60,$00,$50,$40
.WORD DSIO
.BYTE $23,$00
.WORD 48 ;26
.BYTE $00,$80
Re: DESEMPOLVANDO NHP 3.6 (AYUDA)
Publicado: Mié Dic 11, 2019 6:57 am
por dogdark
primer error encontrado.... estaba pasado como en 80 bytes en el loader en el display list, tuve que eliminar varias lineas .SBYTE......
Re: DESEMPOLVANDO NHP 3.6 (AYUDA)
Publicado: Mié Dic 11, 2019 8:52 am
por Suppawer
dogdark escribió:
primer error encontrado.... estaba pasado como en 80 bytes en el loader en el display list, tuve que eliminar varias lineas .SBYTE......
Pensaba que con los cambios que habías hecho al principio, ya no existían limitantes:
PD: Hace semanas que estoy luchando con el nhp256 (M65), para poder también hacer modificaciones al dlist
Tengo el problema que tuviste al principio con el nhp36:
dogdark escribió: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.
lo primero,,, en que editor estas trabajando,,,, en este proyecto estamos usando tanto wudsn o edit plus y con extensiones .asm,,, la extensión .m65 no lo pude abrir,, por eso siempre mencionen en que ide trabajan cuando compartan algún archivo, para echar una mano,,, el nhp256 ya lo desempolvé completo, si no lo he liberado, es por que algo me faltaba,, mmmm que no me recuerdo,, por algo se colgaba.... cuando me acuerde te digo.
Re: DESEMPOLVANDO NHP 3.6 (AYUDA)
Publicado: Mié Dic 11, 2019 11:26 pm
por Suppawer
Vi tu versión 2.56 "desempolvada" para Mads. Me será de mucha ayuda. Gracias!
Suerte en tu proyecto actual.
PD: El archivo .m65 que había subido, era la versión Atari Mac65 del nhp 2.56.