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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki