Les dossiers A S C II non protégés n 'ont pas d 'entête. Tous les autres dossiers A M S D O S ont
une entête unique contenu dans les prem iers 128 octets du dossier, q u 'on appelle aussi zone
entête. Les entêtes sont détectées par addition des prem iers 67 octets de cette zone. Si
la somme donne le résultat prévu, alors il y a un entête sinon il n'y en a pas. Ainsi il est peu
probable mais néanmoins possible q u 'un dossier sans entête puisse être confondu avec un
dossier avec entête.
5.2 Le changement de disquette
Sous A M S D O S , une disquette peut être sortie chaque fois que le drive n'est en train ni de
lire, ni d 'écrire et q u 'aucun fichier n 'ait été ouvert sur ce drive. C ontrairem ent avec le C P /M ,
il n 'y a pas besoin d 'am orcer la disquette.
Enlever une disquette pendant une opération d 'é criture peut d éte rriorer les données de la
disquette. Si elle est enlevée alors qu'un fichier est encore ouvert, dès que l'A M S D O S le
détecte, le fichier sera abandonné et un message d 'erreur apparaîtra. Les inform ations
restant à écrire seront perdues et la dernière entrée sur le catalogue de la disquette ne sera
pas prise en com pte. Cependant l'A M S D O S ne peut détecter ce changement que quand il
lit le catalogue, ce q u 'il fait à chaque groupe de 16 K octets ou quand un fichier s'ouvre ou se
ferme. Ainsi potentiellem ent, 16 K de données seront perdues si une disquette est sortie de
son drive avec un fichier encore ouvert.
5.3 Les exigences de l'implantation mémoire
Au m om ent de l'initialisation, l'A M S D O S se réserve 500 octets de m ém oire de la m émoire
centrale. C ette valeur ne peut pas changer.
Lorsque l'on charge en mém oire un program m e en langage machine à p a rtir d'une disquette
en utilisant la routine C AS IN D IR E C T de l'A M S D O S , il est im portant que les variables de
l'A M S D O S ne soient pas détruites par surim pression. Et c 'est un problèm e car en général
on ne sait pas ou sont ces variables. Ceci parce que les variables externes sont réparties de
façon dynam ique en mémoire. N otez que ce problèm e ne se présente pas pour un
chargem ent à p a rtir d 'une cassette car les variables de gestion des cassettes sont dans la
zone protégée des variables système.
L 'A M S D O S se réserve un emplacement m ém oire à p artir du haut de la m ém oire centrale et
dont la solution la plus simple est de stocker le program m e en langage machine dans le bas
de la m ém oire centrale. Le program m e pourra alors se déplacer vers une plus haute adresse
si besoin est.
Les program m es en langage machine seront chargés en deux temps. D 'abord, chargement
et éxécution d 'un petit program m e chargeur. M C B O O T P R O G R A M aura fermé tous les
RSX et les extensions ROM . Le chargeur va m aintenant initialiser l'A M S D O S en utilisant
K L IN IT B A C K , forçant ainsi les variables de l'A M S D O S à se m ettre à l'endroit voulu. Le
chargeur peut m aintenant s'occuper du program m e en langage machine en utilisant les
routines C AS OPEN IN, C AS IN D IR E C T et C AS IN C LO S E de l'A M S D O S en même
temps que le program m e M C S T A R T P R O G R A M M .
Lorsque l'on utilise K L IN IT B A C K pour l'initialisation de l'A M S D O S on a besoin du n° de
R O M de l'A M S D O S . Vous trouverez ce num éro en regardant le contenu de la zone tampon
" interception cassette" avec les routines DISC sélectionnées. Chaque enregistrem ent est
une adresse sur trois octets, le troisièm e octet étant le num éro de ROM .
Chapitre 5.2
Manuel du lecteur DDI-1 AMSTRAD