User Tools

Site Tools


cmdp2.asm

Differences

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

Link to this comparison view

Next revision
Previous revision
cmdp2.asm [2025/12/11 12:01] – created fool-duplexcmdp2.asm [2026/01/05 12:28] (current) – fool-duplex
Line 6: Line 6:
 ************************************************************************************************************ ************************************************************************************************************
 * DRV * DRV
-* Change le disque courant+* Change le disque courant (commande x: ou x est le disque)
 ************************************************************************************************************ ************************************************************************************************************
 DRV    SET    * DRV    SET    *
 +       LDX    TKOFST
 +       LDB    CMDBUF,X
 +       CMPB   #'A             ; Le disque doit être entre A: ...
 +       BCS    CDERR
 +
 +       CMPB   #'J             ; ... et J:
 +       BHI    CDERR
 +
 +       LDB    FNMBF1
 +       PSHS   B
 +       LDD    DSKMAP          
 +
 +CDLOOP LSRA                   ; On vérifie que le disque est valide
 +       RORB
 +       DEC    ,S
 +       BNE    CDLOOP
 +
 +       PULS   B
 +       BCS    CDOK
 +
 +CDERR  LDB    #EDQER          ; Code d'erreur "Disque erroné"
 +       JSR    ERRMSG          ; On affiche le message
 +       BRA    CDEND
 +
 +CDOK   LDB    FNMBF1
 +       STB    CDISK           ; On change le disque courant
 +
 +CDEND  RTS
 +
 +DSKMAP FDB    0
 +
 +************************************************************************************************************
 +* IDC
 +* Exécute la commande ID (fixe l'identifiant du poste)
 +************************************************************************************************************
 +IDC    SET    *
 +       LEAY   FNMBF2,PCR
 +       LDX    CLPTR,PCR
 +       LDA    CLTOGO,PCR
 +       LBSR   SKPSPC
 +       LBSR   PRSPTH          ; On vérifie l'atome
 +       STA    CLTOGO,PCR
 +       STX    CLPTR,PCR
 +       LDA    #8              ; Seuls les 8 premiers caractères comptent
 +       LEAY   IDBUFF,PCR
 +       LEAX   CSGNDK,PCR
 +       LBSR   MEMCPY
 +       LDA    #0           
 +       STA    CSGDST,PCR
 +       LDA    #ID             ; Consigne ID
 +       STA    CSGNTA,PCR
 +       LDA    #SYSFIC
 +       STA    CSGNTR,PCR
 +       LBSR   XCNSGN          ; On exécute la consigne
 +       RTS
 +
 +************************************************************************************************************
 +* TIME
 +* Exécute la commande TIME (affiche la date et l'heure)
 +************************************************************************************************************
 +TIME   SET    *
 +       LDA    #0           
 +       STA    CSGDST,PCR
 +       LDA    #DATE           ; Consigne DATE
 +       STA    CSGNTA,PCR
 +       LDA    #SYSFIC
 +       STA    CSGNTR,PCR
 +       LBSR   XCNSGN          ; On exécute la consigne
 +       BNE    TIMEND
 +
 +       LEAX   DATEST,PCR      ; On affiche
 +       LBSR   DSPSTR          
 +       LEAX   CRXT0,PCR
 +       BSR    D3NBS           ; Les trois nombres qui composent la date
 +       LEAX   TIMEST,PCR
 +       LBSR   DSPSTR
 +       LEAX   CRXT3,PCR
 +       BSR    D3NBS           ; Les trois nombres qui composent l'heure
 +TIMEND RTS
 +
 +************************************************************************************************************
 +* D3NBS
 +* Affiche trois nombres entiers 8 bits séparés par des espaces
 +************************************************************************************************************
 +D3NBS  SET    *
 +       LDB    #3              ; Trois fois
 +       PSHS   B
 +
 +D3LOOP LDB    ,X+             ; Le nombre sur 8 bits est pointé par X
 +       PSHS   X
 +       LBSR   DINT            ; Conversion décimale et affichage
 +       PULS   X
 +       LBSR   DSPACE          ; Affiche une espace
 +       DEC    ,S
 +       BNE    D3LOOP
 +
 +       PULS   PC,B
 +
 +DATEST FCS    /Date  : /      ; Chaînes de caractères pour l'affichage
 +TIMEST FCS    / - Heure : /   ; de la date et de l'heure
 +
 +************************************************************************************************************
 +* ERA
 +* Exécute la commande ERA ou DEL (effacement de fichier)
 +************************************************************************************************************
 +ERA    SET    *              
 +       LBSR   SETCTX          ; Prépare le contexte (paramètres de la commande, changement de répertoire)
 +       LDB    #$FF          
 +       CMPB   CDSUCS          ; Le chemin est-il valide ?
 +       BNE    ERAOK         
 +                             
 +       LBSR   PRMERR          ; Erreur de paramètre
 +       BRA    ERAEND        
 +                             
 +ERAOK  LDA    #SUPFI          ; Consigne SUPFI
 +       STA    CSGNTA,PCR
 +       LBSR   XCNSGN          ; On exécute la consigne
 +ERAEND LBSR   RSTDIR          ; et on rétablit le répertoire courant
 +       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]]
cmdp2.asm.1765450882.txt.gz · Last modified: by fool-duplex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki