PAGE
NMRW::   VAL         "RW"            < VERSION UTILISANT L'ITEM1 COMME SUPPORT
                                     < DES 'LUT' (L'ITEM1 DOIT ALORS AVOIR
                                     < LE TYPE TEXTE "T").
NMRX::   VAL         "RX"            < VERSION POSSEDANT SA COPIE LOCALE
                                     < DES 'LUT',
NMMOIN:: VAL         " -"            < VERSION INTERPRETATIVE DE "RW" LIMITEE
                                     < A LA COMMANDE "G"...
XXCONV:: VAL         0               < VERSION CONVERSATIONNELLE ("RW" ET "RX").
XXITEM:: VAL         1               < VERSION INTERPRETATIVE (" -").
<
<
<        P R O C E S S E U R   D E   P A R C O U R S
<        D E S   R E G I S T R E S   C O U L E U R  :
<
<
         EOT         #SIP DEFINITION ITEM#
         EOT         #SIP DEFINITION CMS5#
         EOT         #SIP IMAGE 256#
ENDIF::  VAL         0               < POUR LE #SIP IMAGE 512# QUI SUIT...
XXXIMA:  VAL         -1              < POUR NE DEFINIR QUE LES 'XXIMA'...
         EOT         #SIP IMAGE 512#
XXXIMA:  VAL         XXIMA1
         EOT         #SIP IMAGE 512#
YYYIMA:: VAL         YYYIM2          < AFIN DE GAGNER DE LA PLACE !!!
         EOT         #SIP DEF PROCESSEUR#
         WORD        PRV             < POINT D'ENTREE REEL.
         WORD        0
         PROG
PRUN:    EQU         $
         LRP         L
         BR          -2,L            < ENTREE PAR "GE"...
ITEM2:   EQU         ZERO+PILE-LTNI-LTNI
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         IDP         "RW - JOHN F. COLONNA 03/11/1983"
XXMODE:: VAL         XXCONV          < MODE CONVERSATIONNEL...
XWOR%9:  VAL         ENDIF
         IF          NMPROC-NMRX,XWOR%9,,XWOR%9
         IDP         "RX - JOHN F. COLONNA 09/08/1983"
XXMODE:: VAL         XXCONV          < MODE CONVERSATIONNEL...
XWOR%9:  VAL         ENDIF
         IF          NMPROC-NMMOIN,XWOR%9,,XWOR%9
         IDP         " - VERSION INTERPRETATIVE DE 'RW' 04/11/1983"
NMPROC:  VAL         NMRW            < ET ON FAIT CROIRE QUE C'EST "RW",
XXMODE:: VAL         XXITEM          < MAIS EN MODE INTERPRETATIF...
XWOR%9:  VAL         ENDIF
         PAGE
<
<
<        P A R A M E T R E S   G E N E R A U X  :
<
<
NBRHEX:: VAL         4               < NOMBRE DE CHIFFRES HEXA PAR MOT.
FGR::    VAL         0               < FONCTION DE LECTURE,
FGRE::   VAL         1               < FONCTION DE LECTURE AVEC ECHO,
FGW::    VAL         2               < FONCTION D'ECRITURE.
NVPV:    VAL         2               < NVP DE LA VISU,
NVPC:    VAL         NVPV            < NVP UTILISE POUR LE CURSEUR GRAPHIQUE.
NVPCU::  VAL         '8B             < POUR ACCEDER AU 'CU3'...
X::      MOT         1               < COORDONNEE X,
Y::      MOT         0               < COORDONNEE Y.
<
<
<        P E R M U T A T I O N   D E S   C O U L E U R S  :
<
<
XXMIN::  VAL         1               < PREMIERE COULEUR...
XXBLAC:: VAL         XXMIN-I         < NOIR,
XXR::    VAL         XXMIN           < SELECTION ROUGE,
XXV::    VAL         XXR+I           < SELECTION VERT,
XXB::    VAL         XXV+I           < SELECTION BLEU.
<
<
<        C O U L E U R S   B A S S E   D E F I N I T I O N  :
<
<
CUNIVO:: VAL         '000F           < NIVEAU DE GRIS,
LREG::   VAL         CUNIVO+1=0
CUREG::  VAL         '0070           < NUMERO DE REGISTRE,
CUBAN::  VAL         '0080           < NUMERO DE BANK EN POSITIONNEMENT,
CUREB::  VAL         CUBAN?CUREG     < ADRESSE COMPLETE DES REGISTRES.
CUCOLO:: VAL         '0700           < SELECTION DES COULEURS,
CUDIFF:: VAL         '0800           < NUMERO DE BANK EN DIFFUSION.
CUINIT:: VAL         '8000           < POUR INITIALISER LE CONTROLEUR.
XWOR%1:  VAL         CUREB=0
XWOR%2:  VAL         -XWOR%1
LTCU:    VAL         CUREB>XWOR%2+1  < LONGUEUR DES TABLES DE COULEUR.
ACTD1::  VAL         1               < 'ACTD' D'ACCES AUX REGISTRES...
<
<
<        P A R A M E T R E S   D E   L A   M A T R I C E  :
<
<
UNITEX:: VAL         1               < UNITE SUR L'AXE DES X ::K1X1.
UNITEY:: VAL         1               < UNITE SUR L'AXE DES Y ::K1Y1.
ORGKXY:: VAL         1*1             < UNITES ORIGINES ::K1X1Y1.
ORGX::   VAL         ORGKXY*0        < ABSCISSE DE L'ORIGINE DE LA MATRICE,
ORGY::   VAL         ORGKXY*0        < ORDONNEE DE LA MATRICE.
LONGMX:: VAL         XNCOOL+I        < LONGUEUR D'UNE SOUS-MATRICE SUR L'AXE
                                     < DES X EXPRIMEE EN 'UNITEX'.
         TRN
LONGMY:: VAL         NBNIV/XXXMOY    < LONGUEUR D'UNE SOUS-MATRICE SUR L'AXE
                                     < DES Y EXPRIMEE EN 'UNITEY'.
         NTRN
NMX::    VAL         NIV256          < NOMBRE DE SOUS-MATRICES LE LONG DE X,
NMY::    VAL         1               < NOMBRE DE SOUS-MATRICES LE LONG DE Y.
NBAN::   VAL         1               < NOMBRE DE BANKS.
         PAGE
<
<
<        M E S S A G E S  :
<
<
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
RCLF::   VAL         '6D
MERR:    BYTE        1;'07           < ENVOI DE LA CLOCHE SUR ERREUR...
MRVB:    BYTE        5;RC
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         ASCI        " RWB"
XWOR%9:  VAL         ENDIF
         IF          NMPROC-NMRX,XWOR%9,,XWOR%9
         ASCI        " RXB"
XWOR%9:  VAL         ENDIF
MRC:     BYTE        1;RCLF
MTRANS:  BYTE        3;RCLF
         ASCI        "T="
MPRVB:   BYTE        5;RCLF
         ASCI        "RVB="
MNIV1:   BYTE        3;RCLF
         ASCI        "D="
MNIV2:   BYTE        3;RCLF
         ASCI        "A="
MM:      BYTE        3;RCLF
         ASCI        "M="
MS:      BYTE        1;"/"
MDECAL:  BYTE        7;RCLF
         ASCI        "DECAL="
MCOUL:   BYTE        6;RCLF
         ASCI        "COUL="
MODULO:  BYTE        5;RCLF
         ASCI        "MOD?"
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
MENTR:   BYTE        13;RCLF
         ASCI        "ENTRELACAGE="
MMSK:    BYTE        8;RCLF
         ASCI        "MSKNIV="
XWOR%9:  VAL         ENDIF
XWOR%8:  VAL         ENDIF
<
<
<        L O C A L  :
<
<
         LOCAL
LOC:     EQU         $
<
< CARTES AU 'CCI' :
<
CDAG:    ASCI        "!CDA"
         BYTE        EOT;K
         IF          XXMODE-XXITEM,XWOR%8,,XWOR%8
<
< DONNEES DE RETOUR A L'APPELANT :
<
SGNLON:  VAL         5               < FONCTION DE LOAD SOUS ACN SGN,
SGNLNS:  VAL         6               < FONCTION DE LOAD SOUS :SYS SGN.
NSD:     ASCI        "SD"            < NOM DE L'OVERLAY D'APPEL.
TCALL:   WORD        "GE";"EI"       < NOM DES OVERLAYS DE RETOUR SI ALT-MODE.
NCALL:   WORD        TCALL,X
NPCALL:  WORD        0               < NOM DU PROCESSEUR DE RETOUR SI ALT-MODE.
KIN:     WORD        -1              < COMPTEUR DES ENTREES...
AI1:     WORD        ZERO+PILE-LTNI+LTN,X
                                     < RELAI D'ACCES A L'ITEM1...
XWOR%8:  VAL         ENDIF
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
<
< BUFFERS ET DIVERS :
<
LBUFCG:: VAL         3
BUFCG:   DZS         LBUFCG          < BUFFER DU RETICULE DE LA VISU.
BUFX:    EQU         BUFCG+1+X
BUFY:    EQU         BUFCG+1+Y
REP:     DZS         NBRHEX/NOCMO    < BUFFER D'ENTREE HEXA-DECIMAL.
XWOR%8:  VAL         ENDIF
<
< RELAIS DIVERS :
<
ABRANC:  WORD        BRANCH          < ADRESSE DE LA BRANCHE D'OVERLAY.
AOVL:    WORD        OVL             < SOUS-PROGRAMME D'OVERLAY.
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
APRINT:  WORD        PRINT           < EDITION D'UN MESSAGE.
AHEX:    WORD        HEX             < CONVERSION HEXA --> BINAIRE.
AIHEX:   WORD        IHEX            < ENTREE D'UN NOMBRE FLOTTANT.
AVALXY:  WORD        VALXY           < SOUS-PROGRAMME DE VALIDATION (X,Y).
XWOR%8:  VAL         ENDIF
ASENDC:  WORD        SENDC           < ENVOI D'UNE COULEUR, APRES TRANSLA-
                                     < TION ET PERMUTATION EVENTUELLE...
ASENDT:  WORD        SENDT           < ENVOI D'UN NUMERO DE 'LUT'...
ASP10:   WORD        SP10            < REINITIALISATION TRANS ET PERMUT...
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
ARETIC:  WORD        RETIC           < SOUS-PROGRAMME DE GESTION DU RETICULE.
ALOOP:   WORD        LOOP            < MODULE D'INTERROGATION...
AERROR:  WORD        ERROR           < BRANCHEMENT EN ERREUR...
APTRAN:  WORD        PTRAN           < ENTREE DE LA TRANSLATION COULEURS.
XWOR%8:  VAL         ENDIF
ACTRAN:  WORD        CTRAN           < TRANSLATION D'UN NIVEAU DE COULEUR.
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
APERMU:  WORD        PERMUT          < ENTREE DE LA PERMUTATION (R,V,B).
ASP2:    WORD        SP2             < RECUPERATION PERMUTATION DES COULEURS.
XWOR%8:  VAL         ENDIF
ASP3:    WORD        SP3             < ENVOI D'UNE COULEUR INTERPOLEE...
ASP11:   WORD        SP11            < FLOTTAGE D'UN NIVEAU.
                                     < EN UN NIVEAU 10 BITS.
ASP12:   WORD        SP12            < ENVOI D'UN NIVEAU FLOTTANT,
ASP14:   WORD        SP14            < ENVOI D'UN NIVEAU ENTIER.
ASP13:   WORD        SP13            < SELECTION D'UNE 'LUT'.
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
AGETAD:  WORD        GETAD           < RECUPERATION DE (NIV1,NIV2).
XWOR%8:  VAL         ENDIF
AGTRVB:  WORD        GETRVB          < RECUPERATION DE (ROUGE1,VERT1,BLEU1).
AGETR:   WORD        GETR            < RECUPERATION D'UNE ENTREE DE LA 'LUTR',
AGETV:   WORD        GETV            < IDEM POUR LA 'LUTV',
AGETB:   WORD        GETB            < IDEM POUR LA 'LUTB'.
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
ASPINI:  WORD        SPINI           < INITIALISATION DES OPTIONS.
ASTIT:   WORD        STIT            < STORE 3 CHIFFRES HEXA-DECMAUX DANS ITEM1.
XWOR%8:  VAL         ENDIF
AGTIT:   WORD        GTIT            < RECUPERATION DE 3 CHIFFRES HEXA-DECAIMAUX
                                     < DANS L'ITEM1.
XWOR%9:  VAL         ENDIF
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
ASPMEM:  WORD        SPMEM           < MEMORISATION DE (R,V,B) DE (NUMREG).
ASPTRA:  WORD        SPTRA           < TRANSFERT DE (R,V,B) DE (NUMREG).
ARET:    WORD        RETICX
AREP:    WORD        REP,X           < ACCES AU BUFFER D'ENTREE HEXA.
AKOM:    WORD        KOM,X           < ACCES AUX MODULES SPECIFIQUES...
XWOR%8:  VAL         ENDIF
<
< MEMORISATION LOCALE DES 'LUT' :
<
         IF          NMPROC-NMRX,XWOR%9,,XWOR%9
         TRN
XWOR%1:  VAL         BIT>NBITOC
ONBNIV:: VAL         NBNIV/XWOR%1=K  < AFIN DE FAIRE TENIR UNE ENTREE DE 'LUT'
                                     < SUR UN OCTET...
         NTRN
ATLUTR:  WORD        TLUTR,X         < 'LUT' LOCALE ROUGE,
ATLUTV:  WORD        TLUTV,X         < 'LUT' LOCALE VERTE,
ATLUTB:  WORD        TLUTB,X         < 'LUT' LOCALE BLEUE.
XWOR%9:  VAL         ENDIF
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
NBITCX:: VAL         4               < NOMBRE DE BITS PAR CHIFFRE HEXA-DECIMAL.
NCPCR::  VAL         NBNIV=K+NBITCX-I/NBITCX
                                     < NOMBRE DE CHIFFRES HEXA-DECIAMUX NECES-
                                     < SAIRES A LA REPRESENTATION DU CONTENU
                                     < D'UN CANAL D'UN REGISTRE...
NCPR::   VAL         NCPCR*XNCOOL+I  < NOMBRE DE CARACTERES PAR REGISTRE DANS
                                     < L'ITEM1 (+1 POUR UN <SPACE>).
ANCPR:   WORD        NCPR            < NOMBRE DE CARACTERES OCCUPES PAR CHAQUE
                                     < REGISTRE DANS L'ITEM1.
TRITEM:: VAL         4/NOCMO*NOCMO   < DECALAGE INITIAL (EN NOMBRE D'OCTETS)
                                     < DANS L'ITEM1 ; PERMET AINSI D'Y ECRIRE
                                     < L'APPEL DE " -" POUR "SD"...
XWOR%1:  VAL         TRITEM/NOCMO    < ET EN MOTS...
AITEM1:  WORD        ZERO+PILE-LTNI+LTN+XWOR%1,X
                                     < RELAI D'ACCES A L'ITEM1.
AITEM2:  WORD        ZERO+PILE-LTNI-LTNI+LTN+XWOR%1,X
                                     < RELAI D'ACCES A L'ITEM2.
AITEML:  WORD        ZERO+PILE-LTNI+LTN+XWOR%1,X
                                     < RELAI D'ACCES A L'ITEML ('LOAD').
AITEMS:  WORD        ZERO+PILE-LTNI+LTN+XWOR%1,X
                                     < RELAI D'ACCES A L'ITEMS ('STORE').
XWOR%9:  VAL         ENDIF
SLUT:    WORD        0               < SAUVEGARDE DES 'LUT' SELECTIONNEES.
                                     < (EN CONVENTIONS INVERSEES).
SNIV:    WORD        0               < SAUVEGARDE DU NIVEAU COURANT.
<
< DEMANDES :
<
DEMBAC:  WORD        '0602           < DEMANDE DE RETOUR A "GE".
         WORD        BRANCH-ZERO*NOCMO
         WORD        ZERO-BRANCH+PILE-LTNI-LTNI*NOCMO
         WORD        -1
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
NGE:     ASCI        "GE"            < NOM DE L'OVERLAY "GE".
DEMMES:  BYTE        NVPV;FGW        < ECRITURE DES MESSAGES.
         WORD        0               < ADRESSE OCTET DU MESSAGE,
         WORD        0               < LONGUEUR OCTET DU MESSAGE.
DEMHEX:  BYTE        NVPV;FGRE       < ENTREE D'UN NOMBRE HEXA-DECIMAL.
         WORD        REP-ZERO*NOCMO
         WORD        NBRHEX
DEMRVB:  BYTE        NVPV;FGRE       < ENTREE DE LA PERMUTATION DES COULEURS.
         WORD        REP-ZERO*NOCMO+TVPR
         WORD        TVPB
OG:      BYTE        NVPC;3          < MISE EN GRAPHIQUE,
CG:      BYTE        NVPC;4          < MISE EN ALPHA-NUMERIQUE,
CU:      BYTE        NVPC;6          < MISE EN FONCTION DU RETICULE,
         WORD        0
LG:      BYTE        NVPC;9          < LECTURE DU RETICULE.
         WORD        BUFCG-ZERO*NOCMO
         WORD        LBUFCG*NOCMO
DEMIN:   BYTE        NVPV;FGRE       < ENTREE D'UN CARACTERE...
         WORD        BUFCG-ZERO*NOCMO
         WORD        1
DCCI:    WORD        '0001           < ACCES CCI.
XWOR%8:  VAL         ENDIF
<
< CONSTANTES, ET VARIABLES :
<
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
ISHUNT:  WORD        0               < =0 : IL FAUDRA REPONDRE A DES QUESTIONS
                                     <      DU TYPE "T=", "RVB=...",...
                                     < #0 : DES VALEURS STANDARDS SERONT ADOP-
                                     <      TEES POUR 'CTRANS', 'FM1',...
XWOR%1:  VAL         BIT>LREG
ADECAL:  WORD        NBNIV/XWOR%1=K  < DECALAGE DE PASSAGE DES NIVEAUX DES
                                     < ANCIENNES COULEURS, A CEUX DES NOUVELLES.
XWOR%1:  VAL         NBNIV=K
         IF          BIT>XWOR%1-NBNIV,,XWOR%,
         IF          ATTENTION : 'NBNIV' DOIT ETRE UNE PUISSANCE DE 2 !!!
XWOR%:   VAL         ENDIF
MKCOUL:: VAL         BIT>XWOR%1-MASK
AMCOUL:  WORD        MKCOUL          < MASQUE POUR LES NIVEAUX EN 'LUT'...
XWOR%9:  VAL         ENDIF
COORDX:  WORD        0               < COORDONNEE X COURANTE,
COORDY:  WORD        0               < COORDONNEE Y COURANTE.
MINX:    WORD        ORGX            < POUR
MINY:    WORD        ORGY            <      VALIDER
MAXX:    WORD        UNITEX*LONGMX*NMX+ORGX <       LES COORDONNEES
MAXY:    WORD        UNITEY*LONGMY*NMY+ORGY <                       (X,Y).
ANMX:    WORD        NMX             < NOMBRE DE SOUS-MATRICES SUR X,
ANMY:    WORD        NMY             < ET SUR Y.
ALMX:    WORD        UNITEX*LONGMX   < LONGUEUR SUR X D'UNE SOUS-MATRICE,
ALMY:    WORD        UNITEY*LONGMY   < ET SUR Y.
AUX:     WORD        UNITEX          < LONGUEUR SUR X D'UNE CELLULE,
AUY:     WORD        UNITEY          < ET SUR Y.
XWOR%8:  VAL         ENDIF
NBNIVM:  WORD        NBNIV-I         < DERNIER NIVEAU EXISTANT PAR CANAL...
NUMBAN:  WORD        0               < NUMERO DU BANK EN POSITIONNEMENT,
NUMDIF:  WORD        0               < ET EN DIFFUSION.
NUMMAT:  WORD        0               < NUMERO DE LA MATRICE DANS LE JEU,
NUMREG:  WORD        0               < NUMERO COMPLET DE REGISTRE.
NIVEAU:  WORD        0               < NIVEAU SELECTIONNE,
COLOUR:  WORD        0               < COULEUR SELECTIONNEE.
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
AUTOC:   WORD        XXBLAC-I        < AFIN DE BY-PASSER LE CHOIX DE
                                     < 'COLOUR' DANS 'VALXY' ; CETTE VALEUR
                                     < EST CLEAREE APRES CHAQUE USAGE...
                                     < (VOIR LES COMMANDES "1", "2" ET "3").
XWOR%8:  VAL         ENDIF
         IF          XXBLAC-I,XWOR%,,
         IF          ATTENTION, L'ETAT INITIAL DOIT ETRE NUL !!!
XWOR%:   VAL         ENDIF
CTRANS:  WORD        0               < CONSTANTE DE TRANSLATION DES NIVEAUX
                                     < DE GRIS AVEC LA COMMANDE "G".
CMOD:    WORD        0               < QUE FAIRE LORSQU'UN NIVEAU DE COULEUR
                                     < SORT DE (0,NBNIV-I) :
                                     < =0 : ON LE TRAITE MODULO NBNIV-I,
                                     < #0 : ON LE RAMENE A LA BORNE (0 OU
                                     <      NBNIV-I) VOISINNE...
ATXX:    WORD        TXX,X           < LISTE DES PERMUTATIONS DES COULEURS...
TXX:     EQU         $-XXMIN
AXXR:    WORD        XXR             < PERMUTATION DU ROUGE,
AXXV:    WORD        XXV             < PERMUTATION DU VERT,
AXXB:    WORD        XXB             < PERMUTATION DU BLEU.
SAVER:   WORD        0               < SAVE LE NIVEAU DU ROUGE LORS DE "A",
SAVEV:   WORD        0               < DE MEME POUR LE VERT,
SAVEB:   WORD        0               < DE MEME POUR LE BLEU.
<
< DONNEES D'INTERPOLATION :
<
NIV1:    WORD        XXNOIR          < NIVEAU DE DEPART,
NIV2:    WORD        NIV256-I        < NIVEAU D'ARRIVEE.
                                     < (LES VALEURS INITIALES CI-DESSUS
                                     < SONT DESTINEES A " -"...
ROUGE1:  FLOAT       0
VERT1:   FLOAT       0
BLEU1:   FLOAT       0
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
ROUGE2:  FLOAT       0
VERT2:   FLOAT       0
BLEU2:   FLOAT       0
FPAS:    FLOAT       0               < PAS D'INTERPOLATION.
FPAS1:   FLOAT       0               < FPAS-1,
FPAS2:   FLOAT       0               < (FPAS-1)*(FPAS-2).
XWOR%8:  VAL         ENDIF
F05:     FLOAT       0.5             < POUR LES ARRONDIS...
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
FDLINE:  FLOAT       0               < VARIABLE DE DELINEARISATION...
FM1:     FLOAT       1.5             < CONSTANTES DE DELINEARISATION,
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
ANI256:  WORD        NIV256          < POUR LES CAS (NIV1) > (NIV2)...
F15:     FLOAT       1.5             < POUR REINITIALISER 'FM1' SI ISHUNT#0...
XWOR%9:  VAL         ENDIF
F1:      FLOAT       1
F6:      FLOAT       6
F4:      FLOAT       4               < CONSTANTE DE DELINEARISATION...
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
MSKNIV:  WORD        MMOT            < MASQUE SUR LES NIVEAUX ENVOYES DANS LES
                                     < 'LUT' (POUR SIMULER PAR EXEMPLE DES
                                     < CONVERTISSEURS AVEC MOINS DE 10 BITS
                                     < EN SORTIE...).
XWOR%9:  VAL         ENDIF
<
< INITIALISATION DE L'IMAGEUR :
<
ACTRL1:  WORD        RCTRL1          < ACCES AU REGISTRE 'CTRL1',
ACTRL2:  WORD        RCTRL2          < ACCES AU REFISTRE 'CTRL2'.
XWOR%8:  VAL         ENDIF
XXXIMA:  VAL         XXIMA2
         EOT         #SIP IMAGE 512#
XXXIMA:  VAL         XXIMA4
         EOT         #SIP IMAGE 512#
<
< ACCES A LA 'LUT' :
<
ARLUT0:  WORD        RLUT            < ACCES AU PREMIER REGISTRE DES 'LUT'.
ARSLUT:  WORD        RSLUT           < ACCES A LA SELECTION DES COULEURS DE
                                     < 'LUT' (R,V,B).
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
<
< DONNEES D'ENTRELACAGE :
<
ENTR1:   WORD        MMOT            < A PRIORI TOUS LES
ENTR2:   WORD        MMOT            <                   REGISTRES SONT AUTORISE
                                     < UTILISATION DE (ENTR1,ENTR2) : LORS DE
                                     < L'ECRITURE DU REGISTRE (NUMREG), ON
                                     < CALCULE SON NUMERO MODULO 32 (2*NBITMO) ;
                                     < SI LE BIT ENTR(X) EST A 1 LE REGISTRE EST
                                     < ECRIT, SINON, IL N'EST PAS MODIFIE...
                                     < ON PEUT AINSI CREER DES BANDES DE COU-
                                     < LEURS LORS D'UNE INTERPOLATION...
XWOR%9:  VAL         ENDIF
<
< PILE DE TRAVAIL :
<
STACK:   DZS         30
         PAGE
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
<
<
<        T A B L E   D E S  :C O M M A N D E S  :
<
<
REP0:    VAL         "0"             < PREMIERE COMMANDE.
KOM:     EQU         $-REP0          < ELLES COMMENCENT A "0"...
         WORD        AUTOC0          < 0 : "NOIR" IMPLICITE POUR "C" ET "P"
         WORD        AUTOC1          < 1 : "R" IMPLICITE POUR "C" ET "P"
         WORD        AUTOC2          < 2 : "V" IMPLICITE POUR "C" ET "P"
         WORD        AUTOC3          < 3 : "B" IMPLICITE POUR "C" ET "P"
         WORD        ERROR           < 4
         WORD        ERROR           < 5
         WORD        ERROR           < 6
         WORD        ERROR           < 7
         WORD        ERROR           < 8
         WORD        ERROR           < 9
         WORD        ERROR           < :
         WORD        ERROR           < ;
         WORD        ERROR           < <
         WORD        PSHUNT          < = : MISE EN PLACE DES OPTIONS STANDARDS
         WORD        ERROR           < >
         WORD        CLIGN           < ? : CLIGNOTEMENT D'UNE COULEUR
         WORD        ERROR           < @
         WORD        PGETC           < A : RECUPERATION D'UNE COULEUR
         WORD        PSTOC           < B : TRANSFERT COULEUR "A" --> "B"
         WORD        RETICC          < C : COULEUR AVEC CUMUL
         WORD        ERROR           < D
         WORD        ENTREL          < E : ENTRELACAGE DES REGISTRES
         WORD        RETICF          < F : FIN, RETOUR A 'GE'
         WORD        GCOUL           < G : TRANSLATION ET PERMUTATION PALETTE
         WORD        ERROR           < H
         WORD        RETII1          < I : INITIALISATION DE LA CARTE
         WORD        GINT            < J : INTERPOLATION ENTRE 2 COULEURS.
         WORD        COLD            < K : RECUPERATION D'UNE ANCIENNE COULEUR
         WORD        LOAD1           < L : ITEML <-- ITEM1
         WORD        LOAD2           < M : ITEML <-- ITEM2
         WORD        PMNIV           < N : DEFINITION DE 'MSKNIV'
         WORD        ERROR           < O
         WORD        RETICP          < P : COULEUR AVEC REINITIALISATION
         WORD        ERROR           < Q
         WORD        ERROR           < R
         WORD        STOR1           < S : ITEMS <-- ITEM1
         WORD        STOR2           < T : ITEMS <-- ITEM2
         WORD        ERROR           < U
         WORD        ERROR           < V
         WORD        RETICW          < W : RETOUR TEMPORAIRE AU CCI
REPZ:    VAL         $-KOM-1         < DERNIERE COMMANDE.
XWOR%8:  VAL         ENDIF
         PAGE
         PROG
XXXIMA:  VAL         XXIMA3
         EOT         #SIP IMAGE 512#
XXXIMA:  VAL         XXIMA5
         EOT         #SIP IMAGE 512#
         PAGE
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
<
<
<        E N T R E E   D ' U N   P O I N T   D E   D E P A R T
<        E T   D ' U N   P O I N T   D ' A R R I V E E  :
<
<
<        RESULTAT :
<                    (NIV1)=NIVEAU DE DEPART,
<                    (NIV2)=NIVEAU D'ARRIVEE.
<
<
GETAD:   EQU         $
<
< ENTREE DU NIVEAU DE DEPART :
<
GINT1:   EQU         $
         LAI         MNIV1-ZERO
         BSR         AIHEX
         JNE         GINT1           < ERREUR...
         JAL         GINT1           < ERREUR...
         CPI         NIV256-I
         JG          GINT1           < ERREUR...
         STA         NIV1            < NIVEAU DE DEPART.
<
< ENTREE DU NIVEAU D'ARRIVEE :
<
GINT2:   EQU         $
         LAI         MNIV2-ZERO
         BSR         AIHEX
         JNE         GINT2           < ERREUR...
         JAL         GINT2           < ERREUR...
         CPI         NIV256-I
         JG          GINT2           < ERREUR...
         IF          NMPROC-NMRX,XWOR%9,,XWOR%9
         CP          NIV1
         JLE         GINT1           < ERREUR, IL FAUT NIV1<NIV2...
XWOR%9:  VAL         ENDIF
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         CP          NIV1
         JE          GINT1           < ERREUR, IL FAUT NIV1#NIV2...
XWOR%9:  VAL         ENDIF
         STA         NIV2            < NIVEAU D'ARRIVEE.
<
< ET RETOUR :
<
         RSR
XWOR%8:  VAL         ENDIF
         PAGE
<
<
<        R E C U P E R A T I O N   D U   ( R , V , B )  :
<
<
<        ARGUMENT :
<                    (X)=NIVEAU DONT ON CHERCHE LE (R,V,B) REEL.
<
<
<        RESULTAT :
<                    (ROUGE1,VERT1,BLEU1)=(R,V,B) DU NIVEAU (X).
<
<
GETRVB:  EQU         $
         BSR         AGETB           < RECUPERATION DU BLEU,
         BSR         ASP11           < CONVERSION FLOTTANT,
         FST         BLEU1           < RECUPERATION DU BLEU(NIV1),
         BSR         AGETV           < RECUPERATION DU VERT,
         BSR         ASP11           < CONVERSION FLOTTANT,
         FST         VERT1           < RECUPERATION DU VERT(NIV1),
         BSR         AGETR           < RECUPERATION DU ROUGE,
         BSR         ASP11           < CONVERSION FLOTTANT,
         FST         ROUGE1          < RECUPERATION DU BLEU(NIV1).
         RSR
         PAGE
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
<
<
<        M I S E   E N   P L A C E    D E S   O P T I O N S
<                    S T A N D A R D S  :
<
<
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
PSHUNT:  EQU         $
<
< POSITIONNEMENT DE 'ISHUNT' :
<
         LA          ISHUNT
         IBT         NBITMO-BIT      < INVERSION DU MODE...
         STA         ISHUNT
         JAE         PSHUN1          < CAS OU IL FAUT TOUT RENTRER A LA MAIN...
<
< CAS OU L'ON FORCE DES
< VALEURS STANDARDS :
<
         BSR         ASPINI          < INITIALISATION DES OPTIONS.
<
< RETOUR :
<
PSHUN1:  EQU         $
         BR          ARET
<
<
<        I N I T I A L I S A T I O N   D E S   O P T I O N S  :
<
<
SPINI:   EQU         $
<
< INITIALISATIONS :
<
         STZ         CTRANS          < TRANSLATION NULLE,
         STZ         CMOD
         IC          CMOD            < PAS DE MODULO DES COULEURS,
         LAI         XXR
         STA         AXXR            < R=R,
         LAI         XXV
         STA         AXXV            < V=V,
         LAI         XXB
         STA         AXXB            < B=B,
X1:      VAL         BIT>LREG
         LAI         NBNIV/XWOR%1=K
         STA         ADECAL          < DECALAGE OLD --> NEW,
         FLD         F15
         FST         FM1             < DELINEARISATION STANDARD.
         LAI         MMOT
         STA         ENTR1           < A PRIORI, TOUS LES
         STA         ENTR2           <                    REGISTRES SONT 'ON'...
         STA         MSKNIV          < ET LA SORTIE SE FAIT SUR 10 BITS...
<
< ET RETOUR :
<
         RSR
XWOR%9:  VAL         ENDIF
         IF          NMPROC-NMRX,XWOR%9,,XWOR%9
PSHUNT:  EQU         $
         BR          AERROR
XWOR%9:  VAL         ENDIF
         PAGE
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
<
<
<        E N T R E L A C A G E   D E S   R E G I S T R E S  :
<
<
<        FONCTION :
<                      CE MODULE PERMET D'INHIBER/AUTORISER
<                    MODULO 32 LES REGISTRES ; AINSI, LORS
<                    DE L'ECRITURE DE L'UN D'EUX, ON CALCULE
<                    SON NUMERO MODULO 32 (NUMREG.MOD.32) ;
<                    SI LE BIT ENTR(X) EST A 0, LE REGISTRE
<                    (NUMREG) N'EST PAS MODIFIE...
<
<
ENTREL:  EQU         $
         LAI         MENTR-ZERO
         BSR         AIHEX           < ENTREE DES 16 PREMIERS BITS...
         JNE         ENTREL          < ERREUR...
         STA         ENTR1           < 16 PREMIERS BITS...
                                     < NOTA : ON NE PREND PAS DE PRECAUTIONS
                                     < PARTICULIERES POUR LES ALT-MODES
                                     < INTEMPESTIFS : ON PEUT AINSI
                                     < MODIFIER LES 16 PREMIERS BITS...
         LAD         DEMHEX
         SVC         0
         BSR         AHEX            < ENTREE DES 16 DERNIERS BITS...
         JNE         ENTREL          < ERREUR...
         STA         ENTR2           < 16 DERNIERS BITS...
         BR          ARET            < ET RETOUR...
XWOR%9:  VAL         ENDIF
         IF          NMPROC-NMRX,XWOR%9,,XWOR%9
ENTREL:  EQU         $
         BR          AERROR
XWOR%9:  VAL         ENDIF
         PAGE
<
<
<        V A L I D A T I O N   D E   ( X , Y ) ,
<        E T   G E N E R A T I O N   D E S   O R D R E S  :
<
<
<        FONCTION :
<                      CE SOUS-PROGRAMME RECOIT UN COUPLE
<                    (X,Y) QU'IL VALIDE, IL DETERMINE ENSUITE
<                    SI CELA EST POSSIBLE, LES DIFFERENTS
<                    PARAMETRES DE COULEUR...
<
<
<        ARGUMENTS :
<                    (X,Y)=COORDONNEES DU POINT COURANT,
<
<
<        RESULTAT :
<                    A=0 : (X,Y) ETAIT VALIDE,
<                     #0 : (X,Y) ETAIT HORS DE LA MATRICE...
<
<
VALXY:   EQU         $
         PSR         X,Y
         STX         COORDX          < SAUVEGARDE DES COORDONNEES.
         STY         COORDY
         LR          X,A             < VALIDATION DE X :
         CP          MINX
         JL          VALXY1          < ERREUR...
         CP          MAXX
         JGE         VALXY1          < ERREUR...
         LR          Y,A             < VALIDATION DE Y :
         CP          MINY
         JL          VALXY1          < ERREUR...
         CP          MAXY
         JGE         VALXY1          < ERREUR...
<
< TRAITEMENT D'UN COUPLE VALIDE (X,Y) :
<
         LR          X,A
         SB          MINX            < REDUCTION A L'ORIGINE,
         SARD        NBITMO
         DV          ALMX
         STA         NUMMAT          < (PROVISOIRE) : NUMERO DE LA COLONNE.
         LA          AUTOC           < Y-A-T'IL UNE COULEUR IMPLICITE ???
         STZ         AUTOC
         DC          AUTOC           < CLEAR A PRIORI...
         JAGE        VALXY4          < OUI, ON LA PREND :
                                     < 0 --> NOIR,
                                     < 1 --> ROUGE,
                                     < 2 --> VERT,
                                     < 3 --> BLEU.
         LR          B,A             < NON, ON LA CALCULE...
         SARD        NBITMO
         DV          AUX
VALXY4:  EQU         $
         STA         COLOUR          < COULEUR DESIREE (ON NEGLIGE B...).
         LR          Y,A
         SB          MINY            < REDUCTION A L'ORIGINE,
         SARD        NBITMO
         DV          ALMY
         STA         NUMBAN          < (PROVISOIRE) : NUMERO DE LA LIGNE.
         LR          B,A
         SARD        NBITMO
         DV          AUY
         SLLS        XXXMOY=K        < EN EFFET VOIR LA DEFINITION DE 'LONGMY'.
         SB          NBNIVM
         NGR         A,A             < AFIN D'AVOIR LE CLAIR EN BAS, ET LE
                                     < SOMBRE EN HAUT (COMME DANS "RV")...
         STA         NIVEAU          < NIVEAU DESIRE (ON NEGLIGE B...).
         LA          NUMBAN
         MP          ANMX            < NUMERO-LIGNE*NMX
         LR          B,A
         AD          NUMMAT          < NUMERO DE LA SOUS-MATRICE :
         STA         NUMMAT          < QUE L'ON RANGE A PRIORI...
         STA         NUMREG
         STZ         NUMBAN          < ET BANK 0 A PRIORI...
<
< ET C'EST FINI...
<
         LAI         0               < RETOUR OK...
VALXY3:  EQU         $
         PLR         X,Y
         RSR
VALXY1:  EQU         $
         LAI         1               < RETOUR EN ERREUR...
         JMP         VALXY3
         PAGE
<
<
<        E D I T I O N   D ' U N   M E S S A G E  :
<
<
<        ARGUMENT :
<                    A=ADRESSE DU MESSAGE, DONT LE 1ER OCTET
<                      EST LA LONGUEUR.
<
<
PRINT:   EQU         $
         PSR         A,X,W
         LR          A,W             < W=ADRESSE MOT DU MESSAGE.
         ADR         A,A
         ADRI        NOCMO-1,A
         STA         DEMMES+1        < ADRESSE DU MESSAGE,
         LBY         0,W
         STA         DEMMES+2        < LONGUEUR DU MESSAGE.
         LAD         DEMMES
         SVC         0               < EDITION DU MESSAGE.
         PLR         A,X,W
         RSR
         PAGE
<
<
<        C O N V E R S I O N   H E X A   -->   B I N A I R E  :
<
<
<        ARGUMENT :
<                    LE BUFFER 'REP'.
<
<
<        RESULTAT :
<                    B=0 : (A)=VALEUR BINAIRE,
<                    B#0 : ERREUR DE SYNTAXE HEXA-DECIMALE.
<                    LES INDICATEURS POSITIONNES SUR (B).
<
<
HEX:     EQU         $
BASE10:  VAL         10
XWOR%8:  VAL         ENDIF
BASE16:  VAL         16
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
         PSR         X,Y
         LYI         NBRHEX
         LXI         0               < INDEX DU BUFFER DE REPONSE.
         LBI         0               < CLEAR LE REGISTRE B.
HEX1:    EQU         $
         LBY         &AREP           < A=CARACTERE COURANT DU BUFFER.
         ADRI        -"0",A
         JAL         HEX4            < ERREUR : CARACTERE NON RECONNU.
         CPI         BASE10          < EST-CE UN CHIFFRE ???
         JL          HEX2            < OUI , C'EST UN CHIFFRE.
         ADRI        -"A"+"9"+1,A    < NON.
         CPI         BASE10          < VALIDATION.
         JL          HEX4            < ERREUR : CARACTERE NON RECONNU.
         CPI         BASE16          < VALIDATION.
         JGE         HEX4            < ERREUR : CARACTERE NON RECONNU.
HEX2:    EQU         $
         SCRS        NBITMO/NBRHEX   < MISE DES 4 BITS EN TETE DE A.
         SCLD        NBITMO/NBRHEX   < ET CONCATENATION A B.
         ADRI        1,X             < PROGRESSION DE L'INDEX.
         CPR         X,Y             < EST-CE FINI ???
         JNE         HEX1            < NON , ON CONTINUE.
         LR          B,A             < A=VALEUR BINAIRE DE (REP).
         LBI         0               < B=0 : RETOUR OK.
HEX3:    EQU         $
         PLR         X,Y
         CPZR        B               < POSITIONNEMENT DES INDICATEURS.
         RSR
<
< RETOURS EN ERREUR :
<
HEX4:    EQU         $
         LR          B,A             < A=VALEUR COURANTE...
         LBI         1               < B#0.
         JMP         HEX3            < VERS LA SORTIE ...
         PAGE
<
<
<        E N T R E E   D ' U N   N O M B R E   F L O T T A N T  :
<
<
<        ARGUMENT :
<                    (A)=ADRESSE D'UN MESSAGE.
<
<
<        RESULTATS :
<                    (A)=VALEUR, ET
<                    LES INDICATEURS POSITIONNES SUR 'JNE' SI ERREUR.
<
<
IHEX:    EQU         $
         BSR         APRINT          < EDITION D'UN MESSAGE,
         LAD         DEMHEX
         SVC         0               < ENTREE DU NOMBRE,
         BSR         AHEX            < ET CONVERSION EN BINAIRE...
         RSR
         PAGE
<
<
<        E N T R E E   D E   L A   P E R M U T A T I O N
<                    D E S   C O U L E U R S  :
<
<
<        FONCTION :
<                      CE MODULE PERMET DE PERMUTER
<                    LES CANAUX DE SORTIE ENTRE EUX,
<                    ET AINSI PAR EXEMPLE D'ENVOYER
<                    LE ROUGE-LOGIQUE SUR LE BLEU
<                    PHYSIQUE, ET AINSI D'ENVOYER
<                    LE ROUGE SUR LE MONITEUR NOIR
<                    ET BLANC SI CELUI-CI NE RECOIT
<                    QUE LE BLEU...
<
<
<        ARGUMENT :
<                    B=VALEUR PAR DEFAUT,
<                    X=INDEX DE LA COULEUR.
<
<
<        RESULTAT :
<                    X=VALEUR DEMANDEE.
<
<
SP2:     EQU         $
         LBY         &AREP           < (A)=CARACTERE COURANT,
XXABS::  VAL         XXBLAC          < CANAL COULEUR ABSENT...
         LXI         XXABS           < ABSENT A PRIORI,
         CPI         "X"             < ABSENT ???
         JE          SP21            < OUI...
         LXI         XXR             < ROUGE A PRIORI,
         CPI         "R"             < ROUGE ???
         JE          SP21            < OUI...
         LXI         XXV             < VERT A PRIORI,
         CPI         "V"             < VERT ???
         JE          SP21            < OUI...
         LXI         XXB             < BLEU A PRIORI...
         CPI         "B"             < BLEU ???
         JE          SP21            < OUI...
         LAI         MERR-ZERO
         BSR         APRINT          < ERREUR !!!
         LR          B,X             < ON FORCE LA VALEUR PAR DEFAUT...
SP21:    EQU         $
         RSR                         < ET C'EST TOUT...
         PAGE
<
<
<        G E S T I O N   D E   L ' I M A G E U R   5 1 2 * 5 1 2  :
<
<
<        FONCTION :
<                      CE SOUS-PROGRAMME PERMET D'ENTRER LE
<                    RETICULE DE LA VISU ET D'AGIR EN CONSEQUENCES...
<                    LES COMMANDES RECONNUES SONT :
<                    F : FIN,
<                    C : SELECTION COULEUR, EN LAISSANT INCHANGES
<                        LES 0, 1 OU 2 AUTRES REGISTRES NON SELECTIONNES,
<                    P : SELECTION COULEUR, EN REMETTANT AU PREALABLE LES
<                        3 REGISTRES AU NOIR,
<                    W : RETOUR AU CCI,
<                        D'ENTRE-EUX, IL EN PREND L'EXTREMITE (X,Y),
<                        ET FAIT COMME SI "C" AVAIT ETE RECU AU
<                        RETICULE ; CECI DURE JUSQU'A UN 'OAB'...
<                    I : INITIALISATION DE LA CARTE.
<                    J : INTERPOLATION ENTRE 2 COULEURS.
<                    A : MEMORISATION D'UNE COULEUR,
<                    B : TRANSFERT D'UNE COULEUR "A" --> "B",
<                    G : TRANSLATION, ET PERMUTATION D'UNE PALETTE,
<                    K : RECUPERATION D'UNE COULEUR DU SYSTEME 256*256,
<                    = : INHIBITION/AUTORISATION (BASCULE) DES MESSAGES
<                        DE DEMANDE DE 'TRANS', 'RVB',...
<                    L : ITEML <-- ITEM1,
<                    M : ITEML <-- ITEM2,
<                    S : ITEMS <-- ITEM1,
<                    T : ITEMS <-- ITEM2,
<                    ? : CLIGNOTEMENT DE LA COULEUR COURANTE.
<
<
<
< "I" : INITIALISATION DE LA CARTE :
<
RETII1:  EQU         $
         LAI         XCTRL1
         STA         MCDAJ
         LA          ACTRL1
         BSR         APWCDA          < INITIALISATION DE 'CTRL1'.
         LAI         XCTRL2
         STA         MCDAJ
         LA          ACTRL2
         BSR         APWCDA          < INITIALISATION DE 'CTRL2'.
         JMP         RETICX          < VERS LA COMMANDE SUIVANTE...
<
< POINT D'ENTREE :
<
RETIC:   EQU         $
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         LXI         IINDIC-LTN*NOCMO-TRITEM
         LBY         &AITEML         < (A)=TYPE DE L'ITEML :
         CPI         "I"             < EST-CE LE TYPE "FILM DIGITAL" ???
         JE          ETYPI           < OUI, C'EST BON...
         CPI         "T"             < EST-CE BIEN LE TYPE 'TEXTE' ???
         JNE         RETICF          < NON, ON SORT IMMEDIATEMENT...
ETYPI:   EQU         $
XWOR%9:  VAL         ENDIF
<
< ENTREE DU RETICULE :
<
RETICX:  EQU         $
LOOP:    EQU         RETICX          < MODULE D'INTERROGATION...
         LAD         OG
         SVC         0               < MISE EN GRAPHIQUE,
         LAD         CU
         SVC         0               < MISE EN FONCTION DU RETICULE,
         LAD         LG
         SVC         0               < LECTURE DU RETICULE.
<
< ANALYSE DE L'ORDRE :
<
         LBY         BUFCG           < A=CARACTERE DE DEBLOCAGE DE LA VISU.
         CPI         REP0            < ET VALIDATION...
         JL          ERROR           < ERREUR...
         CPI         REPZ            < VALIDATION, SUITE...
         JG          ERROR           < ERREUR...
         LR          A,X             < X=COMMANDE DEMANDEE,
         LA          &AKOM           < A=ADRESSE DU MODULE DE TRAITEMENT...
         LX          BUFX            < X=COORDONNEE X,
         LY          BUFY            < Y=COORDONNEE Y.
         PSR         A
         RSR                         < BRANCHEMENT AU MODULE SPECIFIQUE...
<
< ERREUR :
<
RETICY:  EQU         $
ERROR:   EQU         RETICY          < MODULE D'ERREUR...
         LAD         CG
         SVC         0               < RETOUR EN ALPHANUMERIQUE...
         LAI         MERR-ZERO
         BSR         APRINT
         JMP         RETICX          < ET ON RECOMMENCE...
<
< "F" : RETOUR A "GE" :
<
RETICF:  EQU         $
         LAD         CDAG
         BSR         ASPCCI          < RETOUR A LA 'CDA' COMMUNE...
                                     < (ON REND LA "CDAJ")
         LRM         W,K
         WORD        BRANCH          < (W)=ADRESSE DE LA BRANCHE D'OVERLAY,
         WORD        PILE-1          < (K)=ADRESSE DE LA PILE 'SMC'...
         LA          NGE
         STA         &ABRANC         < MISE EN PLACE DU NOM DE "GE".
         LAD         DEMBAC
         BSR         AOVL            < ET ON REVIENT A "GE"...
         JMP         RETICY          < IMPOSSIBLE...
<
< "W" : RETOUR AU CCI :
<
RETICW:  EQU         $
         LAD         DCCI
         SVC         0
         JMP         RETICX
<
< SELECTION DES COULEURS IMPLICITES :
<
AUTOC0:  EQU         $
         LAI         XXBLAC          < NOIR,
         JMP         AUTOCA
AUTOC1:  EQU         $
         LAI         XXR             < ROUGE,
         JMP         AUTOCA
AUTOC2:  EQU         $
         LAI         XXV             < VERT,
         JMP         AUTOCA
AUTOC3:  EQU         $
         LAI         XXB             < BLEU,
AUTOCA:  EQU         $
         STA         AUTOC           < MISE EN PLACE DE LA COULEUR IMPLICITE...
         JMP         RETICX          < VERS LA COMMANDE SUIVANTE...
<
< "C" : SELECTION DE LA COULEUR...
<
RETICC:  EQU         $
         BSR         AVALXY          < VALIDATION DE (X,Y)...
         JANE        RETICY          < ERREUR DE POSITIONNEMNT...
         BSR         ASP10           < REINITIALISATION TRANS ET PERMUT...
RETIC8:  EQU         $
         BSR         ASENDC          < ENVOI DE LA COULEUR DEMANDEE...
         JMP         RETICX          < VERS LA COMMANDE SUIVANTE...
<
< "P" : SELECTION COULEUR AVEC REINITIALISATION AU NOIR PREALABLE :
<
RETICP:  EQU         $
         BSR         AVALXY          < VALIDATION (X,Y)....
         JANE        RETICY          < ERREUR...
         BSR         ASP10           < REINITIALISATION TRANS ET PERMUT...
         LAI         ALLUT)ALLUT
         BSR         ASP13           < SELECTION DES 3 COULEURS FONDAMENTALES,
         LAI         XXNOIR
         BSR         ASP14           < ET MISE AU NOIR DU NIVEAU DE GRIS
                                     < DEMANDE...
         JMP         RETIC8          < VERS LA MISE EN PLACE DE LA COULEUR
                                     < REELLEMENT DEMANDEE...
XWOR%8:  VAL         ENDIF
         PAGE
         IF          XXMODE-XXITEM,XWOR%8,,XWOR%8
<
<
<        P O I N T   D ' E N T R E E  :
<
<
PRV:     EQU         $
         LRM         L,K
         WORD        LOC+'80         < INTIALISATION DE L,
         WORD        STACK-1         < INITIALISATION DE K.
         LAI         PAGER
         BSR         AGPCDA          < POSITIONNEMENT SUR LA PAGE DES REGISTRES
                                     < DE LA 'CDAJ'...
         STZ         CTRANS          < AU CAS DES ALT-MODES...
         IC          KIN             < COMPTAGE DES ENTREES :
         JG          ALTM            < ABORT IMMEDIAT SUR ALT-MODE...
         LA          AITEM1
         SB          AI1             < CALCUL DU DECALAGE INITIAL,
         AD          CDRET,W         < A=RELAI D'ACCES A ITEM1/ITEM2...
                                     <   (AVEC LE DECALAGE INITIAL...)
         JAGE        ALTM            < CAS DE ALT-MODES VICIEUX QUI DETRUI-
                                     < SENT LE MOT2...
         STA         AITEMS
         STA         AITEML
         LA          MODCAL,W        < A=INDEX INITIAL DE L'ITEM1...
         LXI         0               < "GE" A PRIORI...
         TBT         0               < "GE" (0) OU "EI" (1) ???
         ADCR        X
         LA          &NCALL
         STA         NPCALL          < NOM DU PROCESSEUR A APPELER SUR LA
                                     < RECEPTION D'UN ALT-MODE.
XWOR%8:  VAL         ENDIF
         PAGE
<
<
<        T R A N S L A T I O N   D ' U N E   P A L E T T E  :
<
<
GCOUL:   EQU         $
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
         BSR         APTRAN          < ENTREE DE LA TRANSLATION,
         BSR         APERMU          < ET DE LA PERMUTATION...
         BSR         AGETAD          < ENTREE DE (NIV1,NIV2), SOIT LE NIVEAU
                                     < DE DEPART PUIS D'ARRIVEE...
XWOR%8:  VAL         ENDIF
         LX          NIV1            < (X)=NUMERO DE REGISTRE COURANT.
GCOUL1:  EQU         $
<
< TRAITEMENT DU REGISTRE COURANT :
<
         BSR         AGTRVB          < RECUPERATION DE (ROUGE1,VERT1,BLEU1).
         LR          X,Y             < (Y)=NUMERO DU REGISTRE COURANT...
         BSR         ASP3            < TRANSLATION, ET PERMUTATION DU REGISTRE
                                     < COURANT...
<
< PASSAGE AU REGISTRE SUIVANT :
<
         ADRI        I,X
         LR          X,A
         CP          NIV2            < S'IL EXISTE...
         JLE         GCOUL1          < OUI...
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
         JMP         RETICX          < NON, C'EST FINI...
XWOR%8:  VAL         ENDIF
         IF          XXMODE-XXITEM,XWOR%8,,XWOR%8
         PAGE
<
<
<        R E T O U R   A   ' G E '  :
<
<
GOGE:    EQU         $
         LAI         BRANCH-ZERO
         LR          A,W             < W=ADRESSE DE LA BRANCHE...
         LA          NSD
         STA         0,W             < GENERATION DU NOM DE L'OVERALY,
         ACTD        4               < A='IDESC',
         ORI         "0"             < CONVERTI EN ASCI,
         STBY        2,W             < QUI FAIT PARTIE DU NOM...
         LAI         SGNLON
         STBY        DEMBAC          < MISE EN MODE 'LOAD SOUS ACN'...
         STZ         CDRET,W         < RETOUR OK...
GOGE2:   EQU         $
         LRM         K
         WORD        PILE-1          < RESTAURATION DE 'K'...
         LRM         A
         WORD        NIV256*NCPR+TRITEM
         STA         MODCAL,W        < RENVOI DE L'INDEX DE FIN DE PALETTE...
         LAD         CDAG
         BSR         ASPCCI          < ENVOI DE !CDA.
GOGE1:   EQU         $
         LAD         DEMBAC
         BSR         AOVL            < ET TENTATIVE DE CHARGEMENT...
         QUIT        1               < EN CAS D'ERREUR,
         JMP         GOGE1           < ET ON RETENTE...
<
<
<        T R A I T E M E N T   D E S   A L T - M O D E S  :
<
<
ALTM:    EQU         $
         LAI         BRANCH-ZERO
         LR          A,W             < W=ADRESSE DE LA BRANCHE...
         LA          NPCALL
         JANE        ALTM1           < OK...
         LA          MODCAL,W        < MODCAL EST ENCORE A SA VALEUR INITIALE.
         LXI         0               < "GE" A PRIORI...
         TBT         0               < "EI" OU "GE" ???
         ADCR        X
         LA          &NCALL          < A=OVERLAY A APPELER...
ALTM1:   EQU         $
         STA         0,W             < DANS LE CAS D'UN ALT-MODE, ON REVIENT
                                     < DIRECTEMENT A "GE" OU A "EI"...
         LAI         " "             < ON RESTAURE, AU CAS OU LE ALT-MODE
         STBY        2,W             < APPARAITRAIT DANS 'GOGE'...
         LAI         SGNLNS          < IDEM...
         STBY        DEMBAC
         LAI         2
         STA         CDRET,W         < TRANSMISSION DU ALT-MODE...
         JMP         GOGE2
XWOR%8:  VAL         ENDIF
         PAGE
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
<
<
<        M E M O R I S A T I O N   C O U L E U R  :
<
<
PGETC:   EQU         $
         BSR         AVALXY          < RECUPERATION DES COORDONNEES...
         JANE        ERROR           < BERK...
         BSR         ASPMEM          < MEMORISATION DE (R,V,B) DE (NUMREG).
         JMP         RETICX          < ET C'EST TOUT...
<
<
<        T R A N S F E R T   C O U L E U R   " A "   -->   " B "  :
<
<
PSTOC:   EQU         $
         BSR         AVALXY          < RECUPERATION DE LA DESTINATION...
         JANE        ERROR           < BERK...
         BSR         APTRAN          < ENTREE DE LA TRANSLATION,
         BSR         APERMU          < ET DE LA PERMUTATION...
         BSR         ASPTRA          < TRANSFERT DE (R,V,B) DE (NUMREG).
         JMP         RETICX          < ET C'EST TOUT...
         PAGE
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
<
<
<        C H A N G E M E N T   D E   L ' I T E M   E M E T T E U R  :
<
<
<        FONCTION :
<                      CE MODULE CHANGE L'ITEM
<                    EMETTEUR DES PALETTES, LA
<                    CONVENTION DE NOM SUIVANTE
<                    ETANT UTILISEE :
<
<                    "L"='LOAD ITEM1',
<                    "M"='LOAD ITEM2',
<
<                    A NOTER : "M"="L"+1...
<
<
LOAD1:   EQU         $
         LA          AITEM1
         JMP         LOAD
LOAD2:   EQU         $
         LA          AITEM2
LOAD:    EQU         $
         STA         AITEML          < MISE EN PLACE DU RELAI...
         LXI         IINDIC-LTN*NOCMO-TRITEM
         LBY         &AITEML         < (A)=TYPE DE L'ITEML :
         JMP         LODSTO          < VERS LA VALIDATION...
<
<
<        C H A N G E M E N T   D E   L ' I T E M   R E C E P T E U R  :
<
<
<        FONCTION :
<                      CE MODULE CHANGE L'ITEM
<                    RECEPTEUR DES PALETES, LA
<                    CONVENTION DE NOM SUIVANTE
<                    ETANT UTILISEE :
<
<                    "S"='STORE ITEM1' (ETAT INITIAL),
<                    "T"='STORE ITEM2',
<
<                    A NOTER : "T"="S"+1...
<
<
STOR1:   EQU         $
         LA          AITEM1
         JMP         STORE
STOR2:   EQU         $
         LA          AITEM2
STORE:   EQU         $
         STA         AITEMS          < MISE EN PLACE DU RELAI...
         LXI         IINDIC-LTN*NOCMO-TRITEM
         LBY         &AITEMS         < (A)=TYPE DE L'ITEMS :
<
< VALIDATION DE L'ITEM L/S :
<
LODSTO:  EQU         $
         CPI         "I"             < EST-CE LE TYPE "FILM DIGITAL" ???
         JE          LODSTQ          < OUI, C'EST BON...
         CPI         "T"             < EST-CE BIEN LE TYPE 'TEXTE' ???
         JNE         RETICF          < NON, ON SORT IMMEDIATEMENT...
LODSTQ:  EQU         $
         JMP         RETICX          < ET C'EST TOUT...
XWOR%9:  VAL         ENDIF
         IF          NMPROC-NMRX,XWOR%9,,XWOR%9
LOAD1:   EQU         $
LOAD2:   EQU         $
STOR1:   EQU         $
STOR2:   EQU         $
         BR          AERROR
XWOR%9:  VAL         ENDIF
         PAGE
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
<
<
<        C L I G N O T E M E N T   D ' U N E   C O U L E U R  :
<
<
CLIGN:   EQU         $
<
< MEMORISATION DU REGISTRE :
<
         BSR         AVALXY          < RECUPERATION DES COORDONNEES...
         JANE        ERROR           < BERK...
         BSR         ASPMEM          < OK, RECUPERATION DU (R,V,B) DE (NUMREG).
<
< INITIALISATION DES
< OPTIONS STANDARDS :
<
         LA          ISHUNT
         PSR         A               < MEMORISATION DE 'ISHUNT'...
         SBT         NBITMO-BIT
         STA         ISHUNT          < AFIN DE NE RIEN DEMANDER...
         BSR         ASPINI          < ET INITIALISATION DES OPTIONS...
<
< CLIGNOTEMENT :
<
NCLIGN:: VAL         4               < NOMBRE DE CLIGNOTEMENT...
         LXI         NCLIGN*2        < DOIT ETRE PAIR...
CLIGN1:  EQU         $
         PSR         X
         LA          SAVER
         EORI        MMOT
         AND         AMCOUL
         STA         SAVER           < INVERSION
         LA          SAVEV
         EORI        MMOT
         AND         AMCOUL
         STA         SAVEV           <           DES
         LA          SAVEB
         EORI        MMOT
         AND         AMCOUL
         STA         SAVEB           <               COULEURS...
         BSR         ASPTRA          < ET AFFICHAGE...
         LXI         K
CLIGN2:  EQU         $
         HALT                        < ET ON ATTEND UN PEU...
         CPZR        X
         JNE         CLIGN2          < JUSQU'A LA FIN...
         PLR         X
         JDX         CLIGN1          < AU CLIGNOTEMENT SUIVANT...
<
< ET RETOUR :
<
         PLR         A
         STA         ISHUNT          < RESTAURATION DE 'ISHUNT'...
         BR          ARET            < ET C'EST TOUT...
XWOR%9:  VAL         ENDIF
         IF          NMPROC-NMRX,XWOR%9,,XWOR%9
CLIGN:   EQU         $
         BR          AERROR
XWOR%9:  VAL         ENDIF
         PAGE
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
<
<
<        E N T R E E   D E   ' M S K N I V '  :
<
<
PMNIV:   EQU         $
         LAI         MMSK-ZERO
         BSR         AIHEX           < ENTREE DE 'MSKNIV',
         JNE         PMNIV           < ERREUR...
         STA         MSKNIV          < OK...
         BR          ARET            < ET RETOUR...
XWOR%9:  VAL         ENDIF
         IF          NMPROC-NMRX,XWOR%9,,XWOR%9
PMNIV:   EQU         ERROR
XWOR%9:  VAL         ENDIF
         PAGE
<
<
<        M E M O R I S A T I O N   D ' U N E   E N T R E E   ( R , V , B )  :
<
<
<        ARGUMENT :
<                    (NUMREG)=NUMERO DE REGISTRE.
<
<
SPMEM:   EQU         $
<
< MEMORISATION :
<
         LX          NUMREG          < (X)=NUMERO DU REGISTRE DEMANDE :
         BSR         AGETR           < RECUPERATION DU ROUGE LOCAL,
         STA         SAVER           < ET MEMORISATION.
         BSR         AGETV           < RECUPERATION DU VERT LOCAL,
         STA         SAVEV           < ET MEMORISATION.
         BSR         AGETB           < RECUPERATION DU BLEU LOCAL,
         STA         SAVEB           < ET MEMORISATION.
<
< ET RETOUR :
<
         RSR
<
<
<        T R A N S F E R T   D ' U N E   C O U L E U R  :
<
<
<        ARGUMENTS :
<                    (NUMREG)=NUMERO DE REGISTRE,
<                    (SAVER,SAVEV,SAVEB)=(R,V,B) A TRANSLATER.
<
<
SPTRA:   EQU         $
<
< TRANSFERT :
<
         LA          SAVER           < ROUGE DE "A" :
         BSR         ASP11           < FLOTTAGE...
         FST         ROUGE1
         LA          SAVEV           < VERT DE "A" :
         BSR         ASP11           < FLOTTAGE...
         FST         VERT1
         LA          SAVEB           < BLEU DE "A" :
         BSR         ASP11           < FLOTTAGE...
         FST         BLEU1
         LY          NUMREG          < (Y)=NUMERO DU REGISTRE DESTINATION...
         BSR         ASP3            < ET MISE EN PLACE DANS LE REGISTRE
                                     < 'NUMREG' COURANT...
<
< ET RETOUR :
<
         RSR
         PAGE
<
<
<        E N T R E E   T R A N S L A T I O N  :
<
<
PTRAN:   EQU         $
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         CPZ         ISHUNT
         JNE         PTRAN2          < CAS DES OPTIONS STANDARDS...
XWOR%9:  VAL         ENDIF
         LAI         MTRANS-ZERO
         BSR         AIHEX
         JNE         PTRAN           < ERREUR...
         STA         CTRANS          < MEMORISATION DE LA TRANSLATION...
         STZ         CMOD            < A PRIORI, MODULO...
PTRAN1:  EQU         $
         LAI         MODULO-ZERO
         BSR         APRINT          < ENVOI D'UN MESSAGE,
         LAD         DEMIN
         SVC         0               < LECTURE DE LA REPONSE,
         LBY         BUFCG           < (A)=CARACTERE REPONDU :
         CPI         "O"
         JE          PTRAN2          < MODULO, CMOD=0...
         CPI         "N"
         JNE         PTRAN1          < ?!????!?!
         IC          CMOD            < PAS DE MODULO, CMOD#0...
PTRAN2:  EQU         $
         RSR
<
<
<        E N T R E E   P E R M U T A T I O N   ( R , V , B )  :
<
<
PERMUT:  EQU         $
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         CPZ         ISHUNT
         JNE         PERMU1          < CAS DES OPTIONS STANDARDS...
XWOR%9:  VAL         ENDIF
         LAI         MPRVB-ZERO
         BSR         APRINT          < MESSAGE,
         LAD         DEMRVB
         SVC         0               < ENTREE DE LA LISTE DE PERMUTATION :
         LAI         XXR             < INITIALISATION A PRIORI...
         STA         AXXR
         LAI         XXV
         STA         AXXV
         LAI         XXB
         STA         AXXB
         LXI         TVPR            < INDEX DU PREMIER :
         LBY         &AREP           < (A)=PREMIER CARACTERE :
         CPI         EOT             < EST-CE "EOT" ???
         JE          PERMU1          < OUI, ON ARRETE...
         CPI         RC              < EST-CE "R/C" ???
         JE          PERMU1          < OUI, ON ARRETE...
         LBI         XXR             < NON,
         BSR         ASP2            < PERMUTATION DU ROUGE.
         STX         AXXR
         LXI         TVPV
         LBI         XXV
         BSR         ASP2            < PERMUTATION DU VERT.
         STX         AXXV
         LXI         TVPB
         LBI         XXB
         BSR         ASP2            < PERMUTATION DU BLEU.
         STX         AXXB
PERMU1:  EQU         $
         RSR
         PAGE
<
<
<        I N T E R P O L A T I O N  :
<
<
GINT:    EQU         $
<
< ENTREE DE LA TRANSLATION :
<
         BSR         APTRAN          < ENTREE DE LA TRANSLATION...
<
< ENTREE DE LA PERMUTATION :
<
         BSR         APERMU
<
< ENTREE DE LA CONSTANTE DE
< DELINEARISATION 'M1' :
<
GINT4:   EQU         $
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         CPZ         ISHUNT
         JNE         GINT7           < CAS DES OPTIONS STANDARDS...
XWOR%9:  VAL         ENDIF
         LAI         MM-ZERO
         BSR         AIHEX           < ENTREE DU NUMERATEUR,
         JNE         GINT4           < ERREUR...
         LR          A,Y             < OK, SAVE DANS 'Y'...
         LAI         MS-ZERO
         BSR         AIHEX           < ENTREE DU DENOMINATEUR,
         JNE         GINT4           < ERREUR...
         JAE         GINT4           < NUL...
         FLT
         FST         FDLINE
         LR          Y,A
         FLT
         FDV         FDLINE
         FST         FM1             < ET CALCUL...
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
GINT7:   EQU         $
XWOR%9:  VAL         ENDIF
         BSR         AGETAD          < ENTREE DE (NIV1,NIV2), SOIT LE NIVEAU
                                     < DEPART ET D'ARRIVEE DE L'INTERPOLATION.
<
< ACCES AUX COULEURS DE 'NIV2' :
<
         LX          NIV2
         BSR         AGETB
         BSR         ASP11
         FST         BLEU2           < RECUPERATION DU BLEU(NIV2),
         BSR         AGETV
         BSR         ASP11
         FST         VERT2           < RECUPERATION DU VERT(NIV2),
         BSR         AGETR
         BSR         ASP11
         FST         ROUGE2          < RECUPERATION DU ROUGE(NIV2).
<
< ACCES AUX COULEURS DE 'NIV1' :
<
         LX          NIV1
         BSR         AGTRVB          < RECUPERATION DE (ROUGE1,VERT1,BLEU1).
<
< REGENERATION A PRIORI
< DU REGISTRE (NIV1) :
<
         LY          NIV1            < (Y)=REGISTRE DE DEPART,
         BSR         ASP3            < QUE L'ON RENVOIE AU CAS OU IL Y AURAIT
                                     < PERMUTATION ET/OU TRANSLATION...
<
< NOMBRE D'ITERATIONS, ET 'PAS' :
<
         LA          NIV2
         SB          NIV1
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         JAGE        GINT8           < (NIV1) < (NIV2).
         AD          ANI256          < (NIV1) > (NIV2).
GINT8:   EQU         $
XWOR%9:  VAL         ENDIF
         LR          A,X             < (X)=NOMBRE DE PAS,
         FLT
         FST         FPAS
         FSB         F1
         FST         FPAS1           < FPAS1=FPAS-1,
         FSB         F1
         FMP         FPAS1
         FDV         F6
         FST         FPAS2           < FPAS2=FPAS1*(FPAS-2)/6.
<
< CALCUL DU PAS (ROUGE2,VERT2,BLEU2)
< SUR LES COULEURS (ROUGE1,VERT1,BLEU1) :
<
         FLD         ROUGE2
         FSB         ROUGE1
         FDV         FPAS
         FST         ROUGE2          < PAS ROUGE,
         FLD         VERT2
         FSB         VERT1
         FDV         FPAS
         FST         VERT2           < PAS VERT,
         FLD         BLEU2
         FSB         BLEU1
         FDV         FPAS
         FST         BLEU2           < PAS BLEU.
<
< ITERATION SUR CHAQUE REGISTRE INTERMEDIAIRE :
<
GINT3:   EQU         $
         ADRI        1,Y             < PASSAGE AU REGISTRE SUIVANT...
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         LR          Y,A
         ANDI        NIV256-I        < AU CAS OU (NIV1) > (NIV2)...
         LR          A,Y
XWOR%9:  VAL         ENDIF
         LR          X,A             < NUMERO DU PAS 'X',
         ADRI        -1,A            < POUR COMMENCER A 0...
         FLT
         FST         FDLINE          < X,
         FSB         FPAS1           < X-FPAS1,
         FMP         FDLINE          < X*(X-FPAS1),
         FST         FDLINE          < SAUVEGARDE TEMPORAIRE...
         FLD         FM1             < M1,
         FSB         F1              < M1-1,
         FMP         FDLINE          < (M1-1)*X*(X-FPAS1),
         FDV         FPAS2           < 6*(M1-1)*X*(X-FPAS1)/(FPAS1*(FPAS-2)).
         FAD         FM1             < ...+M1,
         FST         FDLINE          < LA FONCTION CALCULEE :
                                     < 6*(M1-1)*X*(X-FPAS1)/(FPAS1*(FPAS-2))
                                     < +M1 EST UNE PARABOLE
                                     < TOURNEE VERS LE HAUT Y=F(X), TELLE QUE :
                                     < F(0)=F(FPAS1)=M1.
         FLD         ROUGE2
         FMP         FDLINE          < DELINEARISATION...
         FAD         ROUGE1
         FST         ROUGE1          < PROGRESSION DU ROUGE,
         FLD         VERT2
         FMP         FDLINE          < DELINEARISATION...
         FAD         VERT1
         FST         VERT1           < PROGRESSION DU VERT,
         FLD         BLEU2
         FMP         FDLINE          < DELINEARISATION...
         FAD         BLEU1
         FST         BLEU1           < PROGRESSION DU BLEU,
         BSR         ASP3            < ENVOI DU (B,V,R).
         JDX         GINT3           < AU REGISTRE SUIVANT...
         BR          ARET            < ET RETOUR...
         PAGE
<
<
<        T R A N S F E R T   D ' U N E   C O U L E U R   D E
<        L ' A N C I E N   S Y S T E M E   V E R S   L E
<                    N O U V E A U  :
<
<
COLD:    EQU         $
<
< INITIALISATIONS :
<
         BSR         AVALXY
         JANE        COLD3           < ERREUR DE COORDONNEES...
<
< RECUPERATION DES ANCIENNES 'LUT' :
<
         LAI         NSPCOL
         SBT         BITSIG
         ACTD        ACTD1
         LR          B,Y             < (Y)=ADRESSE DES ANCIENNES 'LUT'...
<
< DEFINITION DE LA COULEUR SOURCE :
<
COLD2:   EQU         $
         LAI         MCOUL-ZERO
         BSR         AIHEX           < ENTREE DE LA COULEUR :
         JNE         COLD2           < !???!??!
         JAL         COLD2           < COULEUR INEXISTANTE...
         CPI         LTCU-I
         JG          COLD2           < COULEUR INEXISTANTE...
         ADR         A,Y             < (Y)=ADRESSE DE LA 'LUT' DE LA COULEUR
                                     <     SOURCE.
<
< ENTREE DES TRANSFORMATIONS :
<
         BSR         APTRAN          < ENTREE DE LA TRANSLATION,
         BSR         APERMU          < ENTREE DE LA PERMUTATION,
COLD1:   EQU         $
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         LX          ADECAL
         CPZ         ISHUNT
         JNE         COLD4           < CAS DES OPTIONS STANDARDS...
XWOR%9:  VAL         ENDIF
         LAI         MDECAL-ZERO
         BSR         AIHEX           < ENTREE DU DECALAGE :
         JNE         COLD1           < ?!????!?
         LR          A,X             < (X)=DECALAGE SUR LES 3 COMPOSANTES
                                     <     PRIMAIRES DE L'ANCIENNE COULEUR...
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
COLD4:   EQU         $
XWOR%9:  VAL         ENDIF
<
< RECUPERATION DE LA COULEUR SOURCE :
<
         LR          Y,A             < (A)=ADRESSE DE SA 'LUT' :
         ACTD        ACTD1           < (B)=VALEUR DES 3 COMPOSANTES...
         LAI         K
         SLLD        LREG+LREG       < RECUPERATION DU BLEU :
         EORI        CUNIVO          < COMPLEMENTATION,
         SLLS        K,X             < DECALAGE (POUR L'AMENER PAR EXEMPLE
                                     < JUSQU'A 1023...).
         STA         BLEU1
         LAI         K
         SLLD        LREG            < RECUPERATION DU VERT :
         EORI        CUNIVO          < COMPLEMENTATION,
         SLLS        K,X             < DECALAGE...
         STA         VERT1
         LAI         K
         SLLD        LREG            < RECUPERATION DU ROUGE :
         EORI        CUNIVO          < COMPLEMENTATION,
         SLLS        K,X             < DECALAGE...
         BSR         ASP11           < FLOTTAGE...
         FST         ROUGE1          < COMPOSANTE ROUGE.
         LA          VERT1
         BSR         ASP11           < FLOTTAGE...
         FST         VERT1           < COMPOSANTE VERTE.
         LA          BLEU1
         BSR         ASP11           < FLOTTAGE...
         FST         BLEU1           < COMPOSANTE BLEUE.
<
< ENVOI SUR LA COULEUR DESTINATION :
<
         LY          NUMREG          < (Y)=REGISTRE DE LA COULEUR DESTINATION,
         BSR         ASP3            < ET MISE DE (ROUGE1,VERT1,BLEU1)...
         BR          ARET            < VERS LA COMMANDE SUIVANTE...
<
< RETOUR EN ERREUR :
<
COLD3:   EQU         $
         BR          AERROR
XWOR%8:  VAL         ENDIF
         PAGE
<
<
<        F L O T T A G E   D ' U N   N I V E A U  :
<
<
<        ARGUMENT :
<                    (A)=NIVEAU SUR 10 BITS (ENTIER).
<
<
<        RESULTAT :
<                    (A,B)=NIVEAU FLOTTANT SUR 10 BITS.
<
<
SP11:    EQU         $
         FLT                         < CONVERSION FLOTTANTE.
         RSR
         PAGE
<
<
<        R E C U P E R A T I O N   D E S   ' L U T '   L O C A L E S  :
<
<
<        ARGUMENT :
<                    (X)=NUMERO DU REGISTRE (0,NIV256-I).
<
<
<        RESULTAT :
<                    (A)=NIVEAU 10 BITS CORRESPONDANT.
<
<
GETR:    EQU         $
         IF          NMPROC-NMRX,XWOR%9,,XWOR%9
         LBY         &ATLUTR         < RECUPERATION DU ROUGE,
         SLLS        ONBNIV          < EXTENSION 8 --> 10 BITS...
XWOR%9:  VAL         ENDIF
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         LAI         NCPCR*XXR-NCPCR
         BSR         AGTIT           < (A)=CANAL ROUGE...
XWOR%9:  VAL         ENDIF
         RSR
GETV:    EQU         $
         IF          NMPROC-NMRX,XWOR%9,,XWOR%9
         LBY         &ATLUTV         < RECUPERATION DU VERT,
         SLLS        ONBNIV          < EXTENSION 8 --> 10 BITS...
XWOR%9:  VAL         ENDIF
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         LAI         NCPCR*XXV-NCPCR
         BSR         AGTIT           < (A)=CANAL VERT...
XWOR%9:  VAL         ENDIF
         RSR
GETB:    EQU         $
         IF          NMPROC-NMRX,XWOR%9,,XWOR%9
         LBY         &ATLUTB         < RECUPERATION DU BLEU,
         SLLS        ONBNIV          < EXTENSION 8 --> 10 BITS...
XWOR%9:  VAL         ENDIF
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         LAI         NCPCR*XXB-NCPCR
         BSR         AGTIT           < (A)=CANAL BLEU...
XWOR%9:  VAL         ENDIF
         RSR
         PAGE
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
<
<
<        A C C E S   A   L ' I T E M 1  :
<
<
<        ARGUMENTS :
<                    (A)=TRANSLATION (EN NOMBRE DE CARACTERES)
<                        DANS L'ITEM1,
<                    (X)=NUMERO DE REGISTRE.
<
<
<        RESULTATS :
<                    (A)=NIVEAU DU CANAL DU REGISTRE DEMANDE.
<
<
GTIT:    EQU         $
         PSR         B,X,Y
         XR          A,X             < (A)=NUMERO DU REGISTRE,
                                     < (X)=TRANSLATION DANS L'ITEM1.
         MP          ANCPR           < CONVERSION DU NUMERO DE REGISTRE EN UN
                                     < INDEX DANS L'ITEM1,
         ADR         X,B             < ET TRANSLATION POUR ATTEINDRE LE CANAL
                                     < DEMANDE,
         LR          B,Y             < (Y)=INDEX DU PREMIER CARACTERE,
         LXI         NCPCR           < (X)=NOMBRE DE CARACTERES A RECUPERER,
         LBI         K               < (B)=CUMUL INITIAL...
GTIT1:   EQU         $
         XR          X,Y
         LBY         &AITEML         < (A)=CARACTERE COURANT DE L'ITEML,
         XR          X,Y
         ADRI        -"0",A          < ET CONVERSION BINAIRE,
         JAL         GTIT4           < ERREUR, ON S'ARRETE OU ON EST...
         CPI         BASE10
         JL          GTIT2           < CAS DES CHIFFRES DECIMAUX PRESUMES...
         ADRI        -"A"+"9"+1,A    < CAS DES CHIFFRES HEXA-DECIMAUX PRESUMES.
         CPI         BASE10          < ET VALIDATION...
         JL          GTIT4           < ERREUR, ON S'ARRETE OU ON EST...
         CPI         BASE16          < VALIDATION...
         JGE         GTIT4           < ERREUR, ON S'ARRETE OU ON EST...
GTIT2:   EQU         $
         SCRS        NBITCX
         SCLD        NBITCX          < ET CUMUL DANS 'B'...
         ADRI        I,Y             < PASSAGFE AU CARACTERE SUIVANT,
         JDX         GTIT1           < S'IL EXISTE...
GTIT4:   EQU         $
         LR          B,A             < (A)=NIVEAU DU CANAL DEMANDE...
         PLR         B,X,Y
         RSR
XWOR%9:  VAL         ENDIF
         PAGE
<
<
<        E N V O I   D ' U N E   C O U L E U R   I N T E R P O L E E  :
<
<
<        ARGUMENT :
<                    (Y)=NUMERO DE REGISTRE (0 A NIV256-I).
<
<
SP3:     EQU         $
         PSR         X,Y
         STY         NUMREG          < MISE EN PLACE DU NIVEAU DE REGISTRE.
         LAI         NBITMO
         SB          AXXR            < PERMUTATION EVENTUELLE...
         LR          A,X
         LAI         ALLUT
         RBT         K,X             < SELECTION DE 'LUTR' PERMUTEE,
         BSR         ASP13           < SELECTION DE LA 'LUT' ROUGE,
         FLD         ROUGE1
         BSR         ASP12           < ET ENVOI DU NIVEAU DU ROUGE DANS (Y)...
         LAI         NBITMO
         SB          AXXV            < PERMUTATION EVENTUELLE...
         LR          A,X
         LAI         ALLUT
         RBT         K,X             < SELECTION DE LA 'LUTV' PERMUTEE,
         BSR         ASP13           < SELECTION DE LA 'LUT' VERTE,
         FLD         VERT1
         BSR         ASP12           < ET ENVOI DU NIVEAU DU VERT DANS (Y)...
         LAI         NBITMO
         SB          AXXB            < PERMUTATION EVENTUELLE...
         LR          A,X
         LAI         ALLUT
         RBT         K,X             < SELECTION DE LA 'LUTB' PERMUTEE,
         BSR         ASP13           < SELECTION DE LA 'LUT' BLEUE,
         FLD         BLEU1
         BSR         ASP12           < ET ENVOI DU NIVEAU DE BLEU DANS (Y)...
         NOP                         < AFIN DE METTRE UN EVENTUEL
                                     < P O I N T   D ' A R R E T...
         PLR         X,Y
         RSR
         PAGE
<
<
<        E N V O I   D ' U N   N I V E A U   E N T I E R  :
<
<
<        ARGUMENT :
<                    (A)=NIVEAU ENTIER.
<
<
SP14:    EQU         $
         STA         SNIV            < MEMORISATION POUR LA GESTION DES 'LUT'
                                     < LOCALES.
         BSR         APIS            < PREPARATION DE L'ENVOI EN 'CDAJ' EN
                                     < CONVENTIONS INVERSEES.
         BSR         ASENDT          < ET ENVOI DU NIVEAU (A) DANS
                                     < LE REGISTRE 'NUMREG' DE LA 'LUT'
                                     < SELECTIONNEE.
         RSR
<
<
<        E N V O I   D ' U N   N I V E A U   F L O T T A N T  :
<
<
<        ARGUMENT :
<                    (A,B)=NIVEAU FLOTTANT.
<
<
SP12:    EQU         $
         FAD         F05             < POUR AVOIR UN EXCES OU UN DEFAUT...
         FIX                         < CONVERSION ENTIERE,
         BSR         ACTRAN          < TRANSLATION EVENTUELLE,
         BSR         ASP14           < ET ENVOI DU NIVEAU ENTIER...
         RSR
         PAGE
<
<
<        S E L E C T I O N   D ' U N E   ' L U T '  :
<
<
<        ARGUMENT :
<                    (A)=LISTE D'INHIBITION DES 'LUT'.
<
<
SP13:    EQU         $
         STA         SLUT            < POUR LA GESTION DES 'LUT' LOCALES...
         STA         MCDAJ
         LA          ARSLUT
         BSR         APWCDA          < SELECTION DE LA 'LUT' DEMANDEE...
         RSR
         PAGE
<
<
<        E N V O I   C O U L E U R  :
<
<
<        FONCTION :
<                      CE SOUS-PROGRAMME SE CHARGE
<                    D'ENVOYER DANS LE REGISTRE
<                    'NUMREG', LE NIVEAU DE GRIS
<                    'NIVEAU' SUR LE CANAL SELECTIONNE
<                    PAR 'COLOUR' (1, 2 OU 3 ; INEFFECTIF
<                    SI NUL) ; IL TRANSLATE EVENTUELLE-
<                    MENT 'NIVEAU', ET PERMUTE 'COLOUR'.
<
<
SENDC:   EQU         $
         PSR         A,B,X
<
< SELECTION DU CANAL PRIMAIRE (R,V,B) :
<
         LX          COLOUR          < (X)=COULEUR PRIMAIRE SELECTIONNEE :
         CPZR        X               < EST-CE LE NOIR ???
         JE          SENDC1          < OUI, RIEN A FAIRE...
         LA          &ATXX           < NON, ON LA PERMUTE...
         ADRI        -NBITMO,A
         NGR         A,X
         LAI         ALLUT           < (A)=VALEUR D'INHIBITION DES 'LUT',
         RBT         K,X             < ET AUTORISATION DE LA COULEUR DEMANDEE.
         BSR         ASP13           < SELECTION DE LA COULEUR PRIMAIRE (A)...
<
< MISE EN PLACE DU NIVEAU :
<
         LA          NIVEAU
         BSR         ACTRAN          < TRANSLATION EVENTUELLE...
         BSR         ASP14           < ET ENVOI DU NIVEAU...
<
< RETOUR :
<
SENDC1:  EQU         $
         PLR         A,B,X
         RSR
         PAGE
<
<
<        T R A N S L A T I O N   D ' U N   N I V E A U
<                    D E   C O U L E U R  :
<
<
<        ARGUMENT :
<                    (A)=NIVEAU DE COULEUR,
<
<
<        RESULTAT :
<                    (A)=NIVEAU TRANSLATE, ET EVENTUELLEMENT
<                        MODIFIE EN FONCTION DE 'CMOD'.
<
<
CTRAN:   EQU         $
         AD          CTRANS          < TRANSLATION A PRIORI...
         CPZ         CMOD            < ALORS COMMENT TRAITER LE NIVEAU ???
         JE          CTRAN1          < EN MODULO...
         JAL         CTRAN2          < EN TRONCATION, OR IL EST NEGATIF, ON
                                     < VA SE RAMENER LA LA BORNE INFERIEURE...
         CP          NBNIVM          < IL EST POSITIF ; EST-IL TROP GRAND ???
         JLE         CTRAN1          < OK, LE NIVEAU EST DANS (0,NBNIV-I)...
         LA          NBNIVM          < UN NIVEAU TROP GRAND EST RAMENE A LA
                                     < BORNE SUPERIEURE...
         JMP         CTRAN1          < ET ON SORT...
CTRAN2:  EQU         $
         LAI         XXNOIR          < UN NIVEAU NEGATIF EST RAMENE A LA
                                     < BORNE INFERIEURE...
CTRAN1:  EQU         $
XWOR%1:  VAL         NBNIV=K
         IF          BIT>XWOR%1-NBNIV,,XWOR%,
         IF          ATTENTION : LE 'AND''NBNIVM' NE REALISE PAS
         IF          UNE OPERATION DE MODULO, CAR IL N'EST
         IF          PAS UNE PUISSANCE DE 2 !!!
XWOR%:   VAL         ENDIF
         AND         NBNIVM          < ET MAINTENANT, ON PEUT TRONQUER
                                     < SYSTEMATIQUEMENT...
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         AND         MSKNIV          < POUR SIMULER PAR EXEMPLE DES SORTIES
                                     < SUR MOINS DE 10 BITS...
XWOR%9:  VAL         ENDIF
XWOR%8:  VAL         ENDIF
         RSR                         < ET ON SORT...
         PAGE
<
<
<        R E I N I T I A L I S A T I O N   T R A N S L A T I O N
<                    E T   P E R M U T A T I O N  :
<
<
SP10:    EQU         $
         PSR         A
         STZ         CTRANS          < ANNULATION DE LA TRANSLATION,
         LAI         XXR
         STA         AXXR            < ET
         LAI         XXV
         STA         AXXV            <    DES
         LAI         XXB
         STA         AXXB            <        PERMUTATIONS...
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         LAI         MMOT
         STA         MSKNIV          < ET SORTIE SUR 10 BITS...
XWOR%9:  VAL         ENDIF
XWOR%8:  VAL         ENDIF
         PLR         A
         RSR
         PAGE
<
<
<        E N V O I   D ' U N   N I V E A U   D A N S
<                    U N   R E G I S T R E  :
<
<
<        FONCTION :
<                      CE MODULE ENVOIE UN NIVEAU DE
<                    GRIS DANS L'UNE DES 3 'LUT', ET
<                    MEMORISE DANS LES 'LUT' LOCALES
<                    LE CHANGEMENT...
<
<
SENDT:   EQU         $
         PSR         A,B,X
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
<
< LE REGISTRE (NUMREG)
< EST-IL AUTORISE ???
<
         LA          NUMREG          < (A)=(NUMREG),
         ANDI        2*NBITMO-1
         LR          A,X             < (X)=(NUMREG).MOD.32,
         LA          ENTR1
         LB          ENTR2           < (A,B)=LISTE D'AUTORISATION,
         TBT         0,X             < ALORS ???
         JNC         SENDT4          < LE REGISTRE (NUMREG) EST INHIBE...
XWOR%9:  VAL         ENDIF
<
< ENVOI DU NIVEAU EN 'LUT' :
<
         LA          NUMREG          < (A)=NIVEAU DE GRIS DEMANDE,
         EORI        NIV256-I        < PARCEQUE LES CONVENTIONS LOGIQUES
                                     < SONT INVERSEES...
XWOR%7:  VAL         NIV256=K
         IF          BIT>XWOR%7-NIV256,,XWOR%,
         IF          ATTENTION : 'NIV256' DOIT ETRE UNE PUISSANCE DE 2 !!!
XWOR%:   VAL         ENDIF
         SLLS        NOCMO=K         < EN EFFET, LES ADRESSES 68000 SONT DES
                                     < ADRESSES D'OCTETS, ET LES NIVEAUX DES
                                     < COULEURS DE BASE SONT SUR 10 BITS...
         AD          ARLUT0          < (A)=ADRESSE DU REGISTRE DE 'LUT' ; MAIS
                                     < NE PAS OUBLIER LE REGISTRE 'RSLUT'...
         BSR         APWCDA          < ET ON FORCE 1, 2 OU 3 ENTREES DE 'LUT'...
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
<
< MEMORISATION EN 'LUT' LOCALE :
<
         IF          NMPROC-NMRX,XWOR%9,,XWOR%9
         LA          SNIV            < (A)=NIVEAU ENVOYE,
         SLRS        ONBNIV          <     QUE L'ON MET SUR UN OCTET...
         LB          SLUT            < (B)=LISTE DES 'LUT' SELECTIONNEES,
         LX          NUMREG          < (X)=REGISTRE (NIVEAU DE GRIS) SELECTIONNE
         TBT         NBITMO+NBITMO-XXR
         JC          SENDT1          < ON NE MODIFIE PAS LE ROUGE...
         STBY        &ATLUTR         < MEMORISATION DU ROUGE...
SENDT1:  EQU         $
         TBT         NBITMO+NBITMO-XXV
         JC          SENDT2          < ON NE MODIFIE PAS LE VERT...
         STBY        &ATLUTV         < MEMORISATION DU VERT...
SENDT2:  EQU         $
         TBT         NBITMO+NBITMO-XXB
         JC          SENDT3          < ON NE MODIFIE PAS LE BLEU...
         STBY        &ATLUTB         < MEMORISATION DU BLEU...
SENDT3:  EQU         $
XWOR%9:  VAL         ENDIF
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         LA          NUMREG          < (A)=NUMERO DU REGISTRE DEMANDE,
         MP          ANCPR           < ET CONVERSION EN UN NUMERO DE CARACTERE
                                     < DE L'ITEM1 DANS 'B'...
         LA          SLUT            < (A)=LISTE DE SELECTION DES 'LUT' :
         TBT         NBITMO-XXR      < Y-A-T'IL DU ROUGE ???
         JC          SENDT1          < NON...
         PSR         A,B             < OUI :
         ADRI        NCPCR*XXR-NCPCR,B
         BSR         ASTIT           < RANGEMENT DU CANAL ROUGE DANS L'ITEM1...
         PLR         A,B
SENDT1:  EQU         $
         TBT         NBITMO-XXV      < Y-A-T'IL DU VERT ???
         JC          SENDT2          < NON...
         PSR         A,B             < OUI :
         ADRI        NCPCR*XXV-NCPCR,B
         BSR         ASTIT           < RANGEMENT DU CANAL VERT DANS L'ITEM1...
         PLR         A,B
SENDT2:  EQU         $
         TBT         NBITMO-XXB      < Y-A-T'IL DU BLEU ???
         JC          SENDT3          < NON...
         PSR         A,B             < OUI :
         ADRI        NCPCR*XXB-NCPCR,B
         BSR         ASTIT           < RANGEMENT DU CANAL BLEU DANS L'ITEM1...
         PLR         A,B
SENDT3:  EQU         $
XWOR%9:  VAL         ENDIF
XWOR%8:  VAL         ENDIF
<
< SORTIE :
<
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
SENDT4:  EQU         $
XWOR%9:  VAL         ENDIF
         PLR         A,B,X
         RSR
         IF          XXMODE-XXCONV,XWOR%8,,XWOR%8
         IF          NMPROC-NMRX,XWOR%9,,XWOR%9
<
<
<        ' L U T '   L O C A L E S  :
<
<
         TRN
TLUTR:   EQU         $               < ROUGE.
         DO          NIV256/NOCMO
         BYTE        XXNOIR;XXNOIR
TLUTV:   EQU         $               < VERT.
         DO          NIV256/NOCMO
         BYTE        XXNOIR;XXNOIR
TLUTB:   EQU         $
         DO          NIV256/NOCMO
         BYTE        XXNOIR;XXNOIR
         NTRN
XWOR%9:  VAL         ENDIF
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
<
<
<        R A N G E M E N T   D A N S   L ' I T E M 1  :
<
<
<        ARGUMENTS :
<                    (B)=INDEX DE RANGEMENT DU PREMIER CARACTERE DANS L'ITEM1,
<                    (SNIV)=NIVEAU A METTRE POUR LE CANAL COURANT DANS ITEM1.
<
<
STIT:    EQU         $
         PSR         X,Y
         LR          B,Y             < (Y)=INDEX COURANT DANS L'ITEM1,
         LB          SNIV            < (B)=NIVEAU A CODER EN ASCI...
         SLLD        -NCPCR*NBITCX+NBITMO
                                     < ET CADRAGE A GAUCHE DANS 'B'...
         LXI         NCPCR           < (X)=NOMBRE DE CHIFFRES A CODER...
STIT1:   EQU         $
         LAI         K               < CLEAR,
         SLLD        NBITCX          < ET DECONCATENATION,
         CPI         BASE10
         JL          STIT2           < CAS DES CHIFFRES DECIMAUX...
         ADRI        "A"-"9"-1,A     < CAS DES CHIFFRES HEXA-DECIAMUX...
STIT2:   EQU         $
         ADRI        "0",A           < ET CONVERSION ASCI...
         XR          X,Y
         STBY        &AITEMS         < RANGEMENT DU CARACTERE COURANT DANS
                                     < L'ITEMS...
         ADRI        I,X             < PASSAGE AU CARACTERE SUIVANT,
         XR          X,Y
         JDX         STIT1           < S'IL EXISTE...
         PLR         X,Y
         RSR
XWOR%9:  VAL         ENDIF
         PAGE
<
<
<        P O I N T   D ' E N T R E E  :
<
<
PRV:     EQU         $
         LRM         L,K
         WORD        LOC+'80         < INTIALISATION DE L,
         WORD        STACK-1         < INITIALISATION DE K.
         LAI         PAGER
         BSR         AGPCDA          < POSITIONNEMENT SUR LA PAGE DES REGISTRES
                                     < DE LA 'CDAJ'...
         STZ         CTRANS          < AU CAS DES ALT-MODES...
         IF          NMPROC-NMRW,XWOR%9,,XWOR%9
         STZ         ISHUNT          < DE MEME, ON RE-FORCE LES QUESTIONS...
XWOR%9:  VAL         ENDIF
         LAI         MRVB-ZERO
         BSR         APRINT          < POUR AVOIR 'RVB'...
         BSR         ARETIC
XWOR%8:  VAL         ENDIF
         PAGE
<
<
<        I M P L A N T A T I O N  :
<
<
         IF          $-ITEM2,XWOR%,XWOR%,
         IF          ATTENTION : PROCESSEUR TROP LONG !!!
XWOR%:   VAL         0
X12:     EQU         ZERO+PILE-LTNI-LTNI
X10:     VAL         X12-$
ZEROV:   EQU         ZERO+X10        < ERREUR D'ASSEMBLAGE VOLONTAIRE
                                     < SI MAUVAISE IMPLANTATION...
         DZS         X10+1           < PAR PROPRETE !!!!
         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.