Manuel d'utilisation

L'objectif de l'UniDOS est d'ajouter la gestion de nouveaux types de périphériques tout en conservant autant que possible l'ergonomie à laquelle tout le monde est habitué avec les lecteurs de disquettes. Il s'avère aussi de rester compatible avec les logiciels conçus pour n'avoir à gérer que A: et B:, tout en leur permettant de tirer profit des nouveaux périphériques et de leur arborescence.

Gestion des fichiers

Par soucis de compatibilité, l'UniDOS se limite volontairement aux mêmes noms de fichiers que l'AMSDOS. C'est-à-dire que le nom de fichier est limité à 8 caractères, que l'extension est limitée à 3 caractères, et que les caractères autorisés et interdits sont les mêmes. De ce fait, tout programme en fichiers prévu pour l'AMSDOS fonctionnera sans adaptation sous UniDOS et inversement1).

Écriture de fichiers

L'UniDOS gère les fichiers ouverts en écriture comme l'AMSDOS. Ils sont d'abord créés avec un nom temporaire utilisant l'extension “.$$$”2), puis le nom définitif leur est donné à la fermeture du fichier, tout en renommant tout fichier déjà existant avec le même nom en lui attribuant l'extension “.BAK”3).

Tout comme l'AMSDOS, si aucune extension n'est donnée dans le nom de fichier à sauver, une extension automatique est ajoutée selon le type de fichier :

  • “.BAS” dans le cas d'un fichier Basic.
  • “.BIN” dans le cas d'un fichier binaire.
  • “.LNK” dans le cas d'un lien symbolique4).
  • “.   ” dans tous les autres cas.

Lecture de fichiers

Comme l'AMSDOS, l'UniDOS tente automatiquement d'ouvrir les fichiers pour lesquels aucune extension n'est fournie en utilisant des extensions par défaut dans l'ordre suivant :

  1. “.   ”, fichier avec extension vide.
  2. “.BAS”, fichier Basic.
  3. “.BIN”, fichier binaire.
  4. “.LNK”, lien symbolique5).

Gestion des lecteurs

Afin d'assurer la prise en charge de nouveaux lecteurs associés à des disques durs ou des ports USB, plutôt que d'ajouter des lettres, souvent cryptiques et nécessitant de modifier les programmes existants pour les prendre en charge, l'UniDOS introduit les notions de lecteurs logiques et lecteurs physiques.

L'accès aux fichiers peut se faire indifféremment via un nom de lecteur logique ou physique.

Lecteurs logiques

Les lecteurs logiques demeurent les lecteurs traditionnels de l'AMSDOS : A: et B:. Mais ce qui change avec l'UniDOS, c'est que les lecteurs A: et B: sont reconfigurables et peuvent devenir des alias vers n'importe quel chemin de n'importe quel lecteur physique6).

Ainsi, le lecteur A: peut se retrouver assigné au lecteur physique de votre disque dur tandis que le lecteur B: pourrait être le lecteur 3“ interne de votre CPC.

Assignation des lecteurs logiques

L'assignation des lecteurs logiques se fait dynamiquement, soit directement via la commande LOAD du Basic, soit avec la RSX |DRIVE utilisée avec deux paramètres au lieu d'un seul.

Faire pointer le lecteur logique courant vers le lecteur physique SD: :

LOAD"SD:"

Faire pointer le lecteur logique courant vers le chemin “SD:JEUX/AVENTURE” :

LOAD"SD:JEUX/AVENTURE"

Faire pointer le lecteur logique A: vers le chemin “SD:JEUX/AVENTURE” :

|DRIVE,"A","SD:JEUX/AVENTURE"

La RSX |DRIVE sans paramètre permet de lister les lecteurs physiques disponibles sur le CPC (avec leur description) ainsi que l'assignation courante des lecteurs logiques.

|DRIVE

Available DOS devices:
   DFA: Floppy Disc A
    SD: MicroSD Card
  ZERO: Bytes provider

Logical drives:
 >A: SD:JEUX/AVENTURE/
  B: DFA:
Persistance des lecteurs logiques

Il est important de noter de la configuration des lecteurs logiques est persistante.

Résistent ainsi au redémarrage et à la mise hors tension du CPC :

  • Le lecteur logique courant (A: ou B:).
  • L'assignation de chaque lecteur logique.

Outre le fait que cette persistance est très pratique pour l'utilisateur, elle permet aussi à tous les programmes réinitialisant manuellement les ROMs de fonctionner de manière transparente (et même les programmes qui ne fonctionnaient que sur le lecteur A: sous AMSDOS/ParaDOS se mettront à fonctionner indifféremment sur A: ou B: grâce à l'UniDOS).

Par défaut, avant toute modification par l'utilisateur, A: est le lecteur logique actif et il est assigné au chemin DFA: ; le lecteur logique B: est quant à lui assigné au chemin DFB:.

À noter que certains nœuds DOS peuvent toutefois modifier ces valeurs par défaut ; veuillez vous référer à leur documentation.

Si l'utilisateur maintient la touche CONTROL appuyée pendant le démarrage du CPC, la persistance des lecteurs logiques sera réinitialisée aux valeurs par défaut7). La persistance est parfois également remise à zéro en cas de mise à jour de la ROM UniDOS. Lorsque cela survient, un signal sonore est émis.

Lecteurs physiques

Les lecteurs physiques sont donc les lecteurs associés à un périphérique DOS donné. Il s'agit de noms pouvant comporter jusqu'à 8 caractères et terminés par un « : ». Ce sont les nœuds DOS qui créent ces lecteurs (soit de façon statique, soit de façon dynamique).

Lecteurs physiques intégrés à l'UniDOS

Il existe deux lecteurs physiques intégrés qui existent automatiquement à partir du moment où la ROM AMSDOS ou ParaDOS a été trouvée par l'UniDOS. Il s'agit des lecteurs associés aux lecteurs de disquettes interne et externe.

Il s'agit de :

  • DFA: pour le lecteur de disquettes interne.
  • DFB: pour le lecteur de disquettes externe.

Pour charger un fichier sur le lecteur interne8), on pourra écrire :

LOAD"DFA:MONFICH"

De plus, si une interface cassette est détectée, UniDOS mettra aussi à disposition:

  • TAPE: pour accéder aux cassettes via un lecteur standard.
Lecteurs physiques fournis par les nœuds DOS

Chaque nœud DOS peut apporter jusqu'à 8 nouveaux lecteurs physiques au système. Chaque lecteur est plus ou moins sophistiqué (amovible ou non ; supportant les répertoires ou non ; fonctionnant uniquement en lecture, uniquement en écriture, dans les deux cas ; permettant les accès indexés ou non, etc..).

Reportez-vous au manuel des nœuds DOS pour connaître la liste des lecteurs physiques qu'il ajoute ainsi que leurs propriétés.

Gestion des chemins

L'UniDOS introduit le support des répertoires sur tous les médias le supportant. L'accès aux répertoires et aux fichiers s'y trouvant se fait de manière standard, similaire à ce que vous pouvez trouver sur les autres systèmes.

La syntaxe générale d'un chemin est la suivante :

LECTEUR:NIVEAU-1/NIVEAU-2/.../NIVEAU-N/FICHIER

Le nom du lecteur se situe avant le « : », il peut être indifféremment un nom de lecteur logique ou physique ; les noms des répertoires se trouvent ensuite, séparés par des « / » pour chaque niveau. Le nombre maximum de niveaux supporté par l'UniDOS est actuellement de 6.

Les noms des répertoires sont de la même forme que les noms de fichiers, 8 lettres pour le nom et 3 pour l'extension. Il offrent également les mêmes attributs, de sorte que, tout comme les fichiers, les répertoires peuvent être protégés en écriture et/ou cachés.

À noter que pour conserver la compatilité AMSDOS, le numéro de « USER » peut être fourni avant un nom d'un lecteur logique, de sorte que le chemin “5A:REP1/REP2/FICHIER” est valide. Si A: ne pointe pas vers un lecteur physique géré par l'AMSDOS, le « USER » est alors silencieusement ignoré.

Changement de répertoire

Les lecteurs logiques A: et B: sont chacun assignés à un lecteur physique et à un chemin. Le choix du lecteur logique courant se fait avec les RSX traditionnelles |A et |B.

Le lecteur physique et le chemin associés au lecteur logique courant se change simplement en utilisant la commande LOAD. Pour se placer dans le sous-répertoire “AVENTURE” du répertoire “JEUX” du lecteur SD: on tapera :

LOAD"SD:JEUX/AVENTURE"

On peut aussi utiliser des chemins relatifs, ainsi la séquence suivante est équivalente à commande ci-dessus :

LOAD"SD:"
LOAD"JEUX"
LOAD"AVENTURE"

On peut retourner à la racine du lecteur physique courant avec :

LOAD":"

On peut se placer dans le répertoire “JEUX” à la racine du lecteur courant avec :

LOAD":JEUX"

On peut se placer dans le répertoire “OUTILS” du niveau supérieur avec :

LOAD"/OUTILS"

Tandis que pour remonter de deux niveaux on utilisera logiquement :

LOAD"//DEMOS"

Toutes ces commandes vont ouvrir un répertoire si la cible en est un. Dans le cas où la cible est un fichier, alors le fichier sera ouvert.

Il est possible de forcer l'ouverture d'un répertoire, afin que la commande échoue si la cible est un fichier. Ceci se fait en ajoutant simplement un « / » en fin de chemin. Ainsi, la commande suivante échouera si “DEMOS” est un fichier :

LOAD"DEMOS/"

Création de répertoire

De façon similaire à la commande LOAD, ajouter un « / » final au nom fourni à la commande SAVE permet de créer un répertoire au lieu d'un fichier.

Pour créer un répertoire “TIROIR” dans le chemin courant on tapera :

SAVE"TIROIR/"

Accès aux fichiers

Les chemins peuvent être utilisés dans toutes les commandes acceptant traditionnellement des noms de fichiers simples. C'est-à-dire que vous pouvez fournir des chemins aux commandes RUN, LOAD, SAVE, etc. ; mais aussi aux RSX |ERA, |REN, |DIR, etc..

Tous ces mécanismes sont génériques de sorte que :

  • LOAD”LANCEUR“ chargera le programme “LANCEUR” situé dans le chemin courant du lecteur courant.
  • RUN”:DISK“ exécutera le programme “DISK” situé à la racine du disque courant.
  • |COPY,”UMS:CAPTURE.SCR“,”:ECRANS/“ copiera le fichier “CAPTURE.SCR” situé à la racinue du lecteur UMS: vers le répertoire “ECRANS” situé à la racine du lecteur courant (voir la section dédiée à la RSX |COPY pour plus d'informations).
  • |DIR,”ECRANS/*.*“ listera tous les fichiers situés dans le répertoire “ECRANS” du niveau courant du lecteur courant (voir la section dédiée à la RSX |DIR pour plus d'informations).

À noter que lorsqu'un nom de lecteur logique est utilisé, le chemin exprimé est relatif au chemin courant du lecteur logique. Par exemple, si le lecteur logique A: est assigné à “SD:JEUX” alors on pourra charger le programme “MENU” du répertoire “SD:JEUX/AVENTURE” ainsi :

LOAD"A:AVENTURE/MENU"

Les fichiers sans noms tels qu'ils peuvent exister sur les lecteurs de type « flux » (comme la cassette ou un lecteur série) s'accèdent via le caractère . (point).

RUN"TAPE:."

Catalogue

Le catalogue de fichiers du répertoire courant s'obtient naturellement avec la commande historique CAT. Le résultat est similaire à celui de l'AMSDOS, à la différence que les tailles sont affichées en quatre chiffres au lieu de trois9), et que l'unité utilisée est dynamique.

Si la taille d'un fichier ou de l'espace libre dépasse 1000Kio, alors elle sera exprimée en Mio, si elle dépasse 1000Mio les Gio seront utilisés ; et au-delà de 1000Gio, des Tio seront affichés. Dans le cas des répertoires, un indicateur [DIR] est affiché à la place de la taille.

En entête de catalogue, le nom du répertoire courant est affiché entre crochets à la suite du nom du lecteur :

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  JEUX    .    [DIR]  PAO     .    [DIR]  TEST    .AVI    1G
DIGITRAK.    [DIR]  LARSEN  .    [DIR]  SCREENS .    [DIR]  

  51G free

Comme le fait l'AMSDOS, le tri est fait par ordre alphabétique et par colonne, le nombre de colonnes dépendant de la largeur de la fenêtre courante. L'affichage est en outre interruptible de la même manière que la commande LIST du Basic : presser une fois ESC met l'opération en pause, une deuxième fois l'interrompt ; ceci est particulièrement pratique lors de l'affichage de longs catalogues.

Le nombre maximum de fichiers affichables via la commande CAT est de 146, au-delà le message “Other files exist” sera affiché à la fin du catalogue pour vous indiquer que la totalité des fichiers n'a pas pu être affichée10). Les RSX |DIR et |INFO n'ont pas cette limitation et sont toujours capables d'afficher la totalité des fichiers présents.

Les CAT'arts AMSDOS continueront d'être affichés normalement depuis les disquettes, mais des adaptations seront sans doute nécessaire pour qu'ils continuent de fonctionner normalement une fois les fichiers copiés sur un autre support.

À noter que la RSX |DIR se comporte quant à elle exactement comme avec l'AMSDOS (voir la section dédiée à la RSX |DIR pour plus d'informations), les fichiers étant affichés sans tri et sans leur taille ; ce qui permet un affichage en cinq colonnes en pleine largeur mode 2, mais ne permet pas de distinguer les fichiers des répertoires :

|DIR

Device SD: [ROOT]

TEST    .AVI   BRKPOINT.AVI   !UNIDOS!.NVM   BENCH   .BAS   LSUSB   .BAS 
FAIRY   .      STKOS   .      STKDMA  .      STK     .      SCREENS .    
PAO     .      OFE5    .      OCP     .      LARSEN  .      JEUX    .    
EQUINOXE.      DMADEMO .      DIGITRAK.      B2F     .    

  51G free

En complément, l'UniDOS ajoute une RSX |INFO similaire à cette de la ROM Utopia d'Arnor Ltd. et qui permet d'obtenir des informations détaillées sur les fichiers (voir la section dédiée à la RSX |INFO pour plus d'informations) :

|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
JEUX    .     Dir
EQUINOXE.     Dir
DMADEMO .     Dir
DIGITRAK.     Dir
B2F     .     Dir

Liens symboliques

L'UniDOS offre également le support des liens symboliques.

Les liens symboliques se créent avec la RSX |MAKELINK dont vous trouverez les informations détaillées dans la section dédiée. Une fois un lien créé, toute lecture du lien sera automatiquement redirigée vers la cible de celui-ci.

Les liens symboliques peuvent avoir pour cible n'importe quel fichier, répertoire, ou même lien, de n'importe quel lecteur physique ou logique. En outre, la cible peut-être référencée avec un chemin absolu ou relatif. La cible du lien n'a pas forcément besoin d'exister au moment où le lien est créé, ce qui permet d'avoir des liens dynamiques très pratiques lorsqu'ils sont utilisés sur des médias amovibles telles que des clef USB ou des disquettes.

Les liens symboliques fonctionnent également vers et depuis les disquettes, même si l'AMSDOS lui-même ne saura pas les gérer.

Par défaut, les liens symboliques sont créés et chargés avec l'extension ”.LNK“ mais n'importe quelle extension peut être spécifiée. Tout comme les fichiers et les répertoires, un lien symbolique peut être protégé en écriture et/ou caché. Effacer un lien symbolique supprime le lien lui-même et non sa cible.

RSX

Toutes les RSX proposées par l'UniDOS disposent d'une redirection automatique. Cela signifie que si les RSX de l'UniDOS sont appelées alors que celui-ci n'est pas activé, c'est à la place la RSX correspondante de la ROM AMSDOS qui sera appelée.

La plupart des RSX offertes par l'UniDOS sont identiques à celles de l'AMSDOS, avec parfois davantage de fonctionnalités. Elles sont en outre toutes interruptibles de la même manière que la commande LIST du Basic : presser une fois ESC met l'opération en pause, une deuxième fois l'interrompt ; ceci est particulièrement pratique lors de l'affichage de longs catalogues.

À noter que quelques unes des RSX additionnelles ne sont pas actuellement compatibles avec les disquettes gérées par l'AMSDOS : c'est le cas de |PROTECT, |UNPROTECT, |HIDE, |SHOW et |INFO.

|DOS

Cette RSX active l'UniDOS et la prise en charge de tous les nœuds DOS. C'est normalement le cas par défaut, mais si l'UniDOS a été désactivé par l'usage de |DISC ou |TAPE alors cette RSX permet de le réactiver.

Il est important de noter que l'état d'activation de l'UniDOS fait partie des informations de persistance. Cela signifie qu'une fois l'UniDOS désactivé, il le restera même après un redémarrage du CPC.

|DISC

Cette RSX active l'AMSDOS (à la place de l'UniDOS ou de la gestion cassette). Voir |DOS pour plus de détails.

Les variantes |DISC.IN et |DISC.OUT n'activent l'AMSDOS que pour les fichiers d'entrée ou de sortie (leur présence est historique est leur usage limité au mixage des fichiers d'entrée et de sortie avec la gestion cassette uniquement ; le mélange des fichiers d'entrée et de sortie entre l'UniDOS et l'AMSDOS est interdit).

|TAPE

Cette RSX active la gestion cassette (à la place de l'UniDOS ou de l'AMSDOS). Voir |DOS pour plus de détails.

Les variantes |TAPE.IN et |TAPE.OUT n'activent la gestion cassette que pour les fichiers d'entrée ou de sortie.

|A

Active le lecteur logique A: en tant que lecteur courant.

L'assignation courante du lecteur A: est alors utilisée (et modifiable) par les commandes de manipulation de fichiers et de répertoires.

|B

Active le lecteur logique B: en tant que lecteur courant.

L'assignation courante du lecteur B: est alors utilisée (et modifiable) par les commandes de manipulation de fichiers et de répertoires.

|DRIVE

À la différence de la commande |DRIVE de l'AMSDOS qui ne fonctionne qu'avec un seul paramètre, avec l'UniDOS elle peut aussi être utilisée sans paramètre ou avec deux.

Sans paramètre

Syntaxe : |DRIVE

Liste les périphériques DOS disponibles et l'état d'assignation et d'activation des lecteurs logiques11).

Attention, cette commande est différente de |NODE qui liste tous les lecteurs effectivement supportés.

|DRIVE

Available DOS devices:
   DFA: Floppy Disc A
    SD: MicroSD Card
  ZERO: Bytes provider

Logical drives:
 >A: SD:JEUX/AVENTURE/
  B: DFA:
Avec un paramètre

Syntaxe : |DRIVE,”[A|B]“

Identique au fonctionnement de l'AMSDOS :

  • |DRIVE,”A“ est équivalent à |A.
  • |DRIVE,”B“ est équivalent à |B.
Avec deux paramètres

Syntaxe : |DRIVE,”[A|B]“,”CHEMIN“

Assigne le chemin spécifié au lecteur logique A: ou B:.

Ce chemin peut-être absolu, ou relatif à l'assignation courante du lecteur logique à modifier.

|DRIVE,"B","SD:JEUX/AVENTURE"

|PATH

Sans paramètre

Syntaxe : |PATH

Affiche le chemin courant (celui-ci correspond à l'assignation du lecteur logique courant).

Le chemin renvoyé est un chemin explicite ; cela signifie qu'il se termine toujours par un « / » (ou par un « : » si on est à la racine du lecteur) et qu'il peut être directement utilisé comme préfixe pour y concaténer un nom de fichier ou de répertoire additionnel.

|PATH
SD:JEUX/AVENTURE/
Avec un paramètre

Syntaxe : |PATH,@var$

Retourne le chemin courant dans la variable var$.

var$=SPACE$(255)
|PATH,@var$
PRINT vars$
SD:JEUX/AVENTURE/

|DIR

Identique à la RSX |DIR de l'AMSDOS, à la seule différence que les chemins sont gérés.

Astuce : si le chemin fourni en paramètre est un répertoire explicite (par exemple “SD:” ou “JEUX/”), alors tous les fichiers qu'il contient seront automatiquement listés, comme si le joker « *.* » avait été fourni.

Notez la différence entre |DIR,”JEUX“ (“JEUX” est alors un motif de filtrage) et |DIR,”JEUX/“ (“JEUX” est alors un répertoire explicite) :

|DIR,"JEUX"

Device SD: [ROOT]

JEUX    .    

  51G free
|DIR,"JEUX/"

Device SD: [JEUX]

DIZZY   .      IRON    .    
SEYMOUR .    

  51G free

|ERA

Identique à la RSX |ERA de l'AMSDOS, à la seule différence que les chemins sont gérés.

Pendant l'effacement, une confirmation est demandée à l'utilisateur pour chaque répertoire, fichier protégé et fichier caché rencontré.

Astuce : si le chemin fourni en paramètre est un répertoire explicite (nom qui se termine par un « / » ; par exemple “JEUX/”), alors tous les fichiers qu'il contient seront automatiquement effacés (comme si le joker « *.* » avait été fourni), mais pas le répertoire lui-même.

Notez la différence entre |ERA,”JEUX“ (“JEUX” est alors un motif de filtrage) et |ERA,”JEUX/“ (“JEUX” est alors un répertoire explicite). Dans le premier cas le répertoire “JEUX” et tout ce qu'il contient sera effacé, dans le second cas seulement le contenu du répertoire “JEUX” sera effacé.

Soyez toujours prudents avec |ERA ; il est impossible de récupérer un fichier ou un répertoire effacé.

|REN

Identique à la RSX |REN de l'AMSDOS, à la seule différence que les chemins sont gérés.

À noter que |REN permet également de déplacer les fichiers d'un répertoire à l'autre sur les périphériques le supportant.

|PROTECT

Syntaxe : |PROTECT,”CHEMIN“

Protège en écriture les fichiers et répertoires correspondants au chemin fourni (le chemin peut utiliser des jokers).

|UNPROTECT

Syntaxe : |UNPROTECT,”CHEMIN“

Retire la protection en écriture des fichiers et répertoires correspondants au chemin fourni (le chemin peut utiliser des jokers).

|HIDE

Syntaxe : |HIDE,”CHEMIN“

Cache du catalogue les fichiers et répertoires correspondants au chemin fourni (le chemin peut utiliser des jokers).

|SHOW

Syntaxe : |SHOW,”CHEMIN“

Montre à nouveau dans le catalogue les fichiers et répertoires correspondants au chemin fourni (le chemin peut utiliser des jokers).

|INFO

Syntaxe : |INFO,”CHEMIN“

Fonctionne de façon identique à |DIR mais affiche une sortie détaillée, et incluant également les fichiers cachés.

La sortie suit le motif suivant pour chaque ligne :

              SIZE      LOAD LOGL ENTRY
BASIC   .BASphFULLSIZE $LOAD LOGL NTRY
BINARY  .   phFULLSIZE &LOAD LOGL NTRY
LINK    .   phFULLSIZE .LOAD LOGL NTRY
ASCII   .   phFULLSIZE  ---- ---- ----
DIR     .   phDir

Où on trouve 8 colonnes avec le contenu qui suit :

  1. Nom du fichier ou du répertoire.
  2. p : marqueur de protection en écriture ; « * » si protégé, vide sinon.
  3. h : marqueur de visibilité ; « ! » si caché, vide sinon.
  4. FULLSIZE : taille physique du fichier en 32 bits hexadécimal.
  5. Type du fichier :
    • $ pour un fichier Basic.
    • & pour un fichier binaire.
    • , pour un lien symbolique.
    • Vide pour un fichier ASCII12) ou un répertoire13).
  6. LOAD : adresse de chargement en 16 bits hexadécimal.
  7. LOGL : taille logique du fichier en 16 bits hexadécimal.
  8. NTRY : adresse d'exécution du fichier en 16 bits hexadécimal.

Syntaxe : |MAKELINK,”LIEN“,”CIBLE“

Crée un lien symbolique nommé “LIEN” pointant vers le chemin cible “CIBLE”.

Le chemin cible peut être un chemin vers un lecteur, un répertoire, un fichier ou même un autre lien symbolique. Elle n'a pas besoin d'exister au moment de la création, uniquement au moment de la lecture du lien.

Avec un paramètre

Syntaxe : |READLINK,”LIEN“

Affiche la cible du lien symbolique nommé “LIEN”.

|READLINK,"SCREENS"
UMS:FICHIERS/ECRANS/
Avec deux paramètres

Syntaxe : |READLINK,”LIEN“,@var$

Retourne la cible du lien dans la variable var$.

var$=SPACE$(255)
|READLINK,"SCREENS",@var$
PRINT vars$
UMS:FICHIERS/ECRANS/

|COPY

Syntaxe : |COPY,”SOURCE“,”DEST“

Copie le fichier depuis “SOURCE” vers “DEST”.

“SOURCE” et “DEST” peuvent être des chemins vers n'importe quel répertoire de n'importe quel lecteur mais avec les restrictions suivantes :

  • “SOURCE” doit être un nom de fichier (les jokers ne sont pas autorisés pour le moment).
  • Si “DEST” n'existe pas ou qu'il correspond à un nom fichier, alors le fichier source est renommé vers ce nom lors de la copie (si un fichier existait avec ce même nom, il sera écrasé).
  • Si “DEST” est un nom de répertoire, alors le fichier source est copié vers ce répertoire en conservant son nom originel.
  • Si “DEST” est un nom de répertoire explicite (terminé par un « / ») alors la coupie échouera si un fichier avec ce nom existe déjà, sinon le fichier source est copié vers ce répertoire en conservant son nom originel.

Copie du fichier “MENU.BAS” à partir du chemin “SD:JEUX/AVENTURE” vers le chemin “UMS:” en le renommant en “DISK.BAS” :

|COPY,"SD:JEUX/AVENTURE/MENU.BAS","UMS:DISK.BAS"

Copie du fichier “MENU.BAS” à partir du chemin “SD:JEUX/AVENTURE” vers le chemin “UMS:” en conservant son nom :

|COPY,"SD:JEUX/AVENTURE/MENU.BAS","UMS:"

Copie du fichier “MENU.BAS” à partir du chemin “SD:JEUX/AVENTURE” vers le chemin “UMS:COPIE” en échouant si un fichier avec ce nom existe déjà:

|COPY,"SD:JEUX/AVENTURE/MENU.BAS","UMS:COPIE/"

|FORMAT

Syntaxe : |FORMAT,”LECTEUR:“

Cette RSX permet d'initialiser le lecteur LECTEUR:.

Par exemple, |FORMAT,”IDE:“ va formater le disque IDE: en y créant une partition FAT qui occupera tout l'espace disponible.

|NODE

Cette RSX permet de lister les nœuds DOS installés et d'obtenir des informations sur ceux-ci.

Sans paramètre

Syntaxe : |NODE

Liste les nœuds DOS installés. Ceux-ci peuvent être des ROMs de type extension ou background. Dans ce dernier cas, si le noeud DOS a alloué de la mémoire elle sera indiquée. Le point d'exclamation indique le nœud DOS ayant pris en charge la gestion de la mémoire non volatile.

|NODE
ROM  1:NOVA             0.10!extension
ROM  7:UNIDOS           1.32 back &A700
ROM  8:FATFS            1.21 background
ROM 27:ALBIREO          1.20 extension
ROM 28:ZERO             1.10 extension
Avec un paramètre

Syntaxe : |NODE,”NUMÉRO DE ROM“

Liste des lecteurs qui peuvent être pris en charge par le nœud indiqué ; le résultat est fonction des périphériques détectés par le nœud.

Attention, cette commande est différente de |DRIVE qui ne liste que les lecteurs effectivement disponibles (c'est-à-dire qui sont détectés mais aussi dans lesquels un média est inséré).

|NODE,27
ROM  5:ALBIREO          1.20 extension
    SD: MicroSD Card
   UMS: USB Mass Storage

|LOAD

Cette RSX permet de charger un fichier de type quelconque à n'importe quelle adresse en mémoire.

Elle est similaire à la RSX du même nom disponible dans les ROMs Maxam et Utopia d'Arnor Ltd et a l'avantage de permettre le chargement direct en mémoire de tout type de fichier, y compris les fichiers de type ASCII (chose normalement impossible en BASIC), de ne pas allouer de tampon de 2K comme le fait la commande LOAD du BASIC, et d'ignorer le HIMEM (ce qui permet le chargement à n'importe quelle adresse).

Accessoirement, cette RSX permet aussi d'ouvrir un répertoire, comme avec la commande LOAD du BASIC, mais sans générer de code d'erreur ; ce qui évite l'interruption du programme BASIC (voir les Annexes pour plus de détails).

Avec un paramètre

Syntaxe : |LOAD,”CHEMIN“

Si le chemin correspond à un fichier de type binaire ou BASIC, alors celui-ci sera ouvert à l'adresse indiquée dans son entête.
Si le chemin correspond à un fichier ASCII, alors une erreur sera remontée indiquant que le deuxième paramètre (l'adresse de chargement) doit être fourni (voir ci-après).
Si le chemin correspond à répertoire, alors celui-ci sera ouvert comme avec la commande LOAD du BASIC.

Avec deux paramètres

Syntaxe : |LOAD,”CHEMIN“,ADRESSE

Si le chemin correspond à un fichier, quel que soit son type, celui-ci sera chargé à l'adresse fournie.
Si le chemin correspond à un répertoire, alors l'adresse est ignorée est celui-ci sera ouvert comme avec la commande LOAD du BASIC.

|SAVE

Cette RSX permet de sauver un fichier de type binaire.

Elle est similaire à la RSX du même nom disponible dans les ROMs Maxam et Utopia d'Arnor Ltd et a l'avantage de ne pas allouer de tampon de 2K comme le fait la commande SAVE du BASIC.

Accessoirement, cette RSX permet aussi de créer un répertoire, comme avec la commande SAVE du BASIC, mais sans générer de code d'erreur ; ce qui évite l'interruption du programme BASIC (voir les Annexes pour plus de détails).

Avec un paramètre

Syntaxe : |SAVE,”CHEMIN EXPLICITE“

Crée le répertoire correspondant au chemin explicite fourni (pour rappel, un chemin explicite est un chemin qui se termine par un « / »).

Avec trois paramètres

Syntaxe : |SAVE,”CHEMIN“,ADRESSE,LONGUEUR

Sauve un fichier binaire depuis l'adresse et avec la taille indiquées.

Avec quatre paramètres

Syntaxe : |SAVE,”CHEMIN“,ADRESSE,LONGUEUR,EXÉCUTION

Sauve un fichier binaire depuis l'adresse et avec la taille indiquées et en spécifiant l'adresse d'exécution.

|SAVEA

Cette RSX permet de sauver un fichier de type ASCII.

Elle est similaire à la RSX du même nom disponible dans les ROMs Maxam et Utopia d'Arnor Ltd.

Accessoirement, cette RSX permet aussi de créer un répertoire, comme avec la commande SAVE du BASIC, mais sans générer de code d'erreur ; ce qui évite l'interruption du programme BASIC (voir les Annexes pour plus de détails).

Avec un paramètre

Syntaxe : |SAVEA,”CHEMIN EXPLICITE“

Crée le répertoire correspondant au chemin explicite fourni (pour rappel, un chemin explicite est un chemin qui se termine par un « / »).

Avec trois paramètres

Syntaxe : |SAVEA,”CHEMIN“,ADRESSE,LONGUEUR

Sauve un fichier ASCII depuis l'adresse et avec la taille indiquées.

1)
sous réserve bien sûr que ce programme utilise proprement le système d'exploitation et qu'il ne fasse pas de manipulations inavouables directement depuis la ROM
2)
sauf sur les lecteurs qui se déclarent comme étant de type « flux »
3)
si un fichier “.BAK” existait déjà, il sera effacé et remplacé
4) , 5)
nouvelle fonctionnalité spécifique à l'UniDOS
6)
pour ceux qui connaissent, cette notion existait déjà de manière moins aboutie dans The Rodos System de Romantic Robot
7)
un signal sonore se fera entendre pour signifier cette remise à zéro
8)
indépendamment de la configuration des lecteurs logiques
9)
il n'y a donc que deux espaces au lieu de trois entre les colonnes
10)
seuls les 146 premiers par ordre alphabétique sont alors affichés
11)
le symbole « > » précède le lecteur logique actif
12)
dans ce cas les colonnes suivantes ne sont pas renseignées
13)
dans ce cas “Dir” est affiché à la place des colonnes suivantes