The goal of UniDOS is to add handling of new drives while keeping as much as possible the look and feel we are all used to with the floppy disc drives. It also ensure a strong compatibility with old softwares designed to only handle A:
and B:
drives, while letting them access the new drives and their directories.
To ensure a better compatibility, UniDOS is limited to the same naming constraints than AMSDOS. It means that file names are limiter to 8 characters, that file name extension is limited to 3, and that all the allowed and forbidden characters are the same. Thanks to that, any program designed for AMSDOS will work without any modification with UniDOS and vice versa1).
UniDOS handles files writing like AMSDOS. Files are first created with the temporary extension “.$$$”
2), then the final name is given at file close whilst renaming any already existing file with the same name as “.BAK”
3).
Like AMSDOS, when no extension is provided to the file name to save, an automatic extension is added depending on the file type:
“.BAS”
in case of a Basic file.“.BIN”
in case of a binary file.“. ”
in any other case.Like AMSDOS, when no file extension is provided to the file name to load, UniDOS automatically attempts to access the file by using the following default extensions:
“. ”
, file with an empty extension.“.BAS”
, Basic file.“.BIN”
, binary file.To handle new drives related to hard disks or USB ports, rather than adding letters which are often cryptic and require to modify existing program to take them into account, UniDOS introduces the concepts of logical drives and physical drives.
Access to files can be done through either a logical or physical drive name.
These drives remain the traditional AMSDOS drives: A:
and B:
. But what is changing with UniDOS is that these drives A:
and B:
are reconfigurables and can become aliases to any physical drive6).
Then, the drive A:
can be assigned to the physical drive of your hard disk whilst drive B:
could be the internal 3“ drive of your CPC.
Logical drives assignation is done dynamically, either directly with the LOAD
command of Basic, or with the RSX |DRIVE
used with two parameters instead of one.
To assign the current logical drive to the physical drive SD:
:
LOAD"SD:"
To assign the current logical drive to the path “SD:GAMES/ACTION”
:
LOAD"SD:GAMES/ACTION"
To assign the logical drive A:
to the path “SD:GAMES/ACTION”
:
|DRIVE,"A","SD:GAMES/ACTION"
The RSX |DRIVE
without parameter will display the list of the available physical drives on your CPC (with their description) and the current assignation of the logical drives.
|DRIVE Available devices: SD: Albireo microSD card ZERO: Bytes provider DFA: Floppy disc A Logical drives: >A: SD:GAMES/ACTION/ B: DFA:
It is important to notice that the logical drives assignation is persistent.
Are kept after a reboot or a power off of the CPC:
A:
or B:
).
Not only this persistency is quite convenient for the user, it also allows all the programs which are manually reinitializing the ROMs to work in a transparent manner (and even the softwares which could only work from A:
when using AMSDOS/ParaDOS will now work from any drive thanks to UniDOS).
By default, before any modification from the user, A:
is the current logical drive and it is assigned to the path DFA:
; the logical drive B:
is assigned to the path DFB:
.
If the user hold the keys CONTROL
and SHIFT
simultaneously during the boot of the CPC, the persistency is reset to the default values7). Persistency might also be reset when UniDOS ROM is updated. Anycase, a beep is emitted.
The physical drives are drives which are related to specific peripherals. They consist in names up to 8 characters plus a terminal ”:“. DOS nodes are providing them (either statically or dynamically).
Two physical drives exist automatically when AMSDOS or ParaDOS was found. They are associated to internal and external floppy disc drives.
They consist in:
DFA:
for the internal floppy disc drive.DFB:
for the external floppy disc drive.To load a file from the internal floppy disc drive8), you could write:
LOAD"DFA:MYFILE"
Another physical drive exist automatically when a tape interface is detected:
TAPE:
let you access the tape like a regular drive.Each DOS node can provide up to 8 new physical drives to the system. Each drive is more or less sophisticated depending on the hardware or software capabilities (removable or not; supporting directories or not; limited to read only or not; limited to write only or not; seek in files support or not, …).
Refer to the DOS nodes user manual to know about the physical drives and their properties.
UniDOS introduces support for directories on all capable medias. Access to directories and files is done in a standard manner, similar to what can be found on other systems.
General syntax to access a path is the following;
DRIVE:LEVEL-1/LEVEL-2/.../LEVEL-N/FILE
Drive name is before ”:“, it can be either a logical or a physical drive name; directories names are following, separated by ”/“ for each level. UniDOS currently supports up to 6 levels.
Names of the directories are in the same form than file names, 8 characters for the name itself, and 3 for the extension. They also provide the same attributes, so that like a file, a directory can be write protected and/or hidden.
Please note that to keep AMSDOS compatibility, the “USER” number can still be provided before the drive name, so that the path “5A:DIR1/DIR2/FILE”
is valid. If A:
is not assigned to a physicial drive handled by AMSDOS, the “USER” is then silently ignored.
Logical drives A:
and B:
are each assigned to both a physical drive and a path. The choice of the current logical drive is done through the traditional RSX |A
and |B
.
The physical drive and path assigned to the current logical drive can be simply changed by using the LOAD
command. To change to the sub-directory “ACTION”
in the directory “GAMES”
from the drive SD:
you can enter:
LOAD"SD:GAMES/ACTION"
You can also use relative path, so that the following sequence is equivalent to the previous command:
LOAD"SD:" LOAD"GAMES" LOAD"ACTION"
You can go back to the root of the physical drive with:
LOAD":"
You can go to the directory “GAMES”
from the root of the current drive with:
LOAD":GAMES"
You can go to a directory “TOOLS”
from the preivous level with:
LOAD"/TOOLS"
And to go up by two level then enter a new directory from this point:
LOAD"//DEMOS"
All these commands will open a directory if the target is a directory. In casde the taget is a file, then the file will be opened.
It is possible to force directory opening, so that the command will fail if the target is a file. It is done simply by adding a ”/“ to the edn of the path. That way, the following command will fail if “DEMOS”
is a file:
LOAD"DEMOS/"
Similar to the LOAD
command, adding a ”/“ at the end of the path given to the SAVE
command will create a directory instead of a file.
To create a directory “DRAWER”
is the current path, you can type:
SAVE"DRAWER/"
Paths can be used within all traditional command designed for simple file names. It means that you can provide paths to the commands RUN
, LOAD
, SAVE
, etc.; but also ti the RSX |ERA
, |REN
, |DIR
, etc..
All these mechanism are generic, so that:
LOAD”LOADER“
will load the program “LOADER”
located in the current path.RUN”:DISK“
will execute the program “DISK”
located at the root of the current drive.|COPY,”UMS:CAPTURE.SCR“,”:SCREENS/“
will copy the file “CAPTURE.SCR”
located at the root of the UMS:
drive to the directory “SCREENS”
located at the root of the current drive (see section dedicated to the |COPY RSX for more information).|DIR,”SCREENS/*.*“
will list all the files located in the directory “SCREENS”
from the current path level (see section dedicated to the |DIR RSX for more d'information).
Please note that when the name of a logical drive is user, the expressed path is relative to the path assigned to the logical drive. For instance, if the logical drive A:
is assigned to “SD:GAMES”
then you can load the program “MENU”
from the directory “SD:GAME/ACTION”
this way:
LOAD"A:ACTION/MENU"
The files without a name, like they can exust of “stream” type drives (like the tape or a serial drive) can be accessed with the character .
(dot).
RUN"TAPE:."
The files catalog of the current directory can be obtained normally, with the legacy CAT
command. The result is similar to what AMSDOS produces, except that sizes are displayed using four digits instead of only three9), and that the unit is dynamic.
If the size of a file (or the free space on disk) is larger than 1000KiB, then it will be expressed using MiB, if it is larger than 1000MiB, GiB will be used ; and beyond 1000GiB, TiB will be displayed. In case or directories, a marker [DIR]
is displayed instead of the size.
In the catalog header, the name of the current directory is displayed between brackets right after the name of the physical drive:
CAT Device SD: [ROOT] !UNIDOS!.NVM 2K DMADEMO . [DIR] LSUSB .BAS 6K STK . [DIR] B2F . [DIR] EQUINOXE. [DIR] OCP . [DIR] STKDMA . [DIR] BENCH .BAS 3K FAIRY . 14K OFE5 . [DIR] STKOS . [DIR] BRKPOINT.AVI 311M GAMES . [DIR] PAO . [DIR] TEST .AVI 1G DIGITRAK. [DIR] LARSEN . [DIR] SCREENS . [DIR] 51G free
Like AMSDOS does, result is sorted by name, and the number of columns depends on the current window width. Also, the display can be interrupted like the Basic LIST
command: press ESC
once will hold the operation, twice it will interrupt it; this is quite convenient when displaying large catalogs.
The maximum number of files displayable through the CAT
command is 146, beyond this limit the message “Other files exist”
will be displayed at the end of the catalog to let you know that the entire file list could not be displayed10). The RSX |DIR
and |INFO
do not have this limitation and are always capable to display the entire file list.
CAT'arts AMSDOS will be still properly displayed from floppy discs, but adaptations might be required so that they still work once the file copied to another device.
Please note that the RSX |DIR
behaves exactly like AMSDOS' one (see section dedicated to |DIR RSX for more information), the files being displayed without sorting and without their size; which allows display in five columns in full width mode 2, but won't allow to distinguish file from directories:
|DIR Device SD: [ROOT] TEST .AVI BRKPOINT.AVI !UNIDOS!.NVM BENCH .BAS LSUSB .BAS FAIRY . STKOS . STKDMA . STK . SCREENS . PAO . OFE5 . OCP . LARSEN . GAMES . EQUINOXE. DMADEMO . DIGITRAK. B2F . 51G free
In addition, UniDOS adds a RSX |INFO
similar to the one of Utopia ROM from Arnor Ltd. and which allows to obtain detailled information on files (see section dedicated to |INFO RSX for more information):
|INFO SIZE LOAD LOGL ENTRY BRKPOINT.AVI 13722198 ---- ---- ---- TEST .AVI 4DC88660 ---- ---- ---- !UNIDOS!.NVM 000004F5 ---- ---- ---- BENCH .BAS 00000996 $0170 0916 0000 LSUSB .BAS 0000168C ---- ---- ---- FAIRY . 0000379F &0800 371F 0800 STKOS . Dir STKDMA . Dir STK . Dir SCREENS . Dir PAO . Dir OFE5 . Dir OCP . Dir LARSEN . Dir GAMES . Dir EQUINOXE. Dir DMADEMO . Dir DIGITRAK. Dir B2F . Dir
UniDOS also provides support for symbolic links.
Symbolic links car be created with the |MAKELINK
RSX for which you will find detailled information in the dedicated section. Once a link has been created, all read access to it will automatically redirect to its target.
Symbolic links can have any file, directory or even logical or physical drive as target. Moreover, the target can be linked with either an absolute or relative path. The target do not need to exist when the link is created; it allows dynamic links which are quite useful when used with a removable medias as target (such as USB sticks or floppy discs).
Symbolic links also work from and to floppy discs, even if AMSODS itself cannot handle them.
By default, symbolic links are created and loaded with the extension ”.LNK“
but any extension can be specified. Like files and directories, a symbolic link can be write protected and/or hidden. Deleting a symbolic link will destroy the link itself, not its target.
Normally, only background ROMs located in slots bellow 16 can host reachable RSX. Thanks to UniDOS, RSX hosted in all active DOS nodes are also reachable, even if they are extension ROMs.
RSX search sequence is as bellow:
All RSX from UniDOS do have an automatic redirection. It means that if RSX are called whilst UniDOS is not active, the RSX from the AMSDOS will be called instead.
Most RSX provided by UniDOS are identical to the ones from AMSDOS, with sometimes more features. Furthermore, they are all interruptible like the Basic command LIST
: press once ESC
will put the operation on hold, twice will interrupt it; this is quite useful when displaying large catalogs.
Please note that some of the additional RSX are not compatible with floppy discs handled by AMSDOS: this is the case of |PROTECT
, |UNPROTECT
, |HIDE
, |SHOW
, |INFO
, |LIST
and |SETFILEDATE
.
This RSX is similar to the CAT
Basic command, but it displays directories before files and colorize them.
|cat Device SD: [ROOT] B2F . [DIR] S+ . [DIR] 02 .MP3 2M PPIWAIT .ASM 7K CONTIKI . [DIR] SCREENS . [DIR] BANKMAN .BAS 1K PPIWAIT .BIN 2K DIGITRAK. [DIR] SSA-1 . [DIR] BANKMAN .BIN 2K PPIWAIT .REF 1K DMADEMO . [DIR] STK . [DIR] BENCH .BAS 3K PROTEXT . 1K EQUINOXE. [DIR] STKDMA . [DIR] C10CPM3 .EMS 25K SCREEN .BAK 17K G-000898. [DIR] STKOS . [DIR] D .BAS 1K SCREEN .SCR 17K JEUX . [DIR] TECHNIMU. [DIR] DATE .BAS 1K TEST .BAS 1K LARSEN . [DIR] UNILOAD .APP [DIR] FAIRY . 14K TEST .SCR 17K OCP . [DIR] UNILOAD .DEV [DIR] FAST .ASM 3K TEXTINP .BAS 1K OCP .ORG [DIR] UNITOOLS. [DIR] FTP .BAS 1K TOTO .SCR 17K OFE5 . [DIR] VELUS . [DIR] HEROS .BAS 3K UNPRO .BAS 1K PAO . [DIR] VW . [DIR] LNK .LNK 1K VELUS .LHA 88M PLAYSA2 . [DIR] !UNIDOS!.NVM 2K NOVA .BAS 1K VIEWER .BIN 5K PLAYVGM . [DIR] 01 .MP3 2M PPITEST .BAS 2K 6G free
This RSX only exists for backward compatibility reasons and does nothing, as does |DISC.IN
and |DISC.OUT
variants.
This RSX only exists for backward compatibility reasons and does nothing, as does |TAPE.IN
and |TAPE.OUT
variants.
Activates the logical drive A:
as the current drive.
Current assignation of drive A:
is then used (and altered) by file and directory handling commands.
Activates the logical drive B:
as the current drive.
Current assignation of drive B:
is then used (and altered) by file and directory handling commands.
Unlike command |DRIVE
from AMSDOS which roughly takes one single parameter, UniDOS also allows to use it without parameter or with two parameters
Syntax: |DRIVE
List available DOS devices and the current assignation and activation state of the logical drives.11).
Caution, this command is different from |NODE
which lists all the supported drives.
|DRIVE Available devices: SD: Albireo microSD card ZERO: Bytes provider DFA: Floppy disc A Logical drives: >A: SD:GAMES/ACTION/ B: DFA:
Syntax: |DRIVE,”[A|B]“
Identical to AMSDOS:
|DRIVE,”A“
does the same as |A
.|DRIVE,”B“
does the same as |B
.
Syntax: |DRIVE,”[A|B]“,”PATH“
Assign the specified path to the logical drive A:
or B:
.
This path can be absolute or relative to the current assignation of the logical drive to alter.
|DRIVE,"B","SD:GAMES/ACTION"
Syntax: |PATH
Display the current path (the one corresponding to the assignation of the current logical drive).
The returned path is always an explicit path; it means that it is always endings by a ”/“ (or by a ”:“ if we are at the root of the drive) and that it can directly be used as a prefix to concatenate a additional file or directory name.
|PATH SD:GAMES/ACTION/
Syntax: |PATH,@var$
Return the current path in the variable var$
.
var$=SPACE$(255) |PATH,@var$ PRINT vars$ SD:GAMES/ACTION/
Identical to |DIR
RSX from AMSDOS, the only difference is that paths are handled.
Tip: if the path provided as parameter is an explicit path (for instance “SD:”
or “GAMES/”
), then its contents will be listed, just like if the pattern “*.*” were used.
Please note the difference between |DIR,”GAMES“
(“GAMES”
is then a filtering pattern) and |DIR,”GAMES/“
(“GAMES”
is then an explicit directory) :
|DIR,"GAMES" Device SD: [ROOT] GAMES . 51G free
|DIR,"GAMES/" Device SD: [GAMES] DIZZY . IRON . SEYMOUR . 51G free
Identical to |ERA
RSX from AMSDOS, the only difference is that paths are handled.
During deleting operation, a confirmation will be asked to the usr for each protected or hidden file encoutered.
Tip: if the path provided is an explicit directory (name ending with ”/“; for instance “GAMES/”
), then all the files it contains will be automatically deleted (like if the pattern “*.*” was given), but not the direcory itself.
Please note the difference between |ERA,”GAMES“
(“GAMES”
is then a filtering pattern) and |ERA,”GAMES/“
(“GAMES”
is then an explicit directory). In the first case, the directory “GAMES”
and its contents are deleted, in the second case only the contents of the directory “GAMES”
will be deleted.
Always use |ERA
carefully; it is impossible to recover a deleted file or directory.
Identical to |REN
ROM from AMSDOS, the only difference is that paths are handled.
Please note that |REN
can also move files from a directory to another on devices supporting it.supportant.
Syntax: |PROTECT,”path“
Set write protection on files and directories matching the provided path (path can contain wildcards).
Syntax: |UNPROTECT,”path“
Remove write protection from files and directories matching the provided path (path can contain wildcards).
Syntax: |HIDE,”path“
Hide from the catalog files and directories matching the provided path (path can contain wildcards).
Syntax: |SHOW,”path“
Show again in the catalog files and directories matching the provided path (path can contain wildcards).
Syntax: |INFO,”path“
Identical to |DIR
but with a detailled display and also including hidden files.
The output follow this pattern:
SIZE LOAD LOGL ENTRY BASIC .BASphFULLSIZE $LOAD LOGL NTRY BINARY . phFULLSIZE &LOAD LOGL NTRY LINK . phFULLSIZE .LOAD LOGL NTRY ASCII . phFULLSIZE ---- ---- ---- DIR . phDir
Where stand 8 columns which display:
p
: tag for write protection; “*” if protected, empty otherwise.h
: tag for visibility; ”!“ if hidden, empty otherwise.FULLSIZE
: physical size of the file; displayed as 32-bit hexadecimal value.$
for a Basic file.%
for a protected Basic file.&
for a binary file.,
for a symbolic link.LOAD
: loading address of the file; displayed as 16-bit hexadecimal value.LOGL
: logical size of the file; displayed as 16-bit hexadecimal value.NTRY
: execution address of the file; display as 16-bit hexadecimal value.
Syntax: |LIST,”path“
Identical to |DIR
but displays files with their size and last modification date (including hidden files). Protected files are suffixed by “*” and hidden files by ”!“.
|list Device SD: [ROOT] !UNIDOS!.NVM 2K 29-Oct-22 18:43:26 PLAYSA2 . [DIR] 01-Sep-21 15:11:50 PLAYVGM . [DIR] 12-Sep-21 16:28:08 VIEWER .BIN 5K 16-Jun-21 20:15:14 VELUS .LHA 88M 22-Feb-21 19:24:14 PPIWAIT .REF 1K 16-May-21 16:35:50 PPIWAIT .BIN 2K 16-May-21 16:35:50 PPIWAIT .ASM 7K 16-May-21 16:35:50 PPITEST .BAS 2K 16-May-21 16:35:50 FAST .ASM 3K 26-Nov-20 23:35:02 FAIRY . 14K 02-Apr-10 23:24:22 BENCH .BAS 3K 12-Dec-20 15:31:40 01 .MP3 2M 23-Nov-03 08:18:52 VW . [DIR] 28-Aug-21 13:49:06 TECHNIMU. [DIR] 28-Aug-21 13:46:54 STKOS . [DIR] 24-May-21 23:46:48 STKDMA . [DIR] 12-Sep-22 15:20:36 STK . [DIR] 24-Jan-21 13:22:04 SSA-1 . [DIR] 28-Aug-21 13:47:08 SCREENS . [DIR] 30-Oct-21 11:51:04 S+ . [DIR] 16-Sep-02 19:07:04 PAO . [DIR] 06-Oct-22 23:03:20 OFE5 . [DIR] 20-Jul-20 20:11:32 OCP .ORG [DIR] 27-May-21 20:52:16 OCP . [DIR] 03-Apr-21 00:54:44 LARSEN . [DIR] 04-Aug-20 19:40:58 JEUX . [DIR] 18-Oct-22 20:45:52 EQUINOXE. [DIR] 21-Jul-20 18:51:10 DMADEMO . [DIR] 31-Oct-20 18:29:44 DIGITRAK. [DIR] 16-Dec-20 15:24:32 CONTIKI . [DIR] 16-Dec-20 18:10:20 B2F . [DIR] 20-Jul-20 13:39:04 VELUS . [DIR] 23-Aug-22 17:21:30 UNILOAD .APP [DIR] 05-Oct-22 16:21:38 UNILOAD .DEV [DIR] 29-Sep-22 19:30:04 FTP .BAS 1K 16-Sep-22 16:03:02 TEST .BAS 1K 26-Sep-22 15:27:00 02 .MP3 2M 26-Sep-22 23:10:06 TEST .SCR 17K 27-Sep-22 11:20:14 LNK .LNK 1K 06-Oct-22 10:33:46 TEXTINP .BAS 1K 10-Oct-22 17:40:48 C10CPM3 .EMS 25K 11-Oct-22 20:04:18 BANKMAN .BAS 1K 11-Oct-22 21:35:36 BANKMAN .BIN 2K 11-Oct-22 21:35:44 NOVA .BAS 1K 14-Oct-22 10:07:48 SCREEN .BAK 17K 11-Oct-22 00:22:52 SCREEN .SCR 17K 17-Oct-22 13:14:12 D .BAS 1K 17-Oct-22 16:38:20 DATE .BAS 1K 17-Oct-22 18:27:14 PROTEXT . 1K 19-Oct-22 13:51:08 G-000898. [DIR] 01-Oct-22 12:48:36 TOTO .SCR 17K 23-Oct-22 11:23:14 UNITOOLS. [DIR] 24-Oct-22 17:55:20 UNPRO .BAS 1K 25-Oct-22 00:05:32 HEROS .BAS 3K 25-Oct-22 00:44:12 6G free
Syntax: |MAKELINK,”LINK“,”TARGET“
Create a symbolic link named “LINK”
pointing to the target path “TARGET”
.
The target path can be a path to a drive, a directory, a file or even another symbolic link. It do not need to exist at the link creation, only at link reading.
Syntax: |READLINK,”LINK“
Display the target of the symbolic link named “LINK”
.
|READLINK,"SCREENS" UMS:FILES/PICTURES/
Syntax: |READLINK,”LINK“,@var$
Returns the target of the link in the variable var$
.
var$=SPACE$(255) |READLINK,"SCREENS",@var$ PRINT vars$ UMS:FILES/PICTURES/
Syntax: |COPY,”SOURCE“,”DEST“
Copy a file from “SOURCE”
to “DEST”
.
“SOURCE”
and “DEST”
can be paths to any directory of any drive, but with the following considerations:
“SOURCE”
shall be a plain file name (directories and wildcards are not allowed yet).“DEST”
does not exist or is a file then the source file is renamed to this new name during copy (existing file is overwritten).“DEST”
is a directory then the source file is copied inside this directory (keeping its original name).“DEST”
is an explicit directory name (ending with a ”/“) then copy will fail if a file with this name already exists (existing file won't be overwritten), otherwise the source file will be copied inside the direcory (keeping its original name).
Copy of the file “MENU.BAS”
from the path “SD:GAMES/ACTION”
to the path “UMS:”
whilst renaming it to “DISK.BAS”
:
|COPY,"SD:GAMES/ACTION/MENU.BAS","UMS:DISK.BAS"
Copy of the file “MENU.BAS”
from the path “SD:GAMES/ACTION”
to the path “UMS:”
whilst keeping the original name:
|COPY,"SD:GAMES/ACTION/MENU.BAS","UMS:"
Copy of the file “MENU.BAS”
from the path “SD:GAMES/ACTION”
to the path “UMS:COPYOF”
with the option to fail if a file with this name already exists:
|COPY,"SD:GAMES/ACTION/MENU.BAS","UMS:COPYOF/"
Syntax: |FORMAT,”DRIVE:“
This RSX allows you to initialize the drive DRIVE:
.
For instance, |FORMAT,”IDE:“
will format the drive IDE:
by creating a FAT partition on the whole disc.
This RSX displays the installed DOS nodes and their list of supported drives.
Syntax: |NODE
List installed DOS nodes. These can be ROMs of type extension or background. In this later case, if the DOS node allocated some memory, its address will be displayed. ”!“ character marks the DOS node which is handling the non volatile memory.
|NODE ROM 1:NOVA 1.41 nvm, clock ROM 7:UNIDOS 1.50 active ROM 8:FATFS 1.41 inactive ROM 14:UNITOOLS 1.41 active ROM 27:ALBIREO 1.41 active
Syntax: |NODE,”ROM NUMBER“
List drives which can be handled by the provided DOS node ROM number; the result depends of devices detected by the node.
Caution, this command if different from |DRIVE
which is only listing drives which are actually available (which are both detected and with an inserted media).
|NODE,27 ROM 27:ALBIREO 1.41 active SD: MicroSD Card UMS: USB Mass Storage
This RSX allows you to load any kind of file anywhere in memory.
It is similar to the RSX of the same name which is available in Maxam and Utopia ROMs from Arnor Ltd, and has the advantage to allow direct loading in memory of any kind of file, including ASCII files (which is normally impossible from BASIC). Also, it does not allocate the 2K memory buffer like does the BASIC LOAD
command, and it ignores the HIMEM
(which allows to load the file anywhere).
Eventually, this RSX can also be used to open directories, like it can be done with the BASIC LOAD
command; it has the advantage not to generate an error in this case, which could be interesting when writing BASIC programs which are manipulating directories (see annexes for more details).
Syntax: |LOAD,”PATH“
If the path is corresponding to a file of type binary or BASIC, then it will be loaded according to information contained in its header.
If the path is corresponding to an ASCII file, then an error will occur telling that the second parameter (the loading address) shall be given (see bellow).
If the path is corresponding to a directory, then it will be opened like with the BASIC LOAD
command.
Syntax: |LOAD,”PATH“,ADDRESS
If the file is corresponding to a file, whatever its type is, it will be loaded at the provided address.
If the file is corresponding to a directory, then the address is ignored and it will be opened like with the BASIC LOAD
command.
This RSX allows you to save binary files.
It is similar to the RSX of the same name which is available in Maxam and Utopia ROMs from Arnor Ltd, and has the advantage not to allocate the 2K buffer like does the BASIC SAVE
command.
Eventually, this RSX can also be used to create a directory, like it can be done with the BASIC SAVE
command; it has the advantage not to generate an error in this case, which could be interesting when writing BASIC programs which are manipulating directories (see annexes for more details).
Syntax: |SAVE,”EXPLICIT PATH“
Create the directory corresponding to the provided explicit path (an explicit path is a path with an ending ”/“).
Syntax: |SAVE,”PATH“,ADDRESS,LENGTH
Save a binary file from the provided address and with the given size.
Syntax: |SAVE,”PATH“,ADDRESS,LENGTH,EXECUTION
Save a binary file from the provided address, with the given size and by specifying the execution address.
This RSX allows you to save ASCII files.
It is similar to the RSX of the same name which is available in Maxam and Utopia ROMs from Arnor Ltd, and has the advantage not to allocate the 2K buffer like does the BASIC SAVE
command.
Eventually, this RSX can also be used to create a directory, like it can be done with the BASIC SAVE
command; it has the advantage not to generate an error in this case, which could be interesting when writing BASIC programs which are manipulating directories (see annexes for more details).
Syntax: |SAVEA,”EXPLICIT PATH“
Create the directory corresponding to the provided explicit path (an explicit path is a path with an ending ”/“).
Syntax: |SAVEA,”PATH“,ADDRESS,LENGTH
Save a binary file from the provided address and with the given size.
Manage the clock on systems equipped with supported cards.
Display current time and date of the system.
|CLOCK Thu 03-Nov-2022 16:33:56
Syntax: |CLOCK,”[DD-MMM-YYYY] [HH:MM[:SS]]“
Set date and/or time depending on the given parameter.
For instance:
|CLOCK,"03-Nov-2022 16:33:56"
|CLOCK,"03-Nov-2022"
|CLOCK,"16:33"
Modifies the time and date of one or several files or directories.
Syntax: |SETFILEDATE,”PATH“
Set time and date of the matching files and directories to the current time and date (path can contain wildcards).
Syntax: |SETFILEDATE,”PATH“”[DD-MMM-YYYY] [HH:MM[:SS]]“
Set time and date of the matching files and directories to the given time and/or date (path can contain wildcards).
Reboot the system with UniDOS totally disabled. To reenable UniDOS the system will have to be shutdown and restarted.
“.BAK”
file already exists, it is deleted and remplaced“Dir”