User Tools

Site Tools


cmdp2.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
cmdp2.asm [2025/12/11 12:12] – 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        LDX    TKOFST
        LDB    CMDBUF,X        LDB    CMDBUF,X
-       CMPB   #'A+       CMPB   #'A             ; Le disque doit être entre A: ...
        BCS    CDERR        BCS    CDERR
  
-       CMPB   #'J+       CMPB   #'J             ; ... et J:
        BHI    CDERR        BHI    CDERR
  
        LDB    FNMBF1        LDB    FNMBF1
        PSHS   B        PSHS   B
-       LDD    DSKMAP+       LDD    DSKMAP          
  
-CDLOOP LSRA+CDLOOP LSRA                   ; On vérifie que le disque est valide
        RORB        RORB
        DEC    ,S        DEC    ,S
Line 29: Line 29:
        BCS    CDOK        BCS    CDOK
  
-CDERR  LDB    #128 +CDERR  LDB    #EDQER          ; Code d'erreur "Disque erroné" 
-       JSR    ERRMSG+       JSR    ERRMSG          ; On affiche le message
        BRA    CDEND        BRA    CDEND
  
 CDOK   LDB    FNMBF1 CDOK   LDB    FNMBF1
-       STB    CDISK+       STB    CDISK           ; On change le disque courant
  
 CDEND  RTS CDEND  RTS
- 
- 
  
 DSKMAP FDB    0 DSKMAP FDB    0
  
- +************************************************************************************************************ 
-ID     SET    *+* IDC 
 +* Exécute la commande ID (fixe l'identifiant du poste) 
 +************************************************************************************************************ 
 +IDC    SET    *
        LEAY   FNMBF2,PCR        LEAY   FNMBF2,PCR
        LDX    CLPTR,PCR        LDX    CLPTR,PCR
        LDA    CLTOGO,PCR        LDA    CLTOGO,PCR
        LBSR   SKPSPC        LBSR   SKPSPC
-       LBSR   PRSPTH+       LBSR   PRSPTH          ; On vérifie l'atome
        STA    CLTOGO,PCR        STA    CLTOGO,PCR
        STX    CLPTR,PCR        STX    CLPTR,PCR
-       LDA    #8+       LDA    #8              ; Seuls les 8 premiers caractères comptent
        LEAY   IDBUFF,PCR        LEAY   IDBUFF,PCR
        LEAX   CSGNDK,PCR        LEAX   CSGNDK,PCR
        LBSR   MEMCPY        LBSR   MEMCPY
        LDA    #0                   LDA    #0           
-       STA    CSGNOP,PCR +       STA    CSGDST,PCR 
-       LDA    #ID+       LDA    #ID             ; Consigne ID
        STA    CSGNTA,PCR        STA    CSGNTA,PCR
        LDA    #SYSFIC        LDA    #SYSFIC
        STA    CSGNTR,PCR        STA    CSGNTR,PCR
-       LBSR   XCNSGN+       LBSR   XCNSGN          ; On exécute la consigne
        RTS        RTS
  
- +************************************************************************************************************ 
-DATE   SET    *+* TIME 
 +* Exécute la commande TIME (affiche la date et l'heure) 
 +************************************************************************************************************ 
 +TIME   SET    *
        LDA    #0                   LDA    #0           
-       STA    CSGNOP,PCR +       STA    CSGDST,PCR 
-       LDA    #DATE+       LDA    #DATE           ; Consigne DATE
        STA    CSGNTA,PCR        STA    CSGNTA,PCR
        LDA    #SYSFIC        LDA    #SYSFIC
        STA    CSGNTR,PCR        STA    CSGNTR,PCR
-       LBSR   XCNSGN +       LBSR   XCNSGN          ; On exécute la consigne 
-       BNE    DATEND+       BNE    TIMEND
  
-       LEAX   DATEST,PCR +       LEAX   DATEST,PCR      ; On affiche 
-       LBSR   DSPSTR +       LBSR   DSPSTR           
-       LEAX   CRBUFF+2,PC +       LEAX   CRXT0,PCR 
-       BSR    D3NBS+       BSR    D3NBS           ; Les trois nombres qui composent la date
        LEAX   TIMEST,PCR        LEAX   TIMEST,PCR
        LBSR   DSPSTR        LBSR   DSPSTR
-       LEAX   CRBUFF+5,PC +       LEAX   CRXT3,PCR 
-       BSR    D3NBS +       BSR    D3NBS           ; Les trois nombres qui composent l'heure 
-DATEND RTS +TIMEND RTS
  
 +************************************************************************************************************
 +* D3NBS
 +* Affiche trois nombres entiers 8 bits séparés par des espaces
 +************************************************************************************************************
 D3NBS  SET    * D3NBS  SET    *
-       LDB    #3+       LDB    #3              ; Trois fois
        PSHS   B        PSHS   B
  
-D3LOOP: +D3LOOP LDB    ,X+             ; Le nombre sur 8 bits est pointé par X
-       LDB    ,X++
        PSHS   X        PSHS   X
-       LBSR   DINT+       LBSR   DINT            ; Conversion décimale et affichage
        PULS   X        PULS   X
-       LBSR   DSPACE+       LBSR   DSPACE          ; Affiche une espace
        DEC    ,S        DEC    ,S
        BNE    D3LOOP        BNE    D3LOOP
Line 101: Line 107:
        PULS   PC,B        PULS   PC,B
  
-DATEST FCS    /DATE  : / +DATEST FCS    /Date  : /      ; Chaînes de caractères pour l'affichage 
-TIMEST FCS    / - HEURE : /+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.1765451541.txt.gz · Last modified: by fool-duplex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki