Hola !!! ya tengo alguna novedad , más rápido de lo que pensaba !
Disculpad mi poco conocimiento en el tema ,esto es todo lo que he averiguado y la mejor forma que se me ha ocurrido de hacerlo .
Veréis , al desensamblar con IDA me salía este mensaje "possibly packed file" , en el desensamblado he buscado alguna INT 13 que es el acceso a disco , sin éxito .Ahora veréis por qué.
He conseguido el gametools debugger y con el programa en funcionamiento he vuelto a buscar la INT 13 y encontrada en 01d6h , resulta que el programa tiene algunos cientos de bytes compactados y dentro de esos bytes está la rutina que comprueba si el disco es correcto o no .
El programa descompacta los bytes y crea una cabecera de lectura de sectores.
Luego tras encontrar la rutina de acceso al diskette he investigado un poco toda la maraña de saltos y retornos que hace el programa , menudo lío .
Otra cosa que he averiguado , gracias a una dirección de Geocities ,pero de una versión del programa más antiguo, es que el diskette tiene una protección Laser que unas veces lee bien un byte de cierto sector y otras no , menudo lío !!
Y este es el listado ensamblador que he sacado con gametools :
DS:01B1 B800100 MOV AX,001
DS:01B4 A3BF01 MOV [01BF],AX
DS:01B7 B80400 MOV AX,0004
DS:01BA A3C101 MOV [01C1],AX
DS:01BD EB04 JMP 01C3
DS:01BF 0100
DS:01C1 0400
DS:01C3 B80102 MOV AX,0201 ; AL=LEE SECTOR AH=LEE 1 SECTOR
DS:01C6 8B1E191E MOV BX,[1E19] ; BUFFER DE DATOS
DS:01CA B500 MOV CH,00 ; CILINDRO
DS:01CC B101 MOV CL,01 ; NUM. SECTOR
DS:01CE B600 MOV DH,00 ; NUM. CABEZA
DS:01D0 8A160A00 MOV DL,[000A] ; NUM. UNIDAD
DS:01D4 1E PUSH DS
DS:01D5 07 POP ES
DS:01D6 CD13 INT 13
DS:01D8 7317 JNB 01F1
DS:01DA A1C101 MOV AX,[01C1]
DS:01DD 3B06BF01 CMP AX,[01BF]
DS:01E1 7406 JZ 01E9
DS:01E3 FF06BF01 INC Word Ptr [01BF]
DS:01E7 EBDA JMP 01C3 ; VUELVE A LEER SECTOR
DS:01E9 E8FC14 CALL 16E8 ; REINICIA DISKETERA
DS:01EC E82A00 CALL 0219 ;IMPRIME TEXTO “INTRODUCE Disco llave¨”
DS:01EF EBC0 JMP 01B1
DS:01F1 E8BC0E CALL 10B0
DS:01F4 72F6 JB 01EC
DS:01F6 E88200 CALL 027B
DS:01F9 803E901B59 CMP Byte Ptr [1B90],59
DS:01FE 7403 JZ 0203
DS:0200 EB11 JMP 0213
Aún me falta saber qué hacen los demás saltos , no he parado de navegar con el portátil averiguando ensamblador 8086 , al tiempo que el programita corre en un 286 . Qué dolor de cabeza !!!!!!!
El aprender en su día ensamblador z80 me ha ayudado también.