DOS nodes user manual

UniTools DOS node

ROM slot NVM1) RTC2)
1 to 153) No No

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

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

ROM slot NVM13) RTC14)
1 to 31 Yes No

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

ROM slot NVM16) RTC17)
1 to 31 Yes Yes18)

The M4 node supports the M4 Board from Duke.

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

ROM slot NVM21) RTC22)
See installation Yes No

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

ROM slot NVM24) RTC25)
1 to 3126) Yes Yes

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.

1) , 13) , 16) , 21) , 24)
non volatile memory availability
2) , 14) , 17) , 22) , 25)
real time clock availability
3)
higher slot is advised
4)
|NODE let you see all DOS nodes and their installation rank
5)
|NODE,n let you see the order of the drives in the node n
6)
which slightly improved startup sequence speed
7)
such as TAPE:
8)
in that last case, the automatic startup will just enter the directory
9)
by prepending ”&“ or ”#“ sign
10)
if no extension is provided then the fill value is 0
11)
without AMSDOS binary header
12)
the ASCII code 32 is the space
15)
neither ntfs nor other fat types are supported by the Albireo
18)
read only
19)
upper case, 8 characters for name, 3 characters for extension
20)
loading files could freeze the M4 Board, but directory browing and file saving should work flawlessly
23)
FAT12, FAT16 et FAT32
26)
lower slot is advised