NMPROC:  VAL         "SE"            < NOM DU PROCESSEUR.
         IDP         "SE - RELEASE 01/06/1979"
         IDP         "JOHN F. COLONNA"
         EOT         #SIP DEF PROCESSEUR#
         PROG
         WORD        SERVI           < ADDRESSE DE DEPART DU PROCESSEUR.
         WORD        0               < $<--($)+1.
PSERV:   EQU         $               < PSERV='12.
         LRP         L
         BR          -2,L            < ENTREE DANS LE PROCESSEUR.
         EOT         #SIP DEFINITION ITEM#
<
<
<        C O R P S   I T E M S   D E   S E R V I C E  :
<
<
XNOM:    VAL         '3D             < DEPLACEMENT DANS L'EN-TETE
                                     < D'UN ITEM VERS SON NOM
SERASE:  VAL         0               < SERASE=0 : EFFACER L'ECRAN ,
                                     <       #0 : NE PAS EFFACER L'ECRAN.
SDUREE:  VAL         1               < DUREE EN SECONDES DES PAUSES.
SDUREA:  VAL         2               < DUREE EN MINUTES ET EN ASCI
                                     < DES PAUSES.
SDEBS:   VAL         1               < ADRESSE DE DEBUT DE SEQUENCE
                                     < VIDEO.
                                     < SI SDEBS<0 : PAS DE POSITION-
                                     < NEMENT DE DEBUT DE SEQUENCE.
SFINS:   VAL         2               < ADRESSE DE FIN DE SEQUENCE
                                     < VIDEO.
SMOVE:   VAL         3               < QUE FAIRE ??? LES BITS SUIVANTS
                                     < INDIQUENT CE QU'IL FAUT FAIRE
                                     < VAEC CET ITEM ; SI SMOVE=0 ,
                                     < IL S'AGIT D'UN 'SURCH & PLAY'.
SPLAY:   VAL         0               < PLAY EN CONTINU (SMOVE<0).
SURCH:   VAL         1               < POSITIONNEMENT PUIS STOP.
SARRET:  VAL         2               < STOP MAGNETOSCOPE.
LIC:     VAL         2               < LONGUEUR CORPS ITEMS 'C'/'E' ,
                                     < EN OCTETS.
LIW:     VAL         6               < LONGUEUR DU CORPS DES ITEMS
                                     < 'W' , EN OCTETS.
LIS:     VAL         8               < LONGUEUR EN OCTETS D'UN
                                     < ITEM DE TYPE 'S'.
         PAGE
<
<
<        L O C A L  :
<
<
         LOCAL       LOCSE
LOC:     EQU         $
<
<        B U F F E R S  :
<
BUFFER:  DZS         2
MERASE:  BYTE        13;'6D
         ASCI        "EFFACEMENT?"
MDUR:    BYTE        12;'6D
         ASCI        "DUREE (MN)> "
MTYPE:   BYTE        6;'6D
         ASCI        "TYPE> "
MERR:    BYTE        5;'6D
         ASCI        "!ERR"
MNAT:    BYTE        12;'6D
         ASCI        "TYPE-PAUSE> "
MPLAY:   BYTE        17;'6D
         ASCI        "PLAY EN CONTINU?"
MSURCH:  BYTE        16;'6D
         ASCI        "POSITIONNEMENT? "
MSTOP:   BYTE        6;'6D
         ASCI        "STOP? "
MSP:     BYTE        15;'6D
         ASCI        "SEARCH & PLAY?"
MPC:     BYTE        19;'6D
         ASCI        "POSITION COURANTE?"
MSEQ:    BYTE        18;'6D
         ASCI        "ADRESSE SEQUENCE: "
MDEB:    BYTE        7;'6D
         ASCI        "DEBUT>"
MFIN:    BYTE        5;'6D
         ASCI        "FIN>"
NIT:     BYTE        20;'6D
         ASCI        "PAS D'ITEM COURANT! "
NITEM:   BYTE        6;'6D
         ASCI        "ITEM> "
NEFFAC:  BYTE        22;'6D
         ASCI        "PUIS EFFACEMENT ECRAN "
NPAUS:   BYTE        6;'6D
         ASCI        "PAUSE "
NASYNC:  BYTE        11;" "
         ASCI        "ASYNCHRONE"
NDURE:   BYTE        11;" "
         ASCI        "XY MINUTES"
SEQ0:    BYTE        16;'6D
         ASCI        "PLAY EN CONTINU "
SEQ1:    BYTE        19;'6D
         ASCI        "POSITIONNEMENT EN "
SEQ2:    BYTE        6;'6D
         ASCI        "ARRET "
SEQ4:    BYTE        14;'6D
         ASCI        "DIFFUSION DE  "
SEQ5:    BYTE        3;" "
         ASCI        "A "
SEQ6:    BYTE        20;"L"
         ASCI        "A POSITION COURANTE "
MDESS:   BYTE        2;'6D
         ASCI        "G "
MFILMD:  BYTE        2;'6D
         ASCI        "S "
MDESSP:  BYTE        1;0
<
<        C O N S T A N T E S  :
<
C10:     WORD        10              < POUR CONVERSION BASE 10.
C60:     WORD        60              < POUR LES CONVERSIONS DE
                                     < MINUTES EN SECONDES.
NCP:     WORD        NBCAR*NBLIG     < LONGUEUR MAX D'UN ITEM.
NGE:     ASCI        "GE"            < POUR NOMMER 'GE'.
NPH:     ASCI        "PH"            < NOM DE LA BRANCHE 'PH'.
TYPI:    WORD        0               < TYPE DE L'ITEM1.
<
<        R E L A I   D E S   T A B L E S  :
<
AIC:     WORD        ZERO+PILE-LTNI+LTN,X
                                     < RELIA VERS L'ITEM COURANT (ITEM1)
ATYP:    WORD        TYP,X           < GENERATION SPECIFIQUE DES ITEMS.
ATNOM:   WORD        TNOM,X          < TABLE DES NOMS DES TYPES ITEMS.
ATEDIT:  WORD        TEDIT,X         < TABLE DE RELAIS VERS LES
                                     < MODULES D'EDITIONS SPECIFIQUES
                                     < DES TYPES D'ITEMS.
ATSEQ:   WORD        TSEQ,X
TSEQ:    EQU         $
         WORD        SEQ0            < 0 : PLAY EN CONTINU.
         WORD        SEQ1            < 1 : POSITIONNEMENT.
         WORD        SEQ2            < 2 : STOP.
ABUFS:   WORD        BUFS+2,X
BUFS:    ASCI        " XYZ.T "
ABUF:    WORD        BUFFER,X        < RELAI VERS LE BUFFER.
APILE:   WORD        PILE-1          < POUR INITIALISER K.
<
<        R E L A I   D E S   R O U T I N E S  :
<
AOVL:    WORD        OVL             < CHARGEMENT DES OVERLAYS.
APRINT:  WORD        PRINT           < ENVOI D'UN MESSAGE.
AST:     WORD        ST              < ROUTINE DE STORE TYPE ITEM.
ACONV:   WORD        CONV            < ROUTINE DE CONVERSION BASE 10.
ACONVH:  WORD        CONVH           < CONVERSION BASE 16.
ACONVB:  WORD        CONVB           < CONVERSION ASCI-->BCD.
AEDITS:  WORD        EDITS           < EDITION D'UNE ADRESSE SUR
                                     < BANDE MAGNETOSCOPE.
AGETS:   WORD        GETS            < ROUTINE DEMANDANT CE QU'2L
                                     < FAUT FAIRE D'UN ITEM VIDEO.
ADEBS:   WORD        DEBS            < RECUPERATION @DEBUT SEQUENCE.
GOGE:    WORD        E13             < RETOUR A !GE.
AERR:    WORD        ERREUR          < ENVOI MESSAGE ERREUR.
ERASE:   WORD        E100            < DEMANDE EFFACEMENT ECRAN ???
<
<        D E M A N D E S   A   C M S 4  :
<
DEMOUT:  WORD        '0202           < ENVOI MESSAGE VERS LA VISU.
         WORD        0               < @OCTET DU BUFFER.
         WORD        0               < LONGUEUR OCTET DU MESSAGE.
DEMIN:   WORD        '0101           < ENTREE VISU AVEC ECHO.
         WORD        BUFFER-ZERO*2
         WORD        0               < COMPTE D'OCTETS VARIABLE.
DEMSGN:  WORD        '0402           < DEMANDE AU SGN INITIALISEE
                                     < EN STORE AFIN DE GENERER
                                     < LA BRANCHE 'SE    '.
         WORD        BRANCH-ZERO*2
         WORD        ZERO-BRANCH+PILE-LTNI-LTNI*2
         WORD        -1              < LA VALEUR SUIT LE NOM.
DEMCCI:  WORD        '0001           < RETOUR AU CCI.
NOMSEG:  WORD        '0000
DELSEG:  WORD        '000A           < DEMANDE DE RAZ DU MOT0(ZDC).
         WORD        NOMSEG-ZERO*2
         WORD        2
         WORD        'C000
         PAGE
<
<
<        T A B L E   D E S   T Y P E S   D ' I T E M S  :
<
<
TYP:     EQU         $-'41
         WORD        ERREUR          < A
         WORD        ERREUR          < B
         WORD        E12             < C : ITEM 'RETOUR A CCI'.
         WORD        DESSIN          < D : NOM DU PROCESSEUR GRAPHIQUE.
         WORD        E102            < E : EFFACEMENT ECRAN.
         WORD        E13             < F : SORTIE DE 'SE' VERS !GE.
         WORD        IRGE            < G : ITEM 'RETOUR A !GE'.
         WORD        ERREUR          < H
         WORD        FILMD           < I : FILM DIGITAL.
         WORD        ERREUR          < J
         WORD        ERREUR          < K
         WORD        ERREUR          < L
         WORD        E110            < M : QUESTION A CHOIX MULTIPLE.
         WORD        ERREUR          < N
         WORD        ERREUR          < O
         WORD        ERREUR          < P
         WORD        ERREUR          < Q
         WORD        E800            < R: REPONSE.
         WORD        E130            < S : SEQUENCE VIDEO.
         WORD        ERREUR          < T
         WORD        ERREUR          < U
         WORD        VIDE            < V : TYPE 'VIDE'.
         WORD        E11             < W : ITEM 'PAUSE'.
         WORD        ERREUR          < X
         WORD        ERREUR          < Y
         WORD        ERREUR          < Z
         PAGE
<
<
<        N O M S   D E S   T Y P E S  :
<
<
NTCCI:   BYTE        15;'6D
         ASCI        "C : RETOUR CCI"
NTDESS:  BYTE        11;'6D
         ASCI        "D : DESSIN"
NTERAS:  BYTE        15;'6D
         ASCI        "E : EFFACEMENT"
NTGE:    BYTE        18;'6D
         ASCI        "G : FIN DE GRAPHE "
NTQCM:   BYTE        8;'6D
         ASCI        "M : QCM "
NTPROG:  BYTE        14;'6D
         ASCI        "P : PROGRAMME "
NTREP:   BYTE        12;'6D
         ASCI        "R : REPONSE "
NTSEQ:   BYTE        27;'6D
         ASCI        "S : SEQUENCE AUDIOVISUELLE"
NTFILM:  BYTE        17;'6D
         ASCI        "I : FILM DIGITAL"
NTEXT:   BYTE        10;'6D
         ASCI        "T : TEXTE "
NTVIDE:  BYTE        9;'6D
         ASCI        "V : VIDE"
NTPAUS:  BYTE        10;'6D
         ASCI        "W : PAUSE "
<
<
<        T A B L E   D E S   N O M S   D E S   T Y P E S   D ' I T E M S
<
<
TNOM:    EQU         $-'41
         WORD        0               < A.
         WORD        0               < B.
         WORD        NTCCI           < C : RETOUR AU CCI.
         WORD        NTDESS          < D : DESSIN.
         WORD        NTERAS          < E : EFFACEMENT DE L'ECRAN.
         WORD        0               < F.
         WORD        NTGE            < G: FIN DE GRAPHE (RETOUR 'GE').
         WORD        0               < H.
         WORD        NTFILM          < I : FILM DIGITAL.
         WORD        0               < J.
         WORD        0               < K.
         WORD        0               < L.
         WORD        NTQCM           < M : QCM.
         WORD        0               < N.
         WORD        0               < O.
         WORD        NTPROG          < P : EXECUTION D'1N PROGRAMME.
         WORD        0               < Q.
         WORD        NTREP           < R : REPONSE.
         WORD        NTSEQ           < S : SEQUENCE AUDIO-VISUELLE.
         WORD        NTEXT           < T : EDITION D'UN TEXTE.
         WORD        0               < U.
         WORD        NTVIDE          < V : ITEM VIDE.
         WORD        NTPAUS          < P : PAUSE.
         WORD        0               < X.
         WORD        0               < Y.
         WORD        0               < Z.
         PAGE
<
<
<        R O U T I N E S   D ' E D I T I O N  :
<
<
TEDIT:   EQU         $-'41
         WORD        0               < A.
         WORD        0               < B.
         WORD        ETCCI           < C : RETOUR AU CCI.
         WORD        ETDESS          < D : DESSIN.
         WORD        ETERAS          < E : EFFACEMENT DE L'ECRAN.
         WORD        0               < F.
         WORD        ETGE            < G : RETOUR A 'GE'.
         WORD        0               < H.
         WORD        ETFILM          < I : FILM DIGITAL.
         WORD        0               < J.
         WORD        0               < K.
         WORD        0               < L.
         WORD        ETQCM           < M : QCM.
         WORD        0               < N.
         WORD        0               < O.
         WORD        ETPROG          < P : EXECUTION D'1N PROGRAMME.
         WORD        0               < Q.
         WORD        ETREP           < R : REPONSE.
         WORD        ETSEQ           < S : SEQUENCE AUDIO-VISUELLE.
         WORD        ETEXT           < T : EDITION D'1N TEXTE.
         WORD        0               < U.
         WORD        ETVIDE          < V : ITEM VIDE.
         WORD        ETPAUS          < W : PAUSE.
         WORD        0               < X.
         WORD        0               < Y.
         WORD        0               < Z.
         PAGE
<
<
<        E N V O I   D ' U N   M E S S A G E  :
<
<
<        ARGUMENT :
<                    A=@MOT DU MESSAGE ,
<                    OCTET0(MESSAGE)=LONGUEUR DU MESSAGE.
<
<
<        DETRUIT C.
<
<
         PROG
PRINT:   EQU         $
         LR          A,C             < C=@MOT DU MESSAGE.
         ADR         A,A
         ADRI        1,A             < A=@OCTET DU MESSAGE.
         STA         DEMOUT+1        < MISE EN PLACE DE L'@OCTET DU
                                     < BUFFER DANS DEMOUT.
         LBY         0,C             < A=LONGUEUR DU MESSAGE.
         STA         DEMOUT+2        < MISE EN PLACE DU COMPTE
                                     < D'OCTETS DANS DEMOUT.
         LAD         DEMOUT
         SVC         0               < ENVOI DU MESSAGE A CMS4.
         RSR                         < LES CONDITIONS DE RETOUR
                                     < SONT IGNOREES.
         PAGE
<
<
<        I N I T I A L I S A T I O N   I T E M  :
<
<
<        FONCTION :
<                      CETTE ROUTINE MET EN PLACE LE
<                    TYPE DEMANDE POUR L'ITEM COURANT
<                    (ITEM1) , ET POSITIONNE LA LONGUEUR
<                    REELLE EN OCTETS DU CORPS DE L'ITEM.
<
<
<        ARGUMENT :
<                    A=TYPE (CARACTERE ASCI) ,
<                    Y=LONGUEUR EN OCTETS DU CORPS DE L'ITEM.
<
<
ST:      EQU         $
         LXI         IINDIC-LTN*2
         STBY        &AIC            < MISE EN PLACE DU TYPE-ITEM.
         LXI         LRITEM-LTN
         STY         &AIC            < MISE EN PLACE DE LA LONGUEUR
                                     < EN OCTETS DU CORPS DE L'ITEM.
         RSR                         < RETOUR ...
         PAGE
<
<
<        C O N V E R S I O N   D E C I M A L E  :
<
<
<        ARGUMENT :
<                    Y=VALEUR COURANTE DU NBRE CALCULE ,
<                    A=CHIFFRE PRESUME SUIVANT DU NBRE.
<
<
<        RESULTAT :
<                    Y<--(Y)*10+(A).
<                    A=0 : OK , LE CARACTERE CONVERTI ETAIT UN CHIFFRE ,
<                     #0 : ERREUR DE CARACTERE.
<
<
CONV:    EQU         $
         ADRI        -'30,A          < CONVERSION BINAIRE DU CHIFFRE.
         JAL         E30             < ERREUR CE N'EST PAS UN CHIFFRE.
                                     < (A<0#0).
         CPI         9               < VALIDATION BASE 10.
         JG          E30             < ERREUR , CE N'EST PAS UN CHIFFRE
                                     < DECIMAL (A#0).
         XR          A,Y             < RECUPERATION DE L'ANCIEN CUMUL.
         MP          C10             < MULTIPLICATION PAR 10 DE
                                     < L'ANCIEN CUMUL.
<        ON A ICI :
<                    B=NOUVEAU CUMUL ,
<                    A=0 (RETOUR OK).
         ADR         B,Y             < CALCUL DE LA NOUVELLE VALEUR
                                     < DU NBRE , EN AJOUTANT AU
                                     < NOUVEAU CUMUL , LE CHIIFRE QUE
                                     < L'ON VIENT DE CONVERTIR.
<
< SORTIE DE LA ROUTINE :
<
E30:     EQU         $
         RSR                         < RETOUR AVEC (A).
         PAGE
<
<
<        C O N V E R S I O N   H E X A D E C I M A L E  :
<
<
<        ARGUMENT :
<                    BUFFER CONTIENT LA CHAINE A CONVERTIR.
<                    Y=NBRE DE CHIFFRES A CONVERTIR.
<
<
<        RESULTAT :
<                    A=0 : B=NBRE HEXADECIMAL ,
<                     #0 : ERREUR DE SYNTAXE.
<
<
CONVH:   EQU         $
         LXI         0               < INTIALISATION DE L'INDEX D'ACCES
                                     < AU BUFFER.
         LBI         0               < INITIALISATION DU NBRE HEXA.
<
< BOUCLE DE RECUPERATION DES CHIFFRES :
<
E123:    EQU         $
         LBY         &ABUF           < ACCES A UN CARACTERE ASCI.
         CPI         '0D             < TEST DE FIN (EOT , R/C ,...)
         JLE         E120            < FIN OK.
         ADRI        -'30,A          < TRANSLATION PAR RAPPORT
                                     < AU CODE DU ZERO.
         JAL         E121            < ERREUR DE SYNTAXE.
         CPI         9               < EST-CE UN CHIFFRE ???
         JLE         E122            < OUI , OK.
         ADRI        -'41+'39+1,A    < TRANSLATION PAR RAPPORT A 'A'.
         CPI         'A              < VALIDATION CHIFFRE HEXA.
         JL          E121            < ERREUR DE SYNTAXE.
         CPI         'F
         JG          E121            < ERREUR DE SYNTAXE.
E122:    EQU         $
         SCRS        4               < MISE DES 4 BITS EN TETE DE A.
         SCLD        4               < ET CONCATENATION DERRIERE B.
         ADRI        1,X             < PROGRESSION DE L'INDEX.
         CPR         X,Y             < TEST DE FIN ????
         JNE         E123            < CE N'EST PAS ENCORE FINI.
<
< SORTIE OK DE LA ROUTINE :
<
E120:    EQU         $
         LAI         0               < RETOUR OK (A=0).
<
< SORTIE :
<
E121:    EQU         $
         RSR                         < RETOUR AVEC (A).
         PAGE
<
<
<        C O N V E R S I O N   B C D  :
<
<
<        ARGUMENT :
<                    BUFFER CONTIENT LA CHAINE A CONVERTIR ,
<                    Y=NBRE DE CHIFFRES ATTENDUS.
<
<
<        RESULTAT :
<                    A=0 : BITS2-5(B)=1ER CHIFFRE ,
<                          BITS6-9(B)=2EME CHIFFRE ,
<                          BITS10-13(B)=3EME CHIFFRE ,
<                          BITS14-15(B)=4EME CHIFFRE.
<                     #0 : ERREUR DE SYNTAXE.
<
<
CONVB:   EQU         $
         LXI         0               < INITIALISATION INDEX BUFFER.
         LBI         0               < INITIALISATION DU RESULTAT.
<
< BOUCLE  DE RECUPERATION DES CHIFFRES :
<
E200:    EQU         $
         LBY         &ABUF           < ACCES A UN CARACTERE ASCI.
         CPI         '0D             < TEST DE FIN DE MESSAGE.
         JLE         E202            < OK , FIN DU NBRE.
         ADRI        -'30,A          < SINON TRANSLATION ASCI.
         JAL         E201            < ERREUR.
         CPI         9
         JG          E201            < ERREUR.
         SCRS        4               < CADRAGE A GAUCHE DANS A.
         SCLD        4               < CUMUL AU RESULTAT PARTIEL (B).
         ADRI        1,X             < PROGRESSION DE L'INDEX.
         CPR         X,Y             < TEST DE FIN ???
         JNE         E200            < NON , AU CHIFFRE SUIVANT.
<
< FIN D'UN NOMBRE :
<
E202:    EQU         $
         LAI         'F              < MASQUE DE RECUPERATION.
         ANDR        B,A             < A=DERNIER CHIFFRE RECUPERE.
         CPI         3               < CE DERNIER CHIFFRE NE PEUT
                                     < VARIER QU'ENTRE 0 ET 3.
         JG          E201            < ERREUR.
         SLLS        2
         SLRD        2               < CADRAGE CORRECT DU NBRE RESULTAT.
         ORR         A,B             < ON RESTAURE LE DERNIER CHIFFRE DU
                                     < NBRE MAIS DECALE DE 2 BITS.
         LAI         0               < RETOUR OK.
<
< SORTIE DE LA ROUTINE :
<
E201:    EQU         $
         RSR
         PAGE
<
<
<        A D R E S S E   D E B U T   S E Q U E N C E  :
<
<
<        RESULTAT :
<                    IDENTIQUE A 'CONVB'.
<
<
DEBS:    EQU         $
         LYI         4               < Y=4=NBRE DE CARACTERES MAX.
                                     < D'UNE ADRESSE DE SEQUENCE.
         STY         DEMIN+2         < POUR N'ENTER QUE 4 CARACTERES.
         LAD         MSEQ
         BSR         APRINT
<
< ACCES A L'ADRESSE DE DEBUT DE LA SEQUENCE :
<
         LAD         MDEB
         BSR         APRINT
         LAD         DEMIN
         SVC         0               < LECTURE DE L'ADRESSE DE DEBUT.
         BSR         ACONVB          < CONVERSION DE L'ADRESSE EN BCD.
         RSR
         PAGE
<
<
<        Q U E   F A I R E   D ' U N   I T E M   ' S '  ???
<
<
<        ARGUMENT :
<                    A=MESSAGE A EMETTRE.
<                    X=INDEX D'UN BIT A POSITIONNER DANS LE
<                      REGISTRE B S'IL FAUT FAIRE CE QUE
<                      LE MESSAGE PROPOSE.
<
<
<        RESULTAT :
<                    B=0 : IL NE FAUT PAS FAIRE CE QUI
<                          EST PROPOSE ,
<                     #0 : C'EST BON ,
<                    DE PLUS LES INDICATEURS SONT POSITIONNES
<                    PAR UN 'CPI "O"'.
<
<
GETS:    EQU         $
         SBT         16,X            < A PRIORI , ON FAIT COMME SI
                                     < CE QUI EST PROPOSE ETAIT BON.
         LR          A,Y             < SAVE Y=@MESSAGE A EMETTRE.
E300:    EQU         $
         LR          Y,A             < RESTAURE A=@MESSAGE (CAS DES
                                     < ERREURS DE REPONSE).
         BSR         APRINT          < ENVOI DU MESSAGE.
         LAD         DEMIN
         SVC         0               < LECTURE DE LA REPONSE.
         LBY         BUFFER          < RECUPERATION DE LA REPONSE
                                     < 1 CARACTERE).
         CPI         "O"             < OUI ???
         JE          E301            < OUI , B EST BON.
         CPI         "N"             < NON ????
         JNE         E300            < ERREUR DANS LA REPONSE.
         LBI         0               < DANS LE CAS D'UN 'NON' , ON
                                     < REINITIALISE B A 0 ,
         CPI         "O"             < ET ON RE-POSITIONNE LES
                                     < INDICATEURS PAR RAPPORT A 'O'.
E301:    EQU         $
         RSR
         PAGE
<
<
<        C R E A T I O N   I T E M   ' S '  :
<
<
<        ITEM 'S' (SEQUENCE VIDEO) :
<                    MOT0(CORPS)=EFFACEMENT ECRAN OUI(0)/NON(1).
<                    MOT1(CORPS)>=0 : =ADRESSE DE DEBUT DE LA SEQUENCE ,
<                                (CODE POUR LE COUPLEUR MAGNETOSCOPES)
<                    MOT1(CORPS)<0 : INDIQU'IL N'Y A PAS DE POSITIONNE-
<                                    MENT INITIAL A FAIRE ; SEULE LE
<                                    MOT2(CORPS) EST SIGNIFICATIF).
<                    MOT2(CORPS)=ADRESSE DE FIN DE LA SEQUENCE.
<                                (CODE POUR LE COUPLEUR MAGNETOSCOPES)
<
<
E130:    EQU         $
<
< MAJ EN-TETE DE L'ITEM COURANT :
<
         LYI         LIS             < Y=LONGUEUR EN OCTET DU CORPS
                                     < D'UN ITEM DE TYPE 'S'.
         BSR         AST             < ON A : A='S'.
<
< NETTOYAGE DU CORPS :
<
         LXI         SDEBS
         STZ         &AIC
         LXI         SFINS
         STZ         &AIC
<
< QUE FAIRE DE L'ITEM 'S' ???
<
         LBI         0               < B=0.
         LXI         SPLAY
         LAD         MPLAY
         BSR         AGETS           < PLAY ???
         JE          E302            < OUI , C'EST FINI.
         LXI         SURCH
         LAD         MSURCH
         BSR         AGETS           < POSITIONNEMENT ???
         JE          E304            < OUI , VERS LA RECUPERATION DE
                                     < L'ADRESSE DE DEBUT DE SEQUENCE.
         LXI         SARRET
         LAD         MSTOP
         BSR         AGETS           < STOP ???
         JE          E302            < OUI , C'EST FINI ....
         LXI         0               < INDEX FARFELU ...
         LAD         MSP
         BSR         AGETS           < SURCH AND PLAY ???
         JNE         ERREUR          < NON , ERREUR ....
<
< TRAITEMENT DES DEMANDES DE SURCH ANS PLAY :
<
         LAD         MPC
         BSR         AGETS           < DOIT-ON COMMENCER LE PLAY A
                                     < LA POSITION COURANTE DU
                                     < MAGNETOSCOPE ???
         JNE         E902            < NON , IL FAUT DONC DEMANDER
                                     < L'ADRESSE DE POSITIONNEMENT
                                     < (SDEBS).
         LBI         4
         STB         DEMIN+2         < POUR ENTER LES 4 CARACTERES
                                     < MAX DE L'ADRESSE DE FIN.
         LBI         -1              < SI OUI , ON RENVOIE SDEBS<0.
         JMP         E903            < VERS LA DEMANDE DE L'ADRESSE
                                     < DE FIN DE SEQUENCE.
E902:    EQU         $
         BSR         ADEBS           < RECUPERATION DE 6'ADRESSE DE
                                     < DEBUT DE SEQUENCE.
         JANE        ERREUR          < ERREUR DE SYNTAXE.
E903:    EQU         $
         PSR         B               < SAVE L'ADRESSE DE DEBUT.
                                     < OU -1 SI PAS DE POSITIONNEMENT.
<
< ACCES A L'ADRESSE DE FIN DE LA SEQUENCE :
<
         LAD         MFIN
         BSR         APRINT
         LAD         DEMIN
         SVC         0               < LECTURE DE L'ADRESSE DE FIN.
         BSR         ACONVB          < CONVERSION DE L'ADRESSE EN BCD.
         PLR         Y               < RESTAURE Y=ADRESSE DE DEBUT.
         JANE        ERREUR          < ERREUR DE SYNTAXE SUR L'ADRESSE
                                     < DE FIN.
<        ON A ICI :
<                    Y=ADRESSE DE DEBUT DE LA SEQUENCE ,
<                    B=ADRESSE DE FIN DE LA SEQUENCE.
         CPR         Y,B             < VALIDATION DE L'ADRESSE DE
                                     < DEBUT PAR RAPPORT A L'ADRESSE
                                     < DE FIN.
         JLE         ERREUR          < ERREUR D'ORDRE.
<
< RANGEMENT DES ADRESSES DE DEBUT ET DE FIN SI OK :
<
         LXI         SDEBS
         STY         &AIC            < RANGEMENT ADRESSE DE DEBUT.
         LXI         SFINS
         STB         &AIC            < RANGEMENT ADRESSE DE FIN.
         LBI         0               < B=0 POUR LES SURCH AND PLAY.
E302:    EQU         $               < CAS DES AUTRES DEMANDES SUR 'S'.
         LXI         SMOVE
         STB         &AIC            < RANGEMENT DE CE QUI EST
                                     < DEMANDE DANS L'ITEM COURANT.
E305:    EQU         $
         LAI         1
         STA         DEMIN+2         < MISE EN PLACE D'UN COMPTE
                                     < DE 1 CARACTERE.
         BR          ERASE           < VERS L'INTERROGATION SUR
                                     < L'EFFACEMENT.
<
<        P O S I T I O N N E M E N T  :
<
E304:    EQU         $
         LXI         SMOVE
         STB         &AIC            < MEMORISATION 'POSITIONNEMENT'.
         BSR         ADEBS           < RECUPERATION DE L'ADRESSE
                                     < DE POSITIONNEMENT.
         JANE        ERREUR          < ERREUR D'ENTREE.
         LXI         SDEBS
         STB         &AIC            < L'ADRESSE DE POSITIONNEMENT EST
                                     < MEMORISEE EN @DEBUT.
         JMP         E305            < VERS LA SORTIE ...
         PAGE
<
<        P R O C E S S E U R   D E   S E R V I C E  :
<                    S U R   I T E M 1  :
<
<
<        FONCTION :
<                      CE PROCESSEUR PERMET DE CREER UN
<                    CERATIN NOMBRE DE TYPE D'ITEMS ,
<                    TEL : LE RETOUR A CCI , LES
<                    PAUSES , ...
<
<
<        NOTA :
<                    L'ITEM GENERE EST L'ITEM1.
<
<
<
<
<        I N I T I A L I S A T I O N   D U   P R O C E S S E U R  :
<
<
<        FONCTION :
<                      CETTE ENTREE EST UTILISEE
<                    LORS DES APPELS PAR !GE.
<
<
         WORD        LOC+'80         < INITIALISATION DE LA BASE L.
         WORD        BRANCH          < INITIALISATION DE LA BASE W.
SERVI:   EQU         $
         LRP         K
         ADRI        -1,K
         PLR         L,W             < INITIALISATION DE L ET W.
         LB          APILE
         LR          B,K             < INITIALISATION DE K.
<
<        I N I T I A L I S A T I O N   D E   ' S E '  :
<
         LAI         6
         STBY        DEMSGN          < DEMSGN EST MISE EN MODE
                                     < 'LOAD SOUS :SYS'.
         LA          NGE
         STA         0,W             < 'GE' EST LA BRANCHE D'OVERLAY A
                                     < APPELER EN FIN D'EXECUTION.
                                     < (ON MET DONC SON NOM EN
                                     < TETE DE BRANCH).
         PAGE
<
<
<        C R E A T I O N   I T E M S  :
<
<
<        FONCTION :
<                      CE PROCESSEUR RECUPERE LE TYPE
<                    DESIRE PAR L'UTILISATEUR , ET
<                    INITIALISE EN CONSEQUENCE L'ITEM
<                    COURANT (ITEM1).
<                    0 : RAZ DU MOT0(ZDC),
<                    ? : DEMANDE D'EDITION DE L'ITEM1.
<                    V : REMISE A VIDE DE L'ITEM ,
<                    C : CREATION D'UN ITEM 'C' ,
<                        (ITEM DE RETOUR A CCI)
<                    E : CREATION D'UN ITEM 'E' ,
<                    F : PERMET UN RETOUR A !GE ,
<                    G : CREATION D'UN ITEM 'G' ,
<                    M : CREATION D'UN ITEM 'M' ,
<                    R : REPONSE EN FRANCAIS LIBRE ,
<                    S : CREATION D'UN ITEM 'S' ,
<                    W : CREATION D'UN ITEM 'W' , LA
<                        COMMANDE SUIVANTE PRECISANT LE
<                        TYPE DE LA PAUSE DESIREE :
<                        A : PAUSE ASYNCHRONE (DUREE INDETERMINEE) ,
<                        S : PAUSE DE DUREE DETERMINEE (DE 1 A 99
<                            MINUTES).
<                    D : PERMET SI L'ITEM A DEJA LE TYPE 'D' DE
<                        DEFINIR LE PROCESSEUR GRAPHIQUE QUI LUI
<                        EST ASSOCIE (G2, G3, GR, GT, GW, GV)
<                    I : PERMET SI L'ITEM A DEJA LE TYPE 'I' OU
<                        'T' DE DEFINIR LE PROCESSEUR 'SC' OU
<                        'SD' QUI DEVRA L'EXPLOITER.
<
<
<        NOTA :
<                      L'EFFACEMENT DE L'ECRAN PEUT
<                    ETRE OBTENU AVEC LES ITEMS 'W' ET 'C'.
<
<
E10:     EQU         $
         LAD         MTYPE
         BSR         APRINT          < ENVOI D'UN MESSAGE D'INVITATION
                                     < A DONNER LE TYPE DESIRE.
         LAI         1
         STA         DEMIN+2         < ON VA LIRE 1 CARACTERE.
         LAD         DEMIN
         SVC         0               < LECTURE DU TYPE DE L'ITEM.
<
<        A N A L Y S E   T Y P E  :
<
<        COMMANDES RECONNUES :
<                    0 : RAZ DU MOT0(ZDC),
<                    ? : DEMANDE D'EDITION DU TYPE DE L'ITEM1.
<                    V : REMISE A VIDE DE L'ITEM COURANT.
<                    F : RETOUR A !GE ,
<                    E : CREATION D'UN ITEM D'EFFACEMENT-ECRAN ('E') ,
<                    G : CREATION D'UN ITEM 'RETOUR A !GE' ,
<                    M : QUESTION A CHOIX MULTIPLES.
<                    R : REPONSE EN FRANCAIS LIBRE ('R') ,
<                    S : CREATION D'UN ITEM SEQUENCE-VIDEO ('S') ,
<                    W : CREATION D'UN ITEM-PAUSE ('W') ,
<                    C : CREATION D'UN ITEM-RETOUR-A-CCI ('C').
<                    D : DEFINITION DU PROCESSEUR GRAPHIQUE ASSOCIE.
<                    I : DEFINITION DU PROCESSEUR ASSOCIE ('SC'/'SD').
<
         LXI         IINDIC-LTN*2
         LBY         &AIC            < (A)=TYPE DE L'ITEM COURANT,
         LR          A,B             < (B)=TYPE ANTERIEUR DE L'ITEM COURANT...
         LBY         BUFFER          < A=COMMANDE ENVOYEE.
         CPI         "?"
         JE          E700            < DEMANDE D'EDITION DU TYPE
                                     < DE L'ITEM COURANT (ITEM1).
         CPI         "0"
         JE          RAZDC           < VERS LE RAZ DU MOT0(ZDC).
         CPI         "F"             < EST-CE LA SORTIE QUI EST DEMANDEE ???
         JE          E10X2           < OUI...
         XR          A,B             < (A)=TYPE ANTERIEUR,
                                     < (B)=TYPE DEMANDE...
         JAE         E10X1           < N'EXISTE PAS, OK... MAIS EN FAIT CE
                                     < QUI VA SUIVRE NE SERT A RIEN...
         CPI         "V"             < EST-IL VIDE ???
         JE          E10X1           < OUI, OK...
         CPR         A,B             < NON, ALORS LE TYPE DEMANDE CORRESPOND-IL
                                     < AU TYPE ANTERIEUR ???
         JNE         ERREUR          < NON, ALORS COMMANDE REFUSEE...
E10X1:   EQU         $
         XR          A,B             < RESTAURE : (A)=TYPE DEMANDE...
E10X2:   EQU         $
         CPI         "A"             < VALIDATION DU TYPE.
         JL          ERREUR
         CPI         "Z"             < VALIDATION DU TYPE.
         JG          ERREUR
         LR          A,X             < OK , X=TYPE DEMANDE POUR L'ITEM.
         BR          &ATYP           < BRANCHEMENT SPECIFIQUE.
<
< CAS DES COMMANDES NON RECONNUES :
<
ERREUR:  EQU         $
         LAD         MERR
         BSR         APRINT          < ENVOI D'UN MESSAGE D'ERREUR.
         JMP         E10             < VERS UNE NOUVELLE INTERROGATION.
<
<
<        I T E M   T Y P E   ' R '  :
<
<
<        FONCTION :
<                      CE MODULE NE FAIT QUE LANCER
<                    L'OVERLAY D'ANALYSE SYNTAXIQUE ET
<                    SEMANTIQUE D'1NE PHRASE FRANCAISE ...
<                      ON TROUVE DANS L'ITEM2 LA REPONSE
<                    ATTENDUE , ET AU RETOUR DE L'ANALYSE
<                    SYNTACTICO-SEMANTIQUE , DANS L'ITEM1
<                    SA TRADUCTION SEMANTIQUE.
<                      A NOTER QUE L'ITEM2 EST ECRASE
<                    PAR LES PAGES DE DICTIONNAIRE !!!
<
<
<        NOTA :
<                      ON MEMORISE L'APPEL PAR 'SE' EN
<                    FIASANT : MODCAL=2.
<
<
E800:    EQU         $
         LAI         2
         STA         MODCAL,W        < MEMORISATION 'APPEL PAR SE'.
         LA          NPH
         STA         0,W             < 'PH' REMPLACE 'GE'.
<
<        R E T O U R   A   ! G E  :
<        O U   V E R S   P H   S I   ' R '  :
<
E13:     EQU         $
         LAD         DEMSGN          < A=@DEMSGN.
         BSR         AOVL            < VERS LE CHARGEMENT DE LA BRANCHE
                                     < D'OVERLAY 'GE    '.
<
< RETOUR EN ERREUR :
<
E14:     EQU         $
         LAD         DEMCCI
         SVC         0               < RETOUR A CCI.
         JMP         E14             < LE RETOUR A CCI EST DEFINITIF ,
                                     < MAIS SI UN !GO EST EMIS.
         PAGE
<
<
<        R E M I S E   A   V I D E   :
<
<
VIDE:    EQU         $
         LAI         0               < LE TYPE VIDE EST REPRESENTE
                                     < PAR '00 ET NON PAR 'V' !!!!
         LYI         0               < UN ITEM VIDE EST DE LONGUEUR
                                     < NULLE.
         BSR         AST             < MISE A JOUR DE L'EN-TETE
                                     < DE L'ITEM COURANT (ITEM1).
         JMP         E13             < VERS LE RETOUR A 'GE'.
         PAGE
<
<
<        C R E A T I O N   I T E M   ' E '  :
<
<
<        ITEM 'E' (EFFACEMENT ECRAN) :
<                    MOT0(CORPS)=0.
<
<
E102:    EQU         $
<
< MAJ DE L'EN-TETE DE L'ITEM COURANT (ITEM1) :
<
         LYI         LIC             < Y=LONGUEUR EN OCTETS DU CORPS
                                     < DES ITEMS 'E'.
<        ON A ICI :
<                    A='E'=TYPE DE L'ITEM.
         BSR         AST             < MAJ DE L'EN-TETE.
         LXI         SERASE
         STZ         &AIC            < DEMANDE D'EFFACEMENT DE L'ECRAN.
         JMP         E13             < VERS LE RETOUR A !GE.
         PAGE
<
<
<        C R E A T I O N   I T E M   ' C '  :
<
<
<        ITEM 'C' (RETOUR AU CCI) :
<                    MOT0(CORPS)=EFFACEMENT ECRAN OUI(0)/NON(1).
<
<
E12:     EQU         $
<
< MAJ EN-TETE ITEM COURANT (ITEM1) :
<
         LYI         LIC             < Y=LONGUEUR DU CORPS DES ITEMS
                                     < DE TYPE 'C'.
<        ON A ICI :
<                    A='C'=TYPE DE L'ITEM.
         BSR         AST             < VERS LA MISE A JOUR DE L'EN-
                                     < TETE DE L'ITEM COURANT (ITEM1).
         JMP         E100            < VERS LA DEMANDE D'EFFACEMENT
                                     < D'ECRAN APRES LE RETOUR DU CCI.
         PAGE
<
<
<        C R E A T I O N   I T E M   ' M '  :
<
<
<        ITEM 'M' (REPONSE A CHOIX MULTIPLE) :
<                    MOT0(CORPS)=EFFACEMENT ECRAN OUI(0)/NON(1).
<
<
E110:    EQU         E12             < LE TRAITEMENT EST IDENTIQUE
                                     < A CELUI DES ITEMS 'C'.
         PAGE
<
<
<        C R E A T I O N   I T E M   ' G '  :
<
<
<        ITEM 'G' (RETOUR A !GE) :
<                    MOT0(CORPS)=EFFACEMENT ECRAN OUI(0)/NON(1).
<
<
IRGE:    EQU         E12             < IDEM A 'C'.
         PAGE
<
<
<        C R E A T I O N   I T E M   ' W '  :
<
<
<        ITEM 'W' (PAUSE) :
<                    MOT0(CORPS)=EFFACEMENT ECRAN OUI(0)/NON(1).
<                    MOT1(CORPS)=DURREE EN SECONDES SI 'S' ,
<                               =0 SI 'A' ,
<                    MOT2(CORPS)=DUREE-MINUTES EN ASCI SI 'S'.
<
<
E11:     EQU         $
<
< MAJ EN-TETE ITEM COURANT (ITEM1) :
<
         LYI         LIW             < Y=LONGUEUR DU CORPS DES ITEMS
                                     < DE TYPE 'W'.
<        ON A ICI :
<                    A='W'.
         BSR         AST             < MISE A JOUR DE L'EN-TETE DE
                                     < L'ITEM COURANT (ITEM1).
<
< NATURE DE LA PAUSE DESIREE :
<
E22:     EQU         $
         LAD         MNAT
         BSR         APRINT          < ENVOI D'1N MESSAGE D'INVITATION.
         LAD         DEMIN
         SVC         0               < LECTURE SUR 1 CARACTERE DU
                                     < TYPE DE LA PAUSE :
                                     < A : PAUSE ASYNCHRONE (DE DUREE
                                     <     INDETERMINEE) ,
                                     < S : PAUSE SYNCHRONE (DE DUREE
                                     <     CONNUE).
<
< ANALYSE DU TYPE DE LA PAUSE :
<
         LBY         BUFFER          < A=TYPE DE LA PAUSE.
         CPI         "S"
         JE          E20             < DEMANDE D'UNE PAUSE SYNCHRONE.
         CPI         "A"
         JE          E21             < DEMANDE D'UNE PAUSE ASYNCHRONE.
<
< CAS DES ERREURS DANS LA
< DETERMINATION DES PAUSES :
<
E31:     EQU         $
         LAD         MERR
         BSR         APRINT          < ENVOI D'UN MMESSAGE D'ERREUR.
         JMP         E22             < ON RECOMMENCE TOUT , DEPUIS
                                     < LA DEMANDE DU TYPE DE LA PAUSE.
<
<        P A U S E S   A S Y N C H R O N E S  :
<
E21:     EQU         $
         LXI         SDUREE
         STZ         &AIC            < POUR UNE PAUSE SYNCHRONE ,
                                     < ON SDUREE=0.
         JMP         E100            < VERS LA DEMANDE D'EFFACEMENT
                                     < DE L'ECRAN APRES LA PAUSE.
<
<        P A U S E S   S Y N C H R O N E S  :
<
E20:     EQU         $
         LAD         MDUR
         BSR         APRINT          < ENVOI D'UN MESSAGE DE DEMANDE
                                     < DE LA DUREE DESIREE POUR LA PAUSE
         IC          DEMIN+2         < LE COMPTE D'OCTETS DE DEMIN
                                     < EST MIS A 2 , AFIN DE LIRE
                                     < 2 CHIFFRES.
         LAD         DEMIN
         SVC         0               < LECTURE DE LA DUREE.
         DC          DEMIN+2         < LE COMPTE D'OCTETS DE DEMIN
                                     < EST REMIS A 1 , AU CAS OU UNE
                                     < ERREU APPARITRAIT.
<
< CALCUL DE LA DUREE :
<
         LYI         0               < VALEUR INITIALE DU CUMUL.
         LBY         BUFFER          < ACCES AU 2EME CHIFFRE PRESUMEE.
         BSR         ACONV           < CONVERSION BASE 10.
         JANE        E31             < ERREUR DE SYNTAXE.
         LA          BUFFER
         ANDI        '7F             < A=2EME CHIFFRE PRESUME.
         CPI         '04             < EST-CE UN 'EOT' ???
         JE          E101            < OUI , LE NBRE EST FINI.
         CPI         '0D             < EST-CE UN R/C ??
         JE          E101            < OUI , LE NBRE EST FINI.
         BSR         ACONV           < SINON , CONVERSION BASE 10.
         JANE        E31             < ERREUR DE SYNTAXE.
<
< CAS OU DUREE DECIMALE A ETE ENVOYEE :
<
E24:     EQU         $
         CPZR        Y               < VALIDATION DE LA DUREE.
         JLE         E31             < DUREE INVALIDE REFUSEE.
<
< SAUVEGARDE DE LA DUREE EN ASCI :
<
         LXI         SDUREA
         LA          BUFFER
         STA         &AIC            < SDUREA=DUREE EN MINUTES ET ASCI.
<
< CALCUL DE LA DUREE EN SECONDES :
<
         LR          Y,A             < A=DUREE DEMANDEE EN MINUTES.
         MP          C60             < B=DUREE DEMANDEE EN SECONDES.
         LXI         SDUREE
         STB         &AIC            < SDUREE=DUREE EN SECONDES DE
                                     < LA PAUSE.
<
<        E F F A C E M E N T   D E   L ' E C R A N  :
<
E100:    EQU         $
         LAD         MERASE
         BSR         APRINT          < ENVOI D'UNE INTERROGATION DE
                                     < L'UTILISATEUR.
         LAD         DEMIN
         SVC         0               < LECTURE DE SA REPONSE.
         LXI         SERASE
         STZ         &AIC            < A PRIORI : EFFACEMENT (SERASE=0).
<
< ANALYSE DE LA REPONSE :
<
         LBY         BUFFER          < A=CARACTERE REPONSE.
         CPI         "O"
         JE          E13             < C'EST OUI , OK : SERASE=0.
         CPI         "N"
         JNE         E100            < CAS DES REPONSES NON RECONNUES ,
                                     < ON RECOMMENCE L'INTERROGATION.
         IC          &AIC            < CAS 'NON' : ON NE DEMANDE PAS
                                     < L'EFFACEMENT DE L'ECRAN :
                                     < SERASE=1#0.
         JMP         E13             < VERS LE RETOUR A !GE.
<
< CAS DES DUREES SUR 1 CARACTERE :
<
E101:    EQU         $
         LBY         BUFFER
         STA         BUFFER          < ON MET AINSI UN NULL DEVANT
                                     < LE CARACTERE UNIQUE DE LA DUREEE.
         JMP         E24             < VERS LE CALCUL DE LA DUREE EN
                                     < SECONDES.
         PAGE
<
<
<        R A Z   D U   M O T 0 ( Z D C )  :
<
<
<        FONCTION :
<                      CE PETIT MODULE IMPLEMENTE DANS 'SE'
<                    PARCEQUE JE NE SAVAIS PAS OU LE METTRE,
<                    PERMET DE RAZER LE MOT0(ZDC), ET
<                    DONC REINITIALISER LES CONDITIONS
<                    D'ECHANGES DE SEGMENTS GRAPHIQUES
<                    PAR 'GV', 'TA', ET 'VT'.
<
<
RAZDC:   EQU         $
         LAD         DELSEG
         SVC         0               < RAZ DU MOT0(ZDC).
         BR          GOGE            < ET C'EST TOUT...
         PAGE
<
<
<        E D I T I O N   D E   L ' I T E M 1  :
<
<
<        FONCTION :
<                      CE MODULE PERMET DE CONNAITRE LE
<                    TYPE DE L'ITEM1 , ET SI CELUI-CI
<                    N'EST PAS DE TYPE 'D'/'T'/'P' ,
<                    DONNE AUSSI SON CONTENU.
<
<
E700:    EQU         $
<
< VALIDATION DE L'ITEM1 :
<
         LXI         -2*LTN+7
         LBY         &AIC            < ACCES A L'OCTET DISCRIMINANT
                                     < LES NOEUDS , LES ITEMS ET
                                     < LES PROCESSEURS.
         CPI         "I"+'80         < EST-CE UN ITEM ???
         JE          E701            < OUI , ALLONS L'EDITER.
<
< CAS OU IL N'Y A PAS D'ITEM COURANT :
<
         LAD         NIT
         BSR         APRINT          < ENVOI D'UN MESSAGE SIGNALANT
                                     < CETTE ABSENCE.
<
<        F I N   D ' E D I T I O N  :
<
ETREP:   EQU         $               < TYPE 'REPONSE FRANCAIS'.
ETPROG:  EQU         $               < TYPE 'PROGRAMME '.
ETEXT:   EQU         $               < TYPE 'TEXTE'.
ETERAS:  EQU         $               < TYPE 'EFFACEMENT'.
ETVIDE:  EQU         $               < TYPE 'VIDE'.
ETFIN:   EQU         $               < SORTIE DE L'EDITION.
         JMP         E13             < VERS LE RETOUR A 'GE'.
<
<        R E C U P E R A T I O N   D U   T Y P E   I T E M 1  :
<
E701:    EQU         $
         LXI         IINDIC-LTN*2
         LBY         &AIC            < A=TYPE DE ITEM1.
         JANE        E702            < ITEM1 N'EST PAS VIDE.
         LAI         "V"             < SI ITEM1 EST VIDE , IL
                                     < RECOIT LE TYPE 'V'.
E702:    EQU         $
         STA         TYPI            < SAVE TYPE(ITEM1) DANS TYPI.
<
<        E D I T I O N   < T Y P E >   E T   < N O M >  :
<
         LAD         NITEM
         BSR         APRINT          < MESSAGE 'ITEM>'.
         LXI         -2*LTN+3
         LBY         &AIC            < ACCES A LA LONGUEUR CODEE
                                     < DU <NOM> DE ITEM DANS <NOMC>.
         ADRI        -'30,A          < A=LONGUEUR DE <NOM>.
         STA         DEMOUT+2        < MISE EN PLACE DE LA LONGUEUR
                                     < MAX DU <NOM> D'UN ITEM
                                     < DANS DEMOUT.
         LA          AIC
         SLLS        1               < A=@OCTET CORPS DE ITEM1.
         ADRI        -LTN+XNOM*2,A   < A=@OCTET DU <NOM> DE ITEM1.
         STA         DEMOUT+1        < QUE L'ON MET DANS DEMOUT.
         LAD         DEMOUT
         SVC         0               < EDITION DU <NOM> DE ITEM1.
         LX          TYPI            < X=TYPE DE ITEM1.
         LA          &ATNOM          < A=@DU NOM DU TYPE DE ITEM1.
         JAE         $               < E R R E U R   P R O G R A M M E.
         BSR         APRINT          < EDITION DU NOM DU TYPE DE ITEM1.
         LX          TYPI            < X=TYPE DE ITEM1.
         BR          &ATEDIT         < VERS L'EDITION SPECIFIQUE.
<
<        T Y P E   F I L M   D I G I T A L  :
<
ETFILM:  EQU         $
         LAD         MFILMD
         JMP         ETXX1
<
<        T Y P E   D E S S I N  :
<
ETDESS:  EQU         $               < TYPE 'DESSIN'.
         LAD         MDESS
ETXX1:   EQU         $
         LR          A,B             < B=ADRESSE DU MESSAGE A EDITER...
         LXI         IINDIC-LTN*2+1
         LBY         &AIC            < A=NOM DU PROCESSEUR ASSOCIE.
         JAE         ETFIN           < N'EXISTE PAS....
         SBT         7               < OCTET0(A)=1 : LONGUEUR DU
         STA         MDESSP          < MESSAGE MDESSP.
         LR          B,A             < A=ADRESSE DU MESSAGE...
         BSR         APRINT          < ENVOI DE 'G',
         LAD         MDESSP
         BSR         APRINT          < ENVOI DU NOM DU PROCESSEUR
                                     < GRAPHIQUE ASSOCIE...
         JMP         ETFIN           < ET C'EST TOUT...
<
<        E F F A C E M E N T   D E   F I N   D ' I T E M  ???
<
ETCCI:   EQU         $               < TYPE 'RETOUR AU CCI'.
ETGE:    EQU         $               < TYPE 'FIN DE GRAPHE'.
ETQCM:   EQU         $               < TYPE 'QCM'.
EFFACE:  EQU         $               < TEST EFFACEMENT DE FIN D'ITEM.
         LXI         SERASE
         CPZ         &AIC            < UN EFFACEMENT EST-IL DEMANDE
                                     < EN FIN DE DIFFUSION D'ITEM1 ???
         JNE         ETFIN           < NON , L'EDITION EST TERMINEE.
<
< CAS OU UN EFFACEMENT EST DEMANDE (SERASE=0) :
<
         LAD         NEFFAC
         BSR         APRINT          < ENVOI D'1N MESSAGE INDIQUANT
                                     < QUE L'EFFACEMENT EST DEMANDE.
         JMP         ETFIN           < ET C'EST FINI.
<
<        E D I T I O N   D E S   I T E M S   D E   ' P A U S E '  :
<
ETPAUS:  EQU         $
         LAD         NPAUS
         BSR         APRINT          < ENVOI DU MESSAGE 'PAUSE'.
         LXI         SDUREE
         LA          &AIC            < RECUPERATION DU TYPE DE LA
                                     < PAUSE.
         JANE        E710            < CAS DES PAUSES SYNCHRONES.
<
< CAS DES PAUSES ASYNCHRONES :
<
         LAD         NASYNC
         JMP         E741            < VERS L'EDITION 'ASYNCHRONE'.
<
< CAS DES PAUSES SYNCHRONES :
<
E710:    EQU         $
         LXI         SDUREA
         LA          &AIC            < A=DUREE EN ASCI (ET MINUTES).
         STA         NDURE+1         < QUE L'ON MET DANS LE MESSAGE.
         LAD         NDURE
E741:    EQU         $               < ENTRY 'ASYNCHRONE'.
         BSR         APRINT          < EDITION DE LA DUREE EN MINUTES
                                     < DE LA PAUSE.
         JMP         EFFACE          < VERS LE TEST D'EFFACEMENT.
<
<        E D I T I O N   D E S   I T E M S   V I D E O S  :
<
ETSEQ:   EQU         $
         LXI         SMOVE
         LA          &AIC            < A=TYPE DE L'ACTION A ENTREPRENDRE
                                     < SUR LA SEQUENCE.
         JAE         E715            < CAS DU SURCH AND PLAY.
<
< CAS DES AUTRES FONCTIONS :
<
         DBT                         < X=FONCTION A REALISER (X=0,1,2).
         LA          &ATSEQ          < A=@MESSAGE INDIQUANT CE QU'IL
                                     < Y A A FAIRE DE CET ITEM.
         PSR         X               < SAVE LA FONCTION.
         BSR         APRINT          < EDITION DE LA FONCTION.
         PLR         A               < RESTAURE : A=FONCTION.
         CPI         SURCH           < EST-CE UN POSITIONNEMENT ???
         JNE         EFFACE          < NON , VERS LE TEST D'EFFACEMENT.
<
< CAS DES DEMANDES DE POSITIONNEMNENT :
<
         LXI         SDEBS
         JMP         E740            < VERS L'EDITION '@POSITIONNEMENT'
<
< TRAITEMENT DES SURCH AND PLAY :
<
E715:    EQU         $
         LAD         SEQ4
         BSR         APRINT          < ENVOI D'1N MESSAGE 'SURCH & PLAY'
         LXI         SDEBS
         LB          &AIC            < RECUPERATION DE L'ADRESSE DE
                                     < DEBUT DE LA SEQUENCE.
         BSR         AEDITS          < EDITION DE L'ADRESSE DE DEBUT.
         LAD         SEQ5
         BSR         APRINT          < ENVOI D'1N SEPARATEUR.
         LXI         SFINS
E740:    EQU         $               < ENTRY 'POSITIONNEMENT'.
         LB          &AIC            < RECUPERATION DE L'ADRESSE DE
                                     < FIN DE SEQUENCE.
                                     < (OU DE POSITIONNEMENT)
         BSR         AEDITS          < EDITION DE L'ADRESSE DE FIN.
         JMP         EFFACE          < VERS LE TEST D'EFFACEMENT.
         PAGE
<
<
<        E D I T I O N   D ' U N E   A D R E S S E
<        S U R   B A N D E   M A G N E T O  :
<
<
<        ARGUMENT :
<                    B=ADRESSE CODE BCD.
<
<
EDITS:   EQU         $
         CPZR        B               < EST-CE UN SEARCH & PLAY SANS
                                     < POSITIONNEMENT INITIAL ???
         JL          E900            < OUI , PAS D'ADRESSE A EDITER.
         LXI         -3
         SLLD        2               < CADRAGE INITIAL.
<
< BOUCLE DE CONVERSION DES 3 PREMIERS CHIFFRES :
<
E720:    EQU         $
         LAI         0               < NETTOYAGE DE A.
         SLLD        4               < RECUPERATION A=1 CHIFFRE BCD.
         ADRI        '30,A           < CONVERSION ASCI.
         STBY        &ABUFS          < ET MISE DANS LE BUFFER D'EDITION.
         JIX         E720            < AU SUIVANT ...
         LAI         0               < NETTOYAGE DE A.
         SLLD        2               < RECUPERATION DU DERNIER CHIFFRE.
         ADRI        '30,A           < CONVERSION ASCI.
         LXI         1               < INDEX DU DERNIER CHIFFRE.
         STBY        &ABUFS          < MISE DU DERNIER CHIFFRE
                                     < DANS LE BUFFER.
         LAI         5
         STA         DEMOUT+2        < RANGEMENT DE LA LONGUEUR.
         LA          ABUFS
         SLLS        1
         ADRI        -3,A            < A=@OCTET DU MESSAGE.
         STA         DEMOUT+1        < QUE L'ON MET DANS DEMOUT.
         LAD         DEMOUT
         SVC         0               < EDITION DE L'ADRESSE 'XYZ.T'.
E901:    EQU         $
         RSR
<
< CAS DES SEARCH & PLAY SANS POSITIONNEMENT INITIAL :
<
E900:    EQU         $
         LAD         SEQ6
         BSR         APRINT          < ENVOI D'UN MESSAGE 'LA POSITION
                                     < COURANTE'.
         JMP         E901            < ET C'EST TOUT ....
         PAGE
<
<
<        N O M   D U   P R O C E S S E U R   A S S O C I E
<        A   U N   F I L M   D I G I T A L  :
<
<
FILMD:   EQU         $
         LXI         IINDIC-LTN*2
         LBY         &AIC            < A=TYPE DE L'ITEM :
         CPI         "T"
         JE          FILMD1          < 'TEXTE', OK...
         CPI         "I"
         JE          FILMD1          < 'FILM', OK...
FILMD2:  EQU         $
         BR          AERR            < ERREUR, TYPE NON RECONNU...
FILMD1:  EQU         $
         LAD         MFILMD
         BSR         APRINT
         LAD         DEMIN
         SVC         0
         LBY         BUFFER          < A=NOM DEMANDE,
         LBI         0               < VIDE A PRIORI...
         CPI         '04
         JE          FILMD3          < VIDE...
         CPI         '0D
         JE          FILMD3          < VIDE...
         CPI         "C"
         JE          FILMD4          < 'SC'.
         CPI         "D"
         JNE         FILMD2          < CE N'EST PAS 'SD'...
FILMD4:  EQU         $
         LR          A,B             < B=NOM DU PROCESSEUR DEMANDE.
FILMD3:  EQU         $
         LXI         IINDIC-LTN
         LA          &AIC
         ANDI        'FF00           < CLEAR,
         ORR         B,A             < CONCATENATION,
         STA         &AIC            < ET RANGEMENT...
         BR          GOGE            < ET C'EST TOUT...
         PAGE
<
<
<        N O M   D U   P R O C E S S E U R   G R A P H I Q U E  :
<
<
DESSIN:  EQU         $
         LXI         IINDIC-LTN*2
         LBY         &AIC            < ACCES AU TYPE DE L'ITEM.
         ORI         '10             < POUR ASSIMILER 'D' A 'T'.
         CPI         "T"             < EST-CE D OU T ???
         JNE         DESSER          < NON, ERREUR !!!
<
< CAS DES ITEMS 'D' OU 'T' :
<
         LAD         MDESS
         BSR         APRINT          < ENVOI D'UNE INVITATION.
         LAD         DEMIN
         SVC         0               < LECTURE DU NOM DEMANDE.
         LBY         BUFFER          < A=CARACTERE REPONSE.
<
<        REPONSES RECONNUES :
<                    EOT R/C         REMISE A '00 DE OCTET1(IINDIC),
<                                    (G3 IMPLICITE)
<                    2               G2,
<                    3               G3,
<                    R               GR,
<                    W               GW
<                    V               GV,
<                    T               GT.
<
         LBI         0               < B='00
         CPI         '04
         JE          DESS2           < RAZ DU NOM DU PROCESSEUR.
         CPI         '0D
         JE          DESS2           < RAZ DU NOM DU PROCESSEUR.
         CPI         "2"
         JE          DESS1           < G2
         CPI         "3"
         JE          DESS1           < G3
         CPI         "R"
         JE          DESS1           < GR
         CPI         "W"
         JE          DESS1           < GW
         CPI         "V"
         JE          DESS1           < GV
         CPI         "T"
         JE          DESS1           < GT
         CPI         "5"
         JE          DESS1           < G5
<
< CAS DES ERREURS :
<
DESSER:  EQU         $
         BR          AERR
<
< MISE EN PLACE DU NOM DU PROCESSEUR GRAPHIQUE :
<
DESS1:   EQU         $
         LR          A,B             < B=2EME LETTRE DU NOM,
DESS2:   EQU         $
         LXI         IINDIC-LTN
         LA          &AIC            < A=IINDIC,
         ANDI        'FF00           < CLEAR L'OCTET1,
         ORR         B,A             < MISE EN PLACE DU NOM DEMANDE,
         STA         &AIC            < ET MAJ DE IINDIC...
         BR          GOGE            < ET C'EST TOT...
         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  :
<
<
X12:     EQU         ZERO+PILE-LTNI-LTNI < @ITEM2.
X10:     VAL         X12-$           < IL FAUT : X10>=0 !!!
ZEROV:   EQU         ZERO+X10        < ERREUR D'ASSEMBLAGE SI MAUVAISE
                                     < IMPLANTATION.
         DZS         X10+1
         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.