This node provides secondary features which are shared by all expansion boards supported by UniDOS, including the ability to execute a automatic startup on bootable devices, reachable RSX in DOS nodes over slot number 15, and developer ROM tools handling.
Caution: 3“1/2 floppy disc drives with a forced “ready” signal are not compatible with UniTools.
UniTools allows you to automatically start any program at CPC boot..
To do so, once Basic is initialized, UniTools will scan all available drives to find bootable devices and to select the one which have boot priority.
Once the startup drive located, the logical drive A:
is selected and automatically assigned to the identified startup drive, then, if a startup file exists, it will be executed.
Amstrad 128K Microcomputer (f3) ©1985 Amstrad Consumer Electronics plc and Locomotive Software Ltd. UniDOS (integrated) ©2022 Futurs' BASIC 1.1 Ready Scanning startup devices... Startup: Albireo microSD card Ready
Please note that pressing any key during CPC boot sequence will interrupt the automatic startup.
By default, no drive is bootable. To make a drive bootable, a file named ”#BOOT.CFG“
shall be created at its root directory. This file shall contain a number (from 0 to 9) with the desired startup priority.
A drive with priority 9 will be the last one to be considered while finding a drive with priority 0 will engage the automatic startup immediately without scanning the next ones.
You can easily create this file with any text editor or use the program SETBOOT.BAS
from the download section. You can also create it by hand as followed:
MEMORY &7FFF POKE &8000,ASC("5") |SAVEA,"SD:#BOOT.CFG",&8000,1
The example above makes the drive SD:
bootable with a priority of 5.
If several drives are declared with the same priority then the one from the first node will be selected4). If several drives from a same node do have the same priority then the nodes's first one will be used5).
Please note that floppy disc drives provided by the internal node are always considered in last position so that any drive with priority 0 will disable floppies scanning6).
Of course, drives of type stream7) are not concerned and will never by considered as bootables.
The startup is a file is named ”#STARTUP“
which is located in drive's root directory. If it exists while the drive is booted, then it will be executed automatically thru a RUN”#STARTUP“
.
This file can be of any kind, Basic, binary, symbolic link or event directory8).
UniTools offers a feature which allows to automatically deactivate developper tools ROMs to turn the CPC into a CPC as stock as possible. This system is triggered through the new RSX |DEVTOOLS.ON
and |DEVTOOLS.OFF
explained bellow. To be compatible with this system, ROMs considered as developper tools must integrate a specific code snippet detailed in annexes. Arnor's ROMs provided in the download section have been patches to take advantage of this feature.
ZERO:
“Empty” files provider.
This drive is read-only and let you generate on-the-fly files of any size. File size and fill byte are depending on the provided file name. The file format is “size.val”
where “size” is the size of the file and “val” is the byte contents. “size” and “val” can be both expressed in decimal or hexadecimal9).
For instance, a file “123.75”
will provide a file of 123 bytes with the fill value 7510). In the same manner, ”&4000.&ff“
will generate a file of 16384 bytes (&4000) with the value 255 (&ff).
Caution: the generated files are ASCII files11), you could for instance load them with Protext (INSERT 20.32
will insert 20 spaces12) in your currently edited file) or through the |LOAD
RSX.
UniTools DOS node offers several RSX to enrich UniDOS features.
This RSX is similar to the one provided by ROMs from Arnor Ltd. or Romantic Robot. It lists ROMs installed on the system. Unlike original RSX, this one lists up to 32 ROMs instead of only 32 and gives additional information.
Syntax: |HELP
|HELP ROM 1:BASIC 1.23 foreground ROM 1:NOVA 1.41·extension ROM 7:UNIDOS 1.50 back &A700 ROM 8:FATFS 1.41·disabled ROM 9:M4 1.41 parked ROM 14:UNITOOLS 1.41·background ROM 27:ALBIREO 1.41·extension
foreground
indicates a foreground ROM.back &xxxx
indicates a background ROM with working memory allocated at address &xxxx.background
indicates a background ROM which did not allocate memory but with reachable RSX (thanks to UniTools).extension
indicates an extension ROM.disabled
indicates a disabled background ROM.parked
indicates a parked ROM.
ROMs tagged with ·
character are DOS nodes.
Syntax: |HELP,ROM NUMBER
List all reachable RSX from the given ROM number.
Syntax: |WHERE,”RSX NAME“
Tells where is located a RSX.
Reboot with developper tool ROMs activated (this is the default behavior). Si UniTools is installed in a slot number greater than the developper tool TOMs, pressing SHIFT
during boot will have the same effect.
Reboot with developper tool ROMs deactivated. Si UniTools is installed in a slot number greater than the developper tool TOMs, pressing CONTROL
during boot will have the same effect.
The Albireo node supports the Albireo from PulkoTronics. Up to two Albireos can be used at the same time.
Caution: be sure that the microSD card as well as USB mass storage you are using are formatted with fat32 15).
SD:
Internal microSD card reader.UMS:
Plugged USB mass storage (USB stick, hard disk…).SD2:
2nd Albireo internal microSD card reader.UMS2:
2nd Albireo plugged USB mass storage (USB stick, hard disk…).
Albireo node provides non volatile memory management. The contents of the non volatile memory is stored in a file named ”!UNIDOS!.NVM“
which is located at the root of the microSD card.
Albireo node cannot rename files from a directory to another on its physical drives.
M4:
Internal microSD card.DSK:
DSK file reader (read-only).FTP:
FTP network drive.M4 node provides handling for a library of files which are normally used by emulators. It stores disc images (DSK files), cartridges images (CPR files) and snapshots (SNA files). These files are physically located in a directory named “Library” at the root of the microSD card (this directory will be automatically created if it does not already exist).
The Library can contain sub-directories and files with long file name using upper case and lower cas (case is actually ignored when reading files). Moreover, file type recognition is based on their contents and it is not mandatory to keep legacy file extensions.
Additional RSX such as |CPR, |DSK, |SNA will let you use files from the Library, while |HTTPGET provides a way to directly download files to the Library.
M4 node hosts several RSX which let you manage the Library, the built-in ROM board, the WIFI network and other M4 Board configuration status.
Syntax: |CPR,”path to a CPR file from the Library“
Boot a CPR cartridge from the Library like if it was physically plugged to your Amstrad Plus. Please note that the provided path must not include the “Library/” prefix which is automatic. Also, you should take care of the fact that almost all existing cartridges will only work on Amstrad Plus.
Handle configuration of the physical drive DSK:
.
Syntax: |DSK
Display the name of the DSK file from the Library which is currently mounted in the drive DSK:
. Please note that the path do not include the “Library/” prefix.
|DSK Demos/Back2Futurs.dsk
Syntax: |DSK,”path to a DSK file from the Library“
Mount a DSK file from the Library into the physical drive DSK:
. Please note that the provided path must not include the “Library/” prefix which is automatic.
|DSK,"Demos/Back2Futurs.dsk"
Handle configuration of the physical drive FTP:
.
Caution:
FTP:
19), all unmatching files and directories will be filtered out.FTP:
is not yet fully functionnal20) .
Syntax: |FTP
Display information about the current FTP server, login and password which are currently used for the drive FTP:
.
|FTP Server: main.aminet.net (35.223.124.178) Port: 21 Login: anonymous Password: dummy@cpcscene.net Status: Connected
Syntax: |FTP,”server host name or IP address“,”login“,”password“
Configure the FTP server, login and password to use for the physical drive FTP:
.
|FTP,"main.aminet.net","anonymous","dummy@cpcscene.net"
Syntax: |HTTPGET,”url“
Download a file from an URL to the Library.
List the Library contents.
Syntax: |LIBRARY
List all file from the root of the Library.
|LIBRARY eDSK: The Insider (UK) (1989) [Original] [UTILITAIRE].dsk eDSK: SymbOS-CPC-AppsStandard.dsk eDSK: SymbOS-CPC-BootFast.dsk eDSK: SymbOS-CPC-BootRaw.dsk eDSK: Digitracker (UK) (128K) (1993) (PD) [UTILITAIRE].dsk eDSK: Quasar CPC 3 (1993)(Futurs)(Disk 2 of 2).dsk [Dir] PlayCity eDSK: Discology (F) (1989) (CPM) (Version 6.0) [UTILITAIRE].dsk eDSK: CPM 2.2 - zexall.dsk [Dir] Jeux [Dir] Demos eDSK: Quasar CPC 2 (1993)(Futurs)(Disk 2 of 2).dsk eDSK: Quasar CPC 3 (1993)(Futurs)(Disk 1 of 2).dsk eDSK: Quasar CPC 2 (1993)(Futurs)(Disk 1 of 2).dsk [Dir] Utilitaires SNA: Barbarian.sna SNA: Take It Easy.sna CPR: Batman The Movie.cpr
Syntax: |LIBRARY,”path into the Library“
List the file from the Library which are located in the provided path (the path can contain wildcards). Please note that the provided path must not include the “Library/” prefix which is automatic.
|LIBRARY,"Demos/" eDSK: Back2Futurs.dsk eDSK: Climax (2003)(Les Sucres En Morceaux)(Disk 1 of 2).dsk eDSK: Climax (2003)(Les Sucres En Morceaux)(Disk 2 of 2).dsk DSK: Prodatron Megademo (1992)(BENG)(Disk 2 of 2).dsk eDSK: Tire Au Flan (2002)(Overlanders).dsk DSK: ASIC Intro 1 - Plasma Plus (F) (128K) (2000) [CPC+] [DEMO].dsk eDSK: phX.dsk eDSK: Still Rising (Offset).dsk eDSK: The Demo (1991)(Logon System)(Disk 1 of 2).dsk eDSK: _5KB 3 (1999)(5KB).dsk eDSK: DTC (UK) (128K) (2006) [DEMO].dsk CPR: CRTC3_(Flower Corp_2017).cpr CPR: Eerie_Forest_(Logon_System_2017).cpr
Syntax: |M4.DISABLE
Totally disable the M4 Board (including its built-in ROM board) until the next M4 reboot.
This is useful when you need to start a program which is not compatible with the M4 Board.
Syntax: |M4.FLASHROM,”path“,slot
Flash the ROM slot
with the contents of the file provided through the path
.
Syntax: |M4.NETCONFIG,”configuration“
Configure the M4 Board network. This command is identical to the RSX |NETSET
from built-in M4 Board ROM. Please refer to the documentation from Duke.
Syntax: |M4.NETSTAT
Display the network status of the M4 Board. This command is identical to the RSX |NETSTAT
from built-in M4 Board ROM. Please refer to the documentation from Duke.
Signal: 0xCE IP 192.168.0.48 Netmask: 255.255.255.0 Gateway: 192.168.0.254 DNS1: 80.10.246.2 DNS2: 80.10.246.129 MAC: 2C:F4:32:65:38:15
Syntax: |M4.UPGRADE
Update the M4 Board firmware from the internet. This command is identical to the RSX |UPGRADE
from built-in M4 Board ROM. Please refer to the documentation from Duke.
Syntax: |M4.VERSION
Display the firmware version of the M4 Board. This command is identical to the RSX |VERSION
from built-in M4 Board ROM. Please refer to the documentation from Duke.
M4 v2.0.7 ESP v2.0.7
Syntax: |M4.ROMOFF,slot
Disable the ROM slot
from the M4 Board ROM area.
Syntax: |M4.ROMON,slot
Enable the ROM slot
from the M4 Board ROM area.
Syntax: |SNA,”path to a SNA file from the Library“
Synchronize the CPC state according to the content of trhe provided SNA file from the Library. Please note that the provided path must not include the “Library/” prefix which is automatic.
M4 node provides non volatile memory management. The contents of the non volatile memory is stored in a file named ”!UNIDOS!.NVM“
which is located at the root of the microSD card.
M4 node cannot delete non empty directories from M4:
.
Error handling is a bit weak compared to other nodes because of M4 Board firmware flaws in this regard.
The FatFs node supports media formatted using FAT23).
FatFs node provides non volatile memory management. The contents of the non volatile memory is stored in a file named ”!UNIDOS!.NVM“
which is located at the root of the drive IDE:
.
FatFs node needs to allocate memory to operate. Because of that, it prevents UniDOS from providing the same strong AMSDOS compatiblity than with other nodes. Nervertheless, if you own a Nova, it will automatically use it to avoid main memory usage and ensure a much better AMSDOS compatibility (almost as good as with other nodes).
Because of FatFs being a huge library for a little Z80, this node also have poor performance compare to others. Notably, its non volatile memory management is quite slow. If you own another board supported by UniDOS, always prefer its non volatile memory handling to the one from FatFs node. For instance, usage of the Nova is strongly advised.
The Nova node supports the non volatile memory of the Nova de PulkoTronics.
The contents of the non volatile memory is stored into the last page of the Nova memory.
|NODE
let you see all DOS nodes and their installation rank|NODE,n
let you see the order of the drives in the node nTAPE: