User Tools

Site Tools


cmdp4.asm

Differences

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

Link to this comparison view

Next revision
Previous revision
cmdp4.asm [2025/12/29 11:43] – created fool-duplexcmdp4.asm [2026/01/03 18:16] (current) – fool-duplex
Line 2: Line 2:
  
 <code>* NRDOS.MO5 version 3.5 <code>* NRDOS.MO5 version 3.5
-* CMDP4.ASM (Routines système)+* 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,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.1767005034.txt.gz · Last modified: by fool-duplex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki