<        C O P Y   M F  :
<
<
<        C O P Y   D K M  -->  D K F  :
<
<
<        FONCTION :
<                      CE PROGRAMME PERMET LA RECOPIE
<                    DKM --> DKF AFIN DE PREPARER LE
<                    RUN DE CMS5 SUR LE DISQUE FIXE.
<
<
         PROG
ZERO:    EQU         $
         DZS         '20
<
<
<        B U F F E R S  :
<
<
LBUFDK:  VAL         128             < LONGUEUR EN MOTS D'UN SECTEUR.
BUFDK:   DZS         LBUFDK          < BUFFER UN SECTEUR.
MCLOSE:  ASCI        "!CLOSE"
         BYTE        '04;0
PILE:    DZS         20
<
<
<        L O C A L  :
<
<
         LOCAL
LOC:     EQU         $
NSPDKF:  VAL         '25             < NSP DU DISQUE FIXE,
NSPDKM:  VAL         '24             < NSP DU DISQUE MOBILE.
NVP1:    VAL         4
NVP2:    VAL         5
DASS1:   WORD        '0003           < !ASSIGN DIRECT,
         BYTE        NVP1;NSPDKM     < !ASSIGN NVP1=NSPDKM.
         WORD        0
DASS2:   WORD        '0003           < !ASSIGN DIRECT,
         BYTE        NVP2;NSPDKF     < !ASSIGN NVP2=NSPDKF.
         WORD        0
DCLOSE:  WORD        '0002           < APPEL CCI INTERPRETATIF,
         WORD        MCLOSE-ZERO*2   < !CLOSE.
         WORD        80
DCCI:    WORD        '0001           < APPEL DU CCI.
DREAD1:  BYTE        NVP1;'08        < LECTURE DE NVP1 (QUANTA=1).
         WORD        BUFDK-ZERO*2
         WORD        LBUFDK*2
         WORD        0               < ADRESSE SECTEUR COURANTE.
DWRIT2:  BYTE        NVP2;'02        < ECRITURE SUR NVP2.
         WORD        BUFDK-ZERO*2
         WORD        LBUFDK*2
         WORD        0               < ADRESSE SECTEUR COURANTE.
DTEMPO:  WORD        '0005           < TEMPORISATION APRES LE !CLOSE (...).
         WORD        0
         WORD        5               < 5 SECONDES...
NSECT:   WORD        '0FE0           < NOMBRE DE SECTEURS A COPIER.
<
<
<        P R O G R A M M E  :
<
<
         PROG
COPY:    EQU         $
         LRM         L,K
         WORD        LOC+'80
         WORD        PILE-1
         LAD         DCLOSE
         SVC         0               < !CLOSE.
         LAD         DTEMPO
         SVC         0               < DODO...
         LAD         DASS1
         SVC         0               < !ASSIGN NVP1=NSPDKM,
         LAD         DASS2
         SVC         0               < !ASSIGN NVP2=NSPDKF.
         LX          NSECT           < X=NOMBRE D'ECHANGES (BEAUCOUP...).
COPY1:   EQU         $
         PSR         X               < SAUVEGARDE DU NOMBRE D'ECHANGES.
         LAD         DREAD1
         SVC         0               < LECTURE SUR NVP1,
         LAD         DWRIT2
         SVC         0               < RECOPIE SUR NVP2.
         IC          DREAD1+3        < PASSAGE AUX
         IC          DWRIT2+3        < SECTEURS SUIVANTS.
         PLR         X
         JDX         COPY1           < AU SUIVANT...
         LAD         DCLOSE
         SVC         0
COPY2:   EQU         $
         LAD         DCCI
         SVC         0               < ET C'EST FINI...
         JMP         COPY2
         END         COPY



Copyright © Jean-François Colonna, 2022-2022.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2022-2022.