Home
  Software
    HowTo
      Bootstrap
        Bootstrap

Idioma:
  English

Accediendo a una máquina DOS sin floppy

Si tiene una máquina DOS sin acceso (por ejemplo, no funciona o no tiene floppy disk), pero si tiene un puerto serial, aquí sigue un método para lograr de subir programas.

En mi caso particular, un amigo me pidió de instalar un programa antiguo en un máquina 386. Resulta que, cuando llegué en casa con la PC, de la placa 'Multi I/O' no funcionaba el controlador de floppy. Buscando encontré otra placa en casa, pero tampoco funcionaba. Sin CDROM, u otro solución, no me quedó otra que habilitar el puerto serial para la instalación.

DOS no tiene un programa terminal incluido, y el soporte de DOS para puerto serial es mas que triste (maxima velocidad es 9600 bd!). A través de otro sitio sobre el mismo tema, encontré el programa vtemu que permite comunicación de alta velocidad y además transferencias con el protocolo Kermit. Quedó el pequeño problema de transferir vtemu a la PC!

Escribí un programita corto, tohex.pas que convierte cualquier archivo a una versión en hexadecimal. Enviar texto a la 'PC remota' no es tan dificil, ya que en esa PC se puede simplemente hacer un COPY del puerto serial a un archivo. Y en la PC remote hice un program corto en Qbasic (parte de DOS), para convertir el archivo hex de nuevo a binario... Listo!

Asi que los pasos a seguir son:

  1. Bajar la versión hex del vtemu de este sitio.
  2. En la máquina remota, arrancar Qbasic y tipear el programa fmhex.bas (ver abajo). Salvar el programa en disco!
  3. En la máquina remota, arrancar la 'recepción' con el comando COPY COM1 VTEMU.HEX.
  4. Enviar vtemu.hex desde la máquina de origen, con cualquier programa de comunicaciones (hyperterminal, o lo que que esté disponible). Sospecho que un simple COPY VTEMU.HEX COM1 tendría que funcionar también.
    Observe que la máquina remota está esperando envio en modo 9600Bd, paridad par, y 7 bits de datos '9600,e,7,1'.
  5. Esperar el final del envio (15 - 20 segundos). En algunos programas es preciso de enviar el fin de archivo, apretando Ctrl-Z (y quizás después enter).
  6. En la máquina remota, convertir vtemu.hex a binario con el programa de Qbasic. (se puede iniciar el programa dentro de Qbasic con el comando Shift-F5)
  7. Listo! Ahora se puede arrancar vtemu! No se asuste, vtemu.hex presenta una pantalla vacia al arrancar.
    Alt-P permite modificar los parametros. Alt-X sale. Alt-R y Alt-T permite recibir y transmitir archivos en el protocolo Kermit.
Referencia rápida para QBasic: arrancar con qbasic. Saltar el menu de inicio (si quiere) con Esc. Entrar el programa tipeando. QBasic revisará cada línea entrada inmediatamente. Salvar el programa mediante el menu 'File', 'Guardar como'. Para entrar al menu, apretar y soltar la tecla Alt (extraño, no?). Correr el programa en modo edición, con Shift-F5.

fmhex.bas

<pre><b><tt>        INPUT &quot;Input archive - &quot;, inf$
        INPUT &quot;output archve - &quot;, outf$
        OPEN inf$ FOR INPUT AS #1
        OPEN outf$ FOR OUTPUT AS #2
        DO
          INPUT #1, line$
          IF LEFT$(line$, 1) &lt;&gt; &quot;:&quot; THEN 100

          c = 2
          WHILE c &lt; LEN(line$)
            a = ASC(MID$(line$, c, 1)) - 48
            IF a &gt; 9 THEN a = a - 7
            b = ASC(MID$(line$, c + 1, 1)) - 48
            IF b &gt; 9 THEN b = b - 7
            s$ = s$ + CHR$(a * 16 + b)
            c = c + 2
          WEND

100     LOOP UNTIL EOF(1)
        PRINT #2, s$
        CLOSE (1)
        CLOSE (2)
</tt></b></pre>

Bajada de programas

tohex.pas Código fuente en Turbo Pascal, del convertidor de binario a hex. Solo se necesita si quiere enviar otro programa (no el vtemu), ya que vtemu.hex está disponible aquí
tohex.exe Ejecutable del tohex para no sea necesario de instalar Turbo Pascal.
fmhex.bas El programa en QBasic para tipear en la máquina remota.
vtemu.zip El programa vtemu, en forma binaria y en convertido a hex, listo para enviar.
El sitio de Dan El sitio donde encontré vtemu y otro método para transferir archivos (que, por desgracia no funcionó para mi, probablemente por falta de paciencia).
12573
(c) John Coppens ON6JC/LW3HAZ correo