NMPROC:  VAL         "DI"            < NOM DU PROCESSEUR.
         IDP         "DICTIONNAIRE - RELEASE 01/06/1979"
         IDP         "JOHN F. COLONNA"
         EOT         #SIP DEF PROCESSEUR#
         WORD        DICO            < ADRESSE DE LANCEMENT DU
                                     < PROCESSEUR 'DI'.
         LOCAL
         WORD        0               < POUR FAIRE : $=$+1.
         PROG
PDICO:   EQU         $               < A NOTER : P='12 !!!!!!
         LRP         L
         BR          -2,L            < ENTREE DANS LE PROCESSEUR.
         PAGE
         EOT         #SIP DEFINITION ITEM#
<
<
<        C O N S T A N T E S   D U   D I C T I O N N A I R E  :
<
<
LMOT:    VAL         40              < NBRE MAX DE CARACTERES D'UN
                                     < MOT DU DICTIONNAIRE.
NCATG:   VAL         32              < NBRE DE CATEGORIES GRAMMATICALES.
NCATG4:  VAL         NCATG+3/4       < NBRE D'OCTETS NECESSAIRES.
NSEM:    VAL         4               < NBRE D'OCTETS DE VALEUR
                                     < SEMANTIQUE DU MOT.
<
<
<        C A T E G O R I E S   G R A M M A T I C A L E S  :
<
<
NOM:     VAL         1
VERBE:   VAL         2
ADJECT:  VAL         3               < ADJECTIF.
ADVERB:  VAL         4               < ADVERBE.
PROPER:  VAL         5               < PRONOM PERSONNEL.
PRODEM:  VAL         6               < PRONOM DEMONSTRATIF.
INTERJ:  VAL         7               < INTERJECTION.
PREPOS:  VAL         8               < PREPOSITION.
CONJ:    VAL         9               < CONJONCTION.
ARTICL:  VAL         10              < ARTICLE.
PROREL:  VAL         11              < PRONOM RELATIF.
         PAGE
<
<
<        L O C A L  :
<
<
         LOCAL
LOC:     EQU         $
<
<        M E S S A G E S  :
<
BUFFER:  DZS         NSEM+1/2        < BUFFER D'ENTREE.
MMOT:    BYTE        5;'6D
         ASCI        "MOT>"          < INVITATION A ENTRER UN MOT.
MUSUEL:  BYTE        7;'6D
         ASCI        "USUEL?"        < MOT USUEL ????
MINDIC:  BYTE        13;'6D
         ASCI        "INDICATEURS="  < ENTREE DES CATEGORIES GRAM-
                                     < MATICALES.
MNOM:    BYTE        5;'6D
         ASCI        "NOM?"
MVERB:   BYTE        7;'6D
         ASCI        "VERBE?"
MADJ:    BYTE        10;'6D
         ASCI        "ADJECTIF? "
MADV:    BYTE        9;'6D
         ASCI        "ADVERBE?"
MPP:     BYTE        9;'6D
         ASCI        "PRO.PER?"
MPD:     BYTE        9;'6D
         ASCI        "PRO.DEM?"
MINJ:    BYTE        8;'6D
         ASCI        "INTERJ? "
MPREP:   BYTE        13;'6D
         ASCI        "PREPOSITION?"
MCONJ:   BYTE        13;'6D
         ASCI        "CONJONCTION?"
MART:    BYTE        9;'6D
         ASCI        "ARTICLE?"
MPREL:   BYTE        9;'6D
         ASCI        "PRO.REL?"
MSEM:    BYTE        19;'6D
         ASCI        "VALEUR SEMANTIQUE="
ILDIC:   ASCI        "I+:  ;IL:  ;ED"
LILDIC:  VAL         $-ILDIC         < AFIN DE REMETRRE A 'SPACE'
                                     < LA FIN DE LA LIGNE.
         DO          NBCAR/2-LILDIC
         ASCI        "  "
LONG:    ASCI        "00"            < LONGUEUR DU MOT EN ASCI.
MOT:     EQU         $               < MOT SOUS FORME ASCI.
         DO          LMOT+NCATG4+1+NSEM+2/2
         ASCI        "  "
LILDIC:  VAL         $-ILDIC         < NBRE DE MOTS OCCUPES PAR
                                     < LA ZONE 'ILDIC'.
INIT:    EQU         $               < VALEUR INITIALE DE LA VALEUR
                                     < SEMANTIQUE ET DES CATEGORIES
                                     < GRAMMATICALES DONNEE A L'ENVERS :
                                     < LE DERNIER CARACTERE SERA LE 1ER.
         ASCI        " ;"
         DO          NSEM+1/2
         ASCI        "  "
         DO          NCATG4+1/2
         WORD        '4040
<
<        R E L A I S   D E   T A B L E S  :
<
AI2:     WORD        ZERO+PILE-LTNI-LTNI+LTN,X
                                     < RELAI VERS LE CORPS DE L'ITEM2
                                     < POUR INDEXATION PAR RAPPORT A 0.
APILE:   WORD        PILE-1          < VALEUR INITIALE DU REGISTRE K.
AMOT:    WORD        MOT,X           < RELAI INDEXE VERS LE MOT ENTRE.
ABUF:    WORD        BUFFER,X        < RELAI VERS LE BUFFER D'ENTREE.
AINIT:   WORD        INIT,X          < RELAI VERS LA VALEUR INITIALE
                                     < INVERSEE DES CATEGORIES
                                     < GRAMMATICALES.
AKP:     WORD        ILDIC,X         < REALI D'ACCES AU 1ER CARACTERE
                                     < SUIVANT 'I+:'.
AKL:     WORD        ILDIC+3,X       < RELAI D'ACCES AU 1ER CARACTERE
                                     < SUIVANT 'IL:'.
AI21:    WORD        ZERO+PILE-LTNI-LTNI+LTN-1,X
                                     < RELAI INDEXE D'ACCES AU CORPS DE
                                     < L'ITEM2 POUR INDEXATION PAR
                                     < RAPPORT A 1.
ANOM:    WORD        TNOM,X          < TABLE D'ACCES AUX ADRESSES DES
                                     < NOMS DES CATEGORIES GRAMMATICALES
                                     < X CONTENANT CETTE CATEGORIE.
CG1:     VAL         1               < 1ERE CATEGORIE GRAMMATICALE.
TNOM:    EQU         $-CG1
         WORD        MNOM
         WORD        MVERB
         WORD        MADJ
         WORD        MADV
         WORD        MPP
         WORD        MPD
         WORD        MINJ
         WORD        MPREP
         WORD        MCONJ
         WORD        MART
         WORD        MPREL
NCG:     VAL         $-TNOM-CG1      < NBRE DE CATEGORIES GRAMMATICALES
                                     < RECONNUES.
<
<        C O N S T A N T E S  :
<
NCP:     WORD        NBCAR*NBLIG     < NBRE DE CARACTERES OCCUPES
                                     < PAR LE CORPS D'UN ITEM.
NMP:     WORD        NBCAR*NBLIG/2   < NBRE DE MOTS OCCUPES PAR LE
                                     < CORPS D'UN ITEM.
NGI:     ASCI        "GI"            < NOM DE L'OVERLAY 'GI'.
NGE:     ASCI        "GE"            < NOM DE L'OVERLAY 'GE'.
DIX:     WORD        10              < POUR LES CONVERSIONS DECIMALES.
CAT1:    WORD        0               < MEMORISATION DE L'INDEX DU 1ER
                                     < CARACTERE DE CATEGORIE GRAMMA-
                                     < TICAL DANS LE MOT.
<
<        R E L A I S   D E S   R O U T I N E S  :
<
APRINT:  WORD        PRINT           < ROUTINE D'EMISSOON MESSAGE.
AOVL:    WORD        OVL             < CHARGEMENT DES OVERLAYS.
AGOGE:   WORD        GOGE            < RETOUR A 'GE'.
<
<        D E M A N D E S   A   C M S 4  :
<
DEMIN:   WORD        '0101           < LECTURE D'UN OCTET AVEC ECHO.
         WORD        BUFFER-ZERO*2
         WORD        1
DEMMOT:  WORD        '0101           < ENTREE D'UN MOT AVEC ECHO.
         WORD        MOT-ZERO*2
         WORD        LMOT
DEMSEM:  WORD        '0101           < ENTREE DE LA VALEUR SEMANTIQUE.
         WORD        BUFFER-ZERO*2
         WORD        NSEM
DEMOUT:  WORD        '0202           < SORTI DES MESSAGES (CF. APRINT).
         WORD        0               < @OCTET DU MESSAGE.
         WORD        0               < LONGUEUR OCTET DU MESSAGE.
DEMSGN:  WORD        '8402           < DEMANDE D'ACCES AU SGN ,
                                     < INITIALISE POUR UNE GENERATION
                                     < DE LA BRANCHE 'DI'.
         WORD        BRANCH-ZERO*2
         WORD        ZERO-BRANCH+PILE-LTNI-LTNI*2
         WORD        -1
DEMCCI:  WORD        '0001           < DEMANDE D'ACCES AU CCI.
         PAGE
<
<
<        I M P R E S S I O N   M E S S A G E  :
<
<
<        ARGUMENT :
<                    A=@MOT DU MESSAGE , DONT LE 1ER
<                      OCTET EN CONTIENT LA LONGUEUR.
<
<
         PROG
PRINT:   EQU         $
         LR          A,C             < C=@MOT DU MESSAGE.
         ADR         A,A
         ADRI        1,A             < A=@OCTET DU MESSAGE ,
         STA         DEMOUT+1        < QUE L'ON MET DANS DEMOUT.
         LBY         0,C             < A=LONGUEUR DU MESSAGE.
         STA         DEMOUT+2        < QUE L'3N MET DANS DEMOUT.
         LAD         DEMOUT
         SVC         0               < ENVOI DU MESSAGE A CMS4.
         RSR                         < ET VOILA ...
         PAGE
<
<
<        G E S T I O N   D U   D I C T I O N N A I R E  :
<
<
<        DICTIONNAIRE :
<                      LE DICTIONNAIRE UTILISE EST DECOUPE
<                    EN N*N+1 PAGES (N ETANT LE NBRE DE
<                    CARACTERES RECONNUS) : LA 1ERE EST CELLE
<                    DES MOTS USUELS ; LES N*N AUTRES SONT DES
<                    PAGES ALPHABETIQUES AVEC CLASSEMENT SUR
<                    LES 2 PREMIERES LETTRES DES MOTS . LES
<                    PAGES DU DICTIONNAIRE PORTENT LES NOMS
<                    SUIVANTS :
<                    ':  ' : MOTS USUELS ,
<                    ':'<K1><K2> : MOTS NON USUELS COMMENCANT
<                                  PAR LES 2 LETTRES <K1> ET
<                                  <K2> (<K2> POUVANT ETRE
<                                  'SPACE').
<                      ON LIMITE LES NOMS DES PAGES DU
<                    DICTIONNAIRE A 3 LETTRES AFIN DE NE PAS
<                    AVOIR A APPLIQUER L'ALGORITHME DE CODAGE
<                    DES NOMS UTILISES DANS SODOME ; ON
<                    AURA ALORS :
<                    ':'<K1><K2>::=':'<K1><K2>'3@0' ,
<                    LE NOM DE 6 CARACTERES ETANT LE NOM
<                    VU PAR LE SGN ....
<                      CE DICTIONNAIRE EST GEREE SEMI-
<                    MANUELLEMENT PAR L'INTERMEDIAIRE DE 'ED'.
<                    LE ROLE DE 'DI' EST D'EN PREPARER LE
<                    TRAVAIL , EN RECUPERANT LE MOT , AINSI
<                    QUE CES INDICATEURS DE CATEGORIES
<                    GRAMMATICALES , ET ENFIN DE PROCEDER AU
<                    CHARGEMENT (AVEC CREATION PRELIMINAIRE
<                    EVENTUELLE) DE LA PAGE ADEQUAT DU DICTIONNAIRE.
<
<
<        FORMAT D'UN MOT DANS LE DICTIONNAIRE :
<
<        <MOT>::=<L1><L2><K1><K2>...<KN>,<I1>...<IP><S1>...<SM>;
<                    OU :
<                    <L1><L2> REPRESENTE LA LONGUEUR DU MOT EN ASCI ,
<                    <K1><K2>...<KN> EST LE MOT PRPREMENT DIT ,
<                    , UN SEPARATEUR ,
<                    <I1>...<IP> LES INDICATEURS DE CATEGORIES
<                                GRAMMATICALES ,
<                    <S1>...<SM> LA VALEUR SEMANTIQUE DU MOT ,
<                    ; LA FIN DE ZONE (COMPARABLE A UN 'EOT').
<
<
<        CARACTERES SPECIAUX :
<                    # : INDIQUE UN CARACTERE DE VALEUR INDIFFERENTE ,
<                    CARACTERE EN EXPOSANT : INDIQUE UN CARACTERE
<                                            FACULTATIF.
<                    . : FIN DE MOT ; LES CARACTERES SUIVANTS
<                        SONT INUTILISES LORS DE LA RECHERCHE
<                        LEXICALE ; A NOTER QUE LE CARACTERE
<                        PRECEDANT LE '.' DOIT ETRE LE DERNIER
<                        CARACTERE DU MOT QUE L'ON RECHERCHE
<                        DANS LE DICTIONNAIRE.
<                    : : FIN DE RACINE ; LES CARACTERES SUIVANTS ,
<                        TANT DANS LE MOT DU DICTIONNAIRE , QUE
<                        DANS LE MOT QUE L'ON RECHERCHE SONT
<                        IGNORES.
<
<
<        E N T R Y   D U   P R O C E S S E U R  :
<
<
         WORD        LOC+'80         < VALEUR INITIALE DE LA BASE L.
         WORD        BRANCH          < VALEUR INITIALE DE LA BASE W.
DICO:    EQU         $
         LRP         K
         ADRI        -1,K
         PLR         L,W             < INITIALISATION DES BASES L & W.
         LA          APILE
         LR          A,K             < INITIALISATION DU REGISTRE K.
<
< INITIALISATION DE DEMSGN :
<
         LAI         6               < A=NVP DE 'LOAD SOUS :SYS'.
         STBY        DEMSGN          < MISE EN PLACE DU NVP DE DEMSGN.
<
<
<        E N T R E E   D U   M O T  :
<
<
E4:      EQU         $
         LAD         MMOT
         BSR         APRINT          < ENVOI DU MESSAGE D'INVITATION
                                     < A DONNER LE MOT.
         LAD         DEMMOT
         SVC         0               < LECTURE DU MOT.
<
< CALCUL DE LA LONGUEUR DU MOT ET
< RECHERCHE DE SON DERNIER CARACTERE :
<
         LXI         0               < X=INDEX DE PARCOURS DU MOT.
E2:      EQU         $
         LBY         &AMOT           < ACCES A UN CARACTERE DU MOT.
         CPI         '0D             < EST-CE UN R/C ???
         JE          E3              < OK , FIN DE MOT TROUVEE.
         CPI         '04             < EST-CE EOT ???
         JE          E3              < OK , FIN DE MOT TROUVEE.
         ADRI        1,X             < SINON PROGRESSION DE L'INDEX
                                     < CARACTERE DU MOT.
         LR          X,A             < POUR VALIDATION DE L'INDEX.
         CPI         LMOT            < EST-ON EN PRESENCE D'UN MOT
                                     < DE LONGUEUR MAX ???
         JL          E2              < NON , ON PEUT POURSUIVRE LA
                                     < RECHERCHE.
<
< CAS DES 'EOT' , R/C , OU DES MOTS DE LONGUEUR MAX :
<
E3:      EQU         $
         CPZR        X               < LE MOT EST-IL VIDE ???
         JNE         E300            < NON LE MOT N'EST PAS VIDE.
         BR          AGOGE           < MOT VIDE : IL EST REFUSE !!!
E300:    EQU         $
         LAI         ","             < NON , LE MOT N'EST PAS VIDE.
         STBY        &AMOT           < ON MET UNE ',' EN BOUT DE MOT
                                     < (ECRASANT EVENTUELLEMENT LES
                                     < CARACTERES 'EOT'-R/C).
<
< INITIALISATION DES INDICATEURS
< DE CATEGORIES GRAMMATICALES :
<
         LR          X,Y             < Y=INDEX MOT.
         LXI         NCATG4+NSEM+1   < X=COMPTEUR ET INDEX D'ACCES
                                     < A LAZONE D'INITIALISATION.
E6:      EQU         $
         LBY         &AINIT          < ACCES A UN CARACTERE INITIAL.
         XR          X,Y
         ADRI        1,X             < PROGRESSION DE L'INDEX-MOT.
         STBY        &AMOT           < INITIALISATION DES INDICATEURS
                                     < DU MOT.
         XR          X,Y
         JDX         E6              < INITIALISATION SUIVANTE.
<
< CODAGE ASCI DE LA LONGUEUR DU MOT :
<
         ADRI        -NCATG4-NSEM,Y
         STY         CAT1            < SAVE L'2NDEX DU 1ER CARACTERE DE
                                     < CATEGORIE GRAMMATICALE
                                     < DANS LE MOT.
         ADRI        -1,Y            < Y=LONGUEUR DU MOT.
         LR          Y,B             < B=LONGUEUR DU MOT.
         LAI         0               < A=0.
         DV          DIX             < A=CHIFFRE DES DIZAINES ,
                                     < B=CHIFFRES DES UNITES.
         LXI         -2              < X=INDEX DES DIZAINES.
E7:      EQU         $
         ADRI        '30,A           < CONVERSION ASCI DES DIZAINES
                                     < LA 1ERE FOIS ET DES UNITES
                                     < LA 2EME.
         STBY        &AMOT           < MISE EN PLACE LONGUEUR ASCI.
         LR          B,A             < RECUPERATION DES UNITES
                                     < LORS DU 1ER PASSAGE.
         JIX         E7              < VERS LA CONVERSION DES UNITES.
<
<
<        A C C E S   A U   T Y P E   D U   M O T  :
<
<
E8:      EQU         $
         LAD         MUSUEL
         BSR         APRINT          < ENVOI D'UN MESSAGE D'INVITATION
                                     < A DONNER LE TYPE 'USUEL' DU MOT.
         LAD         DEMIN
         SVC         0               < LECTURE DE LA REPONSE.
<
< ANALYSE DE LA REPONSE :
<
         LBY         BUFFER          < A=REPONSE SUR UN CARACTERE.
<
<        REPONSES RECONNUES :
<                    O : LE MOT EST USUEL ,
<                    N : LE MOT N'EST PAS USUEL ,
<                    F : DEMANDE DE RETOUR A 'GE' ,
<                    C : DEMANDE DE RETOUR A CCI.
<
         CPI         "O"
         JE          E9              < LE MOT EST USUEL , RIEN A FAIRE.
         CPI         "N"
         JE          E10             < LE MOT N'EST PAS USUEL.
         CPI         "F"
         JE          GOGE            < UN RETOUR A 'GE' EST DEMANDE.
         CPI         "C"
         JE          GOCCI           < UN RETOUR A CCI EST  DEMANDE.
         JMP         E8              < LA REPONSE EST INCOMPREHENSIBLE ,
                                     < ON RE-INTERROGE.
<
<        C A S   D E S   M O T S   N O N   U S U E L S  :
<
E10:     EQU         $
         LXI         0               < INDEX DU 1ER CARACTERE DU MOT.
         LBY         &AMOT           < A=<K1>.
         LXI         3               < INDEX 1ER CARACTERE SUIVANT
                                     < ':' D'APPEL A UNE PAGE DU
                                     < DICTIONNAIRE.
         STBY        &AKP            < GENERATION DE ':'<K1>.
         STBY        &AKL            < GENERATION DE ':'<K1>.
         LXI         1               < INDEX D'ACCES AU 2EME CARACTERE
                                     < DU MOT.
         LBY         &AMOT           < A=<K2> OU ','.
         CPI         ","             < EST-CE UN MOT D'UNE LETTRE ????
         JNE         E11             < NON , A=<K2>.
         LAI         " "             < OUI : A='SPACE'.
E11:     EQU         $
         LXI         4               < INDEX 2EME CARACTERE SUIVANT
                                     < ':' DANS LES ACCES AUX PAGES
                                     < DU DICTIONNAIRE.
         STBY        &AKP            < GENERATION DE ':'<K1><K2>.
         STBY        &AKL            < GENERATION DE ':'<K1><K2>.
                                     < (<K2> POUVANT ETRE 'SPACE').
<
<
<        C A T E G O R I E S   G R A M M A T I C A L E S  :
<
<
E9:      EQU         $
         LAD         MINDIC
         BSR         APRINT          < ENVOI D'UN MESSAGE D'INVITATION.
         LAD         DEMIN
         SVC         0               < ENTREE DE LA REPONSE DE L'UTI-
                                     < LISATEUR.
         LBY         BUFFER          < ACCES A LA REPONSE.
<
<        REPONSES RECONNUES :
<                    O : ON RENTRE LES CATEGORIES GRAMMATICALES ,
<                    N : ON INITIALISE A L'ETAT VIDE '@@@..@'.
<
         CPI         "N"
         JE          E100            < OK , RIEN A FAIRE , ON PASSE
                                     < A L'ETAT NEUTRE.
         CPI         "O"
         JNE         E9              < REPONSE INCOMPRENSIBLE ...
<
< ENTREE DES CATEGORIES GRAMMATICALES :
<
         LXI         NCG             < X=INDEX DE LA DERNIERE CATEGORIE.
E101:    EQU         $
         LR          X,Y             < SAVE LA CATEGORIE DANS Y.
E103:    EQU         $
         LA          &ANOM           < A=@MESSAGE DU NOM DE LA
                                     < CATEGORIE COURANTE.
         BSR         APRINT          < ENVOI DU NOM DE LA CATEGORIE.
         LAD         DEMIN
         SVC         0               < LECTURE DE LA REPONSE.
         LBY         BUFFER          < ACCES A LA REPONSE.
<
<        REPONSES RECONNUES :
<                    O : LE MOT RECOIT CETTE CATEGORIE ,
<                    N : CATEGORIE IGNOREE POUR CE MOT.
<
         CPI         "N"
         JE          E102            < OK , CATEGORIE IGNOREE.
         LR          Y,X             < RESTAURATION DE LA CATEGORIE
                                     < GRAMMATICALE DANS X AU CAS OU
                                     < LA REPONSE NE SERAIT PAS
                                     < RECONNUE.
         CPI         "O"
         JNE         E103            < REPONSE INCOMPREHENSIBLE.
<
< CAS OU LE MOT RECOIT LA CATEGORIE
< GRAMMATICALE COURANTE :
<
         LAI         0               < CLEAR LE REGISTRE A.
         LR          Y,B             < B=CATEGORIE GRAMMATICALE.
         SCRD        2
         SCLS        2
         XR          A,B             < A=INDEX DU CARACTERE A METTRE
                                     < A JOUR , ET
                                     < B=NUMERO DU BIT-12 A METTRE A 1.
         AD          CAT1
         LR          A,X             < X=INDEX D'ACCES AU CARACTERE
                                     < CONTENANT LA CATEGORIE
                                     < DEMANDEE.
         LBY         &AMOT           < ACCES AU CARACTERE DE CATEGORIE.
         XR          B,X             < X=NUMERO DU BIT -12 A METTRE A 1.
         SBT         12,X            < POSITIONNEMENT DE LA CATEGORIE
                                     < GRAMMATICALE DEMANDEE.
         XR          B,X             < RESTAURE LE NUMERO D'OCTET (X).
         STBY        &AMOT           < MISE A JOUR DU CARACTERE
                                     < DE CATEGORIE.
<
< PASSAGE A LA CATEGORIE PRECDENTE :
<
E102:    EQU         $
         LR          Y,X             < RESTAURE X=CATEGORIE GRAMMATICALE
         JDX         E101            < PRECEDENTE ...
E100:    EQU         $
<
<
<        E N T R E E   D E   L A   V A L E U R   S E M A N T I Q U E  :
<
<
         LAD         MSEM
         BSR         APRINT          < ENVOI D'UN MESSAGE SPECIFIQUE.
         LAD         DEMSEM
         SVC         0               < ENTREE DE LA VALEUR SEMANTIQUE
                                     < SUR 4 CARACTERES MAX.
<
< GENERATION DE LA VALEUR SEMANTIQUE
< DERRIERE LES VALEURS GRAMMATICALES :
<
         LXI         0               < X=INDEX DU BUFFER.
         LY          CAT1
         ADRI        NCATG4,Y        < Y=INDEX DU MOT INITIALISE
                                     < SUR LE 1ER OCTET DE VALEUR
                                     < SEMANTIQUE.
<
< BOUCLE DE RECUPERATION :
<
E220:    EQU         $
         LBY         &ABUF           < A=UN OCTET ENTRE.
         CPI         '04             < EST-CE 'EOT' ???
         JE          E221            < OUI , C'EST FINI.
         CPI         '0D             < EST-CE R/C ???
         JE          E221            < OUI , C'EST FINI.
         XR          X,Y             < SINON PERMUTATION DES INDEX.
         STBY        &AMOT           < L'OCTET DE VALEUR SEMANTIQUE
                                     < EST MIS DANS LE MOT.
         ADRI        1,X             < PROGRESSION DE L'2NDEX MOT.
         XR          X,Y             < RESTAURATION DES INDEX.
         ADRI        1,X             < PROGRESSION DE L'INDEX BUFFER.
         LR          X,A             < POUR LE TEST DE FIN.
         CPI         NSEM            < A-T'ON TESTE 'NSEM' CARACTERES ???
         JL          E220            < NON , ON CONTINUE ....
E221:    EQU         $
<
< SUPPRESSION DE L'ITEM2 PUISQU'ON LE MODIFIE :
<
         LXI         -LTN            < -LONGUEUR DE L'EN-TETE ITEM2.
RZ2:     EQU         $
         STZ         &AI2            < RAZ DE L'EN-TETE DE L'ITEM2.
         JIX         RZ2
<
<
<        P R E P A R A T I O N   D U   D I C T I O N N A I R E  :
<
<
< MISE EN PLACE DE LA LONGUEUR ET DU TYPE DE L'ITEM2 :
<
         LA          NCP
         LXI         LRITEM-LTN
         STA         &AI2            < MISE EN PLACE DE LA LONGUEUR
                                     < DE L'ITEM2 (POUR UN TEXTE).
         LAI         "T"             < TYPE 'TEXTE'.
         LXI         IINDIC-LTN*2
         STBY        &AI2            < L'ITEM2 RECOIT LE TYPE 'TEXTE'.
<
< MISE A 'SPACE' DE L'ITEM2 :
<
         LX          NMP             < X=NBRE DE MOTS A METTRE
                                     < A 'SPACE'.
         LAI         " "
         SBT         2               < A='SPACE''SPACE'.
E12:     EQU         $
         STA         &AI21           < MISE A 'SPACE' DE L'ITEM2.
         JDX         E12
<
< GENERATION DES ARGUMENTS A 'GI' :
<
         LAD         ILDIC           < A=@ILDIC=EMETTEUR.
         LB          AI2
         RBT         0+16            < B=@CORPS(ITEM2)=RECEPTEUR.
         LXI         LILDIC          < X=NBRE DE MOTS A DEPLACER.
         MOVE                        < GENERATION DES ARGUMENTS A
                                     < 'GI' DANS L'ITEM2.
<
<
<        P A S S A G E   A   ' G I '  :
<
<
GOGI:    EQU         $
         LA          NGI             < A=NOM DE L'OVERLAY 'GI'.
<
< PREPARATION DES OVERLAYS :
<
E5:      EQU         $
         STA         0,W             < MISE EN PLACE DU NOM DE L'OVERLAY
                                     < A CHARGER EN TETE DE BRANCHE.
         LAD         DEMSGN          < A=@DEMSGN , ET ON A W=@BRANCH.
         BSR         AOVL            < TENTATIVE DE CHARGEMENT DE
                                     < L'OVERLAY 'GE'/'GI'.
                                     < (EN CAS D'ERREUR , ON RETOURNE A
                                     < CCI).
<
<
<        R E T O U R   A U   C C I  :
<
<
GOCCI:   EQU         $
         LAD         DEMCCI
         SVC         0               < RETOUR A CCI , PUIS RETOUR
                                     < A 'GE' SI !GO.
<
<
<        R E T O U R   A   ' G E '  :
<
<
GOGE:    EQU         $
         LA          NGE             < A=NOM DE L'OVERLAY 'GE'.
         JMP         E5              < VERS LA TENTATIVE DE CHARGEMENT.
<
<
<        V A L I D A T I O N   D E   L ' 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
                                     < L'IMPLANTATION EST MAUVAISE.
         DZS         X10+1           < PAR PURE PROPRETE ....
         EOT         #SIP GEN PROCESSEUR#



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