NMPROC: VAL " L" < NOM DU PROCESSEUR. IDP " L - RELEASE 01/06/1979" IDP "JOHN F. COLONNA" < < < C H A R G E U R T R A N S L A T E U R L O A D : < < < PHILOSOPHIE : < LOAD EST EN FAIT IRLD REBAPTISE PAR < LE CLIENT (ET OUI ENCORE) .... < ET MODIFIE LEGEREMENT (AVANT DE LE < REFAIRE ..... < LE PROGRAMME GENERE SE TROUVE < DANS L'ITEM2. < < EOT #SIP DEF PROCESSEUR# SPROG: VAL '100 < UNE TRANSLATION AUSSI FAIBLE < PERMET DE CHARGER CE PROCESSEUR < AVEC LE !LOAD EXISTANT. WORD LOAD < ADRESSE DE LANCEMENT DE LOAD. PROG WORD 0 < POUR FAIRE $=$+1. PLOAD: EQU $ LRP L BR -2,L < ENTRY DANS LE PROCESSEUR. < < SUITE DE LA ZONE RESERVEE POUR < IMPLANTER LE PROGRAMME A CHARGER : < DZS SPROG EOT #SIP DEFINITION ITEM# PAGE < < < C O M M O N : < < COMMON TOUDEB: EQU $ < < BUFFERS DE TRAVAIL DU LOADER : < BUFFER: DZS 4 < BUFFER DE SORTIE. INDEX: WORD 0 < INDEX BUFFER BINAIRE. KSTORE: DZS 20 CHKSUM: DZS 1 < CHECKSUM. ABSMOD: WORD -1 ADSTOC: DZS 2 < QUADRUPLET 'AU FRAIS'. AI2: WORD ZERO+PILE-LTNI-LTNI+LTN+1,X < RELAI INDEXE D'ACCES A L'ITEM2. < (+1 AFIN DE RESERVER LE MOT0 < POUR L'ADRESSE DE DEPART). AI20: WORD ZERO+PILE-LTNI-LTNI+LTN,X < ACCES A L'ITEM2 A PARTIR DE 0. CTRANS: WORD ZERO+PILE-LTNI-LTNI+LTN+1 < CETTE CONSTANTE DE TRANSLATION < PERMET D'IMPLEMENTER LE PRO- < GRAMME CHARGE DANS ITEM2. MAXMEM: WORD ZERO+PILE-LTNI+LTN < POUR NE PAS DEPASSER L'ITEM1. NCP: WORD NBCAR*NBLIG < LONGUEUR A DONNER AUX ITEM < DE TYPE 'P'. PAFINI: DZS 1 < RELAI POUR LES SUITES DE < COMMANDES. ADLANC: DZS 1 < ADRESSE DE LANCEMENT DU PROGRAMME < CHARGE. FINMOD: DZS 1 < INDICATEUR DE FIN DE MODULE. PREM2: DZS 1 < PREM DU PROGRAMME. CPTLOD: DZS 1 < COMPTEUR DE REPEAT LOAD. CCI: WORD 1 < RETOUR AU CCI SI ERREUR. DEMMEM: WORD '0004 < DEMANDE D'ALLOCATION MEMOIRE. WORD 0 WORD '2000 < POUR REVENIR A 4K MOTS. DEMSGN: WORD '0402 < DEMANDE D'ACCES AU SGN INITIALI- < SEE EN 'STORE'. WORD BRANCH-ZERO*2 WORD ZERO-BRANCH+PILE-LTNI-LTNI*2 WORD -1 IOCBL: WORD '0202 < SORTIE LISTING. WORD BUFFER-ZERO*2 WORD 0 ZBO: VAL '1000 < @DU 1ER OCTET DE BINAIRE A < CHAGER ; RAPPELONS QUE CELUI-CI < (LE BINAIRE EVIDEMMENT...) SE < TROUVE SITUE EN TETE DES 4K < SUIVANTS. ABO: WORD ZERO+ZBO,X < RELAI COURANT VERS LE 'FICHIER' < BINAIRE. APILE: WORD PILE-1 < PILE UTILISEE LORS DU CHARGEMENT < DES BRANCHES D'OVERLAY. AOVL: WORD OVL < CHARGEMENT DES OVERLAYS. RAGE: WORD AGE < RETOUR A LA BRANCHE 'GE'. ALTNI: WORD LTNI < LONGUEUR TOTALE D'1N ITEM. NGE: ASCI "GE" < NOM DE LA BRANCHE 'GE'. RCLF: WORD '0D0A ERREUR: ASCI "ERU " START: ASCI "RUN " SORMES: WORD ENTMOT < SP DE SORTIE QUESTIONS. MERCLF: WORD MSGRC < SP DE SORTIE DE RC-LF. MESER: WORD MSGERR < SP DE SORTIE ERREURS. LITQ: WORD SPLITQ < SP DE LECTURE 1 QUADRUPLET. AUFRAI: WORD ADSTOC+2,X < QUADRUPLET 'AU FRAIS'. TABCDE: WORD TABAIG,X TABAIG: WORD DEBUT;SUITE;LANCT;REPEAT;CHECK;COMENT WORD PACDE;TRANSL;REMADR;DEPADR;LECTUR;NSECT;ENT;REMJMP RANGB: WORD VERIFW < SP RANGE B EN VERIFIANT. TRIMPW: WORD WCIMP < MODIFIE IMPLANTATION DE W. TRENTE: WORD '3030 NEWCHG: WORD RELANS < RELANCE DU MODULE. TRINFB: WORD BTRANS < TRANSLATE INFO B. AREMA2: WORD REMAD2 ADEPA2: WORD DEPAD2 DIX: WORD 10 NB7FFF: WORD '7FFF < POUR FIN DE CHAINE. ADRFAT: WORD RFATAL ADLECT: WORD LECTUR ASECT2: WORD SECT2 ARJMP2: WORD REMJM2 < RELAI SUITE REF. AVANT RELATIVE. SORCAR: WORD PRECAR < SORTIE DE 3 CARACTERES. SORADR: WORD ECRADR < SORTIE ADRESSE. SORHEX: WORD BUFFER+3,X < POUR ADRESSE RELATIVE. BLQ: ASCI " '" PAGE PROG < < < M O D U L E D E R E T O U R A G E : < < < FONCTION : < CE MODULE PERMET DE RETOURNER < A LA BRANCHE 'GE' EN AYANT AU < PREALABLE RESTAURER L'ITEM1 , ET < RENDU AU SYSTEME LES 4K SUPPLE- < MENTAIRES ALLOUES AVANT L'ASSEMBLAGE. < < AGE: EQU $ < < RESTAURATION DE L'ITEM1 : < LA MAXMEM ADRI -LTN,A < A=@EN-TETE DE L'ITEM1. LR A,B < B=RECEPTEUR=ITEM1. SBT 3 < TRANSLATION DU CONTENU DE A < DE 4K MOTS : A=EMETTEUR. LX ALTNI < X=NBRE DE MOTS A DEPLACER. MOVE < RESTAURE L'ITEM1. < < RESTAURATION DE L'EN-TETE DE L'ITEM2 : < ADRI -LTN,A < A=EMETTEUR=@ZONE DE SAUVEGARDE < DE L'EN-TETE DE L'ITEM2. LB CTRANS < B=@MOT0 DU CORPS DE L'ITEM2. ADRI -LTN,B < B=RECEPTEUR=@EN-TETE ITEM2. LXI LTN < X=NBRE DE MOTS D'UNE EN-TETE. MOVE < RESTAURATION DE L'EN-TETE ITEM2. < < MISE EN PLACE DU TYPE ET DE LA < LONGUEUR DE L'ITEM2 : < LXI IINDIC-LTN*2 LAI "P" < TYPE 'PROGRAMME'. STBY &AI20 LXI LRITEM-LTN < INDEX LONGUEUR DU CORPS ITEM. LA NCP < LA LONGUEUR ATTRIBUEE AU < CORPS DE L'ITEM PROGRAMME < EST LA LONGUEUR MAXIMALE. STA &AI20 < < RELEASE DE L'ESPACE MEMOIRE : < LAD DEMMEM SVC 0 < PASSAGE DE 8K A 4K MOTS. < < RETOUR A 'GE' : < LAI BRANCH-ZERO LR A,W < W=@BRANCH. LAI 6 STBY DEMSGN < DEMSGN EST MISE EN MODE 'LOAD < SOUS :SYS'. LA NGE STA 0,W < MISE DU NOM DE 'GE' EN TETE DE < LA BRANCHE. LA APILE LR A,K < MISE EN PLACE D'UNE PILE QUE < LE CHARGEMENT DES OVERLAYS NE < PERRTURBE PAS. LAD DEMSGN BSR AOVL < ESSAI DE CHARGEMENT DE < L'OVERLAY 'GE' : A=@DEMSGN , < W=@BRANCH. LAD CCI SVC 0 < RETOUR AU CCI DEFINITIF EN CAS JMP $-1 < D'ERREURS DE CHARGEMENT. PAGE < < < C H A R G E U R T R A N S L A T E U R : < < WORD TOUDEB+128 < INITIALISATION DE LA BASE C. LOAD: EQU $ LRP C LA -1,C LR A,C LAD KSTORE-1 LR A,K < INITIALISATION DE K. JMP RELANS < ET C'EST PARTI. < < SORTIE EN ERREUR DU LOAD : < HORTEN: EQU AGE < LORS DES ERREURS FATALES , ON < FAIT UN RETOUR CORRECT A 'GE'. RFATAL: EQU $ XR A,K < REINITIALISATION DE K. LAD KSTORE-1 XR A,K BSR MESER JMP HORTEN < < CHARGEMENT : < RELANS: EQU $ BSR MERCLF < ENVOI DE RC-LF. FEUVER: EQU $ BSR LITQ < LECTURE 1ER QUADRUPLET. CPI 'A3 < MODULE TRANSLATABLE ???? JNE ANALIZ < ABS=VRAI=-1 , CIMP=0. IC ABSMOD < ABSMOD=0. SLAVE: EQU $ LA CTRANS LR A,W < L'ADRESSE D'2MPLANTATION UTILISEE < EST CELLE DE L'2TEM2. < < < L E C T U R E D E S Q U A D R U P L E T S : < < LECTUR: EQU $ BSR LITQ ANALIZ: EQU $ ANDI 3 < ANALYSE DES COMMANDES. JAE ABSOL CPI 2 < COMMANDE TRANSLATABLE. JNE ERCMDE CPZ ABSMOD JL PATRAN LBY ADSTOC ANDI '1C ADRI '18,A NUMCDE: EQU $ SLRS 2 < NUMERO DE COMMANDE DANS X. LR A,X BR &TABCDE < AIGUILLAGE SPECIFIQUE VERS LA < COMMANDE. ABSOL: EQU $ LBY ADSTOC < CAS DES COMMANDES ABSOLUES. ANDI '1C CPI '14 JLE NUMCDE ERCMDE: EQU $ LAI '12 BR ADRFAT PATRAN: EQU $ LAI '13 BR ADRFAT < < < ' C H A R G E R E N ' : < < DEBUT: EQU $ BSR TRIMPW JMP MODPRM < < < C H A R G E R A L A S U I T E : < < SUITE: EQU $ BSR RANGB < RANGEMENT A LA SUITE DE < L'INFORMATION CONTENUE DANS B. ADRI 1,W LR W,A MODPRM: EQU $ LR A,Y SB PREM2 < MODIF DE PREM2. JC $+2 STY PREM2 DC CPTLOD JG SUITE < DECREMENTATTION DU COMPTEUR DE < REPEAT LOAD. STZ CPTLOD JMP LECTUR < < < A D R E S S E D E L A N C E M E N T : < < LANCT: EQU $ LR B,A < MEMORISATON DE L'ADRESSE DE < DE LANCEMENT. PALANC: EQU $ RBT 0 < BIZARE !!! NON ???? AD CTRANS < TRANSLATION DE L'ADRESSE DE < DEPART DANS L'ITEM2. DC CTRANS < PASSAGE SUR LE MOT0 DE ITEM2. STA &CTRANS < SOUS GE , L'ADRESSE DE LANCEMENT < EST TRANSMISE DANS LE MOT0 DE < L'ITEM2. IC FINMOD < FIN DE MODULE=VRAI. JMP LECTUR < < < R E P E A T L O A D : < < REPEAT: EQU $ STB CPTLOD BR ADLECT < < < C H E C K S U M : < < CHECK: EQU $ LA CHKSUM CPR B,A < VERIFICATION DU CHECKSUM. JNE FAUSUM CPZ FINMOD < FIN DE MODULE ??? JE FINBAN LA ADLANC JAGE $+2 RELANC: EQU $ BR NEWCHG < FIN DE MODULE SANS LANCEMENT. LAD START < SORTIE ADRESSE DE LANCEMENT. BSR SORMES LA ADLANC BSR SORADR BR RAGE < EN FIN DE CHARGEMENT , ON FAIT UN < RETOUR A 'GE'. < < < F I N D E B A N D E : < < FINBAN: EQU $ STZ CHKSUM BR ADLECT < < < E R R E U R D E C H E C K S U M : < < FAUSUM: EQU $ LAI '16 < ERREUR DE CHECKSUM. BR ADRFAT < < < C O M M E N T A I R E : < < COMENT: EQU $ BSR SORCAR BR ADLECT < < < S U I T E D E C O M M A N D E : < < PACDE: EQU $ BR PAFINI < < < C H A R G E R A L A S U I T E < E N T R A N S L A T A N T : < < TRANSL: EQU $ BSR TRINFB JMP SUITE < < < R E M O N T E R U N E C H A I N E D ' @ : < < REMADR: EQU $ PSR W BSR TRINFB LR B,W LA AREMA2 STAPAF: EQU $ STA PAFINI BR ADLECT < < SUITE DE COMMANDE CHAINE : < REMAD2: EQU $ BSR TRINFB LA 0,W JAL BIT01 < SAVE BIT INDEX. RBT 16 JMP $+3 BIT01: EQU $ SBT 16 RBT 0 STB 0,W CP NB7FFF < FIN DE CHAINE ??? JE PLRW LR A,W JMP REMAD2+1 < < < D E P L A C E M E N T S U R A D R E S S E : < < DEPADR: EQU $ PSR W BSR TRIMPW LA ADEPA2 JMP STAPAF < < SUITE DE COMMANDE DEPLACEMENT : < DEPAD2: EQU $ LA 0,W LR A,Y RBT 0 ADR A,B JV MUCHB CPR Y,A JE $+2 SBT 16 < SAVE BIT INDEX. STB 0,W PLRW: EQU $ PLR W BR ADLECT < < < N O M D E S E C T I O N : < < NSECT: EQU $ BSR MERCLF BSR SORCAR LA ASECT2 JMP STAPAF < < SUITE DE COMMANDE DE SECTION : < SECT2: EQU $ BSR SORCAR LR W,A BSR SORADR BR ADLECT < < < C O M M A N D E ' E N T ' : < < ENT: EQU $ LA ADLECT JMP STAPAF < < < R E F E R E N C E E N A V A N T R E L A T I V E : < < REMJMP: EQU $ PSR W BSR TRIMPW < W=@1ER MAILLON. LA ARJMP2 JMP STAPAF < < SUITE DE REFERNCE AVNT RELATICVE : < REMJM2: EQU $ LR W,Y BSR TRIMPW < A=W=ADR. REF. EN AVANT. XR Y,W < W=@1ER MAILLON. CHAINE: EQU $ LR Y,A < Y=A=REF. EN AVANT. SBR W,A LB 0,W < B=MAILLON. SCRD 8 < FABRICATION DU MOT DEFINITIF. SWBR B,B STB 0,W SWBR A,A < A=ADRESSE RELATIVE DU MAILLON < SUIVANT. SBR A,W < CALCUL ADR. MAILLON SUIVANT. JANE CHAINE JMP PLRW MUCHW: EQU $ LAI '14 < W SUPERIEUR A 32 K (TRIMPW < ET RANGB). BR ADRFAT MUCHB: EQU $ LAI '17 < B SUPERIEUR A 32K (TRINFB ET < DEPAD). BR ADRFAT PAGE < < < L E C T U R E U N Q U A D R U P L E T : < < < NOTA : < LE BINAIRE EST RECUPERE DANS LES 4 < DERNIERS K DE LA MEMOIRE POUR ' L'. < < SPLITQ: EQU $ LYI 0 LXI -4 LB INDEX < RECUPERATION OCTET PAR OCTET. LITQ1: EQU $ XR X,B LBY &ABO XR X,B ADRI 1,B STBY &AUFRAI CPZR Y JNE STOCK ANDI '60 CPI '20 JNE LITQ1 ADRI 1,Y STOCK: EQU $ JIX LITQ1 STB INDEX LBY ADSTOC CPI '30 JE PACHEK LA CHKSUM AD ADSTOC < CALCUL DU CHECKSUM. ADCR A AD ADSTOC+1 ADCR A STA CHKSUM PACHEK: EQU $ LXI -3 LBY &AUFRAI < A=COMMANDE , B=INFO. SLRD 6 JIX $-2 LBY ADSTOC RSR PAGE < < < R A N G E M E N T D E B : < < VERIFW: EQU $ LR W,A JAL MUCHW CP MAXMEM JG ERROR STB 0,W < CHARGEMENT DE 0,W PAR B. RSR ERROR: EQU $ LAI '15 < ERREUR DE PROTECTION. BR ADRFAT < < < M O D I F I C A T I O N D E L ' I M P L A N T A T I O N : < < WCIMP: EQU $ LR B,A JAL MUCHW AD CTRANS < C'EST MIEUX COMME CA .... JV MUCHW LR A,W < SI W>32K : ERREUR FATALE. RSR < < < T R A N S L A T I O N D E ( B ) : < < BTRANS: EQU $ LR B,A RBT 0 AD CTRANS JV MUCHB XR A,B JAGE $+2 SBT 16 < SAUVEGARDE BIT INDEX. RSR PAGE < < < S O R T I E D E ( A ) : < < ECRADR: EQU $ SLRD 16 LXI -4 CARSUI: EQU $ SLLD 4 ADRI '30,A CPI '39 JLE $+2 ADRI 7,A STBY &SORHEX < RANGEMENT DAN SLE BUFFER OUT. LAI 0 JIX CARSUI STZ &SORHEX LA BLQ STA BUFFER JMP SORTI6 < < < S O R T I E D E 3 C A R A C T E R E S : < < PRECAR: EQU $ LA ADSTOC LB ADSTOC+1 SLLD 8 STA BUFFER STB BUFFER+1 JMP SORTI3 < < < SORTI6: LXI 6 JMP $+2 SORTI3: LXI 3 STX IOCBL+2 JMP APIOCS MSGRC: LXI 2 < SORTIE DE RC-LF STX IOCBL+2 JMP RETLF MSGERR: LXI 8 < SORTIE D'UN MESSAGE STX IOCBL+2 SLRD 4 SLLS 4 < D'ERREUR AVEC NUMERO SLLD 4 AD TRENTE STA BUFFER+3 LAD ERREUR JMP INBUF4 ENTMOT: LXI 6 STX IOCBL+2 INBUF4: XR A,W LB 0,W STB BUFFER+1 LB 1,W STB BUFFER+2 XR A,W RETLF: LA RCLF STA BUFFER APIOCS: EQU $ LAD IOCBL SVC 0 RSR FVERIF: RSR < < < < < TOP: EQU $ < < < 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 < ERREUR D'ASSEMBLAGE SI < MAUVAISE IMPLANTATION. DZS X10+1 < CLEAR PAR PRUDENCE. EOT #SIP GEN PROCESSEUR#