NMPROC: VAL "EX" < NOM DU PROCESSEUR. IDP "EX - RELEASE 21/03/1980" IDP "EDITEUR EXAUSTIF CATALOGUE" IDP "JOHN F. COLONNA" PROG PAGE EOT #SIP DEFINITION CMS5# EOT #SIP DEF PROCESSEUR# PROG WORD CATAL < ENTRY POINT DU PROCESSEUR. WORD 0 PCATAL: EQU $ < P='12 !!! LRP L BR -2,L < ENTRY DANS LE PROCESSEUR. PAGE EOT #SIP DEFINITION ITEM# NOMI:: VAL '3D < EMPLACEMENT DU <NOM> D'UN ITEM DANS < L'EN-TETE. ITEM1: EQU ZERO+PILE-LTNI < ADRESSE DE L'EN-TETE DE L'ITEM1. LNOM: VAL 20 < NBRE DE MOTS MAX OCCUPES PAR < UN NOM SOUS SGN. < < V A L E U R D ' U N N O M : < VALEUR: EQU ZERO+PILE+6 < LA VALEUR EST IMPLANTEE DANS < LES 4 DERNIERS K. IMAG: EQU VALEUR+LNOM+2 < ADRESSE DE L'IMAGE EVENTUELLE. IF ORDI-"S",XWOR%1,,XWOR%1 < < A U T O R I S A T I O N / I N T E R D I C T I O N D E S < < D E L E T E. < < ( OPTTION D'ASSEMBLAGE SOLAR ! ) < IDELA: VAL 0 < 'IDELA' = 0 : DELETE INTERDITS; < 'IDELA' = 1 : DELETE AUTORISES. XWOR%1: VAL 0 PAGE < < < L O C A L : < < LOCAL LOC: EQU $ < < BUFFERS ET MESSAGES : < REP: DZS 2 < REPONSE 1 CARACTERE UTILISATEUR. AREP: WORD REP,X HNOM1: BYTE 0;'6D HNOM2: DZS LNOM+2*2 RCLF: BYTE 0;'6D NOM: DZS LNOM+2 < PAR PRUDENCE. BYTE '04;0 < POUR LA RECHERCHE DE L'EOT DE FIN < DE RACINE DE RECERCHE. MDEL: BYTE 3;" ";"?";"?" MRAC: BYTE 8;'6D ASCI "RACINE> " MLMAX: BYTE 6;'6D ASCI "LMAX= " MPART: BYTE 13;'6D ASCI "A PARTIR DE " MACN: BYTE 5;'6D ASCI "ACN?" MPAS: BYTE 11;'6D ASCI "PAS A PAS?" MVIS: BYTE 15;'6D ASCI "VISUALISATION?" MHEXA: BYTE 13;'6D ASCI "HEXADECIMAL?" MRECH: BYTE 12;'6D ASCI "RECHERCHE ?" MCHAI: BYTE 8;'6D ASCI "CHAINE=" MRCLF: BYTE 1;'6D < < RELAIS DIVERS : < IF ORDI-"T",XWOR%,,XWOR% ASP3: WORD SP3 < ROUTINE MAITRE DE STABILISATION < DE L'IMAGE VIDEO. XWOR%: VAL 0 AOVL: WORD OVL < CHARGEMENT DES OVERLAYS. AGOSGN: WORD GOSGN < APPEL DU SGN POUR CATAL. APRINT: WORD PRINT < EMISSION MESSAGE. AHEXA: WORD HEXA < CONVERSION BINAIRE-->HEXADECIMAL. AHEX: WORD HEX < ENTREE D'UNE CONSTANTE HEXA-DECIMALE... AGOGE: WORD E50 < RETOUR A 'GE'. ANOM: WORD NOM,X < RELAI D'ACCES AU NOM COURANT. AHNOM: WORD HNOM2,X < RANGEMENT DU NOM EN HEXA. AVAL: WORD VALEUR < @MOT DE LA VALEUR D'UN NOM. ZAVAL: WORD VALEUR-1,X < RELAI DE RAZ D'UNE VALEUR. LVAL: WORD '1000 < UNE VALEUR FAIT 4K MOTS MAX. APILE: WORD PILE-1 < @PILE DE SODOME. < < CONSTANTES DIVERSES : < KIN: WORD -1 < COMPTEUR DES ENTRIES. NGE: WORD "GE" < NOM DU PROCESSEUR GE. XRAC: WORD 0 < MEMORISATION DE L'INDEX INITIAL. SXRAC: WORD 0 < SAVE LE (X) INITIAL. VISUAL: WORD 0 < INDICATEUR DE VISUALISATION : < 0 : NE PAS VISUALISER VALEUR , < #0 : VISUALISER LA VALEUR(NOM). DELET: WORD 0 < INDICATEUR DE DELETE : < =0 : LISTAGE SEUL , < -1 : LIST & DELETE AUTOMATIQUE , < +1 : LIST & DELETE EVENTUEL. XANOM: WORD 0 < INDEX DU NOM EN ALPHA. XHNOM: WORD 0 < INDEX DU NOM EN HEXA. INDH: WORD 0 < =0 : EDITION ALPHA DES NOMS , < #0 : EDITION ALPHA+HEXA NOMS. KCONT: WORD 1 < CALCUL DE LA LA LONGUER DES < MESSAGES LORS DE L'EDITION DES < NOMS. ACNSYS: ASCI ":SYS" < ACN DU SYSTEME. LMAX: WORD LNOM*2+1 < NOMBRE MAX DE CARACTERES A EXPLORER. < < DONNEES DE RECHERCHE DANS UN ITEM : < IRECH: WORD 0 < INDICATEUR DE RECHERCHE : < =0 : PAS DE RECHERCHE, < #0 : RECHERCHE D'UNE CHAINE DONNEE DANS < LES ITEMS DE TYPE "T"/"D"/"I". LCHAIN:: VAL 20 < LONGUEUR MAX DE LA CHAINE. CHAINE: DZS LCHAIN/2 < CHAINE A CHERCHER. ACHAIN: WORD CHAINE,X < RELAI D'ACCES A LA CHAINE. ALCHAI: WORD 0 < LONGUEUR DE LA CHAINE (NON COMPRIS LE < LIMITEUR DE FIN. ANOMC: WORD ITEM1,X < RELAI D'ACCES A L'EN-TETE DE L'ITEM1. AITEM1: WORD ITEM1+LTN,X < RELAI D'ACCES AU CORPS DE L'ITEM1. NCP: WORD NBCAR*NBLIG < LONGUEUR DES CORPS DES ITEMS CHERCHES. ASPREC: WORD SPREC < MODUL DE RECHERCHE... < < DEMANDES A CMS4 : < DEMSGN: WORD '0402 < SGN OVERLAY. WORD BRANCH-ZERO*2 WORD ZERO-BRANCH+PILE-LTNI-LTNI*2 WORD -1 SCATAL: WORD '0002 < SGN CATALOGUE. WORD NOM-ZERO*2 WORD 0 < LONGUEUR COURANTE DU NOM. WORD -1 DEMLOD: WORD '0502 < DEMANDE DE LOAD SOUS ACN. WORD VALEUR-ZERO*2 WORD '2000-1 < 4K MOTS-1 MAX. WORD 2*LNOM < DEPLACEMENT DE LA VALEUR < PAR RAPPORT AU NOM. DEMDEL: WORD '0302 < DELETE NOM. WORD NOM-ZERO*2 WORD LNOM+2*2 WORD -1 DEMREP: WORD '0101 < ENTREE REPONSES UTILISATEUR. WORD REP-ZERO*2 WORD 1 DEMHEX: WORD '0101 < ENTREE D'UNE CONSTANTE HEXA-DECIMALE. WORD REP-ZERO*2 WORD 4 DEMMES: WORD '0202 < EMISSION D'UN MESSAGE. WORD 0 < @OCTET DU MESSAGE. WORD 0 < LONGUEUR DU MESSAGE. DEMIN: WORD '0101 < ENTREE DE LA RCINE DU CATALOGUE. WORD NOM-ZERO*2 WORD 2*LNOM-1 DEMOUT: WORD '0202 < AFFICHAGE DU NOM COURANT. WORD RCLF-ZERO*2+1 WORD 0 < LONGUEUR DU NOM COURANT. DEMCCI: WORD '0001 < RETOUR AU CCI. DEMMEM: WORD '0004 < DEMANDE D'ALLOCATION 8K MOTS. WORD 0 WORD '5000 < 10K MOTS. RELMEM: WORD '0004 < DEMANDE DE RETOUR A 4K MOTS. WORD 0 WORD '2000 < 4K MOTS. IF ORDI-"S",XWOR%,,XWOR% STABIL: WORD '8A01 < STABILISATION DE L'IMAGE VIDEO. WORD IMAG-ZERO*2 WORD '2000 WORD 0 XWOR%: VAL 0 DEMCHA: WORD '0101 < ENTREE DE LA CHAINE CHERCHEE... WORD CHAINE-ZERO*2 WORD LCHAIN DEMNOM: WORD '0202 < EDITION DU NOM D'UN ITEM LORS D'UNE < RECHERCHE POSITIVE... WORD ITEM1+NOMI-ZERO*2 WORD 0 DEMITE: WORD '0502 < CHARGEMENT D'UN ITEM LORS D'UNE < RECHERCHE POSITIVE... WORD ITEM1-ZERO*2 WORD LTNI*2 WORD -1 PROG PAGE IF ORDI-"T",XWOR%,,XWOR% TIMAG: WORD IMAG < @TRANSLATABLE DE L'IMAGE VIDEO. EOT #SIP SP3# XWOR%: VAL 0 PAGE < < < A C C E S A U S G N : < < < ARGUMENT : < A=NVP D'ACCES AU SGN. < < < RESULTAT : < A=CONDITIONS DE RETOUR DU SGN , < INDICATEURS POSITIONNES SUR ERREUR. < < GOSGN: EQU $ CPZR X JGE GOSGN1 < OK... PSR A LXI 0 < ON REINITIALISE LE PARCOURS, IL LAI '04 < S'AGIT SUREMENT D'UN DELETE DE STBY &ANOM < TOUT UN CATALOGUE... PLR A GOSGN1: EQU $ PSR X < SAVE X COURANT. STBY SCATAL < MISE EN PLACE DU NVP D'ACCES. LR X,A ADRI 1,A STA SCATAL+2 < MISE EN PLACE DE LA LONGUEU < COURANTE. LAD SCATAL SVC 0 < APPEL DU SGN. LR X,A < A=CONDITIONS DE RETOUR. PLR X < RESTAURE X COURANT. RSR PAGE < < < C O N V E R S I O N B I N A I R E --> H E X A : < < < ARGUMENT : < A=1 CHIFFRE HEXA EN BINAIRE. < < < RESULTAT : < LE CHIFFRE HEXA EST CONVERTI EN HEXA (ASCI) ET MIS < DANS LE BUFFER A L'INDEX (XHNOM) QUI ENSUITE < PROGRESSE D'UNE UNITE. < < HEXA: EQU $ CPI 9 < EST-CE UN CHIFFRE DECIMLA ??? JLE HEXA1 < OUI. ADRI '41-'39-1,A < NON , TRANSLATION VERS LES LETTRES. HEXA1: EQU $ ADRI '30,A < CONVERSION ASCI. LX XHNOM < X=INDEX COURANT HEXA. STBY &AHNOM < MISE DANS LE BUFFER HEXA. IC XHNOM < ET PROGRESSION DE L'INDEX COURANT. RSR < ET C'EST TOUT... PAGE < < < C O N V E R S I O N A S C I --> B I N A I R E : < < < RESULTAT : < A=VALEUR CONVERTIE S'IL N'Y A PAS < D'ERREUR, LES CODES DE CONDITION < L'INDIQUANT. < < HEX: EQU $ PSR B,X LXI 0 < X=INDEX DE 'REP'. LBI 0 < B=CUMUL COURANT. HEX1: EQU $ LBY &AREP < A=CARACTERE COURANT DE 'REP'. CPI '04 < EST-CE 'EOT' ??? JE HEX5 < OUI, FIN DE CONVERSION. CPI '0D < EST-CE 'R/C' ??? JE HEX5 < OUI, FIN DE CONVERSION. ADRI -'30,A < CONVERSION BIANIRE. JAL HEX2 < ERREUR. CPI 9 < EST-CE UN CHIFFRE DECIMAL ??? JLE HEX3 < OUI. ADRI -"A"+"9"+1,A < NON. CPI 'A < VALIDATION HEXDECIMALE ??? JL HEX2 < ERREUR. CPI 'F < VALIDATION HEXADECIMALE ??? JG HEX2 < ERREUR. HEX3: EQU $ SCRS 4 < CUMUL PARTIEL DE LA SCLD 4 < VALEUR A CONVERTIR. ADRI 1,X < PASSAGE AU CARACTERE SUIVANT. CPR X,Y < EST-CE FINI ??? JNE HEX1 < NON. HEX5: EQU $ LR B,A < OUI, A=RESULTAT. LBI 0 < B=0 : OK. HEX4: EQU $ CPZR B < POSITIONNEMENT DES CODES < DE CONDITION SUR ERREUR. PLR B,X RSR HEX2: EQU $ < CAS DES ERREURS. LBI 1 < B=1#0 : ERREUR. JMP HEX4 < VERS LA SORTIE... PAGE < < < E M I S S I O N M E S S A G E : < < < ARGUMENT : < A=@MOT DU MESSAGE , DONT LE 1ER OCTET EST < SA LONGUEUR. < < < DETRUIT X ... < < PRINT: EQU $ LR A,C < C=@MOT DU MESSAGE. ADR A,A ADRI 1,A < A=@OCTET DU MESSAGE. STA DEMMES+1 < MAJ DE DEMMES. LBY 0,C < A=LONGUEUR DU MESSAGE. STA DEMMES+2 < MAJ DE DEMMES. LAD DEMMES SVC 0 < EMISSION DU MESSAGE. RSR PAGE < < < R E C H E R C H E D E L A C H A I N E C O U R A N T E : < < < FONCTION : < CE MODULE EST MIS EN SOUS- < PROGRAMME A CAUSE DES SAUTS < SUPERIEURS A 128 MOTS ; IL < RECHERCHE LA CHAINE COURANTE DANS < L'ITEM COURANT, S'IL LA TROUVE, < IL EDITE SON NOM NON COMPACTE... < < < ARGUMENT : < (A)=INDEX DU CARACTERE COURANT. < < SPREC: EQU $ LR X,A < (A)=NOMBRE DE CARACTERES DU NOM : CPI 6 < EST-CE LA LONGUEUR D'UN <NOMC> ??? JNE E2011 < NON, CET ITEM EST IGNORE... PSR X,Y LXI 0 < (X)=INDEX DE TRANSFERT, E2040: EQU $ LBY &ANOM STBY &ANOMC < TRANSFERT, ADRI 1,X < AU SUIVANT... CPI '04 < ET ON S'ARRETE SUR <EON>... JNE E2040 LAD DEMITE SVC 0 < OUI, CHARGEONS LE EN ITEM1... JNE E2030 < ERREUR, IL A PEUT-ETRE ETE DETRUIT ENTRE < TEMPS, ON L'IGNORE... LXI 7 LBY &ANOMC < (A)=TYPE "I"/"N" : CPI 'C9 < EST-CE BIEN UN ITEM ??? JNE E2030 < NON, ON L'IGNORE... LXI IINDIC*2 LBY &ANOMC < (A)=TYPE DE L'ITEM : CPI "T" < TEXTE ??? JE E2012 < OUI, ON VA LE TESTER... CPI "D" < DESSIN ??? JE E2012 < OUI, ON VA LE TESTER... CPI "I" < FILM DIGITAL ??? JNE E2030 < NI L'UN, NI L'AUTRE, ON L'IGNORE... E2012: EQU $ CPZ ALCHAI < CHAINE VIDE ??? JE E2050 < OUI, ON EDITE... LXI -1 < (X)=INDEX DE L'ITEM1, E2020: EQU $ LYI 0 < (Y)=INDEX DE LA CHAINE. E2021: EQU $ ADRI 1,X < AU CARACTERE SUIVANT DE L'ITEM1 : LR X,A < S'IL EXISTE... CP NCP < ??? JGE E2030 < NON, ON IGNORE CET ITEM... LBY &AITEM1 < (A)=CARACTERE DE L'ITEM1, XR X,Y CPBY &ACHAIN < QUE L'ON COMPARE AU CARACTERE COURANT DE < LA CHAINE : XR X,Y JNE E2020 < PAS TROUVE DE COINCIDENCE... ADRI 1,Y < OUI, PASSONS AU CARACTERE SUIVANT DE < LA CHAINE : LR Y,A CP ALCHAI < S'IL EXISTE ??? JL E2021 < OUI... E2050: EQU $ LXI 3 < NON, ON A DONC TROUVE LA CHAINE, LBY &ANOMC ADRI -"0",A STA DEMNOM+2 < ON CALCULE LA LONGUEUR DU NOM DE L'ITEM, LAD MRCLF BSR APRINT < EDITION D'UN RC/LF... LAD DEMNOM SVC 0 < ET ON L'EDITE... E2030: EQU $ PLR X,Y E2011: EQU $ RSR PAGE < < < P R O C E S S E U R D ' E D I T I O N < E X A U S T I V E D E S C A T A L O G U E S : < < < FONCTION : < CE PROCESSEUR PERMET : < 1- SOUS :SYS DE LISTER SELECTIVEMENT LES ACN , < 2- SOUS TOUS LES NUMEROS DE COMPTE : < 2.1- DE LISTER SELECTIVEMENT LES NOMS , < 2.2- DE LISTER ET DELETER AUTOMATIQUEMENT ET < SELECTIVEMENT LES NOMS , < 2.3- DE LISTER ET DELETER EN PAS A PAS AVEC < VISUALISATION ET SELECTIVEMENT LES NOMS. < < WORD LOC+'80 WORD BRANCH CATAL: EQU $ LRP K ADRI -1,K PLR L,W < INITIALISATION DE L ET W. LA APILE LR A,K < INITIALOSATION DE K. IC KIN < COMPTAGE DES ENTRIES DANS 'EX'. JE E340 < CAS DE LA 1ERE ... BR AGOGE < POUR LA SUIVANTE , ON VA A 'GE'. E340: EQU $ < < INITIALISATION DE L'EDITEUR : < LAI '02 STA SCATAL < MISE EN MODE NORMAL DE SCATAL , < AFIN DE COMMENCER A PRIORI LE < PARCOURS DE L'ARBRE APRES < LES ACN ... STZ DELET < LISTAGE SEUL A PRIORI. STZ VISUAL < PAS DE VISUALISATION A PRIORI. < < FAUT-IL LISTER EN HEXADECIMAL ??? < E1000: EQU $ LAD MHEXA BSR APRINT < ENVOI D'UN MESSAGE INTERROGATION. LAD DEMREP SVC 0 < ENTREE DE LA REPONSE. LBY REP < A=CARACTERE REPONSE. < < REPONSES RECONNUES : < N : LISTAGE ALPHA-NUMEROQUE SEUL , < O : LISTAGE ALPHA-NUMERIQUE+HEXADECIMAL. < CPI "N" JE E1001 < LISTAGE ALPHANUMERIQUE SEUL. CPI "O" JNE E1000 < INCOMPREHENSIBLE ... < < LISTAGE ALPHA-NUMERIQUE+HEXADECIMAL : < LAI HNOM1-ZERO*2+1 < CHANGEMENT DE L'ADRESSE BUFFER. STA DEMOUT+1 LAI LNOM+2*4+2+1 STA KCONT < CONSTANTE DE CALCUL DE LA < LONGUEUR DES MESSAGES LORS DE < L'EDITION DES NOMS. LAI '20 SWBR A,A ORI '20 STA RCLF < ON REMPLACE LE RC-LF DE DEBUT DU < NOM ALPHA-NUMERIQUE PAR 2 < CARACTERES 'SPACE'. STA INDH < DE PLUS , ON FAIT AINSI INDH#0. E1001: EQU $ < < PROPOSITION DE RECHERCHE : < E2000: EQU $ STZ IRECH < NON A PRIORI... LAD MRECH BSR APRINT < ENVOI D'UN MESSAGE, LAD DEMREP SVC 0 < ET LECTURE DE LA REPONSE, LBY REP < (A)=REPONSE : CPI "N" JE E2001 < (IRECH)=0... CPI "O" JNE E2000 < ?!??!?! IC IRECH < (IRECH)#0... LAD MCHAI BSR APRINT < ENVOI D'UN MESSAGE... LAD DEMCHA SVC 0 < ET ENTREE DE LA CHAINE : ACTD 3 < (B)=LONGUEUR REELLE, STB ALCHAI < QUE L'ON MEMORISE, LR B,X ADRI -1,X < (X)=INDEX DU DERNIER CARACTERE, LBY &ACHAIN < (A)=DERNIER CARACTERE : CPI '04 < EST-CE UN LIMITEUR ??? JE E2002 < OUI, ON L'EFFACE... CPI '0D < EST-CE UN LIMITEUR ??? JNE E2003 < NON... E2002: EQU $ DC ALCHAI < EFFACEMENT DES LIMITEURS DE FIN... E2003: EQU $ JMP E400 < VERS L'ENTREE DE LA RACINE... E2001: EQU $ < < ENTREE DE LA LONGUEUR MAX : < E1001X: EQU $ LAD MLMAX BSR APRINT < "LMAX="... LAD DEMHEX SVC 0 < ENTREE DE LA CHAINE HEXA, LYI 4 < Y=4 CHIFFRES A CONVERTIR... BSR AHEX < ET CONVERSION : JNE E1001X < ERREUR... CPI LNOM*2 < VALIDATION... JG E1001X < ERREUR... JAL E1001X < ERREUR... JANE E1001Y < OK... LAI LNOM*2+1 < SI NUL, ON PREND LE MAX... E1001Y: EQU $ STA LMAX < < IDENTIFICATION DU DEMANDEUR : < WORD '1E25 < (A,B)=ACN DU DEMANDEUR. CP ACNSYS < EST-CE :SYS ???? JNE E600 < NON. LR B,A CP ACNSYS+1 < EST-CE :SYS ??? JNE E600 < NON. < < CAS DE :SYS : DOIT-ON LISTER LES ACN ??? < E301: EQU $ LAD MACN BSR APRINT < ENVOI D'UNE INVITATION. LAD DEMREP SVC 0 < ENTREE DE LA REPONSE. LBY REP < A=REPONSE UTILISATEUR. CPI "N" JE E300 < LES ACN NE SONT PAS DEMANDES. CPI "O" JNE E301 < ERREUR DE REPONSE , ON RECOMMENCE LAI '0A STA SCATAL < SCATAL EST MISE EN MODE DE < PARCOURS SUR LA RACINE DE L' < ARBRE DU SYSTEME. JMP E400 < ON SAUTE LES TESTS DE DELETE < ET DE VISUALISATION. < < CAS OU L'ON N'EST PAS SOUS :SYS : < E600: EQU $ IF ORDI-"T",XWOR%,,XWOR% STZ ASP3 < RAZ DU RELAI DE STABILISATION < DE L'IMAGE VIDEO. XWOR%: VAL 0 E300: EQU $ < < DEMANDE DE VISUALISATION : < E310: EQU $ LA LMAX CPI LNOM*2+1 < EST-CE LA LONGUEUR MAX ??? JNE E400 < NON, PAS DE VISUALISATION... LAD MVIS BSR APRINT < ENVOI D'UNE INVITATION. LAD DEMREP SVC 0 < ENTREE DE LA REPONSE. LBY REP < A=REPONSE UTILISATEUR. CPI "N" JE E400 < PAS DE VISUALISATION (VISUAL=0). CPI "O" JNE E310 < REPONSE INCOMPREHENSIBLE ... IC VISUAL < VISUALISATION (VISUAL=1#0). LAD DEMMEM SVC 0 < IL FAUT DEMANDER ALORS 8K MOTS. < < ENTREE DE LA RACINE DE PARCOURS : < E400: EQU $ LAD MRAC BSR APRINT < ENVOI D'UNE INVITATION. LAD DEMIN SVC 0 < ENTREE DE LA RACINE. LXI 0 < INITIALISATION DE L'INDEX. E210: EQU $ LBY &ANOM < ACCES UN CARACTERE DE LA RACINE. CPI '04 < EST-CE L'EOT ??? JE E211 < OUI. ADRI 1,X < NON PROGRESSION INDEX. JMP E210 < ACCES CARACTERE SUIVANT. E211: EQU $ STX XRAC < SAVE L'INDEX INITIAL. CPZR X < L'EOT EST-IL EN 1ER CARACTERE ??? JE E212 < OUI , (X) EST INCHANGE (=0). ADRI -1,X < SI NON , ON REVIENT SUR LE < CARACTERE PRECEDENT. E212: EQU $ STX SXRAC < SAVE LA VALEUR DU X INITIAL. CPZ DELET < NATURE DE L'OPERATION DEMANDEE ??? JL E93 < EN MODE DELETE AUTOMATIQUE , < ON NE FAIT PAS D' A PARTIR DE ... < < EST-CE UN 'A PARTIR DE' ??? < E430: EQU $ LAD MPART BSR APRINT < ENVOI D'UNE INVITATION. LAD DEMREP SVC 0 < ENTREE DE LA REPONSE. LBY REP < A=REPONSE UTILISATEUR. < < REPONSES RECONNUES : < R/C , 'EOT' : SEULS SONT EDITES , LES NOMS < COMMENCANT PAR LA RACINE , < 0,...,9 : ON EDITE TOUT LE CATALOGUE A < PARTIR DES MOTS COMMENCANT PAR < LA RACINE. < CPI '0D JE E431 < ON RESTERA SUR LA RACINE. CPI '04 JE E431 < ON RESTERA SUR LA RACINE. ADRI -'30,A < CONVERSION BINAIRE. JAL E430 < ERREUR : ON REINTERROGE. CPI 9 < VALIDATION SUPERIEURE ... JG E430 < ERREUR : ON REINTERROGE ... STA XRAC < S'IL S'AGIT D'UN CHIFFRE < DECIMAL , IL DEVIENT LA < VALEUR DE TEST DE L'INDEX < COURANT DE PARCOURS (X). E431: EQU $ LX SXRAC < RESTAURE L'X INITIAL. < < B O U C L E D E R E C U P E R A T I O N : < E93: EQU $ LAI 9 BSR AGOSGN < DEMANDE DE NEXT-SERIE. CPI 5 < TEST DU CODE D'ERREUR. JE E94 < IL N'Y A PAS DE NEXT SERIE ... JAE E500 < OK , LE NEXT-SERIE EXISTE. LR X,A CP XRAC < EST-ON DE RETOUR SUR LA RACINE ??? JL E50 < OUI , ON ARRETE LE LISTAGE. ADRI -1,X < DANS LES AUTRES CAS D'ERREURS , < ON FAIT UN RETOUR ARRIERE , CAR < EN EFFET ON NE DOIT PLUS SAVOIR < OU L'ON EN EST SUITE A UN < DELETE SIMULTANE ... JMP E93 < N'ETANT PAS DE RETOUR SUR < LA RACINE , ON CONTINUE. < < CAS OU IL Y A UN NEXT-SERIE : < E500: EQU $ LR X,A CP LMAX < EST-CE LE MAX ??? JGE E500X1 < OUI, ON EDITE... ADRI 1,X LBY &ANOM < RECUPERATION DE CE NEXT-SERIE. CPI '04 < EST-CE UNE FIN DE NOM ??? JNE E93 < NON , ON CONTINUE A RECUPERER. < < TRAITEMENT DU NOM COURANT : < E500X1: EQU $ PSR X < SAVE L'INDEX COURANT. CPZ IRECH < FAIT-ON UNE RECHERCHE ??? JE E2010 < NON, TRAITEMENT NORMAL... < < CAS DES RECHERCHES SUR ITEM : < BSR ASPREC < RECHERCHE DE LA CHAINE COURANTE... JMP E401A < ET ON VA PASSER AU NOM SUIVANT... < < MODE NON-RECHERCHE, < EDITION DU NOM : < E2010: EQU $ LR X,A < A=NBRE DE CARACTERES DU NOM. AD KCONT < CALCUL DE LA LONGUEUR DU < MESSAGE A EDITER. STA DEMOUT+2 < ET MAJ DE DEMOUT AVEC (A). CPZ INDH < FAUT-IL DE PLUS CONVERTIR EN HEXA? JE E1002 < NON , ON VA EDITER .... < < CONVERSION HEXA DES NOMS : < STZ XHNOM < RAZ DE L'INDEX DU NOM HEXA. STZ XANOM < RAZ DE L'INDEX DU NOM ALPHA. E1003: EQU $ < BOUCLE DE CONVERSION ALPHA-HEXA. PSR X < SAVE LE NBRE DE CARACTERES A < CONVERTIR. LX XANOM < X=INDEX DU NOM ALPHA. LBY &ANOM < A=1 CARACTERE ALPHA. IC XANOM < PROGRESSION DE L'INDEX ALPHA. SLRD 4 < A=1ER CHIFFRE HEXA , ET SAVE < LE 2EME DANS B. BSR AHEXA < CONVERSION HEXA ET MISE DANS < LE BUFFER HEXA. LAI 0 < CLEAR A , SLLD 4 < ET RECUPERATION DU 2EME CHIFFRE. BSR AHEXA < CONVERSION HEXA DU 2EME < CHIFFRE ,, ET MISE DANS LE BUFFER. PLR X < RESTAURE LE COMPTE DE CARACTERES. JDX E1003 < AU SUIVANT ... LX XHNOM < X=INDEX COURANT BUFFER HEXA. LAI '20 < A='SPACE'. E1004: EQU $ < BOUCLE DE MISE A 'SPACE' DE < LA FIN DU BUFFER ... XR A,X CPI LNOM+2*4 < EST-ON AU BOUT DU BUFFER ??? JE E1002X < OUI , ON ARRETE ... XR A,X < NON , STBY &AHNOM < MISE A 'SPACE' DU CARACTERE < COURANT. ADRI 1,X < AU SUIVANT ,... JMP E1004 E1002X: EQU $ LA DEMOUT+2 < A=CODEM, LB DEMOUT+1 < B=AMDEM, PSR A,B < ET SAVE... SLRS 1 < POUR FAIRE 2 ECHANGES : LR A,B < B=CODEM DU 2EME ECHANGE, ADCR A < A=CODEM DU PREMIER... STA DEMOUT+2 LAD DEMOUT SVC 0 < PREMIERE PARTIE DE LA SORTIE... JNE E50X < CTRL-X-OFF... LA DEMOUT+1 AD DEMOUT+2 < TRANSLATION DE AMDEM, STA DEMOUT+1 STB DEMOUT+2 LAD DEMOUT SVC 0 < DEUXIEME PARTIE DE LA SORTIE... E50X: EQU $ PLR A,B STA DEMOUT+2 < RESTAURATION DE LA DEMANDE... STB DEMOUT+1 JNE E50 < SORTIE ABORTEE PAR CTRL-X-OFF... JMP E1002Y E1002: EQU $ < EDITION DU BUFFER. LAD DEMOUT SVC 0 < EDITION DU NOM COURANT. JNE E50 < ARRET SUR CTRL-X-OFF ... E1002Y: EQU $ CPZ VISUAL < FAUT-IL VISUALISER ??? JE E401A < NON ... < < VISUALISATION DE LA VALEUR DU NOM : < LX LVAL E361: EQU $ STZ &ZAVAL < RAZ DE LA VALEUR AU PREALABLE , < AFIN DE VOIR SUR LA TV , LA < NATURE DE LA VALEUR. JDX E361 LXI LNOM LAD NOM LB AVAL MOVE < LE NOM DE LA VALEUR EST MIS EN < TETE DE LA VALEUR. LAD DEMLOD SVC 0 < CHARGEMENT SOUS ACN DE LA < VALEUR DU NOM COURANT. < < STABILISATION EVENTUELLE DE L'IMAGE VIDEO : < IF ORDI-"T",XWOR%,,XWOR% LA ASP3 < ACCES AU RELAI DE LA ROUTINE. JAE E401 < ON N'EST PAS SOUS :SYS. WORD '1EC5 < STABILISATION MAITRE SOUS :SYS. E401: EQU $ XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% LXI 3 < STABILISATION DE L'IMAGE VIDEO E401: EQU $ STX STABIL+3 < SUR LES TROIS PROCESSEURS. PSR X LAD STABIL SVC 0 PLR X JDX E401 XWOR%: VAL 0 E401A: EQU $ PLR X < RESTAURE L'INDEX COURANT. CPZ DELET < EST-ON EN MODE DELETE EVENTUEL ??? JE E322 < NON , PASSAGE AU NOM SUIVANT. < < DELETE EVENTUEL D'UN NOM : < PSR X < SAVE L'INDEX COURANT. JL E360 < CAS D'UN DELETE AUTOMATIQUE. E320: EQU $ LAD MDEL BSR APRINT < ENVOI D'UNE INVITATION. LAD DEMREP SVC 0 < ENTREE REPONSE UTILISATEUR. LBY REP < A=REPONSE UTILISATEUR. < < REPONSES RECONNUES : < R/C , 'EOT' , + : LE NOM EST CONSERVE , < - : LE NOM EST DELETE. < CPI '0D JE E321 < R/C : LE NOM EST CONSERVE. CPI '04 JE E321 < 'EOT' : LE NOM EST CONSERVE. CPI "+" JE E321 < + : LE NOM EST CONSERVE. CPI "-" JNE E320 < REPONSE NON RECONNUE ... E360: EQU $ < ENTRY 'DELETE AUTOMATIQUE'. LAD DEMDEL SVC 0 < - : LE NOM EST DELETE. E321: EQU $ PLR X < RESTAURE L'INDEX COURANT. E322: EQU $ LR X,A CP LMAX < EST-ON SUR LE MAX ??? JL E322X < NON... ADRI -1,X < OUI, ON RECULE... E322X: EQU $ < < RECHERCHE DU NEXT-PARALLELE : < E98: EQU $ E94: EQU E98 < ENTRY DE 1ERE RECHERCHE NEXT- < SERIE (CF. RACINE D'UN CATALOGUE) LAI 8 BSR AGOSGN < RECHERCHE NEXT-PARALLELE. CPI 5 < TEST DU CODE D'ERREUR. JE E97 < CAS DU NEXT-PARALLELE QUI < N'EXISTE PAS ... JANE E93 < AUTRES CAS DU SUREMENT A UN < DELETE SIMULTANE QUI DESORIENTE!!! < < CAS OU IL Y A UN NEXT-PARALLELE : < E330: EQU $ ADRI 1,X LBY &ANOM < RECUPERATION DE CELUI-CI. ADRI -1,X STBY &ANOM < ET ON LE MET A SA BONNE PLACE. JMP E93 < ET RETOUR A LA BOUCLE DE < RECUPERATION. < < CAS OU IL N'Y A PAS DE NEXT-PARALLELZE : < E97: EQU $ ADRI -1,X < RETOU ARRIERE DANS LE NOM. LR X,A < POUR VALIDATION. CP XRAC < EST-ON DE RETOUR SUR LA RACINE ??? JGE E98 < NON , ON CONTINUE ... < < R E T O U R A ' G E ' : < E50: EQU $ LA APILE LR A,K < RESTAURE EVENTUELLEMENT LA < PILE K PAR PURE PROPRETE (CF. < PAR EXEMPLE LES CTRL-X-OFF...) LAD RELMEM SVC 0 < REYOUR A 4K MOTS A PRIORI. LA NGE STA 0,W < MISE EN PLACE DU NOM DE GE EN < TETE DE LA BRANCHE D'OVERLAY. LAI 6 STBY DEMSGN < MISE EN PLACE DU NVP DE LOAD < SOUS :SYS. E101: EQU $ LAD DEMSGN BSR AOVL < TENTATIVE DE CHARGEMENT GE. LAD DEMCCI SVC 0 < RETOUR AU CCI SI ERREUR. JMP E101 < ET NOUVELLE TENTATIVE SI !GO. PAGE < < < I M P L A N T A T I O N : < < X12: EQU ZERO+PILE-LTNI-LTNI X10: VAL X12-$ ZEROV: EQU ZERO+X10 < ERREUR D'ASSEMBLAGE SI MAUVAISE < IMPLANTATION. DZS X10+1 EOT #SIP GEN PROCESSEUR#