DOS nodes user manual
UniTools DOS node
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.
Automatic startup
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.
Bootable drives
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 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.
Startup file
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).
Developper tool ROMs handling
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.
Physical drives
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.
RSX
UniTools DOS node offers several RSX to enrich UniDOS features.
|HELP
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.
Without parameter
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.
With one parameter
Syntax: |HELP,ROM NUMBER
List all reachable RSX from the given ROM number.
|WHERE
Syntax: |WHERE,”RSX NAME“
Tells where is located a RSX.
|DEVTOOLS.ON
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.
|DEVTOOLS.OFF
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.
Albireo DOS node
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).
Physical drives
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…).
Non volative memory
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.
Limitations
Albireo node cannot rename files from a directory to another on its physical drives.
M4 DOS node
Physical drives
M4:
Internal microSD card.DSK:
DSK file reader (read-only).FTP:
FTP network drive.
The Library
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.
RSX
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.
|CPR
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.
|DSK
Handle configuration of the physical drive DSK:
.
Without parameter
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
With one parameter
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"
|FTP
Handle configuration of the physical drive FTP:
.
Caution:
- M4 firmware v2.0.8 or better is required to use FTP feature.
- Only file matching AMSDOS naming convention are accessible from the physical drive
FTP:
19), all unmatching files and directories will be filtered out. - Due to issues that still have to be investigated in M4 Board firmware, the physical drive
FTP:
is not yet fully functionnal20) .
Without parameter
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
With three parameters
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"
|HTTPGET
Syntax: |HTTPGET,”url“
Download a file from an URL to the Library.
|LIBRARY
List the Library contents.
Without parameter
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
With one parameter
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
|M4.DISABLE
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.
|M4.FLASHROM
Syntax: |M4.FLASHROM,”path“,slot
Flash the ROM slot
with the contents of the file provided through the path
.
|M4.NETCONFIG
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.
|M4.NETSTAT
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
|M4.UPGRADE
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.
|M4.VERSION
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
|M4.ROMOFF
Syntax: |M4.ROMOFF,slot
Disable the ROM slot
from the M4 Board ROM area.
|M4.ROMON
Syntax: |M4.ROMON,slot
Enable the ROM slot
from the M4 Board ROM area.
|SNA
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.
Non volatile memory
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.
Limitations
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.
FatFs DOS node
The FatFs node supports media formatted using FAT23).
Physical drives
Non volatile memory
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:
.
Limitations
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.
Nova node
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: