NMPROC:  VAL         "TO"            < NOM DU PROCESSEUR.
         IDP         "INTERPOLATEUR OCTET A OCTET - RELEASE 01/06/1979"
         IDP         "JOHN F. COLONNA"
         EOT         #SIP DEFINITION CMS5#
         EOT         #SIP DEF PROCESSEUR#
         PROG
         WORD        IMAGE           < ENTRY POINT DU PROCESSEUR.
         WORD        0
PIMAGE:  EQU         $
         LRP         L               < A NOTER : P='12 !!!
         BR          -2,L            < ENTRE DANS LE PROCESSEUR 'TN'.
         PAGE
         EOT         #SIP DEFINITION ITEM#
ITEM1:   EQU         ZERO+PILE-LTNI
ITEM2:   EQU         ZERO+PILE-LTNI-LTNI
         PAGE
         EOT         #SIP IMAGE 256#
NOM:     EQU         ZERO+PILE+5-LNOM-2  < NOM DE L'IMAGE VIDEO.
IMAG:    EQU         NOM+LNOM+2      < IMAGE VIDEO PROPREMENT DITE.
<
< VALIDATION DU FORMAT DE L'IMAGE (CARREE) :
<
X20:     VAL         1024/DY         < NBRE DE LIGNES/IMAGE.
X21:     VAL         CNMPL*16        < NBRE DE POINTS/LIGNE.
         IF          X20-X21,,X100,
         IF          ATTENTION : L'IMAGE N'EST PAS CARREE !!!
X100:    VAL         0
         PAGE
<
<
<        L O C A L  :
<
<
<
< BUFFERS DE GRANDE TAILLE :
<
         TABLE
BUF:     DZS         128             < BUFFER SGF.
SECTOR:  EQU         BUF
MND:     BYTE        16;'6D
         ASCI        "#UNITES DEPART= "
MNA:     BYTE        17;'6D
         ASCI        "#UNITES ARRIVEE="
MOCT:    BYTE        8;'6D
         ASCI        "OCTETS? "
MAR:     BYTE        9;'6D
         ASCI        "ARRIVEE>"
MDE:     BYTE        8;'6D
         ASCI        "DEPART> "
MCON:    BYTE        13;'6D
         ASCI        "NBRE DE PAS="
MPAS:    BYTE        11;'6D
         ASCI        "PAS A PAS?"
MSCRA:   BYTE        16;'6D
         ASCI        "DEPART SCRATCH? "
MRES:    BYTE        19;'6D
         ASCI        "ARRIVEE RESIDENTE?"
MPAUS:   BYTE        7;'6D
         BYTE        '07;'07;'07;'07;'07;'07
MTR:     BYTE        16;'6D
         ASCI        "TRANSFORMATION? "
         LOCAL
LOC:     EQU         $
<
< MESSAGES ET BUFFERS :
<
REP:     WORD        0
MINT:    BYTE        2;'6D
         ASCI        "> "
BDISP:   BYTE        4;0
         ASCI        "1234"
MERR:    BYTE        3;'6D
         ASCI        "??"
MDEL:    BYTE        8;'6D
         ASCI        "DELETE? "
MSAVE:   BYTE        6;'6D
         ASCI        "SAVE? "
MNOM:    BYTE        5;'6D
         ASCI        "NOM>"
MAN:     ASCI        "!ASSIGN A=N,"
FA:      ASCI        "FA"
IDAN:    BYTE        0;'04           < IDESC DANS L'OCTET0.
MBN:     ASCI        "!ASSIGN B=N,"
FB:      ASCI        "FB"
IDBN:    BYTE        0;'04           < IDESC DANS L'OCTET0.
MAO:     ASCI        "!ASSIGN A=O,FA"
IDAO:    BYTE        0;'04           < IDESC DANS L'OCTET0.
MBO:     ASCI        "!ASSIGN B=O,FB"
IDBO:    BYTE        0;'04           < IDESC DANS L'OCTET0.
MAC:     ASCI        "!ASSIGN A="
         BYTE        "R";'04
MBC:     ASCI        "!ASSIGN B="
         BYTE        "R";'04
<
< DEMANDES A CMS4 :
<
DEMMEM:  WORD        '0004           < DEMANDE D'ALOCATION 8K MOTS.
RELMEM:  WORD        '0004           < DEMANDE DE RETOUR A 4K MOTS.
         WORD        '4000           < ALLOCATION 8K MOTS.
         WORD        '2000
DEMCCI:  WORD        '0001           < APPEL DU CCI.
DEMSGN:  WORD        '0402           < DEMANDE D'ACCES AU SGN OVERLAY.
         WORD        BRANCH-ZERO*2   < @OCTET DE LA BRANCHE.
         WORD        ZERO-BRANCH+PILE-LTNI-LTNI*2
         WORD        -1
DEMOUT:  WORD        '0202           < SORTIE D'UN MESSAGE.
         WORD        MINT-ZERO*2
         WORD        2
DEMIN:   WORD        '0101           < ENTREE SUR LE TERMINAL.
         WORD        REP-ZERO*2
         WORD        1
DEMCON:  WORD        '0101           < ENTREE DU NBRE DE PAS.
         WORD        REP-ZERO*2
         WORD        2               < 2 CHIFFRES HEXAS.
RDK:     WORD        '0C00           < LECTURE SECTEUR SCRATCH.
         WORD        SECTOR-ZERO*2
         WORD        256
         WORD        0               < NUMERO SECTEUR SCRATCH.
SGFW:    WORD        '0B02           < ECRITURE SGF UN ENREGISTREMENT.
         WORD        BUF-ZERO*2
         WORD        256
         WORD        0
SGFR:    WORD        '0B09           < LECTURE DELETE SGF SUR '0B.
         WORD        BUF-ZERO*2
         WORD        256
         WORD        0
SGFO1:   WORD        '0B04           < OUVERTURE CLEF '1.0' NEW (4) ,
                                     < (5 POUR OLD).
         WORD        1
         WORD        0
SGFC:    WORD        '0B07           < FERMETURE CLEF '1.0' SAVE (7) ,
                                     < (6 SI RELEASE).
DEMDA:   WORD        '0302           < DELETE NOM DU FICHIER FA.
         WORD        FA-ZERO*2
         WORD        4
         WORD        -1
DEMDB:   WORD        '0302           < DELETE LE NOM DU FICHIER FB.
         WORD        FB-ZERO*2
         WORD        4
         WORD        -1
CCII:    WORD        '0002           < ACCES CCI INTERPRETATIF.
         WORD        0               < @OCTET DE LA CARTE CONTROLE.
         WORD        80              < LONGUEUR MAX.
DEMNOM:  WORD        '0101           < ENTREE D'UN NOM D'IMAGE.
         WORD        NOM-ZERO*2
         WORD        LNOM*2
SGN:     WORD        '0502           < LECTURE PUIS ECRITURE D'UNE
                                     < IMAGE VIDEO.
         WORD        NOM-ZERO*2
         WORD        LIMAG+LNOM+2*2
         WORD        2*LNOM
         IF          ORDI-"S",XWOR%,,XWOR%
STABIL:  WORD        '8A01           < DEMANDE DE STABILISATION IMAGE.
         WORD        IMAG-ZERO*2
         WORD        LIMAG*2
         WORD        TVPV            < SUR LE PROCESSEUR VERT.
XWOR%:   VAL         0
<
< CONSTANTES :
<
         IF          ORDI-"T",XWOR%,,XWOR%
ACNSYS:  ASCI        ":SYS"
XWOR%:   VAL         0
NGE:     WORD        "GE"            < NOM DU PROCESSEUR 'GE'.
KIN:     WORD        -1              < COMPTAGE DES ENTRIES.
FOIS:    WORD        -1              < COMPTE LE NBRE D'EXPLORATION
                                     < DE L'IMAGE DE DEPART MOINS 1.
DELTA:   WORD        0               < INDEX ZONE DE RANGEMENT D'UN
                                     < SEGMENT GRAPHIQUE A TRACER.
IBUF:    WORD        0               < INDEX BUFFER SGF.
NAR:     WORD        0               < NBRE DE POINTS IMAGE ARRIVEE.
NDE:     WORD        0               < NBRE DE POINTS IMAGE DEPART.
SNDE:    WORD        0               < NBRE DE POINTS REEL DE DEPART.
                                     < (AU CAS OU ELLE SERAIT REEXPLOREE)
ND:      WORD        0               < VALEUR TEMPORAIRE DE NDE POUR
                                     < RATTRAPAGE EVENTUEL DE NAR.
NC:      WORD        0               < DECOMPTEUR DES POINTS LORS D'UNE
                                     < INTERPOLATION.
NMOTS:   WORD        LTNI            < NBRE DE MOTS A RAZER DANS ITEM1.
IRAZ:    WORD        1               < 1=INUTILE DE RAZER ITEM1 ,
                                     < 0 : IL FAUT RAZER L'ITEM1 CAR IL
                                     < A ETE ALTERE...
IMAG2:   WORD        IMAG-ZERO*2     < @OCTET IMAGE VIDEO.
ALIMAG:  WORD        LIMAG           < LONGUEUR IMAGE VIDEO.
ALIMA2:  WORD        2*LIMAG         < LONGUEUR OCTETS DE L'IMAGE.
MAXBUF:  WORD        128-1*2         < MAX DE L'INDEX BUFFER SGF
                                     < POUR UN PARCOURS OCTETS.
XIMAG:   WORD        0               < INDEX IMAGE VIDEO PENDANT
                                     < L'INTERPOLATION.
NMPL:    WORD        CNMPL           < NBRE DE MOTS DE 16 BITS/LIGNE.
NLIG:    WORD        1024/RDY-1      < NBRE DE LIGNES-1 D'UNE IMAGE.
DICOX:   WORD        0               < X DU POINT VIDEO COURANT M.
DICOY:   WORD        0               < Y DU POINT VIDEO COURANT M.
DICOX1:  WORD        0               < X DE L'ORIGINE VIDEO COURANTE M1.
DICOY1:  WORD        0               < Y DE L'ORIGINE VIDEO COURANTE M1.
DICOX2:  WORD        0               < X EXTREMITE VIDEO COURANTE M2.
DICOY2:  WORD        0               < Y EXTREMITE VIDEO COURANTE M2.
NVP1:    WORD        '0A             < POUR LA GESTION DES NVP DU
                                     < SGF EN BASCULE.
PAS:     WORD        0               < 0 : INTERPOLATION EN PAS A PAS,
                                     < 1 SINON (MODE CONTINU.
CONS:    WORD        16              < PAS D'INTERPOLATION.
                                     < (AUSSI DECOMPTEUR DES TOURS
                                     < A EFFECTUER).
MODE:    WORD        0               < 0=OCTET, 1=MOT.
<
< RELAIS DIVERS :
<
         IF          ORDI-"T",XWOR%,,XWOR%
ASP3:    WORD        SP3             < STABILISATION IMAGE VIDEO.
XWOR%:   VAL         0
AVIS:    WORD        VIS             < STABILISATION IMAGE VIDEO.
AENTER:  WORD        ENTER           < ENVOI MESSAGE, PUIS LECTURE
                                     < REPONSE O/N, ET ITERATION...
AHEX:    WORD        HEX             < CONVERSION HEXA-->BINAIRE.
ADISP:   WORD        DISP            < CONVERSION BINAIRE-->ASCI.
APRINT:  WORD        PRINT           < EMISSION D'UN MESSAGE.
AGOSGN:  WORD        GOSGN           < ACCES AU SGN POUR LECTURE/
                                     < ECRITURE D'UNE IMAGE VIDEO.
ACCI:    WORD        CCI             < ACCES AU CCI INTERPRETATIF.
ADF:     WORD        DF              < TENTATIVE DELETE FICHIERS FA & FB
AWR:     WORD        WR              < ECRITURE/LECTURE SGF.
ASTBUF:  WORD        STBUF           < RANGEMENT DOUBLET DANS LE
                                     < BUFFER SGF ET ECRITURE
                                     < EVENTUELLE.
AMAJL:   WORD        MAJL            < INSERTION DE L'IMAGE DEPART DANS
                                     < LA LISTE D'ARRIVEE.
AITEM2:  WORD        ITEM2+LTN       < ENTRY POINT DU MODULE EVENTUEL
                                     < DE TRANSFORMATION.
ATRANS:  WORD        TRANS           < ROUTINE INTERFACE DE TRANSFO.
APAUS:   WORD        PAUS            < ROUTINE DE PAUSE.
AOVL:    WORD        OVL             < CHARGEMENT DES OVERLAYS.
AGOGE:   WORD        GOGE            < RETOUR A 'GE'.
AE30:    WORD        E30             < BOUCLE D'INTERPOLATION.
AREP:    WORD        REP,X           < RELAI VERS LE BUFFER REP.
ATYP:    WORD        ITEM2+IINDIC    < ACCES AU TYPE DE L'ITEM2.
ABDISP:  WORD        BDISP,X         < RELAI BUFFER DE CONVERSION HEXA.
ABUF:    WORD        BUF+1,X         < REALI DU BUFFER SGF.
AI1:     WORD        ITEM1-1,X       < RELAI DE RAZ DE L'ITEM1.
AIMAG:   WORD        IMAG-1,X        < RELAI IMAGE VIDEO POUR JDX.
AIMAG0:  WORD        IMAG,X          < POUR ACCES OCTET A L'IMAGE.
AEOT:    WORD        NOM+LNOM
ALONG:   WORD        NOM+LNOM+1      < POUR L'INDICATEUR TYPE 'VIDEO'.
ALSTBY:  WORD        LSTBY,X         < LISTE DES INSTRUCTIONS A MODI-
                                     < FIER POUR UN PARCOURS MOTS.
ASTA:    WORD        STA             < POUR LE CODE DE 'STA &0,L',
ALA:     WORD        LA              < POUR LE CODE DE 'LA &0,L'.
AMND:    WORD        MND
AMNA:    WORD        MNA
AMSCRA:  WORD        MSCRA
AMAR:    WORD        MAR
AMDE:    WORD        MDE
AMPAS:   WORD        MPAS
AMCON:   WORD        MCON
AMRES:   WORD        MRES
AMTR:    WORD        MTR
AMPAUS:  WORD        MPAUS
AMOCT:   WORD        MOCT
<
< PILES DE TRAVAIL :
<
APILE:   WORD        PILE-1          < PILE DE SMC (RETOUR A 'GE').
STACK:   DZS         10              < PILE TEMPORAIRE DE TRAVAIL.
         DZS         20              < PILE PLUS GRANDE POUR 'TA'.
<
< LISTE DES INSTRUCTIONS A MODIFIER POUR UN PARCOURS MOT :
< (STBY : BIT0=0, LBY : BIT0=1)
<
LSTBY:   EQU         $
         WORD        STBY1;STBY2;STBY3;STBY4;STBY5;STBY6
         WORD        LBY1,X;LBY2,X;LBY3,X;LBY4,X
         WORD        0               < FIN DE LISTE.
         PROG
         PAGE
         IF          ORDI-"T",XWOR%,,XWOR%
TIMAG:   WORD        IMAG            < @RELATIVE IMAGE VIDEO.
         EOT         #SIP SP3#
XWOR%:   VAL         0
VIS:     EQU         $               < ENTRY ESCLAVE.
         IF          ORDI-"T",XWOR%,,XWOR%
         LA          ASP3            < ACCES A L'ADRESSE DE LA
                                     < ROUTINE MAITRE.
         JAE         VIS1            < ON N'EST PAS SOUS :SYS.
         WORD        '1EC5           < OK , ON EST SOUS :SYS.
VIS1:    EQU         $
XWOR%:   VAL         0
         IF          ORDI-"S",XWOR%,,XWOR%
         PSR         X
         LAD         STABIL
         SVC         0               < DEMANDE DE STABILISATION IMAGE.
         PLR         X
XWOR%:   VAL         0
         RSR
         PAGE
<
<
<        C O N V E R S I O N   H E X A ---> B I N A I R E  :
<
<
<        ARGUMENT :
<                    Y=NBRE DE CARACTERES A DECODER ,
<                    REP=CHAINE DE CARACTERES.
<
<
<        RESULTATS :
<                    B=0 : OK ET (A)=VALEUR BINAIRE DECODEE ,
<                    B=1#0 : LA CHAINE D'ENTREE EST ERRONNEE.
<                    LES INDICATEURS SONT POSITIONNES SUR (B).
<
<
HEX:     EQU         $
         LXI         0               < INDEX DU BUFFER DE REPONSE.
         LBI         0               < INITIALISATION DE B.
E55:     EQU         $
         LBY         &AREP           < A=CARACTERE COURANT DU BUFFER.
         CPI         '0D             < FIN DE MESSAGE ???
         JE          HEX1            < OUI , OK.
         CPI         '04             < FIN DE MESSAGE ???
         JE          HEX1            < OUI , OK.
         ADRI        -'30,A
         JAL         E472            < ERREUR CARACTERE NON RECONNU.
         CPI         9               < EST-CE UN CHIFFRE ???
         JLE         E51             < OUI , C'EST UN CHIFFRE.
         ADRI        -'41+'39+1,A    < NON.
         CPI         'A              < VALIDATION.
         JL          E472            < ERREUR : CARACTERE NON RECONNU.
         CPI         'F              < VALIDATION.
         JG          E472            < ERREUR : CARACTERE NON RECONNU.
E51:     EQU         $
         SCRS        4               < MISE DES 4 BITS EN TETE DE A.
         SCLD        4               < ET CONCATENATION A B.
         ADRI        1,X             < PROGRESSION DE L'INDEX.
         CPR         X,Y             < EST-CE FINI ???
         JNE         E55             < NON , ON CONTINUE.
HEX1:    EQU         $
         LR          B,A             < A=VALEUR BINAIRE DE (REP).
         LBI         0               < B=0 : RETOUR OK.
E473:    EQU         $
         CPZR        B               < POSITIONNEMENT DES INDICATEURS.
         RSR
<
< RETOURS EN ERREUR :
<
E472:    EQU         $
         LBI         1               < B#0.
         JMP         E473            < PAR ICI LA SORTIE ...
         PAGE
<
<
<        C O N V E R S I O N   B I N A I R E  ---->  A S C I   H E X A :
<
<
<        ARGUMENT :
<                    B=VALEUR A CONVERTIR DANS BDISP.
<
<
DISP:    EQU         $
         LXI         1               < INDEX DE RANGEMENT DANS BISP.
         LYI         1+4             < BORNE SUPERIEURE DE (X).
DISP1:   EQU         $
         LAI         0               < CLEAR A.
         SLLD        4               < DECONCATENATION D'UN CHIFFRE.
         CPI         9               < EST-CE UN CHIFFRE ???
         JLE         DISP2           < OUI, CHIFFRE DECIMAL.
         ADRI        '41-'39-1,A     < CAS DES LETTRES A,B,C,D,E,F.
DISP2:   EQU         $
         ADRI        '30,A           < CONVERSION ASCI.
         STBY        &ABDISP         < ET MISE DANS LE BUFFER BDISP.
         ADRI        1,X             < AU SUIVANT.
         CPR         X,Y             < EST-CE FINI ???
         JNE         DISP1           < ET NON ....
         RSR                         < ET OUI ...
         PAGE
<
<
<        E M I S S I O N   D ' U N   M E S S A G E  :
<
<
<        ARGUMENT :
<                    A=@MESSAGE EN MOT.
<
<
PRINT:   EQU         $
         PSR         C,X
         LR          A,C             < C=@MOT DU MESSAGE.
         ADR         A,A             < CONVERSION OCTET.
         ADRI        1,A             < ADRESSE OCTET DU MESSAGE.
         STA         DEMOUT+1        < MAJ AMDEM.
         LBY         0,C             < RECUPERATION LONGUER MESSAGE.
         STA         DEMOUT+2        < MAJ CODEM.
         LAD         DEMOUT
         SVC         0               < EMISSION DU MESSAGE.
         PLR         C,X
         RSR
         PAGE
<
<
<        P A U S E  :
<
<
<        FONCTION :
<                      BLOQUER LE PROGRAMME JUSQU'A LA
<                    RECEPTION D'UN 'N'.
<
<
PAUS:    EQU         $
PAUS1:   EQU         $
         LA          AMPAUS
         BSR         AENTER          < ENVOI MESSAGE ET LECTURE DE
                                     < LA REPONSE.
         JE          PAUS1           < ON BOUCLE SI OUI 'O'.
         RSR                         < SINON 'N' ON ARRETE...
         PAGE
<
<
<        L E C T U R E / E C R I T U R E   I M A G E  :
<
<
<        ARGUMENT :
<                    A=@MESSAGE A EMETTRE.
<
<
GOSGN2:  EQU         $
         LR          Y,A             < RESTAURE A=@MESSAGE.
GOSGN:   EQU         $
         STZ         IRAZ            < IRAZ=0 : IL FAUDRA RAZER ITEM1.
         LR          A,Y             < SAVE Y=@MESSAGE.
         BSR         APRINT          < EMISSION DU MESSAGE ARGUMENT.
         LAD         DEMNOM
         SVC         0               < ENTREE DU NOM DEMANDE.
         LAI         '04
         STBY        &AEOT           < INSERTION D'UN EOT A PRIORI.
         LAD         SGN
         SVC         0               < LECTURE/ECRITURE DE L'IMAGE
                                     < DEMANDEE.
         JNE         GOSGN2          < ERREUR SGN.
         LBY         SGN             < ACCES AU NVP D'ACCES SGN.
         CPI         '05             < EST-CE UN LOAD ???
         JNE         GOSGN1          < NON.
         LA          &ALONG          < OUI , ACCES AU TYPE.
         JAGE        GOSGN2          < ERREUR : CE N'EST PAS UNE
                                     < IMAGE VIDEO.
         CPI         -3              < SUITE DE LA VALIDATION.
         JL          GOSGN2          < CE N'EST PAS UNE IMAGE VIDEO ...
GOSGN1:  EQU         $
         LR          Y,A             < RESTAURE A=@MESSAGE.
         RSR
         PAGE
<
<
<        A C C E S   A U   C C I   I N T E R P R E T A T I F  :
<
<
<        ARGUMENT :
<                    A=@MOT DE LA CARTE CONTROLE.
<
<
CCI:     EQU         $
         SLLS        1               < CONVERSION EN UNE ADRESSE OCTET.
         STA         CCII+1          < MAJ DE L'AMDEM.
         LAD         CCII
         SVC         0               < ENVOI DE LA CARTE CONTROLE.
         RSR
<
<
<        T E N T A T I V E   D E   D E L E T E
<        D E S   F I C H I E R S   F A   &   F B  :
<
<
DF:      EQU         $
         LAD         MAO
         BSR         ACCI            < !ASSIGN A=O,FA.
         LAD         MAC
         BSR         ACCI            < !ASSIGN A=R.
         LAD         DEMDA
         SVC         0               < DESTRUCTION DU NOM FA.
         LAD         MBO
         BSR         ACCI            < !ASSIGN B=O,FB.
         LAD         MBC
         BSR         ACCI            < !ASSIGN B=R.
         LAD         DEMDB
         SVC         0               < DESTRUCTION DU NOM FB.
         RSR
         PAGE
<
<
<        I N T E R F A C E   D E   T R A N S F O R M A T I O N  :
<
<
<        FONCTION :
<                      IL EST POSSIBLE DE PROGRAMMER A L'AIDE
<                    DE 'GC' UN MODULE DE TRANSFORMATION
<                    EN ASSEMBLEUR (ITEM1) ; LE BINAIRE
<                    RESULTANT EST DANS L'ITEM2 : L'ADRESSE
<                    DE SON POINT D'ENTREE EST DANS SON
<                    MOT0.
<
<
<        ARGUMENT :
<                    B=1 : IMAGE D'ARRIVEE,
<                     =2 : IMAGE DE DEPART,
<                    B=-1 : AVANT IMAGE D'ARRIVEE SI VIDEO,
<                     =-2 : AVANT IMAGE DE DEPART SI VIDEO,
<                    X,Y=CORRDONNEES D'UN POINT BLANC SI VIDEO,
<                    A=@DEMSEG SI VIDEO ET SI B<0.
<                    A=@SEGMENT COURANT SI GRAPHIQUE.
<
<
TRANS:   EQU         $
         CPZ         AITEM2          < Y-A-T'IL UNE TRANSFORMATION
                                     < A OPERER ???
         JE          NTRANS          < NON.
         PSR         X,Y,C,L
         BSR         &AITEM2         < ET OUI, A LA GRACE DE DIEU !!!
         PLR         X,Y,C,L
NTRANS:  EQU         $
         RSR
         PAGE
<
<
<        I N S E R T I O N   D ' U N   P O I N T   D E   D E P A R T
<        D A N S   L A   L I S T E   D ' A R R I V E E  :
<
<
<        ARGUMENT :
<                    A=OCTET DE DEPART A INSERER.
<
<
MAJL:    EQU         $
         PSR         X
         IC          NDE             < COMPTAGE OCTETS DE DEPART.
         LX          IBUF            < X=INDEX COURANT BUFFER SGF.
STBY1:   STBY        &ABUF           < INSERTION UNITE DE DEPART.
         ADRI        2,X             < PROGRESSION INDEX BUFFER.
         LA          NDE
         CP          NAR
         JLE         E17             < L'IMAGE DE DEPART A POUR LE
                                     < MOMENT, MOINS D'OCTETS QUE
                                     < L'IMAGE D'ARRIVEE.
         ADRI        -1,X            < RETOUR OCTET D'ARRIVEE,
         LAI         0
STBY2:   STBY        &ABUF           < UNITE D'ARRIVEE =0.
         ADRI        1,X
E17:     EQU         $
         BSR         AWR             < LECTURE/ECRITURE SGF.
         PLR         X
         RSR
         PAGE
<
<
<        R A N G E M E N T   D A N S   L E   B U F F E R   S G F  :
<
<
<        FONCTION :
<                      ELLE RANGE L'OCTET D'ARRIVEE (A) DANS
<                    LE BUFFER SGF SUIVANT L'INDEX 'IBUF' ;
<                    LORSQUE LE BUFFER EST PLEIN, UNE ECRITURE
<                    DE L'ENREGISTREMENT SGF EST FAITE.
<
<
STBUF:   EQU         $
         PSR         A,X             < SAVE.
         LX          IBUF            < X=INDEX COURANT BUFFER SGF.
STBY3:   STBY        &ABUF           < MISE EN PLACE UNITE D'ARRIVEE.
         ADRI        1,X
         LR          X,A             < ACCES A L'INDEX COURANT.
         CP          MAXBUF          < EST-ON AU BOUT DU BUFFER ???
         JL          STBUF1          < NON , RIEN A FAIRE ....
<
< ECRITURE DE L'ENREGISTREMENT COURANT :
<
         LAD         SGFW
         SVC         0
         LAI         0               < AFIN DE REINITIALISER L'INDEX
                                     < COURANT DU BUFFER SGF.
STBUF1:  EQU         $
         STA         IBUF            < MISE A JOUR DE 'IBUF'.
         PLR         A,X             < RESTAURE.
         RSR                         < RETOUR ....
         PAGE
<
<
<        L E C T U R E / E C R I T U R E   S G F  :
<
<
WR:      EQU         $
         LR          X,A
         CP          MAXBUF          < VALIDATION INDEX BUFFER.
         JL          E18             < OK , IL TIENT ENCORE.
         LAD         SGFW
         SVC         0               < ECRITURE DE L'ENREGISTREMENT
                                     < COURANT DE '0A.
         LAD         SGFR
         SVC         0               < PUIS LECTURE-DELETE DE L'ENREGIS-
                                     < TREMENT COURANT DE '0B.
         LAI         0               < REINITIALISATION DE L'INDEX.
E18:     EQU         $
         STA         IBUF            < MISE A JOUR DE L'INDEX BUFFER.
         RSR
         PAGE
<
<
<        E N T R E E   D ' U N E   R E P O N S E  :
<
<
<        REPONSES RECONNUES :
<                    O : B=0,
<                    N : B=1,
<                    W : RETOUR TEMPORAIRE AU CCI,
<                    F : ABORTE DE TA.
<
<
<        ARGUMENT :
<                    A=@MOT DU MESSAGE A EMETTRE AU PREALABLE.
<
<
<        RESULTAT :
<                    B=0 : OUI ,
<                     =1 : NON.
<                    INDICATEURS POSITIONNES SUR (B).
<
<
ENTER:   EQU         $
         LR          A,Y             < Y=SAVE @MESSAGE.
         BSR         APRINT          < EMISSION DU MESSAGE PREALABLE.
         LAD         DEMIN
         SVC         0               < ENTREE D'UN CARACTERE REPONSE.
         LBY         REP             < ACCES A LA REPONSE.
         CPI         "W"             < DEMANDE DE PASSAGE AU CCI ???
         JNE         ENTER2          < NON.
<
< RETOUR TEMPORIARE AU CCI :
<
         LAD         DEMCCI
         SVC         0               < APPEL DU CCI.
         LR          Y,A             < AU RETOUR PAR !GO, ON RESTAURE
                                     < A=@MESSAGE A EMETTRE.
         JMP         ENTER           < ET ON RECOMMENCE.
<
< AUTRES COMMANDES :
<
ENTER2:  EQU         $
         CPI         "F"             < EST-CE UNE DEMANDE D'ABORT ???
         JE          ALTMOD          < ET OUI, COMME UN ALT-MODE ....
         LBI         0               < 0=OUI A PRIORI.
         CPI         "O"             < EST-CE OUI ???
         JE          ENTER1          < OK , FIN...
         LBI         1               < 1=(ON A PRIORI.
         CPI         "N"             < EST-CE NON ???
         LR          Y,A             < RESTAURE A=@MESSAGE.
         JNE         ENTER           < RIEN COMPRIS, ON RECOMMENCE.
ENTER1:  EQU         $
         CPZR        B               < POSITIONNEMENT DES INDICATEURS.
         RSR
         PAGE
<
< ERREURS LORS DU CCI INTERPRETATIF :
<
CCIER:   EQU         $
         LAD         MERR
         BSR         APRINT          < ENVOI MESSAGE D'ERREUR.
X100:    VAL         0
<
<
<        R E T O U R   A   ' G E '  :
<
<
GOGE:    EQU         $
ALTMOD:  EQU         $
         LAI         BRANCH-ZERO
         LR          A,W             < REINITIALISE W=@BRANCH.
<
< PREPARATION DE L'3VERLAY :
<
         LAI         '06
         STBY        DEMSGN          < DEMSGN EST MISE EN MODE 'LOAD
                                     < SOUS :SYS '.
         LA          NGE
         STA         0,W             < LE NOM DE 'GE' EST MIS EN TETE DE
                                     < LA BRANCHE D'OVERLAY.
         LA          APILE
         LR          A,K             < REINITIALISATION DE K SUR LA
                                     < PILE DE SMC.
         LAD         RELMEM
         SVC         0               < RETOUR A 4K MOTS.
         BSR         ADF             < DELETE FICHIERS FA ET FB.
<
< RAZ EVENTUEL DE L'ITEM1 :
<
         CPZ         IRAZ            < L'ITEM1 A-T'IL ETE ALTERE ???
         JNE         NRAZ            < NON, RIEN A FAIRE...
         LX          NMOTS           < OUI, X=NBRE DE MOTS A RAZER.
RAZ:     EQU         $
         STZ         &AI1            < RAZ MOT A MOT.
         JDX         RAZ
NRAZ:    EQU         $
<
< TENTATIVE(S) DE CHARGEMENT DE 'GE' :
<
GOGE2:   EQU         $
         LAD         DEMSGN          < A=@DEMSGN , W=@BRANCH.
         BSR         AOVL            < TENTATIVE DE LOAD 'GE'.
         LAD         DEMCCI
         SVC         0               < RETOUR AU CCI SI ERREUR ,
         JMP         GOGE2           < ET NOUVELLE TENTATIVE SI !GO.
<
<
<        P R O C E S S E U R   D ' I N T E R P O L A T I O N  :
<
<
<        FONCTION :
<                      CE PROCESSEUR INTERPOLE ENTRE 2
<                    IMAGES VIDEOS, MAIS A LA DIFFERENCE
<                    DE 'TA', IL INTERPOLE D'OCTETS A
<                    OCTETS PAR VALEUR DE CEUX-CI, SANS
<                    LES DEPLACER DANS LE PLAN DE L'IMAGE.
<                    ON PEUT AINSI INTERPOLER ENTRE DES
<                    ECHANTILLONS SONORES.
<
<
STA:     STA         &0,L            < CODE DU STA,
LA:      LA          &0,L            < CODE DU LA.
         WORD        IMAG
         WORD        LOC+'80
         WORD        BRANCH
IMAGE:   EQU         $
         LRP         K
         ADRI        -1,K
         PLR         C,L,W           < INITIALISATIONS DES 3 BASES.
         LAD         STACK-1
         LR          A,K             < INITIALISATION DE K SUR LA PILE
                                     < DE TRAVAIL DE 'TN'.
         IC          KIN             < DECOMPTE DES ENTRIES.
         JG          ALTMOD          < RETOUR A GE SI ALT-MODE ...
         IF          ORDI-"T",XWOR%,,XWOR%
<
< TEST DU NUMERO DE COMPTE D'APPEL :
<
         WORD        '1E25           < (A,B)=<ACN>.
         CP          ACNSYS          < EST-CE :SYS ???
         JNE         E4000           < NON.
         LR          B,A             < PEUT-ETRE ...
         CP          ACNSYS+1        < EST-CE :SYS ???
         JE          E4001           < ET OUI , ON POURRA STABILISER ...
E4000:   EQU         $
         STZ         ASP3            < NON , PSA DE STABILISATION...
E4001:   EQU         $
XWOR%:   VAL         0
<
< ACCES A L'IDESC UTILISATEUR :
<
         WORD        '1E45           < A=IDESC.
         ADRI        '30,A           < CONVERSION EN UN CHIFFRE ASCI.
         STBY        IDAN            < MAJ NOM FA.
         STBY        IDBN            < MAJ NOM FB.
         STBY        IDAO            < MAJ NOM FA.
         STBY        IDBO            < MAJ DU NOM FB.
<
< TENTATIVE DE DELETE DES FICHIERS FA & FB :
<
         BSR         ADF
<
< OUVERTURE DE NOUVEAUX FICHIERS FA & FB :
<
         LAD         MAN
         BSR         ACCI            < !ASSIGN A=N,FA.
         JNE         CCIER           < ON ABORTE ICI SI ERREUR.
         LAD         MBN
         BSR         ACCI            < !ASSIGN B=N,FB.
         JNE         CCIER           < ON ABORTE ICI SI ERREUR.
E200:    EQU         $
         LAD         DEMMEM
         SVC         0               < ALLOCATION 8K MOTS.
E201:    EQU         $
<
< PARCOURS OCTET OU MOTS ???
<
         LA          AMOCT
         BSR         AENTER          < INTEROGATION.
         STB         MODE            < SAVE LE MODE DEMANDE.
         JE          E170            < PARCOURS OCTET, TOUT EST BIEN.
<
< CAS DU PARCOURS MOT :
<
         LA          ALIMA2
         SLRS        1               < L'IMAGE VIDEO EST COMPOSEE DE
         STA         ALIMA2          < 2 FOIS MINS DE MOTS QUE D'OCTETS.
         LA          MAXBUF          < DE MEME MAXBUF,
         SLRS        1
         RBT         15              < DE PLUS, ON LE REND PAIR, AFIN
         STA         MAXBUF          < QUE MOT DE DEPART ET D'ARRIVEE
                                     < SOIT DANS LE MEME ENREGISTREMENT.
         LXI         0               < INDEX DE MISE A JOUR INSTRUCTIONS.
         PSR         C
CHMO:    EQU         $
         LA          &ALSTBY         < A=@INSTRUCTION COURANTE.
         JAE         CHMO1           < FIN DE LISTE.
         TBT         0               < STBY (0) OU LBY (1) ???
         RBT         0
         LR          A,C             < C=@INSTRUCTION A MODIFIER.
         LBY         &ASTA           < A PRIORI STBY-->STA.
         JNC         CHMO2           < OUI.
         LBY         &ALA            < NON : LBY-->LA.
CHMO2:   EQU         $
         STBY        0,C             < MAJ INSTRUCTION COURANTE.
         ADRI        1,X             < SUIVANTE...
         JMP         CHMO
CHMO1:   EQU         $
         PLR         C
<
< CHOIX DU MODE D'INTERPOLATION :
<
E170:    EQU         $
         LA          AMPAS
         BSR         AENTER          < ENVOI MESSAGE ET REPONSE.
         STB         PAS             < SAVE L'INDICATEUR : 0=PAS A PAS.
E310:    EQU         $
<
< ENTREE DU NBRE D'ITERATIONS :
<
E50:     EQU         $
         LA          AMCON
         BSR         APRINT          < ENVOI D'1N MESSAGE.
         LAD         DEMCON
         SVC         0               < ENTREE D'1N NBRE HEXA SOUS FORME
                                     < DE 2 CARACTERES.
         LYI         2               < 2 CARACTERES A DECODER.
         BSR         AHEX            < DECODAGE DE (REP).
         JNE         E50             < ERREUR , CE N'EST PAS DE
                                     < L'HEXADECIMAL ...
         JALE        E50             < ERREUR : NBRE NEGATIF OU NUL.
         STA         CONS            < SAVE LA VALEUR DE CONS.
<
< FAUT-IL TRANSFORMER PAR (ITEM2) :
<
         LA          AMTR
         BSR         AENTER          < ENVOI MESSAGE ET LECTURE REPONSE.
         JE          TRANS1          < OUI.
         STZ         AITEM2          < NON , ET ON FAIT AITEM2=0.
         JMP         TRANS2
TRANS1:  EQU         $
         LBY         &ATYP           < OUI : IL FAUT VALIDER L
                                     < TYPE DE L'ITEM2.
         CPI         "P"             < EST-CE UN PROGRAMME BINAIRE ???
         JNE         CCIER           < NON, ON ABORTE...
TRANS2:  EQU         $
<
<
<        A C C E S   I M A G E   D ' A R R I V E E  :
<
<
E101:    EQU         $
         LA          AMRES
         BSR         AENTER          < GARDE-T'ON L'IMAGE RESIDENTE ???
         JE          E48             < OUI , RIEN A ENTRER ...
         LA          AMAR
         BSR         AGOSGN          < NON , ON ENTRE UNE IMAGE.
E48:     EQU         $
         BSR         AVIS            < STABILISATION EVENTUELLE IMAG.
<
<        A N A L Y S E   D E   L ' I M A G E   D ' A R R I V E E  :
<
         LAD         SGFO1
         SVC         0               < OUVERTURE DE LA CLEF '1.0'.
<
< ICI, PAR TRANSFORMATION, ON PEUT PAR EXEMPLE ORDONNER
< LE TEST DES POINTS DE L'IMAGE VIDEO A L'AIDE PAR EXEMPLE
< D'UN DESSIN RECUPERE PAR :GS :
<
         LBI         -1
         BSR         ATRANS          < TRANSFORMATION EVENTUELLE.
<
< PARCOURS DE L'IMAGE D'ARRIVEE :
<
         LXI         0               < INDEX OCTET DE L'IMAGE.
E1:      EQU         $
         LBI         1
         BSR         ATRANS          < TRANSFORMATION EVENTUELLE.
         LAI         0
         BSR         ASTBUF          < OCTET DE DEPART=0.
         IC          NAR             < COMPTAGE OCTETS D'ARRIVEE.
LBY1:    LBY         &AIMAG0         < A=UNITE D'ARRIVEE.
         BSR         ASTBUF          < MISE EN PLACE OCTET ARRIVEE.
         ADRI        1,X             < PASSAGE OCTET SUIVANT.
         LR          X,A
         CP          ALIMA2          < VALIDATION INDEX OCTET.
         JL          E1              < IMAGE NON TERMINEE.
<
< FIN DE L'IMAGE D'ARRIVEE :
<
E103:    EQU         $
         CPZ         IBUF            < Y-A-T'IL UN BUFFER SGF A MOITIE
                                     < PLEIN ???
         JE          E4              < NON,IL EST VIDE.
         LAD         SGFW
         SVC         0               < OUI, ON L'ECRIT.
E4:      EQU         $
         LAD         SGFC
         SVC         0               < PUIS ON FERME LA CLEF '1.0'.
         BSR         APAUS           < UNE PETITE PAUSE NE FERA PAS
                                     < DE MAL ...
<
<
<        C H A R G E M E N T   I M A G E   D E   D E P A R T  :
<
<
         LA          AMSCRA
         BSR         AENTER          < GARDE-T'ON L'IMAGE SCRATCH ???
         JE          E44             < OUI , IL FAUT LA RELIRE.
         LA          AMDE
         BSR         AGOSGN          < NON , IL FAUT EN LIRE UNE
                                     < PAR LE SGN ...
         BSR         AVIS            < STABILISATION EVENTUELLE IMAG.
         JMP         E47
E44:     EQU         $
         LY          RDK+2           < INCREMENT DE L'@OCTET BUFFER.
         LB          IMAG2           < @OCTET BUFFER COURANT.
         STZ         RDK+3           < PAR PRUDENCE ...
         LXI         LIMAG/128       < X=NBRE DE SECTEURS A LIRE.
         LAD         RDK             < A=@DEMANDE LECTURE SCRATCH.
E5:      EQU         $
         STB         RDK+1           < MAJ @OCTET BUFFER.
         PSR         X               < SAVE DECOMPTE SECTEURS.
         SVC         0               < LECTURE SECTEUR COURANT.
         PLR         X               < RESTAURE DECOMPTE SECTEURS.
         IC          RDK+3           < PROGRESSION NUMERO DE SECTEUR.
         ADR         Y,B             < PROGRESSION @OCTET BUFFER.
         JDX         E5              < AU SUIVANT ...
<
< MISE DE LA DEMANDE SGN EN SAVE :
<
E47:     EQU         $
         LAI         '04
         STBY        SGN             < NVP DE STORE.
<
< PREPARATIFS SGF :
<
E110:    EQU         $
         IC          SGFO1           < FONCTION=5 : OPEN OLD.
         LAD         SGFO1
         SVC         0               < OPEN OLD '1.0' SUR '0B.
         LAI         '0A
         STBY        SGFO1           < POUR OPEN SUR '0A.
         STBY        SGFW            < POUR ECRITURE SUR '0A.
         LAD         SGFR            < LECTURE DU 1ER SECTEUR DE LA
                                     < LISTE DESCRIPTIVE DE L'IMAGE
                                     < D'ARRIVEE.
         SVC         0
         DC          SGFO1           < FONCTION=4 : OPEN NEW.
         LAD         SGFO1
         SVC         0               < OPEN NEW CLEF '1.0' SUR '0A.
         STZ         IBUF            < REINITI IBUF.
<
<        E X P L O R A T I O N   D E   L ' I M A G E   D E   D E P A R T
<
E1200:   EQU         $
<
< ICI, PAR TRANSFORMATION, ON PEUT PAR EXEMPLE ORDONNER
< LE TEST DES POINTS DE L'IMAGE VIDEO A L'AIDE PAR EXEMPLE
< D'UN DESSIN RECUPERE PAR :GS :
<
         LBI         -2
         BSR         ATRANS          < TRANSFORMATION EVENTUELLE.
<
< PARCOURS DE L'IMAGE DE DEPART :
<
E120:    EQU         $
         IC          FOIS            < ET UN TOUR DE PLUS SUR L'IMAGE
                                     < DE DEPART.
         LXI         0               < INDEX OCTET DE L'IMAGE.
E11:     EQU         $
         LBI         2
         BSR         ATRANS          < TRANSFORMATION EVENTUELLE.
LBY2:    LBY         &AIMAG0         < A=UNITE DE DEPART.
         BSR         AMAJL           < INSERTION OCTET DE DEPART
                                     < COURANT.
         CPZ         FOIS
         JE          E750            < CAS DE LA 1ERE EXPLORATION
                                     < DE L'IMAGE DE DEPART, IL
                                     < FAUT LA FAIRE EN ENTIER.
         IC          ND              < AFIN DE COMPTABILISER CORRECTE-
                                     < MENT LE NBRE DE POINTS A
                                     < INTERPOLER.
         LA          NDE             < CAS DES EXPLORATIONS SUIVANTES,
         CP          NAR             < ON S'ARRETE LORSQUE LES 'N'
                                     < EXPLORATIONS DE L'IMAGE DE DEPART
                                     < ONT DONNE AUTANT DE POINTS QU'EN
         JE          E19             < CONTIENT L'IMAGE D'ARRIVEE.
                                     < A T T E N T I O N  : LORSQUE
                                     < L'IMAGE DE DEPART A PLUS DE
                                     < POINTS QUE L'IMAGE D'ARRIVEE,
                                     < CETTE DERNIERE N'EST PAS
                                     < REEXPLOREE...
E750:    EQU         $
E13:     EQU         $
         ADRI        1,X             < OCTET SUIVANT.
         LR          X,A
         CP          ALIMA2          < VALIDATION NDEX OCTET.
         JL          E11             < IMAGE NON TERMINEE.
<
< ON A ATTEINT LA FIN DE L'IMAGE DE DEPART :
<
E122:    EQU         $
         LA          NDE
         STA         ND              < NBRE DE POINTS BLANCS TROUVES.
         CPZ         FOIS            < EST-CE LA 1ERE FOIS ???
         JG          E21             < NON.
         STA         SNDE            < CAS DE LA 1ERE FOIS EN VIDEO
                                     < (FOIS=0) OU GRAPHIQUE (FOIS=-1) .,
                                     < ON SAVE LE NBRE DE POINTS REEL
                                     < DE L'IMAGE DE DEPART.
E21:     EQU         $
         CP          NAR
         JGE         E19             < L'IMAGE DE DEPART A AU MOINS
                                     < AUTANT DE POINTS QUE L'IMAGE
                                     < D'ARRIVEE.
         CPZ         NDE             < L'IMAGE DE DEPART EST-ELLE VIDE???
         JNE         E120            < NON, ALORS ON VA LA REEXPLORER...
<
< CAS OU L'IMAGE DE DEPART A MOINS DE POINTS QUE L'IMAGE D'ARRIVEE :
<
E751:    EQU         $
         LX          IBUF            < X=INDEX COURANT BUFFER SGF.
         LAI         0
STBY4:   STBY        &ABUF           < MISE EN PLACE UNITE DE DEPART
                                     < NUL.
         ADRI        2,X             < PROGRESSION INDEX BUFFER.
         IC          ND              < COMPTAGE DES POINTS DE L'IMAGE
                                     < DE DEPART, PLUS CEUX QUE L'ON
                                     < RAJOUTE A L'ORIGINE.
         BSR         AWR             < LECTURE/ECRITURE SGF.
         LA          ND              < A=NBRE DE POINTS COURANT DEPART.
         JMP         E21             < ET ON RECOMMENCE.
<
< FIN DE L'IMAGE DE DEPART :
<
E19:     EQU         $
         CPZ         IBUF            < UN BUFFER INCOMPLET EST-IL
                                     < EN COURS DE REMPLISSAGE ???
         JE          E22             < NON, C'EST FINI.
         LAD         SGFW
         SVC         0               < OUI, ECRITURE ENREGISTREMENT
                                     < COURNAT SUR '0A.
<
< OPERATIONS SGF :
<
E22:     EQU         $
         DC          SGFC            < MISE DU CLOSE EN RELEASE '06.
         LAD         SGFC
         SVC         0               < CLOSE-RELEASE SUR '0B.
         LAI         '0A
         STBY        SGFC
         IC          SGFC            < REMISE DU CLOSE EN SAVE '07.
         LAD         SGFC
         SVC         0               < CLOSE-SAVE SUR '0A.
<
<        ETAT DES DEMANDES SGF :
<                    SGFC : CLOSE-SAVE SUR '0A (7=SAVE , 6=RELEASE).
<                    SGFW : ECRITURE SUR '0A.
<                    SGFR : LECTURE-DELETE SUR '0B.
<                    SGFO1 : OPEN-NEW SUR '0A (4=NEW , 5=OLD).
<
<
< EDITION DU NBRE DE POINTS DE DEPART :
<
E700:    EQU         $
         LA          AMND
         BSR         APRINT
         LB          SNDE
         BSR         ADISP           < CONVERSION HEXA.
         LAD         BDISP
         BSR         APRINT
<
< EDITION DU NBRE DE POINTS D'ARRIVEE :
<
         LA          AMNA
         BSR         APRINT
         LB          NAR
         BSR         ADISP           < CONVERSION HEXA.
         LAD         BDISP
         BSR         APRINT
<
< LAISSONS LE TEMPS DE LIRE (A CAUSE DE L'ERASE A SUIVRE) :
<
         BSR         APAUS           < ET ENCORE UNE TITE PAUSE...
<
<
<        I N T E R P O L A T I O N  :
<
<
E410:    EQU         $
         IC          CONS            < AFIN DE NE PAS FAIRE TROP DE DC.
E30:     EQU         $
         DC          CONS            < DECOMPTE DES ITERATIONS A FAIRE.
         JLE         E250            < C'EST FINI : RETOUR A 'GE'.
         LA          ND
         JANE        E70             < OK , NBRE DE POINTS#0 ...
E250:    EQU         $
         BR          AGOGE           < ON ARRETE LA SI ND=0.
E70:     EQU         $
         STA         NC              < INITIALISATION DU DECOMPTEUR DE
                                     < POINTS A INTERPOLER.
         IC          SGFO1           < OPEN-OLD.
         LA          NVP1
         STBY        SGFO1           < MISE EN PLACE NVP OPEN-OLD.
         LAD         SGFO1
         SVC         0               < OPEN OLD SUR '0A PAR EXEMPLE.
         DC          SGFO1           < OPEN-NEW.
         LA          NVP1
         STBY        SGFR            < POUR LECTURE SUR '0A PAR EXEMPLE.
         IBT         15              < CHANGEMENT DE NVP.
         STBY        SGFO1           < POUR OPEN NEW SUR '0B PAR EXEMPLE
         STBY        SGFW            < POUR ECRITURE SUR '0B PAR EXEMPLE
         LAD         SGFO1
         SVC         0               < OPEN NEW SUR '0B PAR EXEMPLE.
         STZ         IBUF            < REINIT INDEX BUFFER.
         LAD         SGFR
         SVC         0               < LECTURE DU 1ER ENREGISTREMENT
                                     < SUR '0A PAR EXEMPLE.
<
< RAZ DE L'IMAGE VIDEO COURANTE :
<
E160:    EQU         $
         LX          ALIMAG          < X=NRE DE MOTS A RAZER.
E38:     EQU         $
         STZ         &AIMAG          < RAZ MOT PAR MOT.
         JDX         E38             < AU PRECEDENT.
         STZ         XIMAG           < INITIALISATION INDEX IMAGE.
<
< INTERPOLATION DE L'2MAGE DE DEPART COURANTE :
<
E31:     EQU         $
         LX          IBUF            < X=INDEX COURANT BUFFER SGF.
LBY3:    LBY         &ABUF
         LR          A,Y             < Y=DEPART.
         LR          A,B             < B=DEPART.
         ADRI        1,X
LBY4:    LBY         &ABUF           < A=ARRIVEE.
         SBR         B,A             < A=ARRIVEE-DEPART.
         CPZ         MODE
         JNE         MODM            < MODE MOT.
         SARD        16              < EXTENSION 32 BITS.
         JMP         MODO
MODM:    EQU         $
         SLRD        16              < DANS LE CAS DES MOTS, ON FAIT
                                     < UN DECALAGE LOGIQUE POUR
                                     < ELIMINER DES PROBLEMES
                                     < APPARUS DANS LES PASSAGES
                                     < 'FFFF --> '0000.
MODO:    EQU         $
         DV          CONS            < A=(ARRIVEE-DEPART)/CONS.
         ADR         Y,A             < A=DEPART+(ARRIVEE-DEPART)/CONS.
         ADRI        -1,X            < RETOUR SUR LE DEPART.
STBY5:   STBY        &ABUF           < CHANGEMENT UNITE DE DEPART.
         PSR         X
         LX          XIMAG           < X=INDEX COURANT IMAGE,
         IC          XIMAG           < ET PROGRESSION.
STBY6:   STBY        &AIMAG0         < GENERATION IMAGE COURANTE.
         PLR         A               < A=INDEX COURANT BUFFER.
         ADRI        2,A             < ET PROGRESSION.
         CP          MAXBUF          < ET VALIDATION.
         JL          E33             < OK.
         LAD         SGFW            < ECRITURE DE L'ENREGISTREMENT
                                     < COURANT SUR '0B PAR EXEMPLE.
         SVC         0
         LAD         SGFR
         SVC         0               < LECTURE DE L'ENREGISTREMENT
                                     < SUIVANT SUR '0A PAR EXEMPLE.
         LAI         0               < REINIT INDEX BUFFER.
E33:     EQU         $
         STA         IBUF            < MAJ IBUF.
         DC          NC              < DECOMPTAGE DES POINTS A
                                     < INTERPOLER.
         JG          E31             < IL Y EN A ENCORE ...
<
< CAS OU LA FIN DE LISTE EST RENCONTREE :
<
E32:     EQU         $
         CPZ         IBUF            < Y-A-T'IL UN BUFFER EN COURS
                                     < DE REMPLISSAGE ???
         JE          E34             < NON , RIEN A FAIRE ...
         LAD         SGFW            < OUI ,
         SVC         0               < ECRITURE DU DERNIER ENREGIS-
                                     < TREMENT SUR '0B PAR EXEMPLE.
E34:     EQU         $
         LA          NVP1
         STBY        SGFC
         DC          SGFC            < CLOSE RELEASE.
         LAD         SGFC
         SVC         0               < CLOSE RELEASE '0A PAR EXEMPLE.
         IC          SGFC            < CLOSE SAVE.
         LA          NVP1
         IBT         15
         STA         NVP1            < PERMUTATION DES NVP SGF.
         STBY        SGFC
         LAD         SGFC
         SVC         0               < CLOSE SAVE '0B PAR EXEMPLE.
E80:     EQU         $
         BSR         AVIS            < STABILISATION EVENTUELLE IMAG.
         CPZ         PAS             < TEST DU MODE D'INTERPOLATION.
         JNE         EE30            < MODE CONTINU : ON REBOUCLE....
E220:    EQU         $
E140:    EQU         $
         LAD         MSAVE
         BSR         AENTER          < CAS DU MODE PAS A PAS , FAUT-
                                     < IL SAUVER L'IMAGE COURANTE ???
         JNE         EE30            < NON , ALORS ON CONTINUE.
         LAI         -3
         STA         &ALONG          < L'IMAGE RECOIT LE TYPE 'VIDEO'.
         LAD         MNOM
         BSR         AGOSGN          < OUI , ALORS ON LUI DONNE UN
                                     < NOM , ET ON LA STORE.
EE30:    BR          AE30            < BOUCLE D'INTERPOLATION.
         PAGE
<
<
<        I M P L A N T A T I O N  :
<
<
X12:     EQU         ZERO+PILE-LTNI-LTNI
X10:     VAL         X12-$
ZEROV:   EQU         ZERO+X10        < ERREUR D'ASSEMBLAGE SI MAUVAISE
                                     < IMPLANTATION !!!
         DZS         X10+1           < HYGIENE ...
         EOT         #SIP GEN PROCESSEUR#



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.