diff --git a/doc/English ZXDOS+ and gomaDOS+ Manual.adoc b/doc/English ZXDOS+ and gomaDOS+ Manual.adoc index 7d71166..4e51f02 100644 --- a/doc/English ZXDOS+ and gomaDOS+ Manual.adoc +++ b/doc/English ZXDOS+ and gomaDOS+ Manual.adoc @@ -1,6 +1,6 @@ = ZXDOS+ and gomaDOS+ Manual :author: kounch -:revnumber: 1.5.0 +:revnumber: 1.5.1 :doctype: book :front-cover-image: image:img/portada.jpg[] :email: kounch@users.noreply.github.com @@ -1400,6 +1400,141 @@ There is more information about all this process at https://www.zonadepruebas.co <<< +=== FUZIX + +FUZIX is a fusion of various elements from http://www.dougbraun.com/uzi.html[UZI] (an implementation of the Unix kernel written for a Z80 based computer), extended from the 7th Edition Unix kernel to somewhere in the SYS3 to SYS5.x world, with bits of POSIX. + +It is not yet useful although you can build and boot it and run test application code. A lot of work is still needed on the utilities and libraries. + +At the moment of writing these lines, the http://www.fuzix.org[officially built images] do not work with ZXDOS+. However, building from the source code, does work. The following instructions have been tested with https://github.com/EtchedPixels/FUZIX/tree/49c09b994c3bbc7c77511452ed188bb875562dee[the latest code on June 2021]. + +==== How to Build + +The following instructions have been made using a clean installation of Fedora Workstation Linux (Fedora 34). Apart from the package installation commands, all the other steps should work with many other Linux distributions. + +Install the needed packages: + +[source,shell] +---- +sudo dnf groupinstall -y 'Development Tools' +sudo dnf install -y gcc-c++ automake boost-devel gputils flex texinfo bison byacc +---- + +Get the special version of http://sdcc.sourceforge.net[SDCC compiler] for Fuzix, and build it: + +[source,shell] +---- +git clone https://github.com/EtchedPixels/sdcc280.git + +cd sdcc280 +cd sdcc +./configure +make +sudo make install +cd ../.. +---- + +Get Fuzix source code: + +[source,shell] +---- +git clone https://github.com/EtchedPixels/FUZIX.git +cd FUZIX +---- + +Edit `Makefile` and change the line with `TARGET=` to `TARGET=zxdiv`. Build: + +[source,shell] +---- +sudo make +---- + +<<< + +Get the esxdos binary and kernel image from this paths: + +[source] +---- +./Kernel/platform-zxdiv/FUZIX +./Kernel/platform-zxdiv/FUZIX.BIN +---- + +Build the root filesystem: + +[source,shell] +---- +cd ./Standalone/filesystem-src +./build-filesystem rootfs 256 65535 +cd ../.. +---- + +Get the root filesystem image file from this location: + +[source] +---- +./build-filesystem/rootfs +---- + +==== How to use + +You need a MBR partition table on the microSD card. You can set up one or two primary partitions <<#_microsd_card_formatting,as usual>> (the first one with a functional esxdos installation), leaving enough space at the end to add one 32MB (Type `7E`) primary partition for the root file system and one 4MB (Type `7F`) primary partition for swap. + +Copy the rootfs filesystem to the type `7E` partition. You can use the `dd` utility, included with Linux, MacOS, etc. (and also http://www.chrysocome.net/dd[ported to Windows]). + +After you find the device name for the `7E` partition, use that as destination for the `rootfs` file. For example, for `/dev/rdisks3`: + +[source,shell] +---- +sudo dd if=rootfs of=/dev/rdisks3 +---- + +Copy the `FUZIX` command into the `BIN` directory and copy `FUZIX.BIN` to the top level directory of the esxdos partition. + +<<< + +Boot into a Spectrum core with a 128K ROM and with esxdos, then type '.fuzix', and press `Enter`. + +[.text-center] +image:./img/fuzix01.png[pdfwidth=70%] + +[TIP] +==== +Your keyboard configuration on BIOS should be using an english layout, or you won't be able to type some characters like `|`. +==== + +After a few seconds, the system should detect the microSD card and find the partitions. In this example, the root is the third partition of SD 0. + +[.text-center] +image:./img/fuzix02.png[pdfwidth=70%] + +<<< + +Type the rootfs partition (e.g. `hd3`) and press `Enter`. + +[.text-center] +image:./img/fuzix03.png[pdfwidth=70%] + +Set up date (press `Enter`) and time (press `Enter`). + +[.text-center] +image:./img/fuzix04.png[pdfwidth=70%] + +<<< + +Login with `root` user and no password. + +[.text-center] +image:./img/fuzix05.png[pdfwidth=70%] + +Now you have a Fuzix shell. + +[TIP] +==== +When finished, remember to stop the system using the `shutdown` command or the root filesystem will be marked as not clean, and a filesystem check will be forced on the next Fuzix boot. +==== + +<<< + == Upgrade === BIOS @@ -2471,7 +2606,7 @@ Features: ==== microSD card format -An SDHC card is required (so it has to be 4GB or more in size), with the first partition in FAT16 and MS-DOS (or similar) installed. You can achieve this using, for example, virtualization software and attaching directly the microSD device as a hard disk. +An SDHC card is required (so it has to be 4GB or more in size), with the first partition in FAT16 and MS-DOS (or similar) installed. You can achieve this using, for example, virtualization software and attaching directly the microSD device as a hard disk. At https://www.zxuno.com/forum/viewforum.php?f=56[ZX-Uno] and https://www.forofpga.es/viewtopic.php?f=37&t=120[ZXDOS+] forums you can find more information and obtain some microSD card image files. Once partitioned and formatted (with the reserved bytes ad the end), the BIOS image file `Next186_BIOS_zxdos_ddr3.COM` (available to download https://github.com/zxdos/sources/raw/master/next186_zxdos_ddr3/software/Next186_BIOS_zxdos_ddr3.COM[at this link]) has to be written somewhere in the first 64 sectors or to the last 16 sectors of the card. diff --git a/doc/English ZXDOS+ and gomaDOS+ Manual.pdf b/doc/English ZXDOS+ and gomaDOS+ Manual.pdf index 666156b..3670a45 100644 Binary files a/doc/English ZXDOS+ and gomaDOS+ Manual.pdf and b/doc/English ZXDOS+ and gomaDOS+ Manual.pdf differ diff --git a/doc/Manual de ZXDOS+ y gomaDOS+.adoc b/doc/Manual de ZXDOS+ y gomaDOS+.adoc index 264644d..e47a4b6 100644 --- a/doc/Manual de ZXDOS+ y gomaDOS+.adoc +++ b/doc/Manual de ZXDOS+ y gomaDOS+.adoc @@ -1,6 +1,6 @@ = Manual de ZXDOS+ y gomaDOS+ :author: kounch -:revnumber: 1.5.0 +:revnumber: 1.5.1 :doctype: book :front-cover-image: image:img/portada.jpg[] :email: kounch@users.noreply.github.com @@ -1404,6 +1404,139 @@ En https://www.zonadepruebas.com/viewtopic.php?t=4796&start=110[este hilo del fo <<< +=== FUZIX + +FUZIX es una fusión de varios elementos de http://www.dougbraun.com/uzi.html[UZI] (una implementación del kernel Unix para ordenadores basados en Z80), extendida desde la versión 7 a algo entre SYS3 y SYS5.x con algunas partes de POSIX. + +Aún no es algo util, aunque se puede construir, arrancar y ejecutar aplicaciones. Aún falta mucho trabajo tanto en las utilidades como las bibliotecas. + +En el momento de escribir estas líneas, las http://www.fuzix.org[imágenes oficiales] no funcionan con el ZXDOS+. Sin embargo, otro código más reciente, sí. Las siguientes instrucciones han sido probadas con https://github.com/EtchedPixels/FUZIX/tree/49c09b994c3bbc7c77511452ed188bb875562dee[el último código disponible en Junio de 2021]. + +==== Cómo compilar + +Estas instrucciones han sido elaboradas usando una instalación limpia de Fedora Workstation Linux (Fedora 34). Aparte de los comandos relativos a la instalación de paquetes, el resto de pasos deberían servir también con muchas otras distribuciones de Linux. + +Primero, instalar los paquetes necesarios, si no estuvieran ya: + +[source,shell] +---- +sudo dnf groupinstall -y 'Development Tools' +sudo dnf install -y gcc-c++ automake boost-devel gputils flex texinfo bison byacc +---- + +Obtener la versión especial del http://sdcc.sourceforge.net[compilador SDCC] para Fuzix, e instalarla: + +[source,shell] +---- +git clone https://github.com/EtchedPixels/sdcc280.git + +cd sdcc280 +cd sdcc +./configure +make +sudo make install +cd ../.. +---- + +Obtener el código fuente de Fuzix: + +[source,shell] +---- +git clone https://github.com/EtchedPixels/FUZIX.git +cd FUZIX +---- + +Modificar el fichero `Makefile` y cambiar la línea que pone `TARGET=` para que sea `TARGET=zxdiv`. Compilar: + +[source,shell] +---- +sudo make +---- + +Cuando termine, obtener el fichero binario de esxdos y la imagen del kernel en estas rutas: + +[source] +---- +./Kernel/platform-zxdiv/FUZIX +./Kernel/platform-zxdiv/FUZIX.BIN +---- + +Construir el sistema de archivos raíz: + +[source,shell] +---- +cd ./Standalone/filesystem-src +./build-filesystem rootfs 256 65535 +cd ../.. +---- + +Obtener el archivo de imagen en esta ubicación: + +[source] +---- +./build-filesystem/rootfs +---- + +==== Cómo utilizarlo + +Hace falta que la tarjeta microSD tenga una tabla de particiones MBR. Se pueden configurar una o dos particiones primarias <<#_formato_de_la_tarjeta_microsd,de la forma habitual>> (la primera de ellas con una instalación funcional de esxdos), dejando suficiente espacio libre al final para añadir una partición de 32MB (Tipo `7E`) para el sistema de archivos raíz y otra partición de 4MB (Tipo `4E`) para el espacio de intercambio (swap). + +Volcar el contenido del sistema de archivos raíz en la partición `7E`. Para ello, se puede usar la utilidad `dd`, incluida en Linux, MacOS, etc. (y también http://www.chrysocome.net/dd[convertida para Windows]). + +Una vez determinado el nombre del dispositivo asociado a la partición `7E` se debe usar esta como destino del fichero `rootfs`. Por ejemplo, para `/dev/rdisks3`: + +[source,shell] +---- +sudo dd if=rootfs of=/dev/rdisks3 +---- + +Copiar el fichero `FUZIX` dentro del directorio `BIN` y copiar `FUZIX.BIN` al directorio raíz de la particion esxdos. + +<<< + +Iniciar un core de Spectrum con una ROM de 128K y con esxdos, escribir `.fuzix`, y pulsar `Enter`. + +[.text-center] +image:./img/fuzix01.png[pdfwidth=70%] + +[TIP] +==== +La configuración del teclado en la BIOS debería ser con una disposición en inglés, o no será posible teclear algunos caracteres, como `|`. +==== + +Al cabo de unos pocos segundos, el sistema debería detectar la tarjeta microSD y encontrar las particiones. En este ejemplo, la raíz está en la tercera partición de SD 0. + +[.text-center] +image:./img/fuzix02.png[pdfwidth=70%] + +<<< + +Escribir el identificador de la partición raiz (por ejemplo, `hd3`) y pulsar `Enter`. + +[.text-center] +image:./img/fuzix03.png[pdfwidth=70%] + +Definir la fecha (pulsar `Enter`) y la hora (pulsar `Enter`). + +[.text-center] +image:./img/fuzix04.png[pdfwidth=70%] + +<<< + +Iniciar sesión con el usuario `root` y sin contraseña. + +[.text-center] +image:./img/fuzix05.png[pdfwidth=70%] + +Con esto ya se dispone de una consola de Fuzix. + +[TIP] +==== +Al terminar, recordar detener el sistema usando el comando `shutdown` o el sistema de archivos raíz quedará marcado como no limpio, y esto forzará un comprobación del mismo en el próximo arranque de Fuzix. +==== + +<<< + == Actualizaciones === BIOS @@ -2468,7 +2601,7 @@ Características del sistema implementado: ==== Formato de Tarjeta microSD -Se debe de utilizar una tarjeta SDHC (por tanto de al menos 4GB), con la primera partición FAT16 y con MS-DOS (o similar) instalado. Esto se puede conseguir usando, por ejemplo, software de virtualización y conectando directamente el dispositivo de la tarjeta microSD como disco. +Se debe de utilizar una tarjeta SDHC (por tanto de al menos 4GB), con la primera partición FAT16 y con MS-DOS (o similar) instalado. Esto se puede conseguir usando, por ejemplo, software de virtualización y conectando directamente el dispositivo de la tarjeta microSD como disco. En los foros de https://www.zxuno.com/forum/viewforum.php?f=56[ZX-Uno] y https://www.forofpga.es/viewtopic.php?f=37&t=120[ZXDOS+] se puede obtener más información y encontrar algunas imágenes de tarjeta microSD. Una vez formateada y particionada (con la reserva al final), se debe grabar la imagen de BIOS `Next186_BIOS_zxdos_ddr3.COM` (disponible https://github.com/zxdos/sources/raw/master/next186_zxdos_ddr3/software/Next186_BIOS_zxdos_ddr3.COM[en este enlace]) en algún lugar de los primeros 64 sectores, o bien en los últimos 16 sectores de la tarjeta microSD. diff --git a/doc/Manual de ZXDOS+ y gomaDOS+.pdf b/doc/Manual de ZXDOS+ y gomaDOS+.pdf index 94c4eb8..c4545b9 100644 Binary files a/doc/Manual de ZXDOS+ y gomaDOS+.pdf and b/doc/Manual de ZXDOS+ y gomaDOS+.pdf differ diff --git a/doc/img/fuzix01.png b/doc/img/fuzix01.png new file mode 100644 index 0000000..c72bc26 Binary files /dev/null and b/doc/img/fuzix01.png differ diff --git a/doc/img/fuzix02.png b/doc/img/fuzix02.png new file mode 100644 index 0000000..4cbedaa Binary files /dev/null and b/doc/img/fuzix02.png differ diff --git a/doc/img/fuzix03.png b/doc/img/fuzix03.png new file mode 100644 index 0000000..d56e0f0 Binary files /dev/null and b/doc/img/fuzix03.png differ diff --git a/doc/img/fuzix04.png b/doc/img/fuzix04.png new file mode 100644 index 0000000..26e6354 Binary files /dev/null and b/doc/img/fuzix04.png differ diff --git a/doc/img/fuzix05.png b/doc/img/fuzix05.png new file mode 100644 index 0000000..2d4aa17 Binary files /dev/null and b/doc/img/fuzix05.png differ