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

Nœud DOS Albireo

Le nœud Albireo supporte la carte Albireo de PulkoTronics et apporte les lecteurs suivants de :

  • SD: lecteur de carte MicroSD intégré.
  • UMS: périphérique USB de sockage de masse connecté (clef USB, disque dur, etc.).

Pour charger un fichier sur la carte MicroSD9) on pourra écrire :

LOAD"SD:MONREP/MONFICH"

Le nœud Albireo apporte aussi une gestion de mémore non volatile donc l'UniDOS a besoin pour fonctionner. Le contenu de la mémoire non volatile de l'UniDOS est stocké dans un fichier nommé ”!UNIDOS!.NVM“ placé à la racine de la carte MicroSD.

Le nœud Albireo modifie également la valeur par défaut des lecteurs logiques. Lorsque la persistance est remise à zéro, le nœud Albireo assigne le lecteur A: au chemin SD: et le lecteur B: au chemin UMS:.

Important : assurez-vous que votre carte MicroSD ainsi que vos périphériques de stockage USB sont formatés en fat32 (ni le ntfs ni les autres types de fat ne sont supportés).

Nœud DOS Zero

Le nœud Zero, qui est principalement là à titre d'exemple, apporte le lecteur suivant :

  • ZERO: fournisseur de fichiers « vides ».

Ce lecteur ne fonctionne qu'en lecture et permet de gérer à la volée des fichiers de taille quelconque et de contenu uniforme selon le nom de fichier utilisé. Par exemple, charger un fichier “123.75” va fournir un fichier de 123 octets ayant comme valeur 7510).

Attention, les fichiers ainsi générés sont des fichiers ASCII11), vous pourrez par exemple les charger depuis Protext (INSERT 20.32 va insérer par exemple 20 espaces12) dans votre fichier en cours d'édition) ou via l'incontournable |LOAD de la ROM Utopia d'Arnor Ltd., mais pas directement depuis le Basic.

Autres nœuds DOS

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

Gestion des chemins

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“ chargement 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"

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 trois13), 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ée14). 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 logiques15).

|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 ne permet pas pour le moment de déplacer les fichiers d'un répertoire à l'autre.

|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 ASCII16) ou un répertoire17).
  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 “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 ce nom correspond à un fichier, 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 le répertoire n'existe pas.

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

Annexes

Liste des codes d'erreur

La commande DERR du Basic retourne le dernier code d'erreur rencontré lors de l'utilisation d'une commande de lecture ou d'écriture de fichier18). L'UniDOS utilise les mêmes codes d'erreur que l'AMSDOS, et comme avec l'AMSDOS, le bit 7 indique si l'erreur a déjà été reportée ou non, et le bit 6 s'il s'agit d'une erreur bas niveau19).

Toutefois, l'UniDOS introduit quelques codes d'erreurs nouveaux dont voici la description :

Erreur UniDOS Valeur DERR Source de l'erreur
23 151 (128+23) Le chemin correspond à un répertoire.
24 152 (128+24) Le fichier n'est pas un lien symbolique.
25 153 (128+25] Le type d'accès demandé n'est pas supporté par le lecteur physique.
27 155 (128+27) Le chemin correspond à un fichier alors qu'un répertoire était attendu.

LOAD/SAVE sur des répertoires

Lorsque l'on utilise la commande LOAD ou SAVE pour changer le répertoire courant ou en créer un nouveau, celle-ci remonte en fait une erreur silencieuse (sans message affiché) afin d'empêcher le Basic de charger quoi que ce soit (puisque aucun fichier n'est effectivement en jeu).

Si ceci n'a aucune conséquence en saisie directe, cette remontée d'erreur va provoquer l'interruption de tout programme Basic faisant un LOAD ou un SAVE sur un répertoire, de la même manière que lorsqu'un fichier n'est pas trouvé ou de mauvais type, à la seule différence qu'aucun message n'est affiché. Dans le cadre d'un programme interactif, vous pouvez simplement intercepter cette erreur avec la commande ON ERROR GOTO afin de déterminer si l'utilisateur a sélectionné un répertoire, un fichier ou si une erreur est survenue.

Mais vous devez aussi prendre cet aspect en considération dans le cas de n'importe quel programme Basic manipulant les répertoires. Si vous voulez simplement ignorer l'erreur silencieuse provoquée lors de l'ouverture des répertoires, voici un exemple :

10 ON ERROR GOTO 20:GOTO 100
20 IF ERR=32 AND DERR=151 THEN RESUME NEXT ELSE END
100 '
110 LOAD"SD:JEUX/AVENTURE/"
120 PRINT"Le chemin courant est :":|PATH

Compatiblité

UniDOS est, grâce à sa gestion des chemins et des lecteurs, fortement compatible avec les logiciels prévus pour l'AMSDOS. Ainsi, UniDOS est déjà capable de faire tourner nombre de logiciels de référence sur n'importe quel support alors qu'ils n'étaient initialement prévus que pour gérer les disquettes. La quasi-totalité des jeux disponibles en versions en fichiers tourneront également sous UniDOS.

Attention toutefois, l'UniDOS n'est pas compatible CP/M ; les programmes prévus pour être lancé via la RSX |CPM ne fonctionneront toujours que sur disquette.

Liste non exhaustive de logiciels compatibles

Quoique éligibles à la compatiblité UniDOS, certains programmes de la liste ci-dessous ne fonctionneront que si vous êtes dans le cadre d'une installation optimale20). À noter aussi que quasiment tous les jeux et démos disponibles en version fichier21) devraient fonctionner dans cette configuration.

  • AMX Pagemaker,
  • Contiki,
  • Digitracker22),
  • Maxam,
  • Orgams,
  • Protext,
  • Protracker23),
  • Soundtracker DMA,
  • Starkos24),
  • The Advanced OCP Art Studio,
  • The Soundtrakker25),
  • Utopia (la plupart des outils),

Liste non exhaustive de logiciels incompatibles

Outre les programmes prévus pour fonctionner exclusivement sur disquette et utilisant des « trackloads », certains programmes d'apparence « system friendly » ne fonctionne pas encore26).

  • DES,
  • Oxford PAO.

Actuces

Vous trouverez ici quelques astuces et conseils pour utiliser au mieux l'UniDOS avec les applications initialement prévues pour l'AMSDOS et qui ne savent nativement gérer ni les répertoires ni le choix du lecteur courant (en dehors de A: et B:).

La plupart des logiciels tels que « The Advanced OCP Art Studio », « Starkos » ou « The Soundtrakker » filtrent les noms de fichiers en fonction de leur extension afin de ne vous montrer que ceux qui sont gérés par le logiciel. Pour pouvoir malgré tout utiliser des répertoires, il vous suffit de les nommer avec l'extension attendue (.SCR, .WIN, .PAT, .FNT, .SKS, etc.). Une erreur sera généralement remontée au moment du « chargement » de ces répertoires, mais elle est sans effet.

Vous noterez toutefois que ceci ne fonctionne pas pour certains logiciels (comme « The Soundtrakker ») car ils ne gèrent pas correctement les attributs de fichiers ou qu'ils contrôlent aussi leur taille (les répertoires sont listés comme des fichiers protégés de taille zéro). Ceci ne permet pas non plus de remonter dans une arborescence, ce qui peut être problématique. Pour ces deux cas, il suffit d'utiliser des liens symboliques comme expliqué ci-après.

Liens symboliques

Les liens symboliques sont des objets puissants qui trouvent leur utilité dans tout un tas de cas. En effet, ils vous permettent de créer n'importe où des points d'accès vers n'importe quel fichier, répertoire ou lecteur. Dans le cadre de l'utilisation de logiciels prévus pour l'AMSDOS, vous pouvez par exemples les utiliser pour faciliter la navigation dans les répertoires.

Par exemple :

  • Créer, dans le répertoire d'un logiciel, un lien symbolique qui pointe vers le répertoire de stockage de vos fichiers vous permettra d'y accéder depuis son interface.
  • Créer, dans un sous-répertoire, un lien symbolique vers « / » vous permettra de remonter d'un niveau.
  • Créer un lien symbolique vers un autre lecteur vous permettra de changer l'assignation courante du lecteur logique courant (A: ou B:) sans avoir à quitter le logiciel.

Performance

Quelques chiffres pour donner un ordre d'idée des performances auxquelles nous pouvez vous attendre.

Les chiffres donnés ici sont des moyennes sur la lecture et l'écriture de fichiers de 16 Kio ; les temps de gestion du système de fichier sont donc inclus, ce qui donne des vitesses réalistes en usage standard et non pas des valeurs maximales jamais atteintes.

Bien sûr, selon le type de stockage USB et le modèle de carte MicroSD, mais aussi selon le niveau de fragmentation du système de fichier, ces performances peuvent fluctuer (de l'ordre de 10%).

     Lecture     
 
     Écriture     
(en direct)
     Écriture     
(sous la ROM)
Lecteur de disquettes 8 Kio/sec 8 Kio/sec 7 Kio/sec
Albireo - Carte MicroSD  70 Kio/sec 25 Kio/sec 16 Kio/sec
Albireo - Stockage USB  86 Kio/sec 23 Kio/sec 13 Kio/sec
Maximum théorique 115 Kio/sec 110 Kio/sec 66 Kio/sec
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) , 9)
indépendamment de la configuration des lecteurs logiques
10)
si aucune extension n'est fournie alors c'est la valeur 0 qui sera renvoyée
11)
sans entête binaire AMSDOS
12)
le code ASCII numéro 32 est l'espace
13)
il n'y a donc que deux espaces au lieu de trois entre les colonnes
14)
seuls les 146 premiers par ordre alphabétique sont alors affichés
15)
le symbole « > » précède le lecteur logique actif
16)
dans ce cas les colonnes suivantes ne sont pas renseignées
17)
dans ce cas “Dir” est affiché à la place des colonnes suivantes
18)
il correspond au retour des routines bas niveau « CAS »
19)
pour davantage d'informations, reportez-vous au manuel de votre Amstrad CPC, chapitre 6, section « Erreurs sur disquettes AMSDOS »
20)
avec UniDOS en emplacement 7 et AMSDOS/ParaDOS en 15
21)
de manière officielle ou officieuse
22) , 23) , 24) , 25)
configuration optimale requise (avec UniDOS en emplacement 7 et AMSDOS/ParaDOS en 15)
26)
notamment car ils font des accès directs non documentés en ROM