User Tools

Site Tools


cmdp4.asm

This is an old revision of the document!


Retourner à la liste des fichiers

* NRDOS.MO5 version 3.5
* CMDP4.ASM (Commandes internes, quatrième partie)

************************************************************************************************************
* CD
* Exécute la commande CD.
************************************************************************************************************
CDBFSZ EQU   64               ; Taille du buffer pour récupérer le répertoire courant

CD     SET    *           
       CLR    CSGDST          ; Central
       CLR    CSGNPG          ; Page 0
       LDB    #SYSFIC     
       STB    CSGNTR      
       LDB    CDISK       
       STB    CSGNDK      
       LDX    CLPTR       
       LDA    CLTOGO      
       JSR    SKPSPC      
       BEQ    CDGO01      
                          
       CMPA   #2              ; Longueur 2 ?
       BNE    CDPATH      
                          
       LDB    1,X         
       CMPB   #COLON      
       BNE    CDPATH      
                          
       LDB    ,X          
       SUBB   #AROB           ; Calcule le numéro de disque
       STB    CSGNDK          ; Change le disque courant
                          
CDGO01 LDX    #CDTBUF     
       STX    CSGNAD      
       LDX    #CDBFSZ
       STX    CSGNSZ      
       LDA    #GETDIR     
       STA    CSGNTA      
       JSR    XCNSGN          ; Récupère le répertoire courant sur le nouveau disque
       BNE    CDRTS       
                          
       LDB    CSGNDK          ; Affiche le nouveau chemin
       ADDB   #AROB       
       JSR    PCHAR       
       LDB    #COLON      
       JSR    PCHAR       
       LDX    #CDTBUF     
       JSR    DSPSTR      
       BRA    CDRTS       
                          
CDPATH CLR    A,X         
       CMPA   #2          
       BCS    CDGO02      
       LDB    1,X         
       CMPB   #COLON      
       BNE    CDGO02      
       LDB    ,X          
       SUBB   #AROB          ; Calcule le numéro de disque
       STB    CSGNDK      
       DECA               
       DECA               
       LEAX   2,X         
                          
CDGO02 EXG    A,B         
       INCB               
       CLRA               
       STD    CSGNSZ      
       STX    CSGNAD      
       LDA    #SETDIR     
       STA    CSGNTA      
       JSR    XCNSGN      
                          
CDRTS  RTS                
                 
CDTBUF RMB    CDBFSZ

************************************************************************************************************
* UNKRT3
* Routine inutilisée et de fonction inconnue. Une fois entré dedans, on ne peut pas en sortir.
* Elle permet un dump hexadécimal des terminateurs de ligne et un déplacement au clavier.
************************************************************************************************************
UNKRT3 SET    *              
       JSR     GETKEY        
       CMPB    #CNTA         
       BEQ     UK3LB1        
                             
       CMPB    #INS          
       BNE     UK3LB2        
                             
       LDB     COLN          
       PSHS    B             
       LDB     RANG          
       PSHS    B             
       LDB     #US                      ; Positionnement du curseur
       JSR     PCHAR         
       PULS    B             
       ORAB    #$40          
       JSR     PCHAR         
       LDB     #$68          
       JSR     PCHAR         
                             
UK3LP1 LDA     #$FF          
       STA     COPCHR        
       LDB     #RIGHT        
       JSR     PCHAR         
       LDB     #LEFT         
       JSR     PCHAR         
       LDB     #LEFT         
       JSR     PCHAR         
       LDB     COLN          
       CMPB    ,S            
       BCC     UK3LP1        
                             
       PULS    B             
       LDB     #RIGHT        
       JSR     PCHAR         
       LDB     #SPACE        
       JSR     PCHAR         
       BRA     UNKRT3        
                             
UK3LB2 CMPB    #EFF          
       BNE     UK3LB3        
                             
       LDA     #$FF          
       STA     COPCHR        
       LDB     #LEFT         
       JSR     PCHAR         
       CLR     COPCHR        
       BRA     UNKRT3        
                             
UK3LB3 JSR     PCHAR         
       BRA     UNKRT3        
                             
UK3LB1 LDX     #TERMIN       
       LDA     #25             ; 25 octets
       JMP     HEXLIN          ; Affiche les terminateurs de ligne
                             

Retourner à la liste des fichiers

cmdp4.asm.1767023895.txt.gz · Last modified: by fool-duplex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki