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 fichier1). 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 niveau2).

Toutefois, l'UniDOS introduit quelques codes d'erreurs nouveaux dont voici la description (ajoutée en gras à la liste des erreurs AMSDOS) :

Erreur AMSDOS/UniDOS Valeur DERR Source de l'erreur
0 0 ou 22 Activation de [ESC].
14 142 (128+14) État du canal non valable.
15 143 (128+15) Fin de fichier matérielle.
16 144 (128+16) Mauvaise commande.
17 145 (128+17) Fichier déjà existant.
18 146 (128+18) Fichier non existant.
19 147 (128+19) Catalogue saturé.
20 148 (128+20) Média plein.
21 149 (128+21) Changement du média avec fichiers ouverts.
22 150 (128+22) Fichier en lecture seule.
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.
26 154 (128+26) Fin de fichier logicielle.
27 155 (128+27) Le chemin correspond à un fichier alors qu'un répertoire était attendu.
28 156 (128+28) Tentative de renommage entre deux lecteurs physiques.
29 157 (128+29) Renommage depuis un répertoire vers un autre non supporté par le lecteur physique.
30 158 (128+30) Horloge non trouvée.
31 159 (128+31) Horloge en lecture seule.

LOAD/SAVE sur des répertoires

Lorsque l'on utilise la commande BASIC 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é. Si ce comportement vous dérange, vous pouvez simplement utiliser dans ce cas les RSX |LOAD et |SAVE à la place des commandes BASIC ; celles-ci ne génèrent pas d'erreur et ne provoqueront donc pas l'interruption du programme.

10 |LOAD,"SD:JEUX/AVENTURE/"
20 PRINT"Le chemin courant est :":|PATH

Si vous désirez malgré tout utiliser LOAD et SAVE dans le cadre d'un programme interactif, vous pouvez intercepter l'erreur générée avec la commande ON ERROR GOTO afin de déterminer si l'utilisateur a sélectionné un répertoire, un fichier3) ou si une erreur est survenue. Vous devrez prendre cet aspect en considération dans le cas de n'importe quel programme Basic manipulant les répertoires avec LOAD et SAVE. 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é

L'UniDOS est, grâce à sa gestion des chemins et des lecteurs, fortement compatible avec les logiciels prévus pour l'AMSDOS. Ainsi, L'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é AMSDOS, certains programmes de la liste ci-dessous ne fonctionneront que si vous êtes dans le cadre d'une installation optimale4). À noter aussi que quasiment tous les jeux et démos disponibles en version fichier5) devraient fonctionner dans cette configuration.

  • AMX Pagemaker,
  • Contiki,
  • Digitracker6),
  • Maxam,
  • Orgams,
  • Protext,
  • Protracker7),
  • Soundtracker DMA,
  • Starkos8),
  • The Advanced OCP Art Studio,
  • The Soundtrakker9),
  • 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 encore10).

  • DES,
  • Oxford PAO.

Astuces

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.

UniTools et les ROMs de développement

À l'aide de ses RSX |DEVTOOLS.ON et |DEVTOOLS.OFF, UniTools permet d'activer (état par défaut) et de désactiver les ROMs de développement au démarrage du CPC. Pour ce faire, les ROMs se considérant comme telles doivent vérifier la présence d'un marqueur en mémoire lors de leur phase d'initialisation. Ceci se fait comme suit :

;
; Routine à insérer au début de l'init des ROMs qui se considèrent comme étant des DevTools
;

MagicNumber         Equ &feca
DisableROMTagAdr    Equ &baf7

ROM_Init
        push hl
        ld bc,-MagicNumber
        ld hl,(DisableROMTagAdr+0)
        add hl,bc
        ld a,h
        or l
        pop hl
        jr nz,ROM_ActualInit
        ld a,(DisableROMTagAdr+2)
        and &40
        ret nz ; NC
ROM_ActualInit
        ... ; Suite de l'initialisation normale de la ROM

À noter que les ROMs d'Arnor proposées dans la section des téléchargements (Utopia, Protext et Maxam) ont été patchée pour être considérée comme des ROMs de développement.

Performance

Quelques chiffres pour donner un ordre d'idée des performances auxquelles vous 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.

     Lecture     
 
     Écriture     
(en direct)
     Écriture     
(sous la ROM)
Lecteur de disquettes 10 Kio/sec 10 Kio/sec 9 Kio/sec
Albireo - Carte microSD11)  70 Kio/sec 25 Kio/sec 16 Kio/sec
Albireo - Stockage USB12)  86 Kio/sec 23 Kio/sec 13 Kio/sec
M4 Board - Carte microSD 107 Kio/sec 50 Kio/sec 43 Kio/sec
FatFs - X-Mass 58 Kio/sec 18 Kio/sec 12 Kio/sec
Maximum théorique 120 Kio/sec 120 Kio/sec 80 Kio/sec
1)
il correspond au retour des routines bas niveau « CAS »
2)
pour davantage d'informations, reportez-vous au manuel de votre Amstrad CPC, chapitre 6, section « Erreurs sur disquettes AMSDOS »
3)
lorsqu'un chemin explicite était spécifié
4)
avec la ROM UniDOS en emplacement 7 et la ROM AMSDOS/ParaDOS en 15, ou bien en utilisant le firmware patché « u5 »
5)
de manière officielle ou officieuse
6) , 7) , 8) , 9)
configuration optimale requise
10)
notamment car ils font des accès directs non documentés en ROM
11) , 12)
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%)