User Tools

Site Tools


cmdp4.asm

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cmdp4.asm [2025/12/29 11:44] – fool-duplexcmdp4.asm [2026/01/03 18:16] (current) – fool-duplex
Line 5: Line 5:
  
 ************************************************************************************************************ ************************************************************************************************************
 +* 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,0
 +
 +************************************************************************************************************
 +* 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
 +       ORB    #$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
 +
 +************************************************************************************************************
 +* GETATT
 +* Récupère les attributs d'un fichier. Inutilisé.
 +************************************************************************************************************
 +GETATT SET    *
 +       JSR    BCFPT2
 +       JSR    PRSINT
 +       LBLS   PRMERR
 +
 +       TFR    Y,D
 +       TSTA
 +       LBNE   PRMERR
 +
 +       STB    CSGNDK
 +       LDB    #LIRATT
 +       STB    CSGNTA
 +       JSR    XCNSGN
 +       BNE    GARTS
 +
 +       LDX    F2BFPT
 +       LDA    #128
 +       JSR    HEXLIN
 +
 +GARTS  RTS
 +
 +************************************************************************************************************
 +* SETATT
 +* Enregistre les attributs d'un fichier. Inutilisé.
 +************************************************************************************************************
 +SETATT SET    *
 +       JSR    BCFPT2
 +       JSR    PRSINT
 +       LBLS   PRMERR
 +       TFR    Y,D
 +       TSTA
 +       LBNE   PRMERR
 +
 +       STB    CSGNDK
 +       LDB    #ECRATT
 +       STB    CSGNTA
 +       LDX    F2BFPT
 +       LDY    #CSGNFN
 +       LDA    #48
 +
 +SALOOP LDB    ,X+
 +       STB    ,Y+
 +       DECA
 +       BNE    SALOOP
 +
 +       JSR    XCNSGN
 +       RTS
 +
 +************************************************************************************************************
 +* RDCBUF
 +* Lit le contenu du buffer commun. Inutilisé.
 +************************************************************************************************************
 +RDCBUF SET    *
 +       JSR    BCFPT2
 +       LDB    #RBUFF
 +       STB    CSGNTA
 +       JSR    XCNSGN
 +       RTS
 +
 +************************************************************************************************************
 +* WRCBUF
 +* Ecrit le contenu du buffer commun. Inutilisé.
 +************************************************************************************************************
 +WRCBUF SET    *
 +       JSR    BCFPT2
 +       LDB    #WBUFF
 +       STB    CSGNTA
 +       LDX    F2BFPT
 +       LDY    #CSGNDK
 +       LDA    #30
 +
 +WCBLP  LDB    ,X+
 +       STB    ,Y+
 +       DECA
 +       BNE    WCBLP
 +
 +       JSR    XCNSGN
 +       RTS
 </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]]
cmdp4.asm.1767005060.txt.gz · Last modified: by fool-duplex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki