User Tools

Site Tools


extcmd.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
extcmd.asm [2025/12/09 21:00] – fool-duplexextcmd.asm [2026/01/05 17:36] (current) – fool-duplex
Line 22: Line 22:
        JMP    ERRMSG          ; Affiche le message et retourne        JMP    ERRMSG          ; Affiche le message et retourne
  
-ECFNOK LDX    CNSGN+11        ; On copie le nom dans la consigne+ECFNOK LDX    #CSGNDK         ; On copie le nom dans la consigne
        LDY    #FNMBF1        LDY    #FNMBF1
        LDA    #9        LDA    #9
Line 31: Line 31:
  
        LDB    #CHBIN          ; Fichier trouvé, on lance l'exécution par une consigne CHBIN        LDB    #CHBIN          ; Fichier trouvé, on lance l'exécution par une consigne CHBIN
-       STB    CNSGN+3 +       STB    CSGNTA 
-       CLR    CNSGN+23        ; Mode de chargement : exécution automatique+       CLR    CSGND2          ; Mode de chargement : exécution automatique
        LDX    #CNSGN        LDX    #CNSGN
        JSR    RESEAU          ; Appel au central        JSR    RESEAU          ; Appel au central
Line 42: Line 42:
        BNE    ECFNE        BNE    ECFNE
  
-       JSR    OPNNRD          ; Il existe, on l'ouvre+       JSR    FOPENR          ; Il existe, on l'ouvre
        RTS        RTS
  
Line 48: Line 48:
        JSR    DSPSTR          ; On affiche le message        JSR    DSPSTR          ; On affiche le message
        RTS        RTS
-       +
 ************************************************************************************************************ ************************************************************************************************************
 * SEEKF * SEEKF
 * Cherche un fichier dans le répertoire courant et pour les .MO5 et .TO7, cherche aussi sur la racine du * Cherche un fichier dans le répertoire courant et pour les .MO5 et .TO7, cherche aussi sur la racine du
 * disque système. * disque système.
-************************************************************************************************************      +************************************************************************************************************
 SEEKF  SET    * SEEKF  SET    *
-       LDX    CNSGN+20        ; Copie le suffixe pointé par Y dans la consigne+       LDX    #CSGNFE         ; Copie le suffixe pointé par Y dans la consigne
        LDA    #3        LDA    #3
        JSR    MEMCPY        JSR    MEMCPY
        JSR    EXIST           ; Teste la présence du fichier        JSR    EXIST           ; Teste la présence du fichier
        BEQ    SFRTS           ; S'il existe, c'est super        BEQ    SFRTS           ; S'il existe, c'est super
-              +
        LDB    #'O             ; O comme dans MO5 ou TO7        LDB    #'O             ; O comme dans MO5 ou TO7
-       CMPB   CNSGN+21+       CMPB   CSGNFE+1
        BNE    SFRTS           ; Seulement les fichiers .MO5 ou .TO7        BNE    SFRTS           ; Seulement les fichiers .MO5 ou .TO7
-               + 
-       LDB    CNSGN+11        ; On va vérifier aussi sur A:\+       LDB    CSGNDK          ; On va vérifier aussi sur A:\
        PSHS   B        PSHS   B
        LDB    #1              ; Disque A:        LDB    #1              ; Disque A:
-       STB    CNSGN+11+       STB    CSGNDK
        LDX    #ROOT           ; "/"        LDX    #ROOT           ; "/"
        LBSR   SWIDIR          ; Change le répertoire vers A:\        LBSR   SWIDIR          ; Change le répertoire vers A:\
Line 77: Line 77:
        PULS   B        PULS   B
        PSHS   CC        PSHS   CC
-       STB    CNSGN+11+       STB    CSGNDK
        PULS   CC        PULS   CC
-SFRTS  RTS     +SFRTS  RTS 
-            +
 ************************************************************************************************************ ************************************************************************************************************
 * EXIST * EXIST
 * Vérifie l'existence d'un fichier dans le répertoire courant. * Vérifie l'existence d'un fichier dans le répertoire courant.
-************************************************************************************************************             +************************************************************************************************************
 EXIST  SET    * EXIST  SET    *
-       JSR    BCNSGN          ; Construit une consigne standard+       JSR    BCFPT1          ; Construit une consigne standard
        LDB    #CATP           ; Primitive de catalogue        LDB    #CATP           ; Primitive de catalogue
-       STB    CNSGN+3+       STB    CSGNTA
        LDX    #CNSGN        LDX    #CNSGN
        JSR    RESEAU          ; Exécute la consigne        JSR    RESEAU          ; Exécute la consigne
        LDX    #1        LDX    #1
-       CMPX   CRBUFF+2        ; Résultat +       CMPX   CRXT0           ; Résultat 
-       RTS     +       RTS 
-              +
 MO5    FCC    /MO5/           ; Suffixe .MO5 MO5    FCC    /MO5/           ; Suffixe .MO5
 TO7    FCC    /TO7/           ; Suffixe .TO7 TO7    FCC    /TO7/           ; Suffixe .TO7
 NRD    FCC    /NRD/           ; Suffixe .NRD NRD    FCC    /NRD/           ; Suffixe .NRD
-              +
 ROOT   FCS    %/%             ; Répertoire à chercher sur le disque système ROOT   FCS    %/%             ; Répertoire à chercher sur le disque système
-              +
 AUTOST FCB    $FF             ; Flag d'autostart (recherche et exécution de DEPART.NRD) AUTOST FCB    $FF             ; Flag d'autostart (recherche et exécution de DEPART.NRD)
                               ; 0 = Ignorer DEPART.NRD                               ; 0 = Ignorer DEPART.NRD
-              +
 FILENE FCB    CR, LF FILENE FCB    CR, LF
        FCS    /Fichier inexistant./        FCS    /Fichier inexistant./
Line 109: Line 109:
 ************************************************************************************************************ ************************************************************************************************************
 * SWIDIR * SWIDIR
-*+* Sauve le disque et répertoire courants puis continue sur CHGDIR pour changer de répertoire.
 ************************************************************************************************************ ************************************************************************************************************
 SWIDIR SET    * SWIDIR SET    *
-       PSHS   X +       PSHS   X               ; On sauve X 
-       LDB    CNSGN+11 +       LDB    CSGNDK 
-       STB    SVDDSK+       STB    SVDDSK          ; On sauve le numéro de disque dans SVDDSK
        LDX    #SVDPTH        LDX    #SVDPTH
-       STX    CNSGN+7 +       STX    CSGNAD 
-       LDX    #64 +       LDX    #64             ; Taille maximum 
-       STX    CNSGN+4 +       STX    CSGNSZ 
-       LDA    #GETDIR +       LDA    #GETDIR         ; Consigne GETDIR 
-       STA    CNSGN+3+       STA    CSGNTA
        LDX    #CNSGN        LDX    #CNSGN
-       JSR    RESEAU           +       JSR    RESEAU          ; On récupère le chemin courant dans SVDPTH 
-       PULS   X+       PULS   X               ; On récupère X qui contient le pointeur vers le nouveau répertoire
  
 ************************************************************************************************************ ************************************************************************************************************
 * CHGDIR * CHGDIR
-*+* Change de répertoire.
 ************************************************************************************************************ ************************************************************************************************************
 CHGDIR SET    * CHGDIR SET    *
-       STX    CNSGN+7+       STX    CSGNAD
        LDB    SVDDSK        LDB    SVDDSK
-       STB    CNSGN+11 +       STB    CSGNDK 
-       LDA    #SETDIR +       LDA    #SETDIR         ; Consigne SETDIR 
-       STA    CNSGN+3+       STA    CSGNTA
        LDX    #CNSGN        LDX    #CNSGN
-       JSR    RESEAU          +       JSR    RESEAU          ; On change de répertoire
        LDA    #0        LDA    #0
-       STA    CDSUCS +       STA    CDSUCS          ; Flag de succès 
-       LDA    CRBUFF+1+       LDA    CRERR
        CMPA   #0        CMPA   #0
-       BEQ    CDRTS+       BEQ    CHDRTS 
        LDA    #$FF        LDA    #$FF
        STA    CDSUCS        STA    CDSUCS
-CDRTS  RTS+CHDRTS RTS
  
 ************************************************************************************************************ ************************************************************************************************************
 * RSTDIR * RSTDIR
-*+* Restaure le disque et répertoire qui avait été sauvés dans SVDDSK et SVDPTH.
 ************************************************************************************************************ ************************************************************************************************************
 RSTDIR SET    * RSTDIR SET    *
        LDX    #SVDPTH        LDX    #SVDPTH
-       STX    CNSGN+7+       STX    CSGNAD
        LDB    SVDDSK        LDB    SVDDSK
-       STB    CNSGN+11 +       STB    CSGNDK 
-       LDX    #64 +       LDX    #64             ; Taille maximum 
-       STX    CNSGN+4 +       STX    CSGNSZ 
-       LDA    #SETDIR +       LDA    #SETDIR         ; Consigne SETDIR 
-       STA    CNSGN+3+       STA    CSGNTA
        LDX    #CNSGN        LDX    #CNSGN
-       JSR    RESEAU+       JSR    RESEAU          ; Change de répertoire
        RTS        RTS
  
-SVDDSK RMB    1 +SVDDSK RMB    1               ; Numéro de disque à conserver 
-SVDPTH RMB    65               +SVDPTH RMB    65              ; Chemin à conserver
  
 </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]]
 +
extcmd.asm.1765310435.txt.gz · Last modified: by fool-duplex

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki