GEMDOS.TXT/fr: Difference between revisions
Jump to navigation
Jump to search
(Created page with "<pre> ***-------------- LES FONCTIONS GEMDOS PAR NUMRO ---------------*** $00 Pterm0 Fin de processus $01 Cconin Lit un caractŠre sur l'entr‚e stan...") |
No edit summary |
||
Line 1: | Line 1: | ||
<pre> |
<pre> |
||
− | ***-------------- LES FONCTIONS GEMDOS PAR |
+ | ***-------------- LES FONCTIONS GEMDOS PAR NUM�RO ---------------*** |
$00 Pterm0 Fin de processus |
$00 Pterm0 Fin de processus |
||
− | $01 Cconin Lit un |
+ | $01 Cconin Lit un caract�re sur l'entr�e standard |
− | $02 Cconout |
+ | $02 Cconout �crit un caract�re sur la sortie standard |
− | $03 Cauxin Lit un |
+ | $03 Cauxin Lit un caract�re sur l'entr�e standard AUX: |
− | $04 Cauxout |
+ | $04 Cauxout �crit un caract�re sur la sortie standard AUX: |
− | $05 Cprnout |
+ | $05 Cprnout �crit un caract�re sur la sortie standard PRN: |
− | $06 Crawio Lecture/ |
+ | $06 Crawio Lecture/�criture brute sur l'entr�e/sortie standard |
− | $07 Crawcin Lecture brute sur l' |
+ | $07 Crawcin Lecture brute sur l'entr�e standard |
− | $08 Cnecin Lit un |
+ | $08 Cnecin Lit un caract�re sur l'entr�e standard, sans �cho |
− | $09 Cconws |
+ | $09 Cconws �crit une cha�ne sur la sortie standard |
− | $0A Cconrs Lit une |
+ | $0A Cconrs Lit une cha�ne format�e sur l'entr�e standard |
− | $0B Cconis Teste l' |
+ | $0B Cconis Teste l'�tat de l'entr�e standard |
− | $0E Dsetdrv Fixe le lecteur de disque par |
+ | $0E Dsetdrv Fixe le lecteur de disque par d�faut |
− | $10 Cconos Teste l' |
+ | $10 Cconos Teste l'�tat de la sortie standard |
− | $11 Cprnos Teste l' |
+ | $11 Cprnos Teste l'�tat du p�riph�rique standard PRN: |
− | $12 Cauxis Teste l' |
+ | $12 Cauxis Teste l'�tat du standard AUX: en entr�e |
− | $13 Cauxos Teste l' |
+ | $13 Cauxos Teste l'�tat du standard AUX: en sortie |
− | $19 Dgetdrv Demande le disque par |
+ | $19 Dgetdrv Demande le disque par d�faut |
$1A Fsetdta Fixe l'adresse du DTA (Disk Transfer Adress) |
$1A Fsetdta Fixe l'adresse du DTA (Disk Transfer Adress) |
||
$20 Super Entre/Sort/Demande du mode superviseur |
$20 Super Entre/Sort/Demande du mode superviseur |
||
Line 27: | Line 27: | ||
$2D Tsettime Fixe l'heure |
$2D Tsettime Fixe l'heure |
||
$2F Fgetdta Demande l'adresse du DTA (Disk Transfer Adress) |
$2F Fgetdta Demande l'adresse du DTA (Disk Transfer Adress) |
||
− | $30 Sversion Demande le |
+ | $30 Sversion Demande le num�ro de version du GEMDOS |
− | $31 Ptermres Finit un programme qui reste |
+ | $31 Ptermres Finit un programme qui reste r�sident |
$36 Dfree Demande d'informations sur un disque |
$36 Dfree Demande d'informations sur un disque |
||
− | $39 Dcreate |
+ | $39 Dcreate Cr�ation d'un sous-r�pertoire |
− | $3A Ddelete Efface un sous- |
+ | $3A Ddelete Efface un sous-r�pertoire |
$3B Dsetpath Fixe le catalogue courant |
$3B Dsetpath Fixe le catalogue courant |
||
− | $3C Fcreate |
+ | $3C Fcreate Cr�ation d'un fichier |
$3D Fopen Ouvre un fichier |
$3D Fopen Ouvre un fichier |
||
$3E Fclose Ferme un fichier |
$3E Fclose Ferme un fichier |
||
$3F Fread Lit un fichier |
$3F Fread Lit un fichier |
||
− | $40 Fwrite |
+ | $40 Fwrite �crit un fichier |
$41 Fdelete Efface un fichier |
$41 Fdelete Efface un fichier |
||
$42 Fseek Positionnement dans un fichier |
$42 Fseek Positionnement dans un fichier |
||
Line 43: | Line 43: | ||
$45 Fdup Recopie un identificateur de fichier standard |
$45 Fdup Recopie un identificateur de fichier standard |
||
$46 Fforce Force un identificateur de fichier |
$46 Fforce Force un identificateur de fichier |
||
− | $47 Dgetpath Demande le |
+ | $47 Dgetpath Demande le r�pertoire courant |
− | $48 Malloc Demande d'allocation |
+ | $48 Malloc Demande d'allocation m�moire |
− | $49 Mfree |
+ | $49 Mfree Lib�re de la m�moire |
− | $4A Mshrink |
+ | $4A Mshrink R�tr�cit un bloc de m�moire allou�e |
− | $4B Pexec Charge/ |
+ | $4B Pexec Charge/Ex�cute un programme |
$4C Pterm Termine un programme |
$4C Pterm Termine un programme |
||
− | $4E Fsfirst Recherche la |
+ | $4E Fsfirst Recherche la premi�re occurrence d'un fichier |
$4F Fnext Recherche l'occurrence suivante |
$4F Fnext Recherche l'occurrence suivante |
||
$56 Frename Renomme un fichier |
$56 Frename Renomme un fichier |
||
− | $57 Fdatime Demande ou fixe la date de |
+ | $57 Fdatime Demande ou fixe la date de cr�ation d'un fichier |
***-------------- FONCTIONS GEMDOS PAR NOM ----------------------*** |
***-------------- FONCTIONS GEMDOS PAR NOM ----------------------*** |
||
− | $03 Cauxin Lit un |
+ | $03 Cauxin Lit un caract�re sur l'entr�e standard AUX: |
− | $12 Cauxis Teste l' |
+ | $12 Cauxis Teste l'�tat du standard AUX: en entr�e |
− | $13 Cauxos Teste l' |
+ | $13 Cauxos Teste l'�tat du standard AUX: en sortie |
− | $04 Cauxout |
+ | $04 Cauxout �crit un caract�re sur la sortie standard AUX: |
− | $01 Cconin Lit un |
+ | $01 Cconin Lit un caract�re sur l'entr�e standard |
− | $0B Cconis Teste l' |
+ | $0B Cconis Teste l'�tat de l'entr�e standard |
− | $10 Cconos Teste l' |
+ | $10 Cconos Teste l'�tat de la sortie standard |
− | $02 Cconout |
+ | $02 Cconout �crit un caract�re sur la sortie standard |
− | $0A Cconrs Lit une |
+ | $0A Cconrs Lit une cha�ne format�e sur l'entr�e standard |
− | $09 Cconws |
+ | $09 Cconws �crit une cha�ne sur la sortie standard |
− | $08 Cnecin Lit un |
+ | $08 Cnecin Lit un caract�re sur l'entr�e standard, sans �cho |
− | $11 Cprnos Teste l' |
+ | $11 Cprnos Teste l'�tat du p�riph�rique standard PRN: |
− | $05 Cprnout |
+ | $05 Cprnout �crit un caract�re sur la sortie standard PRN: |
− | $07 Crawcin Lecture brute sur l' |
+ | $07 Crawcin Lecture brute sur l'entr�e standard |
− | $06 Crawio Lecture/ |
+ | $06 Crawio Lecture/�criture brute sur l'entr�e/sortie standard |
− | $39 Dcreate |
+ | $39 Dcreate Cr�ation d'un sous-r�pertoire |
− | $3A Ddelete Efface un sous- |
+ | $3A Ddelete Efface un sous-r�pertoire |
$36 Dfree Demande d'informations sur un disque |
$36 Dfree Demande d'informations sur un disque |
||
− | $19 Dgetdrv Demande le disque par |
+ | $19 Dgetdrv Demande le disque par d�faut |
− | $47 Dgetpath Demande le |
+ | $47 Dgetpath Demande le r�pertoire courant |
− | $0E Dsetdrv Fixe le lecteur de disque par |
+ | $0E Dsetdrv Fixe le lecteur de disque par d�faut |
$3B Dsetpath Fixe le catalogue courant |
$3B Dsetpath Fixe le catalogue courant |
||
$43 Fattrib Retourne/fixe les attributs de fichier |
$43 Fattrib Retourne/fixe les attributs de fichier |
||
$3E Fclose Ferme un fichier |
$3E Fclose Ferme un fichier |
||
− | $3C Fcreate |
+ | $3C Fcreate Cr�ation d'un fichier |
− | $57 Fdatime Demande ou fixe la date de |
+ | $57 Fdatime Demande ou fixe la date de cr�ation d'un fichier |
$41 Fdelete Efface un fichier |
$41 Fdelete Efface un fichier |
||
$45 Fdup Recopie un identificateur de fichier standard |
$45 Fdup Recopie un identificateur de fichier standard |
||
Line 92: | Line 92: | ||
$42 Fseek Positionnement dans un fichier |
$42 Fseek Positionnement dans un fichier |
||
$1A Fsetdta Fixe l'adresse du DTA (Disk Transfer Adress) |
$1A Fsetdta Fixe l'adresse du DTA (Disk Transfer Adress) |
||
− | $4E Fsfirst Recherche la |
+ | $4E Fsfirst Recherche la premi�re occurrence d'un fichier |
$4F Fnext Recherche l'occurrence suivante |
$4F Fnext Recherche l'occurrence suivante |
||
− | $40 Fwrite |
+ | $40 Fwrite �crit dans un fichier |
− | $48 Malloc Demande d'allocation |
+ | $48 Malloc Demande d'allocation m�moire |
− | $49 Mfree |
+ | $49 Mfree Lib�re de la m�moire |
− | $4A Mshrink |
+ | $4A Mshrink R�tr�cit un bloc de m�moire allou�e |
− | $4B Pexec Charge/ |
+ | $4B Pexec Charge/Ex�cute un programme |
$4C Pterm Termine un programme |
$4C Pterm Termine un programme |
||
$00 Pterm0 Termine un programme (code de retour 0) |
$00 Pterm0 Termine un programme (code de retour 0) |
||
− | $31 Ptermres Termine un programme qui reste |
+ | $31 Ptermres Termine un programme qui reste r�sident |
$20 Super Entre/Sort/Demande du mode superviseur |
$20 Super Entre/Sort/Demande du mode superviseur |
||
− | $30 Sversion Demande le |
+ | $30 Sversion Demande le num�ro de version du GEMDOS |
$2A Tgetdate Demande la date |
$2A Tgetdate Demande la date |
||
$2C Tgettime Demande l'heure |
$2C Tgettime Demande l'heure |
||
Line 115: | Line 115: | ||
Termine un processus, fermant tous les fichiers qu'il a ouvert et |
Termine un processus, fermant tous les fichiers qu'il a ouvert et |
||
+ | lib�rant la m�moire qu'il a allou�e. Retourne $0000 comme code de |
||
− | librant la mmoire qu'il a alloue. Retourne $0000 comme code de |
||
sortie au programme parent. |
sortie au programme parent. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $01 Cconin Lit un |
+ | $01 Cconin Lit un caract�re sur l'entr�e standard |
LONG Cconin() |
LONG Cconin() |
||
+ | Lit un caract�re sur l'entr�e standard (identificateur 0). Si |
||
− | Lit un caractre sur l'entre standard (identificateur 0). Si |
||
+ | l'entr�e standard est la console, le long_mot retourn� dans D0 |
||
− | l'entre standard est la console, le long_mot retourn dans D0 |
||
− | contient le code ASCII et le code clavier de la touche |
+ | contient le code ASCII et le code clavier de la touche appuy�e |
(code de scrutation) : |
(code de scrutation) : |
||
Line 131: | Line 131: | ||
|-------------|-----------|----------|-----------| |
|-------------|-----------|----------|-----------| |
||
| | code de | | | |
| | code de | | | |
||
− | | $00 ou bits | scrutation| $00 | |
+ | | $00 ou bits | scrutation| $00 | caract�re | |
| de shift | ou $00 | | ASCII | |
| de shift | ou $00 | | ASCII | |
||
|_____________|___________|__________|___________| |
|_____________|___________|__________|___________| |
||
− | Les touches de fonction (F1 |
+ | Les touches de fonction (F1 � F10, HELP, UNDO, etc...) retournent |
− | le code ASCII $00, avec le code clavier |
+ | le code ASCII $00, avec le code clavier appropri� (cf. le manuel |
sur le clavier intelligent pour la valeur des codes clavier). Le |
sur le clavier intelligent pour la valeur des codes clavier). Le |
||
− | ST BIOS place l' |
+ | ST BIOS place l'�tat des touches sp�ciales dans les bits 24 � 31 |
− | (voir le Guide du programmeur du BIOS pour plus de |
+ | (voir le Guide du programmeur du BIOS pour plus de d�tails). |
ERREURS |
ERREURS |
||
Ne retourne aucune indication de fin de fichier. |
Ne retourne aucune indication de fin de fichier. |
||
− | Ne |
+ | Ne reconna�t pas 'Control_C' |
− | Impossible de savoir si l' |
+ | Impossible de savoir si l'entr�e est un p�riph�rique � carac- |
− | + | t�res ou un fichier. |
|
− | Il devrait exister un moyen de taper les 256 codes possibles |
+ | Il devrait exister un moyen de taper les 256 codes possibles � |
partir du clavier. |
partir du clavier. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $02 Cconout Ecrit un |
+ | $02 Cconout Ecrit un caract�re sur la sortie standard |
void Cconout(c) |
void Cconout(c) |
||
WORD c |
WORD c |
||
+ | �crit le caract�re 'c' sur la sortie standard (identificateur 0). |
||
− | crit le caractre 'c' sur la sortie standard (identificateur 0). |
||
− | Les huit bits les plus significatifs de 'c' sont |
+ | Les huit bits les plus significatifs de 'c' sont r�serv�s et |
+ | doivent �tre � z�ro. Les tabulations ne sont pas interpr�t�es. |
||
− | doivent tre zro. Les tabulations ne sont pas interprtes. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $03 Cauxin Lit un |
+ | $03 Cauxin Lit un caract�re sur l'entr�e standard AUX: |
WORD Cauxin() |
WORD Cauxin() |
||
+ | Lit un caract�re � partir de l'identificateur 1 (le port s�rie AUX:, |
||
− | Lit un caractre partir de l'identificateur 1 (le port srie AUX:, |
||
normalement). |
normalement). |
||
REMARQUE |
REMARQUE |
||
+ | Le contr�le de flux de la sortie RS232 ne marche pas avec |
||
− | Le contrle de flux de la sortie RS232 ne marche pas avec |
||
cette fonction. Les programmes devraient utiliser l'appel de |
cette fonction. Les programmes devraient utiliser l'appel de |
||
+ | p�riph�rique de caract�re BIOS afin d'�viter de perdre des |
||
− | priphrique de caractre BIOS afin d'viter de perdre des |
||
− | + | caract�res re�us. |
|
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $04 Cauxout |
+ | $04 Cauxout �crit un caract�re sur la sortie standard AUX: |
void Cauxout(c) |
void Cauxout(c) |
||
WORD c |
WORD c |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $05 Cprnout |
+ | $05 Cprnout �crit un caract�re sur la sortie standard PRN: |
void Cprnout(c) |
void Cprnout(c) |
||
WORD c |
WORD c |
||
+ | �crit 'c' sur l'identificateur 2 (le port imprimante PRN:, norma- |
||
− | crit 'c' sur l'identificateur 2 (le port imprimante PRN:, norma- |
||
− | lement). Les huits bits hauts de 'c' sont |
+ | lement). Les huits bits hauts de 'c' sont r�serv�s et doivent �tre � |
+ | z�ro. Les tabulations ne sont pas interpr�t�es. |
||
− | zro. Les tabulations ne sont pas interprtes. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $06 Crawio Lecture/ |
+ | $06 Crawio Lecture/�criture brute sur l'entr�e/sortie standard |
LONG Crawio(w) |
LONG Crawio(w) |
||
WORD w; |
WORD w; |
||
REMARQUES |
REMARQUES |
||
− | Par le fait |
+ | Par le fait m�me de sa conception cette fonction ne peut |
+ | �crire '$ff' sur la sortie standard. |
||
− | crire '$ff' sur la sortie standard. |
||
− | $00 ne peut |
+ | $00 ne peut �tre diff�renci� d'une fin de fichier. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $07 Crawcin |
+ | $07 Crawcin Entr�e brute sur l'entr�e standard |
LONG Crawcin() |
LONG Crawcin() |
||
REMARQUE Pas d'indication de fin de fichier. |
REMARQUE Pas d'indication de fin de fichier. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $08 Cnecin Lit un |
+ | $08 Cnecin Lit un caract�re sur l'entr�e standard, sans �cho |
LONG Cnecin() |
LONG Cnecin() |
||
+ | Lit un caract�re sur l'entr�e standard. Si le p�riph�rique |
||
− | Lit un caractre sur l'entre standard. Si le priphrique |
||
+ | d'entr�e est 'CON:', aucun �cho n'est fait. Les caract�res de |
||
− | d'entre est 'CON:', aucun cho n'est fait. Les caractres de |
||
+ | contr�le sont interpr�t�s. |
||
− | contrle sont interprts. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $09 Cconws Ecrit une |
+ | $09 Cconws Ecrit une cha�ne sur la sortie standard |
− | void Cconws( |
+ | void Cconws(cha�ne) |
− | char * |
+ | char *cha�ne; |
+ | �crit une cha�ne d�butant � 'cha�ne' et finissant par 0, sur la |
||
− | crit une chane dbutant 'chane' et finissant par 0, sur la |
||
sortie standard. |
sortie standard. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $0A Cconrs Lit une |
+ | $0A Cconrs Lit une cha�ne sur l'entr�e standard |
void Cconrs(buf) |
void Cconrs(buf) |
||
char *buf; |
char *buf; |
||
+ | Lit une cha�ne sur l'entr�e standard. Les caract�res de contr�le |
||
− | Lit une chane sur l'entre standard. Les caractres de contrle |
||
− | habituels sont |
+ | habituels sont interpr�t�s : |
____________________________________________ |
____________________________________________ |
||
− | | |
+ | | Caract�re | Fonction | |
|--------------|-----------------------------| |
|--------------|-----------------------------| |
||
| <return>, ^J | Fin de ligne | |
| <return>, ^J | Fin de ligne | |
||
− | | ^H, <rub> | Efface le dernier |
+ | | ^H, <rub> | Efface le dernier caract�re | |
− | | ^U, ^X | Efface la ligne |
+ | | ^U, ^X | Efface la ligne enti�re | |
| ^R | Recopie la ligne | |
| ^R | Recopie la ligne | |
||
| ^C | Fini le programme | |
| ^C | Fini le programme | |
||
|______________|_____________________________| |
|______________|_____________________________| |
||
+ | Le premier caract�re de 'buf' contient le nombre maximum d'octets � |
||
− | Le premier caractre de 'buf' contient le nombre maximum d'octets |
||
− | lire (taille du tampon moins deux). En sortie, le |
+ | lire (taille du tampon moins deux). En sortie, le deuxi�me octet |
− | contient le nombre de |
+ | contient le nombre de caract�res lus. La cha�ne se trouve entre |
'buf+2' et 'buf+2+buf[1]'. |
'buf+2' et 'buf+2+buf[1]'. |
||
− | Il n'est pas garanti que la |
+ | Il n'est pas garanti que la cha�ne se finisse par 0. |
REMARQUE Plante sur les fins de fichiers. |
REMARQUE Plante sur les fins de fichiers. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $0B Cconis Teste l' |
+ | $0B Cconis Teste l'�tat de l'entr�e standard |
WORD Cconis() |
WORD Cconis() |
||
− | Retourne $FFFF si un |
+ | Retourne $FFFF si un caract�re est disponible sur l'entr�e |
standard, $0000 sinon. |
standard, $0000 sinon. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $0E Dsetdrv Fixe le lecteur de disque par |
+ | $0E Dsetdrv Fixe le lecteur de disque par d�faut |
LONG Dsetdrv(drv) |
LONG Dsetdrv(drv) |
||
WORD drv; |
WORD drv; |
||
− | Fixe le disque 'drv' par |
+ | Fixe le disque 'drv' par d�faut. Les disques sont rang�s de 0 � 15 |
+ | (A: � P:). Retourne dans D0.L la carte des disques actifs: |
||
− | (A: P:). Retourne dans D0.L la carte des disques actifs: |
||
(bit 0 = A, bit 1 = B, etc..). |
(bit 0 = A, bit 1 = B, etc..). |
||
− | Un 'disque actif' est un disque |
+ | Un 'disque actif' est un disque � partir duquel un catalogue a �t� |
fait. |
fait. |
||
− | REMARQUE Le GEMDOS ne supporte que 16 disques (bits 0 |
+ | REMARQUE Le GEMDOS ne supporte que 16 disques (bits 0 � 15). Les |
+ | syst�mes ult�rieurs en supporteront 32 . |
||
− | systmes ultrieurs en supporteront 32 . |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $10 Cconos Teste l' |
+ | $10 Cconos Teste l'�tat de la sortie standard |
WORD Cconos() |
WORD Cconos() |
||
− | Renvoie $FFFF si la console est |
+ | Renvoie $FFFF si la console est pr�te � recevoir un caract�re, |
− | $0000 si la console n'est PAS |
+ | $0000 si la console n'est PAS pr�te. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $11 Cprnos Teste l' |
+ | $11 Cprnos Teste l'�tat de la sortie standard PRN: |
WORD Cprnos() |
WORD Cprnos() |
||
− | Retourne $FFFF si 'PRN:' est |
+ | Retourne $FFFF si 'PRN:' est pr�t � recevoir un caract�re, $0000 |
sinon. |
sinon. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $12 Cauxis Teste l' |
+ | $12 Cauxis Teste l'�tat de l'entr�e standard AUX: |
WORD Cauxis() |
WORD Cauxis() |
||
− | Retourne $FFFF si un |
+ | Retourne $FFFF si un caract�re est disponible sur l'entr�e 'AUX:' |
(identificateur 1), $0000 sinon. |
(identificateur 1), $0000 sinon. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $13 Cauxos Teste l' |
+ | $13 Cauxos Teste l'�tat de la sortie standard AUX: |
WORD Cauxos() |
WORD Cauxos() |
||
− | Renvoie $FFFF si 'AUX:' (identificateur 1) est |
+ | Renvoie $FFFF si 'AUX:' (identificateur 1) est pr�t � recevoir un |
+ | caract�re, $0000 sinon. |
||
− | caractre, $0000 sinon. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $19 Dgetdrv Recherche le lecteur de disque par |
+ | $19 Dgetdrv Recherche le lecteur de disque par d�faut |
WORD Dgetdrv() |
WORD Dgetdrv() |
||
− | Retourne le |
+ | Retourne le num�ro du lecteur courant, compris entre 0 et 15. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
$1A Fsetdta Fixe l'adresse du DTA (Disk Transfer Adress) |
$1A Fsetdta Fixe l'adresse du DTA (Disk Transfer Adress) |
||
void Fsetdta(adr) |
void Fsetdta(adr) |
||
char adr; |
char adr; |
||
− | Fixe l'adresse du DTA |
+ | Fixe l'adresse du DTA � 'adr'. Le tampon de stockage des donn�es |
sur un fichier (DTA) ne sert que pour les fonctions Fsfirst() et |
sur un fichier (DTA) ne sert que pour les fonctions Fsfirst() et |
||
Fsnext(). |
Fsnext(). |
||
Line 288: | Line 288: | ||
LONG Super(pile) |
LONG Super(pile) |
||
WORD *pile; |
WORD *pile; |
||
− | 'pile' est |
+ | 'pile' est �gal � -1L ($FFFFFFFF): |
la fonction retourne $0000 si le processeur est en mode |
la fonction retourne $0000 si le processeur est en mode |
||
Utilisateur, $0001 s'il est en mode Superviseur. |
Utilisateur, $0001 s'il est en mode Superviseur. |
||
− | 'pile' est |
+ | 'pile' est diff�rent de -1L: |
si le processeur est en mode Utilisateur, la fonction revient |
si le processeur est en mode Utilisateur, la fonction revient |
||
avec le processeur en mode Superviseur. Si 'pile' est NUL |
avec le processeur en mode Superviseur. Si 'pile' est NUL |
||
− | ($00000000), la pile superviseur sera la |
+ | ($00000000), la pile superviseur sera la m�me que la pile |
Utilisateur avant l'appel. Sinon la pile Superviseur sera |
Utilisateur avant l'appel. Sinon la pile Superviseur sera |
||
− | + | plac�e � 'pile'. |
|
− | Si le processeur |
+ | Si le processeur �tait en mode Superviseur, il se retrouve en |
− | mode Utilisateur au retour de la fonction. 'pile' devra |
+ | mode Utilisateur au retour de la fonction. 'pile' devra �tre |
− | la valeur de la pile utilisateur qui a |
+ | la valeur de la pile utilisateur qui a �t� retourn�e par le |
premier appel de la fonction. |
premier appel de la fonction. |
||
ATTENTION |
ATTENTION |
||
− | La pile Superviseur originale doit |
+ | La pile Superviseur originale doit �tre replac�e avant la fin |
− | du programme sinon le |
+ | du programme sinon le syst�me plantera � la sortie du |
programme. |
programme. |
||
Line 316: | Line 316: | ||
15 __________________9_8_________5_4_________0 |
15 __________________9_8_________5_4_________0 |
||
+ | | Ann�e depuis 1980 | mois | jour | |
||
− | | Anne depuis 1980 | mois | jour | |
||
| 0.....119 | 1...12 | 1...31 | |
| 0.....119 | 1...12 | 1...31 | |
||
|_____________________|___________|___________| |
|_____________________|___________|___________| |
||
RETOUR |
RETOUR |
||
− | les bits 0 |
+ | les bits 0 � 4 contiennent le jour allant de 1 � 31. |
− | les bits 5 |
+ | les bits 5 � 8 contiennent le mois allant de 1 � 12. |
− | les bits 9 |
+ | les bits 9 � 15 contiennent l'ann�e (� partir de 1980) |
− | allant de 0 |
+ | allant de 0 � 119. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
$2B Tsetdate Fixe la date |
$2B Tsetdate Fixe la date |
||
WORD Tsetdate(date) |
WORD Tsetdate(date) |
||
WORD date; |
WORD date; |
||
− | Fixe 'date' comme date courante dans le format |
+ | Fixe 'date' comme date courante dans le format d�crit dans |
Tgetdate(). |
Tgetdate(). |
||
Line 337: | Line 337: | ||
REMARQUES |
REMARQUES |
||
Le GEMDOS n'est pas difficile sur la date; par exemple le 31 |
Le GEMDOS n'est pas difficile sur la date; par exemple le 31 |
||
+ | F�vrier ne lui d�pla�t pas. |
||
− | Fvrier ne lui dplat pas. |
||
− | Le GEMDOS ne |
+ | Le GEMDOS ne pr�vient PAS le BIOS que la date a chang�e. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
$2C Tgettime Demande l'heure |
$2C Tgettime Demande l'heure |
||
Line 351: | Line 351: | ||
RETOUR Les bits : |
RETOUR Les bits : |
||
+ | 0 � 4 contiennent les secondes divis�es par 2 (0 � 28) |
||
− | 0 4 contiennent les secondes divises par 2 (0 28) |
||
+ | 5 � 10 contiennent les minutes (0 � 59) |
||
− | 5 10 contiennent les minutes (0 59) |
||
− | 11 |
+ | 11 � 15 contiennent les heures (0 � 23) |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
$2D Tsettime Fixe l'heure |
$2D Tsettime Fixe l'heure |
||
WORD Tsettime(heure) |
WORD Tsettime(heure) |
||
WORD heure; |
WORD heure; |
||
− | Fixe 'heure' comme heure courante dans le format |
+ | Fixe 'heure' comme heure courante dans le format d�crit dans |
Tgettime(). |
Tgettime(). |
||
Line 364: | Line 364: | ||
ERROR si le format de l'heure n'est pas valide. |
ERROR si le format de l'heure n'est pas valide. |
||
REMARQUE |
REMARQUE |
||
− | Le GEMDOS ne |
+ | Le GEMDOS ne pr�vient pas le BIOS que l'heure a chang�. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
$2F Fgetdta Demande l'adresse du DTA (Disk Transfer Address) |
$2F Fgetdta Demande l'adresse du DTA (Disk Transfer Address) |
||
LONG Fgetdta() |
LONG Fgetdta() |
||
− | Retourne l'adresse courante du tampon de stockage des |
+ | Retourne l'adresse courante du tampon de stockage des donn�es sur un |
− | fichier (DTA), |
+ | fichier (DTA), employ�e par les fonctions Fsfirst() et Fsnext(). |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $30 Sversion Demande le |
+ | $30 Sversion Demande le num�ro de version du GEMDOS |
WORD Sversion() |
WORD Sversion() |
||
− | Retourne le |
+ | Retourne le num�ro de version du GEMDOS en format invers�. L'octet |
− | le plus significatif contient la partie basse du |
+ | le plus significatif contient la partie basse du num�ro, l'octet le |
moins significatif, la partie haute. |
moins significatif, la partie haute. |
||
REMARQUES |
REMARQUES |
||
− | La version du GEMDOS sur disquette du 29/5/85 et la |
+ | La version du GEMDOS sur disquette du 29/5/85 et la premi�re |
− | version en ROM du 20/11/85 ont $1300 comme |
+ | version en ROM du 20/11/85 ont $1300 comme num�ro. |
+ | Les num�ros de version du GEMDOS et du TOS ne sont PAS les |
||
− | Les numros de version du GEMDOS et du TOS ne sont PAS les |
||
+ | m�mes. (cf. LE MANUEL DE REFERENCE DU BIOS DU ST pour le num�ro |
||
− | mmes. (cf. LE MANUEL DE REFERENCE DU BIOS DU ST pour le numro |
||
de version du TOS). |
de version du TOS). |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $31 Ptermres Finit un programme qui reste |
+ | $31 Ptermres Finit un programme qui reste r�sident |
void Permres( nbrest,coderet) |
void Permres( nbrest,coderet) |
||
LONG nbrest; |
LONG nbrest; |
||
WORD coderet; |
WORD coderet; |
||
− | Finit le programme courant, en conservant une part de sa |
+ | Finit le programme courant, en conservant une part de sa m�moire. |
'nbrest' le est nombre d'octets appartenant au programme qui |
'nbrest' le est nombre d'octets appartenant au programme qui |
||
+ | doivent �tre gard�s, comprenant et commen�ant � la page de base. |
||
− | doivent tre gards, comprenant et commenant la page de base. |
||
− | 'coderet' est le code de sortie qui est |
+ | 'coderet' est le code de sortie qui est retourn� au programme |
parent. |
parent. |
||
+ | La m�moire que le programme a allou�e (en plus de sa zone TPA) |
||
− | La mmoire que le programme a alloue (en plus de sa zone TPA) |
||
− | N'EST PAS |
+ | N'EST PAS lib�r�e. |
− | Il est impossible de rappeler le programme |
+ | Il est impossible de rappeler le programme termin� par Ptermres(). |
REMARQUE |
REMARQUE |
||
− | Les fichiers ouverts sont |
+ | Les fichiers ouverts sont ferm�s lors de la fin de processus. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
$36 Dfree Demande l'espace libre sur un disque |
$36 Dfree Demande l'espace libre sur un disque |
||
Line 410: | Line 410: | ||
Demande des informations sur le disque 'nbdisq' et les place dans |
Demande des informations sur le disque 'nbdisq' et les place dans |
||
− | quatre longs_mots |
+ | quatre longs_mots commen�ant � 'buf': |
__________________________________________________ |
__________________________________________________ |
||
| buf + 0 | nombre de blocs libres sur le disque | |
| buf + 0 | nombre de blocs libres sur le disque | |
||
Line 421: | Line 421: | ||
|___________|______________________________________| |
|___________|______________________________________| |
||
− | REMARQUE Incroyablement lent sur un disque dur (5 |
+ | REMARQUE Incroyablement lent sur un disque dur (5 � 10 secondes). |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $39 Dcreate |
+ | $39 Dcreate Cr�ation d'un sous_r�pertoire de disque C |
WORD Dcreate(chemin) |
WORD Dcreate(chemin) |
||
char *chemin; |
char *chemin; |
||
− | 'Chemin' pointe sur une |
+ | 'Chemin' pointe sur une cha�ne termin�e par 0 sp�cifiant le chemin |
− | du nouveau |
+ | du nouveau r�pertoire. |
RETOUR |
RETOUR |
||
− | 0 en cas de |
+ | 0 en cas de succ�s; |
− | ERROR ou le |
+ | ERROR ou le num�ro d'erreur appropri� en cas d'�chec. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $3A Ddelete Efface un |
+ | $3A Ddelete Efface un sous_r�pertoire |
WORD Ddelete(chemin) |
WORD Ddelete(chemin) |
||
char *chemin; |
char *chemin; |
||
− | Efface un |
+ | Efface un r�pertoire qui doit �tre vide (il peut toutefois |
− | comporter les fichiers |
+ | comporter les fichiers sp�ciaux "." et ".."). 'chemin' pointe sur |
+ | une cha�ne termin�e par z�ro, sp�cifiant le chemin du r�pertoire � |
||
− | une chane termine par zro, spcifiant le chemin du rpertoire |
||
effacer. |
effacer. |
||
− | RETOUR 0 en cas de |
+ | RETOUR 0 en cas de succ�s; |
− | ERROR ou le |
+ | ERROR ou le num�ro d'erreur appropri� en cas d'�chec. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $3B Dsetpath Fixe le |
+ | $3B Dsetpath Fixe le r�pertoire courant |
WORD Dsetpath(chemin) |
WORD Dsetpath(chemin) |
||
char *chemin; |
char *chemin; |
||
− | Fixe 'chemin', (une |
+ | Fixe 'chemin', (une cha�ne termin�e par 0), comme r�pertoire |
courant. Si le chemin commence par une lettre identificatrice de |
courant. Si le chemin commence par une lettre identificatrice de |
||
− | disque suivie de deux-points, le |
+ | disque suivie de deux-points, le r�pertoire courant est plac� sur le |
− | lecteur |
+ | lecteur sp�cifi�. |
+ | Le syst�me conserve un r�pertoire courant pour chaque lecteur. |
||
− | Le systme conserve un rpertoire courant pour chaque lecteur. |
||
− | RETOUR 0 en cas de |
+ | RETOUR 0 en cas de succ�s; |
− | ERROR ou le |
+ | ERROR ou le num�ro d'erreur appropri� en cas d'echec. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $3C Fcreate |
+ | $3C Fcreate Cr�ation d'un fichier |
WORD Fcreate(nomfich,attribs) |
WORD Fcreate(nomfich,attribs) |
||
char *nomfich; |
char *nomfich; |
||
WORD attribs; |
WORD attribs; |
||
+ | Cr�e un fichier 'nomfich' et retourne son identificateur, non |
||
− | Cre un fichier 'nomfich' et retourne son identificateur, non |
||
− | standard, d' |
+ | standard, d'�criture seule. Le mot d'attributs est stock� dans le |
+ | r�pertoire; les bits d'attributs sont : |
||
− | rpertoire; les bits d'attributs sont : |
||
_________________________________________________________ |
_________________________________________________________ |
||
| masque | description | |
| masque | description | |
||
|---------|-----------------------------------------------| |
|---------|-----------------------------------------------| |
||
− | | $01 | fichier |
+ | | $01 | fichier cr�� en lecture seule | |
− | | $02 | fichier transparent au |
+ | | $02 | fichier transparent au r�pertoire | |
− | | $04 | fichier |
+ | | $04 | fichier syst�me | |
| $08 | fichier contenant un nom de volume sur 11 bits | |
| $08 | fichier contenant un nom de volume sur 11 bits | |
||
|________|______________________________________-_________| |
|________|______________________________________-_________| |
||
Line 475: | Line 475: | ||
RETOUR |
RETOUR |
||
Un nombre positif, l'identificateur ou : |
Un nombre positif, l'identificateur ou : |
||
− | ERROR ou le |
+ | ERROR ou le num�ro d'erreur appropri�. |
REMARQUES |
REMARQUES |
||
− | Si le bit de lecture seule est |
+ | Si le bit de lecture seule est positionn�, un identificateur |
+ | d'�criture seule est retourn�, et, de plus, cet identificateur |
||
− | d'criture seule est retourn, et, de plus, cet identificateur |
||
− | ne permet pas d' |
+ | ne permet pas d'�crire. |
+ | Th�oriquement, un seul num�ro de volume est permis sur un |
||
− | Thoriquement, un seul numro de volume est permis sur un |
||
+ | r�pertoire racine. Le GEMDOS n'impose rien de tel, ce qui |
||
− | rpertoire racine. Le GEMDOS n'impose rien de tel, ce qui |
||
peut causer quelque confusion. |
peut causer quelque confusion. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
Line 491: | Line 491: | ||
WORD mode; |
WORD mode; |
||
Ouvre le fichier 'nmfich' en mode 'mode' et retourne son identifi- |
Ouvre le fichier 'nmfich' en mode 'mode' et retourne son identifi- |
||
− | cateur non standard. Le mode d'ouverture peut |
+ | cateur non standard. Le mode d'ouverture peut �tre: |
____________________________ |
____________________________ |
||
| mode | description | |
| mode | description | |
||
|------|---------------------| |
|------|---------------------| |
||
| 0 | lecture seule | |
| 0 | lecture seule | |
||
− | | 1 | |
+ | | 1 | �criture seule | |
− | | 2 | lecture et |
+ | | 2 | lecture et �criture | |
|______|_____________________| |
|______|_____________________| |
||
RETOUR |
RETOUR |
||
Un nombre positif, l'identificateur |
Un nombre positif, l'identificateur |
||
− | Un |
+ | Un num�ro d'erreur n�gatif. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
$3E Fclose Fermeture d'un fichier |
$3E Fclose Fermeture d'un fichier |
||
Line 509: | Line 509: | ||
Ferme le fichier dont l'identificateur est 'idfich'. |
Ferme le fichier dont l'identificateur est 'idfich'. |
||
− | RETOUR 0 en cas de |
+ | RETOUR 0 en cas de succ�s; |
− | ERROR ou un |
+ | ERROR ou un num�ro d'erreur appropri� en cas d'�chec. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
$3F Fread Lecture sur un fichier |
$3F Fread Lecture sur un fichier |
||
Line 519: | Line 519: | ||
Lit 'nbre' octets dans le fichier d'identificateur 'idfich', et |
Lit 'nbre' octets dans le fichier d'identificateur 'idfich', et |
||
− | les place en |
+ | les place en m�moire � partir de l'adresse 'buffer'. |
RETOUR |
RETOUR |
||
− | Le nombre d'octets |
+ | Le nombre d'octets r�ellement lus, ou: |
0 si code de fin de fichier, |
0 si code de fin de fichier, |
||
− | Un |
+ | Un num�ro d'erreur n�gatif. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $40 Fwrite |
+ | $40 Fwrite �criture sur un fichier |
LONG Fwrite(idfich,nbre,buffer) |
LONG Fwrite(idfich,nbre,buffer) |
||
WORD idfich; |
WORD idfich; |
||
Line 532: | Line 532: | ||
char *buffer; |
char *buffer; |
||
+ | �crit 'nbre' octets de la m�moire � partir de l'adresse 'buffer', |
||
− | crit 'nbre' octets de la mmoire partir de l'adresse 'buffer', |
||
dans le fichier ayant comme identificateur 'idfich'. |
dans le fichier ayant comme identificateur 'idfich'. |
||
− | RETOUR Le nombre d'octets |
+ | RETOUR Le nombre d'octets r�ellement �crits en cas de succ�s. |
− | Un |
+ | Un num�ro d'erreur n�gatif autrement. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
$41 Fdelete Effacement d'un fichier |
$41 Fdelete Effacement d'un fichier |
||
Line 543: | Line 543: | ||
Efface le fichier ayant comme nom 'nomfich'. |
Efface le fichier ayant comme nom 'nomfich'. |
||
− | RETOUR 0 en cas de |
+ | RETOUR 0 en cas de succ�s |
− | Un |
+ | Un num�ro d'erreur n�gatif autrement. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
$42 Fseek Positionne le pointeur de fichier |
$42 Fseek Positionne le pointeur de fichier |
||
Line 551: | Line 551: | ||
WORD idfich; |
WORD idfich; |
||
WORD mode; |
WORD mode; |
||
− | Positionne le pointeur dans le fichier |
+ | Positionne le pointeur dans le fichier d�fini par l'identificateur |
− | 'idfich'. 'offset' est un nombre |
+ | 'idfich'. 'offset' est un nombre sign�; une valeur positive |
+ | d�place le pointeur vers la fin du fichier, une valeur n�gative, |
||
− | dplace le pointeur vers la fin du fichier, une valeur ngative, |
||
+ | vers le d�but. Le 'mode' de positionnement peut �tre : |
||
− | vers le dbut. Le 'mode' de positionnement peut tre : |
||
_____________________________________________ |
_____________________________________________ |
||
− | | mode | |
+ | | mode | D�placement d'offset octets... | |
|-------|------------------------------------| |
|-------|------------------------------------| |
||
− | | 0 | |
+ | | 0 | � partir du d�but du fichier | |
− | | 1 | |
+ | | 1 | � partir de la position courante | |
− | | 2 | |
+ | | 2 | � partir de la fin du fichier | |
|_______|____________________________________| |
|_______|____________________________________| |
||
RETOUR La position courante dans le fichier. |
RETOUR La position courante dans le fichier. |
||
− | Un |
+ | Un num�ro d'erreur n�gatif si erreur. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
$43 Fattrib Fixe ou demande les attributs d'un fichier |
$43 Fattrib Fixe ou demande les attributs d'un fichier |
||
Line 571: | Line 571: | ||
WORD drap; |
WORD drap; |
||
WORD attribs; |
WORD attribs; |
||
− | 'nmfich' pointe sur un chemin |
+ | 'nmfich' pointe sur un chemin termin� par 0. Si 'drap' a la valeur |
− | 1, les attributs de fichier 'attribs' sont |
+ | 1, les attributs de fichier 'attribs' sont fix�s (pas de valeur de |
− | retour). Si 'drap' est 0, ils sont |
+ | retour). Si 'drap' est 0, ils sont retourn�s. |
Les bits d'attributs sont : |
Les bits d'attributs sont : |
||
Line 579: | Line 579: | ||
| masque | description | |
| masque | description | |
||
|--------|------------------------------------------------| |
|--------|------------------------------------------------| |
||
− | | $01 | fichier |
+ | | $01 | fichier � lecture seule | |
− | | $02 | fichier transparent au |
+ | | $02 | fichier transparent au r�pertoire | |
− | | $04 | fichier ' |
+ | | $04 | fichier 'syst�me' | |
| $08 | fichier contenant un nom de volume (11 octets) | |
| $08 | fichier contenant un nom de volume (11 octets) | |
||
− | | $10 | fichier sous- |
+ | | $10 | fichier sous-r�pertoire | |
− | | $20 | fichier |
+ | | $20 | fichier �crit puis referm� | |
|________|________________________________________________| |
|________|________________________________________________| |
||
REMARQUE Le bit d'archivage, $20, ne semble pas marcher comme |
REMARQUE Le bit d'archivage, $20, ne semble pas marcher comme |
||
− | + | pr�vu. |
|
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
$45 Fdup Duplique un identificateur de fichier |
$45 Fdup Duplique un identificateur de fichier |
||
WORD Fdup(idfich) |
WORD Fdup(idfich) |
||
WORD idfich; |
WORD idfich; |
||
− | L'identificateur 'idfich' doit |
+ | L'identificateur 'idfich' doit �tre un identificateur standard (0 � |
− | 5). Fdup() retourne un identificateur non standard ( |
+ | 5). Fdup() retourne un identificateur non standard (sup�rieur ou |
+ | �gal � 6) qui pointe le m�me fichier. |
||
− | gal 6) qui pointe le mme fichier. |
||
RETOUR Un identificateur ou : |
RETOUR Un identificateur ou : |
||
Line 606: | Line 606: | ||
WORD nonstdh; |
WORD nonstdh; |
||
− | Force l'identificateur standard 'stdh' |
+ | Force l'identificateur standard 'stdh' � pointer le m�me fichier |
+ | ou p�riph�rique que l'identificateur non-standard 'nonstdh'. |
||
− | ou priphrique que l'identificateur non-standard 'nonstdh'. |
||
RETOUR 0 si OK |
RETOUR 0 si OK |
||
EIHNDL identificateur invalide. |
EIHNDL identificateur invalide. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $47 Dgetpath Demande le |
+ | $47 Dgetpath Demande le r�pertoire courant |
void Dgetpath(buf,driveno) |
void Dgetpath(buf,driveno) |
||
char *buf; |
char *buf; |
||
WORD driveno; |
WORD driveno; |
||
+ | Le r�pertoire courant pour le lecteur 'driveno' est recopi� dans |
||
− | Le rpertoire courant pour le lecteur 'driveno' est recopi dans |
||
− | 'buf'. Le |
+ | 'buf'. Le num�ro de lecteur commence � 1 pour le lecteur A:, 2 |
− | pour le B:, etc..., 0 |
+ | pour le B:, etc..., 0 sp�cifiant le disque par d�faut. |
REMARQUE |
REMARQUE |
||
− | La taille maximum d'un chemin n'est pas |
+ | La taille maximum d'un chemin n'est pas limit�e par le sys- |
+ | t�me. C'est � l'application de fournir assez de place pour le |
||
− | tme. C'est l'application de fournir assez de place pour le |
||
− | tampon. 128 octets semblent suffisants pour 8 ou 9 sous- |
+ | tampon. 128 octets semblent suffisants pour 8 ou 9 sous-r�per- |
toires. |
toires. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $48 Malloc Demande d'allocation |
+ | $48 Malloc Demande d'allocation m�moire |
LONG Malloc(taille) |
LONG Malloc(taille) |
||
LONG taille; |
LONG taille; |
||
Si 'taille' est -1L ($FFFFFFFF) la fonction retourne la taille du |
Si 'taille' est -1L ($FFFFFFFF) la fonction retourne la taille du |
||
− | plus grand bloc libre du |
+ | plus grand bloc libre du syst�me. Autrement si 'taille' est |
+ | diff�rent de -1L, la fonction essaie d'allouer 'taille' octets pour |
||
− | diffrent de -1L, la fonction essaie d'allouer 'taille' octets pour |
||
le programme en cours. La fonction retourne un pointeur sur le |
le programme en cours. La fonction retourne un pointeur sur le |
||
+ | d�but du bloc allou� si tout s'est bien pass�, ou NULL s'il n'exis- |
||
− | dbut du bloc allou si tout s'est bien pass, ou NULL s'il n'exis- |
||
− | tait pas de bloc assez grand pour satisfaire la |
+ | tait pas de bloc assez grand pour satisfaire la requ�te. |
REMARQUE |
REMARQUE |
||
− | Un programme ne peut avoir, |
+ | Un programme ne peut avoir, � un instant donn� plus de 20 blocs |
+ | allou�s par 'Malloc()'. D�passer cette limite peut d�semparer le |
||
− | allous par 'Malloc()'. Dpasser cette limite peut dsemparer le |
||
GEMDOS. (Il est cependant possible de faire le nombre de |
GEMDOS. (Il est cependant possible de faire le nombre de |
||
− | 'Malloc()' que l'on veut |
+ | 'Malloc()' que l'on veut � condition de les faire suivre par |
− | l'appel de la fonction Mfree(), 20 |
+ | l'appel de la fonction Mfree(), 20 �tant le nombre maximum de |
− | fragments qu'un programme peut |
+ | fragments qu'un programme peut g�n�rer). |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $49 Mfree |
+ | $49 Mfree Lib�ration de m�moire |
WORD Mfree(adbloc) |
WORD Mfree(adbloc) |
||
LONG adbloc; |
LONG adbloc; |
||
+ | Lib�re le bloc m�moire commen�ant � 'adbloc'. Le bloc doit �tre un |
||
− | Libre le bloc mmoire commenant 'adbloc'. Le bloc doit tre un |
||
− | de ceux |
+ | de ceux allou�s par Malloc(). |
RETOUR |
RETOUR |
||
− | 0 si la |
+ | 0 si la lib�ration s'est bien Effectu�e. |
− | ERROR ou le |
+ | ERROR ou le num�ro d'erreur appropri� sinon. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $4A Mshrink |
+ | $4A Mshrink R�tr�cit la taille d'un bloc allou� |
WORD Mshrink(0,bloc,nouvtail) |
WORD Mshrink(0,bloc,nouvtail) |
||
WORD) 0; |
WORD) 0; |
||
LONG bloc; |
LONG bloc; |
||
LONG nouvtail; |
LONG nouvtail; |
||
+ | R�tr�cit la taille d'un bloc m�moire allou�. 'bloc' pointe sur la |
||
− | Rtrcit la taille d'un bloc mmoire allou. 'bloc' pointe sur la |
||
− | page de base d'un programme ou sur un bloc de |
+ | page de base d'un programme ou sur un bloc de m�moire allou� par |
Malloc(), 'nouvtail' est la nouvelle taille du bloc. |
Malloc(), 'nouvtail' est la nouvelle taille du bloc. |
||
− | Le premier argument du bloc doit |
+ | Le premier argument du bloc doit �tre un mot nul. |
RETOUR |
RETOUR |
||
− | 0 si l'ajustement de taille |
+ | 0 si l'ajustement de taille � �t� r�ussi. |
− | EIMBA si l'adresse du bloc |
+ | EIMBA si l'adresse du bloc m�moire �tait invalide. |
− | EGSBF si la nouvelle taille |
+ | EGSBF si la nouvelle taille demand�e �tait Erron�e. |
REMARQUE |
REMARQUE |
||
− | un bloc ne peut |
+ | un bloc ne peut �tre que r�tr�ci; la nouvelle taille du bloc |
+ | doit forc�ment �tre inf�rieure � la pr�c�dente. |
||
− | doit forcment tre infrieure la prcdente. |
||
N.D.T.:Le compilateur 'C' Alcyon rajoute, lors de la compilation, |
N.D.T.:Le compilateur 'C' Alcyon rajoute, lors de la compilation, |
||
− | le premier |
+ | le premier param�tre d'appel '0'. Il ne faut donc pas le mettre |
dans l'appel de la fonction si l'on se sert de ce compilateur. |
dans l'appel de la fonction si l'on se sert de ce compilateur. |
||
Appel de la fonction avec le 'C' Alcyon : Mshrink(bloc,nouvtail); |
Appel de la fonction avec le 'C' Alcyon : Mshrink(bloc,nouvtail); |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $4B Pexec Charge/ |
+ | $4B Pexec Charge/Ex�cute un programme |
WORD Pexec(mode,ptr1,ptr2,ptr3) |
WORD Pexec(mode,ptr1,ptr2,ptr3) |
||
WORD mode; |
WORD mode; |
||
Line 686: | Line 686: | ||
char *ptr3; |
char *ptr3; |
||
− | Cette fonction permet |
+ | Cette fonction permet diff�rentes utilisations selon le drapeau |
'mode': |
'mode': |
||
Line 692: | Line 692: | ||
| mode | ptr1 | ptr2 | ptr3 | |
| mode | ptr1 | ptr2 | ptr3 | |
||
|--------------|--------------|-------------|---------------| |
|--------------|--------------|-------------|---------------| |
||
− | | 0: charge et | le fichier |
+ | | 0: charge et | le fichier � | le jeu de | la cha�ne d' | |
+ | | ex�cute | ex�cuter | commandes | environnement | |
||
− | | excute | excuter | commandes | environnement | |
||
|--------------|--------------|-------------|---------------| |
|--------------|--------------|-------------|---------------| |
||
− | | 3: charge | le fichier |
+ | | 3: charge | le fichier � | le jeu de | la cha�ne d' | |
| sans lancer| charger | commandes | environnement | |
| sans lancer| charger | commandes | environnement | |
||
|--------------|--------------|-------------|---------------| |
|--------------|--------------|-------------|---------------| |
||
+ | | 4: ex�cute | l'adr. de la | (inutilis�) | (inutilis�) | |
||
− | | 4: excute | l'adr. de la | (inutilis) | (inutilis) | |
||
| uniquement| page de base | | | |
| uniquement| page de base | | | |
||
|--------------|--------------|-------------|---------------| |
|--------------|--------------|-------------|---------------| |
||
+ | | 5: cr�e une | (inutilis�) | le jeu de | la cha�ne d' | |
||
− | | 5: cre une | (inutilis) | le jeu de | la chane d' | |
||
| page de base| | commandes | environnement | |
| page de base| | commandes | environnement | |
||
|______________|______________|_____________|_______________| |
|______________|______________|_____________|_______________| |
||
− | Le nom du fichier |
+ | Le nom du fichier � charger ou � ex�cuter, 'ptr1', et la cha�ne du |
− | jeu de commandes, 'ptr2', sont des chemins, |
+ | jeu de commandes, 'ptr2', sont des chemins, termin�s par 0. La |
+ | cha�ne d'environnement 'ptr3', est soit NULL (0L), soit un |
||
− | chane d'environnement 'ptr3', est soit NULL (0L), soit un |
||
− | pointeur sur une structure de |
+ | pointeur sur une structure de cha�ne de la forme: |
− | " |
+ | "cha�ne1\0" |
− | " |
+ | "cha�ne2\0" |
etc... |
etc... |
||
− | " |
+ | "cha�ne3\0" |
"\0" |
"\0" |
||
+ | La cha�ne d'environnement peut �tre n'importe quel num�ro de |
||
− | La chane d'environnement peut tre n'importe quel numro de |
||
+ | cha�ne finie par un 0, suivie par une cha�ne nulle (un simple 0). |
||
− | chane finie par un 0, suivie par une chane nulle (un simple 0). |
||
− | Le programme |
+ | Le programme h�rite d'une copie de la cha�ne d'environnement |
parente si 'ptr3' est 'NULL'. |
parente si 'ptr3' est 'NULL'. |
||
− | Le mode 0 (charge et |
+ | Le mode 0 (charge et ex�cute) chargera le fichier sp�cifi�, |
− | composera sa page de base, et l' |
+ | composera sa page de base, et l'ex�cutera. La valeur retourn�e par |
Pexec() sera le code de sortie du processus enfant (voir Pterm0() |
Pexec() sera le code de sortie du processus enfant (voir Pterm0() |
||
et Pterm()). |
et Pterm()). |
||
− | Le mode 3 (charge sans |
+ | Le mode 3 (charge sans ex�cuter) chargera le fichier sp�cifi�, |
composera la page de base, et retournera un pointeur sur cette |
composera la page de base, et retournera un pointeur sur cette |
||
− | page de base. Le programme n'est pas |
+ | page de base. Le programme n'est pas ex�cut�. |
− | Le mode 4 ( |
+ | Le mode 4 (ex�cute seulement) re�oit un pointeur sur une page de |
− | base. Le programme commence son |
+ | base. Le programme commence son ex�cution au d�but de la zone de |
− | texte, comme |
+ | texte, comme sp�cifi� dans la page de base. |
− | Le mode 5 ( |
+ | Le mode 5 (cr�ation d'une page de base) allouera le plus grand |
− | bloc libre de |
+ | bloc libre de m�moire et cr�era la plus grande partie de sa page |
− | de base. Quelques |
+ | de base. Quelques entr�es comme la taille des zones de |
+ | texte/donn�es initialis�es/donn�es non initialis�es et leur |
||
− | texte/donnes initialises/donnes non initialises et leur |
||
− | adresse de base NE SONT PAS |
+ | adresse de base NE SONT PAS install�es. Le programme appelant en a |
la charge. |
la charge. |
||
− | Un programme enfant |
+ | Un programme enfant h�rite des descripteurs de fichiers standards |
de son parent. Il emploie en fait un appel de Fdup() et de |
de son parent. Il emploie en fait un appel de Fdup() et de |
||
− | Fforce() sur les identificateurs 0 |
+ | Fforce() sur les identificateurs 0 � 5. |
− | Puisque les ressources |
+ | Puisque les ressources syst�me sont allou�s lors de la cr�ation de |
− | la page de base, le processus |
+ | la page de base, le processus engendr� DOIT se terminer en les |
+ | lib�rant. Ceci est particuli�rement important lors de l'emploi |
||
− | librant. Ceci est particulirement important lors de l'emploi |
||
d'overlays. (voir 'le livre de cuisine de Pexec' pour plus de |
d'overlays. (voir 'le livre de cuisine de Pexec' pour plus de |
||
+ | d�tails sur Pexec()). |
||
− | dtails sur Pexec()). |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
$4C Pterm Termine un programme |
$4C Pterm Termine un programme |
||
Line 754: | Line 754: | ||
WORD retcode; |
WORD retcode; |
||
Termine le programme courant, ferme tous les fichiers ouverts et |
Termine le programme courant, ferme tous les fichiers ouverts et |
||
+ | lib�re la m�moire allou�e. Retourne 'retcode' au processus parent. |
||
− | libre la mmoire alloue. Retourne 'retcode' au processus parent. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $4E Fsfirst Recherche la |
+ | $4E Fsfirst Recherche la premi�re occurence d'un fichier |
WORD Fsfirst(fspec,attribs) |
WORD Fsfirst(fspec,attribs) |
||
char *fspec; |
char *fspec; |
||
WORD attribs; |
WORD attribs; |
||
− | Recherche la |
+ | Recherche la premi�re occurence du fichier 'fspec'. Le sp�cifi- |
− | cateur de fichier peut contenir des |
+ | cateur de fichier peut contenir des caract�res sp�ciaux ('?' ou |
− | '*') dans le nom de fichier mais pas dans le chemin de |
+ | '*') dans le nom de fichier mais pas dans le chemin de sp�ci- |
− | fication. 'attribs' |
+ | fication. 'attribs' contr�le le type de fichier qu sera retourn� |
− | par Fsfirst(). Son format a |
+ | par Fsfirst(). Son format a �t� d�crit dans la documentation sur |
'Fattrib()'. |
'Fattrib()'. |
||
− | Si 'attribs' est |
+ | Si 'attribs' est � z�ro, les fichiers normaux seront seuls |
+ | recherch�s (aucun nom de volume, fichier cach�, sous-r�pertoire ou |
||
− | recherchs (aucun nom de volume, fichier cach, sous-rpertoire ou |
||
+ | fichier syst�me ne sera retourn�). Si 'attribs' est positionn� sur |
||
− | fichier systme ne sera retourn). Si 'attribs' est positionn sur |
||
− | les fichiers |
+ | les fichiers cach�s ou sur les fichiers syst�mes, alors ceux_ci |
seront pris en compte pour la recherche. Si 'attribs' est posi- |
seront pris en compte pour la recherche. Si 'attribs' est posi- |
||
+ | tionn� pour trouver un nom de volume, alors seuls les noms de volu- |
||
− | tionn pour trouver un nom de volume, alors seuls les noms de volu- |
||
− | me seront |
+ | me seront recherch�s. |
− | Lorsqu'un fichier est |
+ | Lorsqu'un fichier est trouv�, une structure de 44 octets est |
+ | �crite � l'emplacement point� par le DTA. |
||
− | crite l'emplacement point par le DTA. |
||
_________________________________________________ |
_________________________________________________ |
||
| offset | taille | contenus | |
| offset | taille | contenus | |
||
|--------|----------|-----------------------------| |
|--------|----------|-----------------------------| |
||
− | | 0 |
+ | | 0 � 20 | | (r�serv�s) | |
| 21 | octet | bits d'attributs | |
| 21 | octet | bits d'attributs | |
||
− | | 22 | mot | heure de |
+ | | 22 | mot | heure de cr�ation | |
− | | 24 | mot | date de |
+ | | 24 | mot | date de cr�ation | |
| 26 | long | taille du fichier | |
| 26 | long | taille du fichier | |
||
| 30 | 14 octets| nom et extension du fichier | |
| 30 | 14 octets| nom et extension du fichier | |
||
Line 790: | Line 790: | ||
Le nom de fichier et son extension se terminent par 0, et ne |
Le nom de fichier et son extension se terminent par 0, et ne |
||
contiennent pas d'espaces. |
contiennent pas d'espaces. |
||
− | RETOUR 0 si le fichier a |
+ | RETOUR 0 si le fichier a �t� trouv� |
− | EFILNF si le fichier n'a pas |
+ | EFILNF si le fichier n'a pas �t� trouv�, ou le |
− | + | num�ro d'erreur appropri�. |
|
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
$4F Fsnext Recherche des occurences suivantes |
$4F Fsnext Recherche des occurences suivantes |
||
WORD Fsnext() |
WORD Fsnext() |
||
− | Recherche les occurences suivantes d'un fichier. La |
+ | Recherche les occurences suivantes d'un fichier. La premi�re |
− | occurence devra |
+ | occurence devra �tre recherch�e par Fsfirst(). Les octets de 0 � |
− | 20 doivent rester |
+ | 20 doivent rester inchang�s depuis l'appel de Fsfirst() ou depuis |
le dernier appel de Fsnext(). |
le dernier appel de Fsnext(). |
||
− | RETOUR 0 si le fichier a |
+ | RETOUR 0 si le fichier a �t� trouv� |
− | ENMFIL s'il n'y a plus de fichiers |
+ | ENMFIL s'il n'y a plus de fichiers trouv�s, ou le num�ro |
− | d'erreur |
+ | d'erreur appropri�. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
$56 Frename Renomme un fichier |
$56 Frename Renomme un fichier |
||
Line 811: | Line 811: | ||
char *nouvnom; |
char *nouvnom; |
||
Renomme un fichier 'ancnom' en 'nouvnom'. Le nouveau nom ne doit |
Renomme un fichier 'ancnom' en 'nouvnom'. Le nouveau nom ne doit |
||
+ | pas d�j� exister mais peut �tre dans un autre r�pertoire. |
||
− | pas dj exister mais peut tre dans un autre rpertoire. |
||
− | Le premier |
+ | Le premier param�tre doit �tre 0 (mot). |
RETOUR 0 si OK |
RETOUR 0 si OK |
||
− | EACCDN si le nouveau nom existe |
+ | EACCDN si le nouveau nom existe d�j� |
− | EPTHNF si l'ancien nom n'a pas |
+ | EPTHNF si l'ancien nom n'a pas �t� trouv� |
ENSAME si l'identificateur de disque (A,B,..) n'est |
ENSAME si l'identificateur de disque (A,B,..) n'est |
||
− | pas le |
+ | pas le m�me pour les deux noms. |
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
||
− | $57 Fdatime Fixe ou demande le moment de |
+ | $57 Fdatime Fixe ou demande le moment de cr�ation d'un fichier |
void Fdatime(idfich,pttemp,drap) |
void Fdatime(idfich,pttemp,drap) |
||
WORD idfich; |
WORD idfich; |
||
Line 830: | Line 830: | ||
(l'heure se trouve dans le premier mot, la date dans le second). |
(l'heure se trouve dans le premier mot, la date dans le second). |
||
− | Si 'drap' est |
+ | Si 'drap' est � 1, la date et l'heure sont plac�es dans le fichier |
+ | � partir de 'pttemp'. |
||
− | partir de 'pttemp'. |
||
− | Si 'drap' est |
+ | Si 'drap' est � 0, la date et l'heure sont lues et plac�es dans |
'pttemp'. |
'pttemp'. |
||
*------------------------------------------------------------------* |
*------------------------------------------------------------------* |
Revision as of 15:02, 23 November 2023
***-------------- LES FONCTIONS GEMDOS PAR NUM�RO ---------------*** $00 Pterm0 Fin de processus $01 Cconin Lit un caract�re sur l'entr�e standard $02 Cconout �crit un caract�re sur la sortie standard $03 Cauxin Lit un caract�re sur l'entr�e standard AUX: $04 Cauxout �crit un caract�re sur la sortie standard AUX: $05 Cprnout �crit un caract�re sur la sortie standard PRN: $06 Crawio Lecture/�criture brute sur l'entr�e/sortie standard $07 Crawcin Lecture brute sur l'entr�e standard $08 Cnecin Lit un caract�re sur l'entr�e standard, sans �cho $09 Cconws �crit une cha�ne sur la sortie standard $0A Cconrs Lit une cha�ne format�e sur l'entr�e standard $0B Cconis Teste l'�tat de l'entr�e standard $0E Dsetdrv Fixe le lecteur de disque par d�faut $10 Cconos Teste l'�tat de la sortie standard $11 Cprnos Teste l'�tat du p�riph�rique standard PRN: $12 Cauxis Teste l'�tat du standard AUX: en entr�e $13 Cauxos Teste l'�tat du standard AUX: en sortie $19 Dgetdrv Demande le disque par d�faut $1A Fsetdta Fixe l'adresse du DTA (Disk Transfer Adress) $20 Super Entre/Sort/Demande du mode superviseur $2A Tgetdate Demande la date $2B Tsetdate Fixe la date $2C Tgettime Demande l'heure $2D Tsettime Fixe l'heure $2F Fgetdta Demande l'adresse du DTA (Disk Transfer Adress) $30 Sversion Demande le num�ro de version du GEMDOS $31 Ptermres Finit un programme qui reste r�sident $36 Dfree Demande d'informations sur un disque $39 Dcreate Cr�ation d'un sous-r�pertoire $3A Ddelete Efface un sous-r�pertoire $3B Dsetpath Fixe le catalogue courant $3C Fcreate Cr�ation d'un fichier $3D Fopen Ouvre un fichier $3E Fclose Ferme un fichier $3F Fread Lit un fichier $40 Fwrite �crit un fichier $41 Fdelete Efface un fichier $42 Fseek Positionnement dans un fichier $43 Fattrib Retourne/fixe les attributs de fichier $45 Fdup Recopie un identificateur de fichier standard $46 Fforce Force un identificateur de fichier $47 Dgetpath Demande le r�pertoire courant $48 Malloc Demande d'allocation m�moire $49 Mfree Lib�re de la m�moire $4A Mshrink R�tr�cit un bloc de m�moire allou�e $4B Pexec Charge/Ex�cute un programme $4C Pterm Termine un programme $4E Fsfirst Recherche la premi�re occurrence d'un fichier $4F Fnext Recherche l'occurrence suivante $56 Frename Renomme un fichier $57 Fdatime Demande ou fixe la date de cr�ation d'un fichier ***-------------- FONCTIONS GEMDOS PAR NOM ----------------------*** $03 Cauxin Lit un caract�re sur l'entr�e standard AUX: $12 Cauxis Teste l'�tat du standard AUX: en entr�e $13 Cauxos Teste l'�tat du standard AUX: en sortie $04 Cauxout �crit un caract�re sur la sortie standard AUX: $01 Cconin Lit un caract�re sur l'entr�e standard $0B Cconis Teste l'�tat de l'entr�e standard $10 Cconos Teste l'�tat de la sortie standard $02 Cconout �crit un caract�re sur la sortie standard $0A Cconrs Lit une cha�ne format�e sur l'entr�e standard $09 Cconws �crit une cha�ne sur la sortie standard $08 Cnecin Lit un caract�re sur l'entr�e standard, sans �cho $11 Cprnos Teste l'�tat du p�riph�rique standard PRN: $05 Cprnout �crit un caract�re sur la sortie standard PRN: $07 Crawcin Lecture brute sur l'entr�e standard $06 Crawio Lecture/�criture brute sur l'entr�e/sortie standard $39 Dcreate Cr�ation d'un sous-r�pertoire $3A Ddelete Efface un sous-r�pertoire $36 Dfree Demande d'informations sur un disque $19 Dgetdrv Demande le disque par d�faut $47 Dgetpath Demande le r�pertoire courant $0E Dsetdrv Fixe le lecteur de disque par d�faut $3B Dsetpath Fixe le catalogue courant $43 Fattrib Retourne/fixe les attributs de fichier $3E Fclose Ferme un fichier $3C Fcreate Cr�ation d'un fichier $57 Fdatime Demande ou fixe la date de cr�ation d'un fichier $41 Fdelete Efface un fichier $45 Fdup Recopie un identificateur de fichier standard $46 Fforce Force un identificateur de fichier $2F Fgetdta Demande l'adresse du DTA (Disk Transfer Adress) $3D Fopen Ouvre un fichier $3F Fread Lit un fichier $56 Frename Renomme un fichier $42 Fseek Positionnement dans un fichier $1A Fsetdta Fixe l'adresse du DTA (Disk Transfer Adress) $4E Fsfirst Recherche la premi�re occurrence d'un fichier $4F Fnext Recherche l'occurrence suivante $40 Fwrite �crit dans un fichier $48 Malloc Demande d'allocation m�moire $49 Mfree Lib�re de la m�moire $4A Mshrink R�tr�cit un bloc de m�moire allou�e $4B Pexec Charge/Ex�cute un programme $4C Pterm Termine un programme $00 Pterm0 Termine un programme (code de retour 0) $31 Ptermres Termine un programme qui reste r�sident $20 Super Entre/Sort/Demande du mode superviseur $30 Sversion Demande le num�ro de version du GEMDOS $2A Tgetdate Demande la date $2C Tgettime Demande l'heure $2B Tsetdate Fixe la date $2D Tsettime Fixe l'heure *------------------------------------------------------------------* $00 Pterm0 Finit un programme void Pterm0() Termine un processus, fermant tous les fichiers qu'il a ouvert et lib�rant la m�moire qu'il a allou�e. Retourne $0000 comme code de sortie au programme parent. *------------------------------------------------------------------* $01 Cconin Lit un caract�re sur l'entr�e standard LONG Cconin() Lit un caract�re sur l'entr�e standard (identificateur 0). Si l'entr�e standard est la console, le long_mot retourn� dans D0 contient le code ASCII et le code clavier de la touche appuy�e (code de scrutation) : ________________________________________________ | 31..24 | 23.. 16 | 15..8 | 7..0 | |-------------|-----------|----------|-----------| | | code de | | | | $00 ou bits | scrutation| $00 | caract�re | | de shift | ou $00 | | ASCII | |_____________|___________|__________|___________| Les touches de fonction (F1 � F10, HELP, UNDO, etc...) retournent le code ASCII $00, avec le code clavier appropri� (cf. le manuel sur le clavier intelligent pour la valeur des codes clavier). Le ST BIOS place l'�tat des touches sp�ciales dans les bits 24 � 31 (voir le Guide du programmeur du BIOS pour plus de d�tails). ERREURS Ne retourne aucune indication de fin de fichier. Ne reconna�t pas 'Control_C' Impossible de savoir si l'entr�e est un p�riph�rique � carac- t�res ou un fichier. Il devrait exister un moyen de taper les 256 codes possibles � partir du clavier. *------------------------------------------------------------------* $02 Cconout Ecrit un caract�re sur la sortie standard void Cconout(c) WORD c �crit le caract�re 'c' sur la sortie standard (identificateur 0). Les huit bits les plus significatifs de 'c' sont r�serv�s et doivent �tre � z�ro. Les tabulations ne sont pas interpr�t�es. *------------------------------------------------------------------* $03 Cauxin Lit un caract�re sur l'entr�e standard AUX: WORD Cauxin() Lit un caract�re � partir de l'identificateur 1 (le port s�rie AUX:, normalement). REMARQUE Le contr�le de flux de la sortie RS232 ne marche pas avec cette fonction. Les programmes devraient utiliser l'appel de p�riph�rique de caract�re BIOS afin d'�viter de perdre des caract�res re�us. *------------------------------------------------------------------* $04 Cauxout �crit un caract�re sur la sortie standard AUX: void Cauxout(c) WORD c *------------------------------------------------------------------* $05 Cprnout �crit un caract�re sur la sortie standard PRN: void Cprnout(c) WORD c �crit 'c' sur l'identificateur 2 (le port imprimante PRN:, norma- lement). Les huits bits hauts de 'c' sont r�serv�s et doivent �tre � z�ro. Les tabulations ne sont pas interpr�t�es. *------------------------------------------------------------------* $06 Crawio Lecture/�criture brute sur l'entr�e/sortie standard LONG Crawio(w) WORD w; REMARQUES Par le fait m�me de sa conception cette fonction ne peut �crire '$ff' sur la sortie standard. $00 ne peut �tre diff�renci� d'une fin de fichier. *------------------------------------------------------------------* $07 Crawcin Entr�e brute sur l'entr�e standard LONG Crawcin() REMARQUE Pas d'indication de fin de fichier. *------------------------------------------------------------------* $08 Cnecin Lit un caract�re sur l'entr�e standard, sans �cho LONG Cnecin() Lit un caract�re sur l'entr�e standard. Si le p�riph�rique d'entr�e est 'CON:', aucun �cho n'est fait. Les caract�res de contr�le sont interpr�t�s. *------------------------------------------------------------------* $09 Cconws Ecrit une cha�ne sur la sortie standard void Cconws(cha�ne) char *cha�ne; �crit une cha�ne d�butant � 'cha�ne' et finissant par 0, sur la sortie standard. *------------------------------------------------------------------* $0A Cconrs Lit une cha�ne sur l'entr�e standard void Cconrs(buf) char *buf; Lit une cha�ne sur l'entr�e standard. Les caract�res de contr�le habituels sont interpr�t�s : ____________________________________________ | Caract�re | Fonction | |--------------|-----------------------------| | <return>, ^J | Fin de ligne | | ^H, <rub> | Efface le dernier caract�re | | ^U, ^X | Efface la ligne enti�re | | ^R | Recopie la ligne | | ^C | Fini le programme | |______________|_____________________________| Le premier caract�re de 'buf' contient le nombre maximum d'octets � lire (taille du tampon moins deux). En sortie, le deuxi�me octet contient le nombre de caract�res lus. La cha�ne se trouve entre 'buf+2' et 'buf+2+buf[1]'. Il n'est pas garanti que la cha�ne se finisse par 0. REMARQUE Plante sur les fins de fichiers. *------------------------------------------------------------------* $0B Cconis Teste l'�tat de l'entr�e standard WORD Cconis() Retourne $FFFF si un caract�re est disponible sur l'entr�e standard, $0000 sinon. *------------------------------------------------------------------* $0E Dsetdrv Fixe le lecteur de disque par d�faut LONG Dsetdrv(drv) WORD drv; Fixe le disque 'drv' par d�faut. Les disques sont rang�s de 0 � 15 (A: � P:). Retourne dans D0.L la carte des disques actifs: (bit 0 = A, bit 1 = B, etc..). Un 'disque actif' est un disque � partir duquel un catalogue a �t� fait. REMARQUE Le GEMDOS ne supporte que 16 disques (bits 0 � 15). Les syst�mes ult�rieurs en supporteront 32 . *------------------------------------------------------------------* $10 Cconos Teste l'�tat de la sortie standard WORD Cconos() Renvoie $FFFF si la console est pr�te � recevoir un caract�re, $0000 si la console n'est PAS pr�te. *------------------------------------------------------------------* $11 Cprnos Teste l'�tat de la sortie standard PRN: WORD Cprnos() Retourne $FFFF si 'PRN:' est pr�t � recevoir un caract�re, $0000 sinon. *------------------------------------------------------------------* $12 Cauxis Teste l'�tat de l'entr�e standard AUX: WORD Cauxis() Retourne $FFFF si un caract�re est disponible sur l'entr�e 'AUX:' (identificateur 1), $0000 sinon. *------------------------------------------------------------------* $13 Cauxos Teste l'�tat de la sortie standard AUX: WORD Cauxos() Renvoie $FFFF si 'AUX:' (identificateur 1) est pr�t � recevoir un caract�re, $0000 sinon. *------------------------------------------------------------------* $19 Dgetdrv Recherche le lecteur de disque par d�faut WORD Dgetdrv() Retourne le num�ro du lecteur courant, compris entre 0 et 15. *------------------------------------------------------------------* $1A Fsetdta Fixe l'adresse du DTA (Disk Transfer Adress) void Fsetdta(adr) char adr; Fixe l'adresse du DTA � 'adr'. Le tampon de stockage des donn�es sur un fichier (DTA) ne sert que pour les fonctions Fsfirst() et Fsnext(). *------------------------------------------------------------------* $20 Super Change/teste le mode (Utilisateur ou Superviseur) LONG Super(pile) WORD *pile; 'pile' est �gal � -1L ($FFFFFFFF): la fonction retourne $0000 si le processeur est en mode Utilisateur, $0001 s'il est en mode Superviseur. 'pile' est diff�rent de -1L: si le processeur est en mode Utilisateur, la fonction revient avec le processeur en mode Superviseur. Si 'pile' est NUL ($00000000), la pile superviseur sera la m�me que la pile Utilisateur avant l'appel. Sinon la pile Superviseur sera plac�e � 'pile'. Si le processeur �tait en mode Superviseur, il se retrouve en mode Utilisateur au retour de la fonction. 'pile' devra �tre la valeur de la pile utilisateur qui a �t� retourn�e par le premier appel de la fonction. ATTENTION La pile Superviseur originale doit �tre replac�e avant la fin du programme sinon le syst�me plantera � la sortie du programme. *------------------------------------------------------------------* $2A Tgetdate Demande la date WORD Tgetdate() Retourne la date en format DOS : 15 __________________9_8_________5_4_________0 | Ann�e depuis 1980 | mois | jour | | 0.....119 | 1...12 | 1...31 | |_____________________|___________|___________| RETOUR les bits 0 � 4 contiennent le jour allant de 1 � 31. les bits 5 � 8 contiennent le mois allant de 1 � 12. les bits 9 � 15 contiennent l'ann�e (� partir de 1980) allant de 0 � 119. *------------------------------------------------------------------* $2B Tsetdate Fixe la date WORD Tsetdate(date) WORD date; Fixe 'date' comme date courante dans le format d�crit dans Tgetdate(). RETOUR 0 si la date est valide. ERROR si le format de la date est incorrect. REMARQUES Le GEMDOS n'est pas difficile sur la date; par exemple le 31 F�vrier ne lui d�pla�t pas. Le GEMDOS ne pr�vient PAS le BIOS que la date a chang�e. *------------------------------------------------------------------* $2C Tgettime Demande l'heure WORD Tgettime() Retourne l'heure courante dans le format DOS: 15__________11_10________5_4__________0 | heure | minute | seconde | | 0...23 | 0...59 | 0...28 | |______________|___________|____________| RETOUR Les bits : 0 � 4 contiennent les secondes divis�es par 2 (0 � 28) 5 � 10 contiennent les minutes (0 � 59) 11 � 15 contiennent les heures (0 � 23) *------------------------------------------------------------------* $2D Tsettime Fixe l'heure WORD Tsettime(heure) WORD heure; Fixe 'heure' comme heure courante dans le format d�crit dans Tgettime(). RETOUR 0 si le format de l'heure fournie est valide; ERROR si le format de l'heure n'est pas valide. REMARQUE Le GEMDOS ne pr�vient pas le BIOS que l'heure a chang�. *------------------------------------------------------------------* $2F Fgetdta Demande l'adresse du DTA (Disk Transfer Address) LONG Fgetdta() Retourne l'adresse courante du tampon de stockage des donn�es sur un fichier (DTA), employ�e par les fonctions Fsfirst() et Fsnext(). *------------------------------------------------------------------* $30 Sversion Demande le num�ro de version du GEMDOS WORD Sversion() Retourne le num�ro de version du GEMDOS en format invers�. L'octet le plus significatif contient la partie basse du num�ro, l'octet le moins significatif, la partie haute. REMARQUES La version du GEMDOS sur disquette du 29/5/85 et la premi�re version en ROM du 20/11/85 ont $1300 comme num�ro. Les num�ros de version du GEMDOS et du TOS ne sont PAS les m�mes. (cf. LE MANUEL DE REFERENCE DU BIOS DU ST pour le num�ro de version du TOS). *------------------------------------------------------------------* $31 Ptermres Finit un programme qui reste r�sident void Permres( nbrest,coderet) LONG nbrest; WORD coderet; Finit le programme courant, en conservant une part de sa m�moire. 'nbrest' le est nombre d'octets appartenant au programme qui doivent �tre gard�s, comprenant et commen�ant � la page de base. 'coderet' est le code de sortie qui est retourn� au programme parent. La m�moire que le programme a allou�e (en plus de sa zone TPA) N'EST PAS lib�r�e. Il est impossible de rappeler le programme termin� par Ptermres(). REMARQUE Les fichiers ouverts sont ferm�s lors de la fin de processus. *------------------------------------------------------------------* $36 Dfree Demande l'espace libre sur un disque void Dfree(buf,nbdisq) LONG *buf; WORD nbdisq; Demande des informations sur le disque 'nbdisq' et les place dans quatre longs_mots commen�ant � 'buf': __________________________________________________ | buf + 0 | nombre de blocs libres sur le disque | |-----------|--------------------------------------| | buf + 4 | nombre total de blocs sur le disque | |-----------|--------------------------------------| | buf + 8 | taille d'un secteur en octets | |-----------|--------------------------------------| | buf + 12 | nombre de secteurs par bloc | |___________|______________________________________| REMARQUE Incroyablement lent sur un disque dur (5 � 10 secondes). *------------------------------------------------------------------* $39 Dcreate Cr�ation d'un sous_r�pertoire de disque C WORD Dcreate(chemin) char *chemin; 'Chemin' pointe sur une cha�ne termin�e par 0 sp�cifiant le chemin du nouveau r�pertoire. RETOUR 0 en cas de succ�s; ERROR ou le num�ro d'erreur appropri� en cas d'�chec. *------------------------------------------------------------------* $3A Ddelete Efface un sous_r�pertoire WORD Ddelete(chemin) char *chemin; Efface un r�pertoire qui doit �tre vide (il peut toutefois comporter les fichiers sp�ciaux "." et ".."). 'chemin' pointe sur une cha�ne termin�e par z�ro, sp�cifiant le chemin du r�pertoire � effacer. RETOUR 0 en cas de succ�s; ERROR ou le num�ro d'erreur appropri� en cas d'�chec. *------------------------------------------------------------------* $3B Dsetpath Fixe le r�pertoire courant WORD Dsetpath(chemin) char *chemin; Fixe 'chemin', (une cha�ne termin�e par 0), comme r�pertoire courant. Si le chemin commence par une lettre identificatrice de disque suivie de deux-points, le r�pertoire courant est plac� sur le lecteur sp�cifi�. Le syst�me conserve un r�pertoire courant pour chaque lecteur. RETOUR 0 en cas de succ�s; ERROR ou le num�ro d'erreur appropri� en cas d'echec. *------------------------------------------------------------------* $3C Fcreate Cr�ation d'un fichier WORD Fcreate(nomfich,attribs) char *nomfich; WORD attribs; Cr�e un fichier 'nomfich' et retourne son identificateur, non standard, d'�criture seule. Le mot d'attributs est stock� dans le r�pertoire; les bits d'attributs sont : _________________________________________________________ | masque | description | |---------|-----------------------------------------------| | $01 | fichier cr�� en lecture seule | | $02 | fichier transparent au r�pertoire | | $04 | fichier syst�me | | $08 | fichier contenant un nom de volume sur 11 bits | |________|______________________________________-_________| RETOUR Un nombre positif, l'identificateur ou : ERROR ou le num�ro d'erreur appropri�. REMARQUES Si le bit de lecture seule est positionn�, un identificateur d'�criture seule est retourn�, et, de plus, cet identificateur ne permet pas d'�crire. Th�oriquement, un seul num�ro de volume est permis sur un r�pertoire racine. Le GEMDOS n'impose rien de tel, ce qui peut causer quelque confusion. *------------------------------------------------------------------* $3D Fopen Ouverture d'un fichier WORD Fopen(nmfich,mode) char *nmfich; WORD mode; Ouvre le fichier 'nmfich' en mode 'mode' et retourne son identifi- cateur non standard. Le mode d'ouverture peut �tre: ____________________________ | mode | description | |------|---------------------| | 0 | lecture seule | | 1 | �criture seule | | 2 | lecture et �criture | |______|_____________________| RETOUR Un nombre positif, l'identificateur Un num�ro d'erreur n�gatif. *------------------------------------------------------------------* $3E Fclose Fermeture d'un fichier WORD Fclose(idfich) WORD idfich; Ferme le fichier dont l'identificateur est 'idfich'. RETOUR 0 en cas de succ�s; ERROR ou un num�ro d'erreur appropri� en cas d'�chec. *------------------------------------------------------------------* $3F Fread Lecture sur un fichier LONG Fread(idfich,nbre,buffer) WORD idfich; LONG nbre; char *buffer; Lit 'nbre' octets dans le fichier d'identificateur 'idfich', et les place en m�moire � partir de l'adresse 'buffer'. RETOUR Le nombre d'octets r�ellement lus, ou: 0 si code de fin de fichier, Un num�ro d'erreur n�gatif. *------------------------------------------------------------------* $40 Fwrite �criture sur un fichier LONG Fwrite(idfich,nbre,buffer) WORD idfich; LONG nbre; char *buffer; �crit 'nbre' octets de la m�moire � partir de l'adresse 'buffer', dans le fichier ayant comme identificateur 'idfich'. RETOUR Le nombre d'octets r�ellement �crits en cas de succ�s. Un num�ro d'erreur n�gatif autrement. *------------------------------------------------------------------* $41 Fdelete Effacement d'un fichier WORD Fdelete(nomfich) char *nomfich; Efface le fichier ayant comme nom 'nomfich'. RETOUR 0 en cas de succ�s Un num�ro d'erreur n�gatif autrement. *------------------------------------------------------------------* $42 Fseek Positionne le pointeur de fichier LONG Fseek(offset,idfich,mode) LONG offset; WORD idfich; WORD mode; Positionne le pointeur dans le fichier d�fini par l'identificateur 'idfich'. 'offset' est un nombre sign�; une valeur positive d�place le pointeur vers la fin du fichier, une valeur n�gative, vers le d�but. Le 'mode' de positionnement peut �tre : _____________________________________________ | mode | D�placement d'offset octets... | |-------|------------------------------------| | 0 | � partir du d�but du fichier | | 1 | � partir de la position courante | | 2 | � partir de la fin du fichier | |_______|____________________________________| RETOUR La position courante dans le fichier. Un num�ro d'erreur n�gatif si erreur. *------------------------------------------------------------------* $43 Fattrib Fixe ou demande les attributs d'un fichier WORD Fattrib(nmfich,drap,attribs) char *nmfich; WORD drap; WORD attribs; 'nmfich' pointe sur un chemin termin� par 0. Si 'drap' a la valeur 1, les attributs de fichier 'attribs' sont fix�s (pas de valeur de retour). Si 'drap' est 0, ils sont retourn�s. Les bits d'attributs sont : _________________________________________________________ | masque | description | |--------|------------------------------------------------| | $01 | fichier � lecture seule | | $02 | fichier transparent au r�pertoire | | $04 | fichier 'syst�me' | | $08 | fichier contenant un nom de volume (11 octets) | | $10 | fichier sous-r�pertoire | | $20 | fichier �crit puis referm� | |________|________________________________________________| REMARQUE Le bit d'archivage, $20, ne semble pas marcher comme pr�vu. *------------------------------------------------------------------* $45 Fdup Duplique un identificateur de fichier WORD Fdup(idfich) WORD idfich; L'identificateur 'idfich' doit �tre un identificateur standard (0 � 5). Fdup() retourne un identificateur non standard (sup�rieur ou �gal � 6) qui pointe le m�me fichier. RETOUR Un identificateur ou : EIHNDL 'idfich' n'est pas un identificateur standard ENHNDL Plus d'identificateur non standard *------------------------------------------------------------------* $46 Fforce Force un identificateur de fichier Fforce(stdh,nonstdh) WORD stdh; WORD nonstdh; Force l'identificateur standard 'stdh' � pointer le m�me fichier ou p�riph�rique que l'identificateur non-standard 'nonstdh'. RETOUR 0 si OK EIHNDL identificateur invalide. *------------------------------------------------------------------* $47 Dgetpath Demande le r�pertoire courant void Dgetpath(buf,driveno) char *buf; WORD driveno; Le r�pertoire courant pour le lecteur 'driveno' est recopi� dans 'buf'. Le num�ro de lecteur commence � 1 pour le lecteur A:, 2 pour le B:, etc..., 0 sp�cifiant le disque par d�faut. REMARQUE La taille maximum d'un chemin n'est pas limit�e par le sys- t�me. C'est � l'application de fournir assez de place pour le tampon. 128 octets semblent suffisants pour 8 ou 9 sous-r�per- toires. *------------------------------------------------------------------* $48 Malloc Demande d'allocation m�moire LONG Malloc(taille) LONG taille; Si 'taille' est -1L ($FFFFFFFF) la fonction retourne la taille du plus grand bloc libre du syst�me. Autrement si 'taille' est diff�rent de -1L, la fonction essaie d'allouer 'taille' octets pour le programme en cours. La fonction retourne un pointeur sur le d�but du bloc allou� si tout s'est bien pass�, ou NULL s'il n'exis- tait pas de bloc assez grand pour satisfaire la requ�te. REMARQUE Un programme ne peut avoir, � un instant donn� plus de 20 blocs allou�s par 'Malloc()'. D�passer cette limite peut d�semparer le GEMDOS. (Il est cependant possible de faire le nombre de 'Malloc()' que l'on veut � condition de les faire suivre par l'appel de la fonction Mfree(), 20 �tant le nombre maximum de fragments qu'un programme peut g�n�rer). *------------------------------------------------------------------* $49 Mfree Lib�ration de m�moire WORD Mfree(adbloc) LONG adbloc; Lib�re le bloc m�moire commen�ant � 'adbloc'. Le bloc doit �tre un de ceux allou�s par Malloc(). RETOUR 0 si la lib�ration s'est bien Effectu�e. ERROR ou le num�ro d'erreur appropri� sinon. *------------------------------------------------------------------* $4A Mshrink R�tr�cit la taille d'un bloc allou� WORD Mshrink(0,bloc,nouvtail) WORD) 0; LONG bloc; LONG nouvtail; R�tr�cit la taille d'un bloc m�moire allou�. 'bloc' pointe sur la page de base d'un programme ou sur un bloc de m�moire allou� par Malloc(), 'nouvtail' est la nouvelle taille du bloc. Le premier argument du bloc doit �tre un mot nul. RETOUR 0 si l'ajustement de taille � �t� r�ussi. EIMBA si l'adresse du bloc m�moire �tait invalide. EGSBF si la nouvelle taille demand�e �tait Erron�e. REMARQUE un bloc ne peut �tre que r�tr�ci; la nouvelle taille du bloc doit forc�ment �tre inf�rieure � la pr�c�dente. N.D.T.:Le compilateur 'C' Alcyon rajoute, lors de la compilation, le premier param�tre d'appel '0'. Il ne faut donc pas le mettre dans l'appel de la fonction si l'on se sert de ce compilateur. Appel de la fonction avec le 'C' Alcyon : Mshrink(bloc,nouvtail); *------------------------------------------------------------------* $4B Pexec Charge/Ex�cute un programme WORD Pexec(mode,ptr1,ptr2,ptr3) WORD mode; char *ptr1; char *ptr2; char *ptr3; Cette fonction permet diff�rentes utilisations selon le drapeau 'mode': ___________________________________________________________ | mode | ptr1 | ptr2 | ptr3 | |--------------|--------------|-------------|---------------| | 0: charge et | le fichier � | le jeu de | la cha�ne d' | | ex�cute | ex�cuter | commandes | environnement | |--------------|--------------|-------------|---------------| | 3: charge | le fichier � | le jeu de | la cha�ne d' | | sans lancer| charger | commandes | environnement | |--------------|--------------|-------------|---------------| | 4: ex�cute | l'adr. de la | (inutilis�) | (inutilis�) | | uniquement| page de base | | | |--------------|--------------|-------------|---------------| | 5: cr�e une | (inutilis�) | le jeu de | la cha�ne d' | | page de base| | commandes | environnement | |______________|______________|_____________|_______________| Le nom du fichier � charger ou � ex�cuter, 'ptr1', et la cha�ne du jeu de commandes, 'ptr2', sont des chemins, termin�s par 0. La cha�ne d'environnement 'ptr3', est soit NULL (0L), soit un pointeur sur une structure de cha�ne de la forme: "cha�ne1\0" "cha�ne2\0" etc... "cha�ne3\0" "\0" La cha�ne d'environnement peut �tre n'importe quel num�ro de cha�ne finie par un 0, suivie par une cha�ne nulle (un simple 0). Le programme h�rite d'une copie de la cha�ne d'environnement parente si 'ptr3' est 'NULL'. Le mode 0 (charge et ex�cute) chargera le fichier sp�cifi�, composera sa page de base, et l'ex�cutera. La valeur retourn�e par Pexec() sera le code de sortie du processus enfant (voir Pterm0() et Pterm()). Le mode 3 (charge sans ex�cuter) chargera le fichier sp�cifi�, composera la page de base, et retournera un pointeur sur cette page de base. Le programme n'est pas ex�cut�. Le mode 4 (ex�cute seulement) re�oit un pointeur sur une page de base. Le programme commence son ex�cution au d�but de la zone de texte, comme sp�cifi� dans la page de base. Le mode 5 (cr�ation d'une page de base) allouera le plus grand bloc libre de m�moire et cr�era la plus grande partie de sa page de base. Quelques entr�es comme la taille des zones de texte/donn�es initialis�es/donn�es non initialis�es et leur adresse de base NE SONT PAS install�es. Le programme appelant en a la charge. Un programme enfant h�rite des descripteurs de fichiers standards de son parent. Il emploie en fait un appel de Fdup() et de Fforce() sur les identificateurs 0 � 5. Puisque les ressources syst�me sont allou�s lors de la cr�ation de la page de base, le processus engendr� DOIT se terminer en les lib�rant. Ceci est particuli�rement important lors de l'emploi d'overlays. (voir 'le livre de cuisine de Pexec' pour plus de d�tails sur Pexec()). *------------------------------------------------------------------* $4C Pterm Termine un programme void Pterm(retcode) WORD retcode; Termine le programme courant, ferme tous les fichiers ouverts et lib�re la m�moire allou�e. Retourne 'retcode' au processus parent. *------------------------------------------------------------------* $4E Fsfirst Recherche la premi�re occurence d'un fichier WORD Fsfirst(fspec,attribs) char *fspec; WORD attribs; Recherche la premi�re occurence du fichier 'fspec'. Le sp�cifi- cateur de fichier peut contenir des caract�res sp�ciaux ('?' ou '*') dans le nom de fichier mais pas dans le chemin de sp�ci- fication. 'attribs' contr�le le type de fichier qu sera retourn� par Fsfirst(). Son format a �t� d�crit dans la documentation sur 'Fattrib()'. Si 'attribs' est � z�ro, les fichiers normaux seront seuls recherch�s (aucun nom de volume, fichier cach�, sous-r�pertoire ou fichier syst�me ne sera retourn�). Si 'attribs' est positionn� sur les fichiers cach�s ou sur les fichiers syst�mes, alors ceux_ci seront pris en compte pour la recherche. Si 'attribs' est posi- tionn� pour trouver un nom de volume, alors seuls les noms de volu- me seront recherch�s. Lorsqu'un fichier est trouv�, une structure de 44 octets est �crite � l'emplacement point� par le DTA. _________________________________________________ | offset | taille | contenus | |--------|----------|-----------------------------| | 0 � 20 | | (r�serv�s) | | 21 | octet | bits d'attributs | | 22 | mot | heure de cr�ation | | 24 | mot | date de cr�ation | | 26 | long | taille du fichier | | 30 | 14 octets| nom et extension du fichier | |________|__________|_____________________________| Le nom de fichier et son extension se terminent par 0, et ne contiennent pas d'espaces. RETOUR 0 si le fichier a �t� trouv� EFILNF si le fichier n'a pas �t� trouv�, ou le num�ro d'erreur appropri�. *------------------------------------------------------------------* $4F Fsnext Recherche des occurences suivantes WORD Fsnext() Recherche les occurences suivantes d'un fichier. La premi�re occurence devra �tre recherch�e par Fsfirst(). Les octets de 0 � 20 doivent rester inchang�s depuis l'appel de Fsfirst() ou depuis le dernier appel de Fsnext(). RETOUR 0 si le fichier a �t� trouv� ENMFIL s'il n'y a plus de fichiers trouv�s, ou le num�ro d'erreur appropri�. *------------------------------------------------------------------* $56 Frename Renomme un fichier WORD Frename(0,ancnom,nouvnom) WORD) 0; char *ancnom; char *nouvnom; Renomme un fichier 'ancnom' en 'nouvnom'. Le nouveau nom ne doit pas d�j� exister mais peut �tre dans un autre r�pertoire. Le premier param�tre doit �tre 0 (mot). RETOUR 0 si OK EACCDN si le nouveau nom existe d�j� EPTHNF si l'ancien nom n'a pas �t� trouv� ENSAME si l'identificateur de disque (A,B,..) n'est pas le m�me pour les deux noms. *------------------------------------------------------------------* $57 Fdatime Fixe ou demande le moment de cr�ation d'un fichier void Fdatime(idfich,pttemp,drap) WORD idfich; LONG pttemp; WORD drap; Le fichier est reconnu par son identificateur 'idfich'. 'pttemp' pointe sur deux mots contenant l'heure et la date en format DOS (l'heure se trouve dans le premier mot, la date dans le second). Si 'drap' est � 1, la date et l'heure sont plac�es dans le fichier � partir de 'pttemp'. Si 'drap' est � 0, la date et l'heure sont lues et plac�es dans 'pttemp'. *------------------------------------------------------------------*
Back to ASM_Tutorial