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.1767023981.txt.gz · Last modified: by fool-duplex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki