files.asm
This is an old revision of the document!
Retourner à la liste des fichiers
* NRDOS.MO5 version 3.5
* FILES.ASM (Gestion de fichiers)
************************************************************************************************************
* FOPENR
* Ouvre un fichier en lecture
************************************************************************************************************
FOPENR SET *
LDA #OUVFL ; Consigne OUVFL
STA CSGNTA,PCR
LBSR XCNSGN ; Exécute la consigne
BNE ONEND
LDA CRBUFF+1,PC
STA FNHNDL,PCR ; Récupère le descripteur de fichier
LDA #FBFSIZ ; et initialise les variables de gestion du buffer
STA BUFPOS,PCR
LDD #0
STD FP242,PCR ; Position dans le fichier sur 24 bits
STA FP240,PCR
STA FRERR,PCR
LDA #$FF
STA FOFLG,PCR
ONEND RTS
FNHNDL FCB 0 ; Descripteur de fichier
FOFLG FCB 0 ; Flag de fichier ouvert
BUFPOS FCB FBFSIZ ; Position courante dans le buffer de lecture de fichier
FP242 FCB 0 ; Position courante dans le fichier (24 bits)
FP241 FCB 0
FP240 FCB 0
BREAD FCB 0 ; Nombre d'octets effectivement lus
FRERR FCB 0 ; Résultat de la lecture (erreur ou EOF)
FBUFFR RMB FBFSIZ ; Buffer de lecture de fichier
************************************************************************************************************
* FCLOSE
* Ferme le fichier courant
************************************************************************************************************
FCLOSE SET *
TST FOFLG,PCR
BEQ FCEND
LDA #0
STA CSGNOP,PCR
LDA #SYSFIC
STA CSGNTR,PCR
LDA FNHNDL
STA CSGNDK,PCR
LDA #FERFI ; Consigne FERFI
STA CSGNTA,PCR
LEAX CNSGN,PCR
JSR RESEAU ; Exécute la consigne
CLR FOFLG,PCR
LDA #$FF
STA FNHNDL,PCR
FCEND RTS
************************************************************************************************************
* FGETCH
* Lit un caractère depuis un fichier en ignorant les LF
************************************************************************************************************
FGETCH TST FOFLG,PCR
BNE FGREAD
RTS
FGREAD BSR FREAD ; Lit un octet brut
CMPB #LF ; Ignore les LF
BEQ FGREAD
RTS
files.asm.1765475723.txt.gz · Last modified: by fool-duplex
