Cómo instalar PC-DOS 7.1 en una tarjeta SD con FAT32

Para mi siguiente distribución para el ZX-Uno he querido usar una tarjeta SD de 16GB formateada en FAT32 para meter principalmente el contenido para los cores de Spectrum y PC-XT, y así liberar de espacio de la otra tarjeta SD de 4GB formateada en FAT16 que ya estaba muy llena y que no permitía añadir casi nada sin borrar antes contenido.

Voy a comentar los pasos que he dado para crear esa tarjeta desde linux y que pueda arrancar en el ZX-Uno con los cores de PC-XT VGA y CGA, ademas de poderse usar con otros cores que tengan soporte de FAT32.

1.- Particionado de la tarjeta SD de 16GB

He particionado la tarjeta SD para contener 3 particiones. La primera en FAT32  que ocupará la mayoría del espacio, y una segunda de 32MB y una tercera de 4MB que son necesarias para instalar Fuzix.

Para la partición principal he usado la utilidad de particionado de discos duros de la distribución de linux Mageia, y para las 2 últimas el comando fdisk.

Así se encuentra particionada:

2.- Crear una imagen en el disco duro del contenido de la tarjeta SD

Para ello utilizo el comando dd como root.  El dispositivo que corresponde en mi ordenador a la tarjeta SD es el /dev/sdh

dd if=/dev/sdh of=PC71.img bs=8M

3.- Convertir la imagen de la tarjeta al formato .vdi que usa VirtualBox

La conversión la realizo con la herramienta qemu-img

qemu-img convert -f raw -O vdi PC71.img PC71.vdi

4.- Crear un disquete de instalación con PC-DOS 7.1

Para ello he seguido las instrucciones que se pueden ver en esta pagina y que utilizan los ficheros contenidos en este archivo comprimido:

ibm_sw_sgtk_1_3_07_anyos_anycpu

NOTA: Los pasos a) a f) no hace falta hacerlos ya que en el paso g) se encuentra la imagen de disquete ya lista para el siguiente punto.

a) Descomprimir el contenido del archivo anterior.

b) Hacer una copia del archivo imagen de disquete sgdeploy/sgtk/ads/images/tk_raid.vfd con otro nombre, por ejemplo tk_raid_edu.vfd

c)  Hay que montar la nueva imagen de disquete (en Windows se puede hacer con WinImage).  Como yo uso linux he creado un directorio llamado disquete y luego he montado la imagen sobre ese directorio usando mount como usuario root:

mount -o loop tk_raid_edu.vfd disquete

d) Hay que entrar dentro de la carpeta disquete y borrar todos los ficheros dejando solo COMMAND.COM, IBMBIO.COM e IBMDOS.COM.

e) Copiar todos los ficheros de sgdeploy/sgtk/DOS/ a la carpeta disquete excepto los ficheros COMMAND.COM, IBMBIO.COM e IBMDOS.COM.

f) Salir de la carpeta disquete y desmontar la imagen de disquete con umount:

umount disquete

g) El contenido de la imagen de disquete con los archivos ya copiados se encuentra aquí:

tk_raid_edu.vfd

4.- Crear una máquina virtual con VirtualBox de tipo MS-DOS y montar como almacenamiento la imagen del disquete y la de la tarjeta SD como un disco duro.

5.- Encender la máquina virtual y ejecutar tras el arranque el comando

fdisk32 /status

Eso nos presenta la cantidad de megas disponibles que tenemos en la unidad C: y que en mi caso eran 14.579 megas.

Asignamos a la unidad C: como primaria con el comando:

A:\> fdisk32 1 /pri:14579

6.- Formatear el disco duro C: en FAT32 haciéndolo arrancable y copiando los ficheros de sistema.

Para ello se debe ejecutar este comando:

A:\> makeboot

Esto formateará la unidad C: y copiará los ficheros COMMAND.COM, IBMBIO.COM e IBMDOS.COM (estos dos últimos con atributo oculto).

7.- Crearemos en el disco duro C: la carpeta DOS y pasaremos a ella todos los ficheros del disquete con los comandos:

A:\>MKDIR C:\DOS
A:\>XCOPY *.* C:\DOS /S
A:\>COPY CFGFILES\*.* C:\

8.- Una  vez copiados los archivos al disco duro C: esto es lo que veremos al ejecutar un DIR sobre él.

9.- Para comprobar que ya está todo creado y funciona correctamente debemos apagar la máquina virtual, extraer del almacenamiento la imagen de disquete y volver a arrancarla solo con el disco duro.

Tras el arranque deberemos ver algo como esto.

Si ha arrancado correctamente deberemos apagar la máquina virtual ya que no usaremos más el VirtualBox.

10.- Convertir la imagen de disco .vdi a .img

Para ello deberemos volver a usar la utilidad qemu-img y ejecutar el siguiente comando:

qemu-img convert -f vdi -O raw PC71.vdi PC_ZXUNO.img

11.- Grabar la imagen en la tarjeta SD

Para ello usaré de nuevo el comando dd (CUIDADO: el comando dd es altamente destructivo si se equivoca en señalar la unidad destino correcta)

dd if=PC_ZXUNO.img of=/dev/sdh bs=8M

12.- Una vez grabada la imagen en la tarjeta SD está ya debería poderse usar en el ZX-Uno para arrancar con los cores de PC-XT. Ahora ya solo faltaría añadir utilidades de DOS y ajustar los ficheros CONFIG.SYS y AUTOEXEC.BAT para un arranque óptimo… pero esa es otra historia.

13.- EPILOGO: El fichero .img se puede renombrar a .VHD y utilizarse en otras FPGA como disco duro virtual, por ejemplo con el core next186.

Esta entrada fue publicada en Sin categoría, ZX-Uno y etiquetada . Guarda el enlace permanente.