NMPROC: VAL "GC" < NOM DU PROCESSEUR. IDP "GC - RELEASE 01/06/1979" IDP "JOHN F. COLONNA" EOT #SIP DEF PROCESSEUR# PROG WORD DUMP < ADRESSE DE LANCEMENT DU < PROCESSEUR 'DU'. WORD 0 < POUR FAIRE $=$+1. PDUMP: EQU $ < A NOTER : P='12 !!!! LRP L BR -2,L < ENTREE DANS LE PROCESSEUR. EOT #SIP DEFINITION ITEM# PAGE < < < L O C A L D U P R O C E S S E U R : < < LOCAL LOC: EQU $ < < B U F F E R S E T M E S S A G E S : < BUFFER: WORD 0 < BUFFER D'ENTREE DES COMMANDES. MCOM: BYTE '6D;">" < MESSAGE D'INVITATION A ENTER < LA COMMANDE. MERR: BYTE '6D;"?" < MESSAGE D'ERREUR. < < D E M A N D E S A C M S 4 : < DEMIN: WORD '0101 < DEMANDE D'ENTREE COMMANDE. WORD BUFFER-ZERO*2 WORD 1 DEMOUT: WORD '0202 < DEMANDE DE SORTIE MESSAGE. WORD MCOM-ZERO*2 WORD 2 DEMERR: WORD '0202 < DEMANDE DE SORTIE ERREUR. WORD MERR-ZERO*2 WORD 2 DEMSGN: WORD '0402 < DEMANDE AU SGN INITIALISEE EN < GENERATION DU PROCESSEUR GC. WORD BRANCH-ZERO*2 WORD ZERO-BRANCH+PILE-LTNI-LTNI*2 WORD -1 DEMMEM: WORD '0004 < DEMANDE D'ALLOCATION 8K MEMOIRE. WORD 0 WORD '4000 < PASSAGE A 8K MOTS. DEMCCI: WORD '0001 < DEMANDE DE RETOUR AU CCI. CCI: EQU DEMCCI < < A D R E S S E S D E T A B L E S : < APILE: WORD PILE-1 < POUR INITIALISER K. AI11: WORD ZERO+PILE-LTNI+LTN-1,X < RELAI D'ACCES A L'ITEM1 EN < INDEXATION MOT PAR RAPPORT A 1. AI1: WORD ZERO+PILE-LTNI+LTN,X < RELAI D'ACCES A L'ITEM1 , < EN INDEXATION OCTET PAR < RAPPORT A 0. AI2: WORD ZERO+PILE-LTNI-LTNI < @EN-TETE DE L'ITEM2. < < R E L A I S D E R O U T I N E S : < AOVL: WORD OVL < CHARGEMENT DES OVERLAYS. ASTK: WORD STK < RANGEMENT D'UN CARACTERE < DANS L'ITEM1. < < C O N S T A N T E S : < NGE: ASCI "GE" < NOM DE LA BRANCHE D'OVERLAY 'GE'. NC8: WORD NBCAR*NBLIG/8 < NBRE DE MOTS DUMPABLES < DANS L'ITEM1. NC1: WORD NBCAR*NBLIG/8*8-1 < NBRE DE CARACTERES ASCI < EQUIVALENTS APRES CONVERSION < BINAIRE-->ASCI MOINS 1 (POUR < INDEXER PAR RAPPORT A 0). ALTNI: WORD LTNI < LONGUEUR TOTALE D'UN ITEM. < (EN-TETE+CORPS). PAGE < < < D U M P E R D E P R O G R A M M E S < G R A P H I Q U E S : < < < FONCTION : < LES PROGRAMMES GRAPHIQUES SOUMIS < A '3D' SONT ECRIS EN LANGAGE MACHINE ; < CE SYSTEME PERMET DE CONVERTIR LE < LANGAGE MACHINE BINAIRE (1 MOT) , < UN LANGAGE MACHINE ASCI (1 MOT=8 < CARACTERES ASCI) EDTITABLES PAR 'ED'. < LE FORMAT DE LA CONVERSION EST LE < SUIVANT : < <1 MOT BINAIRE>::=<4 CARACTERES ASCI HEXA- < DECIMAUX><4 CARACTERES 'SPACE'>. < DE PLUS CE SYSTEME PERMET LA CONVERSION < INVERSE : DU LANGAGE ASCI , EN < LANGAGE BINAIRE . LE PROGRAMME GRAPHIQUE < EST LIMITE EN CONSEQUENCES A UN < QUART DE L'ITEM1 (POUR PERMTTRE < L'EXPANSION ASCI). < < PROG < < E N T R Y P R O C E S S E U R : < WORD LOC+'80 < VALEUR INITIALE DE LA BASE L. WORD BRANCH < VALEUR INITIALE DE LA BASE W. DUMP: EQU $ LRP K ADRI -1,K PLR L,W < INITIALISATION DE L & W. LB APILE LR B,K < INITIALISATION DE K. < < < I N T I A L I S A T I O N D U D U M P : < < LAI 6 STBY DEMSGN < LA DEMANDE AU SGN EST MISE < EN MODE 'LOAD SOUS :SYS'. LA NGE STA 0,W < PREPARATION DU NOM DE LA < BRANCHE D'OVERLAY A APPELER < A LA SORTIE. < < < I N T E R R O G A T I O N < L ' U T I L I S A T E U R : < < E5: EQU $ LAD DEMOUT SVC 0 < ENVOI D'UN MESSAGE D'2NVITATION. LAD DEMIN SVC 0 < ENTREE DE LA REPONSE. < < ANALYSE DE LA REPONSE (1 CARACTERE) : < LBY BUFFER < < LISTE DES REPONSES AUTORISEES : < G : APPEL DU COMPILATEUR (' S' + ' L') , < D : CONVERSION BINAIRE-->ASCI , < U : CONVERSION ASCI-->BINAIRE (2NVERSE) , < C : RETOUR AU CCI , < F : RETOUR IMMEDIAT A 'GE'. < EOT/RC : RETOUR IMMEDAIT A GE. < CPI "G" < EST-CE LE COMPILATEUR ??? JE COMPIL < OUI. CPI "D" < EST-CE UN DUMP EN ASCI ???? JE ASCI < OUI. CPI "U" < EST-CE LE DUMP BINAIRE (INVERSE) ??? JE BINARY < OUI. CPI "C" < EST-CE UN RETOUR AU CCI ??? JE E50 < OUI. CPI "F" < EST-CE UN RETOUR A 'GE' ??? JE E6 < OUI , RETOUR A 'G)' IMMEDIAT ... CPI '04 < EST-CE 'EOT' ???? JE E6 < OUI , RETOUR A 'GE'. CPI '0D < EST-CE LE R/C ???? JNE E5 < NON , ON RE-INTERROGE L' < UTILISATEUR. < < R E T O U R A ' G E ' : < E6: EQU $ LAD DEMSGN < A=@DEMSGN ; W=@BRANCH. BSR AOVL < TENTATIVE DE CHARGEMENT DE 'GE'. < < TRAITEMENT DES ERREURS DE CHARGEMENT : < WORD '1E16 < RETOUR DIRECT AU CCI. JMP $-1 < ET DEFINITIF.... < < TRAITEMENT DES ERREURS : < E31: EQU $ LAD DEMERR SVC 0 < ENVOI D'UN MESSAGE D'ERREUR. JMP E6 < VERS LE RETOUR A 'GE'. < < R E T O U R A U C C I : < E50: EQU $ LAD DEMCCI SVC 0 < RETOUR AU CCI. JMP E5 < RE-INTERROGATION DE L'UTILI- < SATEUR AU CAS OU ON RECOIT !GO. PAGE < < < R A N G E M E N T C A R A C T E R E : < < < FONCTION : < CETTE ROUTINE RANGE UN CARACTERE < ASCI DANS L'ITEM1. < < < ARGUMENTS : < A=CARACTERE ASCI , < Y=INDEX OU LE RANGER DANS ITEM1. < < < RESULTAT : < Y<--(Y)-1. < < STK: EQU $ XR X,Y < SAVE X , ET X=INDEX DE < RANGEMENT DU CARACTERE ARGUMENT. STBY &AI1 < RANGEMENT DANS ITEM1. ADRI -1,X < DECREMENTATION DU REGISTRE 'Y' < ARGUMENT. XR X,Y < RESTAURE X & Y. RSR < ET C'EST TOUT .... PAGE < < C O N V E R S I O N B I N A I R E ---> A S C I : < D A N S I T E M 1 < < < FONCTION : < CE MODULE CONVERTIT LE LANGAGE < MACHINE BINAIRE EN LANGAGE MACHINE < ASCI A RAISON DE 8 CARACTERES ASCI < POUR UN MOT MACHINE (4 CHIFFRE < HEXA+4 SPACE). < < ASCI: EQU $ < < CHECK TYPE DE L'ITEM : < LXI IINDIC-LTN*2 LBY &AI1 < A=TYPE DE L'ITEM1. CPI "P" < EST-CE BIEN 'PROGRAMME' ??? JNE E31 < ERREUR , REFUS DE DUMP. < < BOUCLE DE CONVERSION DES MOTS MACHINE : < LY NC1 < Y=INDEX CARACTERE PAR RAPPORT < A 0. LX NC8 < X=INDEX MOT PAR RAPPORT A 1. E10: EQU $ LB &AI11 < B=1 MOT A CONVERTIR EN ASCI. PSR X < SAVE L'INDEX MOT. < < BOUCLE D'INSERTION DE 4 'SPACE' : < LXI 4 < NBRE DE 'SPACE' A INSERER. LAI '20 < A='SPACE'. E11: EQU $ BSR ASTK < INSERTION DES 4 'SPACE'. JDX E11 < < BOUCLE DE CONVERSION DU MOT (B) : < LXI 4 < NBRE DE CHIFFRES HEXA A GENERER. E12: EQU $ LAI 0 < RAZ A A CHAQUE TOUR. SCRD 4 SCLS 4 < RECUPERATION DANS A CADRE A < DROITE D'UN CHIFFRE HEXA. CPI 9 < DISCRIMINATION CHIFFRE/LETTRE ??? JLE E13 < CAS DES CHIFFRES (0-9). ADRI '41-'39-1,A < CAS DES LETTRES (A-F). E13: EQU $ ADRI '30,A < CONVERSION ASCI. BSR ASTK < ET INSERTION DANS L'ITEM1. JDX E12 < CHIFFRE SUIVANT DANS LE MOT < COURANT. E40: EQU $ < ENTRY POUR LANGAGE MACHINE < ASCI ERRONE : ON ANNULE TOUTE < LA CONVERSION DEJA OPEREE. PLR X < RESTAURE L'INDEX MOT. JDX E10 < ACCES AU MOT SUIVANT A CONVERTIR. < < MISE EN PLACE DU TYPE 'T' (TEXTE) : < LXI IINDIC-LTN*2 < INDEX OCTET DU TYPE DE L'ITEM. LAI "T" < TYPE 'TEXTE' POUR ASSUER < LA COMPATIBLITE AVEC 'ED'. STBY &AI1 JMP E6 < RETOUR A 'GE' APRES LA < CONVERSION. PAGE < < < C O N V E R S I O N A S C I ---> B I N A I R E : < D A N S I T E M 1 < < < FONCTION : < CE MODULE REGENERE LE LANGAGE < MACHINE BINAIRE A PARTIR DU LANGAGE < MACHINE ASCI. < < BINARY: EQU $ < < CHECK LE TYPE DE L'ITEM : < LXI IINDIC-LTN*2 LBY &AI1 < A=TYPE DE L'ITEM1. CPI "T" < EST-CE BIEN LE TYPE 'TEXTE' ??? JNE E31 < NON ERREUR , LE DUMP INVERSE < EST REFUSE. < < BOUCLE DE REGENERATION DES MOTS : < LXI 1 < INDEX MOT. LYI 0 < INDEX CARACTERE. E20: EQU $ PSR X < SAVE L'2NDEX MOT. < < BOUCLE DE RECUPERATION 1 MOT : < LXI 4 < NBRE DE CHIFFRES HEXA POUR < RECONSTITUER UN MOT MACHINE. E21: EQU $ XR X,Y LBY &AI1 < ACCES AUN CHIFFRE HEXA DANS < L'ITEM1. ADRI 1,X < PROGRESSION DE L'INDEX < CARACTERES. XR X,Y ADRI -'30,A < REGENERATION HEXADECIMALE. JAL E30 < ERREUR : ITEM1 NE CONTIENT PAS < PAS DE LANGAGE MACHINE ... CPI 9 < EST-CE UN CHIFFRE ??? JLE E22 < OUI. ADRI -'41+'39+1,A < CAS DES LETTRES PRESUMEES (A-F). CPI 'A < VALIDATION ??? JL E30 < ERREUR : MAUVAIS LANGAGE ... CPI 'F < VALIDATION ??? JG E30 < ERREUR : MAUVAIS LANAGE .... E22: EQU $ SCRS 4 SCLD 4 < RECONSTITUTION DANS LE REGISTRE < B DU MOT COURANT. JDX E21 < CHIFFRE HEXA SUIVANT .... PLR X < RESTAURE L'INDEX MOT. STB &AI11 < RANGEMENT DU MOT QUE L'ON < VIENT DE CONVERTIR. ADRI 4,Y < ON DEPASSE LES '4 SPACE. ADRI 1,X < PROGRESSION DE L'INDEX MOT. LR X,A CP NC8 < EST-ON AU BOUT DE L'ITEM1 ???? JLE E20 < NON , ALLONS RECONSTITUER < LE MOT SUIVANT. < < RESTAURATION DU TYPE 'P' (PRPROGRAMME) : < LXI IINDIC-LTN*2 LAI "P" < TYPE 'PROGRAMME'. STBY &AI1 < L'2TEM1 PREND LE TYPE 'P'. JMP E6 < EN FIN DE CONVERSION , ON < RETOURNE A 'GE'. < < TRAITEMENT DES LANGAGES MACINES ASCI < ERRONES : IL FAUT ANNULER TOUTE LA CONVERSION < ASCI-->BINAIRE DEJA OPEREE ; POUR CELA , < ON VA REUTILISER LE MODULE 'ASCI' : < E30: EQU $ LAI -8 ANDR A,Y < ON REMET Y A UNE FRONTIERE DE < 'MOT ASCI' DU LANGAGE MACHINE. ADRI -1,Y < PASSAGE SUR LE DERNIERE CARACTERE < DU MOT PRECEDENT (EVENTUEL). LAD DEMERR SVC 0 < ENVOI D'UN MESSAGE D'ERREUR. JMP E40 < VERS LA CONVERSION INVERSE. PAGE < < < C O M P I L A T E U R G : < < < FONCTION : < CE MODULE FAIT D'ABORD UNE DEMANDE < D'ALLOCATION 8K MOTS MEMOIRE , PUIS < SAUVEGARDE L'ITEM1 EN BOUT DES 8K , < ET ENFIN APPELLE LA 1ERE BRANCHE DE < L'OVERLAY (' S'). < LE TEXTE SOURCE EST DANS L'ITEM1. < ET L'EN-TETE DE L'ITEM2 DANS LES < MOTS QUI PRECEDENT L'ITEM1 TRANSLATE. < < COMPIL: EQU $ LAD DEMMEM SVC 0 < PASSAGE DE 4K A 8K MOTS. < < SAUVEGADRE DE L'ITEM1 : < LA AI1 RBT 0 < A=@DU CORPS DE L'ITEM1. ADRI -LTN,A < A=EMETTEUR=@EN-TETE ITEM1. LR A,B SBT 16+3 < B=RECEPTEUR=@EN-TETE DE L'ITEM1 < TRANSLATE DE 4K MOTS. LX ALTNI < X=NBRE DE MOTS A DEPLACER. MOVE < SAUVEGARDE DE L'ITEM1. < < SAUVEGARDE DE L'EN-TETE DE L'ITEM2 : < ADRI -LTN,B < B=RECEPTEUR .. LA AI2 < A=EMETTEUR=@EN-TETE DE L'ITEM2. LXI LTN < X=NBRE DE MOTS DE L'EN-TETE. MOVE < SAUVEGARDE EN-TETE ITEM2. < < APPEL DE L'ASSEMBLEUR ' S' : < LAI "S" SBT 2 < A=' S'=NOM DE LA BRANCHE. STA 0,W < MISE EN PLACE DU NOM DE LA < BRANCHE A APPELER. LAD DEMSGN BSR AOVL < ESSAI DE CHARGEMENT DE ' S' , < AVEC : A=@DEMSGN , W=@BRANCH. < < CAS DES RETOURS EN ERREUR DU SGN : < LAD CCI SVC 0 < ON FAIT ALORS UN RETOUR JMP $-1 < DEFINITIF AU CCI. < < < V A L I D A T I O N 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 DZS X10+1 EOT #SIP GEN PROCESSEUR#