diff --git a/doc/English ZXDOS+ and gomaDOS+ Manual.adoc b/doc/English ZXDOS+ and gomaDOS+ Manual.adoc index 8e1f0c9..197fd1f 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.4.7 +:revnumber: 1.4.8 :doctype: book :front-cover-image: image:img/portada.jpg[] :email: kounch@users.noreply.github.com @@ -1149,7 +1149,7 @@ As explained in the installation part, there are a series of commands that are e Each gomaDOS+, and some models of ZXDOS+, include inside an ESP-12 module with an https://es.wikipedia.org/wiki/ESP8266[ESP8266] Wi-Fi chip, that can be easily used with a ZX Spectrum core (e.g., EXP27 160820 core) which has synthesized an https://es.wikipedia.org/wiki/Universal_Asynchronous_Receiver-Transmitter[UART] device, that allows communication with the module. -There are two "DOT" commands for configuring software access to the module. Then can be downloaded from https://github.com/zxdos/zxuno/tree/master/utils[GitHub official repository]: +There are two "DOT" commands for configuring software access to the module. They can be downloaded from https://github.com/zxdos/zxuno/tree/master/SD/BIN/[GitHub official repository]: - `esprst`, which restarts the module - `iwconfig`, to register the Wi-Fi network name (SSID) and password, keeping them in the file `/sys/config/iw.cfg`. @@ -2443,7 +2443,7 @@ You can use a SD card with the first partition in FAT16 or FAT32 formata to stor ==== Keyboard -The CHIP-9 machine uses an hexadecimal keyboard as input. This is the key mapping: +The CHIP-8 machine uses an hexadecimal keyboard as input. This is the key mapping: [align="center",width="25%",%header,cols=2*] |=== @@ -2459,6 +2459,7 @@ The CHIP-9 machine uses an hexadecimal keyboard as input. This is the key mappin While the core is running: - `Esc` (or `Caps Shift+Space` on gomaDOS+, `PC XT` keyboard mode): Show or hide configuration menu +- `F11` (`Caps Shift+Symbol Shift+Q` on gomaDOS+): Hard Reset - `F12` (`Caps Shift+Symbol Shift+W` on gomaDOS+): Reset <<< @@ -2470,19 +2471,15 @@ Pressing `Esc` (`Caps Shift+Space` on gomaDOS+, `PC XT` keyboard mode) shows or [.text-center] image:img/chip8.jpg[pdfwidth=70%] - The following options are available: - Reset the core - Change the core clock speed - Load a ROM file from the microSD card +- Enable or disable sound output +- Help - Exit the menu -[CAUTION] -==== -After loading a ROM, always press the reset key so that it runs correctly: `F12` (`Caps Shift+Symbol Shift+W` on gomaDOS+) -==== - <<< == Other Hardware diff --git a/doc/English ZXDOS+ and gomaDOS+ Manual.pdf b/doc/English ZXDOS+ and gomaDOS+ Manual.pdf index d31905b..ef8a07d 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/English ZXUNO+ Manual.adoc b/doc/English ZXUNO+ Manual.adoc index 7593e8b..326ac57 100644 --- a/doc/English ZXUNO+ Manual.adoc +++ b/doc/English ZXUNO+ Manual.adoc @@ -1,43 +1,44 @@ -= Manual de ZXUNO+ += ZXUNO+ Manual :author: kounch -:revnumber: 0.8 +:revnumber: 0.9 :doctype: book :front-cover-image: image:img/portadauno.jpg[] :email: kounch@users.noreply.github.com :Revision: 0.3 -:description: Manual en castellano de ZXUNO+ -:keywords: Manual, Castellano, ZXUNO+ +:description: English ZXUNO+ Manual +:keywords: Manual, English, ZXUNO+ :icons: font :source-highlighter: rouge :toc: left -:toc-title: Índice +:toc-title: Index :toclevels: 4 <<< -== Introducción +== Introduction -ZXUNO+ es la iteración más reciente de https://zxuno.speccy.org[ZX-Uno] un proyecto de hardware y software basado en una placa FPGA programada para trabajar como un ordenador ZX Spectrum, y creado por el equipo de ZX-Uno: Superfo, AVillena, McLeod, Quest y Hark0. +ZXUNO+ is the latest iteration of https://zxuno.speccy.org[ZX-Uno] a hardware and software project based on an FPGA board programmed to work like a ZX Spectrum computer, and created by the ZX-Uno team: Superfo, AVillena, McLeod, Quest and Hark0. -Con el paso del tiempo, el proyecto ha ido creciendo, de forma que es posible instalar distintas configuraciones de software (cores) en la memoria flash de la FPGA, y que trabajan como otros sistemas distintos del ZX Spectrum, pudiendo elegir arrancar el ZXUNO+ con la configuración que se desee de entre todas las instaladas. +Over time, the project has been growing, and now it is possible to install different software configurations (cores) in the flash memory of the FPGA, which work like different systems than the ZX Spectrum, and you can choose to start the ZXUNO+ with the desired configuration among all those installed. -La página oficial de ZX-Uno es https://zxuno.speccy.org. +ZXUNO+ official web page is https://zxuno.speccy.org. -=== Agradecimientos +=== Aknowledgements -La mayor parte del contenido de este documento se basa en información compartida anteriormente: +Most of the content is based on information previously shared: -- En el https://www.zxuno.com/forum/[foro de ZX-Uno] -- En https://www.forofpga.es/[foroFPGA] -- En los varios FAQ existentes, principalmente la versión original https://uto.speccy.org/zxunofaq.html[de @uto_dev], y la versión más moderna http://desubikado.sytes.net/zx-uno-faq-version-desubikado/[de @desUBIKado] +- At https://www.zxuno.com/forum/[ZX-Uno forum] +- At https://www.forofpga.es/[foroFPGA] +- Several existing FAQ, mostly the original version https://uto.speccy.org/zxunofaq.html[by @uto_dev], and the latest one http://desubikado.sytes.net/zx-uno-faq-version-desubikado/[by @desUBIKado] -Un agradecimento especial a desUBIKado por la intensa y continua labor recopilando y recabando información sobre los distintos cores y funcionalidades. +A very special thaks to desUBIKado for the continuous and thorough work finding and sharing information about all the available cores and their functionalities. -Sin el trabajo previo de todas estas personas (y más), ese manual no podría existir. +Without the previous work of all of these people (and more), this manual wouldn't exist. <<< -=== Puertos y Conectores +=== Ports and Connectors + [.text-center] image:./img/zxunofront.png[pdfwidth=65%] @@ -48,86 +49,86 @@ image:./img/zxunoback.png[pdfwidth=65%] [.text-center] image:./img/zxunoboard.png[pdfwidth=65%] -==== Descripción +==== Description [cols=2*] |=== |1 -|Salida de Sonido +|Audio Out |2 -|Salida de vídeo +|Video Out |3 -|Salida / Puerto de Expansión +|Expansion Port |4 -|Ranura SD +|SD Card Slot |5 -|Enchufe de Alimentación +|Power Socket |6 -|Entrada de Sonido +|Audio In |7 -|Salida de vídeo RGB (RJ-45) +|Video Out (RJ-45) |8 -|Puerto de Ratón USB (PS/2) +|Mouse USB (PS/2) Port |9 -|Puerto de Teclado USB (PS/2) +|Keyboard USB (PS/2) Port |=== -===== Salida de vídeo RJ-45 +===== RJ-45 Video Out -Este es el esquema del conector RJ-45 para utilizar como salida VGA: +This is the pinout or RJ-45 connector to use as VGA output: [.text-center] image:img/rj45pinout.png[pdfwidth=50%] -Esta es la numeración del conector RJ-45 para utilizar como salida RGB con conector SCART: +This are the pin numbers for RJ-45 connector to use as RGB out with a SCART connector: [.text-center] image:img/rj45scart.png[pdfwidth=50%] <<< -=== Configuración Inicial +=== Initial Setup -Para poder poner en marcha un ZXUNO+ hace falta, al menos, lo siguiente: +In order to be able to set up and use a ZXUNO+ you need, at least, the following: -- Un cargador USB, una TV u otro dispositivo que ofrezca alimentación USB. Normalmente con 500 mA es suficiente. -- Un cable y un monitor o TV con entrada RCA -- Un teclado PS/2 (se necesista adaptador USB a PS/2) +- A USB charger or a TV or other device that offers USB power. Usually 500 mA is more than enough +- VGA cable and monitor +- PS/2 keyboard (with USB to PS/2 adapter or connector) -Para poder aprovechar todo su potencial, es útil tener también: +In order to take advantage of its full potential, you may also have: -- Una tarjeta SD, no necesariamente muy grande -- Unos altavoces de PC para conectar a la salida de audio, o un cable jack-stereo a dos conectores RCA rojo/blanco para conectar a la TV -- Un ratón PS/2 (se necesista adaptador USB a PS/2) -- Un cable con un jack estéreo de 3,5 mm en un extremo y los dos canales de sonido divididos en dos salidas mono en el otro, si se quiere usar algún dispositivo de reproducción y/o grabación de audio, como por ejemplo un Miniduino (<<#_miniduino,ver la sección correspondiente más adelante>>), un PC/Mac/Raspberry PI, etc. o un reproductor/grabador de https://es.wikipedia.org/wiki/Casete[cassette]. El canal derecho se utiliza como entrada (EAR) y el canal izquierdo se puede usar como salida de grabación (MIC). +- A SD card, not necessarily very large +- PC speakers to connect to the audio output, or a stereo jack converter to two red/white RCA connectors to connect to the TV +- A PS/2 mouse (USB to PS/2 adapter needed) +- An audio cable with a stereo 3.5 mm jack on one side, and both audio channels split into two mono outputs on the other side, if you want to use an audio player and/or recorder, like, for example, a Miniduino (<<#_miniduino,see more info later>>)., a PC/Mac/Raspberry PI, etc. or a https://en.wikipedia.org/wiki/Cassette_tape[cassette tape] recorder/player. The right sound channel is used as input (EAR) and the left channel can be used as output (MIC). -==== Formato de la tarjeta SD +==== SD card formatting -Para poder utilizar una tarjeta SD con el core principal de Spectrum, esta debe tener, al menos, una partición (la primera en el caso de haber varias) en formato FAT16, FAT32 u otros (según el caso, se puede necesitar, un formato específico para compatibilidad con distintos cores de terceros). Para el core de Spectrum, tambén es posible tener <<#_formato_avanzado_de_la_tarjeta_SD_3e,una primera partición en formato +3DOS y luego otra(s) en formato FAT16 o FAT32>>, para su uso con una ROM de +3e. +In order to use a SD card, it has to be formatted with, at least, one FAT16 or FAT32 format (depending on the case, one or the other format is recommended for compatibility with different third-party cores). It must be the first partition if there are more than one, except for the Spectrum core wich can have <<#_SD_advanced_format_3e,the first partition in +3DOS format, and then the second one in FAT16 or FAT32 format>> to use with a +3e ROM. [NOTE] ==== -El tamaño máximo de una partición FAT16 son 4GB +FAT16 partitions have a maximum size of 4GB ==== [WARNING] ==== -A la hora de poner el nombre a una partición que se vaya a utilizar con esxdos, es importante no utilizar el mismo que el de cualquiera de los directorios dentro, o se producirá un error de acceso a ese directorio. (Ej: No llamar a la partición `BIN`, `SYS` o `TMP`). +When naming a partition which will be used with esxdos, it's important not to use the same of any directory inside, or an access error will happen when trying to see the contents (e.g. do not name the partition as `BIN`, `SYS` or `TMP`). ==== ===== Windows -Para configuraciones sencillas, y tarjetas del tamaño adecuado (menos de 2GB para FAT16 o menos de 32GB para FAT32), se puede utilizar https://www.sdcard.org/downloads/formatter/[la herramienta de formato oficial de la SD Association]. +For simple configurations, and cards of the correct size (less than 2GB for FAT16 or less than 32GB for FAT32), you can use https://www.sdcard.org/downloads/formatter/[the official formatting tool of the SD Association ]. -Para otras configuraciones, y según la versión de sistema operativo de que se disponga, se podrá utilizar la herramienta de línea de comandos `diskpart` o bien la interfaz gráfica de administración de discos del sistema. +For other, more complex, configurations, and depending on operating system version, you may use the command line tool `diskpart` or Windows Disk Managemente GUI. ===== MacOS -Para configuraciones sencillas, y tarjetas del tamaño adecuado (menos de 2GB para FAT16 o menos de 32GB para FAT32), se puede utilizar https://www.sdcard.org/downloads/formatter/[la herramienta de formato oficial de la SD Association] o la Utilidad de Discos incluida con el sistema operativo. +For simple configurations, and cards of the correct size (less than 2GB for FAT16 or less than 32GB for FAT32), you can use https://www.sdcard.org/downloads/formatter/[the official formatting tool of the SD Association ] or Disk Utility, which is included with the operating system. -Para configuraciones más complejas, será necesario utilizar la línea de comandos. +In other case, you should use the command line. -Por ejemplo, en MacOS, para formatear una tarjeta con una única partición FAT16 (si la tarjeta es de 2GB o menos de tamaño), que figura como `disk6` en la lista de dispositivos: +For example, to format a card, shown as `disk6`, with only one FAT16 partition (if the card size is less than 2GB): [source,shell] ---- @@ -135,7 +136,7 @@ diskutil unmountDisk /dev/disk6 diskutil partitionDisk /dev/disk6 MBR "MS-DOS FAT16" ZXUNOPLUS R ---- -Para dividirla en dos particiones iguales (si la tarjeta es de 4GB o menos de tamaño): +To split it into two FAT16 partitions of the same size (if the card size is 4GB or less): [source,shell] ---- @@ -143,22 +144,22 @@ diskutil unmountDisk /dev/disk6 diskutil partitionDisk /dev/disk6 MBR "MS-DOS FAT16" ZXUNOPLUS 50% "MS-DOS FAT16" EXTRA 50% ---- -Para crear dos primeras particiones FAT16 de 4GB (por ejemplo, para usar con el core de MSX) y usar el resto del espacio con otra más en formato FAT32 (para tarjetas de más de 8GB): +To create two FAT 16 partitions (e.g. to use MSX core) and have the rest of space as another FAT32 partition (for cards more than 8GB in size): [source,shell] ---- diskutil unmountDisk /dev/disk6 diskutil partitionDisk /dev/disk6 MBR %DOS_FAT_16% ZXUNOPLUS 4G %DOS_FAT_16% EXTRA 4G "MS-DOS FAT32" DATA R sudo newfs_msdos -F 16 -v ZXUNOPLUS -c 128 /dev/rdisk6s1 -sudo newfs_msdos -F 16 -v EXTRA -c 128 /dev/rdisk6s2 +sudo newfs_msdos -F 16 -v EXTRA -b 4096 -c 128 /dev/rdisk6s2 ---- [NOTE] ==== -El comando `diskutil` no permite crear particiones FAT16 de más de 2G de tamaño y formatearlas a la vez. Por eso, en el último caso, se crean primero las particiones y luego se formatean en FAT16. +`diskutil` cannot create FAT16 partitions which are bigger than 2G and also format them. That's why, in this example, after only creating the partitions, we have to format them. ==== -Para crear una partición FAT32 de 4GB (por ejemplo, para usar con el core de Amstrad CPC 6128) y usar el resto del espacio con otra más en formato FAT32 (para tarjetas de más de 4GB de tamaño): +To create one FAT32 4GB partition (e.g. to use with Amstrad CPC 6128 core), and then have the rest of space available as a second FAT32 partition (for cards of more than 4GB): [source,shell] ---- @@ -166,35 +167,32 @@ diskutil unmountDisk /dev/disk6 diskutil partitionDisk /dev/disk6 MBR "MS-DOS FAT32" ZXUNOPLUS 4G "MS-DOS FAT32" EXTRA R ---- -<<< - ===== Linux -Existen multitud de herramientas en Linux que permiten formatear y particionar el contenido de una tarjeta SD (como `fdisk`, `parted`, `cfdisk`, `sfdisk` o `GParted`). Sólo se ha de tener en cuenta que el esquema de particiones a utilizar siempre ha de ser MBR, y la primera partición (la que se utilizará para esxdos) ha de ser primaria. +There are a lot of tools for Linux that can format and/or partition an SD card (`fdisk`, `parted`, `cfdisk`, `sfdisk` or `GParted` to name a few). It should only be taken into account that the partition scheme must always be MBR, and the first partition (the one that will be used for esxdos) must be primary partition. <<< ==== esxdos -https://esxdos.org/index.html[esxdos] es un firmware para la interfaz the DivIDE/DivMMC, que el ZXUNO+ implementa, y que permite el acceso a dispositivos de almacenamiento como la tarjeta SD. Incluye comandos similares a los de UNIX, aunque para usarlos hay que precederlos con un punto, por ejemplo `.ls`, `.cd`, `.mv`, etc. +https://esxdos.org/index.html[esxdos] is a firmware for the DivIDE/DivMMC hardware interfaces (which ZXUNO+ implements). This allows access to storage devices such as a SD card. It includes commands similar to those of UNIX, although to use them you must precede them with a period, for example `.ls`,` .cd`, `.mv`, etc. -Para poder utilizarlo es necesario incluir los ficheros correspondientes en la primera partición de la tarjeta SD. +For it to work, it is necessary to include the corresponding files in the first partition of the SD card. -En el momento de escribir este documento, la versión instalada en un ZXUNO+ es la 0.8.6, y se puede descargar desde la página oficial https://www.esxdos.org/files/esxdos086.zip[en este enlace]. +At the time of writing this document, the version included with ZXUNO+ is 0.8.6, and it can be downloaded from the official website https://www.esxdos.org/files/esxdos086.zip[at this link]. -Una vez descargado y descomprimido, se han de copiar, a la raíz de la tarjeta, los directorios `BIN`, `SYS` y `TMP` con todo su contenido. +Once downloaded and extracted, you have to copy the directories `BIN`, `SYS` and `TMP`, and all of their content, to the root of first partition of the SD card. -Si todo se ha hecho correctamente, al encender el core Spectrum de ZXUNO+ se verá cómo esxdos detecta la tarjeta y carga los componentes necesarios para funcionar. +If everything has been done correctly, when you turn on the ZXUNO+ Spectrum core, you will see how esxdos detects the card and loads the necessary components to work. [.text-center] image:./img/esxdos.png[pdfwidth=70%] <<< -Es recomendable, además, añadir los comandos esxdos específicos para ZXUNO+. Estos se pueden obtener en la página con el código fuente del proyecto (https://github.com/zxdos/zxuno/tree/master/SD[aquí], https://github.com/zxdos/zxuno/tree/master/[aquí] y https://guest:zxuno@svn.zxuno.com/svn/zxuno/software/upgrade[aquí] - Usuario `guest`, contraseña `zxuno`), y son los siguientes: +It is also recommended to add the specific esxdos commands for ZXUNO+. These can be obtained from the project source page (https://github.com/zxdos/zxuno/tree/master/SD[here], https://github.com/zxdos/zxuno/tree/master/[here] and https://guest:zxuno@svn.zxuno.com/svn/zxuno/software/upgrade[here]), and are as follows: back16m - backup corebios dmaplayw esprst @@ -207,58 +205,59 @@ Es recomendable, además, añadir los comandos esxdos específicos para ZXUNO+. romsback romsupgr upgr16m - upgrade zxuc zxunocfg -<<#_comandos_para_ZXUNO+,Más adelante>> se explica lo que hace cada uno de ellos. +<<#_zxuno+_commands,It is explained later> what each of them does. <<< === BIOS -Si se pulsa la tecla `F2` durante el arranque, se tendrá acceso a la configuración de BIOS. El firmware de BIOS es el primer programa que se ejecuta cuando se enciende el ZXUNO+. El propósito fundamental del software de BIOS es iniciar y probar el hardware y cargar uno de los cores instalados. +Pressing the `F2` key during boot will access the BIOS setup. The BIOS firmware is the first program that runs when the ZXUNO+ is turned on. The main purpose of BIOS is to start and test the hardware and load one of the installed cores. -Usando las teclas de cursor izquierda y derecha, se puede navegar por las pantallas de configuración de la BIOS. Con las teclas arriba y abajo se pueden elegir los distintos elementos de cada pantalla y, con la tecla `Enter`, es posible activar y elegir las opciones de cada una de estas. La tecla `Esc` sirve para cerrar las ventanas de opciones abiertas sin aplicar ninguna acción. +Using left and right cursor keys, you can navigate through the BIOS setup screens. With up and down keys you can choose the different elements of each screen and, with the `Enter` key, it is possible to activate and choose the options for each of these. The `Esc` key is used to close open option windows without applying any action. ==== Main [.text-center] image:img/bios.png[pdfwidth=70%] -En la primera pantalla de configuración, además de poder ejecutar distintas pruebas, se puede definir el comportamiento por defecto para lo siguiente: +In the first configuration screen, in addition to being able to run several tests, you can define the default behavior for the following: -- Espera en el arranque (Boot Timer): Indica el tiempo que está la pantalla de arranque disponible (o la oculta por completo) -- Comprobar CRC de las ROMs (Check CRC): Para comprobar la integridad de las ROMs al cargarlas (más seguro) u omitirla (más rápido) -- Tipo de teclado (Keyboard) -- Timing: Para definir el comportamiento de la ULA (Modo 48K, Modo 128K, Modo Pentagon) -- Contención de memoria (Contended) +- Boot Timer: Sets how long the boot screen is available (or hiding it completely) +- Check CRC: Check ROM integrity when loading (more secure) or bypassing it (faster) +- Keyboard +- Timing: ULA Behaviour (48K, 128K, Pentagon Modes) +- Contended - DivMMC -- Soporte NMI para DivMMC -- Soporte para nuevos modos gráficos (ULAPlus, Timex, Radastan) +- DivMMC NMI Support +- New Graphic Modes Support (ULAPlus, Timex, Radastan) -Se puede consultar información más tecnica en https://www.zxuno.com/wiki/index.php/ZX_Spectrum[la Wiki de ZX-Uno]. +More technical information can be found on https://www.zxuno.com/wiki/index.php/ZX_Spectrum[de ZX-Uno Wiki]. ==== ROMs [.text-center] image:img/bios2.png[pdfwidth=70%] -La segunda pantalla muestra las ROMs de ZX Spectrum instaladas y permite reordenar (Move Up, Move Down), renombrar (Rename) o borrar (Delete) cada una de ellas, así como elegir la que se cargará por defecto en el arranque (Set Active). +The second screen shows the installed ZX Spectrum ROMs. You can reorder (Move Up, Move Down), rename or delete each of them, as well as choose the one that will be loaded by default at startup (Set Active ). ==== Upgrade [.text-center] image:img/bios3.png[pdfwidth=70%] -La pantalla _Upgrade_ se utiliza para realizar las distintas actualizaciones del contenido de la memoria Flash: esxdos, BIOS, Cores, etc. (véase <<#_actualizaciones,el apartado correspondiente a actualizaciones>> para más información). +_Upgrade_ screen is used to perform the different updates of the Flash memory content: esxdos, BIOS, Cores, etc. (see <<#_updates,the section corresponding to updates>> for more information). + +<<< ==== Boot [.text-center] image:img/bios4.png[pdfwidth=70%] -En la pantalla _Boot_ se puede elegir qué core de los instalados se desea que cargue por defecto en el arranque. +In the _Boot_ screen you can choose which one of the installed cores is loaded by default at startup. <<< @@ -267,16 +266,16 @@ En la pantalla _Boot_ se puede elegir qué core de los instalados se desea que c [.text-center] image:img/bios5.png[pdfwidth=70%] -La pantalla de configuración avanzada sirve para modificar los siguientes ajustes: +The Advanced configuration screen is used to edit the following settings: -- Distribución del teclado (Keyb Layout): Ver <<#_teclado,el apartado correspondiente >> para más información) -- Comportamiento del joystick emulado con el teclado numérico (Joy Keypad): Kempston, Sinclair Joystick 1, Sinclair Joystick 2, Protek o Fuller -- Comportamiento de un joystick conectado al puerto (Joy DB9): Kempston, Sinclair Joystick 1, Sinclair Joystick 2, Protek, Fuller o simular las teclas `Q`, `A`, `O`, `P`, `Espacio` y `M` -- Salida de vídeo (Video): PAL, NTSC o VGA -- Simulación de línea de exploración (Scanlines): Activas (Enabled) o inactivas (Disabled) -- Frecuencia horizontal de VGA (Frequency): 50, 51, etc. -- Velocidad de la CPU: Normal (1x) o acelerada (2X, 3X, etc.) -- Csync: Spectrum o PAL +- Keyboard layout (Keyb Layout): See <<#_keyboard,the corresponding section>> for more information) +- Joystick behavior when emulated with the numeric keypad (Joy Keypad): Kempston, Sinclair Joystick 1, Sinclair Joystick 2, Protek or Fuller +- Behavior of a joystick connected to the port (Joy DB9): Kempston, Sinclair Joystick 1, Sinclair Joystick 2, Protek, Fuller or simulate the keys `Q`,` A`, `O`,` P`, `Space` and `M` +- Video output: PAL, NTSC or VGA +- Scanlines simulation: Enabled or Disabled +- VGA horizontal frequency: 50, 51, etc. +- CPU speed: Normal (1x) or accelerated (2X, 3X, etc.) +- Csync: Spectrum or PAL <<< @@ -285,300 +284,85 @@ La pantalla de configuración avanzada sirve para modificar los siguientes ajust [.text-center] image:img/bios6.png[pdfwidth=70%] -Finalmente, desde la última pantalla se puede: +Finally, from the last screen you can: -- Salir de la configuración de BIOS guardando los cambios (Save Changes & Exit) -- Descartar los cambios y salir (Discard Changes & Exit) -- Guardar los cambios sin salir (Save Changes) -- Descartar los cambios (Discard Changes) +- Exit BIOS configuration saving changes (in some cases you will also need a power reset) +- Discard changes and exit +- Save changes without exiting +- Discard Changes == ZX Spectrum -El core principal es el que implementa un ordenador ZX Spectrum. Este core es especial, y no se puede sustibuir por otro que no sea de ZX Spectrum, ya que el ZXUNO+ lo utiliza para su funcionamiento. +The main core is the one implementing a ZX Spectrum computer. This core is special, and it cannot be replaced for another that is not a ZX Spectrum, since the ZXUNO+ uses it for its operation. -Estas son algunas de sus principales características: +These are some of its main characteristics: -- Implementación ZX Spectrum 48K, 128K, Pentagon y Chloe 280SE -- ULA con modos ULAplus, Timex y modo Radastan (incluyendo scroll por hardware y grupo de paleta seleccionable) -- Posibilidad de desactivar la contención de memoria (para compatibilidad con Pentagon 128) -- Posibilidad de elegir el comportamiento del teclado (issue 2 o issue 3) -- Posibilidad de elegir el timing de la ULA (48K, 128K o Pentagon) -- Control del encuadre de pantalla configurable para tipo de timing, y posibilidad de elegir entre sincronismos originales de Spectrum o sincronismos estándar PAL progresivo. -- Soporte de la MMU horizontal del Timex con bancos HOME, DOC y EXT en RAM. -- Interrupción ráster programable en número de línea, para cualquier linea de TV. -- Posibilidad de activar/desactivar los registros de manejo de bancos de memoria, para mejor compatibilidad con cada modelo implementado -- Posibilidad de activar/desactivar los dispositivos incorporados al core para mejorar la compatibilidad con ciertos programas -- Soporte ZXMMC y DIVMMC para para +3e, esxdos y firmwares compatibles -- Soporte Turbo Sound -- Soporte de SpecDrum -- Cada canal A,B,C de los dos chips AY-3-8912, beeper y SpecDrum pueden dirigirse a las salidas izquierda, derecha, ambas o ninguna, permitiendo la implementación de configuraciones tales como ACB, ABC, etc. -- Soporte de joystick real y joystick en teclado con protocolo Kempston, Sinclair 1 y 2, Cursor, Fuller y QAOPSpcM. -- Soporte de modo turbo a 7MHz, 14MHz, 28MHz -- Soporte de teclado con protocolo PS/2 y mapeado configurable por el usuario desde el propio Spectrum. -- Soporte de ratón PS/2 emulando el protocolo Kempston Mouse. -- Posibilidad de salida de video en modo de video compuesto, RGB 15kHz, o VGA. -- Frecuencia de refresco vertical seleccionable por el usuario para mejorar la compatibilidad con monitores VGA. -- Soporte de arranque multicore: desde el Spectrum se puede seleccionar una dirección de la SPI Flash y la FPGA cargará un core desde ahí. +- ZX Spectrum 48K, 128K, Pentagon and Chloe 280SE implementation +- ULA with ULAplus, Timex and Radastan modes (including hardware scroll and selectable palette group) +- Ability to disable memory contention (for Pentagon 128 compatibility) +- Ability to choose the keyboard behavior (issue 2 or issue 3) +- Possibility to choose the timing of the ULA (48K, 128K or Pentagon) +- Control of screen framing, configurable for type of timing, and possibility to choose between original Spectrum synchronisms or progressive PAL standard. +- Timex horizontal MMU support with HOME, DOC and EXT banks in RAM. +- Programmable raster interruption in line number, for any TV line. +- Possibility of activating/deactivating memory bank management registers, for better compatibility with each implemented model +- Ability to activate / deactivate the devices incorporated into the core to improve compatibility with certain programs +- ZXMMC and DIVMMC support for + 3e, esxdos and compatible firmwares +- Turbo Sound support +- SpecDrum support +- Each channel A, B, C of the two AY-3-8912, beeper and SpecDrum chips can be directed to the left, right, both or neither outputs, allowing the implementation of configurations such as ACB, ABC, etc. +- Real joystick and keyboard joystick support with Kempston, Sinclair 1 and 2, Cursor, Fuller and QAOPSpcM protocol. +- Turbo mode support at 7MHz, 14MHz, 28MHz +- Keyboard support (PS/2 protocol) and user-configurable mapping from within Spectrum itself. +- PS/2 mouse support emulating the Kempston Mouse protocol. +- Possibility of video output in composite video mode, RGB 15kHz, or VGA. +- User selectable vertical refresh rate to improve compatibility with VGA monitors. +- Multicore boot support: from the Spectrum you can select an address of the SPI Flash and the FPGA will load a core from there. <<< -=== Teclado +=== SD advanced format (+3e) -El mapa de teclado (asignación de las teclas físicas del teclado con las pulsaciones que se presentan a los distinto cores) se cambia desde el menú `Advanced` de la BIOS. Existen tres mapas distintos a elegir: Español (por defecto), inglés, y Spectrum (avanzado). +ZX Spectrum +3e is one ROM that can be used with ZX Spectrum core. This is an improved Sinclair ZX Spectrum +3, wich can use hard disks or memory cards. -También se puede cambiar con la utilidad `keymap`. Dentro de `/bin` hay que crear un directorio llamado `keymaps` y ahí copiar los mapas de teclado se desee usar. Por ejemplo, para cambiar al mapa US hay que escribir `.keymap us` desde esxdos. - -Para que el mapa se conserve después de un master reset, hay que tener seleccionado `Default` en la configuración de BIOS. - -Para más información, consultar https://www.zxuno.com/forum/viewtopic.php?f=37&t=208[este mensaje en el foro de ZX-Uno]. - -==== Español - -[.text-center] -image:./img/keyboardEsp.png[pdfwidth=70%] - -==== Inglés - -[.text-center] -image:./img/keyboardEng.png[pdfwidth=70%] - -==== Spectrum - -[.text-center] -image:./img/keyboardAV.png[pdfwidth=70%] - -<<< - -==== Teclas especiales y botones - -Teclas especiales durante el arranque: - -- `F2` Entrar en la BIOS -- `Bloq. Mayús` o `Cursor abajo` o, si hay un joystick conectado, pulsar la dirección hacia abajo: Menú de selección de cores -- `Esc` o, si hay un joystick de dos o más botones conectado, pulsar el botón de disparo 2: Menú de selección de ROMS del core de ZX Spectrum -- `R`: Carga la rom del core de ZX Spectrum en modo "real" deshabilitando esxdos, nuevos modos gráficos, etc. -- `/` (del teclado numérico): Carga la ROM por defecto del core de ZX Spectrum en modo "root" -- Número del `1` al `9`: Cargar el core en la ubicación de la Flash correspondiente a dicho número - -Teclas especiales que se pueden utilizar durante la ejecución del core principal (ZX Spectrum): - -- `Esc`: BREAK -- `F2`: Edit -- `F5`: NMI -- `F7`: Reproducir o Pausa en la reproducción de archivos .PZX -- `F8`: Rebobinar el archivo .PZX hasta la marca anterior -- `F10`: Graph -- `F12`: Turbo Boost. Pone a la CPU a 28MHz mientras se mantenga pulsada (a partir del core EXP27). -- `Ctrl+Alt+Backspace`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima de `Enter`. -- `Ctrl+Alt+Supr`: Soft reset. -- `Bloq. Despl.`: cambia de modo video compuesto a VGA y viceversa. - -<<< - -=== ROMs - -El core de ZX Spectrum tiene la capacidad de inicializar utilizando diferentes versiones de ROM (48K, 128K, Plus 2, etc.). Estas se almacenan en la memoria flash del ZXUNO+, y se puede elegir cuál cargar, pulsando la tecla `Esc` durante el arranque. También es posible definir desde la configuración de BIOS, cuál es la ROM que se desea que se cargue por defecto. - -Véase el <<#_roms_3,apartado de actualizaciones>> para más información sobre cómo ampliar o modificar las ROMs almacenadas en la memoria flash. - -==== DerbyPro - -https://www.facebook.com/groups/DerbyPro[DerbyPro o Derby{pp}] es una ROM mejorada para el ZX Spectrum, basada en la versión 1.4 de la ROM de desarrollo Derby. El Spectrum 128 (nombre en código "Derby") fue una máquina española, encargada por Investronica y lanzada en 1985. Incluía un teclado aparte que añadía varias teclas de edición extra. En 1986 se lanzó la versión para Reino Unido con una versión simplificada de 128 BASIC y sin teclado extra. Derby++ se basa en la ROM española para incluir lo mejor de las dos versiones, sin sus inconvenientes, y con soporte para nuevo hardware. - -Se puede descargar la ROM, un manual de usuario y otos ficheros del https://www.facebook.com/groups/DerbyPro[grupo púbilco oficial de Facebook]. - -Esta ROM de 64K tiene soporte para nuevo hardware, incluyendo el uso de comandos de esxdos desde 128 BASIC, así que se pueden usar estas opciones al <<#_zx123_tool,añadirla a la SPI flash>>: - -[%header,cols=2*] -|=== -|Ajuste -|Significado -|`d` -|Habilitar DivMMC -|`n` -|Habilitar NMI DivMMC (menú de esxdos) -|`t` -|Usar timings de 128K -|=== - -<<< - -==== CargandoLeches - -https://github.com/antoniovillena/CargandoLeches[CargandoLeches] es un conjunto de ROMs de ZX Spectrum originalmente pensadas para cargar juegos a una velocidad de 15 a 20 veces superior a lo normal. En lugar de una cinta se requiere una fuente de audio digital como un ordenador, un dispositivo móvil, un reproductor MP3, etc. También tiene una rutina que detecta el método de carga y si no se trata de una carga ultrarápida, ejecuta el código de la ROM original. En cargas que no sean CargandoLeches no se nota por tanto la diferencia entre usar esta ROM y la ROM original. - -Desde la versión 2.0, el proyecto pasó de ser una única ROM a varias, cada una con distintas opciones. Así, es posible elegir diferentes combinaciones que pueden incluir: - -- Carga ultrarrápida -- Reset & Play (es decir, que al hacer un reset automáticamente se ponga en modo carga de cinta) -- Introducción de POKEs -- Desactivar o activar la expansión de tokens (palabras clave) de Sinclair BASIC - -El conjunto completo de ROMs está disponible para descargar desde el repositorio en GitHub https://github.com/antoniovillena/CargandoLeches/tree/master/binaries[aquí]. - -Dependiendo de la ROM elegida, los ajustes a indicar cuando se <<#_zx123_tool,añada a la SPI flash>> pueden variar. Por ejemplo, para la ROM `48le_ea_re_po` (que tiene habilitadas todas las opciones), se pueden usar estos ajustes (no hay que habilitar NMI DivMMC porque el editor de POKEs ya lo utiliza): - -[%header,cols=2*] -|=== -|Ajuste -|Significado -|`d` -|Habilitar DivMMC -|`h` -|Deshabilitar bit alto de ROM (bitd 2 de 1FFD) -|`l` -|Deshabilitar bit bajo de ROM (bit 4 de 7FFD) -|`x` -|Deshabilitar modo Timex -|=== - -===== POKEs - -En el caso de usar una ROM con la opción de introducir POKEs, se hace de la siguiente manera: - -. Una vez el juego ha cargado, pulsando NMI (`F5`), aparecerá un campo en la parte superior izquierda de la pantlla -. Escribir la dirección del POKE a introducir y pulsar `Enter` -. Escribir el valor del POKE y pulsar `Enter` -. Repetir los pasos 2. y 3. todas las veces que se desee. Para terminar y volver al juego, pulsar `Enter` dos veces seguidas - -<<< - -===== Preparación de cintas de carga ultrarrápida - -Las ROMs con la opción de carga ultrarrápida necesitan archivos de cinta especiales que se generan desde ficheros `TAP` de carga normal, de juegos que no tengan protección de carga o modo turbo. - -Para crear una cinta de carga ultrarrápida se necesitan las utilidates de línea de comandos `leches` y `CgLeches`. Estas se pueden conseguir, para Windows, https://github.com/antoniovillena/CargandoLeches/tree/master/binaries[en el repositorio oficial]. Para MacOS es posible descargar una versión no oficial https://github.com/kounch/CargandoLeches/tree/master/binaries/MacOS[en este otro repositorio]. - -En otro caso, es posible compilar desde https://github.com/antoniovillena/CargandoLeches[el código fuente disponible en el repositorio oficial]. Por ejemplo, para compilar en Linux usando `gcc` basta con usar estos comandos: - -[source,shell] ----- -gcc leches.c -o leches -gcc CgLeches.c -o CgLeches ----- - -Para generar una cinta de carga ultarrápida se ha de invocar desde una consola al comando `CgLeches` indicando, al menos, el fichero `TAP` de origen, y el fichero (`WAV` o `TZX`) de destino. Existen otros parámetros como el nivel de velocidad de la carga, entre 0 y 7 (donde 0 es la más rápida pero posiblemente más incompatible), si se desea un fichero mono, estéreo, etc. (en el caso de `WAV`) y más. - -Así, para producir un fichero `WAV` de audio con una cinta de carga ultrarrápida desde el fichero de cinta `Valley.tap` con velocidad de carga 5, se haría así: - -[source,shell] ----- -(...) CgLeches Valley.tap Valley.wav 5 ----- - -Ahora el fichero `Valley.wav` se puede reproducir desde un ordenador u otro dispositivo y cargarlo usando la ROM (véase la sección dedicada a la <<#_carga_desde_cinta,carga desde cinta>> para más detalles). ++3e uses its own partition format (called IDEDOS), to split de hard disk into several partitions to store data. ROM version 1.28 and later can share IDEDOS partitions with MBR partitions. In other case, you must reserve the whole card for IDEDOS partitions. [WARNING] ==== -Debido a limitaciones en el hardware, los ficheros `TZX` generados con `CgLeches` no funcionan correctamente con <<#_miniduino,Miniduino>>, aunque sí que suelen funcionar con <<#_playtzx,`PlayTZX`>>. -==== - -<<< - -==== SE Basic IV - -https://github.com/cheveron/sebasic4[SE Basic IV] es un intérprete de Microsoft BASIC, gratuito y de código abierto. SE Basic IV se ha diseñado para funcionar en un https://www.patreon.com/chloe280se[Chloe 280SE] pero también lo hace en ZX-Uno y similares. - -SE Basic se pensó en sus orígenes como un nuevo firmware para el https://sinclair.wiki.zxnet.co.uk/wiki/ZX_Spectrum_SE[ZX Spectrum SE]. Las primeras versiones eran modificaciones aplicadas sobre la ROM original del ZX Spectrurm, pero posteriormente se ha reescrito basándose en la https://groups.google.com/g/comp.sys.sinclair/c/F90HbKTDkRk[ROM mejorada y de código abierto TS1000 / ZX81]. - -La versión 3, también conocida como https://zxdesign.itch.io/opense[OpenSE BASIC], todavía se mantiene como un firmware de código abierto para el Spectrum. Se incluye, por ejemplo, en el https://tracker.debian.org/pkg/opense-basic[repositorio principal de Debian] para su uso en emuladores. - -La versión IV es una nueva rama de la versión anterior, creada principalmente porque no quedaba espacio para añadir nuevas características a la ROM de 16K. La primera versión (4.0 Anya) añadió una segunda ROM de 16K con soporte para el modo hi-res de Timex. La sintaxis era aún bastante compatible con Sinclair BASIC. La versión 4.2 fue reconstruida específicamente para el Chloe 280SE, eliminó el soporte para dispositivos antiguos como las cintas, añadió soporte integrado y compatibilidad total con el kernel de esxdos, y migró a la sintaxis de Microsoft BASIC. - -Aunque guarda una base comúnde código con muchas versiones de Sinclair BASIC (la ROM TS1000), hay varias diferencias significativas: - -- Soporte para páginas de códigos(8-bit ASCII). -- Traducción de los mensajes de error. -- 38 tokens nuevos. -- Presentación en una terminal estándar (80 x 24). -- Introducción de caracteres de terminal (CTRL, META). -- Buffer de teclado. -- Soporte para teclados completos. -- Soporte completo de las características adicionales del core de Spectrum de ZX-Uno - -Las principales diferencias con Microsoft BASIC son: - -- Abreviación de tokens. -- Comprobación de sintaxis en cada entrada. -- Normalmente los paréntesis son opcionales. -- Introducció de número con el estilo Motorola: - % – binario - @ – octal - $ – hexadecimal -- Evaluación de expresiones siempre activa. -- Operadores lógicos y bit a bit separados. -- Tipado automático de datos. - -Se puede encontrar mucha más información, incluyendo el manual de usuario, etc. en https://github.com/cheveron/sebasic4/wiki[la wiki oficial]. - -<<< - -==== Otras ROMs - -Estos son algunos ajustes válidos para <<#_zx123_tool,añadir a la SPI flash>> algunas otras ROM personalizadas: - -[%header,cols=2*] -|=== -|Nombre de la ROM -|Ajustes -|Gosh Wonderful ROM v1.33 -|dnhl17x -|Looking Glass 1.07 -|dnhl17x -|ZX82 by Daniel A. Nagy -|dnhl17 -|ZX85 by Daniel A. Nagy -|dntmh1 -|Arcade Game Designer 0.1 -|thl17x -|=== - -<<< - -=== Formato avanzado de la tarjeta SD (+3e) - -Una de las ROM que se pueden cargar con el core de ZX Spectrum es la de ZX Spectrum +3e, que es una versión mejorada del Sinclair ZX Spectrum +3, y que soporta el uso de discos duros o tarjetas de memoria. - -El +3e usa su propio esquema de particionado (llamado IDEDOS) para dividir el disco duro en diferentes particiones donde se pueden almacenar datos. Se necesita una version 1.28 o superior de la ROM para poder compartir particiones IDEDOS con particiones MBR. En otro caso, se ha dedicar la tarjeta completa al particionado IDEDOS. - -[WARNING] -==== -El esquema de particionado que se presentará a continuación sólo se podrá utilizar con el core de Spectrum. Otros cores que necesiten acceso a la tarjeta SD posiblemente fallen o no se inicien correctamente, si se encuentra insertada una SD con este formato. +The following partition scheme can only be used with ZX Spectrum core. ==== [TIP] ==== -En IDEDOS, cada partición puede tener un tamaño entre 1 y 16 Megabytes (16 millones de bytes), y cada disco puede tener entre 1 y 65535 particiones. Por tanto, lo máximo que se puede ocupar de una tarjeta será alrededor de 1 TB de espacio. +Each partition in IDEDOS can be between 1 and 16 Megabytes (16 million bytes) in size, and each disk can have between 1 and 65535 partitions. This means that the maximum space used in a card is about 1 TB. ==== -A continuación se explica una forma de dividir una tarjeta en dos o tres partes, con la primera partición IDEDOS (1GB de tamaño), la segunda FAT16 (4GB) y la tercera FAT32 (resto del espacio de la tarjeta). +This is one method to split a card into two or three parts, with the first partition IDEDOS (1GB), the second one FAT16 (4GB) and the third one FAT32 (using the remaining space in the card). -En la segunda particion se puede instalar, tal y como se explicó anteriormente <<#_esxdos,exsdos>> y otros programas. +exsdos and other programs can be installed into the second partition <<#_esxdos,as explained earlier>>. ==== Windows -Se puede utilizar el administrador de discos de Windows. Los pasos a seguir serían: +You can use Windows Disk Management utility. The steps are: -. Eliminar todas las particiones de la tarjeta +. Remove all partitions from the card -. Crear una partición extendida, del tamaño que se quiera utilizar para IDEDOS +. Create a new extended partition, using the desired space for IDEDOS -. Crear una partición primaria de 4GB y formatear como FAT16 +. Create a primary partition, 4GB in size, and format as FAT16 -. Opcionalmente, crear otra partición primaria ocupando el resto del espacio y formatear como FAT32 - -<<< +. Optionally, create another primary partition using the remaining space and format as FAT32 ==== MacOS -Será necesario utilizar la línea de comandos. Lo primero es determinar el disco a formatear: +You will have to use the command line. The first task is to find out which device is the disk to format: [source,shell] ---- diskutil list ---- -En este ejemplo sería el disco 6: +For this example, it will be disk 6: [source] ---- @@ -589,9 +373,11 @@ En este ejemplo sería el disco 6: 1: DOS_FAT_32 UNKNOWN 15.9 GB disk6s1 ---- -Pasos a seguir: +<<< -. Expulsar el disco y editar el esquema de particiones (el segundo paso requiere permisos de administrador): +Instruction steps: + +. Unmount the disk and edit the partition sceme (the second step requires admin privileges): [source,shell] ---- @@ -617,10 +403,7 @@ Partition offset [0 - 31116288]: [2017280] Partition size [1 - 29099135]: [29099135] 7812504 fdisk:*1> flag 2 ----- -[source] ----- fdisk:*1> edit 3 Partition id ('0' to disable) [0 - FF]: [0] (? for help) 0B Do you wish to edit in CHS mode? [n] @@ -641,17 +424,17 @@ fdisk: 1> quit ---- [start=2] -. Formatear las particiones FAT (requiere permisos de administrador) +. Format the FAT partitions (admin privileges required) [source,shell] ---- diskutil unmountDisk /dev/disk6 sudo newfs_msdos -F 16 -v ZXUNOPLUS -c 128 /dev/rdisk6s2 -sudo newfs_msdos -F 32 -v EXTRA -b 4096 -c 128 /dev/rdisk6s3 +sudo newfs_msdos -F 32 -v EXTRA -c 128 /dev/rdisk6s3 ---- [start=3] -. Comprobar cómo el esquema de particiones ha cambiado y ya es el que se deseaba: +. Confirm that the new partition scheme has been applied: [source,shell] ---- @@ -671,16 +454,14 @@ diskutil list ==== Linux -Será necesario utilizar la línea de comandos. Lo primero es determinar el disco a formatear: +You can use the command line. First, find out the device to erase: [source,shell] ---- lsblk ---- -<<< - -En este ejemplo sería `sdc`: +For this example, it will be `sdc`: [source] ---- @@ -690,9 +471,11 @@ sdc 179:0 0 15,8G 0 disk └─sdc1 179:1 0 15,8G 0 part ---- -Pasos a seguir: +<<< -. Comprobar que no está montado y editar el esquema de particiones (este paso requiere permisos de root): +Instructions: + +. Verify that the disk isn't mounted and edit the partition scheme (this step requires root privileges): [source,shell] ---- @@ -772,7 +555,7 @@ Device Boot Start End Sectors Size Id Type ---- [start=2] -. Formatear las particiones FAT (requiere permisos de root) +. Format both FAT partitions (requires root privileges) [source,shell] ---- @@ -780,8 +563,10 @@ sudo mkfs.fat -F 16 -n ZXUNOPLUS -s 128 /dev/sdc2 sudo mkfs.fat -F 32 -n EXTRA -s 128 /dev/sdc3 ---- +<<< + [start=3] -. Verificar que el esquema de particiones ha cambiado y ya es el que se quería: +. Confirm that the partition scheme has been changed: [source,shell] ---- @@ -800,29 +585,27 @@ sda 179:0 0 15,8G 0 disk ==== +3e -Una vez preparada la tarjeta para su uso, se puede arrancar el core de Spectrum con una ROM de +3e, y formatear la parte de IDEDOS según se desee. +Once the SD card is ready to use, you can start Spectrum core with a +3e ROM and format the IDEDOS part. -El primer paso consiste en determinar la geometría de la SD. Con la tarjeta insertada en el ZXUNO+, desde el core de Spectrum con la ROM de +3e, ejecutar el comando: +The first step is determine the disk geometry. With the cart inserted into the ZXUNO+, type the command: [source,basic] ---- CAT TAB ---- -Esto devoverá un resultado indicando el número de https://es.wikipedia.org/wiki/Cilindro-Cabezal-Sector[cilindros, cabezales y sectores]. +This will give a result showing the number of https://en.wikipedia.org/wiki/Cylinder-head-sector[cylinders, heads and sectors]. -Teniendo esto en cuenta, calculamos el espacio que ocupa nuestra partición, en cilindros. Por ejemplo, si el número de cilindros obtenido es de 32768, y queremos utilizar 1GB de una tarjeta de 16GB, el número de cilindros que se necesitarían son 32768/16=2048. Por tanto, podemos formatear la partición IDEDOS usando ese número: +Whith this info, we estimate the size of our partition, using cylinders. For example, if the number of cylinders is 32768, and we want to use 1GB of a 16GB card, the number of cylinders needes would be 32768/16=2048. This way, the IDEDOS partition can be formatted using that number: [source,basic] ---- FORMAT TO 0,100,2048 ---- -El primer valor (`0`) indica el disco a utilizar (el primero), el segundo valor es el número máximo de particiones IDEDOS que se podrán usar, y el tercer valor es el número de cilindros a utilizar. +The first value (`0`) is the drive to use (the first one), the second value is the maximum number of IDEDOS partitions, and the third one yis the number of cylinders to use. -<<< - -Una vez hecho el formato, ya será posible crear nuevas particiones. Por ejemplo, para crear una partición llamada "Software" de 16MB, una llamada "Swap1", de 4MB (para usar como espacio swap) y otra llamada "Utils" de 8MB: +Once formatted, you can create new partitions. For example, to create a 16MB partition with the name "Software", another 4GB partition named "Swap" (to use as swap) and another one name "Utils", 8MB in size: [source,basic] ---- @@ -831,298 +614,502 @@ NEW EXP "Swap1",4 NEW DATA "Utils",8 ---- -Para más información sobre el uso de los distintos comandos de +3e para acceso al disco, se puede visitar https://worldofspectrum.org/zxplus3e/espanol/index.html[esta página en World of Spectrum]. +For more information about the different +3e disk commands , you can check https://worldofspectrum.org/zxplus3e/index.html[this page at World of Spectrum]. <<< -=== Comandos de esxdos +=== Keyboard -==== Guía básica +The keyboard map (physical keys of the keyboard assignment to the keystrokes that are presented to the different cores) is changed using the `Advanced` menu of the BIOS. There are three different maps to choose from: Spanish (default), English, and Spectrum (advanced). -Existen dos tipos diferentes de comandos de esxdos, los llamados comandos "DOT", que, como su nombre indica, comienzan por un punto, y las extensiones de la funcionalidad de comandos existentes en BASIC. +You can also change it using the `keymap` utility. Inside `/bin` you have to create a directory named `keymaps` and copy inside the keyboard map files that you want to use. For example, to switch to the US map you have to write `.keymap us` from esxdos. -Los principales comandos "DOT" commands son los siguientes: +For the map to be preserved after a master reset, it has to be selected as `Default` in the BIOS. -- `128`: Para pasar al modo 128K desde el modo 48K. -- `cd`: Cambiar el directorio actual de trabajo. -- `chmod`: cambiar los atributos de los ficheros de la tarjeta SD. -- `cp`: Copiar un archivo. -- `divideo`: Reproduce un archivo de video DivIDEo (.DVO). -- `drives`: Mostrar las unidades disponibles. -- `dskprobe`: Utilidad para ver el contenido a bajo nivel de un dispositivo de almacenamiento. -- `dumpmem`: Permite volcar contenido de la memoria RAM a un fichero. -- `file`: Intenta determinar el tipo de un fichero por su contenido (como el comando de UNIX). -- `gramon`: Monitor para buscar gráficos, sprites, fuentes de texto, etc. en la memoria RAM. -- `hexdump`: Muestra el contenido de un fichero usando notación hexadecimal. -- `hexview`: Permite ver y navegar por el contenido de un fichero usando notación hexadecimal. -- `launcher`: Crea un atajo (launcher) para abrir directamente un fichero TAP. -- `ls`: Ver el contenido de un directorio. -- `lstap`: Ver el contenido de un fichero .TAP -- `mkdir`: Crear un directorio. -- `mktrd`: Crear un fichero imagen de disquete .TRD -- `more`: Ver el contenido de un archivo de texto. -- `mv`: Mover un archivo. -- `partinfo`: Muestra información sobre las particiones de un dispositivo de almacenamiento. -- `playpt3`: Reproducir un archivo musical .PT3. -- `playsqt`: Reproducir un archivo musical .SQT. -- `playstc`: Reproducir un archivo musical .STC. -- `playtfm`: Reproducir un archivo musical .TFC. -- `playwav`: Reproducir un archivo de audio .WAV. -- `rm`: Borrar un archivo o directorio. -- `snapload`: Carga ficheros snapshot. -- `speakcz`: Reproduces texto usando pronunciación checa. -- `tapein`: Montar un archivo .TAP para poder ser utilizado luego desde BASIC con la sentencia LOAD -- `tapeout`: Montar un archivo .TAP para poder ser utilizado luego desde BASIC con la sentencia SAVE -- `vdisk`: Monta una unidad de disquete .TRD para usar en el entorno TR-DOS (Una vez montadas todas las unidades deseadas, se puede entrar en el emulador de TR-DOS escribiendo: `RANDOMIZE USR 15616`) +For more information, see https://www.zxuno.com/forum/viewtopic.php?f=37&t=208[this message in the ZX-Uno forum]. -Algunos comandos extendidos de BASIC son: +==== Spanish -- `GO TO` para cambiar de unidad y/o directorio (ej: `GO TO hd1` o `GO TO hd0"juegos"`) -- `CAT` para mostrar el contenido de una unidad -- `LOAD` para cargar un fichero desde una unidad (programa en BASIC, pantalla, código, etc. por ejemplo `LOAD *"Pantalla.scr" SCREEN$`) -- `SAVE` para guardar datos en un fichero (Ej: `SAVE *"Programa.bas"`) -- `ERASE` para borrar un fichero +[.text-center] +image:./img/keyboardEsp.png[pdfwidth=70%] -Además, esxdos incluye un gestor NMI, es decir, una aplicación que se carga cuando se pulsa NMI (`F5`) y que facilita la navegación por la tarjeta SD y la carga de algunos tipos de archivo (TAP, Z80, TRD, etc.). Pulsando la tecla "H" se accede a una pantalla de ayuda, en la que se indican todas las teclas disponibles. +==== English + +[.text-center] +image:./img/keyboardEng.png[pdfwidth=70%] + +==== Spectrum + +[.text-center] +image:./img/keyboardAV.png[pdfwidth=70%] + +<<< + +==== Special keys and buttons + +Special keys which can be used during startup: + +- `F2`: Enter BIOS setup +- `Caps Lock` or `Cursor down` or, if a joystick is connected, pressing `down`: Core selection menu +- `Esc`, or if a joystick with two or more fire buttons is connected, pressing the 2nd fire button: ZX Spectrum core ROM selection menu +- `R`: Loads the Spectrum core ROM in "real" mode, disabling esxdos, new graphics modes, etc. +- `/` (numeric keyboard): Load the default ZX Spectrum core ROM in "root" mode +- Number from `1` to `9`: Load the core in the flash location corresponding to that number + +Special keys that can be used while running the main core (ZX Spectrum): + +- `Esc`: BREAK +- `F2`: Edit +- `F5`: NMI +- `F7`: Play or pause when playing .PZX files +- `F8`: Rewind .PZX file to the previous mark +- `F10`: Graph +- `F12`: Turbo Boost. Speeds up CPU to 28MHz while pressed (beginnig with core EXP27). +- `Ctrl+Alt+Backspace`: Hard reset. Backspace is the delete key, located in the top-right portion of the keyboard, above `Enter`. +- `Ctrl+Alt+Supr`: Soft reset. +- `Scroll Lock`: Switches between composite and VGA video modes. + +<<< + +=== ROMs + +The ZX Spectrum core can be initialized using different ROM versions (48K, 128K, Plus 2, etc.). These are stored in the flash memory of the ZXUNO+, and you can choose which one to load by pressing the `Esc` key during boot. You can also define the ROM that you want to load by default using the BIOS setup. + +See the <<#_roms_3,updates section>> for more information on how to expand or modify the ROMs stored in flash memory. + +==== DerbyPro + +https://www.facebook.com/groups/DerbyPro[DerbyPro or Derby{pp}] is an enhanced firmware ROM for the ZX Spectrum, based on v1.4 of the Derby development ROM. The Spectrum 128 (codename "Derby") was a Spanish machine commissioned by Investronica and launched in 1985. It came with a keypad that provided additional editing keys. In 1986, the UK version came out with a simplified version of 128 BASIC and no keypad. Derby++ is developed from the Spanish ROM to include the benefits of both versions, without the drawbacks, and support for new hardware developments. + +You can download the ROM, a user manual and other files from the https://www.facebook.com/groups/DerbyPro[official Facebook Public Group]. + +This 64K ROM has support for new hardware, including the use of esxdos commands from 128 BASIC, so these flags can be used when <<#_zx123_tool,adding it to the SPI flash>>: + +[%header,cols=2*] +|=== +|Flag +|Meaning +|`d` +|Enable DivMMC +|`n` +|Enable NMI DivMMC (esxdos Menu) +|`t` +|Use 128K timings +|=== + +<<< + +==== CargandoLeches + +CargandoLeches is a set of ZX Spectrum ROMs that started as a project to load games in any Spectrum model 15-20x faster. No tape is needed, but a digital audio source, as a computer, mobile device, MP3 player, etc. The new ROM detects the loading method and reverts to the original ROM code if needed. This is handled transparently, with no user or program intervention. + +Since version 2.0 the project changed from a single ROM to more, each one with different options. This way, you can choose a different mix of options that may include: + +- Ultrafast loading +- Reset & Play (After a sofware reset of the core, the system is ready to load from tape) +- POKE editor +- Enable or disable Sinclair BASIC token expansion + +The whole ROM set is available to download from the repository in GitHub https://github.com/antoniovillena/CargandoLeches/tree/master/binaries[here]. + +Depending on which ROM you choose, the flags when <<#_zx123_tool,adding to the SPI flash>> may vary. For example, for the ROM `48le_ea_re_po` (with all features enabled), these flags can be used (we cannot enable NMI DivMMC since the POKE editor will use it): + +[%header,cols=2*] +|=== +|Flag +|Meaning +|`d` +|Enable DivMMC +|`h` +|Disable ROM high bit (1FFD bit 2) +|`l` +|Disable ROM low bit (7FFD bit 4) +|`x` +|Disable Timex mode +|=== + +===== POKEs + +When using a ROM with POKE option enabled: + +. Once the game is loaded, after pressing NMI a field will appear in the upper left corner of the screen +. Enter the POKE address and press `Enter` +. Enter the POKE value and press `Enter` again +. Repeat steps 2. and 3. until all the desired POKEs are entered. To finish and return to the game, press `Enter` twice + +<<< + +===== Preparing ultrafast loading tapes + +The ROMs with ultrafast loading enabled, need special tape audio data which is made from normal loading `TAP` files, without protections or turbo loading. + +In order to create an ultrafast loading tape you need `leches` and `CgLeches` command line utilities. Those can be obtained, for Windows, from the +https://github.com/antoniovillena/CargandoLeches/tree/master/binaries[official repository]. You can also obtain an unofficial version for MacOS from https://github.com/kounch/CargandoLeches/tree/master/binaries/MacOS[this other repository]. + +In any other case, you can compile from the https://github.com/antoniovillena/CargandoLeches[source code at the official repository]. For example, in Linux, to compile using `gcc` you only need these commands: + +[source,shell] +---- +gcc leches.c -o leches +gcc CgLeches.c -o CgLeches +---- + +To create an ultrafast loading tape you have to use the `CgLeches` command from a terminal, giving, at least, the path to the original `TAP` file and also to the new file to create (`WAV` or `TZX`). There are also some other optional parameters, like the loading speed, between 0 and 7 (where 0 is fastest but also more incompatible), if you want to create a mono or stereo file (when making a `WAV`), and more. + +Thus, to make a `WAV` file with an ultrafast loading tape from the file `Valley.tap`, with loading speed 5, you could type: + +[source,shell] +---- +(...) CgLeches Valley.tap Valley.wav 5 +---- + +This way, the file `Valley.wav` can be played from a computer or another device and load using the ROM (see the section about <<#_loading_from_tape,loading from tape>> for more info). + +[WARNING] +==== +Due to hardware limitations, `TZX` files made with `CgLeches` do not work with a <<#_miniduino,Miniduino>>, although they usually work with <<#_playtzx,`PlayTZX`>>. +==== + +<<< + +==== SE Basic IV + +https://github.com/cheveron/sebasic4[SE Basic IV] is a free open-source Z80 interpreter for Microsoft BASIC. SE Basic IV is designed to run on the https://www.patreon.com/chloe280se[Chloe 280SE] but it can also run on ZX-Uno and similar computers. + +SE Basic was originally conceived as a new firmware for the https://sinclair.wiki.zxnet.co.uk/wiki/ZX_Spectrum_SE[ZX Spectrum SE]. The earliest versions of SE Basic were patches applied to the original ZX Spectrum ROM, but later versions have been rewritten based on the https://groups.google.com/g/comp.sys.sinclair/c/F90HbKTDkRk[open source TS1000 / ZX81 improved ROM]. + +Version 3, also known as https://zxdesign.itch.io/opense[OpenSE BASIC], is still maintained as an open source replacement firmware for the Spectrum. It’s https://tracker.debian.org/pkg/opense-basic[included in the main Debian repository] for use with emulators. + +Version IV is a fork of the previous version, done because there was no room left to add new features to the 16K ROM. The initial release (4.0 Anya) added another 16K ROM with support for Timex hi-res mode. The syntax was still largely Sinclair BASIC compatible at this point. Version 4.2 was rebuilt specifically for the Chloe 280SE, dropping support for legacy devices such as tape, adding full compatibility and integrated support for the esxdos kernel, and migrating to Microsoft BASIC syntax. + +While it shares a common code base with many versions of Sinclair BASIC (the TS1000 ROM), it differs from them in significant ways: + +- Code page (8-bit ASCII) support. +- Error message localization. +- 38 additional tokens. +- Standard terminal display (80 x 24). +- Terminal character entry (CTRL, META). +- Keyboard buffer. +- Full sized keyboard support. +- Designed to take full advantage of the additional features of ZX-Uno Spectrum core + +The main differences from Microsoft BASIC are: + +- Token abbreviation. +- On-entry syntax checking. +- Typically, brackets are optional. +- Motorola style number entry: + % – binary + @ – octal + $ – hexadecimal +- Always-on expression evaluation. +- Separate logical and bitwise operators. +- Automatic data typing. + +You can find much more information, including the user manual, etc. at https://github.com/cheveron/sebasic4/wiki[the official wiki page]. + +<<< + +==== Other ROMs + +Here are flag settings which work when <<#_zx123_tool,adding to the SPI flash>> some other known custom ROMs: + +[%header,cols=2*] +|=== +|ROM Name +|Flags +|Gosh Wonderful ROM v1.33 +|dnhl17x +|Looking Glass 1.07 +|dnhl17x +|ZX82 by Daniel A. Nagy +|dnhl17 +|ZX85 by Daniel A. Nagy +|dntmh1 +|Arcade Game Designer 0.1 +|thl17x +|=== + +<<< + +=== esxdos + +==== Basic Guide + +There are two different kind of esxdos commands, the so-called "DOT" commands, which, as the name suggests, begin with a period, and the commands that are extensions to the existing ones in BASIC. + +The main "DOT" commands are the following: + +- `128`: Para enter 128K mode from within 48K mode +- `cd`: Change current working directory +- `chmod`: Change file attributes +- `cp`: Copy a file +- `divideo`: Play a DivIDEo (.DVO) video file +- `drives`: Show currently available drives +- `dskprobe`: Utility which shows low level content of an storage device +- `dumpmem`: Can dump RAM memory content to a file +- `file`: Tries to recognize the type of data contained in a file (like the UNIX command) +- `gramon`: Monitor to search graphics, sprites, fonts, etc. in RAM memory +- `hexdump`: Shows the contents of a file using hexadecimal notation +- `hexview`: Allow to see and navigate through the contents os a file using hexadecimal notation +- `launcher`: Creates a shortcut (launcher) to open directly a TAP file +- `ls`: Show the content of a directory +- `lstap`: Show the content of a .TAP file +- `mkdir`: Create a directory +- `mktrd`: Create a .TRD disk file +- `more`: Show the content of a text file +- `mv`: Move a file +- `partinfo`: Show partition information of an storage device +- `playpt3`: Play .PT3 music file +- `playsqt`: Play .SQT music file +- `playstc`: Play .STC music file +- `playtfm`: Play .TFC music file +- `playwav`: Play .WAV audio file +- `rm`: Remove a file or a directory +- `snapload`: Load snapshot file +- `speakcz`: Reads text aloud using czech pronunciation +- `tapein`: Mounts a .TAP file so that it can be used then from BASIC using LOAD sentence +- `tapeout`: Mount a .TAP file so that it can be used then from BASIC using SAVE sentence +- `vdisk`: Mount a .TRD disk file to use with the TR-DOS environment (once all the drives have been mounted, you can enter TR-DOS emulation by typing: `RANDOMIZE USR 15616`) + +Some BASIC extended commands are: + +- `GO TO` to change the current drive and/or directory (e.g.: `GO TO hd1` or `GO TO hd0"games"`) +- `CAT` to show the content of a drive +- `LOAD` to lad a file from a drive (BASIC Program, SCREEN, CODE, etc. for example `LOAD *"Screen.scr" SCREEN$`) +- `SAVE` to save data in a file (e.g: `SAVE *"Program.bas"`) +- `ERASE` to delete a file + +In addition, esxdos also has an NMI manager, an application that loads when NMI is pressed, and lets you browse the SD card and load easily files (TAP, Z80, TRD, etc.). Pressing the "H" key invokes a help screen, which shows all the available keys. [NOTE] ==== -El gestor de esxdos muestra las entradas de archivos y directorios en el orden de la tabla FAT interna, y no de manera alfabética. Si se desea ver esta información ordenada, se debe reorganizar la estructura de la tarjeta con una utilidad como FAT Sorter para Windows, https://fatsort.sourceforge.io/[FATsort] para Linux y MacOS, https://www.luisrios.eti.br/public/en_us/projects/yafs/[YAFS], http://www.trustfm.net/software/utilities/SDSorter.phpp[SDSorter] u otros. +The esxdos manager shows file and directory entries in the order stored in the internal FAT table, and not alphabetically. If you want to see them ordered, you have to reorder the SD card structure with a utility like Fat Sorter for Windows, https://fatsort.sourceforge.io/[FATsort] for Linux and MacOS, https://www.luisrios.eti.br/public/en_us/projects/yafs/[YAFS], http://www.trustfm.net/software/utilities/SDSorter.phpp[SDSorter] or other. ==== <<< -==== Comandos para ZXUNO+ +==== ZXUNO+ Commands -Tal y como se ha explicado en la parte de instalación, existe una serie de comandos que son exclusivos para ZXUNO+, y que se describen a continuación: +As explained in the installation part, there are a series of commands that are exclusive to ZXUNO+: -- `backup` -- `back16m`: Copia a un fichero `FLASH.ZX1` en el directorio raíz de la tarjeta SD el contenido de la memoria SPI Flash de 16 megas. Se debe ejecutar desde una ROM en modo "root". Tras terminar su ejecución hay que ejecutar el comando `.ls` para que se termine de grabar la cache en la tarjeta. -tarjeta SD. Si no se hace, la longitud del archivo se quedará en 0 de forma errónea. -- `corebios`: Para hacer una actualización conjunta del core de ZX Spectrum y de la BIOS. -- `dmaplayw`: Reproduce un archivo de audio .WAV, que debe ser de 8 bits, sin signo y muestreado a 15625 Hz. -- `esprst`: Resetea el módulo WiFi ESP8266(ESP-12). -- `iwconfig`: Configura el módulo WiFi. -- `joyconf`: Configura y prueba los joysticks de teclado y DB9. -- `keymap`: Sirve para cargar una definición de teclado diferente. -- `loadpzx`: Para cargar un archivo de imagen de cinta .PZX. -- `playmid`: Reproduce archivos musicales .MID en el addon MIDI. -- `playrmov`: Reproduce videos en <<#_creación_de_vídeos_rdm_radastan_movie,formato radastaniano (ficheros `.RDM`)>>. Este comando no funciona en modo 48K. -- `romsback`: Copia a un fichero RomPack, llamado `ROMS.ZX1`, en el directorio raíz de la tarjeta SD todas las ROMS del core ZX Spectrum almacenadas en la memoria SPI Flash. Se debe ejecutar desde una ROM en modo "root". -- `romsupgr`: Copia el contenido de un fichero RomPack, llamado `ROMS.ZX1`, en el directorio raíz de la tarjeta SD con todas las ROMS para el core ZX Spectrum a la memoria SPI Flash. Se debe ejecutar desde una ROM en modo "root". -- `upgrade` -- `upgr16m`: Copia el contenido de un fichero `FLASH.ZX1` en el directorio raíz de la tarjeta SD a una memoria SPI Flash de 16 megas. Se debe ejecutar desde una ROM en modo "root". -- `zxuc`: Configura todas las opciones de la BIOS, permitiendo grabar en la SD las opciones seleccionadas en archivos de configuración que pueden posteriormente ser cargados. -- `zxunocfg`: Configura determinados aspectos del funcionamiento del ZX-Uno como los timings, la contención, el tipo de teclado, la velocidad de la CPU, el tipo y frecuencia vertical del vídeo. +- `back16m`: Dumps to a `FLASH.ZX1` file, in the root directory of the SD card, the contents of a 16 Meg SPI Flash memory. It must be run while using a "root" mode ROM. After finishing, it is necessary to execute the command `.ls` so that the cache is written to the card +- `corebios`: To upddate simultaneously ZX Spectrum core and BIOS +- `dmaplayw`: Plays .WAV file, which has to be 8 bits, unsigned and sampled at 15625 Hz +- `esprst`: Resets the WiFi ESP8266(ESP-12) module +- `iwconfig`: To configure the WiFi module +- `joyconf`: Configuration and tests for keyboard and DB joysticks +- `keymap`: Used to load a different keyboard map definition +- `loadpzx`: To load a .PZX tape file +- `playmid`: Plays .MID music files using the MIDI addon +- `playrmov`: Plays <<#_making_rdm_radastan_movie_files,radastanian format video files `.RDM`)>>. This command does not work on 48K mode. +- `romsback`: Dumps to a RomPack File named `ROMS.ZX1`, in the root directory of the SD card, all ZX Spectrum core ROMS which are stored in SPI flash memory. It must be run while using a "root" mode ROM. +- `romsupgr`: Load from a RomPack filel named `ROMS.ZX1`, in the root directory of the SD card, all ZX Spectrum core ROMS into SPI flash memory. It must be run while using a "root" mode ROM +- `upgr16m`: Load the content of a `FLASH.ZX1` file, in the root directory of the SD card, to a 16 Meg SPI Flash memory. It must be run while using a "root" mode ROM +- `zxuc`: Utility to configure al options of BIOS, which also can be stored in the SD in configuration files that can be loaded later +- `zxunocfg`: Configuration utillity for certain features of ZX-Uno such as timings, contention, keyboard type, CPU speed, video type or vertical frequency <<< -=== Creación de vídeos RDM (RaDastan Movie) +=== Making RDM (RaDastan Movie) files -El comando `PLAYRMOV` reproduce videos en formato radastaniano. Para poder convertir nuestros propios vídeos, se debe obtener la utilidad `makevideoradas` desde el https://guest:zxuno@svn.zxuno.com/svn/zxuno/software/modo_radastan/videos_radastanianos/[Repositorio SVN] (Usuario `guest`, contraseña `zxuno`). +The `PLAYRMOV` "DOT" command plays radastanian format video files. To convert your own videos, you need `makevideoradas`, a utility that is available at https://svn.zxuno.com/svn/zxuno/software/modo_radastan/videos_radastanianos/[SVN repository]. -En el caso de Windows, en el propio repositorio hay un ejecutable (`makevideoras.exe`) ya preparado. Para Linux o MacOS, será necesario tener las herramientas de desarrollo correspondientes y compilarlo. +If using Windows, there is already an executable file (`makevideoras.exe`). For Linux or MacOS, you must have installed command line developer utilities in order to compile an executable [source,shell] ---- gcc makevideoradas.c -o makevideoradas ---- -Una vez dispongamos de `makevideoradas`, necesitaremos otras dos herramientas: https://ffmpeg.org[`ffmpeg`] e https://imagemagick.org/index.php[`imagemagick`]. Estas se pueden instalar con el gestor de paquetes corespondiente (`apt`, `yum`, `pacmam`, `brew`, etc.) o descargando el código fuente y compilándolo también. +Apart from `makevdideoradas`, you need another two tools: https://ffmpeg.org[`ffmpeg`] and https://imagemagick.org/index.php[`imagemagick`]. These can be installed with a package manager (`apt`, `yum`, `pacmam`, `brew`, etc.) or downloading the source code and compiling. -Ahora, el primer paso para convertir nuestro vídeo (por ejemplo, `mivideo.mp4`), es exportar los fotogramas como imágenes BMP de 128x96 píxeles de tamaño. Crearemos un directorio temporal (`img` en este ejemplo), donde guardar dichas imágenes. +Now, the first step to convert our video (for example `myvideo.mp4`), is exporting the frames as 128x96 pixel BMP image files. We create a temporary file (`img` for this example), to store them. [source,shell] ---- mkdir img -(...)/ffmpeg -i mivideo.mp4 -vf "scale=128:96,fps=25" -sws_flags lanczos -sws_dither ed -pix_fmt rgb4 -start_number 0 img/output%05d.bmp +(...)/ffmpeg -i myvideo.mp4 -vf "scale=128:96,fps=25" -start_number 0 img/output%05d.bmp ---- -Ahora transformaremos los ficheros `BMP` a `BMP` (v3) de 16 colores. +Now we transform the `BMP` files to 16 colours (v3) `BMP` files. [source,shell] ---- (...)/magick mogrify -colors 16 -format bmp -define bmp:format=bmp3 img/*.bmp ---- -Finalmente, creamos el fichero `.RDM` (en este ejemplo `mivideo.rdm`) y borramos las imágenes y el directorio temporal. +Finally, we assemble the `.RDM` file (in this example `myvideo.rdm`) and cleanup the temporary files and directory. [source,shell] ---- (...)/makevideoradas img/output -mv img/output.rdm ../mivideo.rdm +mv img/output.rdm ../myvideo.rdm rm -rf img ---- -En https://www.zonadepruebas.com/viewtopic.php?t=4796&start=110[este hilo del foro Zona de Pruebas] hay más información sobre todo este proceso. +There is more information about all this process at https://www.zonadepruebas.com/viewtopic.php?t=4796&start=110[this thread in Zona de Pruebas forums]. <<< -== Actualizaciones +== Upgrade === BIOS -Para actualizar BIOS se ha de obtener un fichero llamado `FIRMWARE.ZX1`. La última versión de los ficheros de firmware se puede descargar desde https://github.com/zxdos/zxuno/tree/master/firmware[el repositorio oficial] +To update the BIOS, a file named `FIRMWARE.ZX1` (for a ZXUNO+ with an FPGA LX16 board) or `FIRMWARE.ZX1` must be obtained. The latest version of the firmware files can be downloaded from https://github.com/zxdos/zxuno/tree/master/firmware[the official repository] [WARNING] ==== -Actualizar el firmware (BIOS) es delicado, no se debe hacer si no es necesario. En el caso de hacerlo, procurar que el ZXUNO+ tenga alimentación ininterumpida (como un SAI o un USB de portatil con batería). +Updating the firmware (BIOS) is delicate. It should not be done if it is not necessary. If doing so, ensure that the ZXUNO+ has uninterrupted power (such as a UPS or a laptop USB with battery). ==== -Copiar el fichero en la raíz de la tarjeta SD, encender y pulsar `F2` para entrar en la BIOS, seleccionar `Upgrade`, elegir __"Upgrade BIOS for ZX"__, y luego __"SDfile"__. El sistema leerá el fichero `FIRMWARE.ZX1` y avisará cuando esté actualizado. +Copy the file to the root of the SD card, turn on and press `F2` to enter BIOS, select `Upgrade`, choose __"Upgrade BIOS for ZX"__, and then __"SDfile"__. The system will read the file `FIRMWARE...` and notify when finished. === ROMs -La memoria flash del ZXUNO+ dispone de 64 "slots", de 16K cada uno, para almacenar imágenes ROM de ZX Spectrum y compatibles. Así, la ROM del ZX Spectrum original (16K) ocuparía un slot del almacenamiento, la del ZX Spectrum 128K (32K) ocuparía dos slots, y la del ZX Spectrum +2A (64K) ocuparía 4 slots. +The flash memory of a ZXUNO+ has reserved 64 slots, 16K each, to store ZX Spectrum ROM images. Thus, an original ZX Spectrum ROM (16K) will take one slot, a ZX Spectrum 128K ROM (32K) will be two slots, and a ZX Spectrum +2A ROM (64K) will need 4 slots. -Se puede añadir una nueva ROM desde <<#_roms,la pantalla ROMs>> de la BIOS, pulsando la tecla `N`, conectando un cable de audio a la entrada de sonido de la placa, y reproduciendo una cinta de carga de ROM. Las cintas de carga de ROM se pueden crear desde un archivo `.tap` generado con la utilidad `GenRom`, disponible en el https://github.com/zxdos/zxuno/tree/master/modflash[repositorio de código de ZX-Uno]. +You can add a new ROM pressing the key `N` at the BIOS <<#_roms,ROMs screen>>, connecting an audio cable to the board, and playing a ROM audio tape. ROM audio tapes can be made from a `.tap` file built with the `GenRom` utility, available at https://github.com/zxdos/zxuno/tree/master/modflash[ZX-Uno Code Repository]. -Para actualizar las ROM instaladas para ZX Spectrum de forma masiva, se ha de obtener un fichero RomPack con el nombre `ROMS.ZX1`, y se tiene que copiar en la tarjeta SD. Arrancar el ZXUNO+ usando una ROM en modo "root", y entonces bastará con introducir el comando `.romsupgr`. Esto grabará todas las ROM, que quedarán disponibles para su uso. +To update at once all the ROMs installed for ZX Spectrum, a RomPack file named `ROMS.ZX1` must be obtained, which must be copied to the SD card. Boot the ZXUNO+ using a "rooted" ROM, and then just enter the command `.romsupgr`. This will burn all the ROMs, which will be available for use. [NOTE] ==== -Recordar que, si se inicia el ZXUNO+ pulsando la tecla `/` (del teclado numérico), entonces se cargará la ROM por defecto del core de ZX Spectrum en modo "root". +Remember that if the ZXUNO+ is started by pressing the `/` key, then the default ROM of the ZX Spectrum core will be loaded in" root "mode. ==== -Para hacer el proceso contrario (guardar las ROMs en un fichero RomPack llamado `ROMS.ZX1`), se puede usar el comando `.romsback`. +To do the opposite process (save the ROMs in a RomPack file named `ROMS.ZX1`), you can use the` .romsback` command. -Los ficheros RomPack se pueden editar fácilmente con la utilidad https://guest:zxuno@svn.zxuno.comsvn/zxuno/software/ZX1RomPack/[ZX1RomPack] (Usuario `guest`, contraseña `zxuno`). Aunque es un programa de Windows, funciona perfectamente, por ejemplo, usando https://www.winehq.org[Wine] o programas similares, tanto en MacOS como en Linux. - -<<< +RomPack files can be easily edited with the https://guest:zxuno@svn.zxuno.com/svn/zxuno/software/ZX1RomPack/[ZX1RomPack] utility. Although it is a Windows program, it works perfectly, for example using https://www.winehq.org[Wine] or similar programs, either on MacOS or Linux. === Cores -Hay un 45 espacios disponibles para almacenar cores, estando reservado el primer espacio para el de ZX Spectrum principal (esto no impide tener más cores de ZX Spectrum en otros espacios además del primero). +There are a number of available spaces where you can store cores (the number depends on the size of the SPI Flash of the ZXUNO+ model), the first space being reserved for the main ZX Spectrum (this does not prevent having more ZX Spectrum cores in other space as well of the first). -Los cores oficiales están https://github.com/zxdos/zxuno/tree/master/cores[disponibles para descargar] en el repositorio en GitHub. +Official cores are https://github.com/zxdos/zxuno/tree/master/cores[available to download] from GitHub repository. -Para actualizar o instalar un nuevo core hay varias alternativas. +To update or install a new core there are several possibilities. -La forma más sencilla consiste en obtener la última versión del fichero que lo define, que será un fichero que hay que llamar `COREnn.ZX1`, donde `nn` es el número de espacio donde realizar la instalación (por ejemplo `CORE2.ZX1` para el espacio 2). +The easiest way is to obtain the latest version of the file that defines the core, which will be a file that must be named `COREnn.ZX1`, where `nn` is the slot number where to install (for example `CORE.ZX1` or `CORE2.ZX1` for slot 2). [NOTE] ==== -A partir de la version 0.80 de BIOS, los ficheros se nombran usando la convención `COREXXy.ZX1` donde XX _siempre_ es un número de dos digitos. Así, un antiguo fichero `CORE4.ZX1` ha de renombrarse como `CORE04.ZX1`. La parte `y` del nombre se ignora, así que se pueden usar nombres más largos y descriptivos (como, por ejemplo, `CORE04_ejemplo.ZX1`). +Starting with BIOS version 0.80, files are named using the `COREXXy.ZXn` convention where XX _always_ is a two-digit number. Thus, an old `CORE4.ZX1` file has to be renamed as `CORE04.ZX1`. The `y` part of the name is ignored, so longer and more descriptive names can be used (such as `CORE04_example.ZX1`). ==== -Copiar el fichero en la raíz de la tarjeta SD, encender y pulsar `F2` para entrar en la BIOS. Elegir `Upgrade`, seleccionar la fila correspondiente al número de core elegido (por ejemplo, la 2 – justo después de la de Spectrum), pulsar enter y luego __"SD file"__. El sistema leerá el fichero `COREnn...` y avisará cuando esté actualizado, aunque antes preguntará el nombre (con el que se verá en la lista para elegir en el arranque y en el listado de la BIOS). Una vez instalado, se podrá utilizar al arrancar. +Copy the file to the root of the SD card, turn on and press `F2` to enter BIOS. Choose `Upgrade`, select the row corresponding to the chosen core number (for example, 2 - just after Spectrum), press enter and then __" SD file "__. The system will read the file `COREnn ..` and warn when it is updated, although first it will ask for the name (to be shown in the list to choose from at startup and in the BIOS list). [WARNING] ==== -La actualización del core de ZX Spectrum es exactamente igual que los otros cores, pero en lugar del fichero `CORE1.ZX1`, ha de ser un fichero llamado `SPECTRUM.ZX1`. +The ZX Spectrum core update is exactly the same as other cores, but instead of the name `CORE1.ZX1`, it has to be a file named `SPECTRUM.ZX1`. ==== === esxdos -Para actualizar esxdos a una nueva versión, se ha de obtener la distribución desde https://www.esxdos.org[la página oficial]. +To update esxdos to a new version, the distribution must be obtained from https://www.esxdos.org[the official website]. -Una vez descargado y descomprimido, se ha de copiar, a la raíz de la tarjeta, el contenido de los directorios `BIN` y `SYS` sobreescribiendo los existentes (para preservar los comandos exclusivos de ZXUNO+). +Once downloaded and extracted, the contents of `BIN` and `SYS` directories have to be copied to the root of the card, merging the existing ones (to preserve the exclusive ZXUNO+ commands). -Copiar `ESXMMC.BIN` (o `ESXMMC.ROM`, según la versión) en la raíz de la tarjeta SD. +Copy `ESXMMC.BIN` (or `ESXMMC.ROM`, depending on version) to the root of the SD card. -Iniciar el ZXUNO+ con la tarjeta insertada y pulsar F2 para acceder a la configuración de BIOS. Seleccionar el menú `Upgrade` y elegir __"Upgrade esxdos for ZX"__. En el diálogo que aparece elegir __"SD file"__ y, cuando pregunte __"Load from SD"__ contestar __"Yes"__ a la pregunta __"Are you sure?"__. Se leerá el contenido del fichero `ESXDOS...`, se grabará en la flash y avisará cuando esté actualizado. +Start ZXUNO+ with the card inserted and press `F2` to access BIOS setup. Select the `Upgrade` menu and choose __"Upgrade esxdos for ZX"__. In the dialog that appears choose __"SD file"__ and, when it asks __"Load from SD"__ answer __"Yes"__ to the question __"Are you sure?"__. The content of the file `ESXDOS...` will be read, written to the flash storage and you will be notified when it is updated. -Realizar un Hard-reset, o apagar y encender. +Do a Hard-reset, or turn it off and on. -Si todo se ha hecho correctamente, al encender el ZXUNO+ se verá cómo esxdos detecta la tarjeta y carga los componentes necesarios para funcionar, mostrando la nueva versión en la parte superior. +If everything has been done correctly, when you turn on the ZXUNO+ you will see how esxdos detects the card and loads the necessary components to work, showing the new version at the top. -=== Memoria Flash +=== Flash Memory -También es posible actualizar la memoria flash entera de la FPGA. +You also can update all the FPGA flash memory. At this moment, from the BIOS you can only use 16MiB image files. -Copiar el archivo de imagen (de 16MiB) `FLASH.ZX1` en la raíz de la tarjeta SD. +Copy the image file (16MiB) `FLASH.ZX1` to the root of the SD card. -Iniciar el ZXUNO+ con la tarjeta insertada y pulsar `F2` para acceder a la configuración de BIOS. Seleccionar el menú `Upgrade` y elegir __"Upgrade flash from SD"__. En el diálogo que pregunta __"Load from SD"__ contestar __"Yes"__ a la pregunta __"Are you sure?"__. Se leerá el contenido del fichero `FLASH...`, . +Turn on the ZXUNO+ and press the `F2` key during boot to access the BIOS setup. Select the menu `Upgrade` and then choos the option __"Upgrade flash from SD"__. Press Enter, choose `Yes`, and press Enter again to start the Flash writing process. -Realizar un Hard-reset, o apagar y encender. +Do a Hard-Reset or turn of and on again. [WARNING] ==== -Este proceso sustituye todos los cores instalados, la BIOS, así como las ROMs de ZX Spectrum y la configuración por lo que haya en la imagen, y no se puede deshacer. +This process can't be undone, and it will replace all the previously installed cores, the BIOS, the ZX Spectrum ROMs and their configuration with the data in the image file. ==== <<< -== Otros cores +== Other cores === ZX Spectrum 48K (Kyp) -https://github.com/Kyp069/zx48.zxuno/releases[Core alternativo], cuyo objetivo es ser una implementación de un Spectrum 48K que sea lo más exacta posible en cuanto a la configuración de los tiempos (timing), contención de memoria, etc. +https://github.com/Kyp069/zx48.zxuno/releases[Alternative core], whose objective is to be the most accurate implementation in timings, memory contention, etc. -Sus características principales son: +Main features: - Specdrum -- Turbosound (dos chips AY) con posibilidad de elegir mix ACB/ABC -- DivMMC con esxdos 0.8.8 -- Salida de vídeo compuesto/RGB y VGA 50Hz seleccionables vía teclado +- Turbosound (two AY chips) with mix selection ACB/ABC +- DivMMC with esxdos 0.8.8 +- Composite video/RGB and VGA video output -==== Formato de Tarjeta SD +==== SD card format -Se debe de utilizar una tarjeta SD con la primera partición en formato FAT16 o FAT32, y que tenga instalada la distribución de esxdos 0.8.8 (ver <<#_esxdos,el apartado correspondiente de esxdos>> para más información). +You need a SD card with the first partition formatted as FAT16 or FAT32, and inside, the standard esxDOS 0.8.8 (see <<#_esxdos,esxdos corresponding section>> for more info). -==== Teclado - -===== Teclas especiales y botones +==== Keyboard -Durante la ejecución del core: +===== Special keys and buttons + +While the core is running: - `Esc`: BREAK - `F5`: NMI -- `F8`: Alternar la configuración de mezcla de Turbosound entre ACB y ABC. -- `Bloq. Despl.`: cambia de modo video compuesto a VGA y viceversa. -- `Ctrl+Alt+Backspace` o `F11`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima de `Enter`. -- `Ctrl+Alt+Supr` o `F12`: Soft reset. +- `F8`: Change Turbosound mixer configuration between ACB and ABC. +- `Scroll Lock`: Switches between composite and VGA video modes. +- `Ctrl+Alt+Backspace` or `F11`: Hard reset. Backspace is the delete key, located in the top-right portion of the keyboard, above `Enter`. +- `Ctrl+Alt+Supr` or `F12`: Soft reset. <<< === ZX Spectrum 128K (Kyp) -https://github.com/Kyp069/zx128.zxuno/releases[Core alternativo], cuyo objetivo es ser una implementación de un Spectrum 128K que sea lo más exacta posible en cuanto a la configuración de los tiempos (timing), contención de memoria, etc. +https://github.com/Kyp069/zx128.zxuno/releases[Alternative core], whose objective is to be the most accurate implementation in timings, memory contention, etc. -Sus características principales son: +Main features: - Specdrum -- Turbosound (dos chips AY) con posibilidad de elegir mix ACB/ABC -- DivMMC con esxdos 0.8.8 +- Turbosound (two AY chips) with mix selection ACB/ABC +- DivMMC with esxdos 0.8.8 -==== Formato de Tarjeta SD +==== SD card format -Se debe de utilizar una tarjeta SD con la primera partición en formato FAT16 o FAT32, y que tenga instalada la distribución de esxdos 0.8.8 (ver <<#_esxdos,el apartado correspondiente de esxdos>> para más información). +You need a SD card with the first partition formatted as FAT16 or FAT32, and inside, the standard esxDOS 0.8.8 (see <<#_esxdos,esxdos corresponding section>> for more info). -==== Teclado - -===== Teclas especiales y botones +==== Keyboard -Durante la ejecución del core: +===== Special keys and buttons + +While the core is running: - `Esc`: BREAK - `F5`: NMI -- `F8`: Alternar la configuración de mezcla de Turbosound entre ACB y ABC. -- `Ctrl+Alt+Backspace` o `F11`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima de `Enter`. -- `Ctrl+Alt+Supr` o `F12`: Soft reset. +- `F8`: Change Turbosound mixer configuration between ACB and ABC. +- `Ctrl+Alt+Backspace` or `F11`: Hard reset. Backspace is the delete key, located in the top-right portion of the keyboard, above `Enter`. +- `Ctrl+Alt+Supr` or `F12`: Soft reset. <<< === Acorn Atom -El https://es.wikipedia.org/wiki/Acorn_Atom[Acorn Atom] era un computador casero hecho por Acorn Computers. El core es una adaptación del proyecto https://github.com/hoglet67/AtomFpga[AtomFPGA]. Se puede ver más información en https://zxuno.com/forum/viewtopic.php?f=16&t=4[el foro de ZX-Uno]. +https://es.wikipedia.org/wiki/Acorn_Atom[Acorn Atom] was a home computer made by Acorn Computers Ltd. The ZXUNO+ core is an adaptation of the https://github.com/hoglet67/AtomFpga[AtomFPGA] project. You can get more information at https://zxuno.com/forum/viewtopic.php?f=16&t=4[ZX-Uno Forums]. -Características principales: +==== SD card format -- Soporte para cargar software con tarjeta SD -- Sólo VGA +You have to use a SD card with the first partition in FAT16 format. -==== Formato de Tarjeta SD +Download the latest version of Atom Software Archive https://github.com/hoglet67/AtomSoftwareArchive/releases/latest[from GitHub]. -Se debe de utilizar una tarjeta SD con la primera partición en formato FAT16. +You can set up the files in the SD in two different ways: -Descargar la última versión de Atom Software Archive https://github.com/hoglet67/AtomSoftwareArchive/releases/latest[desde GitHub]. +. Extract all the contents of the archive to the root of the SD card. `SYS` directory contents are compatible with esxdos `SYS` directory, so you can merge both into one. -Ahora, se puede organizar la información en la tarjeta SD de dos maneras distintas: - -. Descomprimir todo el contenido del archivo en la raíz de la tarjeta. El contenido del directorio `SYS` es compatible con el directorio `SYS` de esxdos, siendo posible combinar los dos en uno solo. - -. Organizar la información de una manera más reducida en la raíz, utilizando sólo dos directorios. Crear un directorio `ATOM` en la raíz de la tarjeta, y copiar en su interior todo el contenido del archivo, excepto el directorio `MANPAGES` que se tendrá que poner también en la raíz de la SD. Luego, copiar los ficheros del archivo `trick_ATOM_folder` (disponible https://www.zxuno.com/forum/viewtopic.php?f=16&t=4006[en el foro de ZX-Uno]), reemplazando todos los que se encuentren con el mismo nombre. Así, quedará una estructura como la siguiente: +. Have less files an directories in the root directory. Create a directory named `ATOM` in the SD root, and copy inside all the uncompressed archive content, except for the directory `MANPAGES` which must also be in root. Then, extract and the files from `trick_ATOM_folder` archive (available https://www.zxuno.com/forum/viewtopic.php?f=16&t=4006[at ZX-Uno Forum]), replacing any file with the same name. You will get a file and directory structure like this: ---- / @@ -1149,76 +1136,66 @@ Ahora, se puede organizar la información en la tarjeta SD de dos maneras distin <<< -==== Teclado +==== Keyboard -===== Teclas especiales y botones +===== Special keys and buttons -Durante la ejecución del core: +While the core is running: -- `Mayús+F10`: Muestra el menú de Atom Software Archive +- `Shift+F10`: Shows Atom Software Archive Menu - `F10`: Soft Reset -- `F1`: Modo turbo 1Mhz -- `F2`: Modo turbo 2Mhz -- `F3`: Modo turbo 4Mhz -- `F4`: Modo turbo 8Mhz +- `F1`: Turbo mode 1Mhz +- `F2`: Turbo mode 2Mhz +- `F3`: Turbo mode 4Mhz +- `F4`: Turbo mode 8Mhz -El teclado está mapeado en inglés, según el siguiente esquema: +The keyboard uses the following mapping: [.text-center] image:img/keyboardAtom.jpg[pdfwidth=90%] <<< -==== Guía básica - -Tras iniciar el core, en algunos casos, puede suceder que se muestre una pantalla llena de `@`. Basta con retirar e insertar, o simplemente insertar, la tarjeta SD, para que empiece a funcionar. - -[.text-center] -image:img/acorn.jpg[pdfwidth=70%] - -Una vez iniciado, pulsar `Mayús+F10` para mostrar el menú desde el que se pueden cargar los programas de Atom Software Archive de la tarjeta. - -<<< - === Acorn Electron -El https://es.wikipedia.org/wiki/Acorn_Electron[Acorn Electron] fue una versión barata del BBC Micro de Acorn Computers. El core está basado en el https://github.com/hoglet67/ElectronFpga[trabajo original de David Banks (hoglet)]. +The https://en.wikipedia.org/wiki/Acorn_Electron[Acorn Electron] was a budget version of the BBC Micro educational/home computer. The core is based on el https://github.com/hoglet67/ElectronFpga[David Banks (hoglet) original works]. -Características principales: +Main features: -- Salida de vídeo compuesto/RGB y VGA 50Hz seleccionables vía teclado -- Soporte SD/MMC, vía archivos de imagen ".MMB" -- Carga de software víael puerto de entrada de audio del ZXUNO+ -- Teclado PS/2 (mapeado a teclado inglés) +- Composite video/RGB and VGA 50Hz video output +- SD support with ".MMB" files +- Software loading via ZXUNO+ audio in port +- PS/2 keyboard -==== Formato de Tarjeta SD +==== SD card format -Se debe de utilizar una tarjeta SD con la primera partición en formato FAT16 o FAT32. El core usa una ROM especial (Smart SPI) que lee de la SD un archivo que contiene imágenes de disquete. +And SD card with the first partition in FAT16 or FAT32 format is needed to load software from it. A special ROM inside the core (Smart SPI) +reads a special file with disk images inside. -El archivo debe llamarse `BEEB.MMB` y estar en el directorio raíz. Se puede crear con la utilidad `MMBImager` para Windows, disponible en https://guest:zxuno@svn.zxuno.com/svn/zxuno/cores/Acorn_electron/test1/varios/[el repositorio SVN de ZX-Uno] (Usuario `guest`, contraseña `zxuno`) o con la utilidades MMB/SSD en perl, disponibles en https://github.com/sweharris/MMB_Utils[GitHub]. +The file must have the name `BEEB.MMB` and it has to be in the root directory. You can make one with `MMBImager` for Windows, available at https://guest:zxuno@svn.zxuno.com/svn/zxuno/cores/Acorn_electron/test1/varios/[ZX-Uno SVN Repository] (Usuario `guest`, contraseña `zxuno`) or with MMB/SSD Utils in perl, available at https://github.com/sweharris/MMB_Utils[GitHub]. -El fichero debe estar sin fragmentar en la SD. Se puede utilizar algún programa que defragmente ficheros o sistemas de archivos FAT, o bien usar el siguiente método: +The file has to be whole across the SD (not fragmented). You can use some any program that can defrag files or FAT filesystems or use the following method: -. Formatear la primera partición de la SD en FAT16 o FAT32, pero *NO en formato rápido* (en Windows, desmarcar la casilla de formato rápido). -. Copiar a la SD el archivo `BEEB.MMB`, de modo que este sea el *PRIMER archivo* que se copia a la SD. -. Si se desea, ya se pueden copiar otros archivos a la SD para usar con otros cores, pero *SIEMPRE debe mantenerse el `BEEB.MMB`* como el primero que se copió a la SD. +. Format the first SD partition using FAT16 or FAT32, but *NOT with quick format* (when using Windos, uncheck that option). +. Copy `BEEM.MB` making sure it is the *FIRST file* being copied. +. If you want you can add any other file to the SD (e.g. for using with other cores), but keep *ALWAYS* `BEEB.MMB` as the first file copied to the card. -==== Teclado - -===== Teclas especiales y botones +==== Keyboard -Durante la ejecución del core: +===== Special keys and buttons -- `Bloq. Despl.`: cambia de modo video compuesto a VGA y viceversa. -- `Ctrl+Bloq May+1` - `Ctrl+Bloq May+4`: Configurar otros modos gráficos (60Hz, etc) -- `F10` y `Ctrl+F10`: Soft Reset -- `Ctrl+Alt+Backspace`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima de `Enter`. +While the core is running: + +- `Scroll Lock`: Switches between composite and VGA video. +- `Ctrl+Shift+1` to `Ctrl+Shift+4`: Use other graphic modes (60Hz, etc) +- `F10` and `Ctrl+F10`: Soft Reset +- `Ctrl+Alt+Backspace`: Hard reset. Backspace is the delete key, located in the top-right portion of the keyboard, above `Enter` <<< -==== Guía básica +==== Basic Guide -Una vez introducida la SD en el ZX-UNO y arrancado el core, si el archivo de `BEEB.MMB` está correctamente creado, al arrancar debería aparecer: +Once the SD card is inserted and the core running, if `BEEB.MMB` file was created correctly, on start, you should see: [source] ---- @@ -1228,21 +1205,21 @@ BASIC > ---- -Automáticamente se monta el disco 0 de la imagen, y se puede ver su contenido con el comando: +Disc 0 from the image file is mounted automatically, and you can see it's contents using the command: [source] ---- *CAT ---- -Para cargar, por ejemplo, el menú de juegos que viene en algunas imágenes disponibles en internet, usar el comando: +To load, for example, the mene available with some image files available on internet, use the command: [source] ---- CHAIN"MENU" ---- -Para cargar desde la entrada de audio: +To load using the audio input: [source] ---- @@ -1250,495 +1227,509 @@ Para cargar desde la entrada de audio: CHAIN"" ---- -Y entonces comenzar la reproducción. +And then start playing the external audio device. -Para ver una lista de los discos disponibles en el fichero `BEEB.MMB`: +To show the list of available discs inside `BEEB.MMB` file: [source] ---- *DCAT ---- -Para insertar un disco concreto en una unidad virtual concreta: +To put a particular virtual disc in a virtual drive: [source] ---- -*DIN numerodisco numerounidad +*DIN discnum drivenum ---- <<< +==== Basic Guide + +Sometimes, after starting up the core, a screen full of `@` appears. Ejecting and inserting, or only inserting, the SD card will fully start the system. + +[.text-center] +image:img/acorn.jpg[pdfwidth=70%] + +Once it's running, press `Shift+F10` to show a menu where you can choose and load Atom Software Archive programs from the card. + +<<< + === Amstrad CPC 464 -El https://es.wikipedia.org/wiki/Amstrad_CPC_464[Amstrad CPC 464] fue un ordenador doméstico creado y comercializado por la empresa británica Amstrad Consumer Plc a partir del año 1984. La versión para ZXUNO+ ha sido https://www.zxuno.com/forum/viewtopic.php?f=59&t=1346[creada por McLeod]. +The https://en.wikipedia.org/wiki/Amstrad_CPC#CPC_464[Amstrad CPC 464] was the first of a series of 8-bit home computers produced by Amstrad. -Características del core: +ZXUNO+ version has been https://www.zxuno.com/forum/viewtopic.php?f=59&t=1346[made by McLeod]. -- Amstrad CPC 464 completo: 64KB de RAM, 32Kb de ROM, interfaz de cassette, teclado y joystick. -- Soporte RGB/video compuesto y VGA (a 50Hz) -- Scanlines en modo VGA -- Soporta el joystick del primer jugador +Core features: -==== Formato de Tarjeta SD +- Full Amstrad CPC 464: 64KB RAM, 32KB ROM, tape interface, keyboard and joystick +- RGB/composite video and VGA (50Hz) support +- VGA Scanlines +- 1 player joystick support -Este core no utiliza la tarjeta SD. +==== SD card format -==== Teclado +This core does not use the SD card. -===== Teclas especiales y botones +==== Keyboard -Durante la ejecución del core: +===== Special keys and buttons -- `Supr`: `CLR`. -- `Impr. Pant` o `Windows Izquierda`: `COPY` -- `F10` y `Ctrl+F10`: Soft Reset. +During core execution: + +- `Del`: `CLR`. +- `Print Scr` or `Left Windows`: `COPY` +- `F10` and `Ctrl+F10`: Soft Reset. - `Ctrl+Alt+F5`: NMI. -- `Ctrl+Alt+Supr`: Reset. -- `Ctrl+Alt+Backspace`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima de `Enter`. -- `Fin`: Alterna entre modo color y modo fósforo verde +- `Ctrl+Alt+Del`: Reset. +- `Ctrl+Alt+Backspace`: Hard reset. Backspace is the delete key, located in the top-right portion of the keyboard, above `Enter`. +- `End`: Switches beteween color and green screen modes -==== Guía básica +==== Basic Guide -Desde BASIC, se puede cargar desde una cinta (u <<#_miniduino,otro dispositivo externo de audio>>) con el comando `RUN"`. Al contrario que en la máquina original, durante la reproducción se puede escuchar el audio de la cinta. +When using BASIC, you can load a external tape (or <<#_miniduino,other external audio device>>) with the command `RUN"`. +Unlike the original machine, you can hear the audio while playing the tape. <<< === Amstrad CPC 6128 -El https://es.wikipedia.org/wiki/Amstrad_CPC_6128[Amstrad CPC 6128] fue un ordenador doméstico, sucesor del Amstrad CPC 664 (que solo duró 6 meses en el mercado), y este, a su vez, era sucesor del Amstrad CPC 464. +The https://en.wikipedia.org/wiki/Amstrad_CPC#CPC6128[Amstrad CPC 6128] was the successor to the Amstrad CPC 664 (only produced for approximately six months), and this one, was the sucessor to the Amstrad CPC 464. -El core para ZXUNO+ de Amstrad CPC 6128 está basado en el proyecto http://www.cpcwiki.eu/index.php/FPGAmstrad[FPGAmstrad] de Renaud Hélias. +ZXUNO+ Amstrad CPC 6128 core is based on the http://www.cpcwiki.eu/index.php/FPGAmstrad[FPGAmstrad] project by Renaud Hélias. -Algunas de sus características son: +Some of its features are: -- VGA: 640x480 VGA centrado a 60Hz -- Selección de discos: El primer disco detectado se inserta en el arranque y la pulsación de una tecla hace reset y carga el siguiente +- VGA: 640x480 VGA centered at 60Hz +- Disk selection: The first disk image detected is inserted on startup, and pressing a key makes a reset and loads the next one -==== Formato de Tarjeta SD +==== SD card format -Se debe de utilizar una tarjeta SD con la primera partición en formato FAT32 (Tipo de partición `0B` Win95 FAT-32), de 4GB de tamaño máximo y 4096 bytes por cluster. +You have to use a SD card with the first partition in FAT32 format (`0B` Win95 FAT-32 Partition Type), with a maximum of 4GB in size, and 4096 bytes per cluster. -Además son necesarios los ficheros ROM siguientes (se pueden obtener http://www.cpcwiki.eu/index.php/FPGAmstrad#How_to_assemble_it[en la wiki oficial del proyecto original]) o en el https://github.com/renaudhelias/FPGAmstrad/raw/master/OS6128_BASIC1-1_AMSDOS_MAXAM.zip[repositorio de GitHub]: +You also need the following ROM files (they are available http://www.cpcwiki.eu/index.php/FPGAmstrad#How_to_assemble_it[at the original project Wiki]) or from the https://github.com/renaudhelias/FPGAmstrad/raw/master/OS6128_BASIC1-1_AMSDOS_MAXAM.zip[GitHub repository]: - `OS6128.ROM` - `BASIC1-1.ROM` - `AMSDOS.ROM` - `MAXAM.ROM` -También es recomendable incluir uno o más ficheros con imágenes de disco (`DSK`) con el software que se quiera ejecutar. +It is also recommended to copy one or more disk image files (`DSK`) with the software that you want to run. -Copiar tanto los ficheros `ROM` como los `DSK` a la raíz de la partición FAT32. +Copy all `ROM` and `DSK` files to the root directory of the FAT32 partition. -==== Teclado +==== Keyboard -===== Teclas especiales y botones +===== Special keys and buttons -Durante la ejecución del core: +During core execution: -- `Re Pág`: Hace un Reset del Amstrad y carga el siguiente archivo `DSK` en orden alfabético. -- En un teclado PS/2, sólo funciona la tecla mayúsculas del lado izquierdo del teclado. +- `Page Up`: Reset the Amstrad computer and load the next `DSK` file alphabetically +- On a PS/2 keyboard, only the left shift key works properly <<< -==== Guía básica +==== Basic Guide -Escribir el comando `CAT` para ver el contenido del fichero DSK cargado actualmente. +Use the `CAT` command to see the contents of the currently loaded DSK file. [.text-center] image:img/cpc.png[pdfwidth=70%] -Escribir el comando `RUN"` para cargar un programa del disco +Type the command `RUN"` to load a program from disk [.text-center] image:img/cpc2.png[pdfwidth=70%] -Usar la tecla `Re Pág` para hacer reset y cargar el siguiente archivo `DSK` en orden alfabético. +Press `Page Up` key to reset and load the next `DSK` file. <<< === Apple II -Está basado en el http://www.cs.columbia.edu/~sedwards/apple2fpga/[original de Stephen A. Edwards] y en https://github.com/vlait/papilio-duo/tree/master/apple2fpga-papilioduo[la adaptación de vlait a las placas Papilio]. +Based on http://www.cs.columbia.edu/~sedwards/apple2fpga/[Stephen A. Edwards Apple2fpga] and https://github.com/vlait/papilio-duo/tree/master/apple2fpga-papilioduo[vlait port for Papilio boards]. -Algunas de sus características son: +Some of its features are: -- Soporta Joystick (hasta dos botones de disparo) -- Tarjetas de expansión de RAM. 128K Saturn RAM (slot 5) + 16K Language card (slot 0). -- Scanlines en modo VGA -- Cambio de tipo de monitor entre color y blanco y negro +- Joystick Support (up to two fire butons) +- RAM expansion cards. 128K Saturn RAM (slot 5) + 16K Language card (slot 0). +- VGA Scanlines +- Can change monitor between colour and monochrome -Para más información consultar https://zxuno.com/forum/viewforum.php?f=41[el foro oficial de ZX-Uno]. +For more info check https://zxuno.com/forum/viewforum.php?f=41[ZX-Uno forum]. -==== Formato de Tarjeta SD +==== SD card formatting -La tarjeta SD ha de ser en un formato exclusivo, y por tanto no puede ser utilizada con otros cores. Está basada en imágenes de disco `NIB` concatenadas. +The SD card needs an exclusive format, so it cannot be used with other cores. It's based on concatenating `NIB` disk image file data. -Para convertir imágenes de disco en otro formato (`DSK` o `DO`), se puede utilizar la utilidad `dsk2nib`, disponible en https://guest:zxuno@https://svn.zxuno.com/svn/zxuno/cores/Apple2_spartan6/test3/roms/[el repositorio SVN de ZX-Uno] (Usuario `guest`, contraseña `zxuno`) y en https://github.com/slotek/dsk2nib[GitHub]. +To convert disk images from other format (`DSK` or `DO`), you can use `dsk2nib` utility, available in https://guest:zxuno@svn.zxuno.com/svn/zxuno/cores/Apple2_spartan6/test3/roms/[ZX-Uno SVN repository] (User `guest`, password `zxuno`) and https://github.com/slotek/dsk2nib[GitHub]. [WARNING] ==== -Este proceso borra el contenido que hubiera antes en la tarjeta SD, y no se puede deshacer. +This process can't be undone, and it will remove any content that there was previously in the SD card. ==== ===== Windows -Concatenar las imágenes (máximo 20) usando `COPY`: +Concatenate the disk images (with a maximum of 20) using `COPY`: [source,shell] ---- -COPY /B imagen1.nib + imagen2.nib + (...) + imagen20.nib apple2_20discos.img +COPY /B image1.nib + image2.nib + (...) + image20.nib apple2_20discs.img ---- -Volcar la imagen en la SD, por ejemplo, usando http://hddguru.com/software/HDD-Raw-Copy-Tool/[HDD Raw Copy Tool]. +Dump the new file to the SD card, for example, using http://hddguru.com/software/HDD-Raw-Copy-Tool/[HDD Raw Copy Tool]. -===== MacOS y Linux +===== MacOS and Linux -Concatenar las imágenes (máximo 20) usando `cat`: +Concatenate the disk images (with a maximum of 20) using `cat`: [source,shell] ---- -cat imagen1.nib imagen2.nib (...) imagen20.nib > apple2_20discos.img +cat imagen.nib image2.nib (...) image20.nib > apple2_20discs.img ---- -Volcar la imagen en la SD, usando `dd`: +Dump the new file to the SD card, using `dd`: [source,shell] ---- sudo umount /dev/... -sudo dd if=apple2_20discos.img of=/dev/... +sudo dd if=apple2_20discs.img of=/dev/... ---- -==== Teclado +==== Keyboard -===== Teclas especiales y botones +===== Special keys and buttons + +While the core is running: -Durante la ejecución del core: - -- `-` (teclado numérico): Activar o desactivar scanlines en salida VGA. -- `*` (teclado numérico): Alternar entre monitor en color y monitor en blanco y negro. -- `F1` a `F10`: Insertar la imagen de disco 1 a 10 en la tarjeta SD. Pulsar `F12` a continuación. -- `Mayús+F1` a `Mayús+F10`: Insertar la imagen de disco 11 a 20 en la tarjeta SD. Pulsar `F12` a continuación. -- `Ctrl+Alt+Backspace`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima de `Enter`. +- `/` (numeric keyboard): Enable or disable scanlines on VGA +- `*` (numeric keyboard): Change between colour monitor and black and white +- `F1` to `F10`: Insert disk image between 1 and 10 from the SD. Press `F12` afterwards. +- `Shift+F1` to `Shift+F10`: : Insert disk image between 11 and 20 from the SD. Press `F12` afterwards. +- `Ctrl+Alt+Backspace`: Hard reset. Backspace is the delete key, located in the top-right portion of the keyboard, above `Enter` - `F12`: Soft reset. <<< === Arcades -Originalmente pensados para el https://www.zxuno.com/forum/viewtopic.php?f=21&t=478[Addon Jamma para ZX-Uno] (para https://es.wikipedia.org/wiki/Japanese_Amusement_Machine_Manufacturers%27_Association[conectar en una máquina recreativa]), se trata de cores de https://es.wikipedia.org/wiki/Arcade[máquinas recreativas (o Arcade)]. Posteriormente también se crearon versiones adaptadas para ser compatibles con joysticks (por ejemplo con el addon VGA+DB9 para ZXUNO+). +Originally made for https://www.zxuno.com/forum/viewtopic.php?f=21&t=478[Zx-Uno Jamma Addon] (to https://en.wikipedia.org/wiki/Japan_Amusement_Machine_and_Marketing_Association#Connector_standards[connect inside an Arcade Machine]), there are several https://en.wikipedia.org/wiki/Arcade_game[Arcade Game] cores. Afterwards, adapted versions compatible with joysticks (like ZXUNO+ VGA+DB9 addon) were made. -Existen principalmente tres tipos: +There are three types: -- Verticales (la máquina original usaba un monitor girado 90º) -- Verticales invertidos (la máquina usaba un monitor girado 270º) -- Horizontales (la máquina original usaba un monitor en horizontal, sin girar) +- Vertical (the original machine used a monitor rotated 90º) +- Inverted Verticale (the machine used a monitor rotated 270º) +- Horizontal (the original machine used a horizontal monitor) -En el https://zxuno.com/forum/viewtopic.php?f=60&t=1870[hilo original del foro de ZX-Uno] se pueden obtener enlaces de descarga para las distintas versiones e información más detallada de cada uno de los mismos. +You can obtain download links for the different versions and more detailed information at https://zxuno.com/forum/viewtopic.php?f=60&t=1870[ZX-Uno forum]. -Señalar que existe una versión vertical de BIOS, y una https://github.com/zxdos/zxuno/blob/master/firmware/jamma.rom[ROM de Spectrum] pensada para poder cargar directamente los distintos cores Arcade. +Take note that there is a vertical BIOS version, and a special https://github.com/zxdos/zxuno/blob/master/firmware/jamma.rom[Spectrum ROM] to select and load the different Arcade Cores. -==== Teclado - -===== Teclas especiales y botones +==== Keyboard -En general, casi todos los cores tienen unas teclas y botones de control similares. +===== Special keys and buttons -Durante la ejecución: +Most of the cores have the same control keys and buttons. -- `1` y `2`: Botones de Jugador 1 y Jugador 2 -- `3` y `4`: Introducir moneda -- Teclas de cursor (o palanca de joystick): Joystick -- `Z` y `X` (o botones de disparo de joystick): Botones de disparo -- `0`: En cores verticales, activa o desactiva giro de 90º en las direcciones de los controles -- `Bloq. Despl.`: Cambia de modo video compuesto a VGA y viceversa. +Special keys that can be used while running the core: + +- `1` and `2`: Player 1 and Player 2 Buttons +- `3` and `4`: Insert Coin +- Cursor keys (or joystick stick): Joystick +- `Z` and `X` (or joystick fire buttons): Fire Buttons +- `0`: When in a vertical core, enable or disable 90º rotation of directional controls +- `Scroll Lock`: Switches between composite and VGA video modes. - `F10`: Soft Reset -- `Ctrl+Alt+Backspace`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima de `Enter` +- `Ctrl+Alt+Backspace`: Hard reset. Backspace is the delete key, located in the top-right portion of the keyboard, above `Enter`. <<< === Atari 800XL -El https://es.wikipedia.org/wiki/Atari_800XL[Atari 800XL] era un ordenador personal lanzado por Atari en la década de los 80. +https://en.wikipedia.org/wiki/Atari_8-bit_family#Newer_XL_machines[Atari 800XL] was a personal computer made by Atari in the eighties. -La versión para ZXUNO+ tiene estas características: +This core has this features: -- Memoria ampliada hasta 320K, seleccionable -- Soporte de unidad de disco (hasta 4 unidades), mediante tarjeta SD -- Soporte de cartuchos, también mediante carga por SD -- Soporte para vídeo compuesto y VGA -- Scanlines en modo VGA -- Soporte de joystick norma Atari +- 320K expanded memory +- Drive support through SD +- Cart support +- Composite video and VGA +- Scanlines (VGA mode) +- Atari joystick support -==== Formato de Tarjeta SD +==== SD card -Se debe de utilizar una tarjeta SD, con la primera partición en formato FAT32. En la raíz de la tarjeta debe haber un directorio llamado `atari800`, con dos subdirectorios: `rom` con distintas ROM a utilizar (ej: `ATARIXL.ROM`), y `user` con ficheros de disco, cartucho, etc. (ej: `ManicMin.xex`) +You need a SD card with the first partition in FAT32 format. A directory named `atari800` with two subdirectories: `rom` with ROMs to use (e.g: `ATARIXL.ROM`), and `user` with cart, disk files, etc. (e.g.: `ManicMin.xex`) -Si no estuviera ya, <<#_cores,instalar el core de Atari 800XL>> en el ZXUNO+. +See the <<#_cores,corresponding section>> for instructions of how to install the Atari 800XL core in ZXUNO+. -==== Teclado +==== Keyboard -===== Teclas especiales y botones +===== Special keys and buttons -Durante la ejecución del core: +While the core is running: -- `Bloq. Despl.`: para cambiar entre modo de video compuesto y VGA -- `-`: Activar o desactivar scanlines en modo VGA -- `*`: Alternar el tipo de máquina entre PAL y NTSC -- `Ctrl+Alt+Backspace`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima del enter +- `Scroll Lock`: change between RGB and VGA video mode +- `-`: Enable or disable scanlines in VGA mode +- `*`: Change machine type between PAL and NTSC +- `Ctrl+Alt+Backspace`: Hard reset. - `F5`: `Help` - `F6`: `Start` - `F7`: `Select` - `F9`: `Reset` -- `F11`: Cargar un disco -- `F12`: Acceder al menú de opciones -- El teclado numérico emula un joystick. Las teclas `5` y `2` sirven indistintamente para la dirección __abajo__ y `0` es el disparo +- `F11`: Load a disk +- `F12`: Show or hide the configuration menu +- The numeric keypad emulates a joystic, where `5` and `2` keys work as __down__ direction and `0` is the fire button <<< -==== Guía básica +==== Basic Guide -Pulsando `F12` se muestra el menú de configuración. Se usan las teclas de cursor y `Enter` (o bien el joystick y el botón de disparo) para elegir y seleccionar en el menú. +Pressing `F12` shows or hides the configuration menu. Cursor keys and `Enter` (or joystick and fire button) to select and choose menu options. [.text-center] image:img/a800xl.jpg[pdfwidth=70%] -En él se pueden activar, desactivar o configurar las siguientes opciones: +The following options are available: -- Acelerar la velocidad de la CPU (CPU Turbo) -- Acelerar la velocidad de lectura de los discos (Drive Turbo) -- Cambiar el tipo de Ram -- Cargar una Rom desde la SD -- Cargar un disco en la unidad 1 (Drive 1) -- Cargar un disco en la unidad 2 (Drive 2) -- Cargar un disco en la unidad 3 (Drive 3) -- Cargar un disco en la unidad 4 (Drive 4) -- Cargar un cartucho (Cart) -- Cargar la memoria desde una grabación anterior (Load Memory) -- Guardar el estado de la memoria (Save memory) -- Salir (Exit) +- CPU Turbo +- Drive Turbo +- Ram +- Rom +- Drive 1 +- Drive 2 +- Drive 3 +- Drive 4 +- Cart +- Load memory +- Save memory +- Exit <<< === Atari 2600 -La https://es.wikipedia.org/wiki/Atari_2600[Atari 2600] es una videoconsola lanzada al mercado bajo el nombre de Atari VCS (Video Computer System). +https://en.wikipedia.org/wiki/Atari_2600[Atari 2600] is a home video game console originally branded as the Atari Video Computer System (Atari VCS). -La versión para ZXUNO+ está desarrollada por Quest y DistWave.. +ZXUNO+ core version is developed by Quest and DistWave. -Algunas de las características del core son: +Some of the features of the core are: -- Dos modos de vídeo seleccionables: RGB y VGA -- Compatible con joystick +- RGB and VGA support +- Support for joysticks, keyboard, mouse and rotary encoder controls (see <<#_rotary_enoders,here>> for more information) -==== Formato de Tarjeta SD +==== SD card format -Se debe de utilizar una tarjeta SD, con la primera partición en formato FAT16, para almacenar los ficheros con las imágenes ROM que se deseen cargar. +You need a SD card with the first partition in FAT16 format to store ROM image files of games to load. -Si no estuviera ya, <<#_cores,instalar el core de Atari 2600>> en el ZXUNO+. +See the <<#_cores,corresponding section>> for instructions of how to install the Atari 2600 core in ZXUNO+. -==== Teclado +==== Keyboard -===== Teclas especiales y botones +===== Special keys and buttons -Durante la ejecución del core: +During the core execution: -- `W`, `A`, `S`, `D` o el joystick 1: Controles de dirección del jugador 1 -- `F` o el botón de disparo del joystick 1: Disparo del jugador 1 -- `I`, `J`, `K`, `L` o el joystick 2: Controles de dirección del jugador 2 -- `H` o el botón de disparo del joystick 2: Disparo del jugador 2 -- `Bloq. Despl.`: para cambiar entre modo de video compuesto y VGA -- `Ctrl+Alt+Backspace`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima del enter +- `W`, `A`, `S`, `D` or joystick 1: Directional controls for player 1 +- `F` or joystick 1 fire button: Player 1 fire button +- `I`, `J`, `K`, `L` or joystick 2: Directional controls for player 2 +- `H` or joystick 2 fire button: Player 2 fire button +- `Scroll Lock`: change between RGB and VGA video mode +- `Ctrl+Alt+Backspace`: Hard reset. <<< -==== Guía básica +==== Basic Guide -Pulsando `Esc` o el botón 2 del joystick se muestra el menú de configuración. Se usan las teclas de cursor y `Enter` para elegir y seleccionar en el menú. +Pressing `Esc` or joystick button 2 shows or hides the configuration menu. Cursor keys and `Enter` to select and choose menu options. [.text-center] image:img/a2600uno.jpg[pdfwidth=70%] -En él se pueden activar, desactivar o configurar las siguientes opciones: +The following options are available: -- Reiniciar el core (Reset) -- Línea de exploración (Scanlines) -- Modo RGB (PAL/NTSC) -- Color (Color) -- Dificultad A (Difficulty A) -- Dificultad B (Difficulty B) +- Reset core +- Scanlines +- RGB Mode (PAL/NTSC) +- Color +- Difficulty A +- Difficulty B - Select - Start -- Cargar ROM (Load ROM) -- Salir del menú (Exit) +- Load ROM +- Exit <<< === Camputers Lynx +https://en.wikipedia.org/wiki/Camputers_Lynx[The Lynx] was an 8-bit British home computer that was first released in early 1983 as a 48kB model.Several models were available with 48kB, 96kB or 128 kB RAM. -El https://es.wikipedia.org/wiki/Camputers_Lynx[Lynx] fue un ordenador doméstico británico de 8 bits lanzado a principios de 1983 por la compañía Camputers. Se lanzaron en total tres modelos, con 48kB, 96kB o 128kB de RAM. +The ZXUNO+ core has these features: -La versión para ZXUNO+ tiene estas características: +- 48kB and 96 kB modes +- Optional Scorpion ROM +- Load from a external audio device +- Joystick support +- Only RGB/Composite Video out -- Modos 48kB y 96 kB -- ROM Scorpion opcional -- Carga usando la entrada de audio -- Soporte para joystick -- Sólo funciona con RGB/Vídeo Compuesto +==== SD card format -==== Formato de Tarjeta SD +This core does not use the SD card -Este core no utiliza la tarjeta SD. +==== Keyboard -==== Teclado +===== Special keys and buttons -===== Teclas especiales y botones +While running the core: -Durante la ejecución del core: - -- `F6`: Alterna entre el modo 48kB y el modo 96kB (por defecto) -- `F7`: Alterna entre activar o desactivar la ROM Scorpio (activa por defecto) -- `F8`: Activar o desactivar el tener en cuenta los bits 2 y 3 del puerto $80 (señal CAS del banco 2), para que se vean bien los juegos de Level 9.- `Ctrl+Alt+Supr`: Reset -- `Ctrl+Alt+Backspace`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima del enter +- `F6`: Switch between 48kB mode and 96kB mode (default) +- `F7`: Enable or disable Scorpio ROM +- `F8`: Switch the option to consider port $80 bits 2 and 3, so that Level 9 games are displayed properly. +- `Ctrl+Alt+Del`: Reset. +- `Ctrl+Alt+Backspace`: Hard reset. Backspace is the delete key, located in the top-right portion of the keyboard, above `Enter`. <<< -==== Guía básica +==== Basic Guide [.text-center] image:img/lynx.png[pdfwidth=70%] -Desde BASIC, se suele cargar desde una cinta (u <<#_miniduino,otro dispositivo externo de audio>>) con la secuencia de comandos: +From within BASIC, you can load from a external tape (or <<#_miniduino,other external audio device>>) with commands like: [source] ---- TAPE n -LOAD "NOMBRE" +LOAD "NAME" ---- -Donde `n` es un número (entre 1 y 5), según como se haya realizado la grabación, y `NOMBRE` es, obligatoriamente el nombre a cargar desde la cinta. +Where `n` is a number (between 1 and 5), and `NAME` is mandatory, and the name of the program to load. -Si no se sabe el nombre a cargar, se puede averiguar con la misma secuencia de comandos, pero escribiendo `LOAD ""`. +If you don't know the name to load, you can guess with the same command sequence, but writing `LOAD ""`. -Para ficheros binarios, se debe usar `MLOAD` en vez de `LOAD`. +Binary files are loaded with `MLOAD` instead of `LOAD`. [NOTE] ==== -El software Maxduino incorporando en <<<<#_miniduino,el miniduino>> no tiene, por el momento, soporte para los archivos de cinta `TAP` de Lynx. +Maxduino, which is used in <<#_miniduino,miniduino>> does not, at this moment, native support for Lynx tape files. ==== -Es posible utilizar programas como <<#_conversión_a_fichero_de_audio,Lynx2Wav>> con los ficheros `TAP` de cinta de Lynx. Los ficheros de audio obtenidos se pueden embeber a su vez dentro de ficheros TSX o TZX con herramientas como <<#_creación_de_ficheros_tzx_o_tsx_desde_otros_formatos,MakeTSX o RetroConverter>>. +You can use programs like <<#_audio_file_conversion,Lynx2Wav>> with Lynx `TAP` files. The resulting audio files can be embedded inside of TSX or TZX with tools like <<#_creación_de_ficheros_tzx_o_tsx_desde_otros_formatos,MakeTSX or RetroConverter>>. -El script http://retrowiki.es/viewtopic.php?f=31&t=200036835[lince] facilita todo este proceso, permitiendo crear directamente ficheros `TZX` compatibles con Maxduino desde ficheros `TAP` de Lynx. +The http://retrowiki.es/viewtopic.php?f=31&t=200036835[lince] script makes all this process easier, creating directly Maxduino `TZX` compatible files from Lynx `TAP` files. <<< === ColecoVision -https://es.wikipedia.org/wiki/ColecoVision[ColecoVision] es una consola de videojuegos lanzada al mercado por la empresa Coleco. +https://en.wikipedia.org/wiki/ColecoVision[ColecoVision] is Coleco Industries' home video-game console that was released in August 1982. -La versión para ZUNO+ está basada el proyecto https://github.com/fbelavenuto/colecofpga[de Fabio Belavenuto]. +ZXUNO+ core is based on https://github.com/fbelavenuto/colecofpga[Fabio Belavenuto's project]. -Algunas de las características del core son: +Some features of this core are: -- La ROM de la BIOS se carga desde la tarjeta SD -- Soporta ROM multicartucho, que también se carga desde la SD -- Soporte para Joystick +- BIOS ROM is loaded from SD card +- Supports multicart ROM, also loaded from SD +- Only works with VGA -==== Formato de Tarjeta SD +==== SD card format -Se debe de utilizar una tarjeta SD, con la primera partición en formato FAT16, para almacenar los ficheros con las imágenes ROM y otros archivos necesarios. Los archivos se pueden descargar desde la https://github.com/fbelavenuto/colecofpga/tree/master/SD_Card[web del proyecto original en GitHub]. +You need a SD card with the first partition in FAT16 format to store ROM image files of the games to load and other needed files. These can be downloaded from https://github.com/fbelavenuto/colecofpga/tree/master/SD_Card[the original project in GitHub]. -Si no estuviera ya, <<#_cores,instalar el core de ColecoVision>> en el ZXUNO+. +See the <<#_cores,corresponding section>> for instructions of how to install the ColecoVision core in ZXUNO+. -==== Teclado +==== Keyboard -===== Teclas especiales y botones +===== Special keys and buttons -Durante la ejecución del core: +While the core is running: -- Cursor o `Q`, `A`, `E`, `R` o el joystick 1: Controles de dirección del jugador 1 -- `Z` o el botón de joystick 1: Botón de disparo 1 del jugador 1 -- `U`, `J`, `O`, `P` o el joystick 2: Controles de dirección del jugador 2 -- `M` o el botón de joystick 2: Botón de disparo 1 del jugador 2 -- `X` o el botón secundario de joystick 1: Botón de disparo 2 del jugador 1 y del jugador 2 -- `0` a `9`: Botones del 0 al 9 del jugador 1 y el jugador 2 -- `T`: Botón '*' -- `Y`: Botón '#' +- Cursor or `Q`, `A`, `E`, `R` or joystick 1: Directional controls for player 1 +- `Z` or joystick 1 main fire button: Fire Button 1 for player 1 +- `U`, `J`, `O`, `P` or joystick 2: Directional controls for player 2 +- `M` or joystick 2 main fire button: Fire button 1 for player 2 +- `X` or joystick 1 secondary fire button: Fire button 1 for player 1 and player 2 +- `0` to `9`: Button 0 to 9 for player 1 and player 2 +- `T`: Button '*' +- `Y`: Button '#' - 'Esc': Soft Reset <<< -==== Guía básica +==== Basic Guide -Al iniciar, la ROM de la BIOS se carga desde la tarjeta SD, así como la ROM multicartucho. +On startup, BIOS ROM is loaded from the card, and then the multicart ROM. [.text-center] image:img/colecouno.jpg[pdfwidth=70%] -En el menú multicartucho, usar los controles de dirección para elegir la ROM a cargar, y luego el botón de disparo 1 para cargar la ROM elegida. Pulsando `Esc` se reinicia el core y se vuelve a cargar el menú de selección de ROM. +At multicart menu, use the directional controls to choose one ROM, and then fire button 1 to load. Pressing 'Esc' restarts the core and loads the ROM selection menu again. <<< === Commodore 16 -El https://es.wikipedia.org/wiki/Commodore_16[Commodore 16] fue un ordenador doméstico fabricado por la empresa Commodore International en 1984. +The https://en.wikipedia.org/wiki/Commodore_16[Commodore 16] was a home computer made by Commodore International, released in 1984 and intended to be an entry-level computer to replace the Commodre VIC-20. -El core de ZXUNO+ está basado en el https://hackaday.io/project/11460-fpgated[proyecto FPGATED de István Hegedus], con algunos pequeños cambios y mejoras, como la lectura de cassetes reales por audio. +The ZXUNO+ core is based on https://hackaday.io/project/11460-fpgated[FPGATED project from István Hegedus], with some changes and upgrades, like loading tapes from audio sources. -Características: +Featutres: -- Implementa un Commodore 16 PAL ampliado a 64K de RAM -- Disquetera 1541, redirigida a SD y en RAW. Sólo lectura (compatible con imágenes .D64) -- Chip TED de FPGATED -- Soporte de joystick, tanto real (conector DB9) como emulado en teclado numérico -- Switch VGA 50Hz / RGB-Compuesto -- Scanlines en modo VGA -- Carga de cinta usando la entrada de audio -- Cambio de polaridad de la señal de entrada de audio -- ROM Kernal PAL -5 modificada para evitar la espera de pulsación tras la cabecera en las cargas de cassette -- Mezcla de audio de salida compuesta por el feedback de audio del cassete (más bajo) y el audio principal del chip TED -- LED testigo de lectura de la 1541 y también del estado de la polaridad de EAR +- Commodore 16 PAL expanded to 64K RAM +- 1541 Floppy, redirected to SD RAW. Read only (.D64 image files) +- Chip TED from FPGATED +- Joystick support, DB9 connector and numeric keyboard emulation +- VGA 50Hz and RGB-Composite +- VGA Scanlines +- Tape loading using the audio input +- Audio input signal polarity change support +- ROM Kernal PAL -5 modded to avoid the key press between header loading while loading from tape +- Audio out mix including audio tape feedback and TED audio +- LED used as 1541 reading activity and audio input polarity status <<< -==== Formato de Tarjeta SD +==== SD card format -La tarjeta SD ha de ser en un formato exclusivo, y por tanto no puede ser utilizada con otros cores. Está basada en imágenes de disco `D64` concatenadas, en bloques de 256K. Descargar el fichero `dummyto256.bin` disponible en https://github.com/zxdos/zxuno/raw/master/cores/C64/DiskRawC64.zip[el repositorio oficial de ZX-Uno]. +The SD card needs an exclusive format, which cannot be used with other cores. It's based on `D64` concatenated images, insed 256K blocks. Downloead the file `dummyto256.bin` available at https://github.com/zxdos/zxuno/raw/master/cores/C64/DiskRawC64.zip[ZX-Uno official repository]. -Para incluir varios ficheros `PRG` en una imagen de disco `D64`, se puede utilizar el https://www.zxuno.com/forum/viewtopic.php?f=55&t=1223#p14165[programa DirMaster] para Windows, creando una imagen cuyo primer programa sea `FB16.PRG` (más detalles en https://www.zxuno.com/forum/viewtopic.php?f=58&t=1256[el foro de ZX-Uno]). +To include several `PRG` files inside a `D64` disk image file, you can use https://www.zxuno.com/forum/viewtopic.php?f=55&t=1223#p14165[DirMaster] for Windows, making an image with `FB16.PRG` as the first program (more info https://www.zxuno.com/forum/viewtopic.php?f=58&t=1256[at ZX-Uno forum]). [TIP] ==== -El formato RAW de SD es compatible con el que usa también el core de Commodore 64, así que se puede utilizar una misma tarjeta para los dos, incluyendo imágenes de disco con programas para los dos sistemas. +The SD RAW format is compatible with the one used with Commodore 64 core, so you can use the same card, including disk images for both systems. ==== [WARNING] ==== -Este proceso borra el contenido que hubiera antes en la tarjeta SD, y no se puede deshacer. +This process can't be undone, and it will remove any content that there was previously in the SD card. ==== ===== Windows -Concatenar las imágenes usando `COPY`: +Concatenate the disk images using `COPY`: [source,shell] ---- COPY /B imagen1.d64 + dummyto256.bin + imagen2.d64 + dummyto256.bin + (...) c16rawsd.img ---- -Volcar la imagen en la SD, por ejemplo, usando http://hddguru.com/software/HDD-Raw-Copy-Tool/[HDD Raw Copy Tool]. +Dump the new file to the SD card, for example, using http://hddguru.com/software/HDD-Raw-Copy-Tool/[HDD Raw Copy Tool]. -===== MacOS y Linux +===== MacOS and Linux -Concatenar las imágenes usando `cat`: +Concatenate the disk images using `cat`: [source,shell] ---- cat imagen1.d64 dummyto256.bin imagen2.d64 dummyto256.bin (...) > c16rawsd.img ---- -Volcar la imagen en la SD, usando `dd`: +Dump the new file to the SD card, using `dd`: [source,shell] ---- @@ -1746,103 +1737,104 @@ sudo umount /dev/... sudo dd if=c16rawsd.img of=/dev/... ---- -Si no estuviera ya, <<#_cores,instalar el core de Commodore 16>> en el ZXUNO+. +If it wasn't already, <<#_cores,install Commodore 16 core>> into ZXUNO+. <<< -==== Teclado +==== Keyboard -===== Teclas especiales y botones +===== Special keys and buttons -Durante la ejecución del core: +While the core is running: - `Esc`: Esc - `Tab`: RUN/STOP -- `Windows izquierda` = Commodore -- Teclado Numérico: Joystick emulado -- `F1` a `F3`: F1 a F3 -- `Bloq. Num` o `F4`: HELP -- `Insert`: Seleccionar el primer disco de la tarjeta SD -- `Re.Pag`: Seleccionar el siguiente disco -- `Av.Pag`: Seleccionar el disco anterior -- `Ctrl+Re.Pag`: Avanzar 10 discos -- `Ctrl+Av.Pag`: Retroceder 10 discos -- `+` del teclado numérico: Cambiar la polaridad de la entrada de audio -- `-` del teclado numérico: Activar o desactivar scanlines en modo VGA -- `Bloq. Desp`: para cambiar entre modo de video compuesto y VGA -- `F11`: Seleccionar la asignación del joystick al puerto 0 o al puerto 1 -- `F12`: Reset -- `Ctrl+Alt+Backspace`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima del enter +- `Left Windows` = Commodore +- Numeric Keyboard: Emulated Joystick +- `F1` to `F3`: F1 to F3 +- `Num Lock` or `F4`: HELP +- `Insert`: Select the first disk in the SD card +- `Page Up`: Select the next disk +- `Page Down`: Select the previous disk +- `Ctrl+Page Up`: Go 10 disks forward +- `Ctrl+Page Down`: Go 10 disks back +- `+`: Change audio input polarity +- `-`: Enable or disable scanlines in VGA mode +- `Scroll Lock`: change between RGB and VGA video mode +- `F11`: Change joystick between port 0 and port 1 +- `F12`: Soft Reset +- `Ctrl+Alt+Backspace`: Hard reset. -==== Guía básica +==== Basic Guide -Desde BASIC, se puede cargar desde una cinta (u <<#_miniduino,otro dispositivo externo de audio>>) con el comando `LOAD`. Una vez finalizadada la carga, escribir `RUN` y pulsar `ENTER` si fuese necesario. +From within BASIC, you can load from a external tape (or <<#_miniduino,other external audio device>>) with the command `LOAD`. One it's finished, type `RUN` and press `ENTER` if needed. -Para listar el directorio del disco seleccionado, pulsar `F3` o introducir el comando `DIRECTORY`. Para cargar un fichero del disco, usar el comando `DLOAD""` y luego, normalmente, `RUN`. +To show the contents of the current disk, press `F3` or use the command `DIRECTORY`. To load a file from disk use the command `DLOAD""` and then, usually, `RUN`. -Para cargar rápidamente el primer fichero `PRG` de un disco pulsar `Mayús+TAB` o usar el comando `DLOAD"*"`. +To load the first `PRG` file of a disk, press `Shit+TAB` or use the commadn `DLOAD"*"`. <<< === Commodore 64 -Commodore 64 (C64, CBM 64/CBM64, C=64,C-64, VIC-641​) era una https://es.wikipedia.org/wiki/Commodore_64[computadora doméstica de 8 bits] que fue desarrollada por Commodore International. +The Commodore 64, (C64, CBM 64/CBM64, C=64,C-64, VIC-641​), was an https://en.wikipedia.org/wiki/Commodore_64[[8-bit home computer] introduced in January 1982 by Commodore International. -El core de ZXUNO+ está desarrollado por Quest. +The ZXUNO+ core has been made by Quest. -Características: +Features: -- Commodore 64 PAL con 64K de RAM -- Disquetera 1541 completa, redirigida a SD y en RAW. Sólo lectura. -- JiffyDOS opcional tanto para la 1541 como para el Commodore 64. Esto acelera muy notablemente las cargas. -- Chip de sonido SID -- Soporte de joystick, tanto real (norma Atari, SMS, megadrive...) como emulado en pad numérico +- PAL Commodore 64 with 64K RAM +- 1541 Floppy, redirected to SD RAW. Read only +- Optional JiffyDOS either for the 1541 or for the Commodore 64. This speeds up loading +- SID sound chip +- Joystick support: physical (Atari, SMS, Megadrive...) and emulation with the numeric keyboard - Switch VGA 50Hz / RGB-Compuesto -- Scanlines en modo VGA -- Carga de cinta usando la entrada de audio -- Cambio de polaridad de la señal de entrada de audio -- Kernel modificado para evitar la espera de pulsación tras la cabecera en las cargas de cassette. -- LED testigo de lectura de la disquetera 1541. +- VGA 50Hz and RGB-Composite +- VGA Scanlines +- Tape loading using the audio input +- Audio input signal polarity change support +- Modded kernel to avoid the key press after header loading when loading from tape +- LED used as 1541 reading activity <<< -==== Formato de Tarjeta SD +==== SD card format -La tarjeta SD ha de ser en un formato exclusivo, y por tanto no puede ser utilizada con otros cores. Está basada en imágenes de disco `D64` concatenadas, en bloques de 256K. Descargar el fichero `dummyto256.bin` disponible en https://github.com/zxdos/zxuno/raw/master/cores/C64/DiskRawC64.zip[el repositorio oficial de ZX-Uno]. +The SD card needs an exclusive format, which cannot be used with other cores. It's based on `D64` concatenated images, insed 256K blocks. Downloead the file `dummyto256.bin` available at https://github.com/zxdos/zxuno/raw/master/cores/C64/DiskRawC64.zip[ZX-Uno official repository]. -Para incluir varios ficheros `PRG` en una imagen de disco `D64`, se puede utilizar el https://www.zxuno.com/forum/viewtopic.php?f=55&t=1223#p14165[programa DirMaster] para Windows, creando una imagen cuyo primer programa sea `FB64.PRG`. +To include several `PRG` files inside a `D64` disk image file, you can use https://www.zxuno.com/forum/viewtopic.php?f=55&t=1223#p14165[DirMaster] for Windows, making an image with `FB64.PRG` as the first program. [TIP] ==== -El formato RAW de SD es compatible con el que usa también el core de Commodore 16, así que se puede utilizar una misma tarjeta para los dos, incluyendo imágenes de disco con programas para los dos sistemas. +The SD RAW format is compatible with the one used with Commodore 64 core, so you can use the same card, including disk images for both systems. ==== [WARNING] ==== -Este proceso borra el contenido que hubiera antes en la tarjeta SD, y no se puede deshacer. +This process can't be undone, and it will remove any content that there was previously in the SD card. ==== ===== Windows -Concatenar las imágenes usando `COPY`: +Concatenate the disk images using `COPY`: [source,shell] ---- COPY /B imagen1.d64 + dummyto256.bin + imagen2.d64 + dummyto256.bin + (...) c64rawsd.img ---- -Volcar la imagen en la SD, por ejemplo, usando http://hddguru.com/software/HDD-Raw-Copy-Tool/[HDD Raw Copy Tool]. +Dump the new file to the SD card, for example, using http://hddguru.com/software/HDD-Raw-Copy-Tool/[HDD Raw Copy Tool]. -===== MacOS y Linux +===== MacOS and Linux -Concatenar las imágenes usando `cat`: +Concatenate the disk images using `cat`: [source,shell] ---- cat imagen1.d64 dummyto256.bin imagen2.d64 dummyto256.bin (...) > c64rawsd.img ---- -Volcar la imagen en la SD, usando `dd`: +Dump the new file to the SD card, using `dd`: [source,shell] ---- @@ -1850,298 +1842,299 @@ sudo umount /dev/... sudo dd if=c64rawsd.img of=/dev/... ---- -Si no estuviera ya, <<#_cores,instalar el core de Commodore 64>> en el ZXUNO+. +If it wasn't already, <<#_cores,install Commodore 64 core>> into ZXUNO+. <<< -==== Teclado +==== Keyboard -===== Teclas especiales y botones +===== Special keys and buttons Durante la ejecución del core: +While the core is running: + - `Esc`: Start/Stop - `Tab`: RUN/STOP - `Alt` = Commodore -- Teclado Numérico: Joystick emulado -- `F1` a `F8`: F1 a F8 -- `F9`: Tecla del símbolo de la libra -- `F10`: Tecla del símbolo `+` -- `Insert`: Seleccionar el primer disco de la tarjeta SD -- `Re.Pag`: Seleccionar el siguiente disco -- `Av.Pag`: Seleccionar el disco anterior -- `Ctrl+Re.Pag`: Avanzar 10 discos -- `Ctrl+Av.Pag`: Retroceder 10 discos -- `+` del teclado numérico: Cambiar la polaridad de la entrada de audio -- `-` del teclado numérico: Activar o desactivar scanlines en modo VGA -- `Bloq. Desp`: para cambiar entre modo de video compuesto y VGA -- `Fin` = Cambiar paleta de colores -- `F11`: Rotar entre puertos de joystick -- `F12`: Reset modo JiffyDOS -- `Ctrl+F12`: Reset modo ROM C64 original (para carga de cintas) -- `Ctrl+Alt+Backspace`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima del enter +- Numeric Keyboard: Emulated Joystick +- `F1` to `F8`: F1 to F8 +- `F9`: Pound symbol key +- `F10`: `+` symbol key +- `Insert`: Select the first disk in the SD card +- `Page Up`: Select the next disk +- `Page Down`: Select the previous disk +- `Ctrl+Page Up`: Go 10 disks forward +- `Ctrl+Page Down`: Go 10 disks back +- `+`: Change audio input polarity +- `-`: Enable or disable scanlines in VGA mode +- `Scroll Lock`: change between RGB and VGA video mode +- `End`: Change the colour palette +- `F11`: Change joystick port behaviour +- `Ctrl+F12`: Soft Reset to JyffyDOS mode +- `Ctrl+F12`: Soft Reset to original C64 ROM mode (to load from tape) +- `Ctrl+Alt+Backspace`: Hard reset. <<< -==== Guía básica +==== Basic Guide -Desde BASIC, se puede cargar desde una cinta (u <<#_miniduino,otro dispositivo externo de audio>>) con el comando `LOAD`. Una vez finalizadada la carga, escribir `RUN` y pulsar `ENTER` si fuese necesario. +From within BASIC, you can load from a external tape (or <<#_miniduino,other external audio device>>) with the command `LOAD`. One it's finished, type `RUN` and press `ENTER` if needed. -Para cargar desde un disco, habitualmente, se puede pulsar `Mayus+Esc` o bien escribir `LOAD "*",8,1` y pulsar `Enter`. Una vez aparezca `READY` en la pantalla, escribir `RUN` y pulsar `Enter` para ejecutar el programa. +To show the contents of the current disk, press `Shift+Esc` or use the command `LOAD "*",8,1`. Once you see READY on screen, use the command `RUN`. -Si el disco tuviera varios programas, usar `F1` para listar el contenido, o bien escribir `LOAD "$"` y pulsar `Enter`. A continuación, escribir `LIST`, y pulsar `Enter`, para ver una lista con los archivos dentro del disco. +If the disk has more than one program, press `F1` or use the command `LOAD "$"`. Then use the command `LIST` to see a list of the files in the disk. -Ahora, para cargar el archivo deseado, escribir `LOAD "",8` (donde `` es el nombre del archivo a cargar) y pulsar `Enter`. Una vez aparezca `READY` en la pantalla, escribir `RUN` y pulsar `Enter` para ejecutar el programa. Si esto no funcionase, probar con el comando `LOAD "",8,1`. +Now, to load a specific file, use the command `LOAD "",8` (where `` is the name of the file to load). When you see `READY`, use the command `RUN`. Sometimes, this may not work, in this case, try to load with the command `LOAD "",8,1`. <<< === Commodore PET -El https://en.wikipedia.org/wiki/Commodore_PET[Commodore PET (Personal Electronic Transactor)] fue una línea de ordenadores domésticos producida por Commodore a partir de 1977. +The https://es.wikipedia.org/wiki/Commodore_PET[Commodore PET (Personal Electronic Transactor)] was a line of personal computers produced starting in 1977 by Commodore International. -La versión para ZX-Uno ha sido https://www.zxuno.com/forum/viewtopic.php?f=50&t=683&start=20[desarrollada por Jepalza], basada en el proyecto https://www.skibo.net/projects/pet2001fpga/[pet2001fpga]. +The ZX-Uno version has been https://www.zxuno.com/forum/viewtopic.php?f=50&t=683&start=20[made by Jepalza], based on the https://www.skibo.net/projects/pet2001fpga/[pet2001fpga] project. -Características: +Features: -- Carga usando la entrada de audio -- Sólo funciona en VGA +- Tape loading using the audio input +- Only works on VGA -==== Formato de Tarjeta SD +==== SD card format -Este core no utiliza la tarjeta SD. +This core does not use the SD card -==== Teclado +==== Keyboard -El teclado está con la distribución en inglés. +===== Special keys and buttons -===== Teclas especiales y botones +While running the core: -Durante la ejecución del core: +- `F1`: Cancel tape loading +- `Alt`: Type using graphic mode -- `F1`: Cancelar carga desde cinta -- `Alt`: Permite escribir en modo gráfico +==== Basic Guide -==== Guía básica - -Se puede cargar desde una cinta (u otro dispositivo externo de audio) con el comando `LOAD`. Una vez finalizadada la carga, normalmente, se ha de escribir `RUN` y pulsar `ENTER`. +You can load from a external tape (or other external audio device) with the command `LOAD`. One it's finished, type `RUN` and press `ENTER` if needed. [NOTE] ==== -El software Maxduino incorporando en <<<<#_miniduino,el miniduino>> no tiene, por el momento, soporte para los archivos de cinta de Commodore PET. +Maxduino, which is used in <<<<#_miniduino,miniduino>> does not, at this moment, support for Commodore PET tape files. ==== [TIP] ==== -Es posible utilizar programas como <<#_conversión_a_fichero_de_audio,Audiotap>> con los ficheros `TAP` de cinta de Commodore. +You can use programs like <<#_audio_file_conversion,Audiotap>> with Commodore `TAP` files. ==== <<< === Commodore VIC-20 -El https://es.wikipedia.org/wiki/Commodore_VIC-20[Commodore VIC-20] (Commodore VC20 en Alemania, VIC-1001 en Japón) fue un ordenador doméstico de 8 bits fabricado y diseñado por Commodore Business Machines, lanzado en junio de 1980, cerca de 3 años después del Commodore PET. +The https://en.wikipedia.org/wiki/Commodore_VIC-20[Commodore VIC-20] (VC-20 in Germany and VIC-1001 in Japan) was an 8-bit home computer sold by Commodore Business Machines. The VIC-20 was announced in 1980, roughly three years after the Commodore PET. -La versión para ZX-Uno ha sido desarrollada por McLeod y Quest +The ZX-Uno version has been made by McLeod and Quest -Características principales: +Main features: -- Expansión de 32K de RAM. Para mayor compatibilidad se puede desactivar. -- Carga usando la entrada de audio -- Soporte para video compuesto y VGA -- Soporte de joystick +- 32K RAM expansion. It can be disabled for greater compatibility +- Tape loading using the audio input +- Audio input signal polarity change support +- Composite video and VGA support +- Joystick support -==== Formato de Tarjeta SD +==== SD card format -Este core no utiliza la tarjeta SD. +This core does not use the SD card -==== Teclado +==== Keyboard -===== Teclas especiales y botones +===== Special keys and buttons -Durante la ejecución del core: +While the core is running: -- `F9` a `F11`: Cargar cartuchos incorporados al core -- `-` del teclado numérico: Cambiar la polaridad de la entrada de audio. El LED rojo se enciende cuando la polaridad está invertida -- `Bloq. Desp`: para cambiar entre modo de video compuesto y VGA -- `F11`: Seleccionar la asignación del joystick al puerto 0 o al puerto 1 -- `Bloq. Num`: Reset desactivando la ampliación de memoria de 32K (activa por defecto) -- `F12`: Reset activando la ampliación de memoria -- `Ctrl+Alt+Backspace`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima del enter +- `F9` to `F11`: Load cartridges embedded in the core +- Numeric keyboard `-`: Change audio input polarity. The red LED is enable when inverted. +- `Scroll Lock`: To switch between composite video and VGA +- `F11`: Swtich the joystick mapping between port 0 or port 1 +- `Num Lock`: Reset disabling the 32K memory expansion (enabled by default) +- `F12`: Reset enabling the memory expansion +- `Ctrl+Alt+Backspace`: Hard reset. Backspace is the delete key, located in the top-right portion of the keyboard, above `Enter` -==== Guía básica +==== Basic Guide -Se puede cargar desde una cinta (u otro dispositivo externo de audio) con el comando `LOAD`. Una vez finalizadada la carga, normalmente, se ha de escribir `RUN` y pulsar `ENTER`. +You can load from a external tape (or other external audio device) with the command `LOAD`. One it's finished, type `RUN` and press `ENTER` if needed. [NOTE] ==== -El software Maxduino incorporando en <<<<#_miniduino,el miniduino>> no tiene, por el momento, soporte para los archivos de cinta de Commodore VIC-20. +Maxduino, which is used in <<#_miniduino,miniduino>> does not, at this moment, support for Commodore VIC-20 tape files. ==== [TIP] ==== -Es posible utilizar programas como <<#_conversión_a_fichero_de_audio,Audiotap>> con los ficheros `TAP` de cinta de Commodore. +You can use programs like <<#_audio_file_conversion,Audiotap>> with Commodore `TAP` files. ==== <<< === Jupiter ACE -El https://es.wikipedia.org/wiki/Jupiter_Ace[Jupiter ACE] fue un microordenador británico lanzado al mercado en 1982 por la empresa Jupiter Cantab. +The https://en.wikipedia.org/wiki/Jupiter_Ace[Jupiter ACE] was a british micro computer produced by Jupiter Cantab in the early 1980s. -El core para ZX-Uno ha sido desarrollado por McLeod y mejorado por Azesmbog, y tiene, entre otras, las siguientes características: +The ZX-Uno core has been developed by McLeod and enhanced by Azesmbog, and has, amongst others, the following features: -- Soporte para carga desde dispositivos de audio externo -- Soporte de acceso a la tarjeta SD (implementando https://zx-pk.ru/threads/29892-sd-karta-i-sdos-dlya-8i-bitnykh-pk.html[SDOS]) +- Tape loading using the audio input +- Tape loading from the SD card (with https://zx-pk.ru/threads/29892-sd-karta-i-sdos-dlya-8i-bitnykh-pk.html[SDOS]) -==== Formato de Tarjeta SD +==== SD card format -Se puede utilizar una tarjeta SD, con la primera partición en formato FAT16, para almacenar ficheros en formato `.TAP` de Jupiter ACE. Estos se pueden conseguir, por ejemplo, en la web de https://www.jupiter-ace.co.uk/index.html[Jupiter ACE Archive]. +You can use a SD card with the first partition in FAT16 format, where you can store Jupiter ACE `.TAP` files, which you can get, for exampel at the https://www.jupiter-ace.co.uk/index.html[Jupiter ACE Archive] website. -==== Teclado +==== Keyboard -===== Teclas especiales y botones +===== Special keys and buttons -Durante la ejecución del core: +While the core is running: -- `F1` a `F4`: Modos Turbo +- `F1` ti `F4`: Turbo Modes - `F12`: Soft Reset - `Ctrl+Alt+Supr`: Reset -- `Ctrl+Alt+Backspace`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima del enter +- `Ctrl+Alt+Backspace`: Hard reset. Backspace is the delete key, located in the top-right portion of the keyboard, above `Enter` -==== Guía básica +==== Basic Guide -Desde BASIC, se puede cargar desde una cinta (u <<#_miniduino,otro dispositivo externo de audio>>) con el comando `LOAD `. +From within BASIC, you can load from a external tape (or <<#_miniduino,other external audio device>>) with the comand `LOAD `. [CAUTION] ==== -Los ficheros `TAP` de Jupiter ACE son diferentes de los de ZX Spectrum, y, para poder utilizarse con miniduino, han de ser convertidos previamente a `TZX` con la utilidad `acetap2zx` disponible en el https://guest:zxuno@svn.zxuno.com/svn/zxuno/software/jupiter_ace/utils[repositorio de ZX-Uno] (Usuario `guest`, contraseña `zxuno`). +Jupiter ACE `TAP` files are different from the ZX Spectrum ones, so, to use then with a miniduino, they have to be converted previously to `TZX` with the `acetap2zx` utility available at https://guest:zxuno@svn.zxuno.com/svn/zxuno/software/jupiter_ace/utils[ZX-Uno repository] (User `guest`, password `zxuno`). ==== -Para cargar ficheros de cinta desde la tarjeta SD, se debe acceder a SDOS escribiendo +To load tape files from the SD card, you have to acces first to SDOS typing [source] ---- 61440 call ---- -Ahora, con instrucciones como `CD`, `DIR` se puede llegar hasta el directorio donde se encuentre el fichero `TAP` a cargar. Para cargar un fichero de cinta `.TAP` se tiene que escribir sólo el nombre, sin la extensión (por ejemplo, para un fichero `JUEGO.TAP` se debe escribir `JUEGO`). +After that, with instructions like `CD` and `DIR` you can access where the `TAP` file to load is located. Then, to load a `.TAP` file, you only have to type the name, without extension (for example, for a file named `GAME.TAP` you have to type `GAME`). [TIP] ==== -Todos los comandos de SDOS se deben escribir en letras mayúsculas. +All SDOS commands have to be typed in uppercase. ==== -Una vez la cinta ha cargado, escribir el comando necesario para iniciar el programa. +Once the tape has finished loading, type the corresponding command to start the program. [NOTE] ==== -En lugar de BASIC como otros sistemas, el Jupiter ACE utiliza https://es.wikipedia.org/wiki/Forth[Forth]. Para ver los comandos disponibles (incluyendo los que inician un programa cargado desde cinta), se tiene que utilizar `vlist`. +Instead of BASIC like other systems, Jupiter ACE uses https://en.wikipedia.org/wiki/Forth[Forth]. To see the commands currently available (including those that will start a program loaded from tape, you have to type `vlist`. ==== <<< === MSX -MSX1FPGA es un proyecto para clonar MSX1 en una FPGA. El desarrollo original es de Fabio Belavenuto y se encuentra disponible https://github.com/fbelavenuto/msx1fpga[en GitHub]. +MSX1FPGA is a project to clone MSX1 in FPGA. The original development is by Fabio Belavenuto and is available https://github.com/fbelavenuto/msx1fpga[at GitHub]. -Algunas de sus características son: +Some of its features are: -- MSX1 a 50Hz o 60Hz; -- Utiliza Nextor ROM con un controlador para SD -- Mapa de teclado configurable -- Simulación de línea de exploración (Scanlines) -- Soporte para joystick +- MSX1 at 50Hz or 60Hz +- 128K Nextor (MSX-DOS2 evolution) ROM with SD driver +- Reconfigurable keyboard map +- Scanlines +- Joystick support -==== Formato de Tarjeta SD +==== SD card format -Se debe de utilizar una tarjeta SD con la primera partición en formato FAT16 con https://es.wikipedia.org/wiki/C%C3%B3digo_de_tipo_de_partici%C3%B3n[código `0x06` (16-bit FAT)]. Es también posible utilizar una segunda partición FAT16 para albergar todo el software, dejando la primera sólo para arrancar el sistema. +You have to use a SD card with the first partition in FAT16 format with https://en.wikipedia.org/wiki/Partition_type[code `0x06` (16-bit FAT)]. You can also use a second FAT16 partition for MSX software, and leaving the first one only for the system startup. -Se ha de obtener lo siguiente: +You need to get: -- Ficheros básicos del proyecto para la SD https://github.com/fbelavenuto/msx1fpga/tree/master/Support/SD[desde GitHub] -- Controlador (`NEXTOR.SYS`) y ROM (`NEXTOR.ROM`) de Nextor https://github.com/fbelavenuto/msx1fpga/tree/master/Software/nextor[también desde GitHub] -- ROM de MSX1 (`MSX_INT.rom`, `MSX_JP.rom` o `MSX_USA.rom`) https://github.com/fbelavenuto/msx1fpga/tree/master/Software/msx1[en el mismo repositorio] +- Basic SD project files SD https://github.com/fbelavenuto/msx1fpga/tree/master/Support/SD[from GitHub] +- Nextor driver (`NEXTOR.SYS`) and ROM (`NEXTOR.ROM`) https://github.com/fbelavenuto/msx1fpga/tree/master/Software/nextor[also from GitHub] +- MSX1 ROM (`MSX_INT.rom`, `MSX_JP.rom` or `MSX_USA.rom`) https://github.com/fbelavenuto/msx1fpga/tree/master/Software/msx1[at the same repository] -Una vez descargado, copiar el contenido del https://github.com/fbelavenuto/msx1fpga/tree/master/Support/SD[directorio SD] en la raíz de la primera partición de la tarjeta SD. +Copy the contents of the https://github.com/fbelavenuto/msx1fpga/tree/master/Support/SD[SD directory] in the root of the first partition of the SD. -Copiar `NEXTOR.SYS` en el mismo lugar. +Copy `NEXTOR.SYS` to the same place. -Copiar `NEXTOR.ROM` en el directorio `MSX1FPGA`. +Copy `NEXTOR.ROM` inside the `MSX1FPGA` directory. -Copiar la ROM deseada de MSX1 (`MSX_INT.rom`, `MSX_JP.rom` o `MSX_USA.rom`) en el directorio `MSX1FPGA`, pero usando el nombre `MSX1BIOS.ROM`. +Copy one MSX1 ROM (`MSX_INT.rom`, `MSX_JP.rom` or `MSX_USA.rom`) inside the `MSX1FPGA` directory, but renaming it to `MSX1BIOS.ROM`. -En el fichero `/MSX1FPGA/config.txt` se guarda la configuración del core, según este formato: +The file `/MSX1FPGA/config.txt` keeps the core configuration, using this format: ---- 11SP01 |||||| -|||||+-Modo de línea de exploración: 1=Activo, 0=Inactivo -||||+--Turbo: 1=Arrancar con el modo turbo activo -|||+---Sistema de color: N=NTSC, P=PAL -||+----Mapa de Teclado: E=Inglés, B=Brasileño, F=Francés, S=Castellano -|+-----Scandoubler(VGA): 1=Activo, 0=Inactivo -+------Nextor: 1=Activo, 0=Inactivo +|||||+-Scanlines: 1=Enabled, 0=Disabled +||||+--Turbo: 1=Initialize with turbo enabled +|||+---Colour System: N=NTSC, P=PAL +||+----Keymap: E=English, B=Brazilian, F=Francese, S=Spanish, J=Japanese +|+-----Scandoubler(VGA): 1=Enabled, 0=Disabled ++------Nextor: 1=Enabled, 0=Disabled ---- -Si no estuviera ya, <<#_cores,instalar el core de MSX>> en el ZUNO+. +If it wasn't already, <<#_cores,install MSX core>> into ZXUNO+. <<< -==== Teclado +==== Keyboard -===== Teclas especiales y botones +===== Special keys and buttons -Durante la ejecución del core: +While running the core: -- `Impr Pant`: Cambia el modo entre VGA y RGB -- `Bloq Desp`: Cambia el modo de línea de exploración (Scanlines) -- `Pausa`: Cambia entre 50Hz y 60Hz -- `F11`: Activa o desactiva el modo turbo +- `Print Scr`: Changes between VGA and RGB mode +- `Scroll Lock`: Enables or disables scanlines +- `Pause`: Changes between 50Hz and 60Hz +- `F11`: Enables and disables turbo mode - `Ctrl+Alt+Supr`: Soft Reset - `Ctrl+Alt+F12`: Hard Reset -- `Ctrl+Alt+Backspace`: Reinicia la FPGA. Backspace es la tecla de borrar hacia atrás, encima del enter -- `ALT Izquierdo`: MSX GRAPH -- `ALT Derecho`: MSX CODE -- `Re Pág`: MSX SELECT -- `Inicio`: MSX HOME (`Mayús+HOME`: CLS) -- `Fin`: MSX STOP -- `Ñ` o `Windows`: MSX DEAD +- `Ctrl+Alt+Backspace`: Restarts the FPGA +- `Left ALT`: MSX GRAPH +- `Right ALT`: MSX CODE +- `Page Up`: MSX SELECT +- `Start`: MSX HOME (`Shift+HOME`: CLS) +- `End`: MSX STOP +- `Ñ` or `Windows`: MSX DEAD [NOTE] ==== -En BASIC, se puede usar `CTRL + STOP` (`Ctrl+Fin`) para detener la ejecución de un programa. +In BASIC use `CTRL+STOP` (`Ctrl+End`) keys to stop the execution of a program. ==== [NOTE] ==== -Para cambiar el modo de vídeo entre 50Hz y 60Hz (para ejecución correcta de programas PAL a través de VGA), se puede usar también `DISPLAY.COM`, que se puede obtener https://www.msx.org/forum/msx-talk/software/dos-tool-to-switch-from-50-to-60hz[en este hilo del foro de MSX]. +To change the video mode between 50Hz and 60Hz (and thus play at correct speed PAL games), you can use also use `DISPLAY.COM`, which can be downloaded https://www.msx.org/forum/msx-talk/software/dos-tool-to-switch-from-50-to-60hz[here]. ==== <<< -==== Guía básica +==== Basic Guide -Para acceder a BASIC desde MSX-DOS, ejecutar el comando `BASIC`. +To go to BASIC from MSX-DOS you must execute `BASIC` command. [.text-center] image:img/msx.png[pdfwidth=70%] -Desde BASIC, se puede cargar desde una cinta (u <<#_miniduino,otro dispositivo externo de audio>>) con los comandos `RUN"CAS:"`, `BLOAD"CAS:",R` o `CLOAD`. +From within BASIC, you can load from a external tape (or <<#_miniduino,other external audio device>>) with the commands `RUN"CAS:"`, `BLOAD"CAS:",R` or `CLOAD`. [WARNING] ==== -Para que la carga desde audio funcione, el modo turbo tiene que estar desactivado. +Loading from audio sources only works if turbo mode is disabled. ==== -Para acceder a MSX-DOS desde BASIC, ejecutar `CALL SYSTEM`. +To go to MSX-DOS from BASIC, execute `CALL SYSTEM`. <<< ===== MSXCTRL -Se trata de una utilidad exclusiva del core MSX1FPGA, que permite controlar todas las opciones del core que antes solo eran accesibles a través del fichero de configuración o pulsando determinadas teclas. +An exclusive utility of MSX1FPGA core, which lets you control all the core options that were previously available only by editing the configuration file or with some key combination. -Al ejecutar `MSXCTRL` se muestran los parámetros de uso: +When running `MSXCTRL` all the use parameters are shown: ---- MSXCTRL.COM - Utility to manipulate MSX1FPGA core. @@ -2159,108 +2152,108 @@ MSXCTRL -h -i -r -b -[5|6] -m<0-2> -s<0-255> -o<0-255> -a<0-255> ---- -`MSXCTRL -h` muestra ayuda para cada parámetro. Así, `MSXCTRL -i` presenta la configuración actual, los parámetros `-t 1` encienden el modo turbo, etc. +`MSXCTRL -h` show help for a parameter. For example, `MSXCTRL -i` show the current configuration, `-t 1` sets turbo mode on, etc. -===== Otros +===== Other -Existen múltiples sistemas para cargar los juegos dependiendo del tipo de archivo: .CAS, .DSK o ROM (ver https://www.zxuno.com/forum/viewtopic.php?f=53&t=2080[este hilo del foro de ZX-Uno] para más información). +There are different ways to load games depending on the kind of file: .CAS, .DSK o ROM (see https://www.zxuno.com/forum/viewtopic.php?f=53&t=2080[this ZX-Uno forums thread] for more info). -El mapeo de para teclado español disponible con la distribución oficial se puede cambiar por otro más completo. Ver https://www.zxuno.com/forum/viewtopic.php?f=53&t=2897[aquí] para más información. +The spanish keymap officially available can be replaced with a better one. See https://www.zxuno.com/forum/viewtopic.php?f=53&t=2897[here] for more information. <<< === NES -Nintendo Entertainment System (también conocida como Nintendo NES o simplemente NES) es la https://es.wikipedia.org/wiki/Nintendo_Entertainment_System[segunda consola de sobremesa de Nintendo]. +Nintendo Entertainment System (also known as Nintendo NES or just NES) is the https://en.wikipedia.org/wiki/Nintendo_Entertainment_System[second home video game console produced by Nintendo]. -La versión para ZXUNO+ ha sido creada para ZX-Uno por https://www.zxuno.com/forum/viewtopic.php?t=1245[DistWave y Quest], basado en el https://github.com/strigeus/fpganes[core de NES de Ludde/Strigeus para la placa Nexys4]. +The ZXUNO+ core has been made by https://www.zxuno.com/forum/viewtopic.php?t=1245[DistWave and Quest], based on https://github.com/strigeus/fpganes[Ludde/Strigeus NES core forNexys4 board]. -Algunas de las características del core son: +Some features of this core are: -- Sólo soporta salida VGA y utiliza timings poco rigurosos, por lo que es posible que de problemas en algunos monitores -- Filtro HQ2X que "despixeliza" la imagen -- Simulación de línea de exploración (Scanlines) -- Utiliza el reloj de la NES NTSC, por tanto funcionan correctamente las ROMs USA. Las ROMs PAL van más rápido de lo que deberían -- Permite cargar ROMS desde la SD -- Utiliza los 512 KB de SRAM del ZX-UNO. Se ha dividido la memoria en 2 bancos de 256 KB, uno para PRG_ROM y otro para CHR_ROM. Por tanto, las ROMs que utilizan más de 256 KB para CHR o PRG no funcionan. Evidentemente cualquier ROM mayor de 512 KB tampoco. -- Compatible con 1 o 2 joysticks +- Only VGA video mode is supported, with non-accurate timings, so it may not work with some displays +- HQ2X filters that "removes pixels" from the image +- Scanlines simulation +- Made with NES NTSC clock timings, so only USA ROMs run fine. PAL ROMs run faster than they sould +- You can load ROMs from the SD +- It uses all 512 KB ZXUNO+ SRAM. It's split into two 256 KB banks, uno for PRG_ROM and the other for CHR_ROM. So any ROM using more than 256 KB for CHR or PRG won't work. Obviously any ROM bigger than 512 KB won´t work too. +- Joystick support -==== Formato de Tarjeta SD +==== SD card format -Se debe de utilizar una tarjeta SD, con la primera partición en formato FAT16, para almacenar los ficheros con las imágenes ROM (extensión `.NES`) de los juegos que se desee cargar. Los ficheros pueden estar en subdirectorios. +You need a SD card with the first partition in FAT16 format to store ROM image files of the games to load. ROM files can be inside subdirectories. -Si no estuviera ya, <<#_cores,instalar el core de NES>> en el ZXUNO+. +See the <<#_cores,corresponding section>> for instructions of how to install the NES core in ZXUNO+. -==== Teclado +==== Keyboard -===== Teclas especiales y botones +===== Special keys and buttons -Durante la ejecución del core: +While the core is running: -- `Esc` o botón 2 del joystick: Mostrar u ocultar el menú de configuración -- Teclas de cursor, y `Enter` para usar el menú -- `Ctrl+Alt+Backspace`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima del enter +- `Esc` or joystick button 2: Show or hide configuration menu +- Cursor keys, and `Enter` to use the menu +- `Ctrl+Alt+Backspace`: Hard reset <<< -==== Guía básica +==== Basic Guide -Pulsando `Esc` se muestra el menú de configuración. Para desplazarse por el menú y activar o elegir alguna opción, se utilizan las teclas de cursor, y `Enter`. +Pressing `Esc` or joystick button 2 shows or hides the configuration menu. To navigate the menu and activate or choose any option, use the cursor keys and `Enter`. [.text-center] image:img/nesuno.jpg[pdfwidth=70%] -En él se pueden activar o desactivar las siguientes opciones: +The following options are available: -- Reiniciar la NES (Reset NES) -- Activar o desactivar línea de exploración (Scanlines) -- Encender o apagar el filtro que suaviza la imagen (HQ2X Filter) -- Simular la pulsación del botón Select del mando 1 (P1 Select) -- Simular la pulsación del botón Start del mando 1 (P1 Start) -- Elegir una ROM para cargar desde la SD (Load ROM) -- Salir del menú (Exit) +- Reset NES +- Scanlines +- HQ2X Filter +- P1 Select +- P1 Start +- Load ROM +- Exit <<< === PC XT -El core https://www.zxuno.com/forum/viewforum.php?f=56[Next186lite] es una implementación adaptada y recortada del core http://flea.vieju.net/?page_id=20[Next186] para FleaFPGA y Papilio Pro. +https://www.zxuno.com/forum/viewforum.php?f=56[Next186lite] core is an implementation of http://flea.vieju.net/?page_id=20[Next186] core for FleaFPGA and Papilio Pro, pero adapted and trimmed. -Características del sistema implementado: +Features: -- Sólo funciona en VGA -- Núcleo Next186 a 25 MHz y bus del sistema a 50 MHz. El procesador es equivalente a un 286 en modo real. No hay modo protegido -- 504 KB de memoria RAM convencional -- 60 KB de memoria VRAM -- Soporte para teclado y raton PS/2 -- Modo de texto 80x25 -- Modos gráficos EGA 320x200x16 y MCGA 320x200x256, parcialmente funcionales (en el modo MCGA no se dibujan las últimas líneas de la pantalla porque faltan 2,5 KB de memoria de vídeo). No se emula una tarjeta gráfica real -- Sonido Beeper y Tandy 3 voice -- DAC de puerto paralelo para reproducir sonido digital +- Only works on VGA out +- Next186 core at 25 MHz and 50 MHz system bus. Te processor is 286 equivalent in real mode. There's no protected mode. +- 504 KB conventional RAM +- 60 KB VRAM +- PS/2 keyboard and mouse support +- 80x25 text mode +- EGA 320x200x16 and MCGA 320x200x256 graphic modes, partially functional (MCGA mode does not draw the last lines on screen because 2.5 KB video RAM is missing). No graphic card is being emulated +- Beeper Sound and Tandy 3 voice +- Parallel DAC port to play digital sound -==== Formato de Tarjeta SD +==== SD card format -Se debe de utilizar una tarjeta SDHC (por tanto de al menos 4GB), con la primera partición con MS-DOS instalado. Esto se puede conseguir usando, por ejemplo, software de virtualización y conectando directamente el dispositivo de la tarjeta SD como disco. Existen distintas imágenes en https://www.zxuno.com/forum/viewforum.php?f=56[el foro de ZX-Uno]. +You have to use a SDHC card, with the first partition with MS-DOS (or similar) installed. You can achieve this using, for example, virtualization software and connecting directly de SD card device as a hard disk. You can also find several pre-made images at https://www.zxuno.com/forum/viewforum.php?f=56[ZX-Uno forum page]. -Si no estuviera ya, <<#_cores,instalar el core de PC XT>> en el ZXUNO+. +See the <<#_cores,corresponding section>> for instructions of how to install the PC XT core in ZXUNO+. <<< === Chip-8 -https://es.wikipedia.org/wiki/CHIP-8[CHIP-8] es un lenguaje de programación interpretado, desarrollado por Joseph Weisbecker. Fue inicialmente usado en los microcomputadores de 8 bits COSMAC VIP y Telmac 1800 a mediados de 1970. CHIP-8 tiene un descendiente llamado SCHIP (Super Chip), presentado por Erik Bryntse. +https://en.wikipedia.org/wiki/CHIP-8[CHIP-8] is an interpreted programming language, developed by Joseph Weisbecker. It was initially used on the COSMAC VIP and Telmac 1800 8-bit microcomputers in the mid-1970s. Erik Bryntse later created another interpreter based on CHIP-8, called SCHIP, S-CHIP or Super-Chip which extended the CHIP-8. -El core de ZXUNO+ está basada en una implementación ya existente https://bitbucket.org/csoren/fpga-chip8/[para FPGA] de la máquina virtual de SuperChip. +The ZXUNO+ core is based on an existing https://bitbucket.org/csoren/fpga-chip8/[FPGA implementation] of the SuperChip. -Existen múltiples sitios como https://johnearnest.github.io/chip8Archive/[CHIP-8 Archive] o https://github.com/mattmikolay/chip-8[CHIP-8 de Matthew Mikolay] donde se puede obtener software para este tipo de máquinas. +There are several sites like https://johnearnest.github.io/chip8Archive/[CHIP-8 Archive] ot https://github.com/mattmikolay/chip-8[Matthew Mikolay's CHIP-8] where you can obtain osftware for these machines. -==== Formato de Tarjeta microSD +==== microSD card format -Se puede utilizar una tarjeta con la primera partición en formato FAT16 o FAT32 para almacenar ficheros ROM en formato `BIN` o `CH8` para usar con el core. +You can use a SD card with the first partition in FAT16 or FAT32 formata to store `BIN` or `CH8` ROM files to load with the core. -==== Teclado +==== Keyboard -La máquina CHIP-8 utiliza un teclado hexadecimal como entrada. La asignación en el teclado es la siguiente: +The CHIP-8 machine uses an hexadecimal keyboard as input. This is the key mapping: [align="center",width="25%",%header,cols=2*] |=== @@ -2271,133 +2264,126 @@ La máquina CHIP-8 utiliza un teclado hexadecimal como entrada. La asignación e |`A 0 B F`|`Z X C V` |=== -===== Teclas especiales y botones +===== Special keys and buttons -Durante la ejecución del core: +While the core is running: -- `Esc`: para mostrar u ocultar el menú. +- `Esc`: Show or hide configuration menu +- `F11`: Hard Reset - `F12`: Reset <<< -==== Guía Básica +==== Basic Guide -Pulsando `Esc` se muestra el menú de configuración. Se usan las teclas de cursor y `Enter` para elegir y seleccionar las distintas opciones. +Pressing `Esc` shows or hides the configuration menu. Use the cursor keys and `Enter` to select and choose menu options. [.text-center] image:img/chip8uno.jpg[pdfwidth=70%] -En él se pueden activar, desactivar o configurar las siguientes opciones: -- Reiniciar el core (Reset) -- Cambiar la velocidad de reloj del core (Clock Speed) -- Cargar un archivo de ROM desde la tarjeta microSD (Load Rom) -- Activar o desactivar el sonido (Sound On/Off) -- Ayuda sobre el uso del teclado (Keyboard Help) -- Salir del menú (Exit) +The following options are available: -[CAUTION] -==== -Después de cargar cualquier ROM, pulsar siempre a continuación la tecla de reset para que funcione correctamente: `F12` -==== +- Reset the core +- Change the core clock speed +- Load a ROM file from the microSD card +- Enable or disable sound output +- Help +- Exit the menu <<< === SmartROM -https://github.com/Utodev/smartROM[SmartROM] es un nuevo firmware para el core de Spectrum del ZX-UNO pensado para funcionar en placas FPGA que no tengan flash, o en las que no se pueda usar. Está basado en una versión del core de McLeod hay había hecho un core "sin flash", que contiene la ROM y ESXDOS dentro del propio core. El proyecto SmartROM incluye una versión ligeramente modificada de ese core, junto con un fichero que en la SD que permite cargar una ROM de Spectrum distinta y, además, cambiar algunos ajustes. +https://github.com/Utodev/smartROM[SmartROM] is a kind of firmware that allows to loadi different ROMS for implementations of the ZX-Uno core in FPGA boards without flash memory, or where the flash memory cannot be used by the ZX-Uno core. -==== Formato de Tarjeta SD +==== SD card format -La tarjeta se debe formatear <<#_formato_de_la_tarjeta_sd,igual que para el uso con el core principal de Spectrum>>, es decir, con, al menos, una partición (la primera en el caso de haber varias) en formato FAT16 o FAT32. +The card has to be formatted <<_#sd_card_formatting,the same as when preparing for the main Spectrum core>> with, at least, one FAT16 or FAT32 partition. -Además, la tarjeta debe tener <<#_esxdos,instalado esxdos 0.8.8>> y debe tener creado, en la raíz, un directorio llamado `ZXUNO` con, al menos, https://github.com/Utodev/smartROM/blob/master/binaries/SMARTROM.ZX1[el fichero `SMARTROM.ZX1`] y un fichero RomPack llamado `ROMS.ZX1` en su interior. +Also, you have to intall <<#_esxdos,instalado esxdos 0.8.8>> into the card, and also create a directory named `ZXUNO` with, at least, https://github.com/Utodev/smartROM/blob/master/binaries/SMARTROM.ZX1[the `SMARTROM.ZX1` file] and a RomPack file named `ROMS.ZX1` inside. -Además, si se está utilizando un teclado PS/2 que no esté en español, se puede copiar el <<#_teclado,fichero de mapa de teclado>> correspondiente, renombrado como `KEYMAP.ZX1`. +Finally, if your PS/2 keyboard is not in Spanish, you can copy the coresponding <<#_keyboard,keyboard map file>>, renamed as `KEYMAP.ZX1`. -Si no estuviera ya, <<#_cores,instalar el core smartROM>> en el ZXUNO+. +See the <<#_cores,corresponding section>> for instructions of how to install the SmartROM core in ZXUNO+. <<< === ZX81 -El computador personal https://es.wikipedia.org/wiki/ZX81[Sinclair ZX81], lanzado por Sinclair Research en 1981, fue el de menor precio de la época. +The https://en.wikipedia.org/wiki/ZX81[ZX81] was a home computer produced by Sinclair Research,designed to be a low-cost introduction to home computing for the general public. -La versión para ZXUNO+ ha sido https://www.zxuno.com/forum/viewtopic.php?f=54&t=703[creada por Jepalza] y está basada en la http://zxgate.sourceforge.net/[implementación anterior de un ZX97]. +The ZXUNO+ version has been https://www.zxuno.com/forum/viewtopic.php?f=54&t=703[made by Jepalza] based on http://zxgate.sourceforge.net/[a previous ZX97 implementation]. -==== Formato de Tarjeta SD +==== SD card format -Este core no utiliza la tarjeta SD. +This core does not use the SD card -==== Teclado +==== Keyboard -El teclado no está mapeado a la distribución de uno PS/2 estándar, y mantiene la distribución de la máquina original. Así, por ejemplo, para obtener `"` se ha de pulsar `Mayús+P` o para borrar, `Mayús+0`. +The keyboard isn't mapped and the original machine keys layout is kept. For example, to obtain a `"` you have to type `Shift+P` or `Shift+0` to delete. [.text-center] image:img/keyboardZX81.jpg[pdfwidth=90%] -==== Guía básica +==== Basic Guide -Desde BASIC, se puede cargar desde una cinta (u <<#_miniduino,otro dispositivo externo de audio>>) con el comando `LOAD""`. Notar que, durante la carga, se desactiva la señal de vídeo y, al contrario que en la máquina original, se puede escuchar el audio de la cinta. +You can load a external tape (or from <<#_miniduino,other external audio device>>) with the command `LOAD""`. Take note, that, while loading, the video output is disables and, unlike the original machine, you can hear the loading sound. [WARNING] ==== -Algunos monitores dejan de reproducir la entrada de audio si se desactiva la señal de vídeo. Se recomienda conectar unos auriculares o altavoces externos para poder oir el sonido durante la carga de una cinta. +Some monitor stop playing audio if the video signal is lost. It's recommended to plug headphones or a external speaker if you want to hear the sound while loading a tape. ==== <<< -== Otro Hardware +== Other Hardware -=== Carga desde cinta +=== Loading from tape -Para algunos cores como, por ejemplo, el de Spectrum o el de MSX, es posible cargar, igual que se hacía en las máquinas originales, desde un dispositivo externo de audio como un reproductor de cassette u otro que lo simule. +Some cores can load, as the original machines could, from a external audio device like a cassette player or something else simulating it. -Normalmente, se debe utilizar un cable adecuado para la <<#_puertos_y_conectores,entrada de sonido del ZXUNO+>>, concretamente, ha de ser un cable con un jack estéreo de 3,5 mm en un extremo dos salidas mono en el otro (una para cada canal de audio), conectando el extremo del canal mono derecho al dispositivo de reproducción de cintas (esto no es necesario en Miniduino, ya que este automáticamente utiliza sólo el canal derecho de sonido al reproducir). +Besides the card, you have to plug an appropriate audio cable to <<#_ports_and_connectors,ZXUNO+ audio input>>. It must have a 3.5 mm stero jack on one side, and two mono outputs on the other side (one for each audio channel). The right audio mono is connected to the audio player (this is not necessary with a miniduino, since it already uses only the right audio channel when playing). -==== Reproductor de cassette +==== Cassette Player -El funcionamiento es exactamente igual que se hacía con los equipos originales: +The use is exactly the same as when using the original computers: -. Conectar el cable de audio -. Ejecutar en el equipo o elegir la opción correspondiente a la carga desde cinta. Por ejemplo, en ZX Spectrum 48K, pulsando `J`, a continuación, dos veces, `"` y luego `Enter` para ejecutar el clásico `LOAD "" + Enter` -. Iniciar la reproducción de la cinta (es posible que haya que hacer distintos intentos ajustando el volumen del reproductor) +. Plug the audio cable +. Type on the computer or select the tape loading option. For examle, for ZX Spectrum 48K, typing `J`, then, twice, `"` and then `Enter` to do the classic `LOAD "" + Enter` +. Start playing the tape (you may have to try several times adjusting the player volume) -==== Ordenador +==== Computer -Según el sistema operativo (Windows, MacOS, Linux) existen múltiples alternativas de programas que pueden, o bien reproducir directamente un archivo de cinta (`TAP`, `TZX`, `PZX`, etc.) y emitir el sonido por la salida de auriculares, o bien crear un fichero de sonido (`WAV`, `VOC`, `AU`, etc.) que se puede reproducir también con programas de música o sonido. +Depending on the operating system (Windows, MacOS, Linux) there are several programs that can either play a tape file (`TAP`, `TZX`, `PZX`, etc.) and output the sound through a headphone output, or create an audio file (`WAV`, `VOC`, `AU`, etc.) that can be played using a music or audio program. ===== PlayTZX -Este programa para Windows, MacOS o Linux, permite reproducir un fichero de cinta `TZX` a través de la salida de sonido del ordenador. +This program for Windows, MacOS or Linux, can play directly a `TZX` tape file through the audio output of the computer. -Se puede descargar el fichero binario (por ejemplo, para Windows desde https://worldofspectrum.net/utilities/#tzxtools[World of Spectrum Classic] y para Mac desde https://github.com/kounch/playtzx/releases[este repositorio de GitHub]) o compilar el código fuente como se explica <<#_compilar_código_fuente_macos_o_linux,a continuación>>. +You can download the binary file (for example), for Windows from https://worldofspectrum.net/utilities/#tzxtools[World of Spectrum Classic] and for Mac from https://github.com/kounch/playtzx/releases[this GitHub repository]) or compile the source code as <<#_compile_source_code_macos_or_linux,explained later>>. -. Conectar el cable de audio entre la salida del ordenador y la entrada de audio del ZXUNO+ (recordar conectar únicamente el extremo del canal mono derecho al extremo del PC/Mac, etc.) -. Ejecutar en el equipo o elegir la opción correspondiente a la carga desde cinta. Por ejemplo, en ZX Spectrum 48K pulsando `J` a continuación, dos veces, `"` y luego `Enter` para ejecutar el clásico `LOAD "" + Enter` - -<<< - -[start=3] -. Iniciar la reproducción de un fichero de cinta con el siguiente comando (es posible que haya que hacer distintos intentos ajustando el volumen de salida del equipo) +. Plug the audio cable between the computer audio output and ZXUNO+ audio input (remember to use only the right mono channel to the PC, Mac, etc. output) +. Type on the computer or select the tape loading option. For examle, for ZX Spectrum 48K, typing `J`, then, twice, `"` and then `Enter` to do the classic `LOAD "" + Enter` +. Start playing a tape file with this command (you may have to try several times adjusting the player volume) [source,shell] ---- -./playtzx +./playtzx ---- -Si todo va bien, se irá viendo en la consola los distintos bloque de carga de la cinta, mientras el sonido se produce y el core del ZXUNO+ carga el programa. +If everything works fine, you will see at the shell the name of the different tape data blocks, while the sound is played and the ZXUNO+ core loads the program. [TIP] ==== -En Linux, el programa utiliza como salida el dispositivo `/dev/dsp`, así que, en versiones más modernas, es posible, por ejemplo, que haya que cargar módulos como `snd_pcm_oss` (en el caso de sistemas que utilicen ALSA), para que funcione correctamente. +On Linux, the program uses as output the device `/dev/dsp`, this may require to load a module like `snd_pcm_oss` (on systems using ALSA). ==== -====== Compilar código fuente (MacOS o Linux) +====== Compile source code (MacOS or Linux) -Verificar que están instaladas las herramientas de desarrollo, incluyendo un compilador de C (`gcc`, `clang` herramientas de desarrollaor de línea de comandos en Mac, etc.) y https://es.wikipedia.org/wiki/GNU_build_system[GNU Autotools]. +To compile, the first thing is checking that the developer tools are installed on the system, including a C compiler (`gcc`, `clang`, command line developer tools for Mac, etc.) and https://es.wikipedia.org/wiki/GNU_build_system[GNU Autotools]. -Descargar el código fuente https://github.com/kounch/playtzx[desde este repositorio]), descomprimirlo y acceder en una consola al directorio, y ejecutar los comandos: +Download the source code https://github.com/kounch/playtzx[from this repository]), extract the contents if needed and access from a terminal to the directory and type the commands: [source,shell] ---- @@ -2406,54 +2392,48 @@ aclocal && autoconf && autoheader && automake --add-missing make ---- -Si todo se ha hecho correctamente, se habrá generado el fichero `playtzx` que se puede copiar a donde se desee en el disco duro y utilizar. Se puede borrar el directorio descomprimido donde se compiló. +If all goes well, a new file named `playtzx` will be created, which you can copy anywhere and then use. You can delete the compilation directory. -==== Teléfono móvil, tableta, reproductor de sonido MP3, etc. +==== Mobile phone, tablet, MP3 player, etc. -En general, existen muy pocas alternativas (o ninguna) alternativas de programas que puedan reproducir directamente un archivo de cinta en un dispositivo móvil, así que, normalmente, será necesario convertir a un fichero de audio el contenido de la cinta antes de intentar cargarla con uno de estos aparatos. +There are a very few apps (or none) that can directly play a tape file on a mobile device so, in many cases, the only option is to convert it to an audio file before playing it. -https://play.google.com/store/apps/details?id=com.baltazarstudios.playzxtapes[PlayZX] es una App para sistemas Android que es capaz de reproducir directamente a través de la salida de auriculares. +https://play.google.com/store/apps/details?id=com.baltazarstudios.playzxtapes[PlayZX] is an App for Android which can play tape files through the headphone output. [WARNING] ==== -Los dispositivos con salida de auriculares modernos, suelen estar pensados para manejar impedancias el orden de unas pocas decenas de ohmios. Esto, a veces, puede ser insuficiente para la entrada del ZXUNO+. +The latest devices with headphone output are normally designed to work with impedances of only a few ohmis. This may, sometimes, not be enouth for the ZXUNO+ audio input. -En esos casos, se recomienda (si es posible) desactivar las limitaciones de volumen máximo de auriculares y/o utilizar un dispositivo amplificador de auriculares, que eleve la impedancia. +In these cases, it's recommended (if possible) to disable headphone volume limitations and/or use a headphone amplifier that can give a higher impedance. ==== -Los pasos a seguir en este caso son: +===== Audio file conversion -. Conectar el cable de audio entre la salida del dispositivo móvil y la entrada de audio del ZXUNO+ (recordar conectar únicamente el extremo del canal mono derecho al extremo del PC/Mac, etc.) -. Ejecutar en el equipo o elegir la opción correspondiente a la carga desde cinta. Por ejemplo, en ZX Spectrum 48K pulsando `J` a continuación, dos veces, `"` y luego `Enter` para ejecutar el clásico `LOAD "" + Enter` -. Iniciar la reproducción del fichero de audio (o del fichero de cinta en el caso de PlayZX). Es posible que haya que hacer distintos intentos ajustando el volumen del reproductor/amplificador. +These are some of the many programas that exist and which can export tape files to audio files. -===== Conversión a fichero de audio +https://www.alessandrogrussu.it/tapir/index.html[Tapir] is a GUI program for Windows (but which can also run with Wine on Linux or Mac) that can load `TZX` and `TAP` files and export to `WAV` audio. -A continuación se indican algunos de los muchos programas que existen para distintos sistemas operativos, y que pueden exportar ficheros de cinta a ficheros de audio. +`tape2wav` from https://fuse-emulator.sourceforge.net/[Fuse Utilities] is a command line utility that can export from `TZX` `PZX` and `TAP` to `WAV`. -https://www.alessandrogrussu.it/tapir/index.html[Tapir] es un programa con interfaz gráfica para Windows (pero que se puede usar también con Wine en Linux o Mac) que permite cargar ficheros `TZX` y `TAP` y exportarlos como `WAV` de audio. +`pzx2wav` in http://zxds.raxoft.cz/pzx.html[PZX Tools] is another command line utility which exports to `WAV`. -`tape2wav` de https://fuse-emulator.sourceforge.net/[Fuse Utilities] es una utilidad de línea de comandos que exporta desde ficheros `TZX` `PZX` y `TAP` a `WAV`. Disponibles para muchos sistemas operativos distintos. +`tsx2wav` in https://github.com/nataliapc/MSX_devs/tree/master/TSXphpclass[TSXphpclass] is made with PHP and that can export from `TSX` to `WAV`. -`pzx2wav` en http://zxds.raxoft.cz/pzx.html[PZX Tools] es otra utilidad de comandos que exporta desde ficheros `PZX` a `WAV`. Disponible como ejecutable para Windows, y con el código fuente disponible para compilar en otros sistemas. +https://sourceforge.net/projects/wav-prg/files/audiotap/2.2/[Audiotap] is a graphical interface program made for Windows (but also working on Wine) that can convert Commodore `TAP` files to `WAV` audio files. -`tsx2wav` en https://github.com/nataliapc/MSX_devs/tree/master/TSXphpclass[TSXphpclass] es una utilidad en PHP y que sirve para exportar desde ficheros `TSX` a `WAV`. +https://github.com/RW-FPGA-devel-Team/lynx2wav[Lynx2Wav] is a program that can convert Camputers Lynx `TAP` files to `WAV` audio. -https://sourceforge.net/projects/wav-prg/files/audiotap/2.2/[Audiotap] es un programa con interfaz gráfica para Windows (pero que se puede usar también con Wine en Linux o Mac) que permite convertir ficheros `TAP` de Commodore como `WAV` de audio. - -https://github.com/RW-FPGA-devel-Team/lynx2wav[Lynx2Wav] es un programa que permite convertir ficheros `TAP` de Camputers Lynx como `WAV` de audio. - -https://github.com/rcmolina/CamputersLYNX[2lynx2wav] también permite convertir ficheros `TAP` de Camputers Lynx a ficheros `WAV` de audio. +https://github.com/rcmolina/CamputersLYNX[2lynx2wav] also can convert Camputers Lynx `TAP` files to audio files. <<< ==== Miniduino -https://www.antoniovillena.es/store/product/miniduino/[Miniduino] es un sistema reproductor de archivos de cinta, basado en un microcontrolador STM32F103C8T6 con 64KB de flash, y que trae instalado de serie el firmware https://github.com/rcmolina/MaxDuino_BETA[Maxduino]. +https://www.antoniovillena.es/store/product/miniduino/[Miniduino] is a tape file audio player, based on a STM32F103C8T6 microcontroller with 64KB flash memory, and https://github.com/rcmolina/MaxDuino_BETA[Maxduino] firmware preinstalled. -Maxduino permite la reproducción, de una forma similar a como se manejaban las cintas de https://es.wikipedia.org/wiki/Casete[cassette] originales, de archivos digitales de cinta en múltiples formatos como `TAP` y `TZX` (ZX Spectrum), `O` (ZX80), `P` (ZX81), `CDT` (Amstrad CPC), `CAS`(MSX) `TSX` (MSX, Acorn, etc). También es posible reproducir como cinta archivos de sonido AY, para cargarlos en http://www.specay.co.uk[SpecAY] desde ZX Spectrum. +Maxduino plays, in a very similar way to how https://es.wikipedia.org/wiki/Casete[cassette tape] players worked, digital tape files in format as like `TAP` and `TZX` (ZX Spectrum), `O` (ZX80), `P` (ZX81), `CDT` (Amstrad CPC), `CAS`(MSX) `TSX` (MSX, Acorn, etc). It is also possible to play AY music files as if they were tapes, in order to load the from http://www.specay.co.uk[SpecAY] in a ZX Spectrum. -===== Puertos y Botones +===== Ports and buttons [.text-center] image:img/MiniduinoBack.jpg[pdfwidth=50%] @@ -2464,153 +2444,147 @@ image:img/MiniduinoFront.jpg[pdfwidth=50%] [cols=2*] |=== |1 -|Alimentación +|Power |2 -|Salida de sonido +|Audio output |3 -|Botón de control +|Control button |4 -|Control de motor +|Motor control |5 -|Ranura de tarjeta SD +|SD card slot |6 -|Pantalla +|Screen |=== <<< -===== Preparación +===== Configuration -Se necesita una tarjeta SD para almacenar los archivos de cinta que se quiere reproducir. Se recomienda que no sea de alta velocidad (Clase 10 o superior) porque puede haber problemas durante la lectura, ni de alta capacidad (SDXC o superior). +A SD is needed in order to store the tape files to play. Fast cards (Class 10 or greater) aren't recommended because there can be problems while reading the data. High capacity (SDXC or greater) cards aren't recommended too. -La tarjeta debe estar formateada con con la primera partición en formato FAT16 o FAT32. +The card must have the first partition formatted as FAT16 or FAT32. -Además de la tarjeta, recordar utilizar un cable adecuado para la <<#_puertos_y_conectores,entrada de sonido del ZXUNO+>>, conectando el Miniduino. +Besides the card, you have to plug an appropriate audio cable to <<#_ports_and_connectors,ZXUNO+ audio input>>. It must have a 3.5 mm stero jack on one side, and two mono output on the other side (one for each audio channel). The right audio mono is connected to the Miniduino. -Para los equipos que soporten control por motor, también se puede utilizar un cable con un jack de 2,6 mm. +If you hava a device that can use motor control, you can also use a cable with a 2.6 mm jack. -En la primera partición de la tarjeta se han de copiar los archivos de cinta (`TAP`, `TZX`, `O`, `P`, `CAS`, `TSX`, etc), que se pueden organizar en carpetas o directorios. +Copy the tape files (`TAP`, `TZX`, `O`, `P`, `CAS`, `TSX`, etc) to the first partition of the SD card. They can be organized using folders or directories. [TIP] ==== -El reproductor muestra las entradas de archivos y directorios en el orden de la tabla FAT interna, y no de manera alfabética. Si se desea ver esta información ordenada, se debe reorganizar la estructura de la tarjeta con una utilidad como FAT Sorter para Windows, https://fatsort.sourceforge.io/[FATsort] para Linux y MacOS, https://www.luisrios.eti.br/public/en_us/projects/yafs/[YAFS], http://www.trustfm.net/software/utilities/SDSorter.phpp[SDSorter] u otros. +The player shows file and directory entries in the order stored in the internal FAT table, and not alphabetically. If you want to see them ordered, you have to reorder the SD card structure with a utility like Fat Sorter for Windows, https://fatsort.sourceforge.io/[FATsort] for Linux and MacOS, https://www.luisrios.eti.br/public/en_us/projects/yafs/[YAFS], http://www.trustfm.net/software/utilities/SDSorter.phpp[SDSorter] or other. ==== <<< -===== Uso +===== Use -Una vez insertada la tarjeta SD con ficheros de datos, el Miniduino se enciende conectando el cable de alimentación USB incluido. +Once the SD card with the data files is inserted, it's turned on plugging in the included USB power cable. [.text-center] image:img/MiniduinoLogo.jpg[pdfwidth=30%] -Si se pulsa directamente el botón de control, se accede al menú de opciones que permite modificar lo siguiente: +Pressing down the control button shows the options menu which can set the following: -- Velocidad (Baud Rate): Para ajustar la velocidad turbo en bloques 4B en archivos de MSX (`CAS` y `TSX`) -- Control de motor (Motor Ctrl): Para indicar que se ha conectado un cable de control remoto a un equipo que lo soporte (Amstrad, CPC, MSX, etc.) -- Conversión (TSXCzxpUEFWS): Activa la carga turbo para los archivos `.CAS` y `.TSX`, cambiar la polaridad de la señal de audio de los archivos para Spectrum y Amstrad CPC y/o cambiar la paridad en los archivos `.UEF` de Acorn Electron y BBC Micro -- Saltar bloques (Skip BLK)): Para deshabilitar (Skip ON) o habilitar la pausa automática al encontrar bloques del tipo 2A +- Baud Rate: Configures turbo speed baud rates when playing 4B blocks in MSX files (`CAS` and `TSX`) +- Motor Ctrl: Enable this option when a control cable is connected to a proper device (Amstrad, CPC, MSX, etc.) +- Converter (TSXCzxpUEFWS): Enables turbo loading `.CAS` and `.TSX` files, changes signal for Spectrum and Amstrad CPC files and/or change parity when playing Acorn Electron and BBC Micro `.UEF` files +- (Skip BLK)): To disable (Skip ON) or enable automatic pause when 2A blocks are found -Estando fuera del menú de opciones, el botón de control se utiliza como una palanca de control de cuatro direcciones, que se comporta de dos maneras distintas, según esté la reproducción detenida (Stop) o en pausa (Pause). +When not inside the options menu, the control button is used as a four directional control joystick, which has two different behaviours depending whether the player is stopped or paused. [.text-center] image:img/MiniduinoVersion.jpg[pdfwidth=30%] -Con la reproducción detenida (navegación por archivos y directorios): +When the player is stopped (file and directories browser): -- Arriba y abajo permiten desplazarse por la lista actual de ficheros y directorios -- Izquierda (Stop) retrocede un nivel en el árbol de direcotorios -- Derecha (Play/Pause) accede al contenido de un directorio o, si lo que hay seleccionado es un archivo, intenta reproducirlo +- Up and Down move through the current files and directories list +- Left (Stop) goes one level up in the directory tree +- Right (Play/Pause) enters into a directory or, if the selection is a file, tries to play it <<< -Una vez un archivo está en reproducción, el botón izquierda (Stop), la detiene, y el botón derecho (Play/Pause) la pone en pausa. +Once a file is being played, stop playing it with the left button (Stop) or pause using the right button (Play/Pause). [.text-center] image:img/MiniduinoPlay.jpg[pdfwidth=30%] -Con la reproducción en pausa (navegación por bloques de cinta): +When in pause (tape block browser: -- Arriba y abajo permiten desplazarse por los bloques del archivo de cinta que ya hayan sido reproducidos (útil para juegos multicarga, para volver a cargar un bloque de un nivel, por ejemplo) -- Izquierda (Stop) cancela la reprodución y entra de nuevo en el modo de navegación de archivos y directorios -- Derecha (Play/Pause) reanuda la reproducción en el bloque seleccionado -- Presionar directamente el botón de control permite activar o desactivar el modo turbo para MSX - -[TIP] -==== -Para obtener información mucho más detallada, se puede consultar el manual oficial del firmware Maxduino, disponible en el https://github.com/rcmolina/MaxDuino_BETA/tree/master/MANUAL%20por%20desUBIKado[repositorio oficial]. -==== +- Up and Down mov through the tape block files alreadey played (useful for multiload titles, to load a previous level block, for example) +- Left (Stop) cancels the player and goes back to file and directory browser mode +- Right (Play/Pause) continues playing from the selected block +- Press down the control butto to enable or disable turbo mode for MSX <<< -===== Creación de ficheros TZX o TSX desde otros formatos +===== Making TZX or TSX files from other formats -Existen algunos formatos de cinta (Commodore, Camputers Lynx, etc.) que, por el momento, no están directamente soportados por Maxduino. No obstante, existen algunos programas que pueden permitir, con mayor o menor éxito, transformar ficheros de cinta desde <<#_conversión_a_fichero_de_audio,formato de audio>> a `TSX` o `TZX`, y así poder utilizarlos con Miniduino. +While there are same tape file formats (Commodore, Camputers Lynx, etc.) not supported by Maxduino, there are some programs that can, wich can, more or less successfully, embed <<#_audio_file_conversion,audio data>> in a `TSX` or `TZX` file, which then can be used with Miniduino. ====== MakeTSX -Para usar https://github.com/nataliapc/makeTSX/releases[MakeTSX] de NataliaPC y crear un fichero `TSX` con audio embebido, se ha de usar un comando como el siguiente: +You can use the following command with NataliaPC's https://github.com/nataliapc/makeTSX/releases[MakeTSX] to create a `TSX` file with embedded audio: [source,shell] ---- -...MakeTSX -b15 -wav fichero_audio.wav -tsx fichero_nuevo.tsx +...MakeTSX -b15 -wav audio_file.wav -tsx new_file.tsx ---- ====== RetroConverter -Para utilizar https://github.com/jorgefuertes/retroconverter/releases[RetroConverter] de Jorge Fuertes, para crear un fichero `TZX` con audio embebido, usar un comando como: +Jorge Fuertes https://github.com/jorgefuertes/retroconverter/releases[RetroConverter] can create a `TZX` file with a command like this: [source,shell] ---- -...retroconv fichero_audio.wav fichero_nuevo.tzx +...retroconv audio_file.wav new_file.tzx ---- <<< -===== Actualización de firmware Maxduino +===== Maxduino firmware upgrade -El firmware Maxduino es actualizado y mejorado periódicamente. Se puede hacer un seguimiento de los cambios y mejoras en el https://www.va-de-retro.com/foros/viewtopic.php?t=5541&start=9999[foro] o bien en la https://github.com/rcmolina/MaxDuino_BETA[página del proyecto en GitHub]. Para poder aprovechar estas mejoras se ha de actualizar la memoria flash del Miniduino con la versión de firmware correspondiente. +Maxduino firmware is periodically updated and improved. You can track the changes and improvements either at the https://www.va-de-retro.com/foros/viewtopic.php?t=5541&start=9999[forums] or at the https://github.com/rcmolina/MaxDuino_BETA[GitHub project page]. To take advantage of this improvements, the Miniduino flash image must be flashed with the updated firmware version. -====== Preparación del entorno +====== Environment setup -Para poder instalar el firmware, se ha de hacer desde un ordenador (Windows, Mac, Linux) con el entorno https://www.arduino.cc/en/software[Arduino IDE]. +Firmware flashing is done from a computer (Windows, Mac, Linux) with https://www.arduino.cc/en/software[Arduino IDE] installed. -Una vez instalado, se ha de añadir la biblioteca de software SDFat (1.1.4) eligiendo la opción de menú Programa->incluir librería->administrar bibliotecas +You have to install SDFat (1.1.4) software library selecting the menu option Program -> include library -> manage libraries -También se ha de añadir el soporte para el microcontrolador del Miniduino. Esto se hace en dos pasos: +Minidiuno microcontroller support must also be added. This is done in two steps: -Primero añadiendo soporte para procesadores ARXM Cortex M3 en el menú Herramientas -> placa -> gestor de tarjetas -Instalar "Arduino SAM boards (Cortex-M3)" +First, adding ARM Cortex M3 support from menu Tools -> board -> board manager, and installing "Arduino SAM boards (Cortex-M3)" -A continuación se ha de añadir el soporte para microcontroladores STM32, descargando el fichero disponible en https://github.com/rogerclarkmelbourne/Arduino_STM32/archive/master.zip[este enlace]. +Then, you have to add STM32 microcontroller support, downloading the file available at https://github.com/rogerclarkmelbourne/Arduino_STM32/archive/master.zip[this link]. -Descomprimir el contenido en la carpeta del usuario actual en +Extract the contents to the current user directory in [source,shell] ---- ...Arduino/hardware/Arduino_STM32 ---- -En Windows instalar el controlador USB ejecutando con privilegios elevados: +If on Windows, install the USB device controller, running (with elevated privileges: [source,shell] ---- ...\drivers\win\install_drivers.bat ---- -En Linux instalar con privilegios de root las reglas de `udev` necesarias: +On Linux, install with root privileeges the necessary `udev` rules: [source,shell] ---- ...tools/linux/install.sh ---- -En MacOS, si no apareciese el Miniduino como dispositivo USB en Arduino IDE al conectarlo, puede que sea necesario instalar https://github.com/libusb/libusb/wiki[libusb]. +On MacOS, if Miniduino does not appear as USB device in Arduino ID when plugged, it may be necessary to install https://github.com/libusb/libusb/wiki[libusb]. <<< -Finalmente, en el caso de Mac o Linux, el fichero `maple_upload` dentro de `Arduino_STM32` tiene que modificarse con un editor de texto. Estas líneas no funcionan bien: +Finaly, when on Mac or Linux, the file `maple_upload` inside `Arduino_STM32` has to be changed with a text editor. Those lines do not work: [source,shell] ---- @@ -2621,7 +2595,7 @@ else fi ---- -Y se tienen que cambiar por +And have to be changed into this: [source,shell] ---- @@ -2630,18 +2604,18 @@ dfuse_addr="" <<< -====== Actualización +====== Upgrade -Una vez preparado el entorno, descargar la versión deseada del proyecto desde el https://github.com/rcmolina/MaxDuino_BETA[repositorio oficial en GitHub] +Once you have the environment ready, download the software from the https://github.com/rcmolina/MaxDuino_BETA[official repository in GitHub] [NOTE] ==== -El reproductor Miniduino con microcontrolador STM32 sólo está soportado a partir de la versión 1.65 +Minduino player with STM32 microcontroller is only supported from 1.65 and up ==== -Cargar el fichero del proyecto en Arduino IDE (por ejemplo `MaxDuino_v1.66.ino`). +Load the project file with Arduino IDE (for example `MaxDuino_v1.66.ino`). -Verificar en el fichero `userSTM32Config.h` que están comentadas todas las entradas de logo excepto la de Miniduino, y si no, cambiarlas. +Check in the file `userSTM32Config.h` that all logo entries are commented except for Miniduino and, if not, change them. [source,c] ---- @@ -2655,232 +2629,232 @@ Verificar en el fichero `userSTM32Config.h` que están comentadas todas las entr ... ---- -Conectar el Miniduino al equipo usando el cable USB e identificar el puerto asignado, normalmente con un nombre del tipo "Maple Mini" (por ejemplo: COM5 Maple Mini) +Connect the Miniduino device to the computer using the USB cable, and find the assigned port, normally with a name like "Maple Mini" (for example: COM5 Maple Mini) -Configurar en el menú "" las opciones +Set the following options in menu "": [source] ---- -Placa: Generic STM32F104C Series +Board: Generic STM32F104C Series Variant: STM32F104C8 (20k RAM, 64k Flash) Upload Method: STM32duino bootloader CPU Speed: 72Mhz (Normal) Optimize: Smallest (default) -Puerto: +Port: ---- -Finalmente, pulsar el botón de carga del firmware y esperar unos segundos mientras se compila el proyecto y se carga en el dispositivo. +Finally, click on the firmware load button and wait for a few seconds while the project is compiled and loaded into the device. -Si todo se ha hecho correctamente se verá cómo el Miniduino se reinicia y en la pantalla aparece la versión correspondiente de firmware. +If everything has been done correctly the Miniduino will restart and show on the screen the new firmware version. <<< -== Solución de problemas +== Troubleshooting -=== Gestión de imágenes de firmware +=== Firmware images management -Existen distintas herramientas que permiten generar y/o editar el contenido de los ficheros `ZX1`, `ZX2`, `ZXD`. +There are several tools with you can use to make and/or edit the contents of `ZX1`, `ZX2`, `ZXD` files. ==== zx123_tool -Esta es una herramienta que analiza, extrae o añade datos en ficheros de imagen de SPI flash de ZX-Uno, ZXDOS y otros dispostivos similares. +This is a tool to analyze, extract and inject data in SPI flash image files for ZX-Uno, ZXDOS and similar devices. -Para poder utilizarla se necesita https://www.python.org/[Python 3]. Según el sistema operativo que se utilice puede que sea necesario https://www.python.org/downloads/[instalarlo]. +You need to have https://www.python.org/[Python 3] to use it. Depending on the operating system you may have to https://www.python.org/downloads/[install it]. -Teniendo Python 3, basta con descargar la última versión de la herramienta desde su repositorio oficial, https://github.com/kounch/zx123_tool/releases/latest[en este enlace]. +Having Python 3, you only need to download the latest version of the tool from the official repository, following https://github.com/kounch/zx123_tool/releases/latest[this link]. -Una vez descomprimido, se debe invocar desde una consola el script principal usando Python 3. Esto puede variar según el sistema operativo. +Once extracted, you have to run from a shell the main script using Python 3. This may change depending on the operating system. -Por ejemplo, en Windows, suele ser: +For example, on Windows, it's usually: [source,shell] ---- py -3 zx123_tool.py ---- -Mientras que en otros sistemas operativos debería bastar con algo parecido a: +With other operating systems it normally is like: [source,shell] ---- python3 ./zx123_tool.py ---- -También hará falta un archivo de imagen flash. Este se puede obtener desde el core de Spectrum, en modo "root", con alguno de los comandos `back16m`, `backzx2` o `backzxd`. Tras obtener el fichero generado en la SD, se puede "limpiar" dejando sólo el core de Spectrum y la primera ROM de Spectrum con un comando similar a este: +You also need a SPI flash image file. This can be obtained from within the Spectrum core in "root" mode, with one of the commands `back16m`, `backzx2` or `backzxd`. Once you have obtained the exteacted file from the SD, you can "clean" it leaving only the Spectrum core and the first Spectrum ROM with a command like this: [source,shell] ---- ... zx123_tool.py -i FLASH.ZX1 -w -o FLASHempty.ZX1 ---- -Donde `FLASH.ZX1` es la ruta al fichero obtenido desde el core de Spectrum, y `FLASHempty.ZX1` es la ruta al nuevo fichero "limpio". +Where `FLASH.ZX1` is the path to the original file and `FLASHempty.ZX1` is the path to the new "clean" file. <<< -*Mostrar contenido de una imagen* +*List the contents of an image* -Para ver el contenido de una imagen llamada `FLASH.ZX1` (cores instalados y algunos datos de configuración), se puede usar el comando +To see the contents of an image file named `FLASH.ZX1` (installed cores and some configuration info), you can use the command [source,shell] ---- ... zx123_tool.py -i FLASH.ZX1 -l ---- -Para mostrar contenido de esa misma imagen, incluyendo datos de ROMs de ZX Spectrum: +To show the contents of the same file, including ZX Spectrun ROMs info: [source,shell] ---- ... zx123_tool.py -i FLASH.ZX1 -l -r ---- -*Modificar la BIOS de una imagen* +*Change the BIOS of an image* -Para modificar la BIOS de un fichero llamado `FLASH.ZX1`, usando la BIOS en otro fichero llamado `FIRMWARE.ZX1` +To change the BIOS inside a file named `FLASH.ZX1`, using the BIOS file named `FIRMWARE.ZX1` [source,shell] ---- ...zx123_tool.py -i FLASH.ZX1 -a BIOS,FIRMWARE.ZX1 ---- -Además de instalar la BIOS, se pueden modificar algunos de los valores por defecto. Por ejemplo, con las opciones; `-m` para el modo de vídeo: 0 (PAL), 1 (NTSC) ó 2 (VGA), `-k` para la distribución del teclado: 0 (Auto), 1 (ES), 2 (EN) ó 3 (Spectrum). +You can, at the same time, modify some of the default parameters. For example, with the options; `-m` for video mode: 0 (PAL), 1 (NTSC) or 2 (VGA), `-k` for the keyboard layout: 0 (Auto), 1 (ES), 2 (EN) or 3 (Spectrum). -Así, para modificar la BIOS de un fichero llamado `FLASH.ZX1`, usando la BIOS en otro fichero llamado `FIRMWARE.ZX1`, y además configurar el modo de vídeo en VGA: +This way to change the BIOS of a file named `FLASH.ZX1`, using the BIOS file `FIRMWARE.ZX1`, and also set the video mode to VGA: [source,shell] ---- ...zx123_tool.py -i FLASH.ZX1 -a BIOS,FIRMWARE.ZX1 -m 2 ---- -Existen también opciones para ajustar el tiempo de espera inicial de la BIOS, el core a ejecutar por defecto, o la ROM de Spectrum a utilizar por defecto. Véase la https://github.com/kounch/zx123_tool/#castellano[documentación de la herramienta] para más información. +There are also options to set the BIOS boot delay time, the default core or the default Spectrum ROM. See the https://github.com/kounch/zx123_tool/[documentation] for more info. <<< -*Añadir una ROM de Spectrum a una imagen* +*Add a Spectrum ROM to an image* -Para añadir una ROM de Spectrum llamada `48.rom`, poniendo el nombre `Spec48` y ocupando el slot 5, se puede usar un comando como: +To add a Spectrum ROM file named `48.rom`, with the name `Spec48` and using the slot number 5, you can use a command like: [source,shell] ---- ...zx123_tool.py -i FLASH.ZX1 -a ROM,5,xdnlh17,Spec48,48.rom ---- -Véase la https://github.com/kounch/zx123_tool/#castellano[documentación de la herramienta] para ver todas las posibles opciones a la hora de añadir una ROM de Spectrum. +See the https://github.com/kounch/zx123_tool/[documentation] for all the possible options when adding a Spectrum ROM. -Entre los datos que se indican al añadir una ROM, hay una serie de indicadores para definir qué opciones de hardware, etc. se desean habilitar o deshabilitar al cargar esa ROM en concreto, según se puede ver en esta tabla: +Amongst the information you give when adding a ROM, there are some flags used to tell which hardware options, etc, you want to have enabled or disabled when loading the ROM, as shown in this table: [%header,cols=2*] |=== |`i` -|Habilitar teclado issue 3 (en vez de issue 2) +|Keyboard issue 3 enabled (instead of issue 2) |`c` -|Deshabilitar la contención de memoria +|Disable memory contention |`d` -|Habilitar DivMMC +|Enable DivMMC |`n` -|Habilitar NMI DivMMC (menú de esxdos) +|Enable NMI DivMMC (esxdos Menu) |`p` -|Usar timings de Pentagon +|Use Pentagon Timings |`t` -|Usar timings de 128K +|Use 128K timings |`s` -|Deshabilitar puertos de DivMMC y ZXMMC +|Disable DivMMC and ZXMMC ports |`m` -|Habilitar MMU horizontal de Timex +|Enable Timex Horizontal MMU |`h` -|Deshabilitar bit alto de ROM (bitd 2 de 1FFD) +|Disable ROM high bit (1FFD bit 2) |`l` -|Deshabilitar bit bajo de ROM (bit 4 de 7FFD) +|Disable ROM low bit (7FFD bit 4) |`1` -|Deshabilitar puerto 1FFD (paginado de +2A/3) +|Disable 1FFD port (+2A/3 paging) |`7` -|Deshabilitar puerto 7FFD (paginado de 128K) +|Disable 7FFD port (128K paging) |`2` -|Deshabilitar TurboSound (chip AY secundario) +|Disable TurboSound (secondary AY chip) |`a` -|Deshabilitar chip AY +|Disable AY chip |`r` -|Deshabilitar modo Radastaniano +|Disable Radastanian mode |`x` -|Deshabilitar modo Timex +|Disable Timex mode |`u` -|Deshabilitar ULAPlus +|Disable ULAPlus |=== <<< -*Instalar un Core en una imagen* +*Install a Core to an image* -Para instalar un core en la posición 3, desde un fichero llamado `TBBLUE.ZX1`, llamándolo `TBBlue`, usar un comando como este: +For example, to install a core in space 3, from a file named `TBBLUE.ZX1`, with the name `TBBlue`, use a command like this: [source,shell] ---- ...zx123_tool.py -i FLASH.ZX1 -a 'CORE,3,TBBlue,TBBLUE.ZX1' ---- -Si además se quiere configurar como el core por defecto, se puede indicar también con un comando como: +If you want also to set the core as the default, use a command like: [source,shell] ---- ...zx123_tool.py -i FLASH.ZX1 -a 'CORE,3,TBBlue,TBBLUE.ZX1' -c 3 ---- -*Modificar la ROM de esxdos de una imagen* +*Change esxdos ROM of an image* -De forma similar a como se instala el firmware de la BIOS, se puede instalar directamente un fichero con la ROM de esxdos, con un comando como: +Just like the BIOS firmware, you can install a ROM esxdos file, with a command like this: [source,shell] ---- ...zx123_tool.py -i FLASH.ZX1 -a esxdos,ESXMMC.BIN ---- -*Combinar varias órdenes en una única línea* +*Mix several actions in one line* -Notar que se pueden acumular varias órdenes en una única línea de comandos. Por ejemplo, para "limpiar" un archivo de imagen llamado `FLASH.ZX1`, creando uno nuevo llamado `FLASHnew.ZX1`, instalar la BIOS desde el fichero `FIRMWARE.ZX1`, configurar el modo de vídeo en VGA, añadir una ROM de Spectrum llamada `48.rom`, poniendo el nombre `Spec48` y ocupando el slot 5, instalar un core en la posición 3, desde un fichero llamado `TBBLUE.ZX1`, llamándolo `TBBlue`, configurado como el core por defecto, usar un comando como este: +Please do note that you can add several actions in one command line. For example, to "clean" an image file named `FLASH.ZX1`, creating a new one named `FLASHnew.ZX1`, installing the BIOS from the file `FIRMWARE.ZX1`, set up video mode to VGA, the keyboard in Spectrum mode, add a Spectrum ROM file `48.rom`, with the name `Spec48` while ussing slot number 5, install a core at space 3, from a file named `TBBLUE.ZX1`, with the name `TBBlue`, as default core: [source,shell] ---- -... zx123_tool.py -i FLASH.ZX1 -w -o FLASHnew.ZX1 -a BIOS,FIRMWARE.ZX1 -m 2 -a ROM,5,xdnlh17,Spec48,48.rom -a 'CORE,3,TBBlue,TBBLUE.ZX1' -c 3 +... zx123_tool.py -i FLASH.ZX1 -w -o FLASHnew.ZX1 -a BIOS,FIRMWARE.ZX1 -m 2 -k 3 -a ROM,5,xdnlh17,Spec48,48.rom -a CORE,3,TBBlue,TBBLUE.ZX1 -c 3 ---- <<< -=== Recuperación del firmware +=== Firmware recovery -En algunos casos (por ejemplo al instalar un core experimental o hacer una actualización del core de ZX Spectrum o la BIOS) puede suceder que el ZXUNO+ deje de arrancar. Se encienden los LEDs pero no hay imagen ni responde a las distintas combinaciones de teclado para acceder a la BIOS, etc. +Sometimes (e.g. when installing an experimental core or when upgrading the ZX Spectrum Core or the BIOS) it may happen that the ZXUNO+ stops booting. The board LEDs are on, but there is no display, and it doesn't do anything when trying the different key combinations to access BIOS setup, etc. -En esta situación, existen diferentes métodos de recuperación que permiten volver a instalar el firmware. +When this happens, there are several recovery methods that let you install again the firmware. -==== Preparación del cableado +==== JTAG cable connections -En los siguientes pasos de recuperación se habla de conectar cables puente o USB-Blaster a la placa de ZXUNO+. Para ello, usar la siguiente imágen como referencia. +Later, in some of the recovery steps, when talking about jump wires or USB-Blaster connections to the ZXUNO+ board, you can use these images as reference. [.text-center] image:img/jtagzxunoplus.jpg[pdfwidth=80%] [WARNING] ==== -*NO* se ha de conectar la línea de 3V +*DO NOT* connect the 3V line ==== <<< -==== Recuperación usando una Raspberry Pi +==== Recovery using a Raspberry Pi -*Material necesario*: +*Hardware required*: -- Raspberry Pi (con tarjeta SD, teclado, monitor, fuente de alimentación, etc.) y con conexión a internet -- 5 https://es.wikipedia.org/wiki/Cable_puente[cables puente para prototipos] (idealmente, hembra en los dos extremos) y, opcinalmente, un adaptador USB-Blaster -- Un destornillador de estrella adecuado -- Tarjeta SD para el ZXUNO+ con la primera partición en formato FAT16 o FAT32 -- Teclado y monitor para conectar el ZXUNO+ +- Raspberry Pi (with SD card, keyboard, display, power supply, etc.) and with internet connection +- 5 https://en.wikipedia.org/wiki/Jump_wire[jump wires] (if possible, female on both sides) or, instead a USB-Blaster cable +- One screwdriver for ZXUNO+ cover screws +- SD for ZXUNO+ with the first partition formatted as FAT16 or FAT32 +- Keyboard and display for ZXUNO+ -*Software necesario*: +*Software required*: -- Imagen Flash y recovery para ZXUNO+, del https://github.com/zxdos/zxuno/tree/master/modflash[repositorio de Github] y el https://www.zxuno.com/forum/viewtopic.php?f=37&t=774[foro de ZX-Uno] +- Flash image and recovery file for ZXUNO+ from https://github.com/zxdos/zxuno/tree/master/modflash[Github repository] and https://www.zxuno.com/forum/viewtopic.php?f=37&t=774[ZX-Uno forum] -*Pasos a seguir*: +*Instruction Steps*: -. Si no estuviera ya, instalar Raspberry Pi OS (antes llamado Raspbian) en la Raspberry Pi (usando https://www.raspberrypi.org/downloads/raspberry-pi-os/[la descarga oficial], https://www.raspberrypi.org/downloads/noobs/[NOOBS], https://github.com/procount/pinn[PINN], etc.) -. Instalar Open OCD en la Raspberry Pi: +. Install Raspberry Pi OS (formely known as Raspbian) to the Raspberry Pi SD card (using https://www.raspberrypi.org/downloads/raspberry-pi-os/[the official download], https://www.raspberrypi.org/downloads/noobs/[NOOBS], https://github.com/procount/pinn[PINN], etc.) +. Install Open OCD: [source,shell] ---- @@ -2901,20 +2875,20 @@ rm -rf ./openocd-code <<< [start=3] -. Conectar el USB-Blaster o los cables puente para GPIO <<#_preparación_del_cableado,tal y como se explica anterioremente>>. Si se va a hacer la conexión usando GPIO, abrir la carcasa del ZXUNO+ y conectar las líneas de JTAG de la FPGA (`TMS`, `TDI`, `TDO`, `TCK` y `GND`) con los cables a los pines https://es.wikipedia.org/wiki/GPIO[GPIO] de la Raspberry Pi. +. Connect USB-Blaster or jump wires if using GPIO. In this case, open the ZXUNO+ case and, <<#_jtag_cable_connections,as explained before>> connect the FPGA JTAG lines (`TMS`, `TDI`, `TDO`, `TCK` and `GND`), using the wires, to the Raspberry Pi https://es.wikipedia.org/wiki/GPIO[GPIO] pins. -Si se hace conexión vía GPIO, tomar nota de los pines elegidos, teniendo cuidado de conectar `GND` con `GND`. +Is using a GPIO connection, take note of the chosen pins, making sure that `GND` is connected with `GND`. [.text-center] image:img/gpio.jpg[pdfwidth=70%] -En este ejemplo, se utilizarán los pines `31`, `33`, `35`, `37` y `39` (correspondientes a `GPIO #6`, `GPIO #13`, `GPIO #19`, `GPIO #26` y `GND`), de la siguiente manera: +In this example, the `31`, `33`, `35`, `37` and `39` pins will be used (corresponding to `GPIO #6`, `GPIO #13`, `GPIO #19`, `GPIO #26` and `GND`), like this: [%header,cols=3*] |=== -|JTAG ZXUNO+ +|ZXUNO+ JTAG |GPIO -|Pin Raspberry Pi +|Raspberry Pi Pin |`TMS` |GPIO#6 |`31` @@ -2933,20 +2907,19 @@ En este ejemplo, se utilizarán los pines `31`, `33`, `35`, `37` y `39` (corresp |=== [start=4] -. Copiar en la Raspberry Pi el fichero `recovery.bit` obtenido anteriormente del https://www.zxuno.com/forum/viewtopic.php?f=37&t=774[foro de ZX-Uno]. En nuestro ejemplo, se dejará en `/home/pi/zxunoplus/unbrick/` +. Copy to the Raspberry Pi the file named `recovery.bit` previously downloaded from the https://www.zxuno.com/forum/viewtopic.php?f=37&t=774[ZX-Uno forum]. For our example, it will be at `/home/pi/zxunoplus/unbrick/` -<<< - -[start=5] -. Para la conexión usando GPIO, realizar una copia del archivo de configuración de Open OCD, en el mismo lugar donde está `recovery.bit`. Este paso no es necesario si se usa USB-Blaster. +. If using GPIO, make a copy of Open OCD configuration file, to the same directory where `recovery.bit` is. [source,shell] ---- cp /usr/local/share/openocd/scripts/interface/raspberrypi2-native.cfg /home/pi/zxunoplus/unbrick/ ---- +<<< + [start=6] -. Para la conexión vía GPIO, editar la copia de `raspberrypi2-native.cfg` actualizando `bcm2835gpio_jtag_nums` (y descomentando, si fuera necesario), según como se haya hecho la conexión entre JTAG y GPIO en la línea `bcm2835gpio_jtag_nums`. En nuestro ejemplo: +. For GPIO connection, edit `raspberrypi2-native.cfg` copy, updating `bcm2835gpio_jtag_nums` (uncommenting, if necessary), with your JTAG and GPIO connection numbers, at the line `bcm2835gpio_jtag_nums`. For our example: [source] ---- @@ -2955,7 +2928,7 @@ bcm2835gpio_jtag_nums 26 6 13 19 ---- [start=7] -. Comentar, si no lo está, la línea `bcm2835gpio_swd_nums` (de nuevo, no necesario si la conexión es con USB-Blaster): +. Comment, if it wasnt't already, the line `bcm2835gpio_swd_nums` (not necessary for USB-Blaster connection): [source] ---- @@ -2963,7 +2936,7 @@ bcm2835gpio_jtag_nums 26 6 13 19 ---- [start=8] -. Añadir, al final, la línea `adapter speed 250` (no necesario para uso con USB-Blaster): +. Add, to the end of the file, the line `adapter speed 250` (again, not necessary for USB-Blaster): [source] ---- @@ -2971,11 +2944,11 @@ adapter speed 250 ---- [start=9] -. Encender el ZXUNO+ +. Turn on the ZXUNO+. -. Asegurarnos de que estamos en el directorio donde se encuentra el archivo `recovery.bit`, y lanzar el comando que carga la BIOS en modo recuperación, indicando la ruta al archivo `raspberrypi2-native.cfg` que habíamos editado anteriormente. +. Make sure that, on the Raspberry Pi, we are in the directory where `recovery.bit` is, and execute the command that loads the BIOS on recovery mode, using the path to the previously edited `raspberrypi2-native.cfg`. -Para conexión vía GPIO: +For GPIO connection: [source,shell] ---- @@ -2983,7 +2956,7 @@ cd /home/pi/zxunoplus/unbrick sudo openocd -f /home/pi/zxunoplus/unbrick/raspberrypi2-native.cfg -f /usr/local/share/openocd/scripts/cpld/xilinx-xc6s.cfg -c "init; xc6s_program xc6s.tap; pld load 0 recovery.bit ; exit" ---- -Con USB-Blaster: +For USB-Blaster connection: [source,shell] ---- @@ -2991,44 +2964,44 @@ sudo openocd -f /usr/local/share/openocd/scripts/interface/altera-usb-blaster.cf ---- <<< - + [start=11] -. Si todo va bien, veremos cómo cambia el estado de los LED de la FPGA y veremos la imagen de la BIOS en el monitor. +. If all goes well, we will see that the FPGA LED change their state and the BIOS is shown on the display. -En el caso de que no se vea imagen, pulsar `Bloq. Despl.`: para cambiar entre modo de video compuesto y VGA, por si acaso la BIOS ha arrancado en un modo que no corresponde a la conexión del monitor. +If there is no image on the display, press `Scroll Lock` to switch between RGB and VGA modes, just in case the recovery BIOS did start in the wrong mode for our setup. [.text-center] image:img/recovery.png[pdfwidth=70%] [start=12] -. Insertar en el ZXUNO+ la tarjeta SD con la primera partición en formato FAT16 o FAT32, y en la que habremos copiado el fichero `FLASH.ZX1` https://github.com/zxdos/zxuno/raw/master/modflash/FLASH.ZX1[descargado anteriormente]. +. Insert in the ZXUNO+ the SD card formatted as FAT16 o FAT32, and with the `FLASH.ZX1` file https://github.com/zxdos/zxuno/raw/master/modflash/FLASH.ZX1[downloaded previously]. -. Si se está utilizando USB-Blaster, desconectar el cable. +. If using a USB-Blaster connection, unplug the connector. <<< [start=14] -. Elegir la opción `Upgrade Flash from SD`. Pulsar Enter, elegir `Yes`, y pulsar Enter de nuevo para comenzar el proceso que graba de nuevo la Flash. +. Select the option `Upgrade Flash from SD`. Press Enter, choose `Yes`, and press Enter again to start the Flash writing process. [.text-center] image:img/recovery2.png[pdfwidth=70%] [WARNING] ==== -Este proceso sustituirá todos los cores instalados, la BIOS, así como las ROMs de ZX Spectrum y la configuración por lo que haya en la imagen, y no se puede deshacer. +This process can't be undone, and it will replace all the previously installed cores, the BIOS, the ZX Spectrum ROMs and their configuration with the data in the image file. ==== [start=15] -. Tras unos minutos, el proceso finalizará, y podremos comprobar como, al apagar y encender, el ZXUNO+ vuelve a arrancar correctamente. +. After some minutes, the process will end, and, after turning the ZXUNO+ off and on, it should start fine. [NOTE] ==== -Si no se obtiene imagen, pulsar de nuevo `Bloq. Despl.`: para cambiar entre modo de video compuesto y VGA. En este caso, sería necesario acceder a la BIOS y cambiar el <<#_advanced, ajuste avanzado correspondiente>> para indicar la configuración de nuestro monitor. +If no image is shown, press again `Scroll Lock` to switch between RGB and VGA modes. In this case, you should have to enter the BIOS and change <<#_advanced, the right advanced setting>> that matches your display. ==== <<< -== Referencias +== References https://zxuno.speccy.org/index.shtml[ZX-Uno] @@ -3036,27 +3009,35 @@ http://desubikado.sytes.net/zx-uno-faq-version-desubikado/[ZX-Uno FAQ] https://docs.google.com/document/d/1NI0zgCDRk7c-5CVi-lfZEK6q8Lnpnco7PhpsEEdxD60/edit[Guía rápida del ZX-Uno] -https://www.zxuno.com/wiki/index.php/ZX_Spectrum[Wiki de ZX-Uno]. - https://www.zxuno.com/wiki/index.php/ZX_Spectrum[Core ZX Spectrum] https://worldofspectrum.org/zxplus3e/index.html[The ZX Spectrum +3e Homepage] https://worldofspectrum.org/zxplus3e/sharingdisks.html[Sharing a +3e disk with PC (FAT) partitions] -https://www.zxuno.com/forum/viewtopic.php?f=37&t=208[Configuración de teclado de ZX-Uno]. +https://www.zxuno.com/forum/viewtopic.php?f=37&t=208[Layouts de teclado] + +https://github.com/spark2k06/zxunops2/blob/master/Alternative/Nuevo%20firmware%20de%20teclado%20ZX-GO%2B.pdf[Firmware de teclado para ZX Go+] https://docs.google.com/spreadsheets/d/17-ifpHcy932_AP7SAv9uBLxg-2ZptcdgTvQ8ILXQLM4/htmlview[Almost (In-) Complete List of esxDOS DOT-Commands] +http://retrowiki.es/viewtopic.php?f=83&t=200032578&p=200075671&hilit=wifi#p200075671[WiFi (RetroWiki)] + https://www.va-de-retro.com/foros/viewtopic.php?t=1718&start=10#p25076[Cargando Leches 2.0] -https://vintageisthenewold.com/se-basic-iv-updated/[SE Basic IV updated] +https://www.zxuno.com/forum/viewtopic.php?f=35&t=44[WiFi en ZX-Uno] + +https://svn.zxuno.com/svn/zxuno/cores/spectrum_v2_spartan6/test19_multi_uart/[Core de ZX-Uno Test UART (WiFi)] + +https://nihirash.net/network-tools-for-zx-uno-pack/[Network tools for ZX-Uno pack] + +https://www.espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf[ESP8266 AT Instruction Set] https://www.zonadepruebas.com/viewtopic.php?t=4796&start=110[Vídeos Radastanianos] https://www.zxuno.com/forum/viewtopic.php?f=52&t=4074&p=28234&hilit=kyp#p28234[Nuevo core zx48] -https://github.com/Kyp069/zx48.zxuno/releases[ZX 48 para ZX-Uno (Kyp)] +https://github.com/Kyp069/zx48.zxuno/releases/[ZX 48 for ZX-UNO (Kyp)] https://www.zxuno.com/forum/viewtopic.php?f=53&t=2080[Core MSX] @@ -3076,6 +3057,8 @@ https://www.zxuno.com/forum/viewtopic.php?f=16&t=4005[Teclado Core Atom] https://www.zxuno.com/forum/viewtopic.php?t=1245[Core de NES para ZX-Uno] +https://github.com/fbelavenuto/colecofpga[ColecoFPGA on GitHub] + https://archive.org/details/Magnavox_Odyssey_2_TOSEC_2012_04_23[TOSEC: Magnavox Odyssey 2 (2012-04-23)] https://github.com/RW-FPGA-devel-Team/Videopac-G7000[Videopac G7000 / Odyssey2 for FPGA] @@ -3090,8 +3073,8 @@ https://github.com/jorgefuertes/retroconverter/releases[RetroConverter] http://retrowiki.es/viewtopic.php?f=31&t=200036835[Lince Script] -https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Installation[Hardware files to support STM32 based boards on Arduino version 1.8.x] - https://catleytech.com/?p=2679[Programming a Spartan 6 with a Raspberry Pi] https://www.zxuno.com/forum/viewtopic.php?f=25&t=375[Tutorial para desbriquear el ZX-Uno con una Raspberry] + +https://www.forofpga.es/viewtopic.php?t=175[Como programar un UnAmiga con la Raspberry Pi (o Linux) con el USB-Blaster y OpenOCD] diff --git a/doc/English ZXUNO+ Manual.pdf b/doc/English ZXUNO+ Manual.pdf index 6f0b3ae..16ba921 100644 Binary files a/doc/English ZXUNO+ Manual.pdf and b/doc/English ZXUNO+ Manual.pdf differ diff --git a/doc/Manual de ZXDOS+ y gomaDOS+.adoc b/doc/Manual de ZXDOS+ y gomaDOS+.adoc index 534410c..152960a 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.4.7 +:revnumber: 1.4.8 :doctype: book :front-cover-image: image:img/portada.jpg[] :email: kounch@users.noreply.github.com @@ -1153,7 +1153,7 @@ Tal y como se ha explicado en la parte de instalación, existe una serie de coma Todos los gomaDOS+, y algunos modelos de ZXDOS+, tienen incorporado un módulo ESP-12 con un chip Wi-Fi https://es.wikipedia.org/wiki/ESP8266[ESP8266], que se puede utilizar fácilmente con un core de ZX Spectrum (por ejemplo, el core EXP27 160820) que tenga sintetizado un dispositivo https://es.wikipedia.org/wiki/Universal_Asynchronous_Receiver-Transmitter[UART], que permite la comunicacion con el módulo. -Para configurar de forma básica el acceso al módulo, existen dos comandos "DOT" que se pueden obtener desde https://github.com/zxdos/zxuno/tree/master/utils[el repositorio oficial en GitHub]: +Para configurar de forma básica el acceso al módulo, existen dos comandos "DOT" que se pueden obtener desde https://github.com/zxdos/zxuno/tree/master/SD/BIN/[el repositorio oficial en GitHub]: - `esprst`, que sirve para reiniciar el módulo - `iwconfig`, que se utiliza para indicar el identificador (SSID) y la contraseña de la red Wi-Fi a la que conectarse, que quedarán almacenados en el fichero `/sys/config/iw.cfg` para que puedan usarlos otros programas. @@ -2456,6 +2456,7 @@ La máquina CHIP-8 utiliza un teclado hexadecimal como entrada. La asignación e Durante la ejecución del core: - `Esc` (o `Caps Shift+Espacio` en gomaDOS+) para mostrar u ocultar el menú. +- `F11` (`Caps Shift+Symbol Shift+Q` en gomaDOS+): Hard Reset - `F12` (`Caps Shift+Symbol Shift+W` en gomaDOS+): Reset <<< @@ -2472,13 +2473,10 @@ En él se pueden activar, desactivar o configurar las siguientes opciones: - Reiniciar el core (Reset) - Cambiar la velocidad de reloj del core (Clock Speed) - Cargar un archivo de ROM desde la tarjeta microSD (Load Rom) +- Activar o desactivar el sonido (Sound On/Off) +- Ayuda sobre el uso del teclado (Keyboard Help) - Salir del menú (Exit) -[CAUTION] -==== -Después de cargar cualquier ROM, pulsar siempre a continuación la tecla de reset para que funcione correctamente: `F12` (`Caps Shift+Symbol Shift+W` en gomaDOS+) -==== - <<< == Otro Hardware diff --git a/doc/Manual de ZXDOS+ y gomaDOS+.pdf b/doc/Manual de ZXDOS+ y gomaDOS+.pdf index e3dc11a..6c6d903 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/Manual de ZXUNO+.adoc b/doc/Manual de ZXUNO+.adoc index 7593e8b..cb0fc60 100644 --- a/doc/Manual de ZXUNO+.adoc +++ b/doc/Manual de ZXUNO+.adoc @@ -1,6 +1,6 @@ = Manual de ZXUNO+ :author: kounch -:revnumber: 0.8 +:revnumber: 0.9 :doctype: book :front-cover-image: image:img/portadauno.jpg[] :email: kounch@users.noreply.github.com @@ -2276,6 +2276,7 @@ La máquina CHIP-8 utiliza un teclado hexadecimal como entrada. La asignación e Durante la ejecución del core: - `Esc`: para mostrar u ocultar el menú. +- `F11`: Hard Reset - `F12`: Reset <<< @@ -2296,11 +2297,6 @@ En él se pueden activar, desactivar o configurar las siguientes opciones: - Ayuda sobre el uso del teclado (Keyboard Help) - Salir del menú (Exit) -[CAUTION] -==== -Después de cargar cualquier ROM, pulsar siempre a continuación la tecla de reset para que funcione correctamente: `F12` -==== - <<< === SmartROM diff --git a/doc/Manual de ZXUNO+.pdf b/doc/Manual de ZXUNO+.pdf index 5f8c060..8105510 100644 Binary files a/doc/Manual de ZXUNO+.pdf and b/doc/Manual de ZXUNO+.pdf differ diff --git a/doc/img/chip8.jpg b/doc/img/chip8.jpg index e22cc84..c78c8eb 100644 Binary files a/doc/img/chip8.jpg and b/doc/img/chip8.jpg differ