IF VIRE,X100,,X100 NMPROC: VAL "VI" < NOM DU PROCESSEUR. IDP "VI - RELEASE 01/06/1979" X100: VAL 0 IF VIRE,,X100, NMPROC: VAL "RE" < NOM DU PROCESSEUR. IDP "RE - RELEASE 01/06/1979" X100: VAL 0 IDP "JOHN F. COLONNA" DEBUG: VAL VIRE < LE DEBUG N'AURA LIEU QUE < SOUS LA VERSION 'RE' (EDITION < DES ADRESSES LUES SUR LES < BANDES MAGNETOS.) VERSIO: VAL 1 < NUMERO DE LA VERSION DU < SYSTEME DE TELECOMMANDE DES < MAGNETOSCOPES (0 EST LE 1ER). EOT #SIP DEF PROCESSEUR# PROG NOEUD1: EQU BRANCH WORD VIDEO < ADRESSE DE DEPART DU PROCESSEUR. WORD 0 PVIDEO: EQU $ < P DE LANCEMENT DU PROCESSEUR < VIDEO ; A NOTER : P='12 !!!! LRP L BR -2,L < ENTREE DANS LE PROCESSEUR. EOT #SIP DEFINITION ITEM# XNOM: VAL -LNOM/2+LTN-2 < DEPLACEMENT DU NOM DANS L'EN-TETE. IF VIRE,X100,,X100 ITEM1: EQU ZERO+PILE-LTNI X100: VAL 0 PAGE < < < C O R P S I T E M D E S E R V I C E : < < SERASE: VAL 0 < SERASE=0 : EFFACER L'ECRAN APRES, < #0 : NE PAS EFFACER. SDEBS: VAL 1 < ADRESSE DE DEBUT DE SEQUENCE. < SI SDEBS<0 : PAS DE POSITION- < NEMENT DE DEBUT DE SEQUENCE. SFINS: VAL 2 < ADRESSE DE FIN DE SEQUENCE. SMOVE: VAL 3 < QUE FAIRE DE L'ITEM VIDEO ??? < LES BITS SUIVANTS L'INDIQUENT : < (A NOTER QUE SI SMOVE=0 , IL < S'AGIT D'UN SURCH & PLAY). SPLAY: VAL 0 < PLAY EN CONTINU. SURCH: VAL 1 < POSITIONNEMENT , PUIS STOP. SARRET: VAL 2 < STOP. LIS: VAL 8 < LONGUEUR EN OCTETS DU CORPS < D'UN ITEM VIDEO. IF VIRE,,X100, PAGE < < < D E F I N I T I O N D E L A B A I E < D E C O M M U T A T I O N : < < NIN: VAL 20 < NOMBRE D'ENTREES DE LA BAIE : < A T T E N T I O N : LES 'NMAG' < PREMIERES SONT RESERVEES AUX < 'NMAG' MAGNETOSCOPES DU < SYSTEME ... NOUT: VAL 8 < NOMBRE DE SORTIES DE LA BAIE. < < IMAGE NON PARTAGEABLE DE LA MEMOIRE DE COMMUTATION : < NMEMB: EQU $ ASCI ":COM" BYTE '1F;'04 < NOM DE L'IMAGE SUR DISQUE DE < LA MEMOIRE DE COMMUTATION. MEMB: EQU $ DO NOUT WORD -1 < PAS DE COMMUTATION INITIALE. LMEMB: VAL $-NMEMB*2 < < FORMAT DE LA MEMOIRE : < < LES ADRESSES SONT LES NUMEROS DE SORTIES , < LES CONTENUS SONT LES ENTREES CONNCTEES AUX SORTIES < < < NOTA : < UNE MEME ENTREE PEUT ETRE CONNECTEE A < PLUSIEURS SORTIES SIMULTANEMENT ... X100: VAL 0 PAGE < < < T A B L E N O N P A T A G E A B L E < D ' O C C U P A T I O N D E S < M A G N E T O S C O P E S : < < NMAG: VAL 9 < NBRE DE MAGNETOSCOPES. TABLE MAGNET: EQU $ ASCI ":MAG" BYTE '1F;'04 < NOM-SGN DE LA TABLE (LE CODE < '1F-US , EST DESTINE A RENDRE < LE NOM INACCESSIBLE...). < < P I L E L R U D ' U T I L I S A T I O N : < < FORMAT D'UNE ENTREE : < BIT0=0 : OK , < =1 : MAGNETOSCOPE HORS-SERVICE , < BITS1-7 : NUMERO DU MAGNETOSCOPE , < (DE 0 A NMAG-1) < BIT8=1 (INUTILISE) , < BITS9-15 : IDENTIFICATEUR (ID) DE L'ESCLAVE < TRAVAILLANT SUR CE MAGNETOSCOPE. < ('FF A L'INITIALISATION) < LA PILE LRU EST A ACCES ASSOCIATIF. < LRU: EQU $ DO NMAG BYTE $-LRU;'FF < PAS D'ID INITIALEMENT. < < N O M D E S B A N D E S M O N T E E S : < < FORMAT : < CETTE TABLE CONTIENT POUR CHAQUE < MAGNETOSCOPE LE NOM DE LA SEQUENCE (ET < DONC LE NOM DE LA BANDE) EN VISIONNAGE. < ELLE EST INDEXEE PAR LE NUMERO DE MAGNETOSCOPE. < TAPES: EQU $ DO NMAG DZS LNOM/2 LMAG: VAL $-MAGNET*2 < LONGUEUR OCTET DE LA TABLE. IF VIRE,,X100, PAGE < < < F A U X I T E M 1 : < < ITEM1: DZS LIS/2+LTN < DE QUOI CONTENIR UNE FAUSSE < E-TETE ET UN CORPS D'ITEM < DE SERVICE DE TYPE VIDEO. X100: VAL 0 PAGE < < < L O C A L : < < LOCAL LOC: EQU $ < < B U F F E R S E T M E S S A G E S : < BUFFER: WORD 0 IF VIRE,,X100, WORD 0 < SUITE DU BUFFER D'ENTREE. X100: VAL 0 BUFTV: WORD 0 < BUFFER DE COMMANDE DE LA BAIE < ET DES MAGNETOSCOPES. MACN: BYTE 5;'6D ASCI "!ACN" MITEM: BYTE 6;'6D ASCI "!ITEM " MAGER: BYTE 13;'6D ASCI "MAGNETOSCOPE" MOUNT: ASCI " MXX" < NUMERO DE MAGNETOSCOPE. MREL10: ASCI "!ASSIGN A=" BYTE "S";'04 MREL11: ASCI "!ASSIGN B=" BYTE "S";'04 MCU2: ASCI "!ASSIGN A=CU" BYTE "2";'04 MCU3: ASCI "!ASSIGN B=CU" BYTE "3";'04 MTY1: ASCI "!ASSIGN B=" < ASCI "TY" < NORMALEMENT...... BYTE "O";'04 BYTE "1";'04 IF VIRE,,X100, MIN: BYTE 4;" " ASCI "IN= " MOUT: BYTE 5;" " ASCI "OUT=" MINT: BYTE 2;'6D;">";0 MERR: BYTE 3;'6D ASCI "??" MAGN: BYTE 7;"A" ASCI "GNETO=" MORDRE: BYTE 7;" " ASCI "ORDRE=" MLIST: BYTE 8;'6D ASCI "XX-->YY " X100: VAL 0 < < D E M A N D E S A C M S 4 : < DEMOUT: WORD '0202 < DEMANDE DE SORTIE SUR NSPOUT. WORD 0 < @OCTET DU BUFFER. WORD 0 < LONGUEUR OCTET DU MESSAGE. IF VIRE,,X100, DEML: WORD '0202 < EDITION DE LA MEMOIRE DE < COMMUTATION VIDEO. WORD MLIST-ZERO*2+1 WORD 8 DEMIN: WORD '0101 < DEMANDE D'ENTREE AVEC ECHO. WORD BUFFER-ZERO*2 WORD 0 < LE COMPTE D'OCTETS DEMANDES < EST VARIABLE. DEMLB: WORD '0502 < LOAD MEMOIRE DE COMMUTATION. WORD NMEMB-ZERO*2 WORD LMEMB WORD -1 DEMSB: WORD '0402 < STORE MEMOIRE DE COMMUTATION. WORD NMEMB-ZERO*2 WORD LMEMB WORD -1 DEMDB: WORD '0302 < DELETE MEMOIRE DE COMMUTATION. WORD NMEMB-ZERO*2 WORD LMEMB WORD -1 DEMMEM: WORD '0004 < DEMANDE D'ALLOCATION 1K. RELMEM: WORD '0004 < DEMANDE D'ALLOCATION 4K. WORD '800 < 1K MOTS='800 OCTETS. WORD '2000 < 4K MOTS='2000 OCTETS. X100: VAL 0 DEMERA: WORD '0205 < EFFACEMENT DE L'ECRAN. DEMSGN: WORD '0402 < ACCES AU SGN , INITIALISE < STORE DE 'VI' SUR LUI-MEME. WORD NOEUD1-ZERO*2 < @BRANCHE D'OVERLAY (OCTET). WORD ZERO-NOEUD1+PILE-LTNI-LTNI*2 WORD -1 DEMTYO: WORD '0B02 < SORTIE MESSAGE SUR TY1. WORD ITEM1-ZERO+XNOM*2 WORD 0 < LONGUEUR DU NOM DE BANDE. DEMTYM: WORD '0B02 < DEMANDE DE MONTAGE BANDE (TY1). WORD MOUNT-ZERO*2 WORD 4 DEMTYI: WORD '0B00 < LECTURE REPONSE OPERATEUR TY1. WORD BUFFER-ZERO*2 WORD 1 < 1 CARACTERE. DEMMAG: WORD '0502 < DEMANDE D'ACCES AU SGN POUR < LA TABLE D'OCCUPATION DES < MAGNETOSCOPES. WORD MAGNET-ZERO*2 WORD LMAG WORD -1 CLEAR: WORD 'AC00 < FONCTION DE CLEAR LES BASCULES. DCLEAR: WORD '0B02 < CLEAR LA BAIE. WORD CLEAR-ZERO*2 WORD 2 DEMBAI: WORD '0B02 < ECRITURE SUR LA BAIE DE COMMU- < TATION SANS IT. WORD BUFTV-ZERO*2 WORD 2 DEMBAT: WORD '0B08 < LECTURE SUR LA BAIE AVEC IT. WORD BUFTV-ZERO*2 WORD 2 DEMTV: WORD '0A02 < TELECOMMANDE DES MAGNETOSCOPES. WORD BUFTV-ZERO*2 WORD 2 CCI: WORD '0001 < ACCES AU CCI INTERACTIF. DEMCCI: EQU CCI < PRUDENT ??? SLEEP: WORD '0005 < DEMANDE DE MISE EN SOMMEIL. WORD 0 WORD 0 < DUREE EN SECONDES. COMAND: WORD '0002 < ACCES AU CCI NON INTERACTIF. WORD 0 < @OCTET DE LA CARTE. WORD 80 < LONGUEUR D'UNE 'CARTE'. < < C O N S T A N T E S : < EAO: ASCI ":EAO" < ACN DU SYSTEME D'ENSEIGNEMENT. SYS: ASCI ":SYS" F3: WORD 0 < POUR SAUVEGARDE DU REGISTRE X. C10: WORD 10 < POUR LES CONVERSIONS DECIMALES. C16: WORD 16 < CONVERSION BCD-->ASCI. IF VIRE,X100,,X100 NCALL: WORD $+1,X;"GE";"EI" < NOMS DES BRANCHES D'OVERLAY < DE RETOUR DE 'VI'. X100: VAL 0 IF VIRE,,X100, NGE: WORD "GE" COMOUT: WORD '8800 < ORDRE D'ENVOI UNE ADRESSE < MEMOIRE A LA BAIE DE COMUT. NUMOUT: WORD 0 < NUMERO DE LA SORTIE COURANTE < DEMANDEE SUR LA BAIE. X100: VAL 0 < < C O N S T A N T E S M A G N E T O S C O P E S : < VOISIN: VAL '40 < CONSTANTE POUR LES TESTS < DE VOISINNAGE DE DEBUT ET < DE FIN DE SEQUENCE. NUMAG: WORD 0 < NUMERO DU MAGNETOSCOPE ALLOUE < A CET ESCLAVE (DE 0 A NMAG-1). PARITE: WORD 0 < PARITE DES ORDRES AU COUPLEUR < DES MAGNETOSCOPES : < LE BIT1 EST A 1 SI LE NBRE DE < BITS DE NUMAG A 1 EST IMPAIR. ADRES: WORD 0 < ADRESSE COURANTE SUR LA BANDE < MAGNETOSCOPE. DEMCU: WORD '0A00 < POUR REINITIALISER LE 1ER MOT < DE LA DEMANDE DEMTV. TO: EQU $ < TABLE DES ORDRES MAGNETOS. PLAY: BYTE '81;0 < ORDRE PLAY MAGNETOSCOPES. RWD: BYTE '82;0 < ORDRE REWIND MAGNETOS. FWD: BYTE 'A3;0 < ORDRE FORWARD MAGNETOS. STOP: BYTE '84;0 < ORDRE STOP MAGNETOS. RECORD: BYTE 'A5;0 < ORDRE ENREGISTREMENT MAGNETOS. ADC: BYTE 'A6;0 < DEMANDE DE L'ADRESSE COURANTE < SUR LA BANDE. RAZADC: BYTE '87;0 < RAZ L'ADRESSE COURANTE SUR < LE MAGNETOSCOPE. NORDRE: VAL $-TO < NBRE D'ORDRES RECONNUS. MBF00: WORD 'BF00 < RAZ DU BIT1 ET DES BITS8-15. DECOMO: WORD '0900 < MASQUE INVERSION DES BITS 4 & 7. IF VERSIO-0,X200,,X200 DUREE: WORD 0 < CONTIENT LE TEMPS RESTANT AVANT < UN STOP A PRIORI D'UN MAGNETO. < LORS D'UNE RECHERCHE RAPIDE. CORECT: WORD 0 < CORRECTION A APPORTER AUX < ADRESSES LUES SUR LA BANDE < MAGNETO , FONCTION DU SENS < DE DEFILEMENT : < CORECT=0 : MARCHE AVANT , < CORECT=-'20 : MARCHE ARRIERE. X200: VAL 0 IF VIRE,X100,,X100 IF VERSIO-1,X200,,X200 LIMIT: WORD 4 < NBRE MAX DE CHANGEMENTS DE < SENS DU TYPE FWD/RWD OU RWD/FWD. GAMMA: WORD '14 < CONSTANTE SERVANT AU CALCUL < DE LA TRANSLATION DE L'ADRESSE < CIBLE LORS D'UN POSITIONNEMENT < DE BANDE. ORDREP: WORD 0 < CONTIENT L'ORDRE PRECEDENT < ENVOYE AU MAGNETO. X200: VAL 0 X100: VAL 0 < < A D R E S S E S D E T A B L E S : < APILE: WORD PILE-1 < POUR INITIALISER K. IF VIRE,,X100, STACK: DZS 6 < PILE DE TRAVAIL DANS 1K MOTS. X100: VAL 0 AN1: WORD NOEUD1 < ADRESSE DE LA BARNCHE D'OVERLAY. AI1: WORD ITEM1 < ADRESSE EN-TETE ITEM1. AKI1: WORD ITEM1+LTN,X < RELAI VERS LE CORPS DE L'ITEM1. ALRU: WORD LRU < ADRESSE DE LA PILE LRU. ALRUA: WORD LRU+NMAG,X < PARCOURS ASCENDANT DE LA LRU. ALRUD: WORD LRU-1,X < PARCOURS DESCENDANT DE LA LRU. ATAPES: WORD TAPES < ADRESSE DE LA LISTE DES NOMS < DE BANDES. NOMTAP: WORD 0 < RELAI COURANT VERS LE NOM DE < LA BANDE ASSOCIEE AU MAGNETOS- < COPE COURANT. NOMSEQ: WORD ITEM1+XNOM,X < RELAI VERS LE NOM DE LA < SEQUENCE COURANTE. ATO: WORD TO-1,X < RELAI VERS LES ORDRES MAGNETO. IF VIRE,,X100, AREP: WORD BUFFER,X < RELAI D'ACCES AUX REPONSES. AMEMB: WORD MEMB,X < RELAI D'ACCES A LA MEMOIRE < DE COMMUTATION. AMLIST: WORD MLIST,X < POUR GENERER L'EDITION DE LA < MEMOIRE DE COMMUTATION. X100: VAL 0 < < R E L A I S D E S R O U T I N E S : < AOVL: WORD OVL < CHARGEMENT DES OVERLAYS. APRINT: WORD PRINT < EMISSION D'UN MESSAGE. ACALCI: WORD CALCCI < APPEL CCI NON INTERACTIF. AMAGS: WORD MAGS < ACCES AU SGN POUR LA LRU. ARADC: WORD RADC < RECUPERATION DE L'ADRESSE DE < LA BANDE SUR MAGNETOSCOPE. AORDRE: WORD ORDRE < ENVOI D'1N ORDRE AU COUPLEUR < MAGNETOSCOPE. ASTOP: WORD RSTOP < STOP MAGNETO. ET TEMPO 4 SECONDES ATEMPO: WORD TEMPO < MISE EN ATTENTE DU PROCESSEUR. ACOMUT: WORD COMUT < ACTION SUR LA BAIE. ABORT: WORD PVIDEO < 'PRESC' A PRIORI. ABORTV: WORD HALT < 'PRESC' LORS DE LA DIFFUSION < DES SEQUENCES AUDIO-VISUELLES. AERR: WORD ERREUR < CAS DES ERREURS D'EXECUTION. AE422: WORD E422 < ABORT ESCLAVE. IF VIRE,,X100, AINTER: WORD INTER < MODULE D'INTERROGATION ESCLAVE. AGOGE: WORD E10 < MODULE DE RETOUR A 'GE'. AHEX: WORD HEX < ROUTINE DE CONVERSION HEXA < EN BINAIRE. ADEC: WORD DEC < CONVERSION DECIMALE 2 CHIFFRES. ARNMAG: WORD RNMAG < ROUTINE DE CALCUL D'UN NUMERO < D'ENTREE ET DE SA PPARITE. X100: VAL 0 < < E D I T I O N A D R E S S E C O U R A N T E : < ABADC: WORD BADC+1,X < POUR CONVERSION ASCI DE L'ADRESSE BADC: BYTE 5;'6D ASCI " XYZ" < ADRESSE COURANTE EN ASCI. PAGE PROG < < < E N V O I D ' U N M E S S A G E : < < < ARGUMENT : < A=@MESSAGE (DONT LE 1ER OCTET EN < CONTIENT LA LONGUEUR EN OCTETS). < < < DETRUIT LA BASE C. < < PRINT: EQU $ LR A,C < C=@MOT DU MESSAGE. ADR A,A ADRI 1,A < A=@OCTET DU MESSAGE. STA DEMOUT+1 < MAJ DEMOUT. LBY 0,C < A=LONGUEUR DU MESSAGE. STA DEMOUT+2 < MAJ DEMOUT. LAD DEMOUT SVC 0 < ENVOI DU MESSAGE. RSR PAGE < < < A P P E L C C I N O N I N T E R A C T I F : < < < ARGUMENT : < A=@MOT DE LA CARTE. < < CALCCI: EQU $ ADR A,A < A=@OCTET DE LA CARTE. STA COMAND+1 < MAJ DE COMAND. LAD COMAND SVC 0 < ENVOI DE LA CARTE AU CCI. RSR IF VIRE,,X100, PAGE < < < N U M E R O D ' E N T R E E E T P A R I T E : < < < ARGUMENT : < A=NUMERO D'ENTREE COURANTE DEMANDEE. < < RNMAG: EQU $ STA NUMAG < SAVE LE NUMERO DE L'ENTREE < COURANTE DEMANDEE DANS NUMAG. PTY < CALCUL DE LA PARITE DE OCTET1. LAI 0 < PARITE PAIRE A PRIORI. JNC RNMAG1 < EFFECTIVEMENT PARITE PAIRE. SBT 1 < CAS DE LA PARITE IMPAIRE. RNMAG1: EQU $ STA PARITE < SAVE LA PARITE DU NUMERO DE < L'ENTREE DEMANDEE. RSR X100: VAL 0 IF VIRE,,X100, PAGE < < < C O N V E R S I O N H A X E B I N A I R E : < < < ARGUMENT : < Y=NBRE DE CARACTERES A CONVERTIR. < (CARACTERES CONTENUS DANS 'BUFFER') < < < RESULTATS : < SI B=0 : A=VALEUR BINAIRE , < SI B#0 : ERREUR DE SYNTAXE HEXADECIMALE , < POSITIONNEMENT DES INDICATEURS SUR (B). < < HEX: EQU $ LXI 0 < X=INDEX DE PARCOURS DE BUFFER. LBI 0 < CLEAR LE REGISTRE B. < < BOUCLE DE RECUPERATION DES CARACTERES : < HEX1: EQU $ LBY &AREP < A=CARACTERE COURANT DE BUFFER. ADRI -'30,A < TRANSLATION PAR RAPPORT A '0'. JAL HEX2 < ERREUR DE SYNTAXE. CPI 9 < EST-CE UN CHIFFRE ??? JLE HEX3 < OUI , OK. ADRI -'41+'39+1,A < TRANSLATION PAR RAPORT AU 'A'. CPI 'A < EST-CE UNE LETTRE ??? JL HEX2 < NON , ERREUR DE SYNTAXE ... CPI 'F < EST-CE UNE LETTRE HEXA ??? JG HEX2 < NON , ERREUR DE SYNTAXE ... HEX3: EQU $ SCRS 4 < CADRAGE EN TETE DE A , SCLD 4 < ET CONCATENATION AVEC (B). ADRI 1,X < PROGRESSION INDEX BUFFER. CPR X,Y < EST-CE FINI ??? JNE HEX1 < NON , ON CONTINUE ... LR B,A < SI OUI , A=VALEUR CONVERTIE. HEX5: EQU $ < ENTRY DE CONVERSION DECIMALE OK. LBI 0 < B=0 : OK. < < SORTIE DE LA ROUTINE : < HEX4: EQU $ CPZR B < POSITIONNEMENT DES INDICATEURS. RSR < < TRAITEMENT DES ERREURS : < HEX2: EQU $ LBI 1 < B#0 : ERREUR. JMP HEX4 < VERS LA SORTIE ... X100: VAL 0 IF VIRE,,X100, PAGE < < < C O N V E R S I O N D E C I M A L E B I N A I R E : < < < ARGUMENTS : < 2 PREMIERS CARACTERES DE 'BUFFER'. < < < RESULTAT : < B=0 : A=VALEUR BINAIRE , < B#0 : ERREUR DE SYNTAXE DECIMALE , < POSITIONNEMENT DES INDICATEURS SUR (B). < < DEC: EQU $ LXI 0 LBY &AREP < A=PREMIER CHIFFRE EN ASCI. ADRI -'30,A < CONVERSION. JAL HEX2 < ERREUR DE SYNTAXE. CPI 9 < EST-CE UN CHIFFRE ??? JG HEX2 < NON , ERREUR .... MP C10 < MULTIPLICATION PAR LA BASE. < B=10*(PREMIER CHIFFRE). LXI 1 LBY &AREP < A=2EME CHIFFRE. ADRI -'30,A < CONVERSION BINAIRE. JAL HEX2 < ERREUR DE SYNTAXE DECIMALE. CPI 9 < EST-CE UN CHIFFRE ??? JG HEX2 < NON , ERREUR. ADR B,A < OK , A=VALEUR BINAIRE DU NOMBRE. JMP HEX5 < VERS LA SORTIE OK. X100: VAL 0 IF VIRE,X100,,X100 PAGE < < < D E M A N D E D E M O N T A G E S U R T Y 1 : < < E420: EQU $ LBY &NOMSEQ < RECUPERATION NOM-BANDE. E407: EQU $ ADRI 1,X < PROGRESSION INDEX DE NOM. RBT 10 < POUR RAMENER LE CODE < DU '$' A CELUI DE 'EOT'. CPI '04 < EST-CE LA FIN DU NOM DE BANDE ???? JE E421 < OUI , FIN DU NOM DE BANDE. CPR X,Y < EST-ON AU BOUT DU NOM DE < SEQUENCE ????? JNE E420 < NON , POURSUITE DU PARCOURS ... E421: EQU $ STX DEMTYO+2 < MISE EN PLACE DE LA LONGUEUR < DU NOM DE LA BANDE DANS LA < DEMANDE DE SORTIE SUR TY1. < < SAUVEGARDE DU NOM DE SEQUENCE COURANTE < SUR LE MAGNETOSCOPE A LA SUITE DE LA LRU : < LA NOMSEQ RBT 0 < A=@ DU NOM DE LA SEQUENCE. LB NOMTAP RBT 16 < B=@ DU NOM DE LA BANDE MONTEE < SUR LE MAGNETOSCOPE. LXI LNOM/2 < X=NBRE DE MOTS A DEPLACER < DE (A) VERS (B). MOVE < < ENVOI DE LA DEMANDE A L'OPERATEUR TY1 : < < REPONSES POSSIBLES : < R/C : OK , < O : OK , < N : NON , ET ALORS ABORT DE L'ESCLAVE. < LAD MREL11 BSR ACALCI < DESASSIGNATION DE NVP=11. LAD MTY1 BSR ACALCI < ASSIGNATION DU NVP=11 A TY1. < < ENVOI DU NUMERO DU MAGNETOSCOPE A MONTER , < PUIS DU NOM DE LA BANDE : < LA NUMAG < A=NUMERO DU MAGNETOSCOPE. SLRD 16 < A=0 ; B=NBRE A CONVERTIR. DV C10 < A=CHIFFRE DES DIZAINES , < B=CHIFFRE DES UNITES. ADRI '30,A < CONVERSION ASCI. ADRI '30,B < CONVERSION ASCI. STB MOUNT+1 < CHIFFRE DES UNITES. STBY MOUNT+1 < RANGEMENT DU NUMERO ASCI < DANS LE MESSAGE VERS TY1. LAD DEMTYM SVC 0 < ENVOI DU NUMERO DU MAGNE- < TOSCOPE A L'OPERATEUR TY1. LAD DEMTYO SVC 0 < ENVOI DU NOM DE LA BANDE A < MONTER A L'OPERATEUR TY1. E423: EQU $ LAD DEMTYI SVC 0 < ATTENTE DE LA REPONSE DE < L'OPERATEUR TY1. LBY BUFFER < ANALYSE DE LA REPONSE. CPI '0D < EST-CE UN R/C (=OK) ???? JE EE408 < OUI , VERS LA MAJ DE LA LRU. CPI "O" < EST-CE UN 'O' (=OK) ??? JE EE408 < OUI , VERS LA MAJ DE LA LRU. CPI "N" < EST-CE UN 'N' (NON) ???? JNE E423 < DEMANDE NOUVELLE REPONSE LORSQUE < CELLE-CI N'A PAS ETE COMPRISE. BR AE422 < ABORT ESCLAVE .... PAGE < < < P R O C E S S E U R V I D E O : < < < FONCTION : < CE PROCESSEUR APPELABLE AUSSI BIEN < PAR 'EI'/'GO' QUE PAR 'GE' , PERMET < D'EXPLOITER LES ITEMS DE TYPE 'S'. < CE SYSTEME N'EST ACCESSIBLE QUE < SOUS LE NUMERO DE COMPTE :EAO , < AFIN DE POUVOIR ACCEDER A LA LRU DE < GESTION DES MAGNETOSCOPES. < < < NOM D'UN ITEM VIDEO : < < <NOM-ITEM>::=<NOM-BANDE>($<NOM-SEQUENCE>) < < < LE NUMERO DU TELEVISEUR ASSOCIE < A LA VISU NSPOUT EST LE TELEVISEUR < DE NUMERO NSPOUT-NSPVI1 A L'ENTREE < DE LA BAIE DE COMMUTATION VIDEO. < < < CONDITIONS DE RETOUR : < CDRET=0 : RETOUR OK , < CDRET=1 : ERREUR D'ACN , DE TYPE D'ITEM , < OU MONTAGE IMPOSSIBLE , < CDRET=2 : SEQUENCE ABORTEE PAR L'ELEVE. < (PAR UN CTRL-X-OFF) < < < E N T R Y ' V I ' : < < WORD LOC+'80 < VALEUR INITIALE DE LA BASE L. WORD BRANCH < VALEUR INITIALE DE LA BASE W. VIDEO: EQU $ LRP K ADRI -1,K PLR L,W < INITIALISATION DES BASES L & W. LA APILE LR A,K < INITIALISATION DU REGISTRE K. LX MODCAL,W < RECUPERATION DU MODE D'APPEL. LA &NCALL < A=NOM DE LA BRANCHE DE RETOUR. STA 0,W < QUE L'3N MET EN TETE DU < PROCESSEUR. STZ CDRET,W < RAZ DE CDRET A PRIORI. < < VALIDATION DU TYPE DE L'ITEM1 : < (CAS D'UN APPEL PAR 'GE') < LXI IINDIC-LTN*2 LBY &AKI1 < A=TYPE DE L'ITEM1. CPI "S" < EST-CE LE TYPE VIDEO ??? JE ITEMS < OK , TYPE 'S' , LET'S GO !!! < < ERREUR DE TYPE DE L'ITEM1 : < LAD MITEM BSR APRINT < ENVOI D'1N MESSAGE D'ERREUR. BR AERR < ET RETOUR EN ERREUR. < < < E X P L O I T A T I O N D E L ' I T E M ' S ' : < < ITEMS: EQU $ < < VALIDATION DE L'ACN DU DEMANDEUR : < WORD '1E25 < (A,B)=<ACN>. CP EAO JNE E400 < ERREUR , <ACN> INVALIDE. XR A,B < ECHANGE 1ERE/2EME. CP EAO+1 JE E401 < OK , ON EST SOUS :EAO. E400: EQU $ WORD '1E25 < (A,B)=ACN. CP SYS JNE E1010 < ON N'EST PAS NON PLUS SOUS :SYS. XR A,B < ECHANGE 1ERE/2EME. CP SYS+1 JE E401 < OK , ON EST SOUS :SYS. E1010: EQU $ LAD MACN BSR APRINT < ENVOI D'1N MESSAGE D'ERREUR , < PRECISANT QUE CE NUMERO DE < COMPTE N'EST PAS AUTORISE ... BR AERR < ET ABORT .... < < PHASE CRITIQUE D'ACCES A LA LRU : < E401: EQU $ WORD '1ED5 < 'TEST & SET' 5. JC E401 < BLOCAGE SI 5 N'EST PAS LIBRE. < < ACCES A L'OCCUPATION DES MAGNETOSCOPES : < LAI 5 < FONCTION 'LOAD'. BSR AMAGS < ACCES A LA TABLE DU LRU ; A < NOTER QUE LES CONDITIONS DE < RETOUR SONT INDIFFERENTES ; ON < PEUT AINSI INITIALISER LE < SYSTEME. < < ACCES A L'IDESC : < WORD '1E45 < A=IDESC . XXX 1000 XXXXXXXXXXXXXXXX LR A,B < B=IDESC. < < RECHERCHE D'UN MAGNETOSCOPE DEJA ATTACHE A CET IDESC : < LXI -NMAG E402: EQU $ LA &ALRUA < PARCOURS ASCENDANT DE LA LRU. JAL E410 < L'ENTREE N'EST PAS A PRENDRE < EN COMPTE , CAR LE MAFNETOSCOPE < QU'ELLE CONTIENT EST HS. ANDI '7F < A=ID ASSOCIE AU MAGNETOSCOPE < CONTENU DANS CET ENTREE. CPR A,B < EST-CE L'ID DE L'ESCLAVE ???? JE E405 < OK , C'EST BON , ON A TROUVE ID. E410: EQU $ JIX E402 < ENTREE SUIVANTE DE LA LRU. < < CAS OU ON N'A PAS TROUVE L'ID : < LXI NMAG E403: EQU $ LA &ALRUD < PARCOURS DESCENDANT DE LA LRU. JAGE E404 < OK , ON A TROUVE UN MAGNETOSCOPE < EN ETAT DE MARCHE (INDEPENDAM- < MENT DE L'ID ASSOCIE....). JDX E403 < PASSAGE A L'ENTREE PRECDENTE < DANS LE CAS OU LE MAGNETOSCOPE < TROUVE EST HS. X100: VAL 0 E422: EQU $ < ENTRY 'REPONSE NEGATIVE DE < L'OPERATEUR TY1'. LAD MAGER BSR APRINT < ENVOI D'UN MESSAGE D'ERREUR < LORSQU'IL N'Y A PLUS DE < MAGNETOSCOPES LIBRES. BR AERR < ABORT ESCLAVE. IF VIRE,X100,,X100 < < OCCUPATION DU MAGNETOSCOPE TROUVE : < E404: EQU $ ANDI -'80 < RAZ DES BITS 9-15. ORR B,A < ON CONCATENE LE NUMERO DU < MAGNETOSCOPE (A) AVEC L'ID (B). STA &ALRUD < MAJ DE LA LRU. ADRI -NMAG-1,X < CALCUL D'UN NUMERO ASCENDANT. < < ROTATION DE LA LRU : < E405: EQU $ LY &ALRUA < Y=ENTREE COURANTE DE LA LRU. ADRI NMAG,X < X=NBRE DE MOTS A DEPLACER < POUR FAIRE TOURNER LA LRU. CPZR X JE E406 < OK , L'ENTREE TROUVEE EST < DEJA EN TETE. LA ALRU < A=@EMETTEUR. LR A,B ADRI 1,B < B=@RECEPTEUR. MOVE < DEPLACEMENT DE (X) MOTS. STY &ALRU < MISE EN TETE DE L'ENTREE < COURANTE. < < RECUPERATION DU NUMERO DU MAGNETOSCOPE ALLOUE : < E406: EQU $ LR Y,A < A=ENTREE COURANTE. SLRS 8 < A=NUMERO DU MAGNETOSCOPE. STA NUMAG < AND SAVE IT. < < RECUPERATION DU NOM DE LA BANDE VIDEO : < LAI LNOM/2 < NBRE DE MOTS MAX POUR LE < NOM D'UNE BANDE. MP NUMAG LR B,A AD ATAPES < A=@DU NOM DE LA BANDE DEMANDEE. SBT 0 < POSITIONNEMENT DE L'INDEX. STA NOMTAP < GENERATION DU RELAI D'ACCES < AU NOM DE LA BANDE DEJA < PRE-MONTEE SUR (NUMAG). < < TEST SUR UN PRE-MONTAGE DE LA BANDE DEMANDEE : < LXI 0 < INDEX DE COMPARAISON. LYI LNOM < POUR LE TEST DE FIN DE NOM. E411: EQU $ LBY &NOMSEQ < NOM DE LA SEQUENCE. CPBY &NOMTAP < NOM DE LA BANDE PRE-MONTEE (???). JNE E407 < IL N'Y A PAS COINCIDENCE. RBT 10 < AFIN DE RAMENER LE CODE < DE '$' A CELUI DE L'EOT. CPI '04 < EST-ON AU BOUT DU NOM DE < BANDE ???? < ('$'('24) OU 'EOT'('04)) JE E408 < OUI , C'EST BON OK ... ADRI 1,X < PASSAGE AU CARACTERE SUIVANT. CPR X,Y < TEST DE FIN DE NOM. JNE E411 < ON CONTINUE .... < < CAS OU LA BANDE DEMANDEE EST PRE-MONTEE : < E408: EQU $ EE408: EQU E408 LAI 3 < FONCTION 'DELETE'. BSR AMAGS < ACCES AU SGN POUR DELETER < LA LRU AVANT SA MISE A JOUR. LAI 4 < FONCTION 'STORE'. BSR AMAGS < MAJ DE LA LRU. < < FIN DE LA PHASE CRITIQUE : < WORD '1E55 < 'RESET' 5. JC $ < ????BIZARRE .... X100: VAL 0 IF VIRE,,X100, PAGE < < < R E G I E V I D E O S I M U L E E < S U R L A B A I E D E C O M M U T A T I O N : < < < FONCTION : < CE PROCESSEUR UTILISABLE SOUS LE < NUMERO DE COMPTE DU SYSTEME PERMET < DE COMMANDER LA BAIE DE COMMUTATION < VIDEO FREQUENCE , AINSI QUE LES < MAGNETOSCOPES DU SYSTEME ... < < WORD LOC+'80 WORD BRANCH VIDEO: EQU $ LRP K ADRI -1,K PLR L,W < INITIALISATION DES BASES L ET W. LAD STACK-1 LR A,K < INITIALISATION DE K SUR LA PILE < DE TRAVAIL DANS 1K MOTS. LA NGE STA 0,W < MISE EN PLACE DU NOM DE < L'3VERLAY DE RETOUR. < < VALIDATION DE L'ACN DU DEMANDEUR : < WORD '1E25 < (A,B)=ACN DU DEMANDEUR. CP SYS < EST-CE :SYS ??? JNE E400 < NON , ABORT ... LR B,A < PEUT-ETRE .... CP SYS+1 < EST-CE :SYS ??? JE INTER1 < OUI , C'EST :SYS : ON Y VA ... < < CAS DES ACN NON AUTORISES : < E400: EQU $ LAD MACN BSR APRINT < ENVOI D'UN MESSAGE D'ERREURS. BR AERR < VERS L'ABORT ... < < C A S D E : S Y S : < INTER1: EQU $ WORD '1E55 < RESET 5 PAR PRUDENCE. WORD '1E65 < RESET 6 PAR PRUDENCE. WORD '1E75 < RESET 7 PAR PRUDENCE. < < CAS DE :SYS : ASSIGNATION DU NVP='0A : < LAD MREL10 BSR ACALCI < DESASSIGNATION DU NVP='0A. LAD MCU2 BSR ACALCI < !ASSIGN A=CU2. < < RESTAURATION EVENTUELLE DE LA MEMOIRE DE COMMUTATION : < LAD DEMLB SVC 0 < LE RETOUR EST INDIFFERENT !!! < < < I N T E R R O G A T I O N D E L ' U T I L I S A T E U R : < < < COMMANDES RECONNUES : < C : CONNEXION D'UNE ENTREE A UNE SORTIE , < D : DECONNEXION D'UNE SORTIE , < Z : RAZ DE TOUTES LES CONNEXIONS , < L : EDITION DU CONTENU DE LA MEMOIRE DE COMMUT , < M : TELECOMMANDE D'UN MAGNETOSCOPE , < W : RETOUR TEMPORAIRE AU CCI (PERMET !W) , < F : RETOUR A 'GE'. < < < A T T E N T I O N : < TOUT NUMERO DE DISPOSITIF VIDEO < SERA DONNE SOUS LA FORME DE 2 < CHIFFRES DECIMAUX , QUE CE SOIT EN < ENTREE COMME EN SORTIE. < < INTER: EQU $ LAD MINT BSR APRINT < ENVOI D'UN MESSAGE D'INVITATION. LAI 1 STA DEMIN+2 < DEMANDE DE LECTURE 1 CARACTERE. LAD DEMIN SVC 0 < ENTREE COMMANDE UTILISATEUR. LBY BUFFER < A=REPONSE SUR 1 CARACTERE. CPI "C" JE RCONEC < DEMANDE DE CONNEXION. CPI "D" JE RDECON < DEMANDE DE DECONNEXION. CPI "M" JE RMAGN < TELECOMMANDE MAGNETOSCOPE. CPI "F" JE RFIN < DEMANDE DE RETOUR A 'GE'. CPI "W" JE RCCI < RETOUR TEMPORAIRE AU CCI. CPI "Z" JE RRAZ < RAZ DE TOUTES LES CONNEXIONS. CPI "L" JE RLIST < LISTE MEMOIRE DE COMMUTATION. LAD MERR BSR APRINT < REPONSE NON RECONNUE : ERREUR. JMP INTER < VERS UNE NOUVELLE INTERROGATION. < < R E T O U R A ' G E ' : < RFIN: EQU $ < < SAUVEGARDE DE LA MEMOIRE DE COMMUTATION : < LAD DEMDB SVC 0 < DELETE MEMOIRE DE COMMUTATION. LAD DEMSB SVC 0 < SAVE MEMOIRE DE COMMUTATION. < < RETOUR A 'GE' : < BR AGOGE < VERS LE RETOUR A 'GE'. < < R E T O U R T E M P O R A I R E A U C C I : < RCCI: EQU $ LAD DEMCCI SVC 0 < RETOUR TEMPORAIRE AU CCI ; < PERMET DONC DE METTRE LA < CONSOLE EN WAIT (!W). JMP INTER < NOUVELLE INTERROGATION SI !GO. < < D E M A N D E D E C O N N E X I O N : < < NOTA : < UNE MEME ENTREE PEUT ETRE CONNECTEE < SIMULTANEMENT A PLUSIEURS SORTIES !!! < RCONEC: EQU $ LYI 2 < Y=2. STY DEMIN+2 < DEMANDE D'ENTREE DE 2 CARACTERES. CON1: EQU $ LAD MIN BSR APRINT < ENVOI D'UN MESSAGE DEMANDANT < LE NUMERO D'ENTREE. LAD DEMIN SVC 0 < ENTREE DU NUMERO DE L'ENTREE < SOUS FORME DE 2 CHIFFRES < DECIMAUX. BSR ADEC < TENTATIVE DE CONVERSION. JNE CON1 < ERREUR : ON REDEMANDE. CPI NIN < VALIDATION DU NUMERO DE L'ENTREE. JGE CON1 < ERREUR : ENTREE INEXISTANTE. BSR ARNMAG < OK , ON SAVE LE NUMERO DE < L'ENTREE COURANTE (A) , ET < ON CALCULE SA PARITE. CON3: EQU $ LAD MOUT BSR APRINT < ENVOI D'UN MESSAGE DEMANDANT < LE NUMERO DE LA SAORTIE. LAD DEMIN SVC 0 < ENTREE DU NUMERO DE LA SORTIE < SOUS FORME DE 2 CHIFFRES < DECIMAUX. BSR ADEC < CONVERSION DU NUMERO DE SORTIE. JNE CON3 < ERREUR , ON REDEMANDE ... CPI NOUT < VALIDATION DU NUMERO DE LA < SORTIE DEMANDEE. JGE CON3 < ERREUR : SORTIE INEXISTANTE. STA NUMOUT < OK , SAVE LE NUMERO DE LA < SORTIE COURANTE. LR A,X < X=NUMERO DE LA SORTIE COURANTE. LA NUMAG < A=NUMERO DE L'ENTREE COURANTE. STA &AMEMB < GENERATION DE LA MEMOIRE DE < COMMUTATION. < < EXECUTION DE LA DEMANDE DE CONNEXION : < LYI 'A5 < Y=FONCTION DE CONNEXION. BSR ACOMUT < CONNEXION. JMP INTER < VERS UNE NOUVELLE INTERROGATION. < < D E M A N D E D E D E C O N N E X I O N : < RDECON: EQU $ LYI 2 < Y=2. STY DEMIN+2 < AFIN DE LIRE 2 CARACTERES. DECON1: EQU $ LAD MOUT BSR APRINT < ENVOI D'UN MESSAGE DEMANDANT < LE NUMERO DE LA SORTIE A < DECONECTER. LAD DEMIN SVC 0 < ENTREE DU NUMERO DE LA SORTIE < SOUS FORME DE 2 CHIFFRES < DECIMAUX. BSR ADEC < CONVERSION BINAIRE. JNE DECON1 < ERREUR DE SYNTAXE HEXA. CPI NOUT < VALIDATION DU NUMERO DE LA < SORTIE DEMANDEE. JGE DECON1 < ERREUR : SORTIE INEXISTANTE. STA NUMOUT < OK , SAVE LE NUMERO DE LA SORTIE < COURANTE. LR A,X < X=NUMERO SORTIE COURANTE. LA &AMEMB < A=NUMERO DE L'ENTREE CONNECTEE. JAL INTER < DEJA DECONNECTE , RIEN A FAIRE ... BSR ARNMAG < SAVE LE NUMERO DE L'ENTREE < CONNECTEE ET CALCUL PARITE. LAI -1 STA &AMEMB < MEMORISATION DE LA DECONNEXION. < < EXECUTION DE LA DECONNEXION : < LYI '81 < Y=FONCTION DE DECONNEXION. BSR ACOMUT < DECONNEXION. JMP INTER < VERS UNE NOUVELLE INTERROGATION. < < R A Z D E T O U T E S L E S < C O N N E X I O N S : < RRAZ: EQU $ LAI NOUT-1 STA NUMOUT < ON COMMENCE PAR LA DERNIERE < SORTIE DE LA BAIE. RRAZ1: EQU $ LX NUMOUT LA &AMEMB < A=ENTREE CONNECTEE A LA SORTIE. JAL RRAZ2 < SORTIE NON CONNECTEE. BSR ARNMAG < SINON CALCUL DU NUMERO D'ENTREE < ET DE SA PARITE. LAI -1 STA &AMEMB < ET RAZ DE L'IMAGE DE LA MEMOIRE. LYI '81 BSR ACOMUT < COMMUTATION DE LA BAIE. RRAZ2: EQU $ DC NUMOUT < PASSAGE A LA SORTIE PRECEDENTE. JGE RRAZ1 < OK , ELLE EXISTE. JMP INTER < SINON , INTERROGATION ESCLAVE. < < E D I T I O N D E S C O N N E X I O N S : < RLIST: EQU $ LAI NOUT-1 STA NUMOUT < ON COMMENCE A LA DERNIERE SORTIE. RLIST1: EQU $ LX NUMOUT LA &AMEMB < RECUPERATION DE L'ENTREE QUI < EST CONNECTEE A LA SORTIE (X). JAL RLIST3 < SORTIE NON CONNECTEE. SLRD 16 < A=0 ; B=NUMERO D'ENTREE. DV C10 < DECONCATENATION DECIMALE. ADRI '30,A < CONVERSION DECIMALE DU 1ER < CHIFFRE. LXI 2 STBY &AMLIST < ET MISE DANS LE BUFFER D'EDITION. LR B,A < PASSAGE AU CHIFFRE SUIVANT. ADRI '30,A < CONVERSION ASCI. LXI 3 STBY &AMLIST < ET MISE DANS LE BUFFER. LA NUMOUT SLRD 16 < A=0 ; B=NUMERO DE SORTIE. DV C10 < DECONCATENATION DECIMALE. ADRI '30,A < CONVERSION DECIMALE DU 1ER < CHIFFRE. LXI 7 STBY &AMLIST < ET MISE DANS LE BUFFER. LR B,A < APSSAGE AU 2EME CHIFFRE. ADRI '30,A < CONVERSION ASCI. LXI 8 STBY &AMLIST < ET MISE DANS LE BUFFER. LAD DEML SVC 0 < EDITION D'UNE CONNEXION. RLIST3: EQU $ DC NUMOUT < PASSAGE A LA SORTIE PRECEDENTE. JGE RLIST1 < OK , ELLE EXISTE ... JMP INTER < SINON , INTERROGATION ESCLAVE. < < T E L E C O M M A N D E D E S < M A G N E T O S C O P E S : < < NUMERO DE MAGNETOSCOPES : < 2 CHIFFRES DECIMAUX POUR 1 MAGNETOSCOPE , < <EOM> POUR UN ORDRE GENERAL. < < COMMANDES RECONNUES : < P : PLAY , < R : REWIND , < F : FORWARD , < S : STOP , < E : ENREGISTREMENT. < @ : LECTURE DE L'ADRESSE COURANTE TOUTES LES < SECONDES. < RMAGN: EQU $ LYI 2 < Y=2. STY DEMIN+2 < AFIN DE LIRE 2 CARACTERES. RMAGN1: EQU $ LAD MAGN BSR APRINT < ENVOI D'UN MESSAGE DEMANDANT < LE NUMERO DE MAGNETOSCOPE. LAD DEMIN SVC 0 < LECTURE DU NUMERO DE MAGNETO < SOUS FORME DE 2 CHIFFRES < DECIMAUX. WORD '1E35 < RECUPERATION DANS B DU NBRE < DE CARACTERES ENTRES. LR B,A < A=NBRE DE CARACTERES LUS. CPI 1 < N'Y EN A-T'IL QU'UN ??? JNE RMAGN7 < NON 2 , DONC ORDRE MAGNETO. < < CAS D'UN APPEL GENERAL : < LAI 0 SBT 4 < POSITIONNEMENT DU BIT D'ORDRE STA NUMAG < GENERAL A LA PLACE DU NUMERO. LAI 0 SBT 1 < BIT DE PARITE A PRIORI. STA PARITE JMP RMAGN8 < ET C'EST TOUT ... < < CAS DES APPELS SPECIFIQUES : < RMAGN7: EQU $ BSR ADEC < CONVERSION BINAIRE. JNE RMAGN1 < ERREUR DE SYNTAXE HEXA. CPI NMAG < VALIDATION DU NUMERO DE MAGNETO. JGE RMAGN1 < ERREUR : MAGNETO INEXISTANT. BSR ARNMAG < SAVE LE NUMERO DE MAGNETO ET < SA PARITE. < < RECUPERATION DE L'3RDRE AU MAGNETO : < RMAGN8: EQU $ LYI 1 STY DEMIN+2 < POUR LIRE 1 CARACTERE. RMAGN2: EQU $ LAD MORDRE BSR APRINT < ENVOI D'UNE INVITATION. LAD DEMIN SVC 0 < ENTREE D'1 CARACTERE D'ORDRE. LBY BUFFER < A=COMMMANDE DEMANDEE. LB PLAY < B=PLAY A PRIORI. CPI "P" JE RMAGN3 < EXECUTION D'UN PLAY. LB RWD < B=REWIND A PRIORI. CPI "R" JE RMAGN3 < EXECUTION D'UN REWIND. LB FWD < B=FORWARD A PRIORI. CPI "F" JE RMAGN3 < EXECUTION D'UN FORWARD. LB STOP < B=STOP A PRIORI. CPI "S" JE RMAGN3 < EXECUTION D'UN STOP. LB RECORD < B=RECORD A PRIORI. CPI "E" JE RMAGN3 < EXECUTION D'UN RECORD. CPI '40 JE RMAGN5 < RECUPERATION PERIODIQUE DE < L'ADRESSE COURANTE. JNE RMAGN2 < CAS D'UNE COMMANDE NON RECONNUE , < ON REDEMANDE L'ORDRE. < < EXECUTION DES ORDRES INSTANTANES (P,S,E,R,F,..) : < RMAGN3: EQU $ LR B,A < A=ORDRE A ENVOYER AU MAGNETO. OR NUMAG < CONCATENATION DU NUMERO MAGNETO , OR PARITE < ET DE SA PARITE. BSR AORDRE < ENVOI DE L'ORDRE AU MAGNETO. BR AINTER < VERS UNE NOUVELLE INTERROGATION. < < AFFICHAGE PERIODIQUE DE L'ADRESSE COURANTE : < RMAGN5: EQU $ LA ADC < RECUPERATION DE L'ORDRE. AND MBF00 < NETTOYAGE !!! OR NUMAG < CONCATENATION NUMERO DE MAGNETO. OR PARITE < CONCATENATION PARITE DU NUMERO. STA ADC < MAJ DE L'ORDRE @ COURANTE. RMAGN6: EQU $ < BOUCLE DE LECTURE PERIODIQUE. BSR ARADC < LECTURE DE L'ADRESSE COURANTE. LYI 1 BSR ATEMPO < TEMPORISATION DE (Y)=1 SECONDE. JMP RMAGN6 < BOUCLAGE JUSQU'AU JUGEMENT < DERNIER , A MOINS QU'UN ALT- < MODE NE VIENNE INTERROMPRE < LA BOUCLE !!! RMAGN4: EQU $ X100: VAL 0 IF VIRE,X100,,X100 < < TELECOMMANDE DU MAGNETOSCOPE : < LAD MREL10 BSR ACALCI < DESASSIGNATION DU NVP=10. LAD MCU2 BSR ACALCI < !ASSIGN 10=CU2 (TELECOMMANDE < DES MAGNETOSCOPES). LA NUMAG < A=NUMAG. PTY < CALCUL DE LA PARITE DE NUMAG. LAI 0 < BIT1=0 A PRIORI. JNC E600 < EFFECTIVEMENT : PARITE PAIRE. SBT 1 < ET NON , PARITE IMPAIRE. E600: EQU $ STA PARITE < ET SAVE LA PARITE. < < PREPARATION DES ORDRES : < LXI NORDRE < X=NBRE D'ORDRES. E610: EQU $ LA &ATO < ACCES A UN ORDRE. AND MBF00 < NETTOYAGE , ON NE SAIT JAMAIS. OR NUMAG < CONCATENATION NUMAG. OR PARITE < CONCATENATION PARITE. STA &ATO < MAJ DE L'ODRE. JDX E610 < AU SUIVANT .... < < < E N V O I D E L ' O R D R E A U < M A G N E T O S C O P E : < < E620: EQU $ LAI '13 < CARACTERE CTRL-X-OFF. WORD '1EA5 < REMPLACEMENT DE 'ALT-MODE' PAR < LE CARACTERE CTRL-X-OFF. LA ABORTV WORD '1EB5 < MISE EN PLACE D'UN 'PRESC' < SPECIAL LORS DE LA DIFFUSION < DES SEQUENCES AUDIO-VISUELLES , < PERMETTANT D'ARRETER LES MAGNETOS < MEME SI UN 'ALT-MODE' EST FRAPPE LYI 0 < PLAY EN CONTINU A PRIORI. LXI SDEBS CPZ &AKI1 < TEST D'UNE EVENTUELLE ADRESSE < DE DEBUT DE SEQUENCE. JL E602 < SDEBS<0 : IL S'AGIT D'UN PLAY < A PARTIR DE L'ADRESSE COURANTE , < AVEC TEST DE FIN SUR SFINS. LXI SMOVE LA &AKI1 < QUE FAIRE DE CET ITEM 'S' ??? JAL E602 < DEMANDE DE PLAY EN CONTINU. TBT SARRET < EST-CE UN STOP ??? JC E690 < OUI , VERS LE STOP MAGNETO. IF VERSIO-0,X200,,X200 < < ACCES A L 'ADRESSE COURANTE DE LA BANDE : < LA FWD BSR AORDRE < MISE DU MAGNETOSCOPE EN FORWARD < AFIN DE POUVOIR LIRE L'ADRESSE < COURANTE .... LYI 1 < Y=1 SECONDE DE FORWARD. BSR ATEMPO < ATTENTE DE L'ETABLISSEMENT < DU FORWARD. BSR ARADC < LECTURE DE L'ADRESSE COURANTE. BSR ASTOP < ARRET DU MAGNETOSCOPE , ET < TEMPORISATION DE 3 SECONDES. < < CHOIX DU SENS DE DEFILEMENT : < LXI SDEBS LX &AKI1 < X=@DEBUT DE SEQUENCE. E655: EQU $ LR X,A < A=@DEBUT DE SEQUENCE. SB ADRES < A=@DEBUT-@COURANTE. LYI 0 < Y=0 : ON EST SUR L'@DEBUT. < (A PRIORI !!!!) JAE E602 < ON EST ARRIVE , FABULEUX !!! JAL E650 < @DEBUT<@COURANTE : REWIND. CPI VOISIN < EST-ON PRET DU DEBUT ???? JLE E651 < OUI , ALLONS FAIRE UNE < APPROCHE FINE .... LA FWD < SINON , ON PART EN FORWARD ... JMP E603 < VERS LA RECHERCHE GROSSIERE. E650: EQU $ LA RWD < CAS DU REWIND NECESSAIRE. E603: EQU $ BSR AORDRE < ENVOI DE L'ORDRE RWD/FWD < AU MAGNETOSCOPE. < < BOUCLE D'ATTENTE DE POSITIONNEMENT : < LYI 1 < Y=1 SECONDE DE TEMPORISATION < INTER-TEST. LAI '80*VERSIO+3 STA DUREE < DUREE=3*(Y) SECONDES. < (DANS LE CAS DE LA 2EME VERSION , < LA DUREE EST PRISE SUPERIEURE < AU TEMPS DE PARCOURS ENTIER < DE LA BANDE A GRANDE VITESSE!). E604: EQU $ DC DUREE JG E656 < LA DUREE N'EST PAS ENCORE < POURSUIVONS LA RECHERCHE RAPIDE. BSR ASTOP < SI DUREE=0 : ON ARRETE LE < MAGNETO. ET ON RE-TESTE LA < POSITION PAR RAPPORT AU DEBUT < DE SEQUENCE (QU'ON A PU < PASSER SANS S'EN APERCEVOIR. JMP E655 < VERS LE TEST DE DEBUT. E656: EQU $ BSR ATEMPO < TEMPORISATION (Y) SECONDES. BSR ARADC < LECTURE DE L'ADRESSE COURANTE. SBR X,A < ON FORME : < A=@COURANTE-@DEBUT SEQUENCE. CPI -VOISIN JL E604 < ON CONTINUE A TTENDRE. JAG E604 < < CAS OU L'ON EST PRESQUE ARRIVE : < (ON ESSAYE DE S'ARRETER DANS LA FOURCHETTE -'40,0) < BSR ASTOP < ARRET MAGNETO AVEC TEMPORI- < SATION DE 4 SECONDES. < < P O S I T I O N N E M E N T P L U S F I N : < E651: EQU $ LYI 1 < Y=1 SECONDE. < (Y#0 : ON N'EST PAS SUR @DEBUT) E602: EQU $ LA PLAY BSR AORDRE < ENVOI D'UN ORDRE PLAY. CPZR Y < EST-ON DEJA SUR @DEBUT ??? JE E641 < OUI , PAS DE POSITIONNEMENT FIN. < < BOUCLE DE POSITIONNEMNT FIN : < E640: EQU $ BSR ATEMPO < ATTENTE (Y) SECONDES. BSR ARADC < RECUPERATION ADRESSE COURANTE. SBR X,A < A=@COURANTE-@DEBUT SEQUENCE. JAL E640 < ON N'EST PAS ENCORE SUR LE < DEBUT DE SEQUENCE : ON CONTUNUE < LE PLAY SANS COMMUTATION. X200: VAL 0 IF VERSIO-1,X200,,X200 < < CHOIX D'UN SENS A PRIORI : < LA FWD < ON COMMENCE EN FWD. JMP E1020 < ET C'EST PARTI (CF. EN 14...) < < BOUCLE DE RECUPERATION DE L'ADRESSE COURANTE ET DE POSITIONNEMENT : < E655: EQU $ LR X,A < A=ADRESSE CIBLE TRANSLATEE. SB ADRES < A=DISTANCE CORRIGEE DE L'ADRESSE < COURANTE A L'ADRESSE CIBLE , LR A,Y < ET SAVE Y=DISTANCE. SARD 16 < MISE DE LA DISTANCE SUR 32 BITS. DV GAMMA LR Y,A < RESTAURE A=DISTANCE CORRIGEE. LYI 0 < A PRIORI Y=0=CONSTANTE DE < TRANSLATION. CPZR B < LA DISTANCE EST-ELLE UN < MULTIPLE DE GAMMA ??? JNE E656 < NON , Y=0. LYI 1 < OUI , ABS(Y)=1. E656: EQU $ JAL E650 < DISTANCE CORRIGEE<0 : RWD. JAE E1003 < DISTANCE CORRIGEE=0 : ORDRE < INCHANGE , ON VA OSCILLER AUTOUR < DE LA CIBLE ... LA FWD < DISTANCE CORRIGEE>0 : FWD. NGR Y,Y < DANS LE CAS DU FWD , LA CONSTANTE < DE TRANSLATION VAUT -1/0. JMP E603 E650: EQU $ LA RWD < DANS LE CAS DU RWD , LA CONSTANTE < DE TRANSLATION VAUT 1/0. E603: EQU $ ADR Y,X < CORRECTION DE L'ADRESSE CIBLE < (X) EN FONCTION DU SENS DE < PARCOURS COURANT RWD/FWD , ET < FONCTION DE LA DISTANCE CORRIGEE < DE L'ADRESSE COURANTE A L'ADRESSE < CIBLE (??!?!) CP ORDREP < LE SENS DETERMINE EST-IL LE < SENS COURANT DU MAGNETO ??? JE E1003 < [\[E,RP /7 '[[[\ELA ][\\ [N ... DC LIMIT < NON , MAIS IL NE FAUT PAS NON < PLUS CHANGER DE SENS TROP < SOUVENT : RISQUE D'OSCILLATIONS. JE E1004 < C'EN EST TROP , ON ARRETE (DE < POISSON...) < < POINT D'ENTREE DE LA BOUCLE : < E1020: EQU $ STA ORDREP < ET NON , IL FAUT LE SAUVEGARDER , < ET L'ENVOYER ... LXI SDEBS LX &AKI1 < X=ADRESSE CIBLE. < (INIT OU REINIT) BSR AORDRE < ENVOI DU NOUVEL ORDRE (A). LYI 1 BSR ATEMPO < APRES CHAQUE CHANGEMENT D'ODRE , < ON ATTEND 1 SECONDE QUE LE < SYSTEME SE STABILISE ... < < ACCES A L'ADRESSE COURANTE : < E1003: EQU $ BSR ARADC JMP E655 < VERS LE TEST DE POSITION. < < CAS OU L'ON EST PASSE APPAREMMENT SUR L'ADRESSE CIBLE : < E6020: EQU $ DC LIMIT < POUR EVITER DE FACHEUSES < OSCILLATIONS. JE E1004 < OK , ON ARRETE ... < (ET OUI , DE POISSON ENCORE ...) LR X,A < A=ADRESSE-CIBLE CORRIGEE. LXI SDEBS LX &AKI1 < X=ADRESSE-CIBLE REELLE. CPR X,A < Y-A-T'IL EU CORRECTION ??? JNE E655 < ET OUI , ON RECOMMENCE ... < < CAS OU L'ON ADMET QUE L'ON EST POSITIONNE : < E1004: EQU $ BSR ASTOP < ARRET DU MAGNETO ET TEMPO (4S). < < MISE EN PLAY DU MAGNETO : < E602: EQU $ LA PLAY BSR AORDRE X200: VAL 0 < < E T A B L I S S E M E N T D E L A C O N N E X I O N : < E641: EQU $ LXI SMOVE LA &AKI1 < QUE FAIRE DE CET ITEM 'S' ???? TBT SURCH < EST-CE UN POSITIONNEMENT SEUL ??? JC E690 < OUI , ON A DONC FINI , ALONS < ARRETER LE MAGNETO. LYI 'A5 < FONCTION DE CONNEXION. BSR ACOMUT < ETABLISSEMENT. LXI SMOVE CPZ &AKI1 < QUE FAIRE DE L'ITEM 'S' ???? JL E743 < CAS D'UNE DEMANDE DE PLAY EN < CONTINU ; ON VA SORTIR IMME- < DIATEMENT (ON RESTAURE MALGRE < TOUT LE ALT-MODE ET PRESC). < < D I F F U S I O N D E L A S E Q U E N C E : < LXI SFINS LX &AKI1 < X=@FIN DE SEQUENCE. LYI 2 < Y=2 SECONDES DE TEMPORISATION < INTER-TEST. < < BOUCLE D'ATTENTE DE FIN DE SEQUENCE : < E605: EQU $ BSR ATEMPO < TEMPO (Y) SECONDES. BSR ARADC < LECTURE DE L'ADRESSE COURANTE < TOUTES LES (Y) SECONDES. SBR X,A < ON FORME : < A=@COURANTE-@FIN SEQUENCE. JAL E605 < ON CONTINUE LA DIFFUSION. X100: VAL 0 < < F I N D E D I F F U S I O N : < E690: EQU $ < ENTRY 'POSITIONNEMENT SEUL'. LA STOP BSR AORDRE < ARRET DU MAGNETOSCOPE. LYI '81 < FONCTION DE RUPTURE DE CONNEXION. BSR ACOMUT < RUPTURE DE LA CONNEXION. LYI 1 BSR ATEMPO < 1 SECONDE DE TEMPORISATION < POUR LE STOP QUI EST DEMANDE. < < ET C'EST FINI .... < E743: EQU $ < POUR 'PLAY EN CONTINU'. LAI '7D < CARACTERE 'ALT-MODE'. WORD '1EA5 < RESTAURATION DU 'ALT-MODE'. E691: EQU $ < ENTRY 'PLAY EN CONTINU'. LA ABORT WORD '1EB5 < RESTAURATION DU 'PRESC' < IMPLICITE DE EI/GO. IF VIRE,,X100, BR AINTER < VERS LA COMMANDE SUIVANTE. X100: VAL 0 IF VIRE,X100,,X100 < < < T E S T D ' E F F A C E M E N T D E L ' E C R A N : < < LXI SERASE CPZ &AKI1 < UN EFFACEMENT EST-IL DEMANDE ??? JNE E10 < NON .. LAD DEMERA SVC 0 < SI OUI , EFFACEMENT DE L'ECRAN. X100: VAL 0 < < < R E T O U R A L ' A P P E L A N T : < < E10: EQU $ IF VIRE,,X100, LA APILE LR A,K < REINITIALISATION DE K SUR LA < PILE DE SODOME. X100: VAL 0 < < DESASSIGNATION DES NVP : < LAD MREL10 BSR ACALCI < DESASSIGN LE NVP='0A. LAD MREL11 BSR ACALCI < DESASSIGN LE NVP='0B. < < PREPARATION DE L'OVERLAY : < LAI BRANCH-ZERO LR A,W < W=@BRANCH. LR A,C < C#0 AU CAS OU L'3N FERAIT UN < RETOUR A 'EI'/'GO' (C#0 PERMET < DE DISTINGUER UNE GENERATION < D'UN RETOUR D'OVERLAY). STZ MODCAL,W < RAZ DU MODE D'APPEL A PRIORI. LAI 6 STBY DEMSGN < DEMSGN EST MISE EN MODE < 'LOAD SOUS :SYS'. < < APPEL DE L'OVERLAY SUIVANT : < E11: EQU $ LAD DEMSGN BSR AOVL < A=@DEMSGN ; W=@BRANCH. LAD DEMCCI SVC 0 < RETOUR AU CCI EN CAS D'ERREUR < CHARGEMENT ... JMP E11 < TRY AGAIN LE CHARGEMENT SI !GO. < < < E R R E U R S D ' E X E C U T I O N : < < < FONCTION : < PREPARE LE RETOUR A L'APPELANT EN < FAISANT : CDRET=1. < < < ARGUMENT : < W=@BRANCH. < < ERREUR: EQU $ IC CDRET,W < CDRET=1. WORD '1E55 < RESET 5 A PRIORI. WORD '1E65 < RESET 6 A PRIORI. WORD '1E75 < RESET 7 A PRIORI. LAI '7D WORD '1EA5 < RESTAURE LE CARACTERE ALT-MODE. LA ABORT WORD '1EB5 < RESTAURE LE PRESC DE EI/GO. JMP E10 < VERS LE RETOUR A L'APPELANT. < < < E N T R Y U T I L I S E E L O R S D E S < A L T - M O D E P E N D A N T U N E < S E Q U E N C E A U D I O - V I S U E L L E : < < HALT: EQU $ < < RESET D'UNE EVENTUELLE PHASE CRITIQUE EN COURS : < WORD '1E55 < RESET 5 A PRIORI. WORD '1E65 < RESET 6 A PRIORI. WORD '1E75 < RESET 7 A PRIORI. < < MEMORISATION ALT-MODE : < LA APILE LR A,K < RESTAURATION DE K , C'EST < PLUS PRUDENT !!! LAI 2 STA CDRET,W < CDRET=2 : "ODE POUR SEQUENCE < BAORTEE PAR L'ELEVE. JMP E690 < VERS L'ARRET DU MAGNETO , ET < LA DECONNEXION DE LA BAIE. PAGE < < < R E C U P E R A T I O N A D R E S S E < C O U R A N T E S U R L A B A N D E < M A G N E T O S C O P E : < < < RESULTAT : < A=ADRES=ADRESSE COURANTE DE LA BANDE < MONTEE SUR LE MAGNETOSCOPE NUMAG. < < < DETRUIT A & B. < < RADCER: EQU $ < ENTRY 'ADRESSE NON VALIDE'. LXI 1 < X=1 SECONDE. STX SLEEP+2 LAD SLEEP SVC 0 < ATTENTE DE STABILISATION DE < L'ADRESSE PENDANT 1 SECONDE. JMP RADC1 < PUIS ON RECOMMENCE ... RADC: EQU $ STX F3 < SAVE X DANS F3. RADC1: EQU $ LA DEMCU LR A,B < B=DEMCU. ORI 2 < MISE EN PLACE D'UNE FONCTION < D'ECRITURE SUR LE NVP=A. STA DEMTV < DEMTV EST MISE EN MODE DE < D'ECRITURE. LA ADC < A=ORDRE 'ADRESSE COURANTE'. STA BUFTV LAD DEMTV < A=@DEMTV. < < P H A S E C R I T I Q U E D ' A C C E S A U N V P = A < WORD '1EE5 < TEST & SET 6. JC $-1 < ATTENDRE LA LIBERATION DU < PASSAGE ... < < OK , LA VOIE EST LIBRE : < SVC 0 < ENVOIU DE LA DEMANDE D'ADRESSE < COURANTE. STB DEMTV < DEMTV EST MISE EN MODE LECTURE. SVC 0 < LECTURE DE LHADRESSE COURANTE. < < F I N D E P H A S E C R I T I Q U E : < WORD '1E65 < RESET 6. JC $ < E R R E U R .... < < RENVOI DE L'ADRESSE COURANTE : < LA BUFTV < RECUPERATION DANS LE BUFFER < DE LECTURE. JAL RADCER < ADRESSE NON VALIDE (BIT0=1) , < OPERATION A REFAIRE ... JAG E6310 < OK : ADRESSE VALIDE (>0). LAD DEMCCI < (A)=0 : ADRESSE BIZARRE ??? SVC 0 < ALORS ON FAIT UN RETOUR CCI ... JMP RADCER < PUIS VERS RADCER SI !GO ... E6310: EQU $ < ADRESSE LUE OK ... IF VERSIO-0,X200,,X200 AD CORECT < CORRECTION DE LA LECTURE , < FONCTION DU SENS DE PARCOURS. X200: VAL 0 STA ADRES < RETOUR PAR (A) ET (ADEES). < < T E S T D E L ' A D R E S S E C O U R A N T E : < IF VERSIO-0,X200,,X200 LA BUFTV < RESTAURATION DE L'ADRESSE < REELLEMENT LUS , ET CECI A CAUSE < DE LA DETECTION DE LA VALIDITE < DES CODE BCD. X200: VAL 0 LXI 3 < 3 CHIFFRES A CONVERTIR. SLRD 16+2 < A=0 , B=@COURANTE/4. < < BOUCLE DE CONVERSION : < E631: EQU $ DV C16 < CONVERSION BCD-->ASCI. XR A,B < A=RESTE DE LA DIVISION. CPI 9 < VALIDATION DE L'ADRESSE. JG RADC1 < ADRESSE NON RECONNUE , ON < RECOMMENCE. IF DEBUG,,X100, < IF DEBUG,,X100, ORI '30 < CONVERSION ASCI. STBY &ABADC < MISE DANS LE BUFFER D'EDITION. X100: VAL 0 LAI 0 < CLEAR A. JDX E631 < AU CHIFFRE SUIVANT. IF DEBUG,,X100, < IF DEBUG,,X100, LAD BADC < A=@MESSAGE D'ADRESSE COURANTE. BSR APRINT < AFFICHAGE DE L'ADRESSE COURANTE. X100: VAL 0 E630: EQU $ LA ADRES < RESTAURE : A=ADRESSE COURANTE. JMP E671 < VERS LA RESTAURATION DE X , < ET LA SORTIE. PAGE < < < E N V O I D ' U N O R D R E : < < < ARGUMENT : < A=ORDRE A ENVOYER AU COUPLEUR < DES MAGNETOSCOPES. < < ORDRE: EQU $ STA BUFTV < MISE EN PLACE DANS BUFTV. IF VERSIO-0,X200,,X200 < < DETERMINATION DES CORRECTIONS DE LECTURE : < STZ CORECT < A PRIORI CORRECTION NULLE. CP RWD < EST-CE UN REWIND QUI EST DEMANDE? JNE E680 < NON , ON A : CORECT=0. LAI -'20 STA CORECT < SI OUI , CORECT=-'20. E680: EQU $ X200: VAL 0 < < ENVOI DE L'ORDRE : < LA DEMCU ORI 2 < MISE EN PLACE D'UNE FONCTION < D'ECRITURE SUR LE NVP=A. STA DEMTV < MISE DE DEMTV EN ECRITURE. LAD DEMTV < A=@DEMTV. E670: EQU $ < ENTRY 'TEMPORISATION'. STX F3 < SAUVEGARDE DE X. SVC 0 < ENVOI DE L'ORDRE. E671: EQU $ < ENTRY POUR RADC. LX F3 < RESTAURATION DE X. RSR < < < S T O P M A G N E T O S C O P E : < < < FONCTION : < CETTE ROUTINE PROVOQUE UN ARRET < DU MAGNETO. SUIVI D'UNE TEMPORISATION < DE 3 SECONDES. < < RSTOP: EQU $ LA STOP BSR AORDRE < ENVOI D'UN STOP AU MAGNETO. LYI 3+VERSIO < Y=DUREE DE TEMPORISATION. BSR ATEMPO < TEMPORISATION DE (Y) SECONDES. RSR PAGE < < < T E M P O R I S A T I O N D U P R O C E S S E U R : < < < ARGUMENT : < Y=DUREE EN SECONDES DE LA TEMPORISATION. < < < < TEMPO: EQU $ STY SLEEP+2 < MISE EN PLACE DE LA DUREE DANS < LE CODEM DE SLEEP. LAD SLEEP < A=@DEMANDE DE TEMPORISATION. JMP E670 < VERS TEMPORISATION (Y) SECONDES. PAGE < < < C O M M U T A T I O N D E L A B A I E : < < IF VIRE,X100,,X100 < NUMERO DE TELEVISEUR ASSOCIE A UNE VISU : < ON FORME : NSPOUT-NSPVI1+1. X100: VAL 0 < < < ARGUMENT : < Y='A5 : ETABLIR UNE CONNEXION , < ='81 : ROMPRE UNE CONNEXION. < < COMUT: EQU $ < < ETABLISSEMENT DE LA COMMUTATION SUR LA BAIE : < LAD MREL11 BSR ACALCI < DESASSIGNATION DU NVP=11. LAD MCU3 BSR ACALCI < !ASSIGN 11=CU3 (BAIE). IF VIRE,X100,,X100 WORD '1E95 < RENVOI : A=NSPOUT/NSPVI1. LBI '88 < FONCTION 'ENVOI NUMERO TV'. SCRD 8 < A='88/NSPOUT. SWBR B,B < B=NSPVI1 . XX 3300 XXXXXXXXXXXX SBR B,A < A='88/NUMERO DE TV .XX 1200 XXXXXXXXXXXX ADRI 1,A < AFIN D'AVOIR UN NUMERO / A 1. X100: VAL 0 IF VIRE,,X100, LA NUMOUT < A=SORTIE COURANTE DEMANDEE. OR COMOUT < SUPERPOSITION DE L'ORDRE D' < ENVOI D'ADRESSE MEMOIRE. X100: VAL 0 PTY < PARITE DU NUMERO DE TV. JNC E601 < PARITE PAIRE. SBT 1 < PARITE IMPAIRE. E601: EQU $ LR A,B < SAVE LA COMMANDE DE LA BAIE < DANS LE REGISTRE B. LAD DCLEAR < < P H A S E C R I T I Q U E S U R L A B A I E : < WORD '1EF5 < TEST & SET 7. JC $-1 < ATTENTE DU PASSAGE ... SVC 0 < CLEAR DES BASCULES DE LA BAIE , < AU CAS OU LA SEQUENCE DE < COMMANDES PRECEDENTE AURAIT < ETE ABORTEE (CF. L'ENVOI D'UN < CARACTERE D'ABORT!!!!). LAD DEMBAT SVC 0 < LECTURE AVEC IT SUR LA BAIE. LR Y,A < ACCES A LA FONCTION DEMANDEE. CPI '81 < EST-CE UNE DECONNEXION ??? JE DCOMUT < OUI , ALLONS LA PREPARER ... < < CAS D'UNE CONNEXION : < STB BUFTV < MISE EN PLACE DE LA COMMANDE < DE LA BAIE. LAD DEMBAI SVC 0 < ENVOI DU NUMERO DE TV A LA BAIE. LAD DEMBAT SVC 0 < LECTURE AVEC IT DE LA REPONSE. SWBR Y,A < CADRAGE DE LA FONCTION. OR NUMAG < CONCATENATION NUMAG. OR PARITE < CONCATENATION PARITE MAGNETO. COMUT1: EQU $ < ENTRY DECONNEXION. STA BUFTV < MISE EN PLACE DE LA COMMANDE < DE LA BAIE. LAD DEMBAI SVC 0 < ENVOI DU NUMERO DE < MAGNETOSCOPE A LA BAIE. LAD DEMBAT SVC 0 < LECTURE AVEC IT DE LA REPONSE. < < F I N D E P H A S E C R I T I Q U E : < WORD '1E75 < RESET 7. JC $ < E R R E U R .... RSR < RETOUR ... < < CAS D'UNE DECONNEXION : < DCOMUT: EQU $ LR B,A < RECUPERATION DU NUMERO DE < SORTIE ET DE SA PARITE. EOR DECOMO < INVERSION DES BITS 4 ET 7. JMP COMUT1 < VERS LA DECONNEXION. PAGE < < < A C C E S S G N P O U R L A L R U : < < < ARGUMENT : < A=NVP D'ACCES AU SGN. < < < REMARQUE : < EN GENERAL LES CONDITIONS DE RETOUR < (X) SONT IGNOREES. < < MAGS: EQU $ STBY DEMMAG < MISE DU NVP DEMANDE DANS DEMMAG. LAD DEMMAG SVC 0 < ACCES AU SGN. RSR 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 : < < X10: VAL ZERO-$+'3EE ZEROW: EQU ZERO+X10 < ERREUR D'ASSEMBLAGE SI 'RE' < FAIT PLUS D'1K MOTS !!! X12: EQU ZERO+PILE-LTNI-LTNI X10: VAL X12-$ < CETTE CONSTANTE DOIT ETRE >=0 !!! ZEROV: EQU ZERO+X10 < ERREUR D'ASSEMBLAGE SI MAUVAISE < IMPLANTATION. DZS X10+1 < PAR PROPRETE ... EOT #SIP GEN PROCESSEUR#