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-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2022-2024.