[[code_source_de_nrdos.mo5_version_3.5|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,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_source_de_nrdos.mo5_version_3.5|Retourner à la liste des fichiers]]