IDP         "SIP DEFINITION ITEM"
         NLS
XXXXXX:  VAL         1               < ABSENCE DE PROCESSEUR CONCERNE.
XXXXXX:  VAL         "GE"-NMPROC='FF00(XXXXXX < EST-CE "GE" ???
XXXXXX:  VAL         "GI"-NMPROC='FF00(XXXXXX < OU "GI" ???
XXXXXX:  VAL         "GO"-NMPROC='FF00(XXXXXX < OU "GO" ???
XXXXXX:  VAL         "EI"-NMPROC='FF00(XXXXXX < OU "EI" ???
         IF          XXXXXX,XWOR%X,,XWOR%X
         LST
         PAGE
<
<
<        F O R M A T   D ' U N   N O E U D  :
<
<
         DSEC        FNOEUD
LNOEUD:  VAL         80              < NBRE DE MOTS OCCUPES PAR UN
                                     < NOEUD : ON SE LIMITE A 80 MOTS ,
                                     < AFIN QUE LE !SGN N'ALLOUE QU'UN
                                     < SECTEUR DISQUE A LA <VALEUR>.
NOEUD:   EQU         $
XXNOMC:  VAL         6               < NOMBRE DE CARACTERES DE <NOMC>.
XXNOCM:  VAL         2               < NOMBRE D'OCTETS PAR MOT.
NOMC:    DZS         XXNOMC/XXNOCM   < NOM CODE SUR 6 CARACTERES.
XXEOT:   VAL         '04             < CODE DE <EOT>.
XX80:    VAL         '80             < BIT DE PARITE.
         BYTE        XXEOT;"N"+XX80  < <EON> DE FIN DE <NOMC> ET
                                     < INDICAATEUR DE 'TYPE-NOEUD' ,
                                     < SOUS FORME 'N'+'80.
CONCOR:  DZS         XXNOMC/XXNOCM   < PERMET LA GESTION D'UNE CHAINE
                                     < DE CONCORDANCE RELIANT ENTRE
                                     < EUX TOUS LES NOEUDS REFERANCANT
                                     < LE MEME ITEM ; ON TROUVE ICI LE
                                     < <NOMC> DU NOEUD SUIVANT.
INDIC:   BYTE        XXEOT;0         < <EON> & INDICATEURS.
BITEM:   VAL         8               < BITEM=1 : UN ITEM EST ATTACHE
                                     <            A CE NOEUD.
ITEM:    DZS         XXNOMC/XXNOCM   < <NOMC> DE L'ITEM ATTACHE A
                                     < CE NOEUD.
         BYTE        XXEOT;0         < <EON>.
FAMILY:  BYTE        0;0             < OCTET0=OCCUPATION DES 8 PERES
                                     <        POSSIBLES DE CE NOEUD ,
                                     < OCTET1=OCCUPATION DES 8 FILS
                                     <        POSSIBLES DE CE NOEUD.
XXPF:    VAL         8               < NOMBRE DE PERES/FILS POSSIBLES.
XWOR%1:  VAL         XXNOMC/XXNOCM*XXPF
PERES:   DZS         XWOR%1          < LISTE DES 8 <NOMC> DES PERES
                                     < POSSIBLES DE CE NOEUD ;
                                     < ATTENTION : POUR CHAQUE <NOMC> ,
                                     < IL MANQUE L'<EON>.
FILS:    DZS         XWOR%1          < LISTE DES 8 <NOMC> DES FILS
                                     < POSSIBLES DE CE NOEUD ;
                                     < ATTENTION : POUR CHAQUE <NOMC> ,
                                     < IL MANQUE L'<EON>.
LNOM:    VAL         NOEUD-$+LNOEUD*XXNOCM
                                     < NOMBRE MAX DE CARACTERES DE <NOM>.
NOM:     DZS         LNOM/XXNOCM     < <NOM> REEL DU NOEUD.
TOPN:    EQU         $-1             < SOMMET DU NOEUD.
<
<
<        R E L A I S   D ' A C C E S   A U   N O E U D  :
<
<
XNOMC:   VAL         NOMC-NOEUD      < DEPLACEMENT DE <NOMC> DANS NOEUD
XNOM:    VAL         NOM-NOEUD       < DEPLACEMENT DE <NOM> DANS NOEUD.
ANOMC:   WORD        NOMC,X          < RELAI D'ACCES A <NOMC>.
ANOM:    WORD        NOM,X           < RELAI D'ACCES A <NOM>.
LTN:     VAL         $-NOEUD         < LONGUEUR DE LA DSEC.
         PAGE
<
<
<        F O R M A T   D ' U N   I T E M  :
<
<
         DSEC        FITEM
<
<
<        E N - T E T E   D E   L ' I T E M  :
<
<
LHITEM:  VAL         LNOEUD          < NBRE DE MOTS OCCUPES PAR
                                     < L'EN-TETE D'UN ITEM.
HITEM:   EQU         $               < EN-TETE D'UN ITEM.
NOMCI:   DZS         XXNOMC/XXNOCM   < NOM CODE SUR 6 CARACTERES.
         BYTE        XXEOT;"I"+XX80  < <EON> DE FIN DE NOM , ET
                                     < INDICATEURS TYPE-ITEM : 'I'+'80.
LRITEM:  WORD        0               < LONGUEUR REELLE DE L'ITEM EN
                                     < OCTETS (0 INITIALEMENT).
IINDIC:  WORD        0               < INDICATEURS DIVERS ET VARIES.
                                     < OCTET0=NATURE DE L'ITEM (='00 ,
                                     < SI L'ITEM EST VIDE) :
                                     < OCTET0='T' POUR 'TYPE-TEXTE'.
XWOR%3:  MOT         FAMILY-NOEUD
FAMILI:  EQU         HITEM+XWOR%3    < OCCUPATION DES 16 PERES POSSIBLES
                                     < D'UN ITEM.
XWOR%3:  MOT         PERES-NOEUD
PERIS:   EQU         HITEM+XWOR%3    < LISTE DES 16 PERES POSSIBLES
                                     < D'UN ITEM.
NOMI:    EQU         HITEM+XNOM      < NOM DE L'ITEM.
XWOR%3:  MOT         TOPN-NOEUD
TOPI:    EQU         HITEM+XWOR%3    < TOP DE L'EN-TETE DE L'ITEM.
         DZS         TOPI-IINDIC     < $<--TOPI+1.
<
<
<        R E L A I S   D ' A C C E S  :
<
<
ANOMCI:  WORD        NOMCI,X
ANOMI:   WORD        NOMI,X
<
<
<        C O R P S   D E   L ' I T E M  :
<
<
NBCAR:   VAL         74              < NBRE DE CARACTERES/LIGNE.
NBLIG:   VAL         35              < NBRE DE LIGNES/PAGE.
LITEM:   VAL         NBCAR*NBLIG     < NBRE DE CARACTERES MAX OCCUPES
                                     < PAR LE CORPS DE L'ITEM.
CITEM:   DZS         LITEM/XXNOCM    < CORPS DE L'ITEM PROPREMENT DIT.
XWORK2:  VAL         CITEM-HITEM
LTNI:    VAL         $-HITEM         < LONGUEUR TOTALE MAXIMALE EN
                                     < MOTS DE L'ITEM (EN-TETE+CORPS).
         PROG
PILE:    MOT         'FF0-6          < ADRESSE DE LA PILE DE SMC
         IF          XXXXXX,,XWOR%,
IINDIC  @                            < ON REND 'IINDIC' ABSOLU ...
XWOR%9:  VAL         6='F700         < ACCES A L'ETAT DE 'IINDIC'...
XWOR%9:  VAL         XWOR%9?'0043='F500+'0040='F600(0+6='F701
LRITEM  @                            < AINSI QUE 'LRITEM'...
XWOR%9:  VAL         6='F700         < ACCES A L'ETAT DE 'LRITEM'...
XWOR%9:  VAL         XWOR%9?'0043='F500+'0040='F600(0+6='F701
XWOR%:   VAL         0
         NLS
XWOR%X:  VAL         0
         IF          XXXXXX,,XWOR%X,
         LST
<
<
<        C O N S T A N T E S   D E   L ' I T E M :
<
<
NBLIG:   VAL         35              < NOMBRE DE LIGNES/ECRAN
NBCAR:   VAL         74              < NOMBRE DE CARACTERES/LIGNES
LTN:     VAL         '52             < LONGUEUR MOT DE L'EN-TETE
LTNI:    VAL         NBCAR*NBLIG/2+LTN < LONGUEUR TOTALE DE L'ITEM
PILE:    VAL         'FF0-6          < ADRESSE DE LA PILE DE SMC
LRITEM:  VAL         4               < EMPLACEMENT DE LA LONGUEUR DU
                                     < CORPS DE L'ITEM
IINDIC:  VAL         5               < INDICATEUR DU TYPE DE L'ITEM
                                     < (LE TYPE ATTENDU EST 'T')
LNOM:    VAL         '26             < NOMBRE MAX DE CARACTERES D'UN NOM
                                     < D'ITEM.
         NLS
XWOR%X:  VAL         0
         LST



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.