<        C O P Y   M U  :
<
<
<        C O P Y   D K M  -->  D K U  :
<
<
<        FONCTION :
<                      CE PROGRAMME PERMET LA RECOPIE
<                    DKM --> DKU AFIN DE RENDRE
<                    SERVICE AU CENTRE INFORMATIQUE...
<
<
         PROG
ZERO:    EQU         $
         DZS         '20
<
<
<        B U F F E R S  :
<
<
QUANTA:: VAL         3               < QUANTA SUR LES DISQUES AMOVIBLES...
LBUFDK:: VAL         128*QUANTA      < 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         $
NSPDKU:: VAL         '23             < NSP DU DISQUE AMOVIBLE 'DKU',
NSPDKM:: VAL         '24             < NSP DU DISQUE AMOVIBLE 'DKM'.
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;NSPDKU     < !ASSIGN NVP2=NSPDKU.
         WORD        0
DCLOSE:  WORD        '0002           < APPEL CCI INTERPRETATIF,
         WORD        MCLOSE-ZERO*2   < !CLOSE.
         WORD        80
DCCI:    WORD        '0001           < APPEL DU CCI.
DREAD1:  BYTE        NVP1;'00        < LECTURE DE NVP1.
         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.
NSECT:   WORD        'FA00           < NOMBRE DE Q-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         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
         ADRI        -1,X            < AU SUIVANT...
         CPZR        X
         JNE         COPY1           < S'IL EXISTE...
         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.