NMPROC: VAL " C" < NOM DU PROCESSEUR.
IDP "SEMANTIQUE C - RELEASE 01/06/1979"
IDP "JOHN F. COLONNA"
EOT #SIP DEF PROCESSEUR#
PROG
WORD SEMANT < ADRESSE DE LANCEMENT.
WORD 0
PSEM: EQU $ < A NOTER : P='12 !!!!
LRP L
BR -2,L < ENTREE DANS LE PROCESSEUR.
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 :
<
<
NCATG: VAL 32 < NBRE MAX DE CATEGORIES
< GRAMMATICALES.
LMOT: VAL 40 < NBRE MAX DE CARACTERES D'UN MOT.
NCATG4: VAL NCATG+3/4 < NBRE D'OCTETS NECESSAIRES
< AUX CATEGORIES GRAMMATICALES.
NSEM: VAL 4 < NBRE D'OCTETS DE VALEUR
< SEMANTIQUE DU MOT.
<
<
< C O N S T A N T E S L E X I C O G R A P H I Q U E S :
<
<
LPHR: VAL 112 < NBRE DE CARACTERES MAX
< D'UNE PHRASE.
< (=LBUFESC DANS DCTESC...)
<
<
< F O R M A T D E S C R I P T E U R M O T :
<
<
DESCI: VAL 0 < INDEX DU 1ER CARACTERE DU MOT ;
< DESCI=-1 EN FIN DE PHRASE.
DESCL: VAL 1 < LONGUEUR OCTETS DU MOT.
< DESCL=NBRE DE MOTS DE LA
< PHRASE EN FIN DE PHRASE.
DESCD: VAL 2 < NOM DU DICTIONNAIRE D'APPARTE-
< NANCE ; DESCL=0 SI LE MOT
< EST INCONNU.
DESCS: VAL 3 < OCTET1=SEPARATEUR PRECEDANT ,
< OCTET0=INDICATEUR EVENTUEL DE
< DE DEBUT DE GROUPE.
DESCF: VAL 4 < OCTET1=CATEGORIE GRAMMATICALE
< DANS SON CONTEXTE ;
< OCTET0=NIVEAU DE RECURSIVITE MOT.
DESCV: VAL 5 < VALEUR SEMANTIQUE DU MOT.
DESCC: VAL NSEM+1/2+DESCV < CATEGORIES GRAMMATICALES DU MOT.
LDESC: VAL NCATG4+3/4+DESCC < LONGUEUR D'UN DESCRIPTEUR MOT.
<
<
< D E S C R I P T E U R
< P R O P O S I T I O N R E L A T I V E :
<
<
< FORMAT :
< <SUJET>(<OPERATEUR>(<OBJET>)).
<
<
SUJET: VAL 0 < SUJET> DE LA PROPOSITION.
OPERA: VAL 2 < <OPERATEUR> DE LA PROPOSITION.
OBJET: VAL 4 < <OBJET> DE LA PROPOSITION.
LREL: VAL 10 < LONGUEUR DU DESCRIPTEUR.
<
<
< C A T E G O R I E S L E X I C A L E S :
<
<
SEP1: VAL 4 < SEPARATEUR DU TYPE 'SPACE'.
SEP2: VAL 3 < SEPARATEURS : ',',';',....
SEP3: VAL 2 < SEPARATEUR TYPE 'APOSTROPHE'.
SEP4: VAL 1 < SEPARATEUR TYPE 'PARENTHESE'.
FINF: VAL 0 < FIN DE PHRASE : 'EOT'/R-C.
CAR: VAL 8 < FRONTIERE ENTRE LES CARACTERES A
< VALEUR 'LETTRES' ET LES CARACTERES
< A VALEUR 'SEPARATEURS'.
LETR: VAL 8 < CARACTERES DE 'A' A 'Z'.
CHIF: VAL 9 < CARACTERES DE '0' A '9'.
CARS: VAL 'A < CARACTERES SPECIAUX : '-','+',....
IGNOR: VAL 'B < CARACTERES NON RECONNUS.
<
<
< 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 < NOM.
VERBE: VAL 2 < VERBE.
ADJECT: VAL 3 < ADJECTIF.
ADVERB: VAL 4 < ADVERBE.
PROPER: VAL 5 < PRONOM PERSONNEL.
PRODEM: VAL 6 < PRONOM DEMONSTRATIF.
INTERJ: VAL 7 < INTERJECTION , 'OUI' , 'NON'.
PREPOS: VAL 8 < PREPOSITION.
CONJ: VAL 9 < CONJONCTION.
ARTICL: VAL 10 < ARTICLE.
PROREL: VAL 11 < PRONOM RELATIF.
<
<
< G R O U P E S S Y N T A G M A T I Q U E S :
<
<
PHRASE: VAL NCATG+1 < PHRASE.
TGV: VAL NCATG+2 < GROUPE VERBAL.
TGN: VAL NCATG+3 < GROUPE NOMINAL.
TREL: VAL NCATG+4 < PROPOSITION RELATIVE.
TINT: VAL NCATG+5 < INTERJECTION.
TCONJ: VAL NCATG+6 < CONJONCTION DE COORDINATION.
<
<
< V A L E U R S S E M A N T I Q U E S :
<
<
< FONCTION :
< CETTE LISTE DONNE LES VALEURS
< POSSIBLES DE L'OCTET0 DU DESCV
< D'UN MOT.
<
<
TGI: VAL "!" < VALEUR SEMANTIQUE D'APPEL 'GI'.
TGR: VAL "&" < VALEUR SEMANTIQUE GRAPHIQUE.
PAGE
<
<
< M E M O I R E L I B R E :
<
<
FREE: VAL '1000 < ADRESSE DU 1ER MOT LIBRE
< DES 2 DERNIERS K DE LA MEMOIRE.
<
<
< L O C A L :
<
<
LOCAL
LOC: EQU $
<
< M E S S A G E S :
<
MOVL: BYTE 10;'6D
ASCI "OVERFLOW! "
MINIT: BYTE 16;'6D
ASCI "INITIALISATION? "
MNUM: BYTE 8;'6D
ASCI "NUMERO= "
BUFFER: WORD 0 < BUFFER D'ENTREE DES REPONSES ,
< ET DU NUMERO DE PHRASE ('SE').
<
< R E L A I S D E T A B L E S :
<
< PHRASE A ANALYSER :
<
PHR: VAL FREE < PHRASE A ANALYSER.
APHR: WORD PHR+'8000 < RELAI INDEXE VERS LA PHRASE.
FREE: VAL LPHR/2+FREE+1
<
< ZONE DES ARGUMENTS :
<
LDUM: VAL 32 < LONGUEUR DE LA ZONE ARGUMENTS.
DUMY: VAL FREE < ZONE DE TRANSMISSION ARGUMENTS
< ENTRE SYNTAXE ET SEMANTIQUE.
PROP1: VAL 0 < NUMERO DU MOT CONTENANT L'ADRESSE
< REELLE DE LA ZONE 'PROPOS'.
PROPP: VAL 1 < NUMERO DU MOT CONTENANT LA
< L'ADRESSE DE LA LISTE DES
< PROPOSITIONS DE LA PHRASE.
NPROP: VAL 2 < NBRE DE PROPOSITIONS RECONNUES.
CONDRT: VAL 3 < CONDITIONS DE RETOUR DE L'ANALYSE
< SYNTAXIQUE.
FREE: VAL FREE+LDUM
ADUMY: WORD DUMY+'8000 < RELAI INDEXE VERS LA ZONE DUMY.
<
< ZONE DES DESCRIPTEURS DE PROPOSITIONS :
<
DPHR: VAL FREE < ZONE DES DESCRIPTEURS LEXICO-
< GRAPHIQUES DES MOTS DE LA PHRASE.
FREE: VAL LDESC*LPHR/2+FREE
ADPHR: WORD DPHR < ADRESSE DU 1ER DESCRIPTEUR.
PROPOS: VAL FREE < ZONE DES DESCRIPTEURS DES
< PROPOSITIONS , MAIS
< A T T E N T I O N : CETTE ZONE
< EST EN FAIT EN RECOUVREMENT
< AVEC LA ZONE :DPHR'.
FREE: VAL LPHR/2+FREE
APROPO: WORD PROPOS < ADRESSE DU 1ER DESCRIPTEUR
< DE PROPOSITIONS.
APR: WORD PROPOS < ADRESSE COURANTE DES DESCRIPTEURS
< DE PROPOSITIONS.
<
< RELAIS COURANTS :
<
AI2H: WORD ZERO+PILE-LTNI-LTNI
< @EN-TETE DE L'ITEM2.
AI2: WORD ZERO+PILE-LTNI-LTNI+LTN,X
< RELAI INDEX CORPS(ITEM2).
AI1: WORD ZERO+PILE-LTNI+LTN,X
< RELAI VERS LE CORPS DE L'ITEM1.
ABIBS: WORD BIBS,X < RELAI D'ACCES VERS LE NOM DE
< LA BIBLIOTHEQUE SEMANTIQUE
< GRAPHIQUE.
<
< D E M A N D E S A C M S 4 :
<
DEMOUT: WORD '0202 < SORTIE MESSAGE.
WORD 0 < @OCTET DU MESSAGE.
WORD 0 < LONGUEUR-OCTET DU MESSAGE.
DEMIN: WORD '0101 < ENTREE AVEC ECHO SUR NSPIN.
WORD BUFFER-ZERO*2
WORD 1 < 1 CARACTERE.
DEMIT: WORD '0602 < CHARGEMENT DES PAGES DU
< DICTIONNAIRE DANS L'ITEM2.
WORD PILE-LTNI-LTNI*2
WORD 2*LTNI
WORD -1
DEMSGN: WORD '0402 < CHARGEMENT DES OVERLAYS ,
< INITIALISEE EN GENERATION
< DE LA BRANCHE SEMANTIQUE.
WORD BRANCH-ZERO*2
WORD ZERO-BRANCH+PILE-LTNI-LTNI*2
WORD -1
DEMCCI: WORD '0001 < APPEL DU CCI.
DEMMEM: WORD '0004 < DEMANDE D'ALLOCATION MEMOIRE.
WORD 0
WORD '2000 < DEMANDE DE RETOUR A 4K MOTS.
<
< P I L E S D E T R A V A I L :
<
APILES: WORD PILE < PILE DE SODOME.
PILE: VAL FREE+1
APILE: WORD PILE-1 < PILE DE TRAVAIL DE L'ANALYSE.
<
< A D R E S S E S D E S R O U T I N E S :
<
APRINT: WORD PRINT < EMISSION DES MESSAGES.
AOVL: WORD OVL < CHARGEMENT DES OVERLAYS.
AINIT: WORD INIT < INITIALISATION DE L'ITEM1.
AGEN1: WORD ST1 < GENERATION DE L'ITEM SEMANTIQUE
< DANS ITEM1.
ATEST1: WORD TEST1 < COMPARAISON DE LHITEM1
< (ITEM SEMANTIQUE) AVEC LA
< PHRASE QUE L'ON ANALYSE.
AST1: WORD 0 < @ST1 POUR LES APPELS PAR
< 'GE' ET 'SE' ,ET
< ET @TEST1 POUR LES APPELS
< PAR 'EI' / 'GO'.
AST2: WORD ST2 < STORE CARACTERE DANS ITEM2.
AE10: WORD E10 < SORTIE EN ERREUR POUR NON
< COINCIDENCE DE LA PHRASE
< ANALYSEE ET DE L'ITEM1.
<
< C O N S T A N T E S :
<
X1: WORD 0 < INDEX COURANT DE L'ITEM1.
X2: WORD 0 < RELAI COURANT DE L'ITEM2.
NCP: WORD NBCAR*NBLIG < NBRE DE CARACTERES PAR PAGE.
NMP: WORD NBCAR*NBLIG/2 < NBRE DE MOTS/PAGE.
BIBS: ASCI " ;SBIB$ " < NOM DE LA BIBLIOTHEQUE SEMANTIQUE
LBIBS: VAL 8 < NBRE DE CARACTERES DE BIBS.
SPACE: ASCI " "
NCALL: WORD $+1,X;"GE" < MODCAL=0.
ASCI "EI" < MODCAL=1.
NGE: ASCI "GE" < NOM DE L'OVERLAY 'GE'.
< ET MODCAL=2 !!!
NGI: ASCI "GI" < NOM DE L'OVERLAY 'GI'.
NDIC: ASCI ": 3" < NOM DE LA PGE DES MOTS USUELS.
BYTE '40;"0"
BYTE '04;"T"
ATYP: WORD $+1,X < TYPE A DONNER A ITEM1 ,
< EN FONCTION DE MODCAL.
BYTE "T";0;"R";0
PAGE
<
<
< E M I S S I O N D ' U N M E S S A G E :
<
<
< ARGUMENT :
< A=@MOT D'UN MESSAGE A EMETTRE , DONT
< LE 1ER OCTET EN CONTIENT LA LONGUEUR.
<
<
PROG
PRINT: EQU $
PSR C < SAVE LA LBSE C.
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'ON MET DANS DEMOUT.
LAD DEMOUT
SVC 0 < EMISSION DU MESSAGE.
PLR C < RESTAURE LA BASE C.
RSR
PAGE
<
<
< I N I T I A L I S A T I O N I T E M 1 :
<
<
INIT: EQU $
LX NMP < X=NBRE DE MOTS DE L'ITEM1.
DC AI1 < POUR UNE INDEXATION /A 1.
LA SPACE < A='SPACE''SPACE'.
E100: EQU $
STA &AI1 < REMISE DE L'ITEM1 A 'SPACE'.
JDX E100
IC AI1 < RESTAURATION DE AI1.
RSR
PAGE
<
<
< C O M P A R A I S O N I T E M 1
< E T P H R A S E A N A L Y S E E :
<
<
< ARGUMENT :
< A=OCTET SEMANTIQUE COURANTE
< DE LA PHRASE ANALYSEE ,
<
<
< RESULTAT :
< X<--(X)+1 ,
< ET RETOUR EN SEQUENCE SI L'OCTET
< ARGUMENT COINCIDE AVEC L'OCTET
< COURANT DE L'ITEM1 ; SINON , ON
< FAIT PROGRESSER 'CDRET' JUSQU'A
< CONCURENCE DE 'DPH' , ET ALORS IL
< Y A SORTIE DE ' C'.
<
<
PPH: VAL 0 < NUMERO DU MOT DE L'ITEM1 CON-
< TENANT L'INDEX DU 1ER CARACTERE
< DE LA PHRASE 0.
DPH: VAL 7 < IDEM POUR LA DERNIERE PHRASE.
<
<
TEST1: EQU $
PSR X
LX X1 < X=INDEX COURANT DE L'ITEM1.
IC X1 < PROGRESSION DE L'INDEX ITEM1.
ANDI 'FF < A=OCTET SEMANTIQUE ARGUMENT.
CPBY &AI1 < L'OCTET SEMANTIQUE COURANT
< COINCIDE-T'IL AVEC L'OCTET
< COURANT DE L'ITEM1 'R' ????
PLR X
JNE E201 < NON , RETOUR EN ERREUR.
RSR < OUI , RETOUR EN SEQUENCE.
<
< CAS OU LA PHRASE ANALYSEE NE COINCIDE
< PAS SEMANTIQUEMENT PARLANT AVEC L'ITEM1 :
<
E201: EQU $
ADRI -1,K < RATTRAPAGE DU RSR.
LAI BRANCH-ZERO
LR A,W < W=@BRANCH.
E202: EQU $ < ENTRY POUR SYNTAXE INCORRECTE.
IC CDRET,W < PROGRESSION DE CDRET.
LA CDRET,W < RECUPERATION DU CDRET POUR
< VALIDATION.
CPI DPH < ESTON SUR LA DERNIERE PHRASE ???
JNE E311 < NON , ON CONTINUE ...
BR AE10 < ET OUI , RETOUR AVEC CDRET=7 !!!
<
< PASSAGE A LA PHRASE SUIVANTE :
<
E311: EQU $
LR A,X < X=CDRET COURANT.
<
< I N I T I A L I S A T I O N ' C ' S O U S ' E I ' :
<
E312: EQU $
LA &AI1 < ACCES A L'INDEX DE LA PHRASE
< DE NUMERO (X).
JAL E202 < PHRASE INEXISTANTE : PASSAGE
< A LA SUIVANTE.
STA X1 < OK , SI ELLE EXISTE , SON INDEX
< DE 1ER CARACTERE DEVIENT
< L'INDEX COURANT DE L'ITEM1.
LB ATEST1 < A PRIORI , ON RESTAURE @TEST1.
JMP E200 < VERS LA RECONNAISSANCE
< SEMANTIQUE.
PAGE
<
<
< S T O R E D A N S L ' I T E M 1 &
< S T O R E D A N S L ' I T E M 2 :
<
<
< ARGUMENT :
< A=CARACTERE A STORER DANS L'ITEM1(X)/ITEM2(X).
<
<
< RESULTAT :
< X<--(X)+1.
<
<
ST1: EQU $ < STORE DANS L'ITEM1.
PSR X
LX X1 < X=INDEX COURANT DE L'ITEM1.
STBY &AI1 < STORE DANS L'ITEM1.
IC X1 < PROGRESSION DE L'INDEX ITEM1.
E102: EQU $
<
< VALIDATION DE L'INDEX ITEM1/ITEM2 :
<
LR X,A < A=INDEX UTILISE POUR ITEM1/ITEM2.
CP NCP < VALIDATION.
JL E360 < OK.
ADRI -2,K < RATTRAPAGE DU PSR X ET DU RSR.
LAD MOVL
BSR APRINT < ENVOI D'UN MESSAGE D'ERREUR.
BR AE10 < VERS LA SORTIE ....
E360: EQU $
PLR X
RSR
ST2: EQU $ < STORE DANS L'ITEM2.
PSR X
LX X2 < X=INDEX COURANT DE L'ITEM2.
STBY &AI2 < STORE DANS L'ITEM2.
IC X2 < PROGRESSION INDEX ITEM2.
JMP E102 < VERS LA SORTIE.
PAGE
<
<
< E N T R Y S E M A N T I Q U E :
<
<
< RESULTAT DE LA PASSE SEMANTIQUE :
< 1- APPEL PAR 'GE' : ITEM1 CONTIENT LES CHAINES
< SEMANTIQUES '&' , ET ITEM2 LES
< CHAINES '!' ,
< 2- APPEL PAR 'EI'/'GO' : NE FAIT QUE POSITIONNER
< CDRET EN FONCTION DE
< COMPRAISON DE LA VALEUR
< SEMANTIQUE DE LA PHRASE
< LUE PRECEDEMMENT , ET
< DE CELLES QUI SONT STOCKEES
< DANS L'ITEM1 ,
< 3- APPEL PAR 'SE' : CONSTRUIT DANS L'ITEM1
< UNE LISTE DE PHRASES ; A CHAQUE
< APPEL DE TYPE MISE A JOUR ,
< ON RAJOUTE LA VALEUR SEMANTIQUE
< DE LA PHRASE PRECEDENTE A
< LA LISTE PRE-EXISTANTE ,
< ET DONT LE FORMAT EST DONNE
< EN 'E301'.
<
<
WORD LOC+'80 < VALEUR INITIALE DE LA BASE L.
WORD BRANCH < VALEUR INITIALE DE LA BASE W.
SEMANT: EQU $
LRP K
ADRI -1,K
PLR L,W < INITIALISATION DES BASES L & W.
LA APILE
LR A,K < INITIALISATION DE K SUR LA
< PILE DE L'ANALYSE.
LAI 6
STBY DEMSGN < DEMSGN EST MISE EN MODE DE
< CHARGEMENT SOUS :SYS.
LX MODCAL,W < X=NATURE DE L'APPEL.
LA &NCALL < A=BRANCHE DE RETOUR.
STA 0,W < LE NOM DE LA BRANCHE SUIVANTE
< EST FONCTION DE MODCAL.
STZ CDRET,W < CDRET=0 A PRIORI.
<
< RECUPERATION DES ARGUMENTS TRANSMIS
< PAR L'ANALYSE SYNTAXIQUE :
<
LXI CONDRT
CPZ &ADUMY < COMMENT CELA S'EST-IL PASSE ???
JE E310 < BIEN , ON PEUT Y ALLER ...
<
< CAS DES SYNTAXES INCORRECTES :
<
LAI DPH
STA CDRET,W < DPH DEVIENT LE CDRET.
BR AE10 < VERS LA SORTIE ....
<
< CAS D'UNE SYNTAXE CORRECTE :
<
E310: EQU $
LXI PROP1
LA &ADUMY < RECUPERATION DE L'ADRESSE DU
< 1ER DESCRIPTEUR DE PROPOSITION.
STA APROPO
STA APR
<
< D I S C R I M I N A T I O N D E S A P P E L S :
<
LA MODCAL,W < A=NATURE DE L'APPEL.
CPI 1 < EST-CE UN APPEL PAR 'EI'/'GO' ????
LXI PPH < TEST SEMANTIQUE A PRIORI :
< X=NUMERO DE LA 1ERE PHRASE.
JE E312 < VERS L'INITIALISATION DE ' C'
< SOUS 'EI'/'GO'.
CPI 2 < EST-CE UN APPEL PAR 'SE' ???
JNE E300 < NON ('GE').
<
< A P P E L P A R ' S E ' :
<
< FONCTION :
< ON VA GENERER UN ITEM (ITEM1) ,
< DE TYPE 'R' . SON FORMAT EST LE
< SUIVANT :
< MOT0=INDEX DU 1ER CARACTERE DE LA 1ERE PHRASE ,
< (...)
< MOT7=INDEX DU 1ER CARACTERE DE LA 7EME PHRASE ,
< MOT8=INDEX COURANT DE L'ITEM ,
< MOTS SUIVANTS=CHAINES SEMANTIQUES FORMANT
< LE SENS DES PHRASES.
<
E301: EQU $
LAD MINIT
BSR APRINT < ENVOI D'UN MESSAGE.
LAD DEMIN
SVC 0 < LECTURE DE LA REPONSE.
LBY BUFFER < A=REPONSE SUR 1 CARACTERE.
CPI "O" < S'AGIT-IL D'UNE INITIALISATION ???
JE E302 < OUI , INITIALISATION DE L'ITEM1.
CPI "N" < EST-CE LA MISE A JOUR DE ITEM1 ???
JNE E301 < NON , ON REPOSE LA QUESTION.
<
< CAS D'UNE MISE A JOUR DE L'ITEM1 :
<
LXI DPH+1
LA &AI1 < RECUPERATION DE L'INDEX COURANT
STA X1 < QUI DEVIENT L'INDEX COURANT
< DE L'ITEM1.
E303: EQU $
LAD MNUM
BSR APRINT
LAD DEMIN
SVC 0 < ENTREE DU NUMERO DE LA PHRASE
< QUE L'ON DESIRE INSERER.
LBY BUFFER < A=NUMERO ASCI PRESUME.
ADRI -'30,A < CONVERSION BINAIRE.
JAL E303 < NUMERO ERRONE.
CPI DPH < VALIDATION SUPERIEURE ???
JGE E303 < ERREUR , ON RECOMMENCE.
LR A,X < OK , X=NUMERO DE 0 A DPH-1.
LA X1 < RECUPERATION DE L'INDEX COURANT
< DE L'ITEM1 QUI DEVIENT L'INDEX DU
< 1ER CARACTERE DE LA PHRASE
< DE NUMERO (X).
STA &AI1 < ET SAVE CET INDEX 1ER CARACTERE.
LB AGEN1 < AFIN DE FAIRE UNE GENERATION
< DE L'ITEM SEMANTIQUE ITEM1.
JMP E370 < VERS LA GENERATION DE LA CHAINE
< SEMANTIQUE DE LA PHRASE (X).
<
< CAS DE L'INITIALISATION DE L'ITEM1 :
<
E302: EQU $
BSR AINIT < INITIALISATION DE L'ITEM1.
LAI -1 < AFIN DE METTRE LES INDEX DE 1)R
< CARACTERE DE CHAQUE PHRASE A -1.
LXI DPH
E305: EQU $
STA &AI1 < INITIALISATION DES INDEX
< DES PHRASES DE DPH A 1.
JDX E305
STA &AI1 < CAS DE LA PHRASE PPH (0).
LXI DPH+1
LAI DPH+1*2+2
STA &AI1 < INITIALISATION DE L'INDEX DU
< 1ER CARACTERE LIBRE DE ITEM1.
STA X1 < INITIALISATION DE L'INDEX
< COURANT DE L'ITEM1.
JMP E303 < VERS LA DEMANDE DU NUMERO DE
< DE LA PHRASE COURANTE.
<
< A P P E L P A R ' G E ' :
<
E300: EQU $
LB AGEN1 < ON VA FAIRE UNE GENERATION DE
< L'ITEM SEMANTIQUE ITEM1.
BSR AINIT < INITIALISATION DE L'ITEM1.
<
< A P P E L P A R ' S E ' :
<
E370: EQU $ < CAS DES APPELS PAR 'SE'.
<
< MISE EN PLACE DU TYPE DE L'ITEM1 :
<
LX MODCAL,W < X=NATURE DE L'APPEL.
LBY &ATYP < A=TYPE A DONNER A ITEM1.
LXI IINDIC-LTN*2
STBY &AI1
E200: EQU $
STB AST1 < MISE EN PLACE DE LA ROUTINE
< DE GENERATION OU DE TEST DE ITEM1
<
< MISE EN PLACE DE L'APPEL DE LA BIBLIOTHEQUE SEMANTIQUE :
<
LXI LBIBS-1
E101: EQU $
LBY &ABIBS < RECUPEARTION DU NOM DE LA
< BIBLIOTHEQUE SEMANTIQUE.
BSR AST1 < QUE L'ON TRANSFERE EN TETE
< DE L'ITEM1.
JDX E101
<
<
< A N A L Y S E S E M A N T I Q U E :
<
<
SEMAN: EQU $
LXI PROPP
LY &ADUMY < Y=@@1ER DESCRIPTEUR DE
< PROPOSITIONS.
LXI 0 < INITIALISATION DE L'INDEX ITEM2.
<
< BOUCLE DE RECUPERATION DES PROPOSITIONS :
<
E20: EQU $
LR Y,W < W=@@DESCRIPTEUR PROPOSITION
< COURANTE.
LA 0,W < A=@DESCRIPTEUR PROPOSITION
< COURANTE.
JAL E21 < ET BIEN NON , FIN DE PHRASE ...
LR A,W < W=@NIVEAU DE RECURSIVITE DE
< LA PROPOSITION COURANTE.
LA 0,W < A=NIVEAU DE RECURSIVITE.
CPI 1
JG E22 < SEULES SONT PRISES EN COMPTE
< LES PROPOSITIONS DE NIVEAU 0 & 1.
<
< BOUCLE DE PARCOURS D'UNE PROPOSITION :
<
E25: EQU $
ADRI 1,W < PASSAGE MOT SUIVANT.
LA 0,W < A=@DESCRIPTEUR DU MOT COURANT
< DE LA PROPOSITION COURANTE.
JAE E22 < ET NON , FIN DE PROPOSITION ...
LR A,C < SI OUI : C=@DESCRIPTEUR DU MOT
< COURANT.
CPZ DESCD,C < EST-CE UN MOT CONNU ???
JNE E23 < OUI.
<
< CAS DES MOTS INCONNUS : ON LES TRANSFERE DANS L'ITEM2
< AVEC UN ';' EN QUEUE (CF. 'EOT' DE 'GI').
<
IC DESCD,C < ON MET DESCD A 1 AFIN QUE LE
< MOT SOIT CONSIDERE COMME CONNU
< A PARTIR DE MAINTENANT.
PSR Y < SAVE Y.
LY DESCI,C < Y=INDEX INITIAL DU MOT INCONNU.
LB DESCL,C < B=LONGUEUR DU MOT INCONNU.
E24: EQU $
XR X,Y
LBY &APHR < RECUPERATION D'UN CRACTERE
< DU MOT.
ADRI 1,X < PROGRESSION INDEX MOT.
XR X,Y < RETABLISSEMENT DES INDEX.
BSR AST2 < ET RANGEMENT DANS L'ITEM2.
ADRI -1,B < DECOMPTE DES CARACTERES.
CPZR B < EST-CE FINI ???
JNE E24 < NON , ON CONTINUE.
LAI ";" < SI C'EST FINI , ON RAJOUTE UN
BSR AST2 < ';' EN FIN DU MOT INCONNU.
PLR Y < RESTAURE Y.
JMP E25 < VERS LE PASSAGE AU MOT SUIVANT.
<
< CAS DES MOTS CONNUS :
<
E23: EQU $
LBY DESCV,C < RECUPERATION OCTET0 DE LA
< VALEUR SEMANTIQUE.
CPI TGI < EST-CE UN APPEL 'GI' ???
JE CGI < OUI.
CPI TGR < EST-CE UN APPEL 'GRAPHIQUE' ???
JE CGR < OUI.
JMP E25 < SI LA VALEUR N'EST PAS RECONNUE ,
< ON L'IGNORE ET ON PASSE AU MOT
< SUIVANT.
<
< A P P E L ' G I ' :
<
CGI: EQU $
LA DESCV,C < ACCES OCTET1 DE LA VALEUR.
ANDI 'FF < ACCES A L'OCTET1 DE LA
< VALEUR SEMANTIQUE.
CPI " " < EST-CE 'SPACE' ???
JE E25 < OUI , PASSAGE AU MOT SUIVANT.
BSR AST2 < SINON , ON RANGE L'OCTET1 DE LA
< VALEUR SEMANTIQUE DANS L'ITEM2.
LBY DESCV+1,C < ACCES A L'OCTET2 DE LA VALEUR.
CPI " " < EST-CE 'SPACE' ???
JE E25 < OUI , ON PASSE AU MOT SUIVANT.
BSR AST2 < NON , ON RANGE L'OCTET2 DANS
< L'ITEM2.
JMP E25 < PUIS , ON PASSE AU MOT SUIVANT.
<
< A P P E L ' G R A P H I Q U E ' :
<
CGR: EQU $
BSR AST1 < L'OCTET0 DE LA VALEUR EST
< RANGE DANS L'ITEM1.
LA DESCV,C
BSR AST1 < ENVOI DE L'OCTET1 DANS ITEM1.
LBY DESCV+1,C
BSR AST1 < ENVOI DE L'OCTET2 DANS ITEM1.
LA DESCV+1,C
BSR AST1 < ENVOI DE L'OCTET3 DANS ITEM1.
LAI ";"
BSR AST1 < ENVOI D'UN ';' A PRIORI AU
< BOUT DE LA VALEUR SEMANTIQUE
< (POUR FIN DE NOM DE S OUS-
< -PROGRAMMAE GRAPHIQUE , OU
< COMME ELEMENT NEUTRE).
JMP E25 < PUIS ACCES AU MOT SUIVANT.
<
< FIN D'UNE PROPOSITION :
<
E22: EQU $
ADRI LREL,Y < PASSAGE PROPOSITION SUIVANTE.
JMP E20 < (SI ELLE EXISTE!!!).
<
< FIN DE PHRASE :
<
E21: EQU $
LAI "F"
BSR AST1 < MISE D'UN 'F' EN FIN DE L'ITEM1 ...
LAI BRANCH-ZERO
LR A,W < W=@BRANCH (PAR PRUDENCE).
LA MODCAL,W < A=NATURE DE L'APPEL DE ' C'.
CPI 1 < EST-CE UN APPEL PAR 'EI'/'GO' ???
JE E10 < OUI , RIEN A FAIRE ....
< (MEME PAS D'APPEL DE 'GI'!!!)
CPI 2 < EST-CE UN APPEL PAR 'SE' ???
JE E26 < OUI , VERS LA MISE A JOUR DE
< LA LONGUEUR DE ITEM1.
CPZ X2 < A-T'ON TRANSFERE QUELQUE CHOSE
< DANS L'ITEM2 ????
JE E380 < VERS LA MISE EN PLACE DE LA
< LONGUEUR DE L'ITEM1.
<
< A P P E L D E ' G I ' S O U S ' G E ' :
<
LBI LNOM < ON VA METTRE UNE SUCCESSION
< DE 'GE ' AU BOUT DES ARGUMENTS
< DE 'GI' AU CAS OU CEUX-CI
< SERAIENT ERRONES OU DECALES ..
E30: EQU $
LBY NGE
BSR AST2 < MISE EN PLACE DE 'GE' AU BOUT
< DES ARGUMENTS DE 'GI'.
LA NGE
ANDI 'FF
BSR AST2 < SUITE ...
LAI " "
BSR AST2 < MISE D'UN 'SPACE' DERRIERE
< LE NOM 'GE'.
< (AFIN QUE 'GE' NE COMMENCE PAS
< TOUJOURS A UNE FRONTIERE DE MOT).
ADRI -1,B < DECOMPTE DES 'GE '.
CPZR B < EST-CE FINI ???
JNE E30 < NON , ON CONTINUE ...
<
< RAZ DE L'EN-TETE DE L'ITEM2 ET MISE
< EN PLACE D'UN TYPE 'T' POUR 'GI' :
<
LXI -LTN
RZ2: EQU $
STZ &AI2 < RAZ DE L'EN-TETE ITEM2.
JIX RZ2
LXI IINDIC-LTN*2
LAI "T"
STBY &AI2 < LE TYPE 'T' EST RENDU NECESSAIRE
< DANS L'EN-TETE ITEM2 CAR
< 'GI' FAIT CETTE VERIFICATION ...
<
< MISE EN PLACE DU NOM DE 'GI' :
<
LA NGI < NOM DE LA BRANCHE 'GI'.
STA 0,W < ON VA APPELER 'GI' ET NON
< PAS 'GE' ....
E380: EQU $
LB NCP < B=LONGUEUR MAX D'UN ITEM A PRIORI
JMP E203 < VERS LA SORTIE.
<
< C A S D E S A P P E L S S O U S ' S E ' :
<
E26: EQU $
LB X1 < SINON , C'EST UN TYPE 'R' ,
< L'INDEX COURANT DE L'ITEM1 EN
< DONNE LA LONGUEUR.
LXI DPH+1
STB &AI1 < SAUVEGARDE DE L'INDEX COURANT
< DE L'ITEM1 EN VUE D'UNE
< EVENTUELLE MISE A JOUR.
E203: EQU $
LXI LRITEM-LTN
STB &AI1 < STORE LONGUEUR DE L'ITEM1.
<
<
< P A S S A G E A L ' O V E R L A Y S U I V A N T :
<
<
E10: EQU $
STZ MODCAL,W < RAZ NATURE DE L'APPEL.
LA APILES
LR A,K < LE REGISTRE K REVIENT SUR
< LA PILE DE SODOME.
LAD DEMMEM
SVC 0 < RETOUR A UNE MEMOIRE DE 4K.
<
< PASSAGE A L'OVERLAY SUIVANT :
<
E11: EQU $
LAD DEMSGN
BSR AOVL < A=@DEMSGN ; W=@BRANCH.
LAD DEMCCI
SVC 0 < EN CAS DES ERREURS DE CHARGE-
< MENT , ON RETOURNE A CCI.
JMP E11 < PUIS ON RETENTE LE CHARGEMENT.
PAGE
<
<
< 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 :
<
<
PILE: VAL 'FF0-6 < RETOUR SUR LA PILE DE SODOME.
X12: EQU ZERO+PILE-LTNI-LTNI
X10: VAL X12-$
ZEROV: EQU ZERO+X10 < ERREUR D'ASSEMBLAGE SI MAUVAISE
< IMPLANTATION.
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.