PC‐DOS 7.1 - Maverick-Shark/retroGuru GitHub Wiki
Publicado el 15 abril, 2022 por desUBIKado
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í:
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.
{UPDATE: This procedure has been superceded by a simplified procedure that does not require DOS 7.0 as an intermediary step. See below.}
PC-DOS 7.1, not to be confused with PC-DOS 7.0 revision 1 (aka PC-DOS 2000), was a series of updates to PC-DOS 2K, most prominently featuring support for logical block addressing (LBA) and FAT32. It was not made available commercially, and is not a complete OS. Installing it under VirtualBox proved tricky for me (I'll detail my experience in a subsequent post). In the end, I had to install PC-DOS 7.0, then replace it with the 7.1 files.
As a result of a number of issues I encountered I was unable to install PC-DOS 7.1 directly onto a hard drive under VirtualBox 5.18. Instead, we're going to do it in a round-about way via PC-DOS 2000.
- Get yourself a bootable PC-DOS 2000 floppy disk image (you're on your own here, but it shouldn't be too difficult -- nudge nudge wink wink). Pare it down to only the following six files:
ATTRIB.EXE
COMMAND.COM
IBMBIO.COM
IBMDOS.COM
FDISK.COM
FORMAT.CO
-
Download a copy of the IBM ServerGuide Scripting Toolkit, DOS Edition (SGTK): https://www-947.ibm.com/support/entry/p ... MIGR-53564. Unpack the SGTK package and locate the PC-DOS 7.1 files in sgdeploy/sgtk/DOS/.
-
Make a subdirectory on your installation floppy (I called mine PCDOS71) and copy all the PC-DOS 7.1 files from the SGTK into it. Don't forget the AUTOEXEC.BAT and CONFIG.SYS file in sgdeploy/sgtk/DOS/cfgfiles/.
Create a basic DOS VM in VirtualBox. Just take all the default settings.
Boot your DOS VM from the installation image you created in Step I.
When you get to the A:> prompt, run FDISK and create a primary DOS partition on your hard drive -- just press ENTER four times to take all the defaults and reboot the VM.
Now format the C: drive, give it a label and transfer the system files:
A:\>format c: /v:pcdos71 /s
WARNING: ALL DATA ON NON-REMOVABLE DISK
DRIVE C: WILL BE LOST!
Proceed with Format (Y/N)?Y
Formatting 499.53M
System transferred
523,526,144 bytes total disk space
139,264 bytes used by system
523,386,880 bytes available on disk
8,192 bytes in each allocation unit.
63,890 allocation units available on disk.
Volume Serial Number is 1E48-1107
In addition to formatting the partition, the above FORMAT command also writes a DOS boot record to the C: partition and transfers the three system files, IBMBIO.COM, IBMDOS.COM and COMMAND.COM.
You can check:
A:\>DIR C:\ /aa
Volume in drive C is PCDOS71
Volume Serial Number is 1E48-1107
Directory of C:\
IBMBIO COM 40,726 04-30-98 1:00p
IBMDOS COM 37,066 04-30-98 1:00p
COMMAND COM 52,965 04-30-98 1:00p
3 files(s) 130,757 bytes
523,386,880 bytes free
We really only wanted the boot record from PC-DOS 2000, so now we'll replace the system files with 7.1's. Delete the 7.0 system files:
A:>ATTRIB -S -H -R C:
A:>DEL C:*.* All files in directory will be deleted! Are you sure (Y/N)?Y
Copy the 7.1 system files to the C: drive. Make sure you do it in this order!
```sh
A:\>CD PCDOS71
A:\PCDOS71>COPY IBMBIO.COM C:
1 file(s) copied
A:\PCDOS71>COPY IBMDOS.COM C:
1 file(s) copied
A:\PCDOS71>COPY COMMAND.COM C:
1 file(s) copied
A:\PCDOS71>COPY CONFIG.SYS C:
1 file(s) copied
A:\PCDOS71>COPY AUTOEXEC.BAT C:
1 file(s) copied
Create a DOS directory on C: and copy the 7.1 files into it:
A:\PCDOS71>MKDIR C:\DOS
A:\PCDOS71>COPY *.* C:\DOS
...
XCOPY.EXE
43 file(s) copied
We're done! Your C:\ drive should now look like this:
A:\PCDOS71>DIR C:\
Volume in drive C is PCDOS71
Volume Serial Number is 1E48-1107
Directory of C:\
IBMBIO COM 44,656 06-29-05 6:03a
IBMDOS COM 42,566 06-29-05 6:03a
COMMAND COM 53,802 06-29-05 6:02a
CONFIG SYS 135 06-16-06 12:45p
AUTOEXEC BAT 753 03-31-05 4:09a
DOS <DIR> 11-07-16 12:13p
6 file(s) 141,912 bytes
522,354,688 bytes free
Unmount the floppy image, and reboot the VM. You should wind up at a C:\ prompt. Type VER to check.
Starting PC DOS...
HIMEM:DOS XMS Driver, Version 3.15 - 05/30/94
Extended Memory Specification (XMS) Version 3.0
Copyright (C) IBM Corp. 1988, 1994
128 extended memory handles available.
Installed A20 handler number 2.
64K High Memory Area is available.
C:\>ver
PC DOS Version 7.1
Revision 0
Wrap-Up
This issues I encountered prevented me from creating a FAT32 partition.
The PC-DOS 7.1 files in the IBM ServerGuide Scripting Toolkit do not represent a full OS. Many of the standard utilities are missing. If you have a copy of PC-DOS 2000, you can simply copy files from there. Just be sure not to overwrite any files with the same name.
And if anyone has figured out how to install 7.1 directly, let me know how you did it.
http://desubikado.sytes.net/2022/04/15/como-instalar-pc-dos-7-1-en-una-tarjeta-sd-con-fat32/