diff --git a/doc/English ZXUNO+ Manual.adoc b/doc/English ZXUNO+ Manual.adoc new file mode 100644 index 0000000..0d00297 --- /dev/null +++ b/doc/English ZXUNO+ Manual.adoc @@ -0,0 +1,2785 @@ += ZXUNO+ Manual +:author: kounch +:revnumber: 0.4 +:doctype: book +:front-cover-image: image:img/portadauno.jpg[] +:email: kounch@users.noreply.github.com +:Revision: 0.3 +:description: English ZXUNO+ Manual +:keywords: Manual, English, ZXUNO+ +:icons: font +:source-highlighter: rouge +:toc: left +:toc-title: Index +:toclevels: 4 + +<<< + +== Introduction + +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. + +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. + +ZXUNO+ official web page is https://zxuno.speccy.org. + +=== Aknowledgements + +Most of the content is based on information previously shared: + +- 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] + +A very special thaks to desUBIKado for the continuous and thorough work finding and sharing information about all the available cores and their functionalities. + +Without the previous work of all of these people (and more), this manual wouldn't exist. + +<<< + +=== Ports and Connectors + + +[.text-center] +image:./img/zxunofront.png[pdfwidth=65%] + +[.text-center] +image:./img/zxunoback.png[pdfwidth=65%] + +[.text-center] +image:./img/zxunoboard.png[pdfwidth=65%] + +==== Description + +[cols=2*] +|=== +|1 +|Audio Out +|2 +|Video Out +|3 +|Expansion Port +|4 +|SD Card Slot +|5 +|Power Socket +|6 +|Audio In +|7 +|Video Out (RJ-45) +|8 +|Mouse USB (PS/2) Port +|9 +|Keyboard USB (PS/2) Port +|=== + +===== RJ-45 Video Out + +This is the pinout or RJ-45 connector to use as VGA output: + +[.text-center] +image:img/rj45pinout.png[pdfwidth=50%] + +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%] + +<<< + +=== Initial Setup + +In order to be able to set up and use a ZXUNO+ you need, at least, the following: + +- 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) + +In order to take advantage of its full potential, you may also have: + +- 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). + +==== SD card formatting + +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] +==== +FAT16 partitions have a maximum size of 4GB +==== + +[WARNING] +==== +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 + +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 ]. + +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 + +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. + +In other case, you should use the command line. + +For example, to format a card, shown as `disk6`, with only one FAT16 partition (if the card size is less than 2GB): + +[source,shell] +---- +diskutil unmountDisk /dev/disk6 +diskutil partitionDisk /dev/disk6 MBR "MS-DOS FAT16" ZXUNOPLUS R +---- + +To split it into two FAT16 partitions of the same size (if the card size is 4GB or less): + +[source,shell] +---- +diskutil unmountDisk /dev/disk6 +diskutil partitionDisk /dev/disk6 MBR "MS-DOS FAT16" ZXUNOPLUS 50% "MS-DOS FAT16" EXTRA 50% +---- + +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 -b 4096 -c 128 /dev/rdisk6s2 +---- + +[NOTE] +==== +`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. +==== + +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] +---- +diskutil unmountDisk /dev/disk6 +diskutil partitionDisk /dev/disk6 MBR "MS-DOS FAT32" ZXUNOPLUS 4G "MS-DOS FAT32" EXTRA R +---- + +===== Linux + +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] 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. + +For it to work, it is necessary to include the corresponding files in the first partition of the SD card. + +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]. + +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. + +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%] + +<<< + +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 + corebios + dmaplayw + esprst + iwconfig + joyconf + keymap + loadpzx + playmid + playrmov + romsback + romsupgr + upgr16m + zxuc + zxunocfg + +<<#_zxuno+_commands,It is explained later> what each of them does. + +<<< + +=== BIOS + +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. + +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%] + +In the first configuration screen, in addition to being able to run several tests, you can define the default behavior for the following: + +- 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 +- DivMMC NMI Support +- New Graphic Modes Support (ULAPlus, Timex, Radastan) + +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%] + +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%] + +_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%] + +In the _Boot_ screen you can choose which one of the installed cores is loaded by default at startup. + +<<< + +==== Advanced + +[.text-center] +image:img/bios5.png[pdfwidth=70%] + +The Advanced configuration screen is used to edit the following settings: + +- 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 + +<<< + +==== Exit + +[.text-center] +image:img/bios6.png[pdfwidth=70%] + +Finally, from the last screen you can: + +- 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 + +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. + +These are some of its main characteristics: + +- 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. + +<<< + +=== SD advanced format (+3e) + +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. + ++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] +==== +The following partition scheme can only be used with ZX Spectrum core. +==== + +[TIP] +==== +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. +==== + +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). + +exsdos and other programs can be installed into the second partition <<#_esxdos,as explained earlier>>. + +==== Windows + +You can use Windows Disk Management utility. The steps are: + +. Remove all partitions from the card + +. Create a new extended partition, using the desired space for IDEDOS + +. Create a primary partition, 4GB in size, and format as FAT16 + +. Optionally, create another primary partition using the remaining space and format as FAT32 + +==== MacOS + +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 +---- + +For this example, it will be disk 6: + +[source] +---- +(...) +/dev/disk6 (external, physical): + #: TYPE NAME SIZE IDENTIFIER + 0: FDisk_partition_scheme *15.9 GB disk6 + 1: DOS_FAT_32 UNKNOWN 15.9 GB disk6s1 +---- + +<<< + +Instruction steps: + +. Unmount the disk and edit the partition sceme (the second step requires admin privileges): + +[source,shell] +---- +diskutil unmountDisk /dev/disk6 +sudo fdisk -e /dev/rdisk6 +---- + +[source] +---- +fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory +Enter 'help' for information +fdisk: 1> erase +fdisk:*1> edit 1 +Partition id ('0' to disable) [0 - FF]: [0] (? for help) 7F +Do you wish to edit in CHS mode? [n] +Partition offset [0 - 31116288]: [63] 128 +Partition size [1 - 31116287]: [31116287] 2017152 + +fdisk:*1> edit 2 +Partition id ('0' to disable) [0 - FF]: [0] (? for help) 06 +Do you wish to edit in CHS mode? [n] +Partition offset [0 - 31116288]: [2017280] +Partition size [1 - 29099135]: [29099135] 7812504 + +fdisk:*1> flag 2 + +fdisk:*1> edit 3 +Partition id ('0' to disable) [0 - FF]: [0] (? for help) 0B +Do you wish to edit in CHS mode? [n] +Partition offset [0 - 31116288]: [9829784] +Partition size [1 - 21286504]: [21286504] + +fdisk:*1> print + Starting Ending + #: id cyl hd sec - cyl hd sec [ start - size] +------------------------------------------------------------------------ + 1: 7F 1023 254 63 - 1023 254 63 [ 128 - 2017152] + 2: 06 1023 254 63 - 1023 254 63 [ 2017280 - 7812504] DOS > 32MB + 3: 0B 1023 254 63 - 1023 254 63 [ 9829784 - 21286504] Win95 FAT-32 + 4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused + +fdisk:*1> write +fdisk: 1> quit +---- + +[start=2] +. 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 -c 128 /dev/rdisk6s3 +---- + +[start=3] +. Confirm that the new partition scheme has been applied: + +[source,shell] +---- +diskutil list +---- + +[source] +---- +(...) +/dev/disk6 (external, physical): + #: TYPE NAME SIZE IDENTIFIER + 0: FDisk_partition_scheme *15.9 GB disk6 + 1: 0x7F 1.0 GB disk6s1 + 2: DOS_FAT_16 ZXUNOPLUS 4.0 GB disk6s2 + 3: DOS_FAT_32 EXTRA 10.9 GB disk6s3 +---- + +==== Linux + +You can use the command line. First, find out the device to erase: + +[source,shell] +---- +lsblk +---- + +For this example, it will be `sdc`: + +[source] +---- +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT +(..) +sdc 179:0 0 15,8G 0 disk +└─sdc1 179:1 0 15,8G 0 part +---- + +<<< + +Instructions: + +. Verify that the disk isn't mounted and edit the partition scheme (this step requires root privileges): + +[source,shell] +---- +sudo fdisk --compatibility=dos /dev/sdc +---- + +[source] +---- +Welcome to fdisk +Changes will remain in memory only, until you decide to write them. +Be careful before using the write command. + +Command (m for help): n +Partition type + p primary (0 primary, 0 extended, 4 free) + e extended (container for logical partitions) +Select (default p): p +Partition number (1-4, default 1): 1 +First sector (62-31116288, default 62): 128 +Last sector, +/-sectors or +/-size{K,M,G,T,P} (128-31116288, default 31116288): 2017152 + +Created a new partition 1 of type 'Linux' + +Command (m for help): t +Selected partition 1 +Hex code (type L to list all codes): 7f +Changed type of partition 'Linux' to 'unknown'. + +Command (m for help): n +Partition type + p primary (1 primary, 0 extended, 3 free) + e extended (container for logical partitions) +Select (default p): p +Partition number (2-4, default 2): +First sector (45-31116288, default 45): 2017280 . +Last sector, +/-sectors or +/-size{K,M,G,T,P} (2017153-31116288, default 31116288): 7812504 + +Created a new partition 2 of type 'Linux' + +Command (m for help): t +Partition number (1,2, default 2): 2 +Hex code (type L to list all codes): 6 + +Changed type of partition 'Linux' to 'FAT16'. + +Command (m for help): a +Partition number (1,2, default 2): 2 + +The bootable flag on partition 2 is enabled now. + +Command (m for help): n +Partition type + p primary (1 primary, 0 extended, 3 free) + e extended (container for logical partitions) +Select (default p): p +Partition number (2-4, default 3): 3 +First sector (45-31116288, default 45): 9829784 . +Last sector, +/-sectors or +/-size{K,M,G,T,P} (2017153-31116288, default 31116288): 31116288 + +Created a new partition 2 of type 'Linux' + +Command (m for help): t +Partition number (1,2, default 2): 2 +Hex code (type L to list all codes): b + +Changed type of partition 'Linux' to 'W95 FAT32'. + +Command (m for help): p +Disk /dev/sda +Disklabel type: dos +Disk identifier + +Device Boot Start End Sectors Size Id Type +/dev/sda1 128 2017152 2017025 984,9M 7f unknown +/dev/sda2 * 2017280 7626751 7812504 2,7G b FAT16 +/dev/sda3 9829784 7626751 21286504 21G b W95 FAT32 +---- + +[start=2] +. Format both FAT partitions (requires root privileges) + +[source,shell] +---- +sudo mkfs.fat -F 16 -n ZXUNOPLUS -s 128 /dev/sdc2 +sudo mkfs.fat -F 32 -n EXTRA -s 128 /dev/sdc3 +---- + +<<< + +[start=3] +. Confirm that the partition scheme has been changed: + +[source,shell] +---- +lsblk +---- + +[source] +---- +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT +(...) +sda 179:0 0 15,8G 0 disk +├─sda1 179:1 0 1G 0 part +├─sda2 179:2 0 4G 0 part +├─sda3 179:3 0 10,8G 0 part +---- + +==== +3e + +Once the SD card is ready to use, you can start Spectrum core with a +3e ROM and format the IDEDOS part. + +The first step is determine the disk geometry. With the cart inserted into the ZXUNO+, type the command: + +[source,basic] +---- +CAT TAB +---- + +This will give a result showing the number of https://en.wikipedia.org/wiki/Cylinder-head-sector[cylinders, heads and sectors]. + +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 +---- + +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. + +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] +---- +NEW DATA "Software",16 +NEW EXP "Swap1",4 +NEW DATA "Utils",8 +---- + +For more information about the different +3e disk commands , you can check https://worldofspectrum.org/zxplus3e/index.html[this page at World of Spectrum]. + +<<< + +=== Keyboard + +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). + +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. + +For the map to be preserved after a master reset, it has to be selected as `Default` in the BIOS. + +For more information, see https://www.zxuno.com/forum/viewtopic.php?f=37&t=208[this message in the ZX-Uno forum]. + +==== Spanish + +[.text-center] +image:./img/keyboardEsp.png[pdfwidth=70%] + +==== 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]. + +Since it is a 64K ROM with support for new hardware, 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. + +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] +==== +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. +==== + +<<< + +==== ZXUNO+ Commands + +As explained in the installation part, there are a series of commands that are exclusive to ZXUNO+: + +- `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 + +<<< + +=== Making RDM (RaDastan Movie) files + +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]. + +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 +---- + +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. + +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 myvideo.mp4 -vf "scale=128:96,fps=25" -start_number 0 img/output%05d.bmp +---- + +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 +---- + +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 ../myvideo.rdm +rm -rf img +---- + +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]. + +<<< + +== Upgrade + +=== BIOS + +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] +==== +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). +==== + +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 + +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. + +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]. + +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. + +[WARNING] +==== +At this moment, `romsupgr`, only works correctly with RomPack files using a maximum of 35 slots. +==== + +[NOTE] +==== +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. +==== + +To do the opposite process (save the ROMs in a RomPack file named `ROMS.ZX1`), you can use the` .romsback` command. + +[WARNING] +==== +At this moment, `romsback`, only stores correctly the first 35 used slots. +==== + +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 + +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). + +Official cores are https://github.com/zxdos/zxuno/tree/master/cores[available to download] from GitHub repository. + +To update or install a new core there are several possibilities. + +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] +==== +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`). +==== + +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] +==== +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 + +To update esxdos to a new version, the distribution must be obtained from https://www.esxdos.org[the official website]. + +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). + +Copy `ESXMMC.BIN` (or `ESXMMC.ROM`, depending on version) to the root of the SD card. + +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. + +Do a Hard-reset, or turn it off and on. + +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. + +=== Flash Memory + +You also can update all the FPGA flash memory. At this moment, from the BIOS you can only use 16MiB image files. + +Copy the image file (16MiB) `FLASH.ZX1` to the root of the SD card. + +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. + +Do a Hard-Reset or turn of and on again. + +[WARNING] +==== +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. +==== + +<<< + +== Other cores + +=== ZX Spectrum 48K (Kyp) + +https://github.com/Kyp069/zx48.zxuno/releases[Alternative core], whose objective is to be the most accurate implementation in timings, memory contention, etc. + +Main features: + +- Specdrum +- Turbosound (two AY chips) with mix selection ACB/ABC +- DivMMC with esxdos 0.8.8 + +==== SD card format + +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). + +==== Keyboard + +===== Special keys and buttons + +While the core is running: + +- `Esc`: BREAK +- `F5`: NMI +- `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. + +<<< + +=== ZX Spectrum 128K (Kyp) + +https://github.com/Kyp069/zx128.zxuno/releases[Alternative core], whose objective is to be the most accurate implementation in timings, memory contention, etc. + +Main features: + +- Specdrum +- Turbosound (two AY chips) with mix selection ACB/ABC +- DivMMC with esxdos 0.8.8 + +==== SD card format + +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). + +==== Keyboard + +===== Special keys and buttons + +While the core is running: + +- `Esc`: BREAK +- `F5`: NMI +- `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 + +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]. + +==== SD card format + +You have to use a SD card with the first partition in FAT16 format. + +Download the latest version of Atom Software Archive https://github.com/hoglet67/AtomSoftwareArchive/releases/latest[from GitHub]. + +You can set up the files in the SD in two different ways: + +. 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. + +. 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: + +---- + / + +-ATOM/ + | +-AA/ + | (...) + | +-AGD/ + | | +-SHOW2 + | | +-SHOW3 + | (...) + | +-MENU + | (...) + | +-TUBE/ + | | +-BOOT6502 + | (..) + | + +-MANPAGES/ + | +-CPM.MAN + | +-FLEX.MAN + | (...) + | + +-MENU +---- + +<<< + +==== Keyboard + +===== Special keys and buttons + +While the core is running: + +- `Shift+F10`: Shows Atom Software Archive Menu +- `F10`: Soft Reset +- `F1`: Turbo mode 1Mhz +- `F2`: Turbo mode 2Mhz +- `F3`: Turbo mode 4Mhz +- `F4`: Turbo mode 8Mhz + +The keyboard uses the following mapping: + +[.text-center] +image:img/keyboardAtom.jpg[pdfwidth=90%] + +<<< + +=== Acorn Electron + +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]. + +Main features: + +- Composite video/RGB and VGA 50Hz video output +- SD support with ".MMB" files +- Software loading via ZXUNO+ audio in port +- PS/2 keyboard + +==== SD card format + +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. + +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]. + +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: + +. 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. + +==== Keyboard + +===== Special keys and buttons + +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` + +<<< + +==== Basic Guide + +Once the SD card is inserted and the core running, if `BEEB.MMB` file was created correctly, on start, you should see: + +[source] +---- +Acorn Electron +Smart SPI +BASIC +> +---- + +Disc 0 from the image file is mounted automatically, and you can see it's contents using the command: + +[source] +---- +*CAT +---- + +To load, for example, the mene available with some image files available on internet, use the command: + +[source] +---- +CHAIN"MENU" +---- + +To load using the audio input: + +[source] +---- +*TAPE +CHAIN"" +---- + +And then start playing the external audio device. + +To show the list of available discs inside `BEEB.MMB` file: + +[source] +---- +*DCAT +---- + +To put a particular virtual disc in a virtual drive: + +[source] +---- +*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 + +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. + +ZXUNO+ version has been https://www.zxuno.com/forum/viewtopic.php?f=59&t=1346[made by McLeod]. + +Core features: + +- 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 + +==== SD card format + +This core does not use the SD card. + +==== Keyboard + +===== Special keys and buttons + +During core execution: + +- `Del`: `CLR`. +- `Print Scr` or `Left Windows`: `COPY` +- `F10` and `Ctrl+F10`: Soft Reset. +- `Ctrl+Alt+F5`: NMI. +- `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 + +==== Basic Guide + +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 + +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. + +ZXUNO+ Amstrad CPC 6128 core is based on the http://www.cpcwiki.eu/index.php/FPGAmstrad[FPGAmstrad] project by Renaud Hélias. + +Some of its features are: + +- 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 + +==== SD card format + +You have to use a SD card with the first partition in FAT32 format, with a maximum of 4GB in size, and 4096 bytes per cluster. + +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` + +It is also recommended to copy one or more disk image files (`DSK`) with the software that you want to run. + +Copy all `ROM` and `DSK` files to the root directory of the FAT32 partition. + +==== Keyboard + +===== Special keys and buttons + +During core execution: + +- `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 + +<<< + +==== Basic Guide + +Use the `CAT` command to see the contents of the currently loaded DSK file. + +[.text-center] +image:img/cpc.png[pdfwidth=70%] + +Type the command `RUN"` to load a program from disk + +[.text-center] +image:img/cpc2.png[pdfwidth=70%] + +Press `Page Up` key to reset and load the next `DSK` file. + +<<< + +=== Apple II + +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]. + +Some of its features are: + +- 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 + +For more info check https://zxuno.com/forum/viewforum.php?f=41[ZX-Uno forum]. + +==== SD card formatting + +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. + +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] +==== +This process can't be undone, and it will remove any content that there was previously in the SD card. +==== + +===== Windows + +Concatenate the disk images (with a maximum of 20) using `COPY`: + +[source,shell] +---- +COPY /B image1.nib + image2.nib + (...) + image20.nib apple2_20discs.img +---- + +Dump the new file to the SD card, for example, using http://hddguru.com/software/HDD-Raw-Copy-Tool/[HDD Raw Copy Tool]. + +===== MacOS and Linux + +Concatenate the disk images (with a maximum of 20) using `cat`: + +[source,shell] +---- +cat imagen.nib image2.nib (...) image20.nib > apple2_20discs.img +---- + +Dump the new file to the SD card, using `dd`: + +[source,shell] +---- +sudo umount /dev/... +sudo dd if=apple2_20discs.img of=/dev/... +---- + +==== Keyboard + +===== Special keys and buttons + +While the core is running: + +- `/` (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 + +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. + +There are three types: + +- 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) + +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]. + +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. + +==== Keyboard + +===== Special keys and buttons + +Most of the cores have the same control keys and buttons. + +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 is the delete key, located in the top-right portion of the keyboard, above `Enter`. + +<<< + +=== Atari 800XL + +https://en.wikipedia.org/wiki/Atari_8-bit_family#Newer_XL_machines[Atari 800XL] was a personal computer made by Atari in the eighties. + +This core has this features: + +- 320K expanded memory +- Drive support through SD +- Cart support +- Composite video and VGA +- Scanlines (VGA mode) +- Atari joystick support + +==== SD card + +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`) + +See the <<#_cores,corresponding section>> for instructions of how to install the Atari 800XL core in ZXUNO+. + +==== Keyboard + +===== Special keys and buttons + +While the core is running: + +- `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`: 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 + +<<< + +==== Basic Guide + +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%] + +The following options are available: + +- CPU Turbo +- Drive Turbo +- Ram +- Rom +- Drive 1 +- Drive 2 +- Drive 3 +- Drive 4 +- Cart +- Load memory +- Save memory +- Exit + +<<< +=== Atari 2600 + +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). + +ZXUNO+ core version is developed by Quest and DistWave. + +Some of the features of the core are: + +- RGB and VGA support +- Support for joysticks, keyboard, mouse and rotary encoder controls (see <<#_rotary_enoders,here>> for more information) + +==== SD card format + +You need a SD card with the first partition in FAT16 format to store ROM image files of games to load. + +See the <<#_cores,corresponding section>> for instructions of how to install the Atari 2600 core in ZXUNO+. + +==== Keyboard + +===== Special keys and buttons + +During the core execution: + +- `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. + +<<< + +==== Basic Guide + +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%] + +The following options are available: + +- Reset core +- Scanlines +- RGB Mode (PAL/NTSC) +- Color +- Difficulty A +- Difficulty B +- Select +- Start +- Load ROM +- Exit + +<<< + +=== ColecoVision + +https://en.wikipedia.org/wiki/ColecoVision[ColecoVision] is Coleco Industries' home video-game console that was released in August 1982. + +ZXUNO+ core is based on https://github.com/fbelavenuto/colecofpga[Fabio Belavenuto's project]. + +Some features of this core are: + +- BIOS ROM is loaded from SD card +- Supports multicart ROM, also loaded from SD +- Only works with VGA + +==== SD card format + +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]. + +See the <<#_cores,corresponding section>> for instructions of how to install the ColecoVision core in ZXUNO+. + +==== Keyboard + +===== Special keys and buttons + +While the core is running: + +- 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 + +<<< + +==== Basic Guide + +On startup, BIOS ROM is loaded from the card, and then the multicart ROM. + +[.text-center] +image:img/colecouno.jpg[pdfwidth=70%] + +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 + +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. + +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. + +Featutres: + +- 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 + +<<< + +==== SD card format + +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]. + +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] +==== +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] +==== +This process can't be undone, and it will remove any content that there was previously in the SD card. +==== + +===== Windows + +Concatenate the disk images using `COPY`: + +[source,shell] +---- +COPY /B imagen1.d64 + dummyto256.bin + imagen2.d64 + dummyto256.bin + (...) c16rawsd.img +---- + +Dump the new file to the SD card, for example, using http://hddguru.com/software/HDD-Raw-Copy-Tool/[HDD Raw Copy Tool]. + +===== MacOS and Linux + +Concatenate the disk images using `cat`: + +[source,shell] +---- +cat imagen1.d64 dummyto256.bin imagen2.d64 dummyto256.bin (...) > c16rawsd.img +---- + +Dump the new file to the SD card, using `dd`: + +[source,shell] +---- +sudo umount /dev/... +sudo dd if=c16rawsd.img of=/dev/... +---- + +If it wasn't already, <<#_cores,install Commodore 16 core>> into ZXUNO+. + +<<< + +==== Keyboard + +===== Special keys and buttons + +While the core is running: + +- `Esc`: Esc +- `Tab`: RUN/STOP +- `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. + +==== Basic Guide + +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. + +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`. + +To load the first `PRG` file of a disk, press `Shit+TAB` or use the commadn `DLOAD"*"`. + +<<< + +=== Commodore 64 + +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. + +The ZXUNO+ core has been made by Quest. + +Features: + +- 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 +- 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 + +<<< + +==== SD card format + +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]. + +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] +==== +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] +==== +This process can't be undone, and it will remove any content that there was previously in the SD card. +==== + +===== Windows + +Concatenate the disk images using `COPY`: + +[source,shell] +---- +COPY /B imagen1.d64 + dummyto256.bin + imagen2.d64 + dummyto256.bin + (...) c64rawsd.img +---- + +Dump the new file to the SD card, for example, using http://hddguru.com/software/HDD-Raw-Copy-Tool/[HDD Raw Copy Tool]. + +===== MacOS and Linux + +Concatenate the disk images using `cat`: + +[source,shell] +---- +cat imagen1.d64 dummyto256.bin imagen2.d64 dummyto256.bin (...) > c64rawsd.img +---- + +Dump the new file to the SD card, using `dd`: + +[source,shell] +---- +sudo umount /dev/... +sudo dd if=c64rawsd.img of=/dev/... +---- + +If it wasn't already, <<#_cores,install Commodore 64 core>> into ZXUNO+. + +<<< + +==== Keyboard + +===== Special keys and buttons + +Durante la ejecución del core: + +While the core is running: + +- `Esc`: Start/Stop +- `Tab`: RUN/STOP +- `Alt` = Commodore +- 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. + +<<< + +==== Basic Guide + +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. + +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`. + +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. + +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`. + +<<< + +=== MSX + +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]. + +Some of its features are: + +- MSX1 at 50Hz or 60Hz +- 128K Nextor (MSX-DOS2 evolution) ROM with SD driver +- Reconfigurable keyboard map +- Scanlines +- Joystick support + +==== SD card format + +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. + +You need to get: + +- 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] + +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. + +Copy `NEXTOR.SYS` to the same place. + +Copy `NEXTOR.ROM` inside the `MSX1FPGA` directory. + +Copy one MSX1 ROM (`MSX_INT.rom`, `MSX_JP.rom` or `MSX_USA.rom`) inside the `MSX1FPGA` directory, but renaming it to `MSX1BIOS.ROM`. + +The file `/MSX1FPGA/config.txt` keeps the core configuration, using this format: + +---- +11SP01 +|||||| +|||||+-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 +---- + +If it wasn't already, <<#_cores,install MSX core>> into ZXUNO+. + +<<< + +==== Keyboard + +===== Special keys and buttons + +While running the core: + +- `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`: 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] +==== +In BASIC use `CTRL+STOP` (`Ctrl+End`) keys to stop the execution of a program. +==== + +[NOTE] +==== +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]. +==== + +<<< + +==== Basic Guide + +To go to BASIC from MSX-DOS you must execute `BASIC` command. + +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] +==== +Loading from audio sources only works if turbo mode is disabled. +==== + +To go to MSX-DOS from BASIC, execute `CALL SYSTEM`. + +===== MSXCTRL + +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. + +When running `MSXCTRL` all the use parameters are shown: + +---- +MSXCTRL.COM - Utility to manipulate MSX1FPGA core. +HW ID = 06 - ZX-Uno Board +Version 1.3 +Mem config = 82 +Has HWDS = FALSE + +Use: + +MSXCTRL -h -i -r -b -[5|6] -m<0-2> + -c<0-1> -d<0-1> -t<0-1> + [-w | -l] + -k<0-255> -e<0-255> -p<0-255> + -s<0-255> -o<0-255> -a<0-255> +---- + +`MSXCTRL -h` show help for a parameter. For example, `MSXCTRL -i` show the current configuration, `-t 1` sets turbo mode on, etc. + +===== Other + +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). + +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 (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]. + +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]. + +Some features of this core are: + +- 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 + +==== SD card format + +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. + +See the <<#_cores,corresponding section>> for instructions of how to install the NES core in ZXUNO+. + +==== Keyboard + +===== Special keys and buttons + +While the core is running: + +- `Esc` or joystick button 2: Show or hide configuration menu +- Cursor keys, and `Enter` to use the menu +- `Ctrl+Alt+Backspace`: Hard reset + +<<< + +==== Basic Guide + +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%] + +The following options are available: + +- Reset NES +- Scanlines +- HQ2X Filter +- P1 Select +- P1 Start +- Load ROM +- Exit + +<<< + +=== PC XT + +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. + +Features: + +- 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 + +==== SD card format + +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]. + +See the <<#_cores,corresponding section>> for instructions of how to install the PC XT core in ZXUNO+. + +<<< + +=== SmartROM + +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. + +==== SD card format + +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. + +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. + +Finally, if your PS/2 keyboard is not in Spanish, you can copy the coresponding <<#_keyboard,keyboard map file>>, renamed as `KEYMAP.ZX1`. + +See the <<#_cores,corresponding section>> for instructions of how to install the SmartROM core in ZXUNO+. + +<<< + +=== ZX81 + +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. + +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 previos ZX97 implementation]. + +==== SD card format + +This core does not use the SD card + +==== Keyboard + +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%] + +==== Basic Guide + +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] +==== +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. +==== + +<<< + +== Other Hardware + +=== Loading from tape + +Some cores can load, as the original machines could, from a external audio device like a cassette player or something else simulating it. + +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). + +==== Cassette Player + +The use is exactly the same as when using the original computers: + +. 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) + +==== Computer + +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 + +This program for Windows, MacOS or Linux, can play directly a `TZX` tape file through the audio output of the computer. + +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>>. + +. 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 +---- + +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] +==== +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). +==== + +====== Compile source code (MacOS or Linux) + +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]. + +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] +---- +aclocal && autoconf && autoheader && automake --add-missing +./configure +make +---- + +If all goes well, a new file named `tzxplay` will be created, which you can copy anywhere and then use. You can delete the compilation directory. + +==== Mobile phone, tablet, MP3 player, etc. + +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] is an App for Android which can play tape files through the headphone output. + +[WARNING] +==== +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. + +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. +==== + +===== Audio file conversion + +These are some of the many programas that exist and which can export tape files to audio files. + +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 + +`tape2wav` from https://fuse-emulator.sourceforge.net/[Fuse Utilities] is a command line utility that can export from `TZX` `PZX` and `TAP` to `WAV`. + +`pzx2wav` in http://zxds.raxoft.cz/pzx.html[PZX Tools] is another command line utility which exports to `WAV`. + +`tsx2wav` in https://github.com/nataliapc/MSX_devs/tree/master/TSXphpclass[TSXphpclass] is made with PHP and that can export from `TSX` to `WAV`. + +<<< + +==== Miniduino + +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 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. + +===== Ports and buttons + +[.text-center] +image:img/MiniduinoBack.jpg[pdfwidth=50%] + +[.text-center] +image:img/MiniduinoFront.jpg[pdfwidth=50%] + +[cols=2*] +|=== +|1 +|Power +|2 +|Audio output +|3 +|Control button +|4 +|Motor control +|5 +|SD card slot +|6 +|Screen +|=== + +<<< + +===== Configuration + +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. + +The card must have the first partition formatted as FAT16 or FAT32. + +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. + +If you hava a device that can use motor control, you can also use a cable with a 2.6 mm jack. + +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] +==== +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. +==== + +<<< + +===== Use + +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%] + +Pressing down the control button shows the options menu which can set the following: + +- 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 + +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%] + +When the player is stopped (file and directories browser): + +- 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 + +<<< + +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%] + +When in pause (tape block browser: + +- 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 + +<<< + +===== Maxduino firmware upgrade + +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. + +====== Environment setup + +Firmware flashing is done from a computer (Windows, Mac, Linux) with https://www.arduino.cc/en/software[Arduino IDE] installed. + +You have to install SDFat (1.1.4) software library selecting the menu option Program -> include library -> manage libraries + +Minidiuno microcontroller support must also be added. This is done in two steps: + +First, adding ARM Cortex M3 support from menu Tools -> board -> board manager, and installing "Arduino SAM boards (Cortex-M3)" + +Then, you have to add STM32 microcontroller support, downloading the file available at https://github.com/rogerclarkmelbourne/Arduino_STM32/archive/master.zip[this link]. + +Extract the contents to the current user directory in + +[source,shell] +---- +...Arduino/hardware/Arduino_STM32 +---- + +If on Windows, install the USB device controller, running (with elevated privileges: + +[source,shell] +---- + ...\drivers\win\install_drivers.bat +---- + +On Linux, install with root privileeges the necessary `udev` rules: + +[source,shell] +---- +...tools/linux/install.sh +---- + +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]. + +<<< + +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] +---- +if [ $# -eq 5 ]; then + dfuse_addr="--dfuse-address $5" +else + dfuse_addr="" +fi +---- + +And have to be changed into this: + +[source,shell] +---- +dfuse_addr="" +---- + +<<< + +====== Upgrade + +Once you have the environment ready, download the software from the https://github.com/rcmolina/MaxDuino_BETA[official repository in GitHub] + +[NOTE] +==== +Minduino player with STM32 microcontroller is only supported from 1.65 and up +==== + +Load the project file with Arduino IDE (for example `MaxDuino_v1.66.ino`). + +Check in the file `userSTM32Config.h` that all logo entries are commented except for Miniduino and, if not, change them. + +[source,c] +---- +... +//#define tanque4 +//#define tanque1 +//#define dostanques +//#define cablemax +//#define sony +#define miniduino +... +---- + +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) + +Set the following options in menu "": + +[source] +---- +Board: Generic STM32F104C Series +Variant: STM32F104C8 (20k RAM, 64k Flash) +Upload Method: STM32duino bootloader +CPU Speed: 72Mhz (Normal) +Optimize: Smallest (default) +Port: +---- + +Finally, click on the firmware load button and wait for a few seconds while the project is compiled and loaded into the device. + +If everything has been done correctly the Miniduino will restart and show on the screen the new firmware version. + +<<< + +== Troubleshooting + +=== Firmware images management + +There are several tools with you can use to make and/or edit the contents of `ZX1`, `ZX2`, `ZXD` files. + +==== zx123_tool + +This is a tool to analyze, extract and inject data in SPI flash image files for ZX-Uno, ZXDOS and similar devices. + +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]. + +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]. + +Once extracted, you have to run from a shell the main script using Python 3. This may change depending on the operating system. + +For example, on Windows, it's usually: + +[source,shell] +---- +py -3 zx123_tool.py +---- + +With other operating systems it normally is like: + +[source,shell] +---- +python3 ./zx123_tool.py +---- + +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 +---- + +Where `FLASH.ZX1` is the path to the original file and `FLASHempty.ZX1` is the path to the new "clean" file. + +<<< + +*List the contents of an image* + +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 +---- + +To show the contents of the same file, including ZX Spectrun ROMs info: + +[source,shell] +---- +... zx123_tool.py -i FLASH.ZX1 -l -r +---- + +*Change the BIOS of an image* + +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 +---- + +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). + +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 +---- + +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. + +<<< + +*Add a Spectrum ROM to an image* + +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 +---- + +See the https://github.com/kounch/zx123_tool/[documentation] for all the possible options when adding a Spectrum ROM. + +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` +|Keyboard issue 3 enabled (instead of issue 2) +|`c` +|Disable memory contention +|`d` +|Enable DivMMC +|`n` +|Enable NMI DivMMC (esxdos Menu) +|`p` +|Use Pentagon Timings +|`t` +|Use 128K timings +|`s` +|Disable DivMMC and ZXMMC ports +|`m` +|Enable Timex Horizontal MMU +|`h` +|Disable ROM high bit (1FFD bit 2) +|`l` +|Disable ROM low bit (7FFD bit 4) +|`1` +|Disable 1FFD port (+2A/3 paging) +|`7` +|Disable 7FFD port (128K paging) +|`2` +|Disable TurboSound (secondary AY chip) +|`a` +|Disable AY chip +|`r` +|Disable Radastanian mode +|`x` +|Disable Timex mode +|`u` +|Disable ULAPlus +|=== + +<<< + +*Install a Core to an image* + +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' +---- + +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 +---- + +*Change esxdos ROM of an image* + +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 +---- + +*Mix several actions in one line* + +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 -k 3 -a ROM,5,xdnlh17,Spec48,48.rom -a CORE,3,TBBlue,TBBLUE.ZX1 -c 3 +---- + +<<< + +=== Firmware recovery + +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. + +When this happens, there are several recovery methods that let you install again the firmware. + +==== JTAG cable connections + +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] +==== +*DO NOT* connect the 3V line +==== + +<<< + +==== Recovery using a Raspberry Pi + +*Hardware required*: + +- 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 required*: + +- 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] + +*Instruction Steps*: + +. 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] +---- +sudo apt-get update +sudo apt-get install git autoconf libtool make pkg-config +sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev telnet +sudo apt-get install libusb-dev libftdi-dev +git clone git://git.code.sf.net/p/openocd/code openocd-code +cd openocd-code/ +./bootstrap +./configure --enable-usb_blaster --enable-sysfsgpio --enable-bcm2835gpio +make +sudo make install +cd .. +rm -rf ./openocd-code +---- + +<<< + +[start=3] +. 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. + +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%] + +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*] +|=== +|ZXUNO+ JTAG +|GPIO +|Raspberry Pi Pin +|`TMS` +|GPIO#6 +|`31` +|`TDI` +|GPIO#13 +|`33` +|`TDO` +|GPIO#19 +|`35` +|`TCK` +|GPIO#26 +|`37` +|`GND` +|GND +|`39` +|=== + +[start=4] +. 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/` + +. 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] +. 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] +---- +# Header pin numbers: 37 31 33 35 +bcm2835gpio_jtag_nums 26 6 13 19 +---- + +[start=7] +. Comment, if it wasnt't already, the line `bcm2835gpio_swd_nums` (not necessary for USB-Blaster connection): + +[source] +---- +#bcm2835gpio_swd_nums 11 25 +---- + +[start=8] +. Add, to the end of the file, the line `adapter speed 250` (again, not necessary for USB-Blaster): + +[source] +---- +adapter speed 250 +---- + +[start=9] +. Turn on the ZXUNO+. + +. 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`. + +For GPIO connection: + +[source,shell] +---- +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" +---- + +For USB-Blaster connection: + +[source,shell] +---- +sudo openocd -f /usr/local/share/openocd/scripts/interface/altera-usb-blaster.cfg -f /usr/local/share/openocd/scripts/cpld/xilinx-xc6s.cfg -c "init; xc6s_program xc6s.tap; pld load 0 recovery.bit ; exit" +---- + +<<< + +[start=11] +. If all goes well, we will see that the FPGA LED change their state and the BIOS is shown on the display. + +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] +. 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]. + +. If using a USB-Blaster connection, unplug the connector. + +<<< + +[start=14] +. 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] +==== +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] +. After some minutes, the process will end, and, after turning the ZXUNO+ off and on, it should start fine. + +[NOTE] +==== +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. +==== + +<<< + +== References + +https://zxuno.speccy.org/index.shtml[ZX-Uno] + +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[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[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://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 for ZX-UNO (Kyp)] + +https://www.zxuno.com/forum/viewtopic.php?f=53&t=2080[Core MSX] + +https://github.com/fbelavenuto/msx1fpga[MSX1FPGA] + +https://www.forofpga.es/viewtopic.php?t=316[MSX Pack] + +https://www.konamiman.com/msx/msx-s.html#nextor[Nextor para MSX] + +https://www.konamiman.com/msx/nextor/docs/Nextor%202.0%20User%20Manual.pdf[Nextor User Manual] + +https://konamiman.github.io/MSX2-Technical-Handbook/md/Chapter3.html[MSX-DOS] + +https://www.zxuno.com/forum/viewtopic.php?f=16&t=4006[Atom Software Archive en carpeta ATOM] + +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] + +http://www.videopac.org/manuals/voice.pdf[Odtyssey Speech And Sound Effects Module Manual] + +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 new file mode 100644 index 0000000..70e65e3 Binary files /dev/null and b/doc/English ZXUNO+ Manual.pdf differ diff --git a/doc/Manual de ZXUNO+.adoc b/doc/Manual de ZXUNO+.adoc new file mode 100644 index 0000000..84b2373 --- /dev/null +++ b/doc/Manual de ZXUNO+.adoc @@ -0,0 +1,2791 @@ += Manual de ZXUNO+ +:author: kounch +:revnumber: 0.4 +: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+ +:icons: font +:source-highlighter: rouge +:toc: left +:toc-title: Índice +:toclevels: 4 + +<<< + +== Introducción + +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. + +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. + +La página oficial de ZX-Uno es https://zxuno.speccy.org. + +=== Agradecimientos + +La mayor parte del contenido de este documento se basa en información compartida anteriormente: + +- 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] + +Un agradecimento especial a desUBIKado por la intensa y continua labor recopilando y recabando información sobre los distintos cores y funcionalidades. + +Sin el trabajo previo de todas estas personas (y más), ese manual no podría existir. + +<<< + +=== Puertos y Conectores + +[.text-center] +image:./img/zxunofront.png[pdfwidth=65%] + +[.text-center] +image:./img/zxunoback.png[pdfwidth=65%] + +[.text-center] +image:./img/zxunoboard.png[pdfwidth=65%] + +==== Descripción + +[cols=2*] +|=== +|1 +|Salida de Sonido +|2 +|Salida de vídeo +|3 +|Salida / Puerto de Expansión +|4 +|Ranura SD +|5 +|Enchufe de Alimentación +|6 +|Entrada de Sonido +|7 +|Salida de vídeo RGB (RJ-45) +|8 +|Puerto de Ratón USB (PS/2) +|9 +|Puerto de Teclado USB (PS/2) +|=== + +===== Salida de vídeo RJ-45 + +Este es el esquema del conector RJ-45 para utilizar como salida VGA: + +[.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: + +[.text-center] +image:img/rj45scart.png[pdfwidth=50%] + +<<< + +=== Configuración Inicial + +Para poder poner en marcha un ZXUNO+ hace falta, al menos, lo siguiente: + +- 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) + +Para poder aprovechar todo su potencial, es útil tener también: + +- 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). + +==== Formato de la tarjeta SD + +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. + +[NOTE] +==== +El tamaño máximo de una partición FAT16 son 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`). +==== + +===== 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]. + +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. + +===== 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. + +Para configuraciones más complejas, será necesario utilizar la línea de comandos. + +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: + +[source,shell] +---- +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): + +[source,shell] +---- +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): + +[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 +---- + +[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. +==== + +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): + +[source,shell] +---- +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. + +<<< + +==== 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. + +Para poder utilizarlo es necesario incluir los ficheros correspondientes en la primera partición de la tarjeta SD. + +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]. + +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. + +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. + +[.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: + + back16m + backup + corebios + dmaplayw + esprst + iwconfig + joyconf + keymap + loadpzx + playmid + playrmov + romsback + romsupgr + upgr16m + upgrade + zxuc + zxunocfg + +<<#_comandos_para_ZXUNO+,Más adelante>> se explica lo que hace cada uno de ellos. + +<<< + +=== 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. + +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. + +==== 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: + +- 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) +- DivMMC +- Soporte NMI para DivMMC +- Soporte para nuevos modos gráficos (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]. + +==== 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). + +==== 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). + +==== 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. + +<<< + +==== Advanced + +[.text-center] +image:img/bios5.png[pdfwidth=70%] + +La pantalla de configuración avanzada sirve para modificar los siguientes ajustes: + +- 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 + +<<< + +==== Exit + +[.text-center] +image:img/bios6.png[pdfwidth=70%] + +Finalmente, desde la última pantalla se puede: + +- 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) + +== 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. + +Estas son algunas de sus principales características: + +- 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í. + +<<< + +=== Teclado + +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). + +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]. + +Puesto que se trata de una ROM de 64K con soporte para nuevo hardware, 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). + +[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. + +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. +==== + +[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. +==== + +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). + +En la segunda particion se puede instalar, tal y como se explicó anteriormente <<#_esxdos,exsdos>> y otros programas. + +==== Windows + +Se puede utilizar el administrador de discos de Windows. Los pasos a seguir serían: + +. Eliminar todas las particiones de la tarjeta + +. Crear una partición extendida, del tamaño que se quiera utilizar para IDEDOS + +. Crear una partición primaria de 4GB y formatear como FAT16 + +. Opcionalmente, crear otra partición primaria ocupando el resto del espacio y formatear como FAT32 + +<<< + +==== MacOS + +Será necesario utilizar la línea de comandos. Lo primero es determinar el disco a formatear: + +[source,shell] +---- +diskutil list +---- + +En este ejemplo sería el disco 6: + +[source] +---- +(...) +/dev/disk6 (external, physical): + #: TYPE NAME SIZE IDENTIFIER + 0: FDisk_partition_scheme *15.9 GB disk6 + 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): + +[source,shell] +---- +diskutil unmountDisk /dev/disk6 +sudo fdisk -e /dev/rdisk6 +---- + +[source] +---- +fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory +Enter 'help' for information +fdisk: 1> erase +fdisk:*1> edit 1 +Partition id ('0' to disable) [0 - FF]: [0] (? for help) 7F +Do you wish to edit in CHS mode? [n] +Partition offset [0 - 31116288]: [63] 128 +Partition size [1 - 31116287]: [31116287] 2017152 + +fdisk:*1> edit 2 +Partition id ('0' to disable) [0 - FF]: [0] (? for help) 06 +Do you wish to edit in CHS mode? [n] +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] +Partition offset [0 - 31116288]: [9829784] +Partition size [1 - 21286504]: [21286504] + +fdisk:*1> print + Starting Ending + #: id cyl hd sec - cyl hd sec [ start - size] +------------------------------------------------------------------------ + 1: 7F 1023 254 63 - 1023 254 63 [ 128 - 2017152] + 2: 06 1023 254 63 - 1023 254 63 [ 2017280 - 7812504] DOS > 32MB + 3: 0B 1023 254 63 - 1023 254 63 [ 9829784 - 21286504] Win95 FAT-32 + 4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused + +fdisk:*1> write +fdisk: 1> quit +---- + +[start=2] +. Formatear las particiones FAT (requiere permisos de administrador) + +[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 +---- + +[start=3] +. Comprobar cómo el esquema de particiones ha cambiado y ya es el que se deseaba: + +[source,shell] +---- +diskutil list +---- + +[source] +---- +(...) +/dev/disk6 (external, physical): + #: TYPE NAME SIZE IDENTIFIER + 0: FDisk_partition_scheme *15.9 GB disk6 + 1: 0x7F 1.0 GB disk6s1 + 2: DOS_FAT_16 ZXUNOPLUS 4.0 GB disk6s2 + 3: DOS_FAT_32 EXTRA 10.9 GB disk6s3 +---- + +==== Linux + +Será necesario utilizar la línea de comandos. Lo primero es determinar el disco a formatear: + +[source,shell] +---- +lsblk +---- + +<<< + +En este ejemplo sería `sdc`: + +[source] +---- +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT +(..) +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): + +[source,shell] +---- +sudo fdisk --compatibility=dos /dev/sdc +---- + +[source] +---- +Welcome to fdisk +Changes will remain in memory only, until you decide to write them. +Be careful before using the write command. + +Command (m for help): n +Partition type + p primary (0 primary, 0 extended, 4 free) + e extended (container for logical partitions) +Select (default p): p +Partition number (1-4, default 1): 1 +First sector (62-31116288, default 62): 128 +Last sector, +/-sectors or +/-size{K,M,G,T,P} (128-31116288, default 31116288): 2017152 + +Created a new partition 1 of type 'Linux' + +Command (m for help): t +Selected partition 1 +Hex code (type L to list all codes): 7f +Changed type of partition 'Linux' to 'unknown'. + +Command (m for help): n +Partition type + p primary (1 primary, 0 extended, 3 free) + e extended (container for logical partitions) +Select (default p): p +Partition number (2-4, default 2): +First sector (45-31116288, default 45): 2017280 . +Last sector, +/-sectors or +/-size{K,M,G,T,P} (2017153-31116288, default 31116288): 7812504 + +Created a new partition 2 of type 'Linux' + +Command (m for help): t +Partition number (1,2, default 2): 2 +Hex code (type L to list all codes): 6 + +Changed type of partition 'Linux' to 'FAT16'. + +Command (m for help): a +Partition number (1,2, default 2): 2 + +The bootable flag on partition 2 is enabled now. + +Command (m for help): n +Partition type + p primary (1 primary, 0 extended, 3 free) + e extended (container for logical partitions) +Select (default p): p +Partition number (2-4, default 3): 3 +First sector (45-31116288, default 45): 9829784 . +Last sector, +/-sectors or +/-size{K,M,G,T,P} (2017153-31116288, default 31116288): 31116288 + +Created a new partition 2 of type 'Linux' + +Command (m for help): t +Partition number (1,2, default 2): 2 +Hex code (type L to list all codes): b + +Changed type of partition 'Linux' to 'W95 FAT32'. + +Command (m for help): p +Disk /dev/sda +Disklabel type: dos +Disk identifier + +Device Boot Start End Sectors Size Id Type +/dev/sda1 128 2017152 2017025 984,9M 7f unknown +/dev/sda2 * 2017280 7626751 7812504 2,7G b FAT16 +/dev/sda3 9829784 7626751 21286504 21G b W95 FAT32 +---- + +[start=2] +. Formatear las particiones FAT (requiere permisos de root) + +[source,shell] +---- +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: + +[source,shell] +---- +lsblk +---- + +[source] +---- +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT +(...) +sda 179:0 0 15,8G 0 disk +├─sda1 179:1 0 1G 0 part +├─sda2 179:2 0 4G 0 part +├─sda3 179:3 0 10,8G 0 part +---- + +==== +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. + +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: + +[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]. + +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: + +[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. + +<<< + +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: + +[source,basic] +---- +NEW DATA "Software",16 +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]. + +<<< + +=== Comandos de esxdos + +==== Guía básica + +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. + +Los principales comandos "DOT" commands son los siguientes: + +- `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`) + +Algunos comandos extendidos de BASIC son: + +- `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 + +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. + +[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. +==== + +<<< + +==== Comandos para ZXUNO+ + +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: + +- `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. + +<<< + +=== Creación de vídeos RDM (RaDastan Movie) + +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`). + +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. + +[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. + +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. + +[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 +---- + +Ahora transformaremos los ficheros `BMP` a `BMP` (v3) de 16 colores. + +[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. + +[source,shell] +---- +(...)/makevideoradas img/output +mv img/output.rdm ../mivideo.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. + +<<< + +== Actualizaciones + +=== 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] + +[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). +==== + +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. + +=== 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. + +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]. + +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. + +[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". +==== + +Para hacer el proceso contrario (guardar las ROMs en un fichero RomPack llamado `ROMS.ZX1`), se puede usar el comando `.romsback`. + +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. + +<<< + +=== 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). + +Los cores oficiales están https://github.com/zxdos/zxuno/tree/master/cores[disponibles para descargar] en el repositorio en GitHub. + +Para actualizar o instalar un nuevo core hay varias alternativas. + +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). + +[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`). +==== + +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. + +[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`. +==== + +=== 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]. + +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+). + +Copiar `ESXMMC.BIN` (o `ESXMMC.ROM`, según la versión) en la raíz de la tarjeta SD. + +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. + +Realizar un Hard-reset, o apagar y encender. + +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. + +=== Memoria Flash + +También es posible actualizar la memoria flash entera de la FPGA. + +Copiar el archivo de imagen (de 16MiB) `FLASH.ZX1` en la raíz de la tarjeta SD. + +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...`, . + +Realizar un Hard-reset, o apagar y encender. + +[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. +==== + +<<< + +== Otros 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. + +Sus características principales son: + +- Specdrum +- Turbosound (dos chips AY) con posibilidad de elegir mix ACB/ABC +- DivMMC con esxdos 0.8.8 + +==== Formato de Tarjeta SD + +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). + +==== Teclado + +===== Teclas especiales y botones + +Durante la ejecución del core: + +- `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. + +<<< + +=== 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. + +Sus características principales son: + +- Specdrum +- Turbosound (dos chips AY) con posibilidad de elegir mix ACB/ABC +- DivMMC con esxdos 0.8.8 + +==== Formato de Tarjeta SD + +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). + +==== Teclado + +===== Teclas especiales y botones + +Durante la ejecución del core: + +- `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. + +<<< + +=== 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]. + +Características principales: + +- Soporte para cargar software con tarjeta SD +- Sólo VGA + +==== Formato de Tarjeta SD + +Se debe de utilizar una tarjeta SD con la primera partición en formato FAT16. + +Descargar la última versión de Atom Software Archive https://github.com/hoglet67/AtomSoftwareArchive/releases/latest[desde GitHub]. + +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: + +---- + / + +-ATOM/ + | +-AA/ + | (...) + | +-AGD/ + | | +-SHOW2 + | | +-SHOW3 + | (...) + | +-MENU + | (...) + | +-TUBE/ + | | +-BOOT6502 + | (..) + | + +-MANPAGES/ + | +-CPM.MAN + | +-FLEX.MAN + | (...) + | + +-MENU +---- + +<<< + +==== Teclado + +===== Teclas especiales y botones + +Durante la ejecución del core: + +- `Mayús+F10`: Muestra el menú de Atom Software Archive +- `F10`: Soft Reset +- `F1`: Modo turbo 1Mhz +- `F2`: Modo turbo 2Mhz +- `F3`: Modo turbo 4Mhz +- `F4`: Modo turbo 8Mhz + +El teclado está mapeado en inglés, según el siguiente esquema: + +[.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)]. + +Características principales: + +- 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) + +==== Formato de Tarjeta SD + +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. + +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]. + +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: + +. 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. + +==== Teclado + +===== Teclas especiales y botones + +Durante la ejecución del core: + +- `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`. + +<<< + +==== Guía básica + +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: + +[source] +---- +Acorn Electron +Smart SPI +BASIC +> +---- + +Automáticamente se monta el disco 0 de la imagen, y se puede ver su contenido con el comando: + +[source] +---- +*CAT +---- + +Para cargar, por ejemplo, el menú de juegos que viene en algunas imágenes disponibles en internet, usar el comando: + +[source] +---- +CHAIN"MENU" +---- + +Para cargar desde la entrada de audio: + +[source] +---- +*TAPE +CHAIN"" +---- + +Y entonces comenzar la reproducción. + +Para ver una lista de los discos disponibles en el fichero `BEEB.MMB`: + +[source] +---- +*DCAT +---- + +Para insertar un disco concreto en una unidad virtual concreta: + +[source] +---- +*DIN numerodisco numerounidad +---- + +<<< + +=== 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]. + +Características del core: + +- 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 + +==== Formato de Tarjeta SD + +Este core no utiliza la tarjeta SD. + +==== Teclado + +===== Teclas especiales y botones + +Durante la ejecución del core: + +- `Supr`: `CLR`. +- `Impr. Pant` o `Windows Izquierda`: `COPY` +- `F10` y `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 + +==== Guía básica + +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. + +<<< + +=== 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. + +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. + +Algunas de sus características son: + +- 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 + +==== Formato de Tarjeta SD + +Se debe de utilizar una tarjeta SD con la primera partición en formato FAT32, de 4GB de tamaño máximo y 4096 bytes por 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]: + +- `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. + +Copiar tanto los ficheros `ROM` como los `DSK` a la raíz de la partición FAT32. + +==== Teclado + +===== Teclas especiales y botones + +Durante la ejecución del core: + +- `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. + +<<< + +==== Guía básica + +Escribir el comando `CAT` para ver el contenido del fichero DSK cargado actualmente. + +[.text-center] +image:img/cpc.png[pdfwidth=70%] + +Escribir el comando `RUN"` para cargar un programa del disco + +[.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. + +<<< + +=== 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]. + +Algunas de sus características son: + +- 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 + +Para más información consultar https://zxuno.com/forum/viewforum.php?f=41[el foro oficial de ZX-Uno]. + +==== Formato de Tarjeta SD + +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. + +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]. + +[WARNING] +==== +Este proceso borra el contenido que hubiera antes en la tarjeta SD, y no se puede deshacer. +==== + +===== Windows + +Concatenar las imágenes (máximo 20) usando `COPY`: + +[source,shell] +---- +COPY /B imagen1.nib + imagen2.nib + (...) + imagen20.nib apple2_20discos.img +---- + +Volcar la imagen en la SD, por ejemplo, usando http://hddguru.com/software/HDD-Raw-Copy-Tool/[HDD Raw Copy Tool]. + +===== MacOS y Linux + +Concatenar las imágenes (máximo 20) usando `cat`: + +[source,shell] +---- +cat imagen1.nib imagen2.nib (...) imagen20.nib > apple2_20discos.img +---- + +Volcar la imagen en la SD, usando `dd`: + +[source,shell] +---- +sudo umount /dev/... +sudo dd if=apple2_20discos.img of=/dev/... +---- + +==== Teclado + +===== Teclas especiales y botones + +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`. +- `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+). + +Existen principalmente tres tipos: + +- 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) + +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. + +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. + +==== Teclado + +===== Teclas especiales y botones + +En general, casi todos los cores tienen unas teclas y botones de control similares. + +Durante la ejecución: + +- `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. +- `F10`: Soft Reset +- `Ctrl+Alt+Backspace`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima de `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. + +La versión para ZXUNO+ tiene estas características: + +- 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 + +==== Formato de Tarjeta SD + +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`) + +Si no estuviera ya, <<#_cores,instalar el core de Atari 800XL>> en el ZXUNO+. + +==== Teclado + +===== Teclas especiales y botones + +Durante la ejecución del core: + +- `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 +- `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 + +<<< + +==== Guía básica + +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ú. + +[.text-center] +image:img/a800xl.jpg[pdfwidth=70%] + +En él se pueden activar, desactivar o configurar las siguientes opciones: + +- 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) + +<<< + +=== 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). + +La versión para ZXUNO+ está desarrollada por Quest y DistWave.. + +Algunas de las características del core son: + +- Dos modos de vídeo seleccionables: RGB y VGA +- Compatible con joystick + +==== Formato de Tarjeta SD + +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. + +Si no estuviera ya, <<#_cores,instalar el core de Atari 2600>> en el ZXUNO+. + +==== Teclado + +===== Teclas especiales y botones + +Durante la ejecución del core: + +- `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 + +<<< + +==== Guía básica + +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ú. + +[.text-center] +image:img/a2600uno.jpg[pdfwidth=70%] + +En él se pueden activar, desactivar o configurar las siguientes opciones: + +- Reiniciar el core (Reset) +- Línea de exploración (Scanlines) +- Modo RGB (PAL/NTSC) +- Color (Color) +- Dificultad A (Difficulty A) +- Dificultad B (Difficulty B) +- Select +- Start +- Cargar ROM (Load ROM) +- Salir del menú (Exit) + +<<< + +=== ColecoVision + +https://es.wikipedia.org/wiki/ColecoVision[ColecoVision] es una consola de videojuegos lanzada al mercado por la empresa Coleco. + +La versión para ZUNO+ está basada el proyecto https://github.com/fbelavenuto/colecofpga[de Fabio Belavenuto]. + +Algunas de las características del core son: + +- 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 + +==== Formato de Tarjeta SD + +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]. + +Si no estuviera ya, <<#_cores,instalar el core de ColecoVision>> en el ZXUNO+. + +==== Teclado + +===== Teclas especiales y botones + +Durante la ejecución del core: + +- 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 '#' +- 'Esc': Soft Reset + +<<< + +==== Guía básica + +Al iniciar, la ROM de la BIOS se carga desde la tarjeta SD, así como la ROM multicartucho. + +[.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. + +<<< + +=== 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. + +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. + +Características: + +- 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 + +<<< + +==== Formato de Tarjeta SD + +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]. + +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]). + +[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. +==== + +[WARNING] +==== +Este proceso borra el contenido que hubiera antes en la tarjeta SD, y no se puede deshacer. +==== + +===== Windows + +Concatenar las imágenes usando `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]. + +===== MacOS y Linux + +Concatenar las imágenes usando `cat`: + +[source,shell] +---- +cat imagen1.d64 dummyto256.bin imagen2.d64 dummyto256.bin (...) > c16rawsd.img +---- + +Volcar la imagen en la SD, usando `dd`: + +[source,shell] +---- +sudo umount /dev/... +sudo dd if=c16rawsd.img of=/dev/... +---- + +Si no estuviera ya, <<#_cores,instalar el core de Commodore 16>> en el ZXUNO+. + +<<< + +==== Teclado + +===== Teclas especiales y botones + +Durante la ejecución del core: + +- `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 + +==== Guía básica + +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. + +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`. + +Para cargar rápidamente el primer fichero `PRG` de un disco pulsar `Mayús+TAB` o usar el comando `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. + +El core de ZXUNO+ está desarrollado por Quest. + +Características: + +- 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 +- 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. + +<<< + +==== Formato de Tarjeta SD + +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]. + +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`. + +[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. +==== + +[WARNING] +==== +Este proceso borra el contenido que hubiera antes en la tarjeta SD, y no se puede deshacer. +==== + +===== Windows + +Concatenar las imágenes usando `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]. + +===== MacOS y Linux + +Concatenar las imágenes usando `cat`: + +[source,shell] +---- +cat imagen1.d64 dummyto256.bin imagen2.d64 dummyto256.bin (...) > c64rawsd.img +---- + +Volcar la imagen en la SD, usando `dd`: + +[source,shell] +---- +sudo umount /dev/... +sudo dd if=c64rawsd.img of=/dev/... +---- + +Si no estuviera ya, <<#_cores,instalar el core de Commodore 64>> en el ZXUNO+. + +<<< + +==== Teclado + +===== Teclas especiales y botones + +Durante la ejecución del core: + +- `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 + +<<< + +==== Guía básica + +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. + +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. + +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. + +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`. + +<<< + +=== 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]. + +Algunas de sus características son: + +- 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 + +==== Formato de Tarjeta SD + +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. + +Se ha de obtener lo siguiente: + +- 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] + +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. + +Copiar `NEXTOR.SYS` en el mismo lugar. + +Copiar `NEXTOR.ROM` en el directorio `MSX1FPGA`. + +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`. + +En el fichero `/MSX1FPGA/config.txt` se guarda la configuración del core, según este formato: + +---- +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 +---- + +Si no estuviera ya, <<#_cores,instalar el core de MSX>> en el ZUNO+. + +<<< + +==== Teclado + +===== Teclas especiales y botones + +Durante la ejecución del 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 +- `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 + +[NOTE] +==== +En BASIC, se puede usar `CTRL + STOP` (`Ctrl+Fin`) para detener la ejecución de un programa. +==== + +[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]. +==== + +<<< + +==== Guía básica + +Para acceder a BASIC desde MSX-DOS, ejecutar el comando `BASIC`. + +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`. + +[WARNING] +==== +Para que la carga desde audio funcione, el modo turbo tiene que estar desactivado. +==== + +Para acceder a MSX-DOS desde BASIC, ejecutar `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. + +Al ejecutar `MSXCTRL` se muestran los parámetros de uso: + +---- +MSXCTRL.COM - Utility to manipulate MSX1FPGA core. +HW ID = 06 - ZX-Uno Board +Version 1.3 +Mem config = 82 +Has HWDS = FALSE + +Use: + +MSXCTRL -h -i -r -b -[5|6] -m<0-2> + -c<0-1> -d<0-1> -t<0-1> + [-w | -l] + -k<0-255> -e<0-255> -p<0-255> + -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. + +===== Otros + +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). + +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. + +<<< + +=== 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]. + +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]. + +Algunas de las características del core son: + +- 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 + +==== Formato de Tarjeta SD + +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. + +Si no estuviera ya, <<#_cores,instalar el core de NES>> en el ZXUNO+. + +==== Teclado + +===== Teclas especiales y botones + +Durante la ejecución del core: + +- `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 + +<<< + +==== Guía básica + +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`. + +[.text-center] +image:img/nesuno.jpg[pdfwidth=70%] + +En él se pueden activar o desactivar las siguientes opciones: + +- 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) + +<<< + +=== 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. + +Características del sistema implementado: + +- 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 + +==== Formato de Tarjeta SD + +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]. + +Si no estuviera ya, <<#_cores,instalar el core de PC XT>> en el ZXUNO+. + +<<< + +=== 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. + +==== Formato de Tarjeta SD + +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. + +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. + +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`. + +Si no estuviera ya, <<#_cores,instalar el core smartROM>> en el 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. + +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]. + +==== Formato de Tarjeta SD + +Este core no utiliza la tarjeta SD. + +==== Teclado + +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`. + +[.text-center] +image:img/keyboardZX81.jpg[pdfwidth=90%] + +==== Guía básica + +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. + +[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. +==== + +<<< + +== Otro Hardware + +=== Carga desde cinta + +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. + +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). + +==== Reproductor de cassette + +El funcionamiento es exactamente igual que se hacía con los equipos originales: + +. 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) + +==== Ordenador + +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. + +===== 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. + +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>>. + +. 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) + +[source,shell] +---- +./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. + +[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. +==== + +====== Compilar código fuente (MacOS o 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]. + +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: + +[source,shell] +---- +aclocal && autoconf && autoheader && automake --add-missing +./configure +make +---- + +Si todo se ha hecho correctamente, se habrá generado el fichero `tzplay` que se puede copiar a donde se desee en el disco duro y utilizar. Se puede borrar el directorio descomprimido donde se compiló. + +==== Teléfono móvil, tableta, reproductor de sonido MP3, 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. + +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. + +[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+. + +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. +==== + +Los pasos a seguir en este caso son: + +. 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. + +===== Conversión a fichero de 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. + +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 + +`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. + +`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. + +`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`. + +<<< + +==== 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]. + +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. + +===== Puertos y Botones + +[.text-center] +image:img/MiniduinoBack.jpg[pdfwidth=50%] + +[.text-center] +image:img/MiniduinoFront.jpg[pdfwidth=50%] + +[cols=2*] +|=== +|1 +|Alimentación +|2 +|Salida de sonido +|3 +|Botón de control +|4 +|Control de motor +|5 +|Ranura de tarjeta SD +|6 +|Pantalla +|=== + +<<< + +===== Preparación + +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). + +La tarjeta debe estar formateada con con la primera partición en formato FAT16 o FAT32. + +Además de la tarjeta, recordar utilizar un cable adecuado para la <<#_puertos_y_conectores,entrada de sonido del ZXUNO+>>, conectando el Miniduino. + +Para los equipos que soporten control por motor, también se puede utilizar un cable con un jack de 2,6 mm. + +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. + +[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. +==== + +<<< + +===== Uso + +Una vez insertada la tarjeta SD con ficheros de datos, el Miniduino se enciende conectando el cable de alimentación USB incluido. + +[.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: + +- 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 + +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). + +[.text-center] +image:img/MiniduinoVersion.jpg[pdfwidth=30%] + +Con la reproducción detenida (navegación por archivos y directorios): + +- 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 + +<<< + +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. + +[.text-center] +image:img/MiniduinoPlay.jpg[pdfwidth=30%] + +Con la reproducción en pausa (navegación por bloques de cinta): + +- 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]. +==== + +<<< + +===== Actualización de firmware Maxduino + +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. + +====== Preparación del entorno + +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]. + +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 + +También se ha de añadir el soporte para el microcontrolador del Miniduino. Esto se hace en dos pasos: + +Primero añadiendo soporte para procesadores ARXM Cortex M3 en el menú Herramientas -> placa -> gestor de tarjetas +Instalar "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]. + +Descomprimir el contenido en la carpeta del usuario actual en + +[source,shell] +---- +...Arduino/hardware/Arduino_STM32 +---- + +En Windows instalar el controlador USB ejecutando con privilegios elevados: + +[source,shell] +---- + ...\drivers\win\install_drivers.bat +---- + +En Linux instalar con privilegios de root las reglas de `udev` necesarias: + +[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]. + +<<< + +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: + +[source,shell] +---- +if [ $# -eq 5 ]; then + dfuse_addr="--dfuse-address $5" +else + dfuse_addr="" +fi +---- + +Y se tienen que cambiar por + +[source,shell] +---- +dfuse_addr="" +---- + +<<< + +====== Actualización + +Una vez preparado el entorno, descargar la versión deseada del proyecto desde el https://github.com/rcmolina/MaxDuino_BETA[repositorio oficial en GitHub] + +[NOTE] +==== +El reproductor Miniduino con microcontrolador STM32 sólo está soportado a partir de la versión 1.65 +==== + +Cargar el fichero del proyecto en Arduino IDE (por ejemplo `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. + +[source,c] +---- +... +//#define tanque4 +//#define tanque1 +//#define dostanques +//#define cablemax +//#define sony +#define miniduino +... +---- + +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) + +Configurar en el menú "" las opciones + +[source] +---- +Placa: Generic STM32F104C Series +Variant: STM32F104C8 (20k RAM, 64k Flash) +Upload Method: STM32duino bootloader +CPU Speed: 72Mhz (Normal) +Optimize: Smallest (default) +Puerto: +---- + +Finalmente, pulsar el botón de carga del firmware y esperar unos segundos mientras se compila el proyecto y se carga en el dispositivo. + +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. + +<<< + +== Solución de problemas + +=== Gestión de imágenes de firmware + +Existen distintas herramientas que permiten generar y/o editar el contenido de los ficheros `ZX1`, `ZX2`, `ZXD`. + +==== 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. + +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]. + +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]. + +Una vez descomprimido, se debe invocar desde una consola el script principal usando Python 3. Esto puede variar según el sistema operativo. + +Por ejemplo, en Windows, suele ser: + +[source,shell] +---- +py -3 zx123_tool.py +---- + +Mientras que en otros sistemas operativos debería bastar con algo parecido a: + +[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: + +[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". + +<<< + +*Mostrar contenido de una imagen* + +Para ver el contenido de una imagen llamada `FLASH.ZX1` (cores instalados y algunos datos de configuración), se puede usar el comando + +[source,shell] +---- +... zx123_tool.py -i FLASH.ZX1 -l +---- + +Para mostrar contenido de esa misma imagen, incluyendo datos de ROMs de ZX Spectrum: + +[source,shell] +---- +... zx123_tool.py -i FLASH.ZX1 -l -r +---- + +*Modificar la BIOS de una imagen* + +Para modificar la BIOS de un fichero llamado `FLASH.ZX1`, usando la BIOS en otro fichero llamado `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). + +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: + +[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. + +<<< + +*Añadir una ROM de Spectrum a una imagen* + +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: + +[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. + +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: + +[%header,cols=2*] +|=== +|`i` +|Habilitar teclado issue 3 (en vez de issue 2) +|`c` +|Deshabilitar la contención de memoria +|`d` +|Habilitar DivMMC +|`n` +|Habilitar NMI DivMMC (menú de esxdos) +|`p` +|Usar timings de Pentagon +|`t` +|Usar timings de 128K +|`s` +|Deshabilitar puertos de DivMMC y ZXMMC +|`m` +|Habilitar MMU horizontal de Timex +|`h` +|Deshabilitar bit alto de ROM (bitd 2 de 1FFD) +|`l` +|Deshabilitar bit bajo de ROM (bit 4 de 7FFD) +|`1` +|Deshabilitar puerto 1FFD (paginado de +2A/3) +|`7` +|Deshabilitar puerto 7FFD (paginado de 128K) +|`2` +|Deshabilitar TurboSound (chip AY secundario) +|`a` +|Deshabilitar chip AY +|`r` +|Deshabilitar modo Radastaniano +|`x` +|Deshabilitar modo Timex +|`u` +|Deshabilitar ULAPlus +|=== + +<<< + +*Instalar un Core en una imagen* + +Para instalar un core en la posición 3, desde un fichero llamado `TBBLUE.ZX1`, llamándolo `TBBlue`, usar un comando como este: + +[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: + +[source,shell] +---- +...zx123_tool.py -i FLASH.ZX1 -a 'CORE,3,TBBlue,TBBLUE.ZX1' -c 3 +---- + +*Modificar la ROM de esxdos de una imagen* + +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: + +[source,shell] +---- +...zx123_tool.py -i FLASH.ZX1 -a esxdos,ESXMMC.BIN +---- + +*Combinar varias órdenes en una única línea* + +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: + +[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 +---- + +<<< + +=== Recuperación del firmware + +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. + +En esta situación, existen diferentes métodos de recuperación que permiten volver a instalar el firmware. + +==== Preparación del cableado + +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. + +[.text-center] +image:img/jtagzxunoplus.jpg[pdfwidth=80%] + +[WARNING] +==== +*NO* se ha de conectar la línea de 3V +==== + +<<< + +==== Recuperación usando una Raspberry Pi + +*Material necesario*: + +- 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+ + +*Software necesario*: + +- 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] + +*Pasos a seguir*: + +. 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: + +[source,shell] +---- +sudo apt-get update +sudo apt-get install git autoconf libtool make pkg-config +sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev telnet +sudo apt-get install libusb-dev libftdi-dev +git clone, git://git.code.sf.net/p/openocd/code openocd-code +cd openocd-code/ +./bootstrap +./configure --enable-usb_blaster --enable-sysfsgpio --enable-bcm2835gpio +make +sudo make install +cd .. +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. + +Si se hace conexión vía GPIO, tomar nota de los pines elegidos, teniendo cuidado de conectar `GND` con `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: + +[%header,cols=3*] +|=== +|JTAG ZXUNO+ +|GPIO +|Pin Raspberry Pi +|`TMS` +|GPIO#6 +|`31` +|`TDI` +|GPIO#13 +|`33` +|`TDO` +|GPIO#19 +|`35` +|`TCK` +|GPIO#26 +|`37` +|`GND` +|GND +|`39` +|=== + +[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/` + +<<< + +[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. + +[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: + +[source] +---- +# Header pin numbers: 37 31 33 35 +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): + +[source] +---- +#bcm2835gpio_swd_nums 11 25 +---- + +[start=8] +. Añadir, al final, la línea `adapter speed 250` (no necesario para uso con USB-Blaster): + +[source] +---- +adapter speed 250 +---- + +[start=9] +. Encender el 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. + +Para conexión vía GPIO: + +[source,shell] +---- +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: + +[source,shell] +---- +sudo openocd -f /usr/local/share/openocd/scripts/interface/altera-usb-blaster.cfg -f /usr/local/share/openocd/scripts/cpld/xilinx-xc6s.cfg -c "init; xc6s_program xc6s.tap; pld load 0 recovery.bit ; exit" +---- + +<<< + +[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. + +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. + +[.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]. + +. Si se está utilizando USB-Blaster, desconectar el cable. + +<<< + +[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. + +[.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. +==== + +[start=15] +. Tras unos minutos, el proceso finalizará, y podremos comprobar como, al apagar y encender, el ZXUNO+ vuelve a arrancar correctamente. + +[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. +==== + +<<< + +== Referencias + +https://zxuno.speccy.org/index.shtml[ZX-Uno] + +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://docs.google.com/spreadsheets/d/17-ifpHcy932_AP7SAv9uBLxg-2ZptcdgTvQ8ILXQLM4/htmlview[Almost (In-) Complete List of esxDOS DOT-Commands] + +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.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://www.zxuno.com/forum/viewtopic.php?f=53&t=2080[Core MSX] + +https://github.com/fbelavenuto/msx1fpga[MSX1FPGA] + +https://www.forofpga.es/viewtopic.php?t=316[MSX Pack] + +https://www.konamiman.com/msx/msx-s.html#nextor[Nextor para MSX] + +https://www.konamiman.com/msx/nextor/docs/Nextor%202.0%20User%20Manual.pdf[Nextor User Manual] + +https://konamiman.github.io/MSX2-Technical-Handbook/md/Chapter3.html[MSX-DOS] + +https://www.zxuno.com/forum/viewtopic.php?f=16&t=4006[Atom Software Archive en carpeta ATOM] + +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://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] + +http://www.videopac.org/manuals/voice.pdf[Odtyssey Speech And Sound Effects Module Manual] + +https://github.com/rcmolina/MaxDuino_BETA/blob/master/MANUAL%20por%20desUBIKado/MAXDUINO%20Gu%C3%ADa%20de%20uso.pdf[Maxduino - guía de uso] + +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] diff --git a/doc/Manual de ZXUNO+.pdf b/doc/Manual de ZXUNO+.pdf new file mode 100644 index 0000000..d122a5d Binary files /dev/null and b/doc/Manual de ZXUNO+.pdf differ diff --git a/doc/img/a2600uno.jpg b/doc/img/a2600uno.jpg new file mode 100644 index 0000000..5c09390 Binary files /dev/null and b/doc/img/a2600uno.jpg differ diff --git a/doc/img/a800xl.jpg b/doc/img/a800xl.jpg new file mode 100644 index 0000000..4d8fbfa Binary files /dev/null and b/doc/img/a800xl.jpg differ diff --git a/doc/img/colecouno.jpg b/doc/img/colecouno.jpg new file mode 100644 index 0000000..b1e4906 Binary files /dev/null and b/doc/img/colecouno.jpg differ diff --git a/doc/img/jtagzxunoplus.jpg b/doc/img/jtagzxunoplus.jpg new file mode 100644 index 0000000..3e3abc3 Binary files /dev/null and b/doc/img/jtagzxunoplus.jpg differ diff --git a/doc/img/nesuno.jpg b/doc/img/nesuno.jpg new file mode 100644 index 0000000..e7ab3d8 Binary files /dev/null and b/doc/img/nesuno.jpg differ diff --git a/doc/img/portadauno.jpg b/doc/img/portadauno.jpg new file mode 100644 index 0000000..cadf58c Binary files /dev/null and b/doc/img/portadauno.jpg differ diff --git a/doc/img/rj45pinout.png b/doc/img/rj45pinout.png new file mode 100644 index 0000000..0d8f975 Binary files /dev/null and b/doc/img/rj45pinout.png differ diff --git a/doc/img/rj45scart.png b/doc/img/rj45scart.png new file mode 100644 index 0000000..540306c Binary files /dev/null and b/doc/img/rj45scart.png differ diff --git a/doc/img/zxunoback.png b/doc/img/zxunoback.png new file mode 100644 index 0000000..d8f9082 Binary files /dev/null and b/doc/img/zxunoback.png differ diff --git a/doc/img/zxunoboard.png b/doc/img/zxunoboard.png new file mode 100644 index 0000000..df40bea Binary files /dev/null and b/doc/img/zxunoboard.png differ diff --git a/doc/img/zxunofront.png b/doc/img/zxunofront.png new file mode 100644 index 0000000..21a004e Binary files /dev/null and b/doc/img/zxunofront.png differ diff --git a/doc/index.html b/doc/index.html deleted file mode 100644 index 8cb1d0e..0000000 --- a/doc/index.html +++ /dev/null @@ -1,6208 +0,0 @@ - - - - - - - - - - -ZXDOS+ and gomaDOS+ Manual - - - - - - -
-
-
-
-
-
-
-

Introduction

-
-
-

ZXDOS+ and gomaDOS+ are the continuation of 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.

-
-
-

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 ZXDOS+ with the desired configuration among all those installed.

-
-
-

ZXDOS+ and gomaDOS+ official web page is http://zxdos.forofpga.es.

-
-
-

Most of the functions and features of ZXDOS+ and gomaDOS+ are the same, so this document will generally talk about ZXDOS+, indicating the differences with gomaDOS+ where necessary.

-
-
-
-

Ports and Connectors

-
-

ZXDOS+

-
-

ZXDOSfront

-
-
-

ZXDOSback

-
-
-
-
-

gomaDOS+

-
-

gomaDosBack

-
-
-
-

Description

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

1

Power Switch

2

microSD Card Slot

3

JTAG and Joystick

4

Audio Out

5

Audio In

6

RGB/VGA Out

7

Power Socket

8

Expansion Port

9

Left Joystick Port

10

Right Joystick Port

11

PS/2 Keyboard Port

12

PS/2 Mouse Port

0

USB (PS/2) Port

-
-
-
-
-

Initial Setup

-
-

In order to be able to set up and use a ZXDOS+ or gomaDOS+ you need, at least, the following:

-
-
-
    -
  • -

    A USB charger or a TV or other device that offers USB power

    -
  • -
  • -

    VGA cable and monitor

    -
  • -
  • -

    PS/2 keyboard (in the case of ZXDOS +)

    -
  • -
-
-
-

In order to take advantage of its full potential, you may also have:

-
-
-
    -
  • -

    A microSD card, not necessarily very large

    -
  • -
  • -

    PC speakers to connect to the audio output, or a stereo jack cable to two red/white RCA connectors to connect to the TV (this is optional on gomaDOS+, as it has a beeper inside)

    -
  • -
  • -

    A standard Atari joystick, such as a Megadrive DB9 gamepad (gomadOS+ needs a joystick adapter)

    -
  • -
  • -

    A PS/2 mouse (USB to PS/2 adapter is needed when using a gomaDOS+)

    -
  • -
  • -

    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 (see more info later)., a PC/Mac/Raspberry PI, etc. or a cassette tape recorder/player. The right sound channel is used as input (EAR) and the left channel can be used as output (MIC).

    -
  • -
-
-
-

microSD card formatting

-
-

In order to use a microSD 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 the first partition in +3DOS format, and then the second one in FAT16 or FAT32 format to use with a +3e ROM.

-
-
- - - - - -
- - -
-

FAT16 partitions have a maximum size of 4GB

-
-
-
-
-
Windows
-
-

For simple configurations, and cards of the correct size (less than 2GB for FAT16 or less than 32GB for FAT32), you can use the official formatting tool of the SD Association .

-
-
-

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
-
-

For simple configurations, and cards of the correct size (less than 2GB for FAT16 or less than 32GB for FAT32), you can use the official formatting tool of the SD Association or Disk Utility, which is included with the operating system.

-
-
-

In other case, you should use the command line.

-
-
-

For example, to format a card, shown as disk6, with only one FAT16 partition (if the card size is less than 2GB):

-
-
-
-
diskutil unmountDisk /dev/disk6
-diskutil partitionDisk /dev/disk6 MBR "MS-DOS FAT16" ZXDOSPLUS R
-
-
-
-

To split it into two FAT16 partitions of the same size (if the card size is 4GB or less):

-
-
-
-
diskutil unmountDisk /dev/disk6
-diskutil partitionDisk /dev/disk6 MBR "MS-DOS FAT16" ZXDOSPLUS 50% "MS-DOS FAT16" EXTRA 50%
-
-
-
-

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):

-
-
-
-
diskutil unmountDisk /dev/disk6
-diskutil partitionDisk /dev/disk6 MBR %DOS_FAT_16% ZXDOSPLUS 4G %DOS_FAT_16% EXTRA 4G "MS-DOS FAT32" DATA R
-sudo newfs_msdos -F 16 -v ZXDOSPLUS -c 128 /dev/rdisk6s1
-sudo newfs_msdos -F 16 -v EXTRA -b 4096 -c 128 /dev/rdisk6s2
-
-
-
- - - - - -
- - -
-

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.

-
-
-
-
-

To create one FAT32 4GB partition (e.g. to use with Amstrad CPC core), and then have the rest of space available as a second FAT32 partition (for cards of more than 4GB):

-
-
-
-
diskutil unmountDisk /dev/disk6
-diskutil partitionDisk /dev/disk6 MBR "MS-DOS FAT32" ZXDOSPLUS 4G "MS-DOS FAT32" EXTRA R
-
-
-
-
-
Linux
-
-

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

-
-

esxdos is a firmware for the DivIDE/DivMMC hardware interfaces (which ZXDOS+ implements). This allows access to storage devices such as a microSD 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.

-
-
-

For it to work, it is necessary to include the corresponding files in the first partition of the microSD card.

-
-
-

At the time of writing this document, the version included with ZXDOS+ is 0.8.6, and it can be downloaded from the official website at this link.

-
-
-

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 microSD card.

-
-
-

If everything has been done correctly, when you turn on the ZXDOS+ Spectrum core, you will see how esxdos detects the card and loads the necessary components to work.

-
-
-

esxdos

-
-
-
-

It is also recommended to add the specific esxdos commands for ZXDOS+. These can be obtained from the project source page (here, here and here), and are as follows:

-
-
-
-
back16m
-backzx2
-backzxd
-corebios
-dmaplayw
-esprst
-iwconfig
-joyconf
-keymap
-loadpzx
-playmid
-playrmov
-romsback
-romsupgr
-upgr16m
-upgrzx2
-upgrzxd
-zxuc
-zxunocfg
-
-
-
-

<<#_zxdos+_commands,It is explained later> what each of them does.

-
-
-
-
-
-

GomaDOS+ keyboard modes

-
-

gomaDOS+ keyboard, being similar to the original ZX Spectrum keyboard, lacks some of the existing keys on a modern PC keyboard. The keyboard membrane is connected to an Arduino board, which manages the transformation key presses to PS/2 keyboard protocol. The board is programmed so it can behave in different modes according to your needs.

-
-
-

The default is ZX Spectrum mode. To change to a different mode, you must press Caps Shift+Symbol Shift+U and then the key for the desired mode. After doing that, some text is automatically typed, to show the selected mode (for example .zx if you press Caps Shift+Symbol Shift+U and theno 0).

-
-
-

This table shows the available modes and activation keys:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ModeKey

ZX Spectrum

0

Amstrad CPC

1

MSX

2

Commodore 64

3

Atari 800XL

4

BBC Micro

5

Acorn Electron

6

Apple (I and II)

7

Commodore VIC 20

8

PC XT

9

Oric Atmos

A

SAM Coupé

B

Jupiter ACE

C

-
-
-

ZX Spectrum mode key assignment, with the corresponding keypress when used simultaneouly with Caps Shift+Symbol Shift:

-
- ------------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

1

2

3

4

5

6

7

8

9

0

F1

F2

F3

F4

F5

F6

F7

F8

F9

F1

Q

W

E

R

T

Y

U

I

O

P

F11

F12

Mode

A

S

D

F

G

H

J

K

L

Enter

ScrLk

CShift

Z

X

C

V

B

N

M

SShift

Space

Save

Vers

hRes

sRes

-
-

Where:

-
-
-
    -
  • -

    ScrLk: Scroll Lock changes betweein composite and VGA video mode (on Next Core, you must use Caps Shift+Symbol Shift+2 or`F2` instead)

    -
  • -
  • -

    Save: Sets the current mode as the default one

    -
  • -
  • -

    Vers: Shows (types) current firmware version

    -
  • -
  • -

    hRes: Hard Reset

    -
  • -
  • -

    sRes: Soft Reset

    -
  • -
-
-
-
-

The full list of key combinations (and compatible modes) is as follows:

-
- ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Caps S.+Symbol S.ModeAction

1

All

F1

2

All

F2

3

All

F3

4

All

F4

5

All

F5

6

All

F6

7

All

F7

8

All

F8

9

All

F9

0

All

F10

Q

All

F11

W

All

F12

S

C64

Ctrl+F12

E

Acorn/CPC

PgUp

R

Acorn

PgDown

U

All

Mode

G

ZX/MSX/C64

ScrLk

X

All

Save

C

PC

OPQA

V

All

Version

B

ZX

Ctrl+Alt+Bcksp

N

ZX

Ctrl+Alt+Supr

-
-
-
-

BIOS

-
-

Pressing the F2 key (Caps Shift+1 on gomaDOS+) during boot will access the BIOS setup. The BIOS firmware is the first program that runs when the ZXDOS+ is turned on. The main purpose of BIOS is to start and test the hardware and load one of the installed cores.

-
-
-

Using left and right cursor keys (Caps Shift+5 and Caps Shift+8 on gomaDOS+), you can navigate through the BIOS setup screens. With up and down keys (Caps Shift+7 and Caps Shift+6 on gomaDOS+) 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. Esc key (Caps Shift+Espacio ongomaDOS+) is used to close open option windows without applying any action.

-
-
-

Main

-
-

bios

-
-
-

In the first configuration screen, in addition to being able to run several tests, you can define the default behavior for the following:

-
-
-
    -
  • -

    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

    -
  • -
  • -

    DivMMC NMI Support

    -
  • -
  • -

    New Graphic Modes Support (ULAPlus, Timex, Radastan)

    -
  • -
-
-
-

More technical information can be found on de ZX-Uno Wiki.

-
-
-
-

ROMs

-
-

bios2

-
-
-

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

-
-

bios3

-
-
-

Upgrade screen is used to perform the different updates of the Flash memory content: esxdos, BIOS, Cores, etc. (see the section corresponding to updates for more information).

-
-
-
-
-

Boot

-
-

bios4

-
-
-

In the Boot screen you can choose which one of the installed cores is loaded by default at startup.

-
-
-
-
-

Advanced

-
-

bios5

-
-
-

The Advanced configuration screen is used to edit the following settings:

-
-
-
    -
  • -

    Keyboard layout (Keyb Layout): See 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

    -
  • -
  • -

    Scanline simulation: Enabled Disabled

    -
  • -
  • -

    VGA horizontal frequency: 50, 51, etc.

    -
  • -
  • -

    CPU speed: Normal (1x) or accelerated (2X, 3X, etc.)

    -
  • -
  • -

    Csync: Spectrum or PAL

    -
  • -
-
-
-
-
-

Exit

-
-

bios6

-
-
-

Finally, from the last screen you can:

-
-
-
    -
  • -

    Exit BIOS configuration saving changes

    -
  • -
  • -

    Discard changes and exit

    -
  • -
  • -

    Save changes without exiting

    -
  • -
  • -

    Discard Changes

    -
  • -
-
-
-
-
-
-
-

ZX Spectrum

-
-
-

The main core is the one implementing a ZX Spectrum computer. This core is special, and it cannot be substituted for another that is not a ZX Spectrum, since the ZXDOS+ uses it for its operation.

-
-
-

These are some of its main characteristics:

-
-
-
    -
  • -

    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 support for + 3e and DIVMMC support for 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.

    -
  • -
-
-
-
-

microSD advanced format (+3e)

-
-

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.

-
-
-

+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.

-
-
- - - - - -
- - -
-

The following partition scheme can only be used with ZX Spectrum core.

-
-
-
-
- - - - - -
- - -
-

Each partition in IDEDOS can be between 1 and 16 Megabytes (1 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 1GB.

-
-
-
-
-

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).

-
-
-

exsdos and other programs can be installed into the second partition as explained earlier.

-
-
-

Windows

-
-

You can use Windows Disk Management utility. The steps are:

-
-
-
    -
  1. -

    Remove all partitions from the card

    -
  2. -
  3. -

    Create a new extended partition, using the desired space for IDEDOS

    -
  4. -
  5. -

    Create a primary partition, 4GB in size, and format as FAT16

    -
  6. -
  7. -

    Optionally, create another primary partition using the remaining space and format as FAT32

    -
  8. -
-
-
-
-

MacOS

-
-

You will have to use the command line. The first task is to find out which device is the disk to format:

-
-
-
-
diskutil list
-
-
-
-

For this example, it will be disk 6:

-
-
-
-
(...)
-/dev/disk6 (external, physical):
-   #:                       TYPE NAME                    SIZE       IDENTIFIER
-   0:     FDisk_partition_scheme                        *15.9 GB    disk6
-   1:                 DOS_FAT_32 UNKNOWN                 15.9 GB    disk6s1
-
-
-
-
-

Instruction steps:

-
-
-
    -
  1. -

    Unmount the disk and edit the partition sceme (the second step requires admin privileges):

    -
  2. -
-
-
-
-
diskutil unmountDisk /dev/disk6
-sudo fdisk -e /dev/rdisk6
-
-
-
-
-
fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
-Enter 'help' for information
-fdisk: 1> erase
-fdisk:*1> edit 1
-Partition id ('0' to disable)  [0 - FF]: [0] (? for help) 7F
-Do you wish to edit in CHS mode? [n]
-Partition offset [0 - 31116288]: [63] 128
-Partition size [1 - 31116287]: [31116287] 2017152
-
-fdisk:*1> edit 2
-Partition id ('0' to disable)  [0 - FF]: [0] (? for help) 06
-Do you wish to edit in CHS mode? [n]
-Partition offset [0 - 31116288]: [2017280]
-Partition size [1 - 29099135]: [29099135] 7812504
-
-fdisk:*1> flag 2
-
-fdisk:*1> edit 3
-Partition id ('0' to disable)  [0 - FF]: [0] (? for help) 0B
-Do you wish to edit in CHS mode? [n]
-Partition offset [0 - 31116288]: [9829784]
-Partition size [1 - 21286504]: [21286504]
-
-fdisk:*1> print
-         Starting       Ending
- #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
-------------------------------------------------------------------------
- 1: 7F 1023 254  63 - 1023 254  63 [       128 -    2017152] <Unknown ID>
- 2: 06 1023 254  63 - 1023 254  63 [   2017280 -    7812504] DOS > 32MB
- 3: 0B 1023 254  63 - 1023 254  63 [   9829784 -   21286504] Win95 FAT-32
- 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused
-
-fdisk:*1> write
-fdisk: 1> quit
-
-
-
-
    -
  1. -

    Format the FAT partitions (admin privileges required)

    -
  2. -
-
-
-
-
diskutil unmountDisk /dev/disk6
-sudo newfs_msdos -F 16 -v ZXDOSPLUS -c 128 /dev/rdisk6s2
-sudo newfs_msdos -F 32 -v EXTRA -c 128 /dev/rdisk6s3
-
-
-
-
    -
  1. -

    Confirm that the new partition scheme has been applied:

    -
  2. -
-
-
-
-
diskutil list
-
-
-
-
-
(...)
-/dev/disk6 (external, physical):
-   #:                       TYPE NAME                    SIZE       IDENTIFIER
-   0:     FDisk_partition_scheme                        *15.9 GB    disk6
-   1:                       0x7F                         1.0 GB     disk6s1
-   2:                 DOS_FAT_16 ZXDOSPLUS               4.0 GB     disk6s2
-   3:                 DOS_FAT_32 EXTRA                   10.9 GB    disk6s3
-
-
-
-
-

Linux

-
-

You can use the command line. First, find out the device to erase:

-
-
-
-
lsblk
-
-
-
-

For this example, it will be sdc:

-
-
-
-
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
-(..)
-sdc          179:0    0 15,8G  0 disk
-└─sdc1       179:1    0 15,8G  0 part
-
-
-
-
-

Instructions:

-
-
-
    -
  1. -

    Verify that the disk isn’t mounted and edit the partition scheme (this step requires root privileges):

    -
  2. -
-
-
-
-
sudo fdisk -e /dev/sdc
-
-
-
-
-
Enter 'help' for information
-fdisk: 1> erase
-fdisk:*1> edit 1
-Partition id ('0' to disable)  [0 - FF]: [0] (? for help) 7F
-Do you wish to edit in CHS mode? [n]
-Partition offset [0 - 31116288]: [63] 128
-Partition size [1 - 31116287]: [31116287] 2017152
-
-fdisk:*1> edit 2
-Partition id ('0' to disable)  [0 - FF]: [0] (? for help) 06
-Do you wish to edit in CHS mode? [n]
-Partition offset [0 - 31116288]: [2017280]
-Partition size [1 - 29099135]: [29099135] 7812504
-
-fdisk:*1> flag 2
-
-fdisk:*1> edit 3
-Partition id ('0' to disable)  [0 - FF]: [0] (? for help) 0B
-Do you wish to edit in CHS mode? [n]
-Partition offset [0 - 31116288]: [9829784]
-Partition size [1 - 21286504]: [21286504]
-
-fdisk:*1> print
-         Starting       Ending
- #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
-------------------------------------------------------------------------
- 1: 7F 1023 254  63 - 1023 254  63 [       128 -    2017152] <Unknown ID>
- 2: 06 1023 254  63 - 1023 254  63 [   2017280 -    7812504] DOS > 32MB
- 3: 0B 1023 254  63 - 1023 254  63 [   9829784 -   21286504] Win95 FAT-32
- 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused
-
-fdisk:*1> write
-fdisk: 1> quit
-
-
-
-
    -
  1. -

    Format both FAT partitions (requires root privileges)

    -
  2. -
-
-
-
-
sudo mkfs.fat -F 16 /dev/sdc2
-sudo mkfs.fat -F 32 /dev/sdc3
-
-
-
-
-
    -
  1. -

    Confirm that the partition scheme has been changed:

    -
  2. -
-
-
-
-
lsblk
-
-
-
-
-
NAME      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
-(...)
-sda      179:0    0 15,8G  0 disk
-├─sda1   179:1    0    1G  0 part
-├─sda2   179:2    0    4G  0 part
-├─sda3   179:3    0 10,8G  0 part
-
-
-
-
-

+3e

-
-

Once the microSD card is ready to use, you can start Spectrum core with a +3e ROM and format the IDEDOS part.

-
-
-

The first step is determine the disk geometry. With the cart inserted into the ZXDOS+, type the command:

-
-
-
-
CAT TAB
-
-
-
-

This will give a result showing the number of cylinders, heads and sectors.

-
-
-

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:

-
-
-
-
FORMAT TO 0,100,2048
-
-
-
-

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.

-
-
-

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:

-
-
-
-
NEW DATA "Software",16
-NEW EXP "Swap1",4
-NEW DATA "Utils",8
-
-
-
-

For more information about the different +3e disk commands , you can check this page at World of Spectrum.

-
-
-
-
-
-

Keyboard

-
-

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).

-
-
-

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.

-
-
-

For the map to be preserved after a master reset, it has to be selected as Default in the BIOS.

-
-
-

For more information, see this message in the ZX-Uno forum.

-
-
-

Spanish

-
-

keyboardEsp

-
-
-
-

English

-
-

keyboardEng

-
-
-
-

Spectrum

-
-

keyboardAV

-
-
-
-
-
-

Special keys and buttons

-
-

The following gomaDOS+ key combinations are in ZX keyboard mode. Please check the corresponding section for more information. You can also use PC XT keyboard mode combinations (like Caps Shift+Symbol Shift+2 instead of Caps Shift+1).

-
-
-

Special keys which can be used during startup:

-
-
-
    -
  • -

    F2 (Caps Shift+1 on gomaDOS+) Enter BIOS setup

    -
  • -
  • -

    Caps Lock or Cursor down (Caps Shift+2 on gomaDOS+) or, if a joystick is connected, pressing down: Core selection menu

    -
  • -
  • -

    Esc (Caps Shift+Space on gomaDOS+), 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, Symbol Shift+V on gomaDOS+): 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 (Caps Shift+Space on gomaDOS+): BREAK

    -
  • -
  • -

    F2 (Caps Shift+1 on gomaDOS+): Edit

    -
  • -
  • -

    F5 (Caps Shift+Symbol Shift+5 on gomaDOS+): NMI

    -
  • -
  • -

    F7 (Caps Shift+Symbol Shift+7 on gomaDOS+): Play or pause when playing .PZX files

    -
  • -
  • -

    F8 (Caps Shift+Symbol Shift+8 on gomaDOS+): Rewind .PZX file to the previous mark

    -
  • -
  • -

    F10 (Caps Shift+9 on gomaDOS+): Graph

    -
  • -
  • -

    F12 (Caps Shift+Symbol Shift+W on gomaDOS+): Turbo Boost. Speeds up CPU to 28MHz while pressed (beginnig with core EXP27).

    -
  • -
  • -

    Ctrl+Alt+Backspace (Caps Shift+Symbol Shift+B on gomaDOS+): Hard reset. Backspace is the delete key, located in the top-right portion of the keyboard, above Enter.

    -
  • -
  • -

    Ctrl+Alt+Supr (Caps Shift+Symbol Shift+N on gomaDOS+): Soft reset.

    -
  • -
  • -

    Scroll Lock (Caps Shift+Symbol Shift+G on gomaDOS+): Switches between compositve 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 ZXDOS+, and you can choose which one to load by pressing the Esc (Caps Shift+Space on gomaDOS+) key during boot. You can also define the ROM that you want to load by default using the BIOS setup.

-
-
-

See the updates section for more information on how to expand or modify the ROMs stored in flash memory.

-
-
-

DerbyPro

-
-

DerbyPro or Derby++ 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 official Facebook Public Group.

-
-
-

Since it is a 64K ROM with support for new hardware, these flags can be used when adding it to the SPI flash:

-
- ---- - - - - - - - - - - - - - - - - - - - - -
FlagMeaning

d

Enable DivMMC

n

Enable NMI DivMMC (esxdos Menu)

t

Use 128K timings

-
-
-
-

CargandoLeches

-
-

CargandoLeches is a set of ZX Spectrum ROMs that startetd 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 here.

-
-
-

Depending on which ROM you choose, the flags when 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):

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - -
FlagMeaning

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:

-
-
-
    -
  1. -

    Once the game is loaded, after pressing NMI (F5 or Caps Shift+Symbol Shift+5 on gomaDOS+) a field will appear in the upper left corner of the screen

    -
  2. -
  3. -

    Enter the POKE address and press Enter

    -
  4. -
  5. -

    Enter the POKE value and press Enter again

    -
  6. -
  7. -

    Repeat steps 2. and 3. until all the desired POKEs are entered. To finish and return to the game, press Enter twice

    -
  8. -
-
-
-
-
-
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 -official repository. You can also obtain an unofficial version for MacOS from this other repository.

-
-
-

In any other case, you can compile from the source code at the official repository. For example, in Linux, to compile using gcc you only need these commands:

-
-
-
-
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:

-
-
-
-
(...) 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 for more info).

-
-
- - - - - -
- - -
-

Due to hardware limitations, TZX files made with CgLeches do not work with a Miniduino, although they usually work with PlayTZX.

-
-
-
-
-
-
-

Other ROMs

-
-

Here are flag settings which work when adding to the SPI flash some other known custom ROMs:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ROM NameFlags

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 (F5 or Caps Shift+Symbol Shift+5 on gomaDOS+) is pressed, and lets you browse the microSD card and load easily files (TAP, Z80, TRD, etc.). Pressing the "H" key invokes a help screen, which shows all the available keys.

-
-
- - - - - -
- - -
-

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, yo have to reorder the microSD card structure with a utility like Fat Sorter for Windows, FATsort for Linux and MacOS, YAFS, SDSorter or other.

-
-
-
-
-
-
-

ZXDOS+ Commands

-
-

As explained in the installation part, there are a series of commands that are exclusive to ZXDOS+:

-
-
-
    -
  • -

    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

    -
  • -
  • -

    backzx2 or backzxd: Creates a FLASH.ZX2 o FLASH.ZXD file, in the root directory of the SD card, with the contents of a 32 Meg SPI Flash memory. It must be run while using a "root" mode ROM.After finishing its execution, you must execute the command .ls to finish recording the cache on the microSD card. If not, the length of the file will be wrongly set to 0

    -
  • -
  • -

    corebios: To upddate simultaneously ZX Spectrum core and BIOS

    -
  • -
  • -

    dmaplayw: Plays .WAV file, which has to be 8 bits, unsigned y mand 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 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 microSD card, all ZX Spectrum core ROMS which are stored in SPI flash memory. It must be run while using a "root" mode ROM. Only works correctly on ZX-Uno and ZXDOS (do not use on ZXDOS+ or gomaDOS+).

    -
  • -
  • -

    romsupgr: Load from a RomPack filel named ROMS.ZX1, in the root directory of the microSD 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 microSD card, to a 16 Meg SPI Flash memory. It must be run while using a "root" mode ROM

    -
  • -
  • -

    upgrzx2 or upgrzxd: Write the content of a FLASH.ZX2 o FLASH.ZXD file, in the root directory of the microSD card, to a 32 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 microSD 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

    -
  • -
-
-
-
-
-
-

Wi-Fi

-
-

Each gomaDOS+, and some models of ZXDOS+, include inside an ESP-12 module with an ESP8266 Wi-Fi chip, that can be easily used with a ZX Spectrum core (e.g., EXP27 160820 core) which has synthesized an 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 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.

    -
  • -
-
-
-

For example:

-
-
-
-
.iwconfig mywifi mypassword
-
-
-
-

Network tools for ZX-Uno pack

-
-

These are programs, developed by Nihirash and that are available to download from his web.

-
-
-
    -
  • -

    netman: Utility to configure the ESP Wi-Fi chip for other programs from Nihirash. Does not work in 48K mode

    -
  • -
  • -

    uGophy: Gopher client. Does not work in 48K mode

    -
  • -
  • -

    irc: Internet Relay Chat client. Works better at 14 Mhz

    -
  • -
  • -

    wget: Utility to download files with HTTP (does not work with HTTPS)

    -
  • -
  • -

    platoUNO: PLATO client. Also works better at 14 Mhz. For more information about PLATO, check IRATA.ONLINE web

    -
  • -
-
-
-
-

FTP-Uno

-
-

FTP cliente developed by Yombo, available at GitHub.

-
-
-

Configuration steps:

-
-
-
    -
  1. -

    Edit FTP.CFG file with all the required information (SSID and password, FTP server, etc.)

    -
  2. -
  3. -

    Copy FTP.CFG inside /SYS/CONFIG/ in microSD card

    -
  4. -
  5. -

    Also copy ftpUno.tap to any place in the card

    -
  6. -
  7. -

    Start up ZXDOS+ y load the tape file ftpUno.tap

    -
  8. -
-
-
-
-
-

UART Terminal

-
-

Program example included with ZXYLib C library, developed by yombo, that let’s you send directly typed characters using the UART, and also see the result. Available to download at this link.

-
-
-

Once the file UARTTERM.tap is in the card and loaded, you can type several specific commands for ESP8266 chip. For example:

-
-
-
    -
  • -

    AT. To check if ther is communication. OK would be the result if everything is fine

    -
  • -
  • -

    AT+RST. To restart the chip. Exactly what esprst command does

    -
  • -
  • -

    AT+GMR. To see some information, like firmware version, etc.

    -
  • -
  • -

    AT+CWMODE_CUR=1. Put temporarily the chip into Wi-Fi client mode, until next restart

    -
  • -
  • -

    AT+CWMODE_DEF=1. Put temporarily the chip into Wi-Fi client mode, and save it as default

    -
  • -
  • -

    AT+CWJAP_CUR="<WiFiNetwork>","<WiFiPassword>", where <WiFiNetwork> Wi-Fi ID of the network to connect to, and <WiFiPassword> the access password, connects temporarily to that network

    -
  • -
  • -

    AT+CWJAP_DEF="<WiFiNetwork>","<WiFiPassword>", connects to the network, and saves the settings as default in the chip flash memory

    -
  • -
  • -

    AT+CWAUTOCONN=1 sets the chip to connect automatically on boot to the default network (AT+CWAUTOCONN=0 disables it)

    -
  • -
-
-
-

You can see all the available commands reading the official documentation.

-
-
-
-
-
-

Making RDM (RaDastan Movie) files

-
-

The PLAYRMOV "DOT" command plays radastanian format video files. To convert your own videos, you need makevideoradas, a utility that is available at SVN repository.

-
-
-

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

-
-
-
-
gcc makevideoradas.c -o makevideoradas
-
-
-
-

Apart from makevdideoradas, you need another two tools: ffmpeg and imagemagick. These can be installed with a package manager (apt, yum, pacmam, brew, etc.) or downloading the source code and compiling.

-
-
-

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.

-
-
-
-
mkdir img
-(...)/ffmpeg -i myvideo.mp4 -vf "scale=128:96,fps=25" -start_number 0 img/output%05d.bmp
-
-
-
-

Now we transform the BMP files to 16 colours (v3) BMP files.

-
-
-
-
(...)/magick mogrify -colors 16 -format bmp -define bmp:format=bmp3 img/*.bmp
-
-
-
-

Finally, we assemble the .RDM file (in this example myvideo.rdm) and cleanup the temporary files and directory.

-
-
-
-
(...)/makevideoradas img/output
-mv img/output.rdm ../myvideo.rdm
-rm -rf img
-
-
-
-

There is more information about all this process at this thread in Zona de Pruebas forums.

-
-
-
-
-
-
-

Upgrade

-
-
-

BIOS

-
-

To update the BIOS, a file named FIRMWARE.ZX2 (for a ZXDOS+ with an FPGA LX16 board) or FIRMWARE.ZXD (for a ZXDOS+ with an FPGA LX25 board) must be obtained. The latest version of the firmware files can be downloaded from the official repository

-
-
- - - - - -
- - -
-

Updating the firmware (BIOS) is delicate. It should not be done if it is not necessary. If doing so, ensure that the ZXDOS+ has uninterrupted power (such as a UPS or a laptop USB with battery).

-
-
-
-
-

Copy the file to the root of the MicroSD 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

-
-

The flash memory of a ZXDOS+ 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.

-
-
-

You can add a new ROM pressing the key N at the BIOS 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 ZX-Uno Code Repository.

-
-
-

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 MicroSD card. Boot the ZXDOS+ using a "rooted" ROM, and then just enter the command .romsupgr. This will burn all the ROMs, which will be available for use.

-
-
- - - - - -
- - -
-

At this moment, romsupgr, only works correctly with RomPack files using a maximum of 35 slots.

-
-
-
-
- - - - - -
- - -
-

Remember that if the ZXDOS+ is started by pressing the / key (on the numeric keyboard, Symbol Shift+V in gomaDOS+), then the default ROM of the ZX Spectrum core will be loaded in" root "mode.

-
-
-
-
-

To do the opposite process (save the ROMs in a RomPack file named ROMS.ZX1), you can use the` .romsback` command.

-
-
- - - - - -
- - -
-

At this moment, romsback, only stores correctly the first 35 used slots.

-
-
-
-
-

RomPack files can be easily edited with the http: // guest: zxuno@svn.zxuno.comsvn/zxuno/software/ZX1RomPack/[ZX1RomPack] utility. Although it is a Windows program, it works perfectly, for example using Wine or similar programs, either on MacOS or Linux.

-
-
-
-

Cores

-
-

There are a number of available spaces where you can store cores (the number depends on the size of the SPI Flash of the ZXDOS+ 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).

-
-
-

Official cores are available to download from GitHub repository.

-
-
-

To update or install a new core there are several possibilities.

-
-
-

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.ZX2 (for a ZXDOS + with an FPGA LX16 board) or COREnn.ZXD (for a ZXDOS + with an LX25 board), where nn is the slot number where to install (for example CORE2.ZX2 or CORE2.ZXD for slot 2).

-
-
- - - - - -
- - -
-

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.ZXD file has to be renamed as CORE04.ZXD. The y part of the name is ignored, so longer and more descriptive names can be used (such as CORE04_example.ZXD).

-
-
-
-
-

Copy the file to the root of the microSD 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).

-
-
- - - - - -
- - -
-

The ZX Spectrum core update is exactly the same as other cores, but instead of the name CORE1.ZX2 or CORE1.ZXD, it has to be a file named SPECTRUM.ZX2 or SPECTRUM.ZXD.

-
-
-
-
-
-

esxdos

-
-

To update esxdos to a new version, the distribution must be obtained from the official website.

-
-
-

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 ZXDOS+ commands).

-
-
-

Copy ESXMMC.BIN (or ESXMMC.ROM, depending on version) to the root of the microSD card.

-
-
-

Start ZXDOS + 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.

-
-
-

Do a Hard-reset, or turn it off and on.

-
-
-

If everything has been done correctly, when you turn on the ZXDOS+ you will see how esxdos detects the card and loads the necessary components to work, showing the new version at the top.

-
-
-
-

Flash Memory

-
-

You also can update all the FPGA flash memory. At this moment, from the BIOS you can only use 16MiB image files. To use a 32MiB image, you must use esxdos UPGRZX2 or UPGRZXD command and a file named FLASH.ZX2 or FLASH.ZXD.

-
-
-

Copy the image file (16MiB) FLASH.ZXD to the root of the microSD card.

-
-
-

Turn on the ZXDOS+ and press the F2 key (Caps Shift+1 on gomaDOS+) 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.

-
-
-

Do a Hard-Reset or turn of and on again.

-
-
- - - - - -
- - -
-

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.

-
-
-
-
-
-
-
-
-

Other cores

-
-
-

ZX Spectrum 48K (Kyp)

-
-

Alternative core, whose objective is to be the most accurate implementation in timings, memory contention, etc.

-
-
-

Main features:

-
-
-
    -
  • -

    Only working on RGB (no VGA)

    -
  • -
  • -

    Specdrum

    -
  • -
  • -

    Turbosound (two AY chips) with mix selection ACB/ABC

    -
  • -
  • -

    DivMMC with esxdos 0.8.8

    -
  • -
  • -

    Kempston joystick in port 1

    -
  • -
-
-
-

microSD card format

-
-

You need a microSD card with the first partition formatted as FAT16 or FAT32, and inside, the standard esxDOS 0.8.8 (see esxdos corresponding section for more info).

-
-
-
-

Keyboard

- -
-
-

Special keys and buttons

-
-

While the core is running:

-
-
-
    -
  • -

    Esc (Caps Shift+Space on gomaDOS+): BREAK

    -
  • -
  • -

    F5 (Caps Shift+Symbol Shift+5 on gomaDOS+): NMI

    -
  • -
  • -

    F8 (Caps Shift+Symbol Shift+8 on gomaDOS+): Change Turbosound mixer configuration between ACB and ABC.

    -
  • -
  • -

    Ctrl+Alt+Backspace (Caps Shift+Symbol Shift+B on gomaDOS+) or F11 (Caps Shift+Symbol Shift+Q on gomaDOS+): Hard reset. Backspace is the delete key, located in the top-right portion of the keyboard, above Enter.

    -
  • -
  • -

    Ctrl+Alt+Supr (Caps Shift+Symbol Shift+N on gomaDOS+) or F12 (Caps Shift+Symbol Shift+W on gomaDOS+): Soft reset.

    -
  • -
-
-
-
-
-
-

ZX Spectrum Next

-
-

ZX Spectrum Next is an FPGA based project, which wants to be the evolution of the Sinclair ZX Spectrum line of computers. It brings new features while keeping hardware and software compatibility with previous ZX Spectrum computers.

-
-
-

Specially thanks to avlixa, there exists a ZX Spectrum Next core synthesized for ZXDOS+.

-
-
-

The core, for the moment does not have any of these features:

-
-
-
    -
  • -

    Raspberry Pi

    -
  • -
  • -

    Internal beeper

    -
  • -
  • -

    EDGE expansion Connector

    -
  • -
  • -

    RTC module

    -
  • -
  • -

    Membrane keyboard

    -
  • -
  • -

    Flashing additional cores or upgrading the Next core from within the Next core

    -
  • -
  • -

    MIC out

    -
  • -
  • -

    HDMI Video

    -
  • -
  • -

    UART communication using the joystick port

    -
  • -
-
-
-

The user manual is available to download at the official web page.

-
-
-
-

microSD card format

-
-

You have to use a microSD card with the first partition formatted as FAT16 or FAT32, and inside, the standard esxDOS distribution, matching ZXDOS+ BIOS version (see esxdos corresponding section for more info).

-
-
-

Download NextZXOS distribution from the official page.

-
-
-

Extract NextZXOS in the root of the microSD card, and then edit config.ini under c:/machines/next to include the line ps2=0 if it doesn’t exist or edit the existing line from 1 to 0. This effectively switches the dual PS/2 port to keyboard first as the Next Firmware (TBBLUE.FW) switches the primary input to mouse. Also edit the line intbeep=0 to disable the internal beeper (this last step is not necesary on gomaDOS+).

-
-
-

If it wasn’t already, install ZX Spectrum Next core into ZXDOS+.

-
-
-
-

Keyboard

- -
-
-

Special keys and buttons

-
-

The following gomaDOS+ key combinations are in ZX keyboard mode. Please check the corresponding section for more information. You can also use PC XT keyboard mode combinations .

-
-
-

Take into account that Ctrl+Alt+backspace does not work with the ZX Spectrum Next core. You have to power cycle if you want to use another core. Also, there is no Reset or Drive button.

-
-
-

While the core is running:

-
-
-
    -
  • -

    F1 (Caps Shift+Symbol Shift+1 on gomaDOS+): Hard Reset

    -
  • -
  • -

    F2 (Caps Shift+Symbol Shift+2 on gomaDOS+): Scandoubler. Doubles the resolution. Should be of for SCART

    -
  • -
  • -

    F3 (Caps Shift+Symbol Shift+3 on gomaDOS+): Change vertical frequency between 50Hz and 60Hz

    -
  • -
  • -

    F4 (Caps Shift+Symbol Shift+4 on gomaDOS+): Soft Reset

    -
  • -
  • -

    F7 (Caps Shift+Symbol Shift+7 on gomaDOS+): Scanlines

    -
  • -
  • -

    F9 (Caps Shift+Symbol Shift+9 on gomaDOS+): NMI

    -
  • -
  • -

    F10 (Caps Shift+Symbol Shift+0 on gomaDOS+): divMMC NMI. Simulates Drive button. If used with Caps Shift it forces a rescan of drives and a reload of the boot screen under esxDOS

    -
  • -
-
-
-
-
-

Basic Guide

-
-

On first boot, some help screens will show up. After pressing Space key, NextZXOS Startup Menu appears.

-
-
-

next

-
-
-

You can navigate the menu with the cursor keys, 5, 6, 7 and 8 keys, or a joystick (if configured as Kempston, MD or cursor). Enter or the joystick button chooses one element.

-
-
-

More…​ shows a second menu with more options.

-
-
-

next2

-
-
-
-

If you choose Browser, NextZXOS Browser will start, and then you can see the contents of the microSD card and load a file (TAP, NEX, DSK, SNA, SNX, Z80, Z8, etc.).

-
-
- - - - - -
- - -
-

The browser shows file and directory entries in the order stored in the internal FAT table, and not alphabetically. If you want to see them ordered, yo have to reorder the microSD card structure with a utility like Fat Sorter for Windows, FATsort for Linux and MacOS, YAFS, SDSorter or other.

-
-
-
-
-

next3

-
-
- - - - - -
- - -
-

At the time of writing, the ZX Spectrum Next core for ZXDOS+ does not support the use of a Raspberry Pi-based accelerator, so it is not possible to load TZX files.

-
-
-
-
- - - - - -
- - -
-

It is not possible to load TRD files directly from the Browser (NextZXOS must be configured to load a "personality" with esxdos).

-
-
-
-
-

For more information, see the official user manual.

-
-
-
-
-
-

MSX

-
-

MSX1FPGA is a project to clone MSX1 in FPGA. The original development is by Fabio Belavenuto and is available at GitHub.

-
-
-

Some of its features are:

-
-
-
    -
  • -

    MSX1 at 50Hz or 60Hz

    -
  • -
  • -

    128K Nextor (MSX-DOS2 evolution) ROM with SD driver

    -
  • -
  • -

    Reconfigurable keyboard map

    -
  • -
  • -

    Scanlines

    -
  • -
  • -

    Joystick support

    -
  • -
-
-
-

microSD format

-
-

You have to use a microSD card with the first partition in FAT16 format with 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.

-
-
-

You need to get:

-
-
- -
-
-

Copy the contents of the SD directory in the root of the first partition of the microSD.

-
-
-

Copy NEXTOR.SYS to the same place.

-
-
-

Copy NEXTOR.ROM inside the MSX1FPGA directory.

-
-
-

Copy one MSX1 ROM (MSX_INT.rom, MSX_JP.rom or MSX_USA.rom) inside the MSX1FPGA directory, but renaming it to MSX1BIOS.ROM.

-
-
-

The file /MSX1FPGA/config.txt keeps the core configuration, using this format:

-
-
-
-
11SP01
-||||||
-|||||+-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
-
-
-
-

If it wasn’t already, install MSX core into ZXDOS+.

-
-
-
-
-

Keyboard

- -
-
-

Special keys and buttons

-
-

The following gomaDOS+ key combinations are in MSX keyboard mode. Please check the corresponding section for more information. You can also use PC XT keyboard mode combinations .

-
-
-

While running the core:

-
-
-
    -
  • -

    Print Scr: Changes between VGA and RGB mode

    -
  • -
  • -

    Scroll Lock (Caps Shift+Symbol Shift+G on gomaDOS+): Enables or disables scanlines

    -
  • -
  • -

    Pause: Changes between 50Hz and 60Hz

    -
  • -
  • -

    F11 (Caps Shift+Symbol Shift+Q on gomaDOS+): Enables and disables turbo mode

    -
  • -
  • -

    Ctrl+Alt+Supr: Soft Reset

    -
  • -
  • -

    Ctrl+Alt+F12: Hard Reset

    -
  • -
  • -

    Ctrl+Alt+Backspace (Caps Shift+Symbol Shift+B on gomaDOS+, ZX Spectrum keyboard mode): 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

    -
  • -
-
-
- - - - - -
- - -
-

In BASIC use CTRL+STOP (Ctrl+End) keys to stop the execution of a program.

-
-
-
-
- - - - - -
- - -
-

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 here.

-
-
-
-
-
-
-

Basic Guide

-
-

To go to BASIC from MSX-DOS you must execute BASIC command.

-
-
-

From within BASIC, you can load from a external tape (or other external audio device) with the commansds RUN"CAS:", BLOAD"CAS:",R or CLOAD.

-
-
-

Para acceder a MSX-DOS desde BASIC, ejecutar CALL SYSTEM.

-
-
-

To go to MSX-DOS from BASIC, execute CALL SYSTEM.

-
-
-
-
MSXCTRL
-
-

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.

-
-
-

When running MSXCTRL all the use parameters are shown:

-
-
-
-
MSXCTRL.COM - Utility to manipulate MSX1FPGA core.
-HW ID = 06 - ZX-Uno Board
-Version 1.3
-Mem config = 82
-Has HWDS = FALSE
-
-Use:
-
-MSXCTRL -h -i -r -b -[5|6] -m<0-2>
-        -c<0-1> -d<0-1> -t<0-1>
-        [-w<filename> | -l<filename>]
-        -k<0-255> -e<0-255> -p<0-255>
-        -s<0-255> -o<0-255> -a<0-255>
-
-
-
-

MSXCTRL -h show help for a parameter. For example, MSXCTRL -i show the current configuration, -t 1 sets turbo mode on, etc.

-
-
-
-
Other
-
-

There are different ways to load games depending on the kind of file: .CAS, .DSK o ROM (see this ZX-Uno forums thread for more info).

-
-
-

The spanish keymap officially available can be replaced with a better one. See here for more information.

-
-
-
-
-
-
-

Amstrad CPC

-
-

ZXDOS+ Amstrad CPC core is based on the FPGAmstrad project by Renaud Hélias.

-
-
-

Some of its features are:

-
-
-
    -
  • -

    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

    -
  • -
-
-
-

microSD card format

-
-

You have to use a microSD card with the first partition in FAT32 format, with a maximum of 4GB in size, and 4096 bytes per cluster.

-
-
-

You also need the following ROM files (they are available at the original project Wiki) or from the GitHub repository: -- OS6128.ROM -- BASIC1-1.ROM -- AMSDOS.ROM -- MAXAM.ROM

-
-
-

It is also recommended to copy one or more disk image files (DSK) with the software that you want to run.

-
-
-

Copy all ROM and DSK files to the root directory of the FAT32 partition.

-
-
-
-

Keyboard

- -
-
-

Special keys and buttons

-
-

The following gomaDOS+ key combinations are in Amstrad CPC keyboard mode. Please check the corresponding section for more information. You can also use PC XT keyboard mode combinations.

-
-
-

During core execution:

-
-
-
    -
  • -

    Page Up (Caps Shift+Symbol Shift+E on gomaDOS+): Reset the Amstrad computer and load the next DSK file alphabetically

    -
  • -
  • -

    On a PS/2 keyboard, only the left shift key works properly

    -
  • -
-
-
-
-
-

Basic Guide

-
-

Use the CAT command to see the contents of the currently loaded DSK file.

-
-
-

cpc

-
-
-

Type the command RUN"<name> to load a program from disk

-
-
-

cpc2

-
-
-

Press Page Up key to reset and load the next DSK file.

-
-
-
-
-
-

Acorn Atom

-
-

Acorn Atom was a home computer made by Acorn Computers Ltd. The ZXDOS+ core (based on the ZX-Uno core made by Quest) is an adaptation of the AtomFPGA project. You can get more information at ZX-Uno Forums.

-
-
-

microSD card format

-
-

You have to use a microSD card with the first partition in FAT16 format.

-
-
-

Download the latest version of Atom Software Archive from GitHub.

-
-
-

You can set up the files in the microSD in two different ways:

-
-
-
    -
  1. -

    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.

    -
  2. -
  3. -

    Have less files an directorios 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 at ZX-Uno Forum), replacing any file with the same name. You will get a file and directory structure like this:

    -
  4. -
-
-
-
-
        /
-        +-ATOM/
-        |  +-AA/
-        |  (...)
-        |  +-AGD/
-        |  | +-SHOW2
-        |  | +-SHOW3
-        |  (...)
-        |  +-MENU
-        |  (...)
-        |  +-TUBE/
-        |  | +-BOOT6502
-        |  (..)
-        |
-        +-MANPAGES/
-        |  +-CPM.MAN
-        |  +-FLEX.MAN
-        |  (...)
-        |
-        +-MENU
-
-
-
-
-
-

Keyboard

- -
-
-

Special keys and buttons

-
-

The following gomaDOS+ key combinations are in Acorn Electron keyboard mode. Please check the corresponding section for more information. You can also use PC XT keyboard mode combinations.

-
-
-

While the core is running:

-
-
-
    -
  • -

    Shift+F10: Shows Atom Software Archive Menu

    -
  • -
  • -

    F10 (Caps Shift+Symbol Shift+0 on gomaDOS+): Soft Reset

    -
  • -
  • -

    F1 (Caps Shift+Symbol Shift+1 on gomaDOS+): Turbo mode 1Mhz

    -
  • -
  • -

    F2 (Caps Shift+Symbol Shift+2 on gomaDOS+): Turbo mode 2Mhz

    -
  • -
  • -

    F3 (Caps Shift+Symbol Shift+3 on gomaDOS+): Turbo mode 4Mhz

    -
  • -
  • -

    F4 (Caps Shift+Symbol Shift+4 on gomaDOS+): Turbo mode 8Mhz

    -
  • -
-
-
-

The keyboard uses the following mapping:

-
-
-

keyboardAtom

-
-
-
-
-

Basic Guide

-
-

Sometimes, after starting up the core, a screen full of @ appears. Ejecting and inserting, or only inserting, the microSD card will fully start the system.

-
-
-

acorn

-
-
-

Once it’s running, press Shift+F10 to show a menu where you can choose and load Atom Software Archive programs from the card.

-
-
-
-
-
-

Commodore 64

-
-

The Commodore 64 (C64, CBM 64/CBM64, C=64,C-64, VIC-641​), was an 8-bit home computer manufactured by Commodore International.

-
-
-

The ZXDOS+ core is developed by Neuro.

-
-
-

microSD card format

-
-

You can use a microSD card with the first partition formatted as FAT16 or FAT32. Disk image (D64) and tape (TAP) files can be loaded from the SD card.

-
-
-

See the corresponding section for instructions of how to install the Commodore 64 core in ZXDOS+.

-
-
-
-

Keyboard

- -
-
-

Special keys and buttons

-
-

The following gomaDOS+ key combinations are in Commodore 64 keyboard mode. Please check the corresponding section for more information. You can also use PC XT keyboard mode combinations.

-
-
-

While the core is running:

-
-
-
    -
  • -

    F9 Caps Shift+Symbol Shift+9 on gomaDOS+): Play/Pause a TAP file

    -
  • -
  • -

    F12 (Caps Shift+Symbol Shift+W on gomaDOS+): Shows options menu

    -
  • -
  • -

    Scroll Lock (Caps Shift+Symbol Shift+G on gomaDOS+): switches between VGA and RGB modes

    -
  • -
  • -

    Esc (Caps Shift+Space on gomaDOS+): RUN/STOP (Shift+RUN/STOP: Load from tape)

    -
  • -
-
-
-
-
-

Basic Guide

-
-

After pressing F12 (Caps Shift+Symbol Shift+W on gomaDOS+), the option menu is shown.

-
-
-

c64

-
-
-

The menu offers the following options

-
-
-
    -
  • -

    Core reset

    -
  • -
  • -

    Enable o disable scanlines

    -
  • -
  • -

    Change colour palette (Colores Payaso MICOLOR)

    -
  • -
  • -

    Enable or disable PAL mode

    -
  • -
  • -

    Enable or disable tape loading sound (Sonido Carga Cinta)

    -
  • -
  • -

    Enable or disable audio filter (Filtro de Audio)

    -
  • -
  • -

    Load D64 file from SD (Carga D64)

    -
  • -
  • -

    Load TAP file (Carga Tap)

    -
  • -
-
-
-

After a disk is inserted, normally, you can use LOAD "*",8,1 and press Enter to load the software inside. Once READY is shown on screen, type RUN and press Enter to execute it.

-
-
-

If there was more than one program in the disk, type LOAD "$" and press Enter. Then, type LIST, and press Enter, to see a list with the files in the disk. Now, to load one of them, type LOAD "<name>",8 (where <name> is the name of the file to load) and press Enter. Once READY is shown on screen, type RUN and press Enter to execute it. If this didn’t work try again with the command LOAD "<name>",8,1.

-
-
-
-

To load from tape, Select "Carga Tap" option from the menu. Then, browse the microSD and select the TAP file to load, press ENTER and close the options menu. After that, type LOAD and press Enter, or press Shift+Esc (Shift+RUN/STOP). Finally, when pressing F9 (Caps Shift+Symbol Shift+9 on gomaDOS+) the tape file will start playing (you can enable the tape loading sound selecting "Sonido Carga Cinta" in the options menu). Once the loading finishes, type RUN and press ENTER if needed.

-
-
- - - - - -
- - -
-

For this core, the right joystick port is mapped to joystick port 1 and the left port is mapped to joystick port 2. This is the opposite of what happens in other cores.

-
-
-
-
-
-
-
-

Phoenix

-
-

Space-Themed shooter video game released in arcades by Amstar Electronics.

-
-
-

Some of the features of the ZXDOS+ core are:

-
-
-
    -
  • -

    Two different video modes: RGB/PAL60Hz and VGA 60Hz

    -
  • -
  • -

    Scanlines on VGA mode

    -
  • -
  • -

    Controls can be optionally rotated 90º

    -
  • -
-
-
-

microSD format

-
-

This core does not use the microSD card.

-
-
-
-

Keyboard

- -
-
-

Special keys and buttons

-
-

While the core is running:

-
-
-
    -
  • -

    Q and A or Left Cursor and Right Cursor (or a joystick): Movement control

    -
  • -
  • -

    Z or X Left Windows Key and Space (or joystick buttons 1 and 2): Fire 1 and 2, also to insert coin and Start

    -
  • -
  • -

    F2 (Caps Shift+Symbol Shift+B on gomaDOS+): Switches between VGA and RGB modes

    -
  • -
  • -

    - (numeric keyboard): Enable or disable scanlines

    -
  • -
  • -

    Tab (Caps Shift+Enter on gomaDOS+, PC XT keyboard mode): Enables or disables 90º rotation of the direction of controls

    -
  • -
-
-
-
-

Basic Guide

-
-

By default, the core starts with normal controls, configured for vertical displays. If you have an horizontal display, the image will be rotated. To ease the control, and make it more natural and according to what you see, when typing Tab, up-down directions are switched with left-right. This is both for joystick and keyboard controls.

-
-
-
-
-
-

Pong

-
-

Pong was one of the earliest arcade video games manufactured by Atari.

-
-
-

Some features of this core are:

-
-
-
    -
  • -

    Two different video modes: RGB/PAL60Hz and VGA 60Hz

    -
  • -
  • -

    7 game variants

    -
  • -
  • -

    Support for 2 or 4 players

    -
  • -
  • -

    Support for Joysticks, keyboard, mouse and rotary encoder controls (see here for more information)

    -
  • -
  • -

    Several colour modes

    -
  • -
-
-
-

microSD format

-
-

This core does not use the microSD card.

-
-
-
-

Keyboard

- -
-
-

Special keys and buttons

-
-

While the core is running:

-
-
-
    -
  • -

    Esc or joystick button 2 (or Caps Shift+Space on gomaDOS+, PC XT keyboard mode): Show or hide configuration menu

    -
  • -
  • -

    Ctrl+Alt+Backspace (Caps Shift+Symbol Shift+B on gomaDOS+, ZX Spectrum keyboard mode): Hard reset

    -
  • -
  • -

    Scroll Lock (Caps Shift+Symbol Shift+G on gomaDOS+, ZX Spectrum keyboard mode): switch between VGA and RGB mode

    -
  • -
  • -

    F3 o F12 (Caps Shift+Symbol Shift+3 or Caps Shift+Symbol Shift+W on gomaDOS+): Restart game

    -
  • -
  • -

    Number between 1 and 7: Change the game variant

    -
  • -
  • -

    Joystick 2 (right): Control right pad (Player 1).

    -
  • -
  • -

    Joystick 1 (left): Control left pad (Player 2)

    -
  • -
  • -

    Cursor up and Cursor down or O and K: Control right pad (Player 1 in 2 player mode and player 3 in 4 player mode)

    -
  • -
  • -

    Q and A: Control left pad (Player 2 in 2 player mode and player 4 in 4 player mode)

    -
  • -
  • -

    Z, M or joystick button 1: Manual serve

    -
  • -
  • -

    Cursor keys (Caps Shift+5, Caps Shift+6, Caps Shift+7 and Caps Shift+8 on gomaDOS+, PC XT keyboard mode) and Enter to use the menu

    -
  • -
-
-
-
-
-

Basic Guide

-
-

Pressing Esc or joystick button 2 (Caps Shift+Space on gomaDOS+, PC XT keyboard mode) shows or hides the configuration menu. Cursor keys (Caps Shift+5, Caps Shift+6, Caps Shift+7 and Caps Shift+8 on gomaDOS+, PC XT keyboard mode) and Enter to select and choose menu options.

-
-
-

pong

-
-
-

The following options are available:

-
-
-
    -
  • -

    Serve mode

    -
  • -
  • -

    Ball Angle

    -
  • -
  • -

    Ball Speed

    -
  • -
  • -

    Paddle Size

    -
  • -
  • -

    Sound

    -
  • -
  • -

    Number of players

    -
  • -
  • -

    Speed mode

    -
  • -
  • -

    Angle mode

    -
  • -
  • -

    Joystick, mouse, etc. controls

    -
  • -
  • -

    Paddle accuracy

    -
  • -
  • -

    Colour mode

    -
  • -
  • -

    Exit

    -
  • -
-
-
-
-
-
-

NES

-
-

Nintendo Entertainment System (also known as Nintendo NES or just NES) is the second home video game console produced by Nintendo.

-
-
-

The ZXDOS+ core has been made by Nihirash, based on the previous version for ZX-Uno by DistWave y Quest.

-
-
-

Some features of this core are:

-
-
-
    -
  • -

    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

    -
  • -
  • -

    You need, at least, one gamepad or joystick connected, and it must have several buttons

    -
  • -
  • -

    Only VGA video mode is supported, with non-accurate timings, so it may not work with some displays

    -
  • -
-
-
-

microSD card format

-
-

You need a microSD card with the first partition in FAT16 format to store ROM image files of the games to load. ROM files can be inside subdirectories.

-
-
-

See the corresponding section for instructions of how to install the NES core in ZXDOS+.

-
-
-
-

Keyboard

- -
-
-

Special keys and buttons

-
-

While the core is running:

-
-
-
    -
  • -

    Esc or joystick button 2 (or Caps Shift+Space on gomaDOS+, PC XT keyboard mode): Show or hide configuration menu

    -
  • -
  • -

    Cursor keys (Caps Shift+5, Caps Shift+6, Caps Shift+7 and Caps Shift+8 on gomaDOS+, PC XT keyboard mode), and Enter to use the menu

    -
  • -
  • -

    Ctrl+Alt+Backspace (Caps Shift+Symbol Shift+B on gomaDOS+, ZX Spectrum keyboard mode): Hard reset

    -
  • -
-
-
-
-
-

Basic Guide

-
-

Pressing Esc or joystick button 2 (Caps Shift+Space on gomaDOS+) shows or hides the configuration menu. To navigate the menu and activate or choose any option, use the cursor keys (Caps Shift+5, Caps Shift+6, Caps Shift+7 and Caps Shift+8 in gomaDOS+, PC XT keyboard mode) and Enter.

-
-
-

nes

-
-
-

The following options are available:

-
-
-
    -
  • -

    Reset NES

    -
  • -
  • -

    Scanlines

    -
  • -
  • -

    HQ2X Filter

    -
  • -
  • -

    P1 Select

    -
  • -
  • -

    P1 Start

    -
  • -
  • -

    Load ROM

    -
  • -
  • -

    Exit

    -
  • -
-
-
-
-
-
-

ColecoVision

-
-

ColecoVision is Coleco Industries' home video-game console that was released in August 1982.

-
-
-

ZXDOS+ core is based on ZX-Uno version by Fabio Belavenuto.

-
-
-

Some features of this core are:

-
-
-
    -
  • -

    BIOS ROM is loaded from microSD card

    -
  • -
  • -

    Supports multicart ROM, also loaded from microSD

    -
  • -
  • -

    Only works with VGA

    -
  • -
-
-
-

microSD card format

-
-

You need a microSD 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 the original project in GitHub.

-
-
-

See the corresponding section for instructions of how to install the ColecoVision core in ZXDOS+.

-
-
-
-

Keyboard

- -
-
-

Special keys and buttons

-
-

While the core is running:

-
-
-
    -
  • -

    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' (or Caps Shift+Space on gomaDOS+, PC XT keyboard mode): Soft Reset

    -
  • -
-
-
-
-
-

Basic Guide

-
-

On startup, BIOS ROM is loaded from the card, and then the multicart ROM.

-
-
-

coleco

-
-
-

At multicart menu, use the directional controls to choose one ROM, and then fire button 1 to load. Pressing 'Esc' (Caps Shift+Space on gomaDOS+, PC XT keyboard mode) restarts the core and loads the ROM selection menu again.

-
-
-
-
-
-

Atari 2600

-
-

Atari 2600 is a home video game console originally branded as the Atari Video Computer System (Atari VCS).

-
-
-

ZXDOS+ core version is developed by avlixa.

-
-
-

Some of the features of the core are:

-
-
-
    -
  • -

    RGB and VGA support

    -
  • -
  • -

    Support for joysticks, keyboard, mouse and rotary encoder controls (see here for more information)

    -
  • -
-
-
-

microSD card format

-
-

You need a microSD card with the first partition in FAT16 format to store ROM image files of the games to load.

-
-
-

See the corresponding section for instructions of how to install the Atari 2600 core in ZXDOS+.

-
-
-
-

Keyboard

-
-

For gomaDOS+, it is recommended to change the keyboard mode to Atari 800 (Caps Shift + Symbol Shift + U and then 4) o PC XT (Caps Shift + Symbol Shift + U and then 9).

-
-
-
-

Special keys and buttons

-
-

During the core execution:

-
-
-
    -
  • -

    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 (Caps Shift+Symbol Shift+G on gomaDOS+): change between RGB and VGA video mode

    -
  • -
  • -

    Ctrl+Alt+Backspace (Caps Shift+Symbol Shift+B on gomaDOS+): Hard reset.

    -
  • -
-
-
-
-
-

Basic Guide

-
-

Pressing Esc or joystick button 2 (Caps Shift+Space on gomaDOS+, Atari800 keyboard mode) shows or hides the configuration menu. Cursor keys (Caps Shift+5, Caps Shift+6, Caps Shift+7 and Caps Shift+8 on gomaDOS+, Atari800 keyboard mode) and Enter to select and choose menu options.

-
-
-

a2600

-
-
-

The following options are available:

-
-
-
    -
  • -

    Reset core

    -
  • -
  • -

    Scanlines

    -
  • -
  • -

    RGB Mode (PAL/NTSC)

    -
  • -
  • -

    Paddle Size

    -
  • -
  • -

    Sound

    -
  • -
  • -

    Color

    -
  • -
  • -

    Difficulty A

    -
  • -
  • -

    Difficulty B

    -
  • -
  • -

    Select

    -
  • -
  • -

    Start

    -
  • -
  • -

    Load ROM

    -
  • -
  • -

    Joystick

    -
  • -
  • -

    Paddle Accuracy

    -
  • -
  • -

    Exit

    -
  • -
-
-
-
-
-
-

Videopac

-
-

Philips Videopac, also known as Magnavox Odyssey², Philips Videopac G7000 o Philips Odyssey², is a second generation home video game console that was released in 1978.

-
-
-

The ZXDOS+ core is make by avlixa, and is based on ZXDOS core by yomboprime.

-
-
-

Some features of the core are:

-
-
-
    -
  • -

    RGB and VGA support

    -
  • -
  • -

    Needs at least one joystick to be used

    -
  • -
  • -

    Different colour modes including monochrome

    -
  • -
  • -

    loadable VDC ROM charset for some custom roms

    -
  • -
  • -

    "The Voice" peripheral

    -
  • -
-
-
-

microSD card format

-
-

You need a microSD card with the first partition in FAT16 format to store ROM image files to load.

-
-
-

See the corresponding section for instructions of how to install the Videopac core in ZXDOS+.

-
-
-
-

Keyboard

-
-

For gomaDOS+, it is recommended to change the keyboard mode to PC XT (Caps Shift + Symbol Shift + U and then 9).

-
-
-
-

Special keys and buttons

-
-

During the core execution:

-
-
-
    -
  • -

    F1 (Caps Shift+Symbol Shift+5 on gomaDOS+): Loads a test ROM

    -
  • -
  • -

    Scroll Lock (Caps Shift+Symbol Shift+G on gomaDOS+): change between RGB and VGA video mode

    -
  • -
  • -

    Ctrl+Alt+Backspace (Caps Shift+Symbol Shift+B on gomaDOS+): Hard reset

    -
  • -
  • -

    After loading a ROM, most games will prompt the user with "SELECT GAME". Press 0-9 on the keyboard or mapped controller button to play the game.

    -
  • -
  • -

    Esc or joystick button 2 (or Caps Shift+Espacio on gomaDOS+) to show or hide the options menu

    -
  • -
  • -

    W, A, S, D or cursor keys (Caps Shift+5, Caps Shift+6, Caps Shift+7 and Caps Shift+8 on gomaDOS+, with PC XT keyboard mode) and then Enter to choose and select menu options

    -
  • -
-
-
-
-
-

Basic Guide

-
-

Usually, there is no on-screen display of the game options, so looking at the instruction manuals (for example following this link) may be helpful in selecting a game.

-
-
-

Note also that the system did not have a well defined player 1 or player 2 controller, and some games may alternate on a game-to-game basis. You may need to swap controllers to use the input or (for one player games) use the join joystick option of the menu

-
-
- - - - - -
- - -
-

If, when browsing the ROM directory, you can’t see all of them, try to split the content into several subdirectories with less files per directory.

-
-
-
-
-

Pressing Esc or joystick button 2 (Caps Shift+Space on gomaDOS+, PC XT keyboard mode) shows or hides the configuration menu. Cursor keys (Caps Shift+5, Caps Shift+6, Caps Shift+7 and Caps Shift+8 on gomaDOS+, PC XT keyboard mode) and Enter to select and choose menu options.

-
-
-

videopac

-
-
-

The following options are available:

-
-
-
    -
  • -

    Reset core

    -
  • -
  • -

    Scanlines

    -
  • -
  • -

    Swap Joysticks

    -
  • -
  • -

    Join Joysticks

    -
  • -
  • -

    Load Cartridge ROM

    -
  • -
  • -

    Load VDC Font

    -
  • -
  • -

    Video mode: PAL/Videopac or NTSC/Odyssey2

    -
  • -
  • -

    Color Mode

    -
  • -
  • -

    The Voice

    -
  • -
  • -

    Exit

    -
  • -
-
-
-
Change VDC ROM charset
-
-

You can, for some ROMs, load a CHR file including a custom font, instead of the original one which was included with the Intel 8244/8245 chip.

-
-
-

Those files can be made following the instructions and using the editor available at the project repository, following this link.

-
-
-
-
-
-
-
-
-

Other Hardware

-
-
-

Rotary Encoders

-
-

Pong and Atari 2600 cores support the use of quadrature rotary encoders as control devices. They can be connected to the joystick ports. Although the testing has been done with 600 ppr encoders, lower ppr encoders, like 400 or 300, should also work.

-
-
-

You can also use an Atari 2600 paddle driving controller. In this case the playing experience is bad, since they have few ppr and you must do several full rotations. When using them, it’s recommended to set the accuracy setting to 8, to have enough speed.

-
-
-

Connection

-
-

Both ZXDOS+ and gomaDOS+ have joystick pin 5 connected to positive VCC, used as main power, and pin 8 as GND. The rotary encoders to use must support voltage from 3,4v to 5v.

-
-
-

A rotary encoder has 5 wires: Earth Ground (not connected), Vcc (+), GND (0V`or `-), A and B.

-
-
-

A y B are connected to pins 1 and 2 for the first encoder, 3 and 4 for the seconde one. This way you can have up to 4 encoders connected using both joystick ports.

-
-
-

db9joy

-
-
-

This way, the connections should be:

-
-
-
    -
  1. -

    Line A encoder 1

    -
  2. -
  3. -

    Line B encoder 1

    -
  4. -
  5. -

    Line A encoder 2

    -
  6. -
  7. -

    Line B encoder 2

    -
  8. -
  9. -

    Vcc(+)

    -
  10. -
  11. -

    Fire 1

    -
  12. -
  13. -

    NC

    -
  14. -
  15. -

    GND

    -
  16. -
  17. -

    Fire 2

    -
  18. -
-
-
-
-
-

Pong Core Configuration

-
-

Follow these directions to choose the configuration:

-
-
-
    -
  • -

    For 1 or 2 endoders on joystick port 2 de joystick, select 1/2 Paddle in J2 option

    -
  • -
  • -

    For 2 encoders, one for each joystick port, select 2/4 Paddle in J1&J2 option. This is also valid to connect two Atari 2600 driving paddles

    -
  • -
  • -

    For 4 encoders, two for each joystick port, select 2/4 Paddle in J1&J2 option

    -
  • -
  • -

    For 1 or 2 encoders on joystick port 2 along with a mouse (in this case the encoders are for players 2 and 4), select Mouse PS/2 option

    -
  • -
-
-
-

It is recommended to wait, and make the connection after selecting the chosen option, since the encoders interfere with the up/down directions of the joystick, blocking access to the menu. Another option is to add a on/off switch for the encoder that will disable the power.

-
-
-
-
-
-

Loading from tape

-
-

Some cores can load, as the original machines could, from a external audio device like a cassette player or something else simulating it.

-
-
-

Besides the card, you have to plug an appropriate audio cable to ZXDOS+ 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).

-
-
-

Cassette Player

-
-

The use is exactly the same as when using the original computers:

-
-
-
    -
  1. -

    Plug the audio cable

    -
  2. -
  3. -

    Type on the computer or select the tape loading option. For examle, for ZX Spectrum 48K, typing J, then, twice, " (Symbol Shift + P on gomaDOS+) and then Enter to do the classic LOAD "" + Enter

    -
  4. -
  5. -

    Start playing the tape (you may have to try several times adjusting the player volume)

    -
  6. -
-
-
-
-

Computer

-
-

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
-
-

This program for Windows, MacOS or Linux, can play directly a TZX tape file through the audio output of the computer.

-
-
-

You can download the binary file (for example), for Windows from World of Spectrum Classic and for Mac from this GitHub repository) or compile the source code as explained later.

-
-
-
    -
  1. -

    Plug the audio cable between the computer audio output and ZXDOS+ audio input (remember to use only the right mono channel to the PC, Mac, etc. output)

    -
  2. -
  3. -

    Type on the computer or select the tape loading option. For examle, for ZX Spectrum 48K, typing J, then, twice, " (Symbol Shift + P on gomaDOS+) and then Enter to do the classic LOAD "" + Enter

    -
  4. -
  5. -

    Start playing a tape file with this command (you may have to try several times adjusting the player volume)

    -
  6. -
-
-
-
-
./playtzx <tape file path>
-
-
-
-

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 ZXDOS+ core loads the program.

-
-
- - - - - -
- - -
-

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).

-
-
-
-
-
Compile source code (MacOS or Linux)
-
-

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 GNU Autotools.

-
-
-

Download the source code from this repository), extract the contents if needed and access from a terminal to the directory and type the commands:

-
-
-
-
aclocal && autoconf && autoheader && automake --add-missing
-./configure
-make
-
-
-
-

If all goes well, a new file named tzxplay will be created, which you can copy anywhere and then use. You can delete the compilation directory.

-
-
-
-
-
-

Mobile phone, tablet, MP3 player, etc.

-
-

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.

-
-
-

PlayZX is an App for Android which can play tape files through the headphone output.

-
-
- - - - - -
- - -
-

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 ZXDOS+ audio input.

-
-
-

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.

-
-
-
-
-
Audio file conversion
-
-

These are some of the many programas that exist and which can export tape files to audio files.

-
-
-

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

-
-
-

tape2wav from Fuse Utilities is a command line utility that can export from TZX PZX and TAP to WAV.

-
-
-

pzx2wav in PZX Tools is another command line utility which exports to WAV.

-
-
-

tsx2wav in TSXphpclass is made wiwth PHP and that can export from TSX to WAV.

-
-
-
-
-
-

Miniduino

-
-

Miniduino is a tape file audio player, based on a STM32F103C8T6 microcontroller with 64KB flash memory, and Maxduino firmware preinstalled.

-
-
-

Maxduino plays, in a very similar way to how 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 SpecAY in a ZX Spectrum.

-
-
-
Ports and buttons
-
-

MiniduinoBack

-
-
-

MiniduinoFront

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - -

1

Power

2

Audio output

3

Control button

4

Motor control

5

microSD card slot

6

Screen

-
-
-
-
Configuration
-
-

A microSD 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.

-
-
-

The card must have the first partition formatted as FAT16 or FAT32.

-
-
-

Besides the card, you have to plug an appropriate audio cable to ZXDOS+ 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.

-
-
-

If you hava a device that can use motor control, you can also use a cable with a 2.6 mm jack.

-
-
-

Copy the tape files (TAP, TZX, O, P, CAS, TSX, etc) to the first partition of the microSD card. They can be organized using folders or directories.

-
-
- - - - - -
- - -
-

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, yo have to reorder the microSD card structure with a utility like Fat Sorter for Windows, FATsort for Linux and MacOS, YAFS, SDSorter or other.

-
-
-
-
-
-
-
Use
-
-

Once the microSD card with the data files is inserted, it’s turned on plugging in the included USB power cable.

-
-
-

MiniduinoLogo

-
-
-

Pressing down the control button shows the options menu which can set the following:

-
-
-
    -
  • -

    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

    -
  • -
-
-
-

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.

-
-
-

MiniduinoVersion

-
-
-

When the player is stopped (file and directories browser):

-
-
-
    -
  • -

    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

    -
  • -
-
-
-
-

Once a file is being played, stop playing it with the left button (Stop) or pause using the right button (Play/Pause).

-
-
-

MiniduinoPlay

-
-
-

When in pause (tape block browser:

-
-
-
    -
  • -

    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

    -
  • -
-
-
-
-
-
Maxduino firmware upgrade
-
-

Maxduino firmwar is periodically updated and improved. You can track the changes and improvements either at the forums or at the GitHub project page. To take advantage of this improvements, the Miniduino flash image must be flased with the updated firmware version.

-
-
-
Environment setup
-
-

Firmware flashing is done from a computer (Windows, Mac, Linux) with Arduino IDE installed.

-
-
-

You have to install SDFat (1.1.4) software library selecting the menu option Program → include library → manage libraries

-
-
-

Minidiuno microcontroller support must also be added. This is done in two steps:

-
-
-

First, adding ARXM Cortex M3 support from menu Tools → borad → board manager, and installing "Arduino SAM boards (Cortex-M3)"

-
-
-

Then, you have to add STM32 microcontroller support, downloading the file available at this link.

-
-
-

Extract the contents to the current user directory in

-
-
-
-
...Arduino/hardware/Arduino_STM32
-
-
-
-

If on Windows, install the USB device controller, running (with elevated privileges:

-
-
-
-
 ...\drivers\win\install_drivers.bat
-
-
-
-

On Linux, install with root privileeges the necessary udev rules:

-
-
-
-
...tools/linux/install.sh
-
-
-
-

On MacOS, if Miniduino does not appear as USB device in Arduino ID when plugged, it may be necessary to install libusb.

-
-
-
-

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:

-
-
-
-
if [ $# -eq 5 ]; then
-    dfuse_addr="--dfuse-address $5"
-else
-    dfuse_addr=""
-fi
-
-
-
-

And have to be changed into this:

-
-
-
-
dfuse_addr=""
-
-
-
-
-
-
Upgrade
-
-

Once you have the environemnt ready, download the software from the official repository in GitHub

-
-
- - - - - -
- - -
-

Minduino player with STM32 microcontroller is only supported from 1.65 and up

-
-
-
-
-

Load the project file with Arduino IDE (for example MaxDuino_v1.66.ino).

-
-
-

Check in the file userSTM32Config.h that all logo entries are commented except for Miniduino and, if not, change them.

-
-
-
-
...
-//#define tanque4
-//#define tanque1
-//#define dostanques
-//#define cablemax
-//#define sony
-#define miniduino
-...
-
-
-
-

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)

-
-
-

Set the following options in menu "":

-
-
-
-
Board: Generic STM32F104C Series
-Variant: STM32F104C8 (20k RAM, 64k Flash)
-Upload Method: STM32duino bootloader
-CPU Speed: 72Mhz (Normal)
-Optimize: Smallest (default)
-Port: <Previously identified port>
-
-
-
-

Finall, clic on the firmware load button and wait for a few seconds while the project is compiled and loaded into the device.

-
-
-

If everything has been done correctly the Miniduino will restart and show on the screen the new firmware version.

-
-
-
-
-
-
-
-
-
-

Troubleshooting

-
-
-

Firmware images management

-
-

There are several tools with you can use to make and/or edit the contents of ZX1, ZX2, ZXD files.

-
-
-

zx123_tool

-
-

This is a tool to analyze, extract and inject data in SPI flash image files for ZX-Uno, ZXDOS and similar devices.

-
-
-

You need to have Python 3 to use it. Depending on the operating system you may have to install it.

-
-
-

Having Python 3, you only need to download the latest version of the tool from the official repository, following this link.

-
-
-

Once extracted, you have to run from a shell the main script using Python 3. This may change depending on the operating system.

-
-
-

For example, on Windows, it’s usually:

-
-
-
-
py -3 zx123_tool.py
-
-
-
-

With other operating systems it normally is like:

-
-
-
-
python3 ./zx123_tool.py
-
-
-
-

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 microSD, you can "clean" it leaving only the Spectrum core and the first Spectrum ROM with a command like this:

-
-
-
-
... zx123_tool.py -i FLASH.ZXD -w -o FLASHempty.ZXD
-
-
-
-

Where FLASH.ZXD is the path to the original file and FLASHempty.ZXD is the path to the new "clean" file.

-
-
-
-

List the contents of an image

-
-
-

To see the contents of an image file named FLASH.ZXD (installed cores and some configuration info), you can use the command

-
-
-
-
... zx123_tool.py -i FLASH.ZXD -l
-
-
-
-

To show the contents of the same file, including ZX Spectrun ROMs info:

-
-
-
-
... zx123_tool.py -i FLASH.ZXD -l -r
-
-
-
-

Change the BIOS of an image

-
-
-

To change the BIOS inside a file named FLASH.ZXD, using the BIOS file named FIRMWARE.ZXD

-
-
-
-
...zx123_tool.py -i FLASH.ZXD -a BIOS,FIRMWARE.ZXD
-
-
-
-

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).

-
-
-

This way to change the BIOS of a file named FLASH.ZXD, using the BIOS file FIRMWARE.ZXD, and also set the video mode to VGA and the keyboard layout to Spectrum (for gomaDOS`+):

-
-
-
-
...zx123_tool.py -i FLASH.ZXD -a BIOS,FIRMWARE.ZXD -m 2 -k 3
-
-
-
-

There are also options to set the BIOS boot delay time, the default core or the default Spectrum ROM. See the documentation for more info.

-
-
-
-

Add a Spectrum ROM to an image

-
-
-

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:

-
-
-
-
...zx123_tool.py -i FLASH.ZXD -a ROM,5,xdnlh17,Spec48,48.rom
-
-
-
-

See the documentation for all the possible options when adding a Spectrum ROM.

-
-
-

Amongst the information you give when adding a ROM, there are some flags used to tell wich hardware options, etc, you want to have enabled or disabled when loading the ROM, as shown in this table:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
iKeyboard issue 3 enabled (instead of issue 2)

c

Disable memory contention

d

Enable DivMMC

n

Enable NMI DivMMC (esxdos Menu)

p

Use Pentagon Timings

t

Use 128K timings

s

Disable DivMMC and ZXMMC ports

m

Enable Timex Horizontal MMU

h

Disable ROM high bit (1FFD bit 2)

l

Disable ROM low bit (7FFD bit 4)

1

Disable 1FFD port (+2A/3 paging)

7

Disable 7FFD port (128K paging)

2

Disable TurboSound (secondary AY chip)

a

Disable AY chip

r

Disable Radastanian mode

x

Disable Timex mode

u

Disable ULAPlus

-
-
-

Install a Core to an image

-
-
-

For example, to install a core in space 3, from a file named NEXT.ZXD, with the name Spectrum Next, use a command like this:

-
-
-
-
...zx123_tool.py -i FLASH.ZXD -a 'CORE,3,Spectrum Next,NEXT.ZXD'
-
-
-
-

If you want also to set the core as the default, use a command like:

-
-
-
-
...zx123_tool.py -i FLASH.ZXD -a 'CORE,3,Spectrum Next,NEXT.ZXD' -c 3
-
-
-
-

Change esxdos ROM of an image

-
-
-

Just like the BIOS firmware, you can install a ROM esxdos file, with a command like this:

-
-
-
-
...zx123_tool.py -i FLASH.ZXD -a esxdos,ESXMMC.BIN
-
-
-
-

Mix several actions in one line

-
-
-

Please do note that you can add several actions in one command line. For example, to "clean" an image file named FLASH.ZXD, creating a new one named FLASHnew.ZXD, installing the BIOS from the file FIRMWARE.ZXD, 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 NEXT.ZXD, with the name Spectrum Next, as default core:

-
-
-
-
... zx123_tool.py -i FLASH.ZXD -w -o FLASHnew.ZXD -a BIOS,FIRMWARE.ZXD -m 2 -k 3 -a ROM,5,xdnlh17,Spec48,48.rom -a CORE,3,SpecNext,NEXT.ZXD -c 3
-
-
-
-
-
-
-

Firmware recovery

-
-

Sometimes (e.g. when installing an experimental core or when upgrading the ZX Spectrum Next or the BIOS) it may happen that the ZXDOS+ 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.

-
-
-

When this happens, there are several recovery methods that let you install again the firmware.

-
-
-

JTAG cable connections

-
-

Later, in some of the recovery steps, when talking about jump wires or USB-Blaster connections to ZXDOS, you can use these images as reference.

-
-
-

jtag jtaggomados

-
-
-

Take note, that on some models, the JTAG pins are at the under the board.

-
-
-

jtag02 jtag03 jtag04

-
-
- - - - - -
- - -
-

DO NOT connect the 3V line

-
-
-
-
- - - - - -
- - -
-

When using USB-Blaster, a gomaDOS+ is ready to connect directly the 2x5 connector. For a ZXDOS+, it may be necessary to prepare the cables, looking at the previous images.

-
-
-
-
-
-
-

Recovery using a Raspberry Pi

-
-

Hardware required:

-
-
-
    -
  • -

    Raspberry Pi (with SD card, keyboard, display, power supply, etc.) and with internet connection

    -
  • -
  • -

    5 jump wires (if possible, female on both sides) or, instead a USB-Blaster cable

    -
  • -
  • -

    One hex key with the right socket size for ZXDOS+ cover screws, or appropriate screwdriver to open a gomaDOS+ (this isn’t necessary if using a USB-Blaster)

    -
  • -
  • -

    microSD for ZXDOS+/gomaDOS+ with the first partition formatted as FAT16 or FAT32

    -
  • -
  • -

    Keyboard (not needed for gomaDOS+) and display for ZXDOS+

    -
  • -
-
-
-

Software required:

-
-
- -
-
-

Instruction Steps:

-
-
-
    -
  1. -

    Install Raspberry Pi OS (formely known as Raspbian) to the Raspberry Pi SD card (using the official download, NOOBS, PINN, etc.)

    -
  2. -
  3. -

    Install Open OCD:

    -
  4. -
-
-
-
-
sudo apt-get update
-sudo apt-get install git autoconf libtool make pkg-config
-sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev telnet
-sudo apt-get install libusb-dev libftdi-dev
-git clone git://git.code.sf.net/p/openocd/code openocd-code
-cd openocd-code/
-./bootstrap
-./configure --enable-usb_blaster --enable-sysfsgpio --enable-bcm2835gpio
-make
-sudo make install
-cd ..
-rm -rf ./openocd-code
-
-
-
-
-
    -
  1. -

    Connect USB-Blaster or jump wires if using GPIO. In this case, open the ZXDOS+ or gomaDOS+ case and, as explained before connect the FPGA JTAG lines (TMS, TDI, TDO, TCK y GND), using the wires, to the Raspberry Pi GPIO pins.

    -
  2. -
-
-
-

Is using a GPIO connection, take note of the chosen pins, making sure that GND is connected with GND.

-
-
-

gpio

-
-
-

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:

-
- ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ZXDOS+ JTAGGPIORaspberry Pi Pin

TMS

GPIO#6

31

TDI

GPIO#13

33

TDO

GPIO#19

35

TCK

GPIO#26

37

GND

GND

39

-
-
    -
  1. -

    Copy to the Raspberry Pi the file named recovery.zxd.bit previously downloaded from the official repository. For our example, it will be at /home/pi/zxdosplus/unbrick/

    -
  2. -
  3. -

    If using GPIO, make a copy of Open OCD configuration file, to the same directory where recovery.zxd.bit is.

    -
  4. -
-
-
-
-
cp /usr/local/share/openocd/scripts/interface/raspberrypi2-native.cfg /home/pi/zxdosplus/unbrick/
-
-
-
-
-
    -
  1. -

    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:

    -
  2. -
-
-
-
-
# Header pin numbers: 37 31 33 35
-bcm2835gpio_jtag_nums 26 6 13 19
-
-
-
-
    -
  1. -

    Comment, if it wasnt’t already, the line bcm2835gpio_swd_nums (not necessary for USB-Blaster connection):

    -
  2. -
-
-
-
-
#bcm2835gpio_swd_nums 11 25
-
-
-
-
    -
  1. -

    Add, to the end of the file, the line adapter speed 250 (again, not necessary for USB-Blaster):

    -
  2. -
-
-
-
-
adapter speed 250
-
-
-
-
    -
  1. -

    Turn on the ZXDOS+ or gomaDOS+.

    -
  2. -
  3. -

    Make sure that, on the Raspberry Pi, we are in the directory where recovery.zxd.bit is, and execute the command that loads the BIOS on recovery mode, using the path to the previously edited raspberrypi2-native.cfg.

    -
  4. -
-
-
-

For GPIO connection:

-
-
-
-
cd /home/pi/zxdosplus/unbrick
-sudo openocd -f /home/pi/zxdosplus/unbrick/raspberrypi2-native.cfg -f /usr/local/share/openocd/scripts/cpld/xilinx-xc6s.cfg -c "init; xc6s_program xc6s.tap; pld load 0 recovery.zxd.bit ; exit"
-
-
-
-

For USB-Blaster connection:

-
-
-
-
sudo openocd -f /usr/local/share/openocd/scripts/interface/altera-usb-blaster.cfg  -f /usr/local/share/openocd/scripts/cpld/xilinx-xc6s.cfg -c "init; xc6s_program xc6s.tap; pld load 0 recovery.zxd.bit ; exit"
-
-
-
-
-
    -
  1. -

    If all goes well, we will see that the FPGA LED change their state and the BIOS is shown on the display.

    -
  2. -
-
-
-

If there is no image on the display, press Scroll Lock (Caps Shift+Symbol Shift+G on gomaDOS+): to switch between RGB and VGA modes, just in case the recovery BIOS did start in the wrong mode for our setup.

-
-
-

recovery

-
-
-
    -
  1. -

    Insert in the ZXDOS+ the microSD card formatted as FAT16 o FAT32, and with the FLASH.ZXD file downloaded previously.

    -
  2. -
  3. -

    If using a USB-Blaster connection, unplug the connector.

    -
  4. -
-
-
-
-
    -
  1. -

    Select the option Upgrade Flash from SD. Press Enter, choose Yes, and press Enter again to start the Flash writing process.

    -
  2. -
-
-
-

recovery2

-
-
- - - - - -
- - -
-

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.

-
-
-
-
- - - - - -
- - -
-

Ususally, the recovery image is set to use a PS/2 keyboard so, for a gomaDOS+, some key combinations, like Caps Shift + 5, etc may not work. In this case, you have to change the keyboard mode to PC XT(Caps Shift + Symbol Shift + U and then 9), to make them work temporarily.

-
-
-
-
-
-
    -
  1. -

    After some minutes, the process will end, and, after turning the ZXDOS+ off and on, it should start fine.

    -
  2. -
-
-
- - - - - -
- - -
-

If no image is shown, press again Scroll Lock (Caps Shift+Symbol Shift+G on gomaDOS+): to switch between RGB and VGA modes. In this case, you should have to enter the BIOS and change the right advanced setting that matches your display.

-
-
-
-
- - - - - -
- - -
-

For a gomaDOS+, since the recovery image uses a PS/2 configuration as default, follow this steps to set up the BIOS correctly:

-
-
-
    -
  1. -

    If you see no image, switch between composite and VGA mode (Caps Shift+Symbol Shift+G)

    -
  2. -
  3. -

    Change to PC XT keyboard mode (Caps Shift + Symbol Shift + U and then 9)

    -
  4. -
  5. -

    Reboot gomaDOS+ without losing the temporary keyboard mode (Caps Shift + Symbol Shift + B)

    -
  6. -
  7. -

    Quickly, press Caps Shift + 1

    -
  8. -
  9. -

    Again, if there’s no image, switch between composite and VGA mode (Caps Shift+Symbol Shift+G)

    -
  10. -
  11. -

    Navigate through BIOS and turno on these options:

    -
    -
      -
    • -

      AdvancedKeyboard Layout: Spectrum

      -
    • -
    • -

      AdvancedVideo: VGA (only if there was no image)

      -
    • -
    -
    -
  12. -
  13. -

    Save changes:

    -
    -
      -
    • -

      ExitSave changes and exit

      -
    • -
    -
    -
  14. -
  15. -

    Completely turn off gomaDOS` and turn it on again

    -
  16. -
-
-
-
-
-
-
-

Recovery using MacOS and USB-Blaster cable

-
-

Hardware required:

-
-
-
    -
  • -

    USB-Blaster cable. Using the right pins for ZXDOS+, as explained earlier

    -
  • -
  • -

    Flash Image file and y recovery file fo ZXDOS+ (LX25). The same ones as for Raspberry Pi, from the official repository

    -
  • -
-
-
-

Software required:

-
-
-
    -
  • -

    Mac OS

    -
  • -
  • -

    Extra data folder for UrJTAG, obtained from here

    -
  • -
  • -

    Homebrew for Mac OS

    -
  • -
  • -

    UrJTAG: following instructions from here:

    -
  • -
-
-
-

Instruction Steps:

-
-
-
    -
  1. -

    Prepare UrJTAG instal:

    -
  2. -
-
-
-
-
brew install libftdi libusb pkg-config
-git clone https://github.com/C-Elegans/urjtag.git
-cd urjtag
-
-
-
-
    -
  1. -

    Copy the extra data folder for UrJTAG, into urjtag data folder.

    -
  2. -
  3. -

    Start compiling:

    -
  4. -
-
-
-
-
./configure --with-libftdi --with-libusb --with-ftd2xx --with-inpout32 --enable-python=no
-make -j4
-sudo make install
-
-
-
-
    -
  1. -

    Copy FLASH.ZXD file to the root of the ZXDOS+ microSD card.

    -
  2. -
  3. -

    Connect USB-Blaster cable to ZXDOS+ and the Mac

    -
  4. -
  5. -

    Turn on the ZXDOS+ or gomaDOS+.

    -
  6. -
  7. -

    Make sure that, we are in the directory where recovery.zxd.bit is, and execute jtag command.

    -
  8. -
-
-
-
-
    -
  1. -

    A new shell appears. Now type the commands:

    -
  2. -
-
-
-
-
cable usbblaster
-detect
-pld load recovery.zxd.bit
-
-
-
- - - - - -
- - -
-

Make sure, when using detect, that the device is shown as detected. You may need to execute detect several times until it appears.

-
-
-
-
-

recovery mac 1

-
-
-
-
    -
  1. -

    If all goes well, we will see that the FPGA LED change their state and the BIOS is shown on the display.

    -
  2. -
-
-
-

If there is no image on the display, press Scroll Lock (Caps Shift+Symbol Shift+G on gomaDOS+): to switch between RGB and VGA modes, just in case the recovery BIOS did start in the wrong mode for our setup.

-
-
-

recovery

-
-
-
    -
  1. -

    Insert in the ZXDOS+ the microSD card formatted as FAT16 o FAT32, and with the FLASH.ZXD file downloaded previously.

    -
  2. -
  3. -

    Unplug the USB-Blaster.

    -
  4. -
  5. -

    Select the option Upgrade Flash from SD. Press Enter, choose Yes, and press Enter again to start the Flash writing process.

    -
  6. -
-
-
-

recovery2

-
-
- - - - - -
- - -
-

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.

-
-
-
-
- - - - - -
- - -
-

Ususally, the recovery image is set to use a PS/2 keyboard so, for a gomaDOS+, some key combinations, like Caps Shift + 5, etc may not work. In this case, you have to change the keyboard mode to PC XT(Caps Shift + Symbol Shift + U and then 9), to make them work temporarily.

-
-
-
-
-
    -
  1. -

    After some minutes, the process will end, and, after turning the ZXDOS+ off and on, it should start fine.

    -
  2. -
-
-
- - - - - -
- - -
-

If no image is shown, press again Scroll Lock (Caps Shift+Symbol Shift+G on gomaDOS+): to switch between RGB and VGA modes. In this case, you should have to enter the BIOS and change the right advanced setting that matches your display.

-
-
-
-
- - - - - -
- - -
-

For a gomaDOS+, since the recovery image uses a PS/2 configuration as default, follow this steps to set up the BIOS correctly:

-
-
-
    -
  1. -

    If you see no image, switch between composite and VGA mode (Caps Shift+Symbol Shift+G)

    -
  2. -
  3. -

    Change to PC XT keyboard mode (Caps Shift + Symbol Shift + U and then 9)

    -
  4. -
  5. -

    Reboot gomaDOS+ without losing the temporary keyboard mode (Caps Shift + Symbol Shift + B)

    -
  6. -
  7. -

    Quickly, press Caps Shift + 1

    -
  8. -
  9. -

    Again, if there’s no image, switch between composite and VGA mode (Caps Shift+Symbol Shift+G)

    -
  10. -
  11. -

    Navigate through BIOS and turno on these options:

    -
    -
      -
    • -

      AdvancedKeyboard Layout: Spectrum

      -
    • -
    • -

      AdvancedVideo: VGA (only if there was no image)

      -
    • -
    -
    -
  12. -
  13. -

    Save changes:

    -
    -
      -
    • -

      ExitSave changes and exit

      -
    • -
    -
    -
  14. -
  15. -

    Completely turn off gomaDOS` and turn it on again

    -
  16. -
-
-
-
-
- - - - - -
- - -
-

When using Linux with urjtag, the process should be quite similar, although the dependencies (libftdi libusb pkg-config) would have to be installed with the appropiate package manager (apt, yum, pacman, etc.)

-
-
-
-
-
-
-

Recovery using Windows and USB-Blaster cable

-
-

Hardware required:

-
-
-
    -
  • -

    USB-Blaster cable. Using the right pins for ZXDOS+, as explained earlier

    -
  • -
  • -

    Flash Image file and y recovery file fo ZXDOS+ (LX25). The same ones as for Raspberry Pi, from the official repository

    -
  • -
-
-
-

Software required:

-
-
- -
-
-

Instruction Steps:

-
-
-
    -
  1. -

    Extract the ZIP file with drivers (obtained from the ZX-Uno forums)

    -
  2. -
  3. -

    Plug USB-Blaster to the Windows PC and install the driver choosing to select manually installation files and using the folder drivers obtained after extracting the ZIP

    -
  4. -
  5. -

    Extract UrJTAG Windows software, obtained at the official repository

    -
  6. -
  7. -

    Copy FLASH.ZXD file to the root of the ZXDOS+ microSD card.

    -
  8. -
  9. -

    Connect USB-Blaster cable to ZXDOS+ and the PC

    -
  10. -
  11. -

    Make sure that you are in the directory where recovery.zxd.bit is, and execute jtag command.

    -
  12. -
  13. -

    Turn on the ZXDOS+ or gomaDOS+.

    -
  14. -
  15. -

    A new shell appears. Now type the commands:

    -
  16. -
-
-
-
-
cable usbblaster
-detect
-pld load recovery.zxd.bit
-
-
-
-
-
    -
  1. -

    If all goes well, we will see that the FPGA LED change their state and the BIOS is shown on the display.

    -
  2. -
-
-
-

If there is no image on the display, press Scroll Lock (Caps Shift+Symbol Shift+G on gomaDOS+): to switch between RGB and VGA modes, just in case the recovery BIOS did start in the wrong mode for our setup.

-
-
-

recovery

-
-
-
    -
  1. -

    Insert in the ZXDOS+ the microSD card formatted as FAT16 o FAT32, and with the FLASH.ZXD file downloaded previously.

    -
  2. -
  3. -

    Unplug the USB-Blaster.

    -
  4. -
  5. -

    Select the option Upgrade Flash from SD. Press Enter, choose Yes, and press Enter again to start the Flash writing process.

    -
  6. -
-
-
-

recovery2

-
-
- - - - - -
- - -
-

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.

-
-
-
-
- - - - - -
- - -
-

Ususally, the recovery image is set to use a PS/2 keyboard so, for a gomaDOS+, some key combinations, like Caps Shift + 5, etc may not work. In this case, you have to change the keyboard mode to PC XT(Caps Shift + Symbol Shift + U and then 9), to make them work temporarily.

-
-
-
-
-
    -
  1. -

    After some minutes, the process will end, and, after turning the ZXDOS+ off and on, it should start fine.

    -
  2. -
-
-
- - - - - -
- - -
-

If no image is shown, press again Scroll Lock (Caps Shift+Symbol Shift+G on gomaDOS+): to switch between RGB and VGA modes. In this case, you should have to enter the BIOS and change the right advanced setting that matches your display.

-
-
-
-
- - - - - -
- - -
-

For a gomaDOS+, since the recovery image uses a PS/2 configuration as default, follow this steps to set up the BIOS correctly:

-
-
-
    -
  1. -

    If you see no image, switch between composite and VGA mode (Caps Shift+Symbol Shift+G)

    -
  2. -
  3. -

    Change to PC XT keyboard mode (Caps Shift + Symbol Shift + U and then 9)

    -
  4. -
  5. -

    Reboot gomaDOS+ without losing the temporary keyboard mode (Caps Shift + Symbol Shift + B)

    -
  6. -
  7. -

    Quickly, press Caps Shift + 1

    -
  8. -
  9. -

    Again, if there’s no image, switch between composite and VGA mode (Caps Shift+Symbol Shift+G)

    -
  10. -
  11. -

    Navigate through BIOS and turno on these options:

    -
    -
      -
    • -

      AdvancedKeyboard Layout: Spectrum

      -
    • -
    • -

      AdvancedVideo: VGA (only if there was no image)

      -
    • -
    -
    -
  12. -
  13. -

    Save changes:

    -
    -
      -
    • -

      ExitSave changes and exit

      -
    • -
    -
    -
  14. -
  15. -

    Completely turn off gomaDOS` and turn it on again

    -
  16. -
-
-
-
-
-
-
-
-
- -
- - - - \ No newline at end of file diff --git a/doc/indice.html b/doc/indice.html deleted file mode 100644 index e93b133..0000000 --- a/doc/indice.html +++ /dev/null @@ -1,6235 +0,0 @@ - - - - - - - - - - -Manual de ZXDOS+ y gomaDOS+ - - - - - - -
-
-
-
-
-
-
-

Introducción

-
-
-

ZXDOS+ y gomaDOS+ son la continuación de 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.

-
-
-

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 ZXDOS+ con la configuración que se desee de entre todas las instaladas.

-
-
-

La página oficial de ZXDOS+ y gomaDOS+ es http://zxdos.forofpga.es.

-
-
-

La mayoría de las funciones y características de ZXDOS+ y gomaDOS+ son las mismas, así que, en este documento, se hablará, en general, de ZXDOS+, indicando las diferencias con gomaDOS+ donde sea necesario.

-
-
-
-

Puertos y Conectores

-
-

ZXDOS+

-
-

ZXDOSfront

-
-
-

ZXDOSback

-
-
-
-
-

gomaDOS+

-
-

gomaDosBack

-
-
-
-

Descripción

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

1

Interruptor

2

Ranura microSD

3

JTAG y Joystick

4

Salida de Sonido

5

Entrada de Sonido

6

Salida RGB/VGA

7

Enchufe de Alimentación

8

Puerto de expansión

9

Puerto de Joystick Izquierdo

10

Puerto de Joystick Derecho

11

Puerto de Teclado PS/2

12

Puerto de Ratón PS/2

0

Puerto USB (PS/2)

-
-
-
-
-

Configuración Inicial

-
-

Para poder poner en marcha un ZXDOS+ o gomaDOS+ hace falta, al menos, lo siguiente:

-
-
-
    -
  • -

    Un cargador USB, una TV u otro dispositivo que ofrezca alimentación USB

    -
  • -
  • -

    Un cable y un monitor VGA

    -
  • -
  • -

    Un teclado PS/2 (en el caso de ZXDOS+)

    -
  • -
-
-
-

Para poder aprovechar todo su potencial, es útil tener también:

-
-
-
    -
  • -

    Una tarjeta microSD, 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 (opcional en gomaDOS+, ya que tiene beeper incorporado)

    -
  • -
  • -

    Un joystick norma Atari, como por ejemplo, un gamepad DB9 de Megadrive (se necesita el adaptador de joystick en el caso de gomaDOS+)

    -
  • -
  • -

    Un ratón PS/2 (se necesista adaptador PS/2 a USB en el caso de gomaDOS+)

    -
  • -
  • -

    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 (ver la sección correspondiente más adelante), un PC/Mac/Raspberry PI, etc. o un reproductor/grabador de cassette. El canal derecho se utiliza como entrada (EAR) y el canal izquierdo se puede usar como salida de grabación (MIC).

    -
  • -
-
-
-

Formato de la tarjeta microSD

-
-

Para poder utilizar una tarjeta microSD, esta debe tener, al menos, una partición (la primera en el caso de haber varias) en formato FAT16 o FAT32 (según el caso, se recomienda uno u otro formato para compatibilidad con distintos cores de terceros). Para el core de Spectrum, tambén es posible tener una primera partición en formato +3DOS y luego otra(s) en formato FAT16 o FAT32, para su uso con una ROM de +3e.

-
-
- - - - - -
- - -
-

El tamaño máximo de una partición FAT16 son 4GB

-
-
-
-
-
Windows
-
-

Para configuraciones sencillas, y tarjetas del tamaño adecuado (menos de 2GB para FAT16 o menos de 32GB para FAT32), se puede utilizar la herramienta de formato oficial de la 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.

-
-
-
-
MacOS
-
-

Para configuraciones sencillas, y tarjetas del tamaño adecuado (menos de 2GB para FAT16 o menos de 32GB para FAT32), se puede utilizar la herramienta de formato oficial de la SD Association o la Utilidad de Discos incluida con el sistema operativo.

-
-
-

Para configuraciones más complejas, será necesario utilizar la línea de comandos.

-
-
-

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:

-
-
-
-
diskutil unmountDisk /dev/disk6
-diskutil partitionDisk /dev/disk6 MBR "MS-DOS FAT16" ZXDOSPLUS R
-
-
-
-

Para dividirla en dos particiones iguales (si la tarjeta es de 4GB o menos de tamaño):

-
-
-
-
diskutil unmountDisk /dev/disk6
-diskutil partitionDisk /dev/disk6 MBR "MS-DOS FAT16" ZXDOSPLUS 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):

-
-
-
-
diskutil unmountDisk /dev/disk6
-diskutil partitionDisk /dev/disk6 MBR %DOS_FAT_16% ZXDOSPLUS 4G %DOS_FAT_16% EXTRA 4G "MS-DOS FAT32" DATA R
-sudo newfs_msdos -F 16 -v ZXDOSPLUS -c 128 /dev/rdisk6s1
-sudo newfs_msdos -F 16 -v EXTRA -c 128 /dev/rdisk6s2
-
-
-
- - - - - -
- - -
-

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.

-
-
-
-
-

Para crear una partición FAT32 de 4GB (por ejemplo, para usar con el core de Amstrad CPC) y usar el resto del espacio con otra más en formato FAT32 (para tarjetas de más de 4GB de tamaño):

-
-
-
-
diskutil unmountDisk /dev/disk6
-diskutil partitionDisk /dev/disk6 MBR "MS-DOS FAT32" ZXDOSPLUS 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.

-
-
-
-
-
-

esxdos

-
-

esxdos es un firmware para la interfaz the DivIDE/DivMMC, que el ZXDOS+ implementa, y que permite el acceso a dispositivos de almacenamiento como la tarjeta microSD. Incluye comandos similares a los de UNIX, aunque para usarlos hay que precederlos con un punto, por ejemplo .ls, .cd, .mv, etc.

-
-
-

Para poder utilizarlo es necesario incluir los ficheros correspondientes en la primera partición de la tarjeta microSD.

-
-
-

En el momento de escribir este documento, la versión incluida con ZXDOS+ es la 0.8.6, y se puede descargar desde la página oficial en este enlace.

-
-
-

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.

-
-
-

Si todo se ha hecho correctamente, al encender el core Spectrum de ZXDOS+ se verá cómo esxdos detecta la tarjeta y carga los componentes necesarios para funcionar.

-
-
-

esxdos

-
-
-
-

Es recomendable, además, añadir los comandos esxdos específicos para ZXDOS+. Estos se pueden obtener en la página con el código fuente del proyecto (aquí, aquí y aquí), y son los siguientes:

-
-
-
-
back16m
-backzx2
-backzxd
-corebios
-dmaplayw
-esprst
-iwconfig
-joyconf
-keymap
-loadpzx
-playmid
-playrmov
-romsback
-romsupgr
-upgr16m
-upgrzx2
-upgrzxd
-zxuc
-zxunocfg
-
-
-
-

Más adelante se explica lo que hace cada uno de ellos.

-
-
-
-
-
-

Modos de teclado en gomaDOS+

-
-

El teclado de gomaDOS+ al ser similar al teclado del ZX Spectrum original, carece de algunas de teclas existentes en un teclado moderno de PC. Internamente, el teclado de membrana está conectado a una placa Arduino, que se encarga de transformar las pulsaciones al protocolo PS/2 de teclado. Esta placa está programada de manera que pueda comportarse de distintas maneras según nos interese.

-
-
-

Por defecto, está configurado en modo ZX Spectrum. Para cambiar a otro modo, se debe pulsar Caps Shift+Symbol Shift+U y luego la tecla correspondiente. Al hacerlo, se tecleará automáticamente un texto indicando el modo seleccionado (por ejemplo: .zx si se pulsa Caps Shift+Symbol Shift+U y luego 0).

-
-
-

La siguiente tabla indica los distintos modos y la tecla de activación asociada:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ModoTecla

ZX Spectrum

0

Amstrad CPC

1

MSX

2

Commodore 64

3

Atari 800XL

4

BBC Micro

5

Acorn Electron

6

Apple (I y II)

7

Commodore VIC 20

8

PC XT

9

Oric Atmos

A

SAM Coupé

B

Jupiter ACE

C

-
-
-

La distribución del teclado en modo ZX Spectrum, con la pulsación asociada al combinar junto con Caps Shift+Symbol Shift, se puede resumir según el siguiente esquema:

-
- ------------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

1

2

3

4

5

6

7

8

9

0

F1

F2

F3

F4

F5

F6

F7

F8

F9

F1

Q

W

E

R

T

Y

U

I

O

P

F11

F12

Modo

A

S

D

F

G

H

J

K

L

Enter

BlqDs

CShift

Z

X

C

V

B

N

M

SShift

Space

Guarda

Vers

hRes

sRes

-
-

Donde:

-
-
-
    -
  • -

    BlqDs: Bloq. Despl. cambia de modo video compuesto a VGA y viceversa (en el core de Next, se debe usar Caps Shift+Symbol Shift+2 o F2)

    -
  • -
  • -

    Guarda: Define el modo actual como el modo por defecto

    -
  • -
  • -

    Vers: Muestra (teclea) la versión actual del firmware

    -
  • -
  • -

    hRes: Hard Reset

    -
  • -
  • -

    sRes: Soft Reset

    -
  • -
-
-
-
-

La lista completa de combinaciones de teclado (y el modo en que se pueden utilizar) es la siguiente:

-
- ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Caps S.+Symbol S.ModoAcción

1

Todos

F1

2

Todos

F2

3

Todos

F3

4

Todos

F4

5

Todos

F5

6

Todos

F6

7

Todos

F7

8

Todos

F8

9

Todos

F9

0

Todos

F10

Q

Todos

F11

W

Todos

F12

S

C64

Ctrl+F12

E

Acorn/CPC

Re Pág

R

Acorn

PgAbajo

U

Todos

Modo

G

ZX/MSX/C64

BlqDs

X

Todos

Guarda

C

PC

OPQA

V

Todos

Versión

B

ZX

Ctrl+Alt+Bcksp

N

ZX

Ctrl+Alt+Supr

-
-
-
-

BIOS

-
-

Si se pulsa la tecla F2 (Caps Shift+1 en gomaDOS+) 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 ZXDOS+. El propósito fundamental del software de BIOS es iniciar y probar el hardware y cargar uno de los cores instalados.

-
-
-

Usando las teclas de cursor izquierda y derecha (Caps Shift+5 y Caps Shift+8 en gomaDOS+), se puede navegar por las pantallas de configuración de la BIOS. Con las teclas arriba y abajo (Caps Shift+7 y Caps Shift+6 en gomaDOS+) 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 (Caps Shift+Espacio en gomaDOS+) sirve para cerrar las ventanas de opciones abiertas sin aplicar ninguna acción.

-
-
-

Main

-
-

bios

-
-
-

En la primera pantalla de configuración, además de poder ejecutar distintas pruebas, se puede definir el comportamiento por defecto para lo siguiente:

-
-
-
    -
  • -

    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)

    -
  • -
  • -

    DivMMC

    -
  • -
  • -

    Soporte NMI para DivMMC

    -
  • -
  • -

    Soporte para nuevos modos gráficos (ULAPlus, Timex, Radastan)

    -
  • -
-
-
-

Se puede consultar información más tecnica en la Wiki de ZX-Uno.

-
-
-
-

ROMs

-
-

bios2

-
-
-

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).

-
-
-
-

Upgrade

-
-

bios3

-
-
-

La pantalla Upgrade se utiliza para realizar las distintas actualizaciones del contenido de la memoria Flash: esxdos, BIOS, Cores, etc. (véase el apartado correspondiente a actualizaciones para más información).

-
-
-
-

Boot

-
-

bios4

-
-
-

En la pantalla Boot se puede elegir qué core de los instalados se desea que cargue por defecto en el arranque.

-
-
-
-
-

Advanced

-
-

bios5

-
-
-

La pantalla de configuración avanzada sirve para modificar los siguientes ajustes:

-
-
-
    -
  • -

    Distribución del teclado (Keyb Layout): Ver 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

    -
  • -
-
-
-
-
-

Exit

-
-

bios6

-
-
-

Finalmente, desde la última pantalla se puede:

-
-
-
    -
  • -

    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)

    -
  • -
-
-
-
-
-
-
-

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 ZXDOS+ lo utiliza para su funcionamiento.

-
-
-

Estas son algunas de sus principales características:

-
-
-
    -
  • -

    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 para +3e y soporte DIVMMC para 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í.

    -
  • -
-
-
-
-

Formato avanzado de la tarjeta microSD (+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.

-
-
- - - - - -
- - -
-

El esquema de particionado que se presentará a continuación sólo se podrá utilizar con el core de Spectrum.

-
-
-
-
- - - - - -
- - -
-

En IDEDOS, cada partición puede tener un tamaño entre 1 y 16 Megabytes (un millón 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 1GB de espacio.

-
-
-
-
-

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).

-
-
-

En la segunda particion se puede instalar, tal y como se explicó anteriormente exsdos y otros programas.

-
-
-

Windows

-
-

Se puede utilizar el administrador de discos de Windows. Los pasos a seguir serían:

-
-
-
    -
  1. -

    Eliminar todas las particiones de la tarjeta

    -
  2. -
  3. -

    Crear una partición extendida, del tamaño que se quiera utilizar para IDEDOS

    -
  4. -
  5. -

    Crear una partición primaria de 4GB y formatear como FAT16

    -
  6. -
  7. -

    Opcionalmente, crear otra partición primaria ocupando el resto del espacio y formatear como FAT32

    -
  8. -
-
-
-
-
-

MacOS

-
-

Será necesario utilizar la línea de comandos. Lo primero es determinar el disco a formatear:

-
-
-
-
diskutil list
-
-
-
-

En este ejemplo sería el disco 6:

-
-
-
-
(...)
-/dev/disk6 (external, physical):
-   #:                       TYPE NAME                    SIZE       IDENTIFIER
-   0:     FDisk_partition_scheme                        *15.9 GB    disk6
-   1:                 DOS_FAT_32 UNKNOWN                 15.9 GB    disk6s1
-
-
-
-

Pasos a seguir:

-
-
-
    -
  1. -

    Expulsar el disco y editar el esquema de particiones (el segundo paso requiere permisos de administrador):

    -
  2. -
-
-
-
-
diskutil unmountDisk /dev/disk6
-sudo fdisk -e /dev/rdisk6
-
-
-
-
-
fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
-Enter 'help' for information
-fdisk: 1> erase
-fdisk:*1> edit 1
-Partition id ('0' to disable)  [0 - FF]: [0] (? for help) 7F
-Do you wish to edit in CHS mode? [n]
-Partition offset [0 - 31116288]: [63] 128
-Partition size [1 - 31116287]: [31116287] 2017152
-
-fdisk:*1> edit 2
-Partition id ('0' to disable)  [0 - FF]: [0] (? for help) 06
-Do you wish to edit in CHS mode? [n]
-Partition offset [0 - 31116288]: [2017280]
-Partition size [1 - 29099135]: [29099135] 7812504
-
-fdisk:*1> flag 2
-
-
-
-
-
fdisk:*1> edit 3
-Partition id ('0' to disable)  [0 - FF]: [0] (? for help) 0B
-Do you wish to edit in CHS mode? [n]
-Partition offset [0 - 31116288]: [9829784]
-Partition size [1 - 21286504]: [21286504]
-
-fdisk:*1> print
-         Starting       Ending
- #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
-------------------------------------------------------------------------
- 1: 7F 1023 254  63 - 1023 254  63 [       128 -    2017152] <Unknown ID>
- 2: 06 1023 254  63 - 1023 254  63 [   2017280 -    7812504] DOS > 32MB
- 3: 0B 1023 254  63 - 1023 254  63 [   9829784 -   21286504] Win95 FAT-32
- 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused
-
-fdisk:*1> write
-fdisk: 1> quit
-
-
-
-
    -
  1. -

    Formatear las particiones FAT (requiere permisos de administrador)

    -
  2. -
-
-
-
-
diskutil unmountDisk /dev/disk6
-sudo newfs_msdos -F 16 -v ZXDOSPLUS -c 128 /dev/rdisk6s2
-sudo newfs_msdos -F 32 -v EXTRA -b 4096 -c 128 /dev/rdisk6s3
-
-
-
-
    -
  1. -

    Comprobar cómo el esquema de particiones ha cambiado y ya es el que se deseaba:

    -
  2. -
-
-
-
-
diskutil list
-
-
-
-
-
(...)
-/dev/disk6 (external, physical):
-   #:                       TYPE NAME                    SIZE       IDENTIFIER
-   0:     FDisk_partition_scheme                        *15.9 GB    disk6
-   1:                       0x7F                         1.0 GB     disk6s1
-   2:                 DOS_FAT_16 ZXDOSPLUS               4.0 GB     disk6s2
-   3:                 DOS_FAT_32 EXTRA                   10.9 GB    disk6s3
-
-
-
-
-

Linux

-
-

Será necesario utilizar la línea de comandos. Lo primero es determinar el disco a formatear:

-
-
-
-
lsblk
-
-
-
-
-

En este ejemplo sería sdc:

-
-
-
-
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
-(..)
-sdc          179:0    0 15,8G  0 disk
-└─sdc1       179:1    0 15,8G  0 part
-
-
-
-

Pasos a seguir:

-
-
-
    -
  1. -

    Comprobar que no está montado y editar el esquema de particiones (este paso requiere permisos de root):

    -
  2. -
-
-
-
-
sudo fdisk -e /dev/sdc
-
-
-
-
-
Enter 'help' for information
-fdisk: 1> erase
-fdisk:*1> edit 1
-Partition id ('0' to disable)  [0 - FF]: [0] (? for help) 7F
-Do you wish to edit in CHS mode? [n]
-Partition offset [0 - 31116288]: [63] 128
-Partition size [1 - 31116287]: [31116287] 2017152
-
-fdisk:*1> edit 2
-Partition id ('0' to disable)  [0 - FF]: [0] (? for help) 06
-Do you wish to edit in CHS mode? [n]
-Partition offset [0 - 31116288]: [2017280]
-Partition size [1 - 29099135]: [29099135] 7812504
-
-fdisk:*1> flag 2
-
-fdisk:*1> edit 3
-Partition id ('0' to disable)  [0 - FF]: [0] (? for help) 0B
-Do you wish to edit in CHS mode? [n]
-Partition offset [0 - 31116288]: [9829784]
-Partition size [1 - 21286504]: [21286504]
-
-fdisk:*1> print
-         Starting       Ending
- #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
-------------------------------------------------------------------------
- 1: 7F 1023 254  63 - 1023 254  63 [       128 -    2017152] <Unknown ID>
- 2: 06 1023 254  63 - 1023 254  63 [   2017280 -    7812504] DOS > 32MB
- 3: 0B 1023 254  63 - 1023 254  63 [   9829784 -   21286504] Win95 FAT-32
- 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused
-
-fdisk:*1> write
-fdisk: 1> quit
-
-
-
-
    -
  1. -

    Formatear las particiones FAT (requiere permisos de root)

    -
  2. -
-
-
-
-
sudo mkfs.fat -F 16 /dev/sdc2
-sudo mkfs.fat -F 32 /dev/sdc3
-
-
-
-
    -
  1. -

    Verificar que el esquema de particiones ha cambiado y ya es el que se quería:

    -
  2. -
-
-
-
-
lsblk
-
-
-
-
-
NAME      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
-(...)
-sda      179:0    0 15,8G  0 disk
-├─sda1   179:1    0    1G  0 part
-├─sda2   179:2    0    4G  0 part
-├─sda3   179:3    0 10,8G  0 part
-
-
-
-
-

+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.

-
-
-

El primer paso consiste en determinar la geometría de la microSD. Con la tarjeta insertada en el ZXDOS+, desde el core de Spectrum con la ROM de +3e, ejecutar el comando:

-
-
-
-
CAT TAB
-
-
-
-

Esto devoverá un resultado indicando el número de cilindros, cabezales y sectores.

-
-
-

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:

-
-
-
-
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.

-
-
-
-

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:

-
-
-
-
NEW DATA "Software",16
-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 esta página en World of Spectrum.

-
-
-
-
-
-

Teclado

-
-

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).

-
-
-

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 este mensaje en el foro de ZX-Uno.

-
-
-

Español

-
-

keyboardEsp

-
-
-
-

Inglés

-
-

keyboardEng

-
-
-
-

Spectrum

-
-

keyboardAV

-
-
-
-
-
-

Teclas especiales y botones

-
-

Las combinaciones específicas de gomaDOS+ que se indican a continuación se corresponden con el modo de teclado ZX. Véase el apartado dedicado a los modos de teclado de gomaDOS+ para más información. También se pueden utilizar las equivalentes en el modo de teclado PC XT (Por ejemplo, Caps Shift+Symbol Shift+2 en vez de Caps Shift+1).

-
-
-

Teclas especiales durante el arranque:

-
-
-
    -
  • -

    F2 (Caps Shift+1 en gomaDOS+) Entrar en la BIOS

    -
  • -
  • -

    Bloq. Mayús o Cursor abajo (Caps Shift+2 en gomaDOS+) o, si hay un joystick conectado, pulsar la dirección hacia abajo: Menú de selección de cores

    -
  • -
  • -

    Esc (Caps Shift+Espacio en gomaDOS+) 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, Symbol Shift+V en gomaDOS+): 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 (Caps Shift+Espacio en gomaDOS+): BREAK

    -
  • -
  • -

    F2 (Caps Shift+1 en gomaDOS+): Edit

    -
  • -
  • -

    F5 (Caps Shift+Symbol Shift+5 en gomaDOS+): NMI

    -
  • -
  • -

    F7 (Caps Shift+Symbol Shift+7 en gomaDOS+): Reproducir o Pausa en la reproducción de archivos .PZX

    -
  • -
  • -

    F8 (Caps Shift+Symbol Shift+8 en gomaDOS+): Rebobinar el archivo .PZX hasta la marca anterior

    -
  • -
  • -

    F10 (Caps Shift+9 en gomaDOS+): Graph

    -
  • -
  • -

    F12 (Caps Shift+Symbol Shift+W en gomaDOS+): Turbo Boost. Pone a la CPU a 28MHz mientras se mantenga pulsada (a partir del core EXP27).

    -
  • -
  • -

    Ctrl+Alt+Backspace (Caps Shift+Symbol Shift+B en gomaDOS+): Hard reset. Backspace es la tecla de borrar hacia atrás, encima de Enter.

    -
  • -
  • -

    Ctrl+Alt+Supr (Caps Shift+Symbol Shift+N en gomaDOS+): Soft reset.

    -
  • -
  • -

    Bloq. Despl. (Caps Shift+Symbol Shift+G en gomaDOS+): 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 ZXDOS+, y se puede elegir cuál cargar, pulsando la tecla Esc (Caps Shift+Espacio en gomaDOS+) 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 apartado de actualizaciones para más información sobre cómo ampliar o modificar las ROMs almacenadas en la memoria flash.

-
-
-

DerbyPro

-
-

DerbyPro o Derby++ 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 grupo púbilco oficial de Facebook.

-
-
-

Puesto que se trata de una ROM de 64K con soporte para nuevo hardware, se pueden usar estas opciones al añadirla a la SPI flash:

-
- ---- - - - - - - - - - - - - - - - - - - - - -
AjusteSignificado

d

Habilitar DivMMC

n

Habilitar NMI DivMMC (menú de esxdos)

t

Usar timings de 128K

-
-
-
-

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 aquí.

-
-
-

Dependiendo de la ROM elegida, los ajustes a indicar cuando se 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):

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - -
AjusteSignificado

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:

-
-
-
    -
  1. -

    Una vez el juego ha cargado, pulsando NMI (F5 o Caps Shift+Symbol Shift+5 en gomaDOS+), aparecerá un campo en la parte superior izquierda de la pantlla

    -
  2. -
  3. -

    Escribir la dirección del POKE a introducir y pulsar Enter

    -
  4. -
  5. -

    Escribir el valor del POKE y pulsar Enter

    -
  6. -
  7. -

    Repetir los pasos 2. y 3. todas las veces que se desee. Para terminar y volver al juego, pulsar Enter dos veces seguidas

    -
  8. -
-
-
-
-
-
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, en el repositorio oficial. Para MacOS es posible descargar una versión no oficial en este otro repositorio.

-
-
-

En otro caso, es posible compilar desde el código fuente disponible en el repositorio oficial. Por ejemplo, para compilar en Linux usando gcc basta con usar estos comandos:

-
-
-
-
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í:

-
-
-
-
(...) 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 para más detalles).

-
-
- - - - - -
- - -
-

Debido a limitaciones en el hardware, los ficheros TZX generados con CgLeches no funcionan correctamente con Miniduino, aunque sí que suelen funcionar con PlayTZX.

-
-
-
-
-
-
-

Otras ROMs

-
-

Estos son algunos ajustes válidos para añadir a la SPI flash algunas otras ROM personalizadas:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nombre de la ROMAjustes

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

-
-

Guía básica

-
-

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.

-
-
-

Los principales comandos "DOT" commands son los siguientes:

-
-
-
    -
  • -

    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)

    -
  • -
-
-
-

Algunos comandos extendidos de BASIC son:

-
-
-
    -
  • -

    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

    -
  • -
-
-
-

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 microSD 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.

-
-
- - - - - -
- - -
-

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, FATsort para Linux y MacOS, YAFS, SDSorter u otros.

-
-
-
-
-
-
-

Comandos para ZXDOS+

-
-

Tal y como se ha explicado en la parte de instalación, existe una serie de comandos que son exclusivos para ZXDOS+, y que se describen a continuación:

-
-
-
    -
  • -

    back16m: Copia a un fichero FLASH.ZX1 en el directorio raíz de la tarjeta SD el contenido de una 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.

    -
  • -
  • -

    backzx2 o backzxd: Genera un fichero FLASH.ZX2 o FLASH.ZXD en el directorio raíz de la tarjeta SD el contenido de una memoria SPI Flash de 32 megas. Se debe ejecutar desde una ROM en modo "root". Cuando termine hay que ejecutar el comando .ls para que se termine de grabar la cache en la tarjeta microSD. 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 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 microSD todas las ROMS del core ZX Spectrum almacenadas en la memoria SPI Flash. Sólo funciona correctamente en ZX-Uno y ZXDOS (no utilizar en ZXDOS+ o gomaDOS+). 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 microSD con todas las ROMS para el core ZX Spectrum a la memoria SPI Flash. Se debe ejecutar desde una ROM en modo "root".

    -
  • -
  • -

    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".

    -
  • -
  • -

    upgrzx2 o upgrzxd: Copia el contenido de un fichero FLASH.ZX2 o FLASH.ZXD a una memoria SPI Flash de 32 megas.Versión del comando upgrade exclusivo para memorias SPI Flash de 32 Megas. Se debe ejecutar desde una ROM en modo "root".

    -
  • -
  • -

    zxuc: Configura todas las opciones de la BIOS, permitiendo grabar en la microSD 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.

    -
  • -
-
-
-
-
-
-

Wi-Fi

-
-

Todos los gomaDOS+, y algunos modelos de ZXDOS+, tienen incorporado un módulo ESP-12 con un chip Wi-Fi ESP8266, que se puede utilizar fácilmente con un core de ZX Spectrum (por ejemplo, el core EXP27 160820) que tenga sintetizado un dispositivo 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 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.

    -
  • -
-
-
-

Por ejemplo:

-
-
-
-
.iwconfig miwifi miclavedeacceso
-
-
-
-

Network tools for ZX-Uno pack

-
-

Se trata de un conjunto de programas, desarrollados por Nihirash y que se pueden descargar de su web.

-
-
-
    -
  • -

    netman: Utilidad sencilla para configurar la conexión Wi-Fi para el resto de programas. No funciona en modo 48K.

    -
  • -
  • -

    uGophy: Cliente de Gopher. No funciona en modo 48K.

    -
  • -
  • -

    irc: Cliente de Internet Relay Chat. Funciona mejor a 14 Mhz.

    -
  • -
  • -

    wget: Utilidad para descargar ficheros vía HTTP (no funciona con HTTPS).

    -
  • -
  • -

    platoUNO: Cliente de PLATO. También funciona mejor a 14 Mhz. Para más información sobre el uso moderno de PLATO, es interesante la web de IRATA.ONLINE.

    -
  • -
-
-
-
-

FTP-Uno

-
-

Cliente de FTP desarrollado por Yombo, disponible en GitHub.

-
-
-

Para utilizarlo, se deben seguir los siguientes pasos:

-
-
-
    -
  1. -

    Editar el archivo FTP.CFG con los datos necesarios (Wi-Fi, servidor FTP al que conectar, etc.)

    -
  2. -
  3. -

    Copiar FTP.CFG en /SYS/CONFIG/ en la tarjeta microSD

    -
  4. -
  5. -

    Copiar también ftpUno.tap al lugar que desee de la tarjeta

    -
  6. -
  7. -

    Iniciar el ZXDOS+ y cargar el archivo de cinta ftpUno.tap

    -
  8. -
-
-
-
-
-

UART Terminal

-
-

Se trata de un programa de ejemplo incluido con la biblioteca de funciones C ZXYLib desarrollada por yombo, y que permite enviar directamente pulsaciones de teclado a través del UART, y ver el resultado. Se puede descargar en este enlace.

-
-
-

Una vez copiado el fichero de cinta UARTTERM.tap y cargado, se pueden teclear distintos comandos específicos para el chip ESP8266. Por ejemplo:

-
-
-
    -
  • -

    AT. Para verificar si hay comunicación con el chipo. El resultado normal, si todo está bien, sería OK

    -
  • -
  • -

    AT+RST. Para reiniciar el chip. Es exactamente lo mismo que hace el comando esprst

    -
  • -
  • -

    AT+GMR. Para ver información relativa al chip, versión de firmware instalado, etc

    -
  • -
  • -

    AT+CWMODE_CUR=1. Para configurar el chip en modo cliente Wi-Fi de forma temporal, hasta el próximo reinicio

    -
  • -
  • -

    AT+CWMODE_DEF=1. Para configurar el chip en modo cliente Wi-Fi y guardar el ajuste como opción por defecto

    -
  • -
  • -

    AT+CWJAP_CUR="<RedWiFi>","<ContraseñaWiFi>", donde <RedWiFi> es el ID de a red Wi-Fi donde conectar, y <ContraseñaWiFi> la contraseña de acceso, conecta temporalente a la red indicada

    -
  • -
  • -

    AT+CWJAP_DEF="<RedWiFi>","<ContraseñaWiFi>", conecta a la red indicada, y la guarda como red por defecto en la memoria del chip

    -
  • -
  • -

    AT+CWAUTOCONN=1 configura el chip para conectarse a la red Wi-Fi por defecto al encenderse (AT+CWAUTOCONN=0 desactiva esta opción)

    -
  • -
-
-
-

Se pueden consultar todos los comandos disponibles en la documentación oficial del fabricante.

-
-
-
-
-
-

Creación de vídeos RDM (RaDastan Movie)

-
-

El comando PLAYRMOV reproduce videos en formato radastaniano. Para poder convertir nuestros propios vídeos, se debe obtener la utilidad makevideoradas desde el Repositorio SVN.

-
-
-

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.

-
-
-
-
gcc makevideoradas.c -o makevideoradas
-
-
-
-

Una vez dispongamos de makevideoradas, necesitaremos otras dos herramientas: ffmpeg e 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.

-
-
-

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.

-
-
-
-
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
-
-
-
-

Ahora transformaremos los ficheros BMP a BMP (v3) de 16 colores.

-
-
-
-
(...)/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.

-
-
-
-
(...)/makevideoradas img/output
-mv img/output.rdm ../mivideo.rdm
-rm -rf img
-
-
-
-

En este hilo del foro Zona de Pruebas hay más información sobre todo este proceso.

-
-
-
-
-
-
-

Actualizaciones

-
-
-

BIOS

-
-

Para actualizar BIOS se ha de obtener un fichero llamado FIRMWARE.ZX2 (para un ZXDOS+ con placa FPGA LX16) o FIRMWARE.ZXD (para un ZXDOS+ con placa FPGA LX25). La última versión de los ficheros de firmware se puede descargar desde el repositorio oficial

-
-
- - - - - -
- - -
-

Actualizar el firmware (BIOS) es delicado, no se debe hacer si no es necesario. En el caso de hacerlo, procurar que el ZXDOS+ tenga alimentación ininterumpida (como un SAI o un USB de portatil con batería).

-
-
-
-
-

Copiar el fichero en la raíz de la tarjeta MicroSD, 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…​ y avisará cuando esté actualizado.

-
-
-
-

ROMs

-
-

La memoria flash del ZXDOS+ 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.

-
-
-

Se puede añadir una nueva ROM desde 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 repositorio de código de ZX-Uno.

-
-
-

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 MicroSD. Arrancar el ZXDOS+ 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.

-
-
- - - - - -
- - -
-

Recordar que, si se inicia el ZXDOS+ pulsando la tecla / (del teclado numérico, Symbol Shift+V en gomaDOS+), entonces se cargará la ROM por defecto del core de ZX Spectrum en modo "root".

-
-
-
-
-

Para hacer el proceso contrario (guardar las ROMs en un fichero RomPack llamado ROMS.ZX1), se puede usar el comando .romsback.

-
-
- - - - - -
- - -
-

La versión actual de romsback, en ZXDOS+, sólo almacena correctamente en RomPack los primeros 35 slots de ROM ocupados.

-
-
-
-
-

Los ficheros RomPack se pueden editar fácilmente con la utilidad ZX1RomPack. Aunque es un programa de Windows, funciona perfectamente, por ejemplo, usando Wine o programas similares, tanto en MacOS como en Linux.

-
-
-
-

Cores

-
-

Hay un número de espacios disponibles para almacenar cores (el número depende del tamaño de la SPI Flash del modelo de ZXDOS), 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).

-
-
-

Los cores oficiales están disponibles para descargar en el repositorio en GitHub.

-
-
-

Para actualizar o instalar un nuevo core hay varias alternativas.

-
-
-

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.ZX2 (para un ZXDOS+ con placa FPGA LX16) o COREnn.ZXD (para un ZXDOS+ con placa FPGA LX25), donde nn es el número de espacio donde realizar la instalación (por ejemplo CORE2.ZX2 o CORE2.ZXD para el espacio 2).

-
-
- - - - - -
- - -
-

A partir de la version 0.80 de BIOS, los ficheros se nombran usando la convención COREXXy.ZXn donde XX siempre es un número de dos digitos. Así, un antiguo fichero CORE4.ZXD ha de renombrarse como CORE04.ZXD. La parte y del nombre se ignora, así que se pueden usar nombres más largos y descriptivos (como, por ejemplo, CORE04_ejemplo.ZXD).

-
-
-
-
-

Copiar el fichero en la raíz de la tarjeta microSD, 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.

-
-
- - - - - -
- - -
-

La actualización del core de ZX Spectrum es exactamente igual que los otros cores, pero en lugar del fichero CORE1.ZX2 o CORE1.ZXD, ha de ser un fichero llamado SPECTRUM.ZX2 o SPECTRUM.ZXD.

-
-
-
-
-
-

esxdos

-
-

Para actualizar esxdos a una nueva versión, se ha de obtener la distribución desde la página oficial.

-
-
-

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 ZXDOS+).

-
-
-

Copiar ESXMMC.BIN (o ESXMMC.ROM, según la versión) en la raíz de la tarjeta microSD.

-
-
-

Iniciar el ZXDOS+ 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.

-
-
-

Realizar un Hard-reset, o apagar y encender.

-
-
-

Si todo se ha hecho correctamente, al encender el ZXDOS+ se verá cómo esxdos detecta la tarjeta y carga los componentes necesarios para funcionar, mostrando la nueva versión en la parte superior.

-
-
-
-

Memoria Flash

-
-

También es posible actualizar la memoria flash de la FPGA. Por el momento desde el menú de la BIOS sólo es posible utilizar imágenes de 16MiB. Para poder usar una imagen de 32MiB, se ha de usar el comando UPGRZX2 o UPGRZXD de esxdos y un fichero con el nombre FLASH.ZX2 o FLASH.ZXD.

-
-
-

Copiar el archivo de imagen (de 16MiB) FLASH.ZXD en la raíz de la tarjeta microSD.

-
-
-

Iniciar el ZXDOS+ con la tarjeta insertada y pulsar F2 (Caps Shift+1 en gomaDOS+) 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…​, .

-
-
-

Realizar un Hard-reset, o apagar y encender.

-
-
- - - - - -
- - -
-

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.

-
-
-
-
-
-
-
-
-

Otros cores

-
-
-

ZX Spectrum 48K (Kyp)

-
-

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.

-
-
-

Sus características principales son:

-
-
-
    -
  • -

    Sólo funciona con RGB

    -
  • -
  • -

    Specdrum

    -
  • -
  • -

    Turbosound (dos chips AY) con posibilidad de elegir mix ACB/ABC

    -
  • -
  • -

    DivMMC con esxdos 0.8.8

    -
  • -
  • -

    Joystick Kempston en el puerto 1

    -
  • -
-
-
-

Formato de Tarjeta microSD

-
-

Se debe de utilizar una tarjeta microSD con la primera partición en formato FAT16 o FAT32, y que tenga instalada la distribución de esxdos 0.8.8 (ver el apartado correspondiente de esxdos para más información).

-
-
-
-

Teclado

- -
-
-

Teclas especiales y botones

-
-

Durante la ejecución del core:

-
-
-
    -
  • -

    Esc (Caps Shift+Espacio en gomaDOS+): BREAK

    -
  • -
  • -

    F5 (Caps Shift+Symbol Shift+5 en gomaDOS+): NMI

    -
  • -
  • -

    F8 (Caps Shift+Symbol Shift+8 en gomaDOS+): Alternar la configuración de mezcla de Turbosound entre ACB y ABC.

    -
  • -
  • -

    Ctrl+Alt+Backspace (Caps Shift+Symbol Shift+B en gomaDOS+) o F11 (Caps Shift+Symbol Shift+Q en gomaDOS+): Hard reset. Backspace es la tecla de borrar hacia atrás, encima de Enter.

    -
  • -
  • -

    Ctrl+Alt+Supr (Caps Shift+Symbol Shift+N en gomaDOS+) o F12 (Caps Shift+Symbol Shift+W en gomaDOS+): Soft reset.

    -
  • -
-
-
-
-
-
-

ZX Spectrum Next

-
-

ZX Spectrum Next es un proyecto, basado en FPGA, que aspira a ser la evolución de los ordenadores Sinclair ZX Spectrum, manteniendo la compatibilidad hardware y software con los modelos anteriores, pero añadiendo nuevas características.

-
-
-

Principalmente gracias a avlixa, existe una versión del core de ZX Spectrum Next sintetizada para usarse con ZXDOS+.

-
-
-

El core para ZXDOS+ no tiene, por el momento, implementada ninguna de las siguientes caracteristicas:

-
-
-
    -
  • -

    Raspberry Pi

    -
  • -
  • -

    Beeper interno

    -
  • -
  • -

    Conector de expansión EDGE

    -
  • -
  • -

    Módulo RTC

    -
  • -
  • -

    Teclado de membrana

    -
  • -
  • -

    Flasheo de cores adicionales o actualización del propio core Next desde el core Next

    -
  • -
  • -

    Salida MIC

    -
  • -
  • -

    Video HDMI

    -
  • -
  • -

    Utilización de puerto de conexión joystick para comunicación UART

    -
  • -
-
-
-

El manual de uso se puede descargar desde la página oficial.

-
-
-
-

Formato de Tarjeta microSD

-
-

Se debe de utilizar una tarjeta microSD con la primera partición en formato FAT16 o FAT32, y que tenga instalada la distribución de esxdos correspondiente a la configuración actual de BIOS (ver el apartado correspondiente de esxdos para más información).

-
-
-

Obtener la distribución de NextZXOS en la página oficial.

-
-
-

Descomprimir el contenido de NextZXOS en la tarjeta microSD, pero modificando el archivo config.ini en /machines/next para que contenga (si no existiera ya) la línea ps2=0 (para asegurar que se utiliza correctamente el puerto del teclado) y la línea intbeep=0 para apagar el zumbador interno (este último paso no es necesario en el caso de un gomaDOS+).

-
-
-

Si no estuviera ya, instalar el core de ZX Spectrum Next en el ZXDOS+.

-
-
-
-

Teclado

- -
-
-

Teclas especiales y botones

-
-

Las combinaciones específicas de gomaDOS+ que se indican a continuación se corresponden con el modo de teclado ZX. Véase el apartado dedicado a los modos de teclado de gomaDOS+ para más información. También se pueden utilizar las equivalentes en el modo de teclado PC XT.

-
-
-

Notar que Ctrl+Alt+backspace no funciona con el core de Spectrum Next. Hay que apagar manualmente y volver a encender si se desea cambiar a otro core. Tampoco hay botón físico de Reset o Drive.

-
-
-

Durante la ejecución del core:

-
-
-
    -
  • -

    F1 (Caps Shift+Symbol Shift+1 en gomaDOS+): Hard Reset

    -
  • -
  • -

    F2 (Caps Shift+Symbol Shift+2 en gomaDOS+): Scandoubler. Dobla la resolución. Debería estar apagado para conexiones vía SCART

    -
  • -
  • -

    F3 (Caps Shift+Symbol Shift+3 en gomaDOS+): Alternar la frecuencia vertical entre 50Hz y 60Hz

    -
  • -
  • -

    F4 (Caps Shift+Symbol Shift+4 en gomaDOS+): Soft Reset

    -
  • -
  • -

    F7 (Caps Shift+Symbol Shift+7 en gomaDOS+): Scanlines

    -
  • -
  • -

    F9 (Caps Shift+Symbol Shift+9 en gomaDOS+): NMI

    -
  • -
  • -

    F10 (Caps Shift+Symbol Shift+0 en gomaDOS+): divMMC NMI. Simula la pulsación del botón Drive. Si se usa con mayúsculas, fuerza volver a buscar unidades de almacenamiento y cargar la pantalla de arranque en esxdos

    -
  • -
-
-
-
-
-

Guía básica

-
-

Al iniciarse la primera vez, aparecerán una serie de pantallas de ayuda. Tras pulsar la tecla Espacio, se mostrará el menú de inicio de NextZXOS.

-
-
-

next

-
-
-

Se puede navegar utilizando las teclas de cursor, las teclas 5, 6, 7 y 8, o un joystick (si se ha configurado en modo Kempston, MD o cursor). Enter o el botón del joystick selecciona un elemento.

-
-
-

La opción More…​ muestra un segundo menú con más opciones.

-
-
-

next2

-
-
-
-

Si se elige Browser, se cargará el navegador de NextZXOS, desde el que es posible desplazarse viendo el contenido de la tarjeta microSD y cargar directamente diferentes tipos de archivo (TAP, NEX, DSK, SNA, SNX, Z80, Z8, etc.).

-
-
- - - - - -
- - -
-

El navegador 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, FATsort para Linux y MacOS, YAFS, SDSorter u otros.

-
-
-
-
-

next3

-
-
- - - - - -
- - -
-

En el momento de escribir estas líneas, el core de ZX Spectrum Next para ZXDOS+ no soporta el uso del acelerador basado en Raspberry Pi, así que no es posible cargar ficheros TZX.

-
-
-
-
- - - - - -
- - -
-

Por defecto, no es posible cargar ficheros TRD dede el navegador (se debe configurar NextZXOS para cargar una "personalidad" con esxdos).

-
-
-
-
-

Para más información, consultar el manual de uso oficial.

-
-
-
-
-
-

MSX

-
-

MSX1FPGA es un proyecto para clonar MSX1. El desarrollo original es de Fabio Belavenuto y se encuentra disponible en GitHub.

-
-
-

Algunas de sus características son:

-
-
-
    -
  • -

    MSX1 a 50Hz o 60Hz;

    -
  • -
  • -

    Utiliza Nextor ROM con un controladr para SD

    -
  • -
  • -

    Mapa de teclado configurable

    -
  • -
  • -

    Simulación de línea de exploración (Scanlines)

    -
  • -
  • -

    Soporte para joystick

    -
  • -
-
-
-

Formato de Tarjeta microSD

-
-

Se debe de utilizar una tarjeta microSD con la primera partición en formato FAT16 con 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.

-
-
-

Obtener lo siguiente:

-
-
- -
-
-

Copiar el contenido del directorio SD en la raíz de la primera partición de la tarjeta microSD.

-
-
-

Copiar NEXTOR.SYS en el mismo lugar.

-
-
-

Copiar NEXTOR.ROM en el directorio MSX1FPGA.

-
-
-

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.

-
-
-

En el fichero /MSX1FPGA/config.txt se guarda la configuración del core, según este formato:

-
-
-
-
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
-
-
-
-

Si no estuviera ya, instalar el core de MSX en el ZXDOS+.

-
-
-
-
-

Teclado

- -
-
-

Teclas especiales y botones

-
-

Las combinaciones específicas de gomaDOS+ que se indican a continuación se corresponden con el modo de teclado MSX. Véase el apartado dedicado a los modos de teclado de gomaDOS+ para más información. También se pueden utilizar las equivalentes en el modo de teclado PC XT.

-
-
-

Durante la ejecución del core:

-
-
-
    -
  • -

    Impr Pant: Cambia el modo entre VGA y RGB

    -
  • -
  • -

    Bloq Desp (Caps Shift+Symbol Shift+G en gomaDOS+): Cambia el modo de línea de exploración (Scanlines)

    -
  • -
  • -

    Pausa: Cambia entre 50Hz y 60Hz

    -
  • -
  • -

    F11 (Caps Shift+Symbol Shift+Q en gomaDOS+): : Activa o desactiva el modo turbo

    -
  • -
  • -

    Ctrl+Alt+Supr: Soft Reset

    -
  • -
  • -

    Ctrl+Alt+F12: Hard Reset

    -
  • -
  • -

    Ctrl+Alt+Backspace (Caps Shift+Symbol Shift+B en gomaDOS+, en modo de teclado ZX Spectrum): Reinicia la FPGA

    -
  • -
  • -

    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

    -
  • -
-
-
- - - - - -
- - -
-

En BASIC, se puede usar CTRL + STOP (Ctrl+Fin) para detener la ejecución de un programa.

-
-
-
-
- - - - - -
- - -
-

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 en este hilo del foro de MSX.

-
-
-
-
-
-
-

Guía básica

-
-

Para acceder a BASIC desde MSX-DOS, ejecutar el comando BASIC.

-
-
-

Desde BASIC, se puede cargar desde una cinta (u otro dispositivo externo de audio) con los comandos RUN"CAS:", BLOAD"CAS:",R o CLOAD.

-
-
-

Notar

-
-
-

Para acceder a MSX-DOS desde BASIC, ejecutar 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.

-
-
-

Al ejecutar MSXCTRL se muestran los parámetros de uso:

-
-
-
-
MSXCTRL.COM - Utility to manipulate MSX1FPGA core.
-HW ID = 06 - ZX-Uno Board
-Version 1.3
-Mem config = 82
-Has HWDS = FALSE
-
-Use:
-
-MSXCTRL -h -i -r -b -[5|6] -m<0-2>
-        -c<0-1> -d<0-1> -t<0-1>
-        [-w<filename> | -l<filename>]
-        -k<0-255> -e<0-255> -p<0-255>
-        -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.

-
-
-
-
Otros
-
-

Existen múltiples sistemas para cargar los juegos dependiendo del tipo de archivo: .CAS, .DSK o ROM (ver este hilo del foro de ZX-Uno para más información).

-
-
-

El mapeo de para teclado español disponible con la distribución oficial se puede cambiar por otro más completo. Ver aquí para más información.

-
-
-
-
-
-
-

Amstrad CPC

-
-

El core para ZXDOS+ de Amstrad CPC está basado en el proyecto FPGAmstrad de Renaud Hélias.

-
-
-

Algunas de sus características son:

-
-
-
    -
  • -

    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

    -
  • -
-
-
-

Formato de Tarjeta microSD

-
-

Se debe de utilizar una tarjeta microSD con la primera partición en formato FAT32, de 4GB de tamaño máximo y 4096 bytes por cluster.

-
-
-

Además son necesarios los ficheros ROM siguientes (se pueden obtener en la wiki oficial del proyecto original) o en el repositorio de GitHub: -- 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.

-
-
-

Copiar tanto los ficheros ROM como los DSK a la raíz de la partición FAT32.

-
-
-
-

Teclado

- -
-
-

Teclas especiales y botones

-
-

Las combinaciones específicas de gomaDOS+ que se indican a continuación se corresponden con el modo de teclado Amstrad CPC. Véase el apartado dedicado a los modos de teclado de gomaDOS+ para más información. También se pueden utilizar las equivalentes en el modo de teclado PC XT.

-
-
-

Durante la ejecución del core:

-
-
-
    -
  • -

    Re Pág (Caps Shift+Symbol Shift+E en gomaDOS+): 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.

    -
  • -
-
-
-
-
-

Guía básica

-
-

Escribir el comando CAT para ver el contenido del fichero DSK cargado actualmente.

-
-
-

cpc

-
-
-

Escribir el comando RUN"<nombre> para cargar un programa del disco

-
-
-

cpc2

-
-
-

Usar la tecla Re Pág para hacer reset y cargar el siguiente archivo DSK en orden alfabético.

-
-
-
-
-
-

Acorn Atom

-
-

El Acorn Atom era un computador casero hecho por Acorn Computers. El core para ZXDOS+ (basado en el de ZX-Uno realizado por Quest) es una adaptación del proyecto AtomFPGA. Se puede ver más información en el foro de ZX-Uno.

-
-
-

Formato de Tarjeta microSD

-
-

Se debe de utilizar una tarjeta microSD con la primera partición en formato FAT16.

-
-
-

Descargar la última versión de Atom Software Archive desde GitHub.

-
-
-

Ahora, se puede organizar la información en la tarjeta microSD de dos maneras distintas:

-
-
-
    -
  1. -

    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.

    -
  2. -
  3. -

    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 microSD. Luego, copiar los ficheros del archivo trick_ATOM_folder (disponible en el foro de ZX-Uno), reemplazando todos los que se encuentren con el mismo nombre. Así, quedará una estructura como la siguiente:

    -
  4. -
-
-
-
-
        /
-        +-ATOM/
-        |  +-AA/
-        |  (...)
-        |  +-AGD/
-        |  | +-SHOW2
-        |  | +-SHOW3
-        |  (...)
-        |  +-MENU
-        |  (...)
-        |  +-TUBE/
-        |  | +-BOOT6502
-        |  (..)
-        |
-        +-MANPAGES/
-        |  +-CPM.MAN
-        |  +-FLEX.MAN
-        |  (...)
-        |
-        +-MENU
-
-
-
-
-
-

Teclado

- -
-
-

Teclas especiales y botones

-
-

Las combinaciones específicas de gomaDOS+ que se indican a continuación se corresponden con el modo de teclado Acorn Electron. Véase el apartado dedicado a los modos de teclado de gomaDOS+ para más información. También se pueden utilizar las equivalentes en el modo de teclado PC XT.

-
-
-

Durante la ejecución del core:

-
-
-
    -
  • -

    Mayús+F10: Muestra el menú de Atom Software Archive

    -
  • -
  • -

    F10 (Caps Shift+Symbol Shift+0 en gomaDOS+): Soft Reset

    -
  • -
  • -

    F1 (Caps Shift+Symbol Shift+1 en gomaDOS+): Modo turbo 1Mhz

    -
  • -
  • -

    F2 (Caps Shift+Symbol Shift+2 en gomaDOS+): Modo turbo 2Mhz

    -
  • -
  • -

    F3 (Caps Shift+Symbol Shift+3 en gomaDOS+): Modo turbo 4Mhz

    -
  • -
  • -

    F4 (Caps Shift+Symbol Shift+4 en gomaDOS+): Modo turbo 8Mhz

    -
  • -
-
-
-

El teclado está mapeado en inglés, según el siguiente esquema:

-
-
-

keyboardAtom

-
-
-
-
-

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 microSD, para que empiece a funcionar.

-
-
-

acorn

-
-
-

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.

-
-
-
-
-
-

Commodore 64

-
-

Commodore 64 (C64, CBM 64/CBM64, C=64,C-64, VIC-641​) es una computadora doméstica de 8 bits desarrollada por Commodore International.

-
-
-

El core para ZXDOS+ está siendo desarrollado por Neuro.

-
-
-

Formato de Tarjeta microSD

-
-

Se puede utilizar una tarjeta microSD con la primera partición en formato FAT16 o FAT32. Es posible cargar desde la misma tanto archivos de imagen de disco (D64) como ficheros de cinta (TAP).

-
-
-

Si no estuviera ya, instalar el core de Commodore 64 en el ZXDOS+.

-
-
-
-

Teclado

- -
-
-

Teclas especiales y botones

-
-

Las combinaciones específicas de gomaDOS+ que se indican a continuación se corresponden con el modo de teclado Commodore 64. Véase el apartado dedicado a los modos de teclado de gomaDOS+ para más información. También se pueden utilizar las equivalentes en el modo de tecldo PC XT.

-
-
-

Durante la ejecución del core:

-
-
-
    -
  • -

    F9 Caps Shift+Symbol Shift+9 en gomaDOS+): Reproducir un archivo TAP de cinta

    -
  • -
  • -

    F12 (Caps Shift+Symbol Shift+W en gomaDOS+): Muestra menú de opciones

    -
  • -
  • -

    Bloq. Despl. (Caps Shift+Symbol Shift+G en gomaDOS+): cambia de modo video compuesto a VGA y viceversa.

    -
  • -
  • -

    Esc (Caps Shift+Espacio en gomaDOS+): RUN/STOP (Mayús+RUN/STOP: Carga desde cinta)

    -
  • -
-
-
-
-
-

Guía básica

-
-

Tras pulsar F12 (Caps Shift+Symbol Shift+W en gomaDOS+), aparece el menú de opciones.

-
-
-

c64

-
-
-

Desde dicho menú se puede

-
-
-
    -
  • -

    Hacer reset del core

    -
  • -
  • -

    Activar o desactivar la simulación de línea de exploración (Scanlines)

    -
  • -
  • -

    Cambiar la paleta de color

    -
  • -
  • -

    Cambiar entre modo video compuesto y modo VGA

    -
  • -
  • -

    Activar o desactivar el sonido de carga de cinta

    -
  • -
  • -

    Encender o apagar un filtro de audio

    -
  • -
  • -

    Cargar imagen de disco D64

    -
  • -
  • -

    Cargar fichero de cinta TAP

    -
  • -
-
-
-
-

Para cargar desde un disco, habitualmente, se ha de escribir LOAD "*",8,1 y pulsar Enter. Una vez aparezca READY en la pantalla, escribir RUN y pulsar Enter para ejecutar el programa.

-
-
-

Si el disco tuviera varios programas para ejecutar, escribir LOAD "$" y pulsar Enter. A continuación, escribir LIST, y pulsar Enter, para ver una lista con los archivos dentro del disco. Ahora, para cargar el archivo deseado, escribir LOAD "<nombre>",8 (donde <nombre> 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 "<nombre>",8,1.

-
-
-

Para cargar desde una cinta, seleccionar la opción "Cargar fichero de cinta TAP" del menú de opciones. A continuación navegar por la tarjeta microSD y elegir el archivo de cinta a cargar, pulsar ENTER y cerrar el menú de opciones. Entonces escribir LOAD y pulsar Enter, o bien pulsar Mayús+Esc (Mayús+RUN/STOP). Finalmente, tras pulsar F9 (Caps Shift+Symbol Shift+9 en gomaDOS+) comenzará la reproducción del archivo de cinta (se puede usar la opción de activar el sonido de carga de la cinta del menú si se desea). Una vez finalizadada la carga, escribir RUN y pulsar ENTER si fuese necesario.

-
-
- - - - - -
- - -
-

En este core el puerto 1 del joystick se corresponde con el puerto de la derecha, mirando de frente al ZXDOS+, y el puerto 2 se corresponde con el puerto de la izquierda. Esto es al contrario de lo que sucede en la mayoría de otros cores.

-
-
-
-
-
-
-
-

Phoenix

-
-

Core del videojuego arcade de estilo matamarcianos diseñado por la empresa Amstar Electronics.

-
-
-

Algunas de sus características son:

-
-
-
    -
  • -

    Dos modos de vídeo seleccionables: RGB/PAL60Hz y VGA 60Hz

    -
  • -
  • -

    Simulación de línea de exploración (Scanlines) en VGA

    -
  • -
  • -

    Conmutación opcional para el giro de 90º en las direcciones de los controles

    -
  • -
-
-
-

Formato de Tarjeta microSD

-
-

Este core no utiliza la tarjeta microSD.

-
-
-
-

Teclado

- -
-
-

Teclas especiales y botones

-
-

Durante la ejecución del core:

-
-
-
    -
  • -

    Q y A o Cursor Izquierdo y Cursor Derecho (o un joystick): Control de movimiento

    -
  • -
  • -

    Z o X Tecla Windows Izquierda y Espacio (o botones 1 y 2 del joystick): Disparos 1 y 2, así como inserción de moneda y botón Start

    -
  • -
  • -

    F2 (Caps Shift+Symbol Shift+2 en gomaDOS+): Cambia el modo de vídeo entre RGB y VGA

    -
  • -
  • -

    - (del teclado numérico): Activa o desactiva la simulación de línea de exploración (Scanlines)

    -
  • -
  • -

    Tab (Caps Shift+Enter en gomaDOS+, en modo de teclado PC XT): Activa o desactiva giro de 90º en las direcciones de los controles

    -
  • -
-
-
-
-

Guía básica

-
-

Por defecto se inicia con los controles normales, para el uso de pantallas verticales. Si se tiene la pantalla en horizontal (lo más habitual), la imagen se ve de lado, pero para ayudar en el control, y que sea más natural y acorde con lo que se ve, pulsando Tab se consigue que las direcciones arriba-abajo estén intercambiadas con izquierda-derecha. Afecta por igual al joystick y al teclado.

-
-
-
-
-
-

Pong

-
-

Pong fue un videojuego de la primera generación de videoconsolas publicado por Atari.

-
-
-

Algunas las características del core son:

-
-
-
    -
  • -

    Dos modos de vídeo seleccionables: RGB/PAL60Hz y VGA 60Hz

    -
  • -
  • -

    7 tipos de juego

    -
  • -
  • -

    Soporte 2 o 4 jugadores

    -
  • -
  • -

    Compatible con joystick(s), teclado, ratón y codificadores (encoders) rotatorios (ver aquí para más información)

    -
  • -
  • -

    Varios modos de color

    -
  • -
-
-
-

Formato de Tarjeta microSD

-
-

Este core no utiliza la tarjeta microSD.

-
-
-
-

Teclado

- -
-
-

Teclas especiales y botones

-
-

Durante la ejecución del core:

-
-
-
    -
  • -

    Esc o botón 2 del joystick (Caps Shift+Espacio en gomaDOS+, en modo de teclado PC XT): Mostrar u ocultar el menú de configuración

    -
  • -
  • -

    Ctrl+Alt+Backspace (Caps Shift+Symbol Shift+B en gomaDOS+, en modo de teclado ZX Spectrum): Hard reset. Backspace es la tecla de borrar hacia atrás, encima del enter

    -
  • -
  • -

    Bloq. Despl. (Caps Shift+Symbol Shift+G en gomaDOS+, en modo de teclado ZX Spectrum): cambia de modo video compuesto a VGA y viceversa

    -
  • -
  • -

    F3 o F12 (Caps Shift+Symbol Shift+3 o Caps Shift+Symbol Shift+W en gomaDOS+): Reinicio del juego

    -
  • -
  • -

    Número del 1 al 7: Cambiar el tipo de juego

    -
  • -
  • -

    Joystick 2 (derecha): Control de paleta de la derecha (Jugador 1).

    -
  • -
  • -

    Joystick 1 (izquierda): Control de paleta de la izquierda (Jugador 2)

    -
  • -
  • -

    Cursor arriba y Cursor abajo o O y K: Control de paleta de la derecha (Jugador 1 en modo 2 jugadores y jugador 3 en modo de 4 jugadores)

    -
  • -
  • -

    Q y A: Control de paleta de la izquierda (Jugador 2 en modo 2 jugadores y jugador 4 en modo de 4 jugadores)

    -
  • -
  • -

    Z, M o botón de joystick 1: Saque manual

    -
  • -
  • -

    Teclas de cursor (Caps Shift+5, Caps Shift+6, Caps Shift+7 y Caps Shift+8 en gomaDOS+, en modo de teclado PC XT) y Enter para navegar por el menú

    -
  • -
-
-
-
-
-

Guía básica

-
-

Pulsando Esc o el botón 2 del joystick (o Caps Shift+Espacio en gomaDOS+, en modo de teclado PC XT) se muestra el menú de configuración. Se usan las teclas de cursor (Caps Shift+5, Caps Shift+6, Caps Shift+7 y Caps Shift+8 en gomaDOS+, en modo de teclado PC XT) y Enter para elegir y seleccionar opciones del menú.

-
-
-

pong

-
-
-

En él se pueden activar o desactivar las siguientes opciones:

-
-
-
    -
  • -

    Servicio automático o manual (Serve)

    -
  • -
  • -

    Ángulo de la bola (Ball Angle)

    -
  • -
  • -

    Velocidad de la bola (Ball Speed)

    -
  • -
  • -

    Tamaño de las palas (Paddle Size)

    -
  • -
  • -

    Sonido (Sound)

    -
  • -
  • -

    Cuatro jugadores (Four players)

    -
  • -
  • -

    Velocidad Aleatoria (Random Speed)

    -
  • -
  • -

    Ángulo Aleatorio (Random Angle)

    -
  • -
  • -

    Control por Joystick, teclado o ratón (Joystick)

    -
  • -
  • -

    Precisión del movimiento (Paddle Accuracy)

    -
  • -
  • -

    Modo de color (Mode)

    -
  • -
  • -

    Salir del menú (Exit menu)

    -
  • -
-
-
-
-
-
-

NES

-
-

Nintendo Entertainment System (también conocida como Nintendo NES o simplemente NES) es la segunda consola de sobremesa de Nintendo.

-
-
-

La versión para ZXDOS+ ha sido creada por Nihirash, basándose en la anterior para ZX-Uno de DistWave y Quest.

-
-
-

Algunas de las características del core son:

-
-
-
    -
  • -

    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

    -
  • -
  • -

    Necesita, al menos, un mando o joystick conectado y que tenga varios botones de disparo

    -
  • -
  • -

    Sólo soporta salida VGA y utiliza timings poco rigurosos, por lo que es posible que de problemas en algunos monitores

    -
  • -
-
-
-

Formato de Tarjeta microSD

-
-

Se debe de utilizar una tarjeta microSD, 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.

-
-
-

Si no estuviera ya, instalar el core de NES en el ZXDOS+.

-
-
-
-

Teclado

- -
-
-

Teclas especiales y botones

-
-

Durante la ejecución del core:

-
-
-
    -
  • -

    Esc o botón 2 del joystick (o Caps Shift+Espacio en gomaDOS+, en modo de teclado PC XT): Mostrar u ocultar el menú de configuración

    -
  • -
  • -

    Teclas de cursor (Caps Shift+5, Caps Shift+6, Caps Shift+7 y Caps Shift+8 en gomaDOS+, en modo de teclado PC XT), y Enter para usar el menú

    -
  • -
  • -

    Ctrl+Alt+Backspace (Caps Shift+Symbol Shift+B en gomaDOS+, en modo de teclado ZX Spectrum): Hard reset. Backspace es la tecla de borrar hacia atrás, encima del enter

    -
  • -
-
-
-
-
-

Guía básica

-
-

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 (Caps Shift+5, Caps Shift+6, Caps Shift+7 y Caps Shift+8 en gomaDOS+, en modo de teclado PC XT), y Enter.

-
-
-

nes

-
-
-

En él se pueden activar o desactivar las siguientes opciones:

-
-
-
    -
  • -

    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 un ROM para cargar desde la SD (Load ROM)

    -
  • -
  • -

    Salir del menú (Exit)

    -
  • -
-
-
-
-
-
-

ColecoVision

-
-

ColecoVision es una consola de videojuegos lanzada al mercado por la empresa Coleco.

-
-
-

La versión para ZXDOS+ está basada en la versión para ZX-Uno de Fabio Belavenuto.

-
-
-

Algunas de las características del core son:

-
-
-
    -
  • -

    La ROM de la BIOS se carga desde la tarjeta microSD

    -
  • -
  • -

    Soporta ROM multicartucho, que también se carga desde la microSD

    -
  • -
  • -

    Sólo funciona en VGA ¿?

    -
  • -
-
-
-

Formato de Tarjeta microSD

-
-

Se debe de utilizar una tarjeta microSD, 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 web del proyecto original en GitHub.

-
-
-

Si no estuviera ya, instalar el core de ColecoVision en el ZXDOS+.

-
-
-
-

Teclado

- -
-
-

Teclas especiales y botones

-
-

Durante la ejecución del core:

-
-
-
    -
  • -

    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 '#'

    -
  • -
  • -

    'Esc' (o Caps Shift+Espacio en gomaDOS+, en modo de teclado PC XT): Soft Reset

    -
  • -
-
-
-
-
-

Guía básica

-
-

Al iniciar, la ROM de la BIOS se carga desde la tarjeta SD, así como la ROM multicartucho.

-
-
-

coleco

-
-
-

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 (Caps Shift+Espacio en gomaDOS+, en modo de teclado PC XT) se reinicia el core y se vuelve a cargar el menú de selección de ROM.

-
-
-
-
-
-

Atari 2600

-
-

La Atari 2600 es una videoconsola lanzada al mercado bajo el nombre de Atari VCS (Video Computer System).

-
-
-

La versión para ZXDOS+ está desarrollada por avlixa.

-
-
-

Algunas de las características del core son:

-
-
-
    -
  • -

    Dos modos de vídeo seleccionables: RGB y VGA

    -
  • -
  • -

    Compatible con joystick(s), teclado, ratón y codificadores (encoders) rotatorios (ver aquí para más información)

    -
  • -
-
-
-

Formato de Tarjeta microSD

-
-

Se debe de utilizar una tarjeta microSD, con la primera partición en formato FAT16, para almacenar los ficheros con las imágenes ROM que se deseen cargar.

-
-
-

Si no estuviera ya, instalar el core de Atari 2600 en el ZXDOS+.

-
-
-
-

Teclado

-
-

En gomaDOS+, se recomienda cambiar el modo de teclado a Atari 800 (Caps Shift + Symbol Shift + U y luego 4) o PC XT (Caps Shift + Symbol Shift + U y luego 9).

-
-
-
-

Teclas especiales y botones

-
-

Durante la ejecución del core:

-
-
-
    -
  • -

    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. (Caps Shift+Symbol Shift+G en gomaDOS+): para cambiar entre modo de video compuesto y VGA

    -
  • -
  • -

    Ctrl+Alt+Backspace (Caps Shift+Symbol Shift+B en gomaDOS+): Hard reset.

    -
  • -
-
-
-
-
-

Guía básica

-
-

Pulsando Esc o el botón 2 del joystick (o Caps Shift+Espacio en gomaDOS+, en modo de teclado Atari800) se muestra el menú de configuración. Se usan las teclas de cursor (Caps Shift+5, Caps Shift+6, Caps Shift+7 y Caps Shift+8 en gomaDOS+, en modo de teclado Atari800) y Enter para elegir y seleccionar en el menú.

-
-
-

a2600

-
-
-

En él se pueden activar, desactivar o configurar las siguientes opciones:

-
-
-
    -
  • -

    Reiniciar el core (Reset)

    -
  • -
  • -

    Línea de exploración (Scanlines)

    -
  • -
  • -

    Modo RGB (PAL/NTSC)

    -
  • -
  • -

    Tamaño de las palas (Paddle Size)

    -
  • -
  • -

    Sonido (Sound)

    -
  • -
  • -

    Color (Color)

    -
  • -
  • -

    Dificultad A (Difficulty A)

    -
  • -
  • -

    Dificultad B (Difficulty B)

    -
  • -
  • -

    Select

    -
  • -
  • -

    Start

    -
  • -
  • -

    Cargar ROM (Load ROM)

    -
  • -
  • -

    Joystick

    -
  • -
  • -

    Precisión de paddle (Paddle Accuracy)

    -
  • -
  • -

    Salir del menú (Exit)

    -
  • -
-
-
-
-
-
-

Videopac

-
-

La Philips Videopac, también conocida como Magnavox Odyssey², Philips Videopac G7000 o Philips Odyssey² es una videoconsola lanzada en 1978.

-
-
-

La versión para ZXDOS+ está desarrollada por avlixa, basada en el core de ZXDOS de yomboprime.

-
-
-

Algunas de las características del core son:

-
-
-
    -
  • -

    Dos modos de vídeo seleccionables: RGB y VGA

    -
  • -
  • -

    Necesita Joystick(s) para funcionar

    -
  • -
  • -

    Modos de color incluyendo monocromo o fósforo verde/naranja

    -
  • -
  • -

    Soporte para modificar el tipo de letra (charset) de la ROM de VDC

    -
  • -
  • -

    Módulo de efectos de sonido y voz (The Voice)

    -
  • -
-
-
-

Formato de Tarjeta microSD

-
-

Se debe de utilizar una tarjeta microSD, con la primera partición en formato FAT16, para almacenar los ficheros con las imágenes ROM que se deseen cargar.

-
-
-

Si no estuviera ya, instalar el core de Videopac en el ZXDOS+.

-
-
-
-

Teclado

-
-

En gomaDOS+, se recomienda cambiar el modo de teclado a PC XT (Caps Shift + Symbol Shift + U y luego 9).

-
-
-
-

Teclas especiales y botones

-
-

Durante la ejecución del core:

-
-
-
    -
  • -

    F1 (Caps Shift+Symbol Shift+5 en gomaDOS+): Carga una ROM de prueba.

    -
  • -
  • -

    Bloq. Despl. (Caps Shift+Symbol Shift+G en gomaDOS+): para cambiar entre modo de video compuesto y VGA

    -
  • -
  • -

    Ctrl+Alt+Backspace (Caps Shift+Symbol Shift+B en gomaDOS+): Hard reset.

    -
  • -
  • -

    Tras cargar una ROM, la mayoría de los juegos mostrarán un mensaje "SELECT GAME". Pulsar una tecla entre 0 y 9 o el botón del joystick para jugar.

    -
  • -
  • -

    Esc o el botón 2 del joystick (o Caps Shift+Espacio en gomaDOS+) para mostrar u ocultar el menú.

    -
  • -
  • -

    W, A, S, D o las teclas de cursor (Caps Shift+5, Caps Shift+6, Caps Shift+7 y Caps Shift+8 en gomaDOS+, en modo de teclado PC XT) y luego Enter para elegir y seleccionar en el menú.

    -
  • -
-
-
-
-
-

Guía básica

-
-

No suele haber información en pantalla de las opciones, así que es interesante consultar las instrucciones de cada juego (por ejemplo en este enlace) para saber qué hacer para jugar.

-
-
-

Notar también que el sistema no tiene claramente definido qué joystick se corresponde al cada jugador, e incluso pueden ir alternando para algunos juegos, así que puede ser necesario ir cambiando entre los dos, o bien (para partidas de un sólo jugador ) usar la opción del menú que unifica los dos joysticks.

-
-
- - - - - -
- - -
-

Si, al navegar por el directorio donde están las ROMS, no se ven todas, se puede dividir el contenido en varios subdirectorios con menos ficheros por directorio (por ejemplo, clasificando por letras) para solucionarlo.

-
-
-
-
-

Pulsando Esc o el botón 2 del joystick (o Caps Shift+Espacio en gomaDOS+, en modo de teclado PC XT) se muestra el menú de configuración. Se usan las teclas de cursor (Caps Shift+5, Caps Shift+6, Caps Shift+7 y Caps Shift+8 en gomaDOS+, en modo de teclado PC XT) y Enter para elegir y seleccionar en el menú.

-
-
-

videopac

-
-
-

En él se pueden activar, desactivar o configurar las siguientes opciones:

-
-
-
    -
  • -

    Reiniciar el core (Reset)

    -
  • -
  • -

    Línea de exploración (Scanlines)

    -
  • -
  • -

    Intercambiar el orden de los joysticks (Swap Joysticks)

    -
  • -
  • -

    Unir los joysticks (Join Joysticks). Útil para ROMs que alternan el joystick en las partidas

    -
  • -
  • -

    Cargar ROM (Load Cartridge ROM)

    -
  • -
  • -

    Cargar un tipo de letra alternativo (Load VDC Font)

    -
  • -
  • -

    Modo de vídeo (PAL Videopac/NTSC Odyssey2)

    -
  • -
  • -

    Modo de color (Color Mode)

    -
  • -
  • -

    Activar o desactivar el módulo sintetizador (The Voice)

    -
  • -
  • -

    Salir del menú (Exit)

    -
  • -
-
-
-
Cambio del charset de la ROM de VDC
-
-

Es posible, para algunas ROM, cargar un archivo CHR con una fuente modificada, en vez de la original incluida en el chip Intel 8244/8245.

-
-
-

Estos archivos se pueden crear siguiendo las instrucciones y utilizando el editor disponible en el repositorio del proyecto, siguiendo este enlace.

-
-
-
-
-
-
-
-
-

Otro Hardware

-
-
-

Codificadores rotatorios

-
-

Los cores de Pong y Atari 2600 están también preparados para usar codificadores rotatorios (encoders), de tipo cuadratura, conectados al puerto de joystick. Está probado con codificadores de 600 ppr (pulsos por revolución), pero teóricamente deberían servir también de menor ppr, como de 400 o 300.

-
-
-

También se puede utilizar con paddle del tipo volante de Atari 2600, pero no con los paddle del tipo raqueta. Eso sí, la experiencia en este caso es pobre, ya que son de muy pocos ppr y se deben hacer varios giros completos. Si se utilizan, se recomienda ajustar la precisión(accuracy) al valor 8 para conseguir una velocidad aceptable.

-
-
-

Conexión

-
-

Tanto el ZXDOS+ como el gomaDOS+ tienen conectado el pin 5 del joystick a voltaje positivo, que se utiliza para alimentación, y el pin 8 como GND. Los codificadores utilizados deben admitir voltajes de 3,4v a 5v.

-
-
-

Los codificadores tienen 5 cables: Tierra (no conectada), Vcc (+), GND (0V`ó `-), A y B.

-
-
-

Las conexiones A y B se conectan en los pines 1 y 2 para el primer codificador, y 3 y 4 para el segundo. Así se pueden tener hasta 4 codificadores conectados entre los 2 puertos de joystick.

-
-
-

db9joy

-
-
-

De esta manera, las conexiones serían:

-
-
-
    -
  1. -

    Línea A codificador 1

    -
  2. -
  3. -

    Línea B codificador 1

    -
  4. -
  5. -

    Línea A codificador 2

    -
  6. -
  7. -

    Línea B codificador 2

    -
  8. -
  9. -

    Vcc(+)

    -
  10. -
  11. -

    Disparo 1

    -
  12. -
  13. -

    NC

    -
  14. -
  15. -

    GND

    -
  16. -
  17. -

    Disparo 2

    -
  18. -
-
-
-
-
-

Configuración del Core de Pong

-
-

La forma de elegir la configuración es la siguiente:

-
-
-
    -
  • -

    Para 1 o 2 codificadores en el puerto 2 de joystick, seleccionar la opción 1/2 Paddle in J2.

    -
  • -
  • -

    Para 2 codificadores, uno en cada puerto de joystick, seleccionar la opción 2/4 Paddle in J1&J2. Esta opción también sirve para conectar 2 paddle tipo driving de Atari 2600.

    -
  • -
  • -

    Para 4 codificadores, dos en cada puerto de joystick, seleccionar la opción 2/4 Paddle in J1&J2.

    -
  • -
  • -

    Para 1 o 2 codificadores en el puerto 2 de joystick junto con el ratón (en este caso los codificadores se asocian para los jugadores 2 y 4), seleccionar la opción Mouse PS/2.

    -
  • -
-
-
-

Se recomienda no realizar la conexión hasta haber seleccionado la opción deseada, ya que los codificadores actúan sobre el botón arriba/abajo del joystick y por tanto no permiten manejar el menú. Otra opción sería añadir un interruptor on/off en el codificador que deshabilite la alimentación y así no emita señal mientras se realiza la selección de menú.

-
-
-
-
-
-

Carga desde cinta

-
-

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.

-
-
-

Normalmente, se debe utilizar un cable adecuado para la entrada de sonido del ZXDOS+, 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).

-
-
-

Reproductor de cassette

-
-

El funcionamiento es exactamente igual que se hacía con los equipos originales:

-
-
-
    -
  1. -

    Conectar el cable de audio

    -
  2. -
  3. -

    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, " (Symbol Shift + P en gomaDOS+) y luego Enter para ejecutar el clásico LOAD "" + Enter

    -
  4. -
  5. -

    Iniciar la reproducción de la cinta (es posible que haya que hacer distintos intentos ajustando el volumen del reproductor)

    -
  6. -
-
-
-
-

Ordenador

-
-

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.

-
-
-
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.

-
-
-

Se puede descargar el fichero binario (por ejemplo, para Windows desde World of Spectrum Classic y para Mac desde este repositorio de GitHub) o compilar el código fuente como se explica a continuación.

-
-
-
    -
  1. -

    Conectar el cable de audio entre la salida del ordenador y la entrada de audio del ZXDOS+ (recordar conectar únicamente el extremo del canal mono derecho al extremo del PC/Mac, etc.)

    -
  2. -
  3. -

    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, " (Symbol Shift + P en gomaDOS+) y luego Enter para ejecutar el clásico LOAD "" + Enter

    -
  4. -
-
-
-
-
    -
  1. -

    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)

    -
  2. -
-
-
-
-
./playtzx <fichero de cinta>
-
-
-
-

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 ZXDOS+ carga el programa.

-
-
- - - - - -
- - -
-

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.

-
-
-
-
-
Compilar código fuente (MacOS o 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 GNU Autotools.

-
-
-

Descargar el código fuente desde este repositorio), descomprimirlo y acceder en una consola al directorio, y ejecutar los comandos:

-
-
-
-
aclocal && autoconf && autoheader && automake --add-missing
-./configure
-make
-
-
-
-

Si todo se ha hecho correctamente, se habrá generado el fichero tzplay que se puede copiar a donde se desee en el disco duro y utilizar. Se puede borrar el directorio descomprimido donde se compiló.

-
-
-
-
-
-

Teléfono móvil, tableta, reproductor de sonido MP3, 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.

-
-
-

PlayZX es una App para sistemas Android que es capaz de reproducir directamente a través de la salida de auriculares.

-
-
- - - - - -
- - -
-

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 ZXDOS+.

-
-
-

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.

-
-
-
-
-

Los pasos a seguir en este caso son:

-
-
-
    -
  1. -

    Conectar el cable de audio entre la salida del dispositivo móvil y la entrada de audio del ZXDOS+ (recordar conectar únicamente el extremo del canal mono derecho al extremo del PC/Mac, etc.)

    -
  2. -
  3. -

    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, " (Symbol Shift + P en gomaDOS+) y luego Enter para ejecutar el clásico LOAD "" + Enter

    -
  4. -
  5. -

    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.

    -
  6. -
-
-
-
Conversión a fichero de 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.

-
-
-

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

-
-
-

tape2wav de 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.

-
-
-

pzx2wav en 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.

-
-
-

tsx2wav en TSXphpclass es una utilidad en PHP y que sirve para exportar desde ficheros TSX a WAV.

-
-
-
-
-
-

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 Maxduino.

-
-
-

Maxduino permite la reproducción, de una forma similar a como se manejaban las cintas de 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 SpecAY desde ZX Spectrum.

-
-
-
Puertos y Botones
-
-

MiniduinoBack

-
-
-

MiniduinoFront

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - -

1

Alimentación

2

Salida de sonido

3

Botón de control

4

Control de motor

5

Ranura de tarjeta microSD

6

Pantalla

-
-
-
-
Preparación
-
-

Se necesita una tarjeta microSD 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).

-
-
-

La tarjeta debe estar formateada con con la primera partición en formato FAT16 o FAT32.

-
-
-

Además de la tarjeta, recordar utilizar un cable adecuado para la entrada de sonido del ZXDOS+, conectando el Miniduino.

-
-
-

Para los equipos que soporten control por motor, también se puede utilizar un cable con un jack de 2,6 mm.

-
-
-

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.

-
-
- - - - - -
- - -
-

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, FATsort para Linux y MacOS, YAFS, SDSorter u otros.

-
-
-
-
-
-
-
Uso
-
-

Una vez insertada la tarjeta microSD con ficheros de datos, el Miniduino se enciende conectando el cable de alimentación USB incluido.

-
-
-

MiniduinoLogo

-
-
-

Si se pulsa directamente el botón de control, se accede al menú de opciones que permite modificar lo siguiente:

-
-
-
    -
  • -

    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

    -
  • -
-
-
-

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).

-
-
-

MiniduinoVersion

-
-
-

Con la reproducción detenida (navegación por archivos y directorios):

-
-
-
    -
  • -

    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

    -
  • -
-
-
-
-

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.

-
-
-

MiniduinoPlay

-
-
-

Con la reproducción en pausa (navegación por bloques de cinta):

-
-
-
    -
  • -

    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

    -
  • -
-
-
- - - - - -
- - -
-

Para obtener información mucho más detallada, se puede consultar el manual oficial del firmware Maxduino, disponible en el repositorio oficial.

-
-
-
-
-
-
-
Actualización de firmware Maxduino
-
-

El firmware Maxduino es actualizado y mejorado periódicamente. Se puede hacer un seguimiento de los cambios y mejoras en el foro o bien en la 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.

-
-
-
Preparación del entorno
-
-

Para poder instalar el firmware, se ha de hacer desde un ordenador (Windows, Mac, Linux) con el entorno Arduino IDE.

-
-
-

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

-
-
-

También se ha de añadir el soporte para el microcontrolador del Miniduino. Esto se hace en dos pasos:

-
-
-

Primero añadiendo soporte para procesadores ARXM Cortex M3 en el menú Herramientas → placa → gestor de tarjetas -Instalar "Arduino SAM boards (Cortex-M3)"

-
-
-

A continuación se ha de añadir el soporte para microcontroladores STM32, descargando el fichero disponible en este enlace.

-
-
-

Descomprimir el contenido en la carpeta del usuario actual en

-
-
-
-
...Arduino/hardware/Arduino_STM32
-
-
-
-

En Windows instalar el controlador USB ejecutando con privilegios elevados:

-
-
-
-
 ...\drivers\win\install_drivers.bat
-
-
-
-

En Linux instalar con privilegios de root las reglas de udev necesarias:

-
-
-
-
...tools/linux/install.sh
-
-
-
-

En MacOS, si no apareciese el Miniduino como dispositivo USB en Arduino IDE al conectarlo, puede que sea necesario instalar 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:

-
-
-
-
if [ $# -eq 5 ]; then
-    dfuse_addr="--dfuse-address $5"
-else
-    dfuse_addr=""
-fi
-
-
-
-

Y se tienen que cambiar por

-
-
-
-
dfuse_addr=""
-
-
-
-
-
-
Actualización
-
-

Una vez preparado el entorno, descargar la versión deseada del proyecto desde el repositorio oficial en GitHub

-
-
- - - - - -
- - -
-

El reproductor Miniduino con microcontrolador STM32 sólo está soportado a partir de la versión 1.65

-
-
-
-
-

Cargar el fichero del proyecto en Arduino IDE (por ejemplo 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.

-
-
-
-
...
-//#define tanque4
-//#define tanque1
-//#define dostanques
-//#define cablemax
-//#define sony
-#define miniduino
-...
-
-
-
-

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)

-
-
-

Configurar en el menú "" las opciones

-
-
-
-
Placa: Generic STM32F104C Series
-Variant: STM32F104C8 (20k RAM, 64k Flash)
-Upload Method: STM32duino bootloader
-CPU Speed: 72Mhz (Normal)
-Optimize: Smallest (default)
-Puerto: <Puerto identificado antes>
-
-
-
-

Finalmente, pulsar el botón de carga del firmware y esperar unos segundos mientras se compila el proyecto y se carga en el dispositivo.

-
-
-

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.

-
-
-
-
-
-
-
-
-
-

Solución de problemas

-
-
-

Gestión de imágenes de firmware

-
-

Existen distintas herramientas que permiten generar y/o editar el contenido de los ficheros ZX1, ZX2, ZXD.

-
-
-

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.

-
-
-

Para poder utilizarla se necesita Python 3. Según el sistema operativo que se utilice puede que sea necesario instalarlo.

-
-
-

Teniendo Python 3, basta con descargar la última versión de la herramienta desde su repositorio oficial, en este enlace.

-
-
-

Una vez descomprimido, se debe invocar desde una consola el script principal usando Python 3. Esto puede variar según el sistema operativo.

-
-
-

Por ejemplo, en Windows, suele ser:

-
-
-
-
py -3 zx123_tool.py
-
-
-
-

Mientras que en otros sistemas operativos debería bastar con algo parecido a:

-
-
-
-
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 microSD, se puede "limpiar" dejando sólo el core de Spectrum y la primera ROM de Spectrum con un comando similar a este:

-
-
-
-
... zx123_tool.py -i FLASH.ZXD -w -o FLASHempty.ZXD
-
-
-
-

Donde FLASH.ZXD es la ruta al fichero obtenido desde el core de Spectrum, y FLASHempty.ZXD es la ruta al nuevo fichero "limpio".

-
-
-
-

Mostrar contenido de una imagen

-
-
-

Para ver el contenido de una imagen llamada FLASH.ZXD (cores instalados y algunos datos de configuración), se puede usar el comando

-
-
-
-
... zx123_tool.py -i FLASH.ZXD -l
-
-
-
-

Para mostrar contenido de esa misma imagen, incluyendo datos de ROMs de ZX Spectrum:

-
-
-
-
... zx123_tool.py -i FLASH.ZXD -l -r
-
-
-
-

Modificar la BIOS de una imagen

-
-
-

Para modificar la BIOS de un fichero llamado FLASH.ZXD, usando la BIOS en otro fichero llamado FIRMWARE.ZXD

-
-
-
-
...zx123_tool.py -i FLASH.ZXD -a BIOS,FIRMWARE.ZXD
-
-
-
-

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).

-
-
-

Así, para modificar la BIOS de un fichero llamado FLASH.ZXD, usando la BIOS en otro fichero llamado FIRMWARE.ZXD, y además configurar el modo de vídeo en VGA, y el teclado en modo Spectrum (para gomaDOS`+):

-
-
-
-
...zx123_tool.py -i FLASH.ZXD -a BIOS,FIRMWARE.ZXD -m 2 -k 3
-
-
-
-

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 documentación de la herramienta para más información.

-
-
-
-

Añadir una ROM de Spectrum a una imagen

-
-
-

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:

-
-
-
-
...zx123_tool.py -i FLASH.ZXD -a ROM,5,xdnlh17,Spec48,48.rom
-
-
-
-

Véase la documentación de la herramienta para ver todas las posibles opciones a la hora de añadir una ROM de Spectrum.

-
-
-

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:

-
- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
iHabilitar teclado issue 3 (en vez de issue 2)

c

Deshabilitar la contención de memoria

d

Habilitar DivMMC

n

Habilitar NMI DivMMC (menú de esxdos)

p

Usar timings de Pentagon

t

Usar timings de 128K

s

Deshabilitar puertos de DivMMC y ZXMMC

m

Habilitar MMU horizontal de Timex

h

Deshabilitar bit alto de ROM (bitd 2 de 1FFD)

l

Deshabilitar bit bajo de ROM (bit 4 de 7FFD)

1

Deshabilitar puerto 1FFD (paginado de +2A/3)

7

Deshabilitar puerto 7FFD (paginado de 128K)

2

Deshabilitar TurboSound (chip AY secundario)

a

Deshabilitar chip AY

r

Deshabilitar modo Radastaniano

x

Deshabilitar modo Timex

u

Deshabilitar ULAPlus

-
-
-

Instalar un Core en una imagen

-
-
-

Para instalar un core en la posición 3, desde un fichero llamado NEXT.ZXD, llamándolo Spectrum Next, usar un comando como este:

-
-
-
-
...zx123_tool.py -i FLASH.ZXD -a 'CORE,3,Spectrum Next,NEXT.ZXD'
-
-
-
-

Si además se quiere configurar como el core por defecto, se puede indicar también con un comando como:

-
-
-
-
...zx123_tool.py -i FLASH.ZXD -a 'CORE,3,Spectrum Next,NEXT.ZXD' -c 3
-
-
-
-

Modificar la ROM de esxdos de una imagen

-
-
-

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:

-
-
-
-
...zx123_tool.py -i FLASH.ZXD -a esxdos,ESXMMC.BIN
-
-
-
-

Combinar varias órdenes en una única línea

-
-
-

Notar que se pueden acumular varias órdenes en una única línea de comandos. Por ejemplo, para "limpiar" un archivo de imagen llamado FLASH.ZXD, creando uno nuevo llamado FLASHnew.ZXD, instalar la BIOS desde el fichero FIRMWARE.ZXD, configurar el modo de vídeo en VGA, el teclado en modo Spectrum (para gomaDOS`+), 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 NEXT.ZXD, llamándolo Spectrum Next, configurado como el core por defecto, usar un comando como este:

-
-
-
-
... zx123_tool.py -i FLASH.ZXD -w -o FLASHnew.ZXD -a BIOS,FIRMWARE.ZXD -m 2 -k 3 -a ROM,5,xdnlh17,Spec48,48.rom -a 'CORE,3,Spectrum Next,NEXT.ZXD' -c 3
-
-
-
-
-
-
-

Recuperación del firmware

-
-

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 ZXDOS+ 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.

-
-
-

En esta situación, existen diferentes métodos de recuperación que permiten volver a instalar el firmware.

-
-
-

Preparación del cableado

-
-

En los siguientes pasos de recuperación se habla de conectar cables puente o USB-Blaster a la placa de ZXDOS+ o gomaDOS+. Para ello, usar las siguientes imágenes como referencia.

-
-
-

jtag jtaggomados

-
-
-

Notar que, en algunos modelos, el conector de JTAG está con los pines por la parte de debajo.

-
-
-

jtag02 jtag03 jtag04

-
-
- - - - - -
- - -
-

NO se ha de conectar la línea de 3V

-
-
-
-
- - - - - -
- - -
-

En el caso de utilizar USB-Blaster, el gomaDOS+ tiene la distribución adecuada para conectar directamente el conector 2x5 incluido. Para ZXDOS+, podría ser necesario preparar el cableado adecuado, comparando las imágenes anteriores.

-
-
-
-
-
-
-

Recuperación usando una Raspberry Pi

-
-

Material necesario:

-
-
-
    -
  • -

    Raspberry Pi (con tarjeta SD, teclado, monitor, fuente de alimentación, etc.) y con conexión a internet

    -
  • -
  • -

    5 cables puente para prototipos (idealmente, hembra en los dos extremos), o bien, en vez de los cables puente, un adaptador USB-Blaster

    -
  • -
  • -

    Una llave Allen del tamaño adecuado para poder retirar la tapa del ZXDOS+ o bien un destornillador de estrella adecuado si se va abrir un gomadDOS+ (esto no es necesario si se utiliza USB-Blaster)

    -
  • -
  • -

    Tarjeta microSD para el ZXDOS+/gomaDOS+ con la primera partición en formato FAT16 o FAT32

    -
  • -
  • -

    Teclado (no necesario en gomaDOS+) y monitor para conectar el ZXDOS+

    -
  • -
-
-
-

Software necesario:

-
-
- -
-
-

Pasos a seguir:

-
-
-
    -
  1. -

    Si no estuviera ya, instalar Raspberry Pi OS (antes llamado Raspbian) en la Raspberry Pi (usando la descarga oficial, NOOBS, PINN, etc.)

    -
  2. -
  3. -

    Instalar Open OCD en la Raspberry Pi:

    -
  4. -
-
-
-
-
sudo apt-get update
-sudo apt-get install git autoconf libtool make pkg-config
-sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev telnet
-sudo apt-get install libusb-dev libftdi-dev
-git clone, git://git.code.sf.net/p/openocd/code openocd-code
-cd openocd-code/
-./bootstrap
-./configure --enable-usb_blaster --enable-sysfsgpio --enable-bcm2835gpio
-make
-sudo make install
-cd ..
-rm -rf ./openocd-code
-
-
-
-
-
    -
  1. -

    Conectar el USB-Blaster o los cables puente para GPIO tal y como se explica anterioremente. Si se va a hacer la conexión usando GPIO, abrir la carcasa del ZXDOS+ o el gomaDOS+ y conectar las líneas de JTAG de la FPGA (TMS, TDI, TDO, TCK y GND) con los cables a los pines GPIO de la Raspberry Pi.

    -
  2. -
-
-
-

Si se hace conexión vía GPIO, tomar nota de los pines elegidos, teniendo cuidado de conectar GND con GND.

-
-
-

gpio

-
-
-

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:

-
- ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
JTAG ZXDOS+GPIOPin Raspberry Pi

TMS

GPIO#6

31

TDI

GPIO#13

33

TDO

GPIO#19

35

TCK

GPIO#26

37

GND

GND

39

-
-
    -
  1. -

    Copiar en la Raspberry Pi el fichero recovery.zxd.bit obtenido anteriormente del repositorio oficial. En nuestro ejemplo, se dejará en /home/pi/zxdosplus/unbrick/

    -
  2. -
-
-
-
-
    -
  1. -

    Para la conexión usando GPIO, realizar una copia del archivo de configuración de Open OCD, en el mismo lugar donde está recovery.zxd.bit. Este paso no es necesario si se usa USB-Blaster.

    -
  2. -
-
-
-
-
cp /usr/local/share/openocd/scripts/interface/raspberrypi2-native.cfg /home/pi/zxdosplus/unbrick/
-
-
-
-
    -
  1. -

    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:

    -
  2. -
-
-
-
-
# Header pin numbers: 37 31 33 35
-bcm2835gpio_jtag_nums 26 6 13 19
-
-
-
-
    -
  1. -

    Comentar, si no lo está, la línea bcm2835gpio_swd_nums (de nuevo, no necesario si la conexión es con USB-Blaster):

    -
  2. -
-
-
-
-
#bcm2835gpio_swd_nums 11 25
-
-
-
-
    -
  1. -

    Añadir, al final, la línea adapter speed 250 (no necesario para uso con USB-Blaster):

    -
  2. -
-
-
-
-
adapter speed 250
-
-
-
-
    -
  1. -

    Encender el ZXDOS+ o el gomaDOS+

    -
  2. -
  3. -

    Asegurarnos de que estamos en el directorio donde se encuentra el archivo recovery.zxd.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.

    -
  4. -
-
-
-

Para conexión vía GPIO:

-
-
-
-
cd /home/pi/zxdosplus/unbrick
-sudo openocd -f /home/pi/zxdosplus/unbrick/raspberrypi2-native.cfg -f /usr/local/share/openocd/scripts/cpld/xilinx-xc6s.cfg -c "init; xc6s_program xc6s.tap; pld load 0 recovery.zxd.bit ; exit"
-
-
-
-

Con USB-Blaster:

-
-
-
-
sudo openocd -f /usr/local/share/openocd/scripts/interface/altera-usb-blaster.cfg  -f /usr/local/share/openocd/scripts/cpld/xilinx-xc6s.cfg -c "init; xc6s_program xc6s.tap; pld load 0 recovery.zxd.bit ; exit"
-
-
-
-
-
    -
  1. -

    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.

    -
  2. -
-
-
-

En el caso de que no se vea imagen, pulsar Bloq. Despl. (Caps Shift+Symbol Shift+G en gomaDOS+): 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.

-
-
-

recovery

-
-
-
    -
  1. -

    Insertar en el ZXDOS+ la tarjeta microSD con la primera partición en formato FAT16 o FAT32, y en la que habremos copiado el fichero FLASH.ZXD descargado anteriormente.

    -
  2. -
  3. -

    Si se está utilizando USB-Blaster, desconectar el cable.

    -
  4. -
-
-
-
-
    -
  1. -

    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.

    -
  2. -
-
-
-

recovery2

-
-
- - - - - -
- - -
-

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.

-
-
-
-
- - - - - -
- - -
-

Habitualmente, la imagen de recuperación está configurada para usar un teclado PS/2 y no el teclado de membrana de Spectrum, así que, en el caso de gomaDOS+, puede que no funcionen las combinaciones como Caps Shift + 5, etc. En este caso, se ha de cambiar el modo de teclado a PC XT (Caps Shift + Symbol Shift + U y luego 9), para que funcionen de nuevo temporalmente.

-
-
-
-
-
-
    -
  1. -

    Tras unos minutos, el proceso finalizará, y podremos comprobar como, al apagar y encender, el ZXDOS+ (o el gomaDOS+) vuelve a arrancar correctamente.

    -
  2. -
-
-
- - - - - -
- - -
-

Si no se obtiene imagen, pulsar de nuevo Bloq. Despl. (Caps Shift+Symbol Shift+G en gomaDOS+): para cambiar entre modo de video compuesto y VGA. En este caso, sería necesario acceder a la BIOS y cambiar el ajuste avanzado correspondiente para indicar la configuración de nuestro monitor.

-
-
-
-
- - - - - -
- - -
-

En el caso de gomaDOS+, como la configuración de la imagen de recuperación por defecto espera un teclado PS/2, se pueden seguir los siguientes pasos para configurar la BIOS correctamente:

-
-
-
    -
  1. -

    Si no hay imagen, cambiar entre modo video compuesto y modo VGA (Caps Shift+Symbol Shift+G)

    -
  2. -
  3. -

    Cambiar al modo PC XT de teclado (Caps Shift + Symbol Shift + U y luego 9)

    -
  4. -
  5. -

    Reiniciar el gomaDOS+ sin que se pierda la configuración del teclado (Caps Shift + Symbol Shift + B)

    -
  6. -
  7. -

    Rápidamente, pulsar Caps Shift + 1

    -
  8. -
  9. -

    De nuevo, si no hay imagen, cambiar entre modo VGA y modo video compuesto (Caps Shift+Symbol Shift+G)

    -
  10. -
  11. -

    Navegar por la BIOS y configurar las siguientes opciones:

    -
    -
      -
    • -

      AdvancedKeyboard Layout: Spectrum

      -
    • -
    • -

      AdvancedVideo: VGA (sólo si no teníamos imagen)

      -
    • -
    -
    -
  12. -
  13. -

    Guardar los cambios de la BIOS:

    -
    -
      -
    • -

      ExitSave changes and exit -.Apagar completamente el gomaDOS+ y volver a encenderlo

      -
    • -
    -
    -
  14. -
-
-
-
-
-
-
-

Recuperación usando MacOS y Cable USB-Blaster

-
-

Material necesario:

-
-
- -
-
-

Software necesario:

-
-
- -
-
-

Pasos a seguir:

-
-
-
    -
  1. -

    Preparar la instalación de UrJTAG

    -
  2. -
-
-
-
-
brew install libftdi libusb pkg-config
-git clone https://github.com/C-Elegans/urjtag.git
-cd urjtag
-
-
-
-
    -
  1. -

    Copiar la carpeta data adicional para UrJTAG, dentro de la carpeta data de urjtag.

    -
  2. -
  3. -

    Lanzar el proceso de compilacion:

    -
  4. -
-
-
-
-
./configure --with-libftdi --with-libusb --with-ftd2xx --with-inpout32 --enable-python=no
-make -j4
-sudo make install
-
-
-
-
    -
  1. -

    Copiar el archivo FLASH.ZXD en la raiz de la tarjeta microSD para el ZXDOS+.

    -
  2. -
  3. -

    Conectar el cable USB-Blaster al ZXDOS+ y al Mac

    -
  4. -
  5. -

    Encender el ZXDOS+ o el gomaDOS+

    -
  6. -
  7. -

    Asegurarnos de que estamos en el directorio donde se encuentra el archivo recovery.zxd.bit, y lanzar el comando jtag.

    -
  8. -
-
-
-
-
    -
  1. -

    Aparecerá una consola donde se han de escribir los comandos:

    -
  2. -
-
-
-
-
cable usbblaster
-detect
-pld load recovery.zxd.bit
-
-
-
- - - - - -
- - -
-

En el comando detect es importante que aparezca el dispositivo detectado. Puede que sea necesario lanzar el comando detect de manera repetida hasta que aparezca.

-
-
-
-
-

recovery mac 1

-
-
-
-
    -
  1. -

    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.

    -
  2. -
-
-
-

En el caso de que no se vea imagen, pulsar Bloq. Despl. (Caps Shift+Symbol Shift+G en gomaDOS+): 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.

-
-
-

recovery

-
-
-
    -
  1. -

    Insertar en el ZXDOS+ la tarjeta microSD con la primera partición en formato FAT16 o FAT32, y en la que habremos copiado el fichero FLASH.ZXD descargado anteriormente.

    -
  2. -
  3. -

    Desconectar el cable USB-Blaster.

    -
  4. -
  5. -

    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.

    -
  6. -
-
-
-

recovery2

-
-
- - - - - -
- - -
-

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.

-
-
-
-
- - - - - -
- - -
-

Habitualmente, la imagen de recuperación está configurada para usar un teclado PS/2 y no el teclado de membrana de Spectrum, así que, en el caso de gomaDOS+, puede que no funcionen las combinaciones como Caps Shift + 5, etc. En este caso, se ha de cambiar el modo de teclado a PC XT (Caps Shift + Symbol Shift + U y luego 9), para que funcionen de nuevo temporalmente.

-
-
-
-
-
    -
  1. -

    Tras unos minutos, el proceso finalizará, y podremos comprobar como, al apagar y encender, el ZXDOS+ (o el gomaDOS+) vuelve a arrancar correctamente.

    -
  2. -
-
-
- - - - - -
- - -
-

Si no se obtiene imagen, pulsar de nuevo Bloq. Despl. (Caps Shift+Symbol Shift+G en gomaDOS+): para cambiar entre modo de video compuesto y VGA. En este caso, sería necesario acceder a la BIOS y cambiar el ajuste avanzado correspondiente para indicar la configuración de nuestro monitor.

-
-
-
-
- - - - - -
- - -
-

En el caso de gomaDOS+, como la configuración de la imagen de recuperación por defecto espera un teclado PS/2, se pueden seguir los siguientes pasos para configurar la BIOS correctamente:

-
-
-
    -
  1. -

    Si no hay imagen, cambiar entre modo video compuesto y modo VGA (Caps Shift+Symbol Shift+G)

    -
  2. -
  3. -

    Cambiar al modo PC XT de teclado (Caps Shift + Symbol Shift + U y luego 9)

    -
  4. -
  5. -

    Reiniciar el gomaDOS+ sin que se pierda la configuración del teclado (Caps Shift + Symbol Shift + B)

    -
  6. -
  7. -

    Rápidamente, pulsar Caps Shift + 1

    -
  8. -
  9. -

    De nuevo, si no hay imagen, cambiar entre modo VGA y modo video compuesto (Caps Shift+Symbol Shift+G)

    -
  10. -
  11. -

    Navegar por la BIOS y configurar las siguientes opciones:

    -
    -
      -
    • -

      AdvancedKeyboard Layout: Spectrum

      -
    • -
    • -

      AdvancedVideo: VGA (sólo si no teníamos imagen)

      -
    • -
    -
    -
  12. -
  13. -

    Guardar los cambios de la BIOS:

    -
    -
      -
    • -

      ExitSave changes and exit -.Apagar completamente el gomaDOS+ y volver a encenderlo

      -
    • -
    -
    -
  14. -
-
-
-
-
- - - - - -
- - -
-

En Linux, usando el mismo software UrJTAG, el proceso deberia ser similar, aunque en vez de instalar las dependencias (libftdi libusb pkg-config) mediante brew, se deberia hacer mediante apt, yum o similar

-
-
-
-
-
-
-

Recuperación usando Windows y Cable USB-Blaster

-
-

Material necesario:

-
-
- -
-
-

Software necesario:

-
-
- -
-
-

Pasos a seguir:

-
-
-
    -
  1. -

    Descomprimir el fichero ZIP con los drivers (obtenido en el foro de ZX-Uno)

    -
  2. -
  3. -

    Conectar el cable USB-Blaster al PC con Windows e instalar el driver eligiendo la opción de añadir ficheros manualmente y seleccionado la carpeta drivers que se ha obtenido al descomprimir el fichero anterior

    -
  4. -
  5. -

    Descomprimir el software de UrJTAG, obtenido en el repositorio oficial

    -
  6. -
  7. -

    Copiar el archivo FLASH.ZXD en la raiz de la tarjeta microSD para el ZXDOS+.

    -
  8. -
  9. -

    Conectar el cable USB-Blaster al ZXDOS+ y al PC con Windows

    -
  10. -
  11. -

    Encender el ZXDOS+ o el gomaDOS+

    -
  12. -
  13. -

    Asegurarnos de que estamos en el directorio donde se encuentra el archivo recovery.zxd.bit, y lanzar jtag.exe.

    -
  14. -
  15. -

    Aparecerá una consola donde se han de escribir los comandos:

    -
  16. -
-
-
-
-
cable usbblaster
-detect
-pld load recovery.zxd.bit
-
-
-
-
-
    -
  1. -

    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.

    -
  2. -
-
-
-

En el caso de que no se vea imagen, pulsar Bloq. Despl. (Caps Shift+Symbol Shift+G en gomaDOS+): 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.

-
-
-

recovery

-
-
-
    -
  1. -

    Insertar en el ZXDOS+ la tarjeta microSD con la primera partición en formato FAT16 o FAT32, y en la que habremos copiado el fichero FLASH.ZXD descargado anteriormente.

    -
  2. -
  3. -

    Desconectar el cable USB-Blaster.

    -
  4. -
  5. -

    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.

    -
  6. -
-
-
-

recovery2

-
-
- - - - - -
- - -
-

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.

-
-
-
-
- - - - - -
- - -
-

Habitualmente, la imagen de recuperación está configurada para usar un teclado PS/2 y no el teclado de membrana de Spectrum, así que, en el caso de gomaDOS+, puede que no funcionen las combinaciones como Caps Shift + 5, etc. En este caso, se ha de cambiar el modo de teclado a PC XT (Caps Shift + Symbol Shift + U y luego 9), para que funcionen de nuevo temporalmente.

-
-
-
-
-
    -
  1. -

    Tras unos minutos, el proceso finalizará, y podremos comprobar como, al apagar y encender, el ZXDOS+ (o el gomaDOS+) vuelve a arrancar correctamente.

    -
  2. -
-
-
- - - - - -
- - -
-

Si no se obtiene imagen, pulsar de nuevo Bloq. Despl. (Caps Shift+Symbol Shift+G en gomaDOS+): para cambiar entre modo de video compuesto y VGA. En este caso, sería necesario acceder a la BIOS y cambiar el ajuste avanzado correspondiente para indicar la configuración de nuestro monitor.

-
-
-
-
- - - - - -
- - -
-

En el caso de gomaDOS+, como la configuración de la imagen de recuperación por defecto espera un teclado PS/2, se pueden seguir los siguientes pasos para configurar la BIOS correctamente:

-
-
-
    -
  1. -

    Si no hay imagen, cambiar entre modo video compuesto y modo VGA (Caps Shift+Symbol Shift+G)

    -
  2. -
  3. -

    Cambiar al modo PC XT de teclado (Caps Shift + Symbol Shift + U y luego 9)

    -
  4. -
  5. -

    Reiniciar el gomaDOS+ sin que se pierda la configuración del teclado (Caps Shift + Symbol Shift + B)

    -
  6. -
  7. -

    Rápidamente, pulsar Caps Shift + 1

    -
  8. -
  9. -

    De nuevo, si no hay imagen, cambiar entre modo VGA y modo video compuesto (Caps Shift+Symbol Shift+G)

    -
  10. -
  11. -

    Navegar por la BIOS y configurar las siguientes opciones:

    -
    -
      -
    • -

      AdvancedKeyboard Layout: Spectrum

      -
    • -
    • -

      AdvancedVideo: VGA (sólo si no teníamos imagen)

      -
    • -
    -
    -
  12. -
  13. -

    Guardar los cambios de la BIOS:

    -
    -
      -
    • -

      ExitSave changes and exit -.Apagar completamente el gomaDOS+ y volver a encenderlo

      -
    • -
    -
    -
  14. -
-
-
-
-
-
-
-
-
- -
- - - - \ No newline at end of file