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
************************************************************************************************************
* 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
cmdp4.asm.1767024649.txt.gz · Last modified: by fool-duplex
