User Tools

Site Tools


files.asm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
files.asm [2025/12/11 18:55] – created fool-duplexfiles.asm [2026/01/05 17:41] (current) – fool-duplex
Line 14: Line 14:
        BNE    ONEND                 BNE    ONEND         
                                                            
-       LDA    CRBUFF+1,PC   +       LDA    CRXT0,PCR   
        STA    FNHNDL,PCR      ; Récupère le descripteur de fichier        STA    FNHNDL,PCR      ; Récupère le descripteur de fichier
        LDA    #FBFSIZ         ; et initialise les variables de gestion du buffer        LDA    #FBFSIZ         ; et initialise les variables de gestion du buffer
Line 34: Line 34:
 BREAD  FCB    0              ; Nombre d'octets effectivement lus BREAD  FCB    0              ; Nombre d'octets effectivement lus
 FRERR  FCB    0              ; Résultat de la lecture (erreur ou EOF) FRERR  FCB    0              ; Résultat de la lecture (erreur ou EOF)
-FBUFFR RMB    FBFSIZ         ; Buffer de lecture de fichier+FBUFFR RMB    FBFSIZ,0       ; Buffer de lecture de fichier
  
 ************************************************************************************************************ ************************************************************************************************************
Line 44: Line 44:
        BEQ    FCEND                 BEQ    FCEND         
        LDA    #0        LDA    #0
-       STA    CSGNOP,PCR+       STA    CSGDST,PCR
        LDA    #SYSFIC               LDA    #SYSFIC       
        STA    CSGNTR,PCR        STA    CSGNTR,PCR
Line 62: Line 62:
 * Lit un caractère depuis un fichier en ignorant les LF * Lit un caractère depuis un fichier en ignorant les LF
 ************************************************************************************************************ ************************************************************************************************************
-FGETCH TST    FOFLG,PCR+FGETCH SET    * 
 +       TST    FOFLG,PCR
        BNE    FGREAD                BNE    FGREAD        
  
Line 71: Line 72:
        BEQ    FGREAD                BEQ    FGREAD        
  
-       RTS                   +       RTS   
 + 
 +************************************************************************************************************ 
 +* FREAD 
 +* Remplit le buffer de lecture de fichier et renvoie un caractère 
 +************************************************************************************************************ 
 +FREAD  SET    *                 
 +       PSHS   CC,A,DP,X,Y,U     
 + 
 +FRNXTB LDA    BUFPOS,PCR     
 +       BMI    FRFILE          ; Faut-il chercher la suite ? 
 + 
 +       LEAX   FBUFFR,PCR      ; Non, on lit un caractère dans le buffer 
 +       LDB    A,X               
 +       INCA                     
 +       STA    BUFPOS,PCR     
 +       BMI    FRFULL          ; On est déjà au bout ? 
 + 
 +       CMPA   BREAD,PCR      
 +       BCC    FRSTOP          ; On est déjà au bout ?  
 + 
 +FRFULL CMPB   #EOF              
 +       LBNE   FREND             
 + 
 +FRSTOP BSR    FCLOSE            
 +       LDB    #EOF              
 +       LBRA   FREND             
 + 
 +FRFILE LDB    FRERR,PCR        
 +       BEQ    FRFTCH          ; Pas d'erreur ?  
 + 
 +       LDB    #EOF              
 +       LBRA   FREND             
 + 
 +FRFTCH LDA    #0              ; Central 
 +       STA    CSGDST,PCR     
 +       LDA    #SYSFIC           
 +       STA    CSGNTR,PCR     
 +       LDA    FNHNDL            
 +       STA    CSGNDK,PCR     
 +       LDD    FP242,PCR      
 +       STD    CSGNFN,PCR     
 +       LDA    FP240,PCR      
 +       STA    CSGSZ0,PCR  
 +       LEAX   FBUFFR,PCR     
 +       STX    CSGNAD,PCR     
 +       LDD    #FBFSIZ           
 +       STD    CSGNSZ,PCR     
 +       CLRA                     
 +       STA    CSGNPG,PCR     
 +       LDA    #LIRFI          ; Consigne LIRFI          
 +       STA    CSGNTA,PCR     
 +       LEAX   CNSGN,PCR      
 +       JSR    RESEAU          ; Exécute la consigne et lit FBFSIZ (128) octets depuis le fichier 
 +       LDB    CRERR,PCR       
 +       BEQ    FRUPOS            
 + 
 +       CMPB   #EFINF          ; Code d'erreur de Fin de fichier 
 +       BEQ    FRUPOS            
 + 
 +       LBSR   FCLOSE          ; Fermeture automatique      
 +       LDB    #EOF              
 +       BRA    FREND             
 + 
 +FRUPOS STB    FRERR,PCR       ; Mise à jour des pointeurs 
 +       CLR    BUFPOS,PCR     
 +       LDD    CRXT0,PCR       
 +       STB    BREAD,PCR      
 +       LDD    FP241,PCR      
 +       ADDD   CRXT0,PCR       
 +       STD    FP241,PCR      
 +       LBCC   FRNXTB            
 + 
 +       INC    FP242,PCR      
 +       LBRA   FRNXTB            
 + 
 +FREND  PULS   PC,U,Y,X,DP,A,CC 
 </code> </code>
 [[code_source_de_nrdos.mo5_version_3.5|Retourner à la liste des fichiers]] [[code_source_de_nrdos.mo5_version_3.5|Retourner à la liste des fichiers]]
files.asm.1765475723.txt.gz · Last modified: by fool-duplex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki