NMPROC: VAL " S" < NOM DU PROCESSEUR. IDP " S - RELEASE 15/05/1977" IDP "SERGE SOUZEAU" EOT #SIP DEFINITION CMS5# EOT #SIP DEFINITION ITEM# EOT #SIP DEF PROCESSEUR# PROG WORD ASM < ADRESSE DE RUN DE SYMBOL. WORD NBCAR*NBLIG < POUR FAIRE $=$+1 , ET AUSSI < POUR VALIDER LES INDEX D'ACCES < A L'ITEM1 LORS DE LA SIMULATION < DE LA LECTURE DES CARTES. PSYMB: EQU $ LRP L BR -2,L < ENTRY DANS SYMBOL. < < BUFFERS DE TRAVAIL DE SYMBOL : < WORD RTERGE < PERMET D'ABORTER LES ASSEM- < BLAGES EN ERREUR PAR 'BR 9,W'. ZACQ1: DZS 9 < BUFFER DE SORTIE DU LISTING. ZACQ: DZS 41 < BUFFER D'ENTREE UNE LIGNE PAGE < < < C O M M O N D E S Y M B O L : < < COMMON COMMUN: EQU $+128 DZS 1 < POUR FLOTTANT IF ORDI-"S",XWOR%,,XWOR% < < < C O N S T A N T E S F L O T T A N T E S : < < M3800: WORD '3800 ARETD: WORD RETDIR XWOR%: VAL 0 < < < R E L A I S S O U S - P R O G R A M M E S : < < SORSYM: WORD PSOSYM < SORTIE D'UN SYMBOLE. CALEX: WORD PCALEX < CALCUL D'UNE EXPRESSION. MACQ: WORD PMACQ < MODULE D'ACQUISITION. INSET: WORD PINSET < INSERTION D'UN SYMBOLE DANS LA < TABLE DES SYMBOLES TSYMB. RETIQ: WORD PRETIQ < RECHERCHE D'UN SYMBOLE DANS < LA TABLE DES SYMBOLES TSYMB. INSDEP: WORD PINSDP < INSERTION DEPLACEMENT DANS TDEP. RECSEC: WORD PRECSC < RECHERCHE NOM DE SECTION DANS TSYMB. TESAT: WORD PTESAT < TEST DE SATURATION DES TABLES VERPA: WORD VERPAS < TEST DEPASSEMENT 32K. SPTAS: WORD PTAS < TRANSFERT SYMBOLE DANS BUF. PSORTQ: WORD SORTQ < SORTIE QUADRUPLET IDP. SPJUMP: WORD PJUMP < VERIFICATION PORTEE DES JUMPS. CONVER: WORD PCONV < CONVERSION 4 CHIFFRES. HEXA2: WORD PHEXA < CONVERSION 2 CHIFFRES. BSUPL: WORD SUPL < TRAITEMENT BITS 9,8,10 SPSAV: WORD PSAV < SAVE POUR LES CAS D'ERREUR. ASPSO1: WORD SPSO1 < SORTIE 1 QUADRUPLET. ASPSO2: WORD SPSO2 < SORTIE 2 QUADRUPLETS. SORSEC: WORD PSORC < EDITION SECTION COMPLETE. SYMUL: WORD PSYMUL < RECHERCHE PROCHAIN SYMBOLE < DE TSYMB. SORMES: WORD PSORM < SORTIE MESSAGE. TRASYM: WORD PTRAS < TRANSFERT DE TSYMB DANS SYMBOL. SPLIST: WORD PLIST < SORTIE LISTING. SORCLF: WORD PSORCL < SORTIE RC-LF. SPLIS1: WORD PLIS1 < SORTIE LISTING (DZS,EQU). CONV10: WORD PCOV10 < CONVERSION DECIMALE. PAGE: WORD PPAGE < SAUT DE PAGE. PAGIN: WORD PPAGIN < PAGINATION. APAGEN: WORD PAGENE < SORTIE LISTING (DIRECTIVES). AOVL: WORD OVL < ROUTINE DE CHARGEMENT DES < OVERLAYS. ASIMUL: WORD SIMUL < SIMULATION LECTURE DE CARTES < A PARTIR DE L'ITEM1. PAGE < < < C O N S T A N T E S A D R E S S E : < < AC44: WORD C44 ATABLG: WORD TABLG,X ATABTY: WORD TABTY,X ATDEP: WORD '8FEF ATDEP1: WORD '8FEE ATDEP2: WORD '8FED ATABDR: WORD TABDIR,X AZACQ: WORD ZACQ,X AZACQX: WORD ZACQ+40,X ABRAN: WORD BRAN+2,X ABASC: WORD BASC+1,X ATABCO: WORD FINTAB,X ATACAT: WORD TACAT,X ATACLE: WORD TACLE,X ATALON: WORD TALON,X ATALIG: WORD TALIG,X ATATYP: WORD TATYP,X ATABRG: WORD TABRG,X ADLAN: WORD DEBLAN,X ATSYMB: WORD TOP,X SYMBIN: WORD TABINI,X INCALE: WORD DEBCAL,X INMACQ: WORD DEBMAC,X ATARUP: WORD TARUP,X ASYMB: WORD SYMBOL-1,X ASYMB1: WORD SYMBO1-1,X ASYMB2: WORD SYMBO2-1,X ATBINF: WORD TABINF,X ATBSUP: WORD TABSUP,X AIGET: WORD TABEXT,X LIMINF: WORD ZONBAS,X LIMSUP: WORD ZONBAS+3,X SECBAS: WORD ZONSEC,X VALBAS: WORD ZONBAS+6,X LIMIN1: WORD ZONBA1,X LIMSU1: WORD ZONBA1+2,X SECBA1: WORD ZONSEC+3,X VALBA1: WORD ZONBA1+4,X ASAVE: WORD DEBSAV,X ADINI: WORD DEBIN,X AREST: WORD DEBRES,X ABUF: WORD BUF+2,X ACARSP: WORD CARSP+1,X ACOT: WORD COTROU AFINF: WORD FINFRA ATESTF: WORD TESTF ANOCON: WORD NOCONF ADEP: WORD DEPART BRAN: WORD PADIF RETER: WORD DIESE WORD PADET ASORLI: WORD SORLIS WORD DOLLAR IF ORDI-"S",XWOR%,,XWOR% RETEQ1: WORD RETEQ-1 XWOR%: VAL 0 ZACQ10: WORD ZACQ1+0 ZACQ11: WORD ZACQ1+1 ZACQ12: WORD ZACQ1+2 ZACQ13: WORD ZACQ1+3 ZACQ14: WORD ZACQ1+4 ZACQ15: WORD ZACQ1+5 ZACQ16: WORD ZACQ1+6 ZACQ17: WORD ZACQ1+7 ZACQ18: WORD ZACQ-1 ZBO: VAL '1000 < ADRESSE D'IMPLANTATION DU < BINAIRE EN MEMOIRE (DANS LES < 4 DERNIERS K MEMOIRE). AI1: WORD ZERO+PILE-LTNI+LTN+ZBO,X < ADRESSE DE L'ITEM1 TRANSLATE < AU BOUT DES 8K MOTS ; ON Y < TROUVE LE SYMBOLIQUE A ASSEMBLER. ABO: WORD ZBO < RELAI COURANT VERS LE BINAIRE < ON L'UTILISE EN SIMULATION < DE FICHIER SEQUENTIEL. IAI1: WORD 0 < INDEX COURANT VERS L'ITEM1 < (TEXTE SOURCE A ASSEMBLER). APILE: WORD PILE-1 < POUR LA REINITIALISATION DE < K LORS DU CHARGEMENT DES OVERLAY. PAGE < < DEFINITION DU NVP DE SORTIE IMPLICITE : < NVPO: VAL '0202 < VALEUR IMPLICITE SI ' S'. KNVPO: VAL 'B-2*'100 < DE FACON A PASSER SUR NVP='B. < < < Z O N E D E T R A V A I L : < < IOCB4: WORD NVPO+KNVPO < SORTIE DU LISTING. WORD ZACQ1-ZERO*2 WORD 0 DEBCAL: EQU $-1 < ZONE INITIALISEE PAR CALEX. RANG: WORD 0 RANG1: WORD 0 SOM: WORD 0 NSEC: WORD 0 INDSEC: WORD 0 SIGMA: WORD 0 COMDE: WORD 0 NIV: WORD 0 FINCAL: EQU $-1 IOCB3: WORD NVPO < SORTIE MESSAGE. WORD ADSY1 < @ OCTET DE 'SYMBOL'. DEBMAC: EQU $-1 < ZONE INITIALISEE PAR MACQ. SIGNE: WORD 0 SIGN1: WORD 0 ETAS: WORD 0 LG: WORD 0 INDICA: WORD 0 COND: DZS 2 SYMBOL: DZS 3 ADSY0: VAL SYMBOL-ZERO*2 ADSY1: EQU ZERO+ADSY0 VALEUR: EQU SYMBOL INDHEX: EQU SYMBOL+1 CSTE: EQU SYMBOL+2 FINMAC: EQU $-1 NIVSYM: WORD 0 CLE: WORD 0 IOCB: WORD '0B00 < LECTURE POUR EFFACEMENT WORD ADSY0 WORD 1 MOTINF: WORD 0 MOTSUP: WORD 0 IOCB1: WORD NVPO < SORTIE CARTE ERRONNEE. < NVP=4. WORD ZACQ-ZERO*2 WORD 80 BUF: DZS 4 IOCB2: WORD NVPO < MESSAGES D'ERREUR. WORD ADSY3 < @ OCTET DE 'SYMBO2'. WORD 22 NELT: WORD 0 NLIG: WORD 0 DEBIN: EQU $-1 < DONNEES INITIALISEES AU LANCEMENT. DZS 2 DEBSAV: EQU $-1 < DONNEES SAUVEGARDEES EN < DEBUT DE PHRASE. SECOUR: WORD 0 PAS: WORD 0 NSYMB: WORD 6 NDEP: WORD 0 ETASS: WORD 0 IF ORDI-"S",XWOR%,,XWOR% SECMAX: WORD 0 XWOR%: VAL 0 FINSAV: EQU $-1 INDEND: WORD 0 ZONSEC: EQU $-1 DZS 5 < NUMEROS SECTIONS POINTEES < PAR BASES. LIST2: WORD 0 CHECK: WORD 0 SYMBO1: DZS 3 NACQ1: WORD 0 INDO: WORD 0 LIMSU2: WORD 0 SAUVPA: WORD 0 DEBSEC: WORD 0 FINSEC: WORD 0 INDZS: WORD 0 BASCUL: WORD 0 NBLIN: WORD 0 SITUAT: WORD 0 DEPLA2: WORD 0 IBUFBN: WORD 0 SYMBO2: DZS 3 ADSY2: VAL SYMBO2-ZERO*2 ADSY3: EQU ZERO+ADSY2 FININ: EQU $-1 WORD '2B WORD 0 RCLF: WORD '0D0A ASCI "ERA " IF ORDI-"T",XWOR%,,XWOR% ZTR: WORD '28 XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% ZTR: WORD 0 XWOR%: VAL 0 RC: WORD '0D00 LF: WORD '0A00 LIBSEC: ASCI "SEC " MOTEST: WORD '09A0 OUVR: WORD '2028 < '('. FERM: WORD '2920 < ')'. CARSP: WORD 'A0A5 WORD " " WORD 'A0AA M10: WORD 10 IF ORDI-"T",XWOR%,,XWOR% WORD 0 XWOR%: VAL 0 SAUPAG: WORD '0D50 M3277: WORD 3277 IOCB6: WORD 0 IOCB7: WORD '0205+KNVPO < PAGE SERA EN FAIT UN EFFACEMENT < DE L'ECRAN DE LA VISU. DEBLAN: EQU $-1 < DONNEES INITIALISEES EN < DEBUT DE CARTE. INBRE: WORD 0 SINGER: WORD 0 VALDIR: WORD 0 NR: WORD 0 SIGNIF: EQU $ TRANS: WORD 0 INDASC: WORD 0 MOT1: WORD 0 PVIR: WORD 0 MOT2: WORD 0 ETAPH: WORD 0 BINARY: WORD 0 NACQ: WORD 0 CARLU: WORD 0 INDREG: WORD 0 NREG: WORD 0 NETIQ: WORD 0 INBYTE: WORD 0 MOBYTE: WORD 0 IF ORDI-"S",XWOR%,,XWOR% INACTD: WORD 0 INFL: WORD 0 XWOR%: VAL 0 FINLAN: EQU $-1 DEBRES: EQU $-1 DZS FINSAV-DEBSAV < ZONE DE SAUVEGARDE. CCI: WORD '0001 < APPEL DU CCI. DEMSGN: WORD '0602 < DEMANDE 'LOAD SOUS :SYS' AU SGN. WORD XWOR%A < ADRESSE DE LA 2EME BRANCHE < D'OVERLAY (' Z') , INITIALISEE < LORS DE LA GENERATION. WORD ZERO-BRANCH+PILE-LTNI-LTNI*2 WORD -1 PAGE < < < A D R E S S E S D ' E R R E U R S : < < MERR: WORD ERR NBPASS: WORD -1 < EVITE UN ALT-MODE KSTORE: EQU $-1 DZS 17 < PILE DE SYMBOL. PAGE < < < T A B L E D E R E C O N N A I S S A N C E < D E S D I R E C T I V E S : < < < FORMAT : < TABCO CONTIENT SUR 1 OU 2 MOTS LES < DIRECTIVES CODEE DE LA FACON SUIVANTE : < BIT0-5(TABCO)=BIT1-7(CARACTERE1) , < BIT6-10(TABCO)=BIT2-7(CARACTERE2) , < ( BIT11-15(TABCO)=BIT2-7(CARACTERE3) < ( BIT16-20(TABCO)=BIT2-7(CARACTERE4) ) ). < < TABCO: EQU $ WORD '3059 < LBY. WORD 'CE82;'C800 < STBY. WORD '8E02;'C800 < CPBY. IF ORDI-"T",XWOR%,,XWOR% WORD '092F < BIO. XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% WORD '61A0 < XM. XWOR%: VAL 0 WORD '0E1A < CPZ. WORD '0A40 < BR. WORD '0A72 < BSR. WORD '4D2F < SIO. WORD '4C40 < SB. WORD '0480 < AD. WORD '4E99 < STY. WORD '4E98 < STX. WORD '4E82 < STB. WORD '4E81 < STA. WORD '3600 < MP. WORD '12C0 < DV. WORD '3020 < LA. WORD '3300 < LX. WORD '3E40 < OR. WORD '05C4 < AND. WORD '15F2 < EOR. WORD '0E00 < CP. WORD '3320 < LY. WORD '3040 < LB. WORD '2460 < IC. WORD '1060 < DC. WORD 'CA33;'A000 < RQST. WORD 'C993;'2800 < RLSE. WORD '0474 < ACT. WORD '3024 < LAD. WORD '4E9A < STZ. WORD 'DC29;'A000 < WAIT. WORD '29B0 < JMP. WORD 'A827;'2800 < JAGE. WORD 'A82E;'2800 < JANE. WORD '2827 < JAG. WORD '39F0 < NOP. WORD '282C < JAL. WORD '2825 < JAE. WORD 'A82C;'2800 < JALE. WORD '4854 < RBT. WORD '4C54 < SBT. WORD '2454 < IBT. WORD '5054 < TBT. WORD 'CD92;'9800 < SLRS. WORD 'CD92;'2000 < SLRD. WORD 'CD8C;'9800 < SLLS. WORD 'CD8C;'2000 < SLLD. WORD 'CC72;'9800 < SCRS. WORD 'CC72;'2000 < SCRD. WORD 'CC6C;'9800 < SCLS. WORD 'CC6C;'2000 < SCLD. WORD 'CC32;'9800 < SARS. WORD 'CC32;'2000 < SARD. WORD '6240 < XR. WORD '3240 < LR. WORD '0492 < ADR. WORD '4C52 < SBR. WORD '3E52 < ORR. WORD '95F2;'9000 < EORR. WORD '85C4;'9000 < ANDR. WORD '8D93;'9000 < CLSR. WORD '8483;'9000 < ADCR. WORD 'CC43;'9000 < SBCR. WORD '38F2 < NGR. WORD '8E1A;'9000 < CPZR. WORD '0DB2 < CMR. WORD '0E12 < CPR. WORD 'CEE2;'9000 < SWBR. WORD 'E12D;'9000 < XIMR. WORD '8492;'8000 < ADRP. WORD '3250 < LRP. WORD '29C3 < JNC. WORD '29D6 < JNV. WORD 'A9C3;'B000 < JNCV. WORD 0 WORD '2860 < JC. WORD '2AC0 < JV. WORD '2876 < JCV. WORD '8492;'4800 < ADRI. WORD '3029 < LAI. WORD '3309 < LXI. WORD '3E49 < ORI. WORD '85C4;'4800 < ANDI. WORD '95F2;'4800 < EORI. WORD '0E09 < CPI. WORD '3329 < LYI. WORD '3049 < LBI. WORD '2938 < JIX. WORD '2898 < JDX. WORD '4272 < PSR. WORD '4192 < PLR. WORD '4EC3 < SVC. IF ORDI-"T",XWOR%,,XWOR% WORD 0 XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% WORD '324D < LRM. XWOR%: VAL 0 WORD 0 WORD '064D < ARM. WORD '0471 < ACQ. WORD 'A02C;'A000 < HALT. WORD '4A72 < RSR. WORD '1054 < DBT. WORD 'CE85;'8000 < STEP. WORD '8474;'2000 < ACTD. WORD 'C6A9;'A000 < QUIT. WORD '4299 < PTY. WORD '4C79 < SCY. WORD 'B5F6;'2800 < MOVE. WORD '4C53 < SBS. WORD 'C2B3;'4000 < PUSH. WORD 'C2AC;'6000 < PULL. WORD '046B < ACK. WORD '4A76 < RSV. WORD 'C9ED;'1000 < ROMB. IF ORDI-"S",XWOR%,,XWOR% WORD '1050 < DBP. WORD '4C50 < SBP. WORD '4850 < RBP. WORD '1134 < DIT. WORD '1534 < EIT. WORD '4E74 < SST. WORD '4A74 < RST. WORD 'C888;'B000 < RDHV. WORD '2609 < IPI. WORD 'C893;'4800 < RDSI. WORD '3032 < LAR. WORD 'C88F;'2800 < RDOE. WORD 'B6D4;'6800 < MVTM. WORD 'CE81;'9000 < STAR. WORD '5DE5 < WOE. WORD 'B6D4;'9800 < MVTS. XWOR%: VAL 0 WORD '28E5 < JGE. WORD '29C5 < JNE. WORD '28E0 < JG. WORD 0 WORD '2980 < JL. WORD '28A0 < JE. WORD '2985 < JLE. WORD '8DED;'6BDC < COMMON. WORD 'B1E3;'0B00 < LOCAL. WORD 'C24F;'3800 < PROG. WORD 'D022;'6140 < TABLE. WORD '9265;'1800 < DSEC. WORD '1714 < EXT. WORD '15D4 < ENT. WORD '5665 < USE. WORD '1274 < DST. WORD '1674 < EST. WORD '3893 < NDS. WORD '15F4 < EOT. WORD '15C4 < END. WORD 'C274;'9800 < PSTS. WORD 'C274;'4000 < PSTH. WORD '24C0 < IF. WORD '1635 < EQU. WORD '582C < VAL. WORD '1353 < DZS. WORD '8B34;'2800 < BYTE. WORD '11E0 < DO. WORD 'DDF2;'2000 < WORD. WORD '2490 < IDP. WORD '8663;'4800 < ASCI. WORD 'C027;'2800 < PAGE. IF ORDI-"S",XWOR%,,XWOR% WORD '1984 < FLD. WORD '1824 < FAD. WORD '19B0 < FMP. WORD '1896 < FDV. WORD '1A74 < FST. WORD '1A62 < FSB. WORD '986D;'D000 < FCMZ. WORD '9861;'6800 < FCAM. WORD '99C5;'3800 < FNEG. WORD '9822;'9800 < FABS. WORD '1938 < FIX. WORD '1994 < FLT. WORD 'B9F2;'6800 < NORM. WORD '9861;'D000 < FCAZ. WORD 0;0 < FLOAT SUPPRIME. XWOR%: VAL 0 FINTAB: EQU $ BASC: EQU $ WORD '0101 < ENTREE CARTE SUR NVP=1 WORD '0101 < ENTREE CARTE SUR NVP=1 TACAT: BYTE 32;4;1;3;14;8;2;1;1;3;3;7 IF ORDI-"T",XWOR%,,XWOR% BYTE 1;8;2;2;1;3;16;5 BYTE 1;1;1;1;1;2;1;1;1;1 BYTE 1;4;1;2 XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% BYTE 1;8;2;2;1;1;2;5;1;26;5;1 BYTE 1;1;1;1;2;1;1;1;1;1 BYTE 4;1;2 XWOR%: VAL 0 TALON: BYTE 0;'21;3;'21;'22;5;6;5;6;5 IF ORDI-"T",XWOR%,,XWOR% BYTE 6;'21;'C4;'87;'21;'31;'A7;'62;3;'2E BYTE '90;'B0;'CB;'12;'E;3;'EC;'67;'E7;7 BYTE '61;'47;'48;3 XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% BYTE 6;'21;'C4;'87;'21;'31;'A7;'31;'62;3;'22;3 BYTE '2E;'90;'B0;'CB;'12;'E;3;'EC;'67;'E7 BYTE 7;'61;'47;'48;3 XWOR%: VAL 0 TALIG: WORD 'A202;'1200;'8A01;'0200 WORD 'C200;'4201;'4200;'8200 WORD '8202;'1201;'0A00;'2201 WORD '1202;'0200;'0602;'0200 WORD '1204;'4204;'0600 TABINI: WORD '8000;0 WORD 6;0;"OF";'C600 TABINF: WORD -256;-128;0 TABSUP: WORD 7;31;127;255 TACLE: WORD '3030;'0AC9;'0002;'0853 WORD '001C;'005D;'8036;'0047 TABRG: WORD '2041;'4258;'5943;'4C57 WORD '4B00 TATYP: WORD EXPA WORD REGIS WORD BASE WORD EXPT WORD INDEX WORD NOMSEC TABEXT: WORD REFMEM WORD JUMP WORD WORD WORD EQU WORD EXT WORD ENT WORD USE WORD END TABLG: BYTE 0;64;61;59;58;48;47;46;45;44 BYTE 42;35;34;33;32;27;1 TABTY: BYTE 0;7;0;6;4;2;7;2;3;2 BYTE 7;1;7;3;7;5;7 TARUP: WORD FINPH WORD CHAIN WORD CSIGNE WORD NEWCAR WORD DECIM WORD SUILT WORD EMACQ WORD EMACQ WORD FSUILT WORD EMACQ WORD FSUILT WORD FSUIL1 WORD SUILT1 WORD SUILT WORD ETIQ WORD EMACQ WORD FNBRE WORD EMACQ WORD FNBRE WORD FNBR1 WORD CNBRE WORD CNBR1 WORD EMACQ WORD EMACQ WORD EXCLAM WORD FCHAIN TABDIR: EQU $-1 WORD COMMON WORD LOCAL WORD PROG WORD TABLE WORD DSEC WORD EXT1 WORD ENT1 WORD USE1 WORD DST WORD EST WORD NDS WORD EOT WORD END1 WORD PSTS WORD PSTH WORD 0 < LIMITE DIRECTIVES ETIQUETABLES. WORD EQU1 WORD VAL WORD DZS WORD BYTE WORD DO WORD WORD1 WORD IDP WORD ASCI ZONBAS: EQU $-1 DZS 9 ZONBA1: EQU $-1 DZS 6 PAGE < < < S Y M B O L E S A B S O L U S : < < LGLAN: VAL FINLAN-DEBLAN < LONGUEUR ZONE A INITIALISER < PAR CARTE. LCALEX: VAL FINCAL-DEBCAL LMACQ: VAL FINMAC-DEBMAC LTABCO: VAL FINTAB-TABCO < LONGUEUR TABLE DES CODES < OPERATION. LTABTY: VAL 16 LSAV: VAL FINSAV-DEBSAV < LONGUEUR ZONE SAUVEGARDEE. PAGE < < < A S S E M B L E U R S Y M B O L : < < < NVP=3 : SORTIE DU BINAIRE , < NVP=4 : SORTIE LISTING ET MESSAGES , < NVP=B : SORTIE LISTING SOUS ' S' , < NVP=1 : ENTREE CARTES. < NVP=5 : ENTREE CARTES EN BASCULE AVEC 1 SUR EOT < NOTA : < DANS LE CAS DE LA VERSION ' S' , < L'ENTREE DES CARTES EST SIMULEE A < L'AIDE DE L'ITEM1 TRANSLATE EN FOND < DES 8K MEMOIRE ; LES DELIMITEUR DE CARTE < UTILISE EST '#' ; LE BINAIRE EST STOCKE EN < SIMULATION DE FICHIER SEQUENTIEL , < EN DEBUT DES 4 DERNIERS K MEMOIRE. < < PROG MAIN WORD COMMUN ASM: EQU $ LRP C LY -1,C LR Y,C IC NBPASS < EVITER UN ALT-MODE JLE CT100 LAI 17 BR MERR CT100: EQU $ < < CHARGEMENT DE LA 2EME BRANCHE DE L'OVERLAY (' Z') : < LAD DEMSGN QUIT < APPEL DU SGN SANS UTILISER < LA PILE K (NON ENCORE INITIALI- < SEE). JE Z24 < CHARGEMENT OK. LAD CCI QUIT < EN CAS D'ERREUR AU CHARGEMENT , JMP $-1 < ON FAIT UN RETOUR DEFINITIF < AU CCI. Z24: EQU $ IC NBLIN LXI -1 < INITIALISATION DE TSYMB. C1: EQU $ ADRI 1,X LBY &SYMBIN STBY &ATSYMB CPI 'FF JNE C1 SURCH: EQU $ LAD KSTORE LR A,K < INITIALISATION DE K. BSR PAGE < SAUT DE PAGE !?!!!!?!?! LAI 'A3 < DECLARATION DE BINAIRE < TRANSLATABLE ASSEMBLEUR. LBI 0 BSR ASPSO1 STZ INDEND LXI -1 IF ORDI-"T",XWOR%,,XWOR% JMP C4 < VERS LA LECTURE D'UNE CARTE. XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% JMP C5 < ET C'EST PARTI ... XWOR%: VAL 0 DEPART: EQU $ LXI LGLAN STZ &ADLAN JDX $-1 LAD KSTORE LR A,K IC DEPLA2 IC NLIG SVCTAP: EQU $ BSR SPSAV CPZ INDO JE NEWASK DC INDO < TRAITEMENT 'DO' EN COURS. JMP Z20 NEWASK: EQU $ BSR ASIMUL < SIMULATION 'LECTURE CARTE' < DANS L'ITEM1. Z20: EQU $ LXI 79 < ELIMINER LES BLANCS C1200: EQU $ LBY &AZACQ ORI '20 CPI '20 JNE C1201 JDX C1200 C1201: EQU $ ADRI 1,X LAI '0D < RETOUR-CHARIOT. STBY &AZACQ < QUE L'ON MET EN BOUT DE CARTE. ADRI 1,X LAI '0A STBY &AZACQ LXI -18 < NETTOYAGE ZONE LISTING (ZACQ1). LAI '20 STBY &AZACQ JIX $-1 LYI 0 < NETTOYAGE DU BUFFER. LXI -1 C2: EQU $ ADRI 1,X CARAC: EQU $ XR X,Y LBY &AZACQ XR X,Y ADRI 1,Y CPI '0A JE CARAC < LES LF SONT IGNORES. STBY &AZACQ CPI '0D JE RETURN CPI '04 JNE C2 < FIN DE CARTE ( R / C ) NON TROUVE. RETURN: EQU $ LAI '0D STBY &AZACQ ADRI 1,X LAI '0A STBY &AZACQ ADRI 1,Y STY IOCB1+2 < LONGUEUR NOUVELLE LIGNE. IF ORDI-"T",XWOR%,,XWOR% ADRI 19,X STX IOCB4+2 XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% ADRI 1,X STX IOCB1+2 ADRI 18,X STX IOCB4+2 XWOR%: VAL 0 BSR MACQ CPI 2 JG BERA1 < 1ER ELEMENT INCORRECT. CPZ SYMBO1 JE NELIM CPI -1 JNE ETIQET < TRAITEMENT 'IF' EN COURS. CPZ BASCUL JE ETIQET NELIM: EQU $ LR A,X BR &ABRAN DOLLAR: EQU $ < COMPTEUR D'ASSEMBLAGE. IC ETAPH JMP C11 DIESE: EQU $ < BASCULEMENT DES NVP D'ENTREE. CPZ BASCUL JL C4 BSR SORCLF LAD IOCB1 < EDITION DE LA CARTE CONTENUE D < DANS ZACQ. SVC 0 C4: EQU $ LX BASCUL C5: EQU $ CMR X,X STX BASCUL STZ INDO JMP DEPART ETIQET: EQU $ < TRAITEMENT 'IF'. PSR A,X,Y LXI -18 < METTRE DES "-" LAI "-" STBY &AZACQ JIX $-1 LY IOCB4+2 < DECALER LA LIGNE LAI 18 STA IOCB4+2 LAD IOCB4 SVC 0 STY IOCB4+2 LXI -18 LAI '20 STBY &AZACQ JIX $-1 LAD IOCB4 SVC 0 < EDITION DES CARTES RENCONTREES < DANS UNE SEQUENCE 'IF' , MAIS < A T T E N T I O N : LA CARTE < CONTENANT L'ETIQUETTE CHERCHEE < SERA EDITEE 2 FOIS .... BSR PAGIN PLR A,X,Y JAE PADET CPI -2 JNE DEPART LXI 3 < ETIQUETTE A VERIFIER. C6: EQU $ LA &ASYMB CP &ASYMB1 JNE DEPART < ETIQUETTE RECHERCHEE NON TROUVEE. JDX C6 STZ SYMBO1 PADIF: EQU $ LXI 3 < MEMORISATION DERNIER SYMBOLE. C7: EQU $ LA &ASYMB STA &ASYMB2 JDX C7 STZ DEPLA2 CPZ INDO JNE BERA3 < ETIQUETTE INTERDITE APRE DO. BSR RETIQ CPZ LIST2 JG JUSTIN < SECOND PASSAGE. JAE C10 < N'APPARTIENT PAS A TSYMB. TBT 10 JC FALSE < SYMBOLE DEJA DEFINI EXTERNE. TBT 8 JC JUSTIN < PAS ENCORE DEFINI. TBT 9 JC C9 LAI 8 < SYMBOLE NON ABSOLU. BR MERR C9: EQU $ DC ETAPH JMP JUSTIN C10: EQU $ BSR INSET JUSTIN: EQU $ LA NIVSYM < SAUVEGARDE NIVEAU SYMBOLE. STA NETIQ C11: EQU $ BSR MACQ JANE BERA1 < PAS DE MOT CLE DANS LA CARTE. PADET: EQU $ CPZ INDICA JNE BERA1 < PAS DE MOT CLE DANS LA CARTE. LXI -LTABCO < RECHERCHE CLE DANS TABCO. EORR W,W < W=0. AVANT1: EQU $ LBI 0 LA &ATABCO EOR COND SLRD 15 JAE C12 ADRI 1,X LA &ATABCO C12: EQU $ EOR COND+1 ORR B,A JAE COTROU < MOT CLE TROUVE. ADRI 1,W JIX AVANT1 BERA1: EQU $ < PAS DE MOT CLE DANS LA CARTE. LAI 1 BR MERR DIRECT: EQU $ < DIRECTIVES. ADRI -118,A IF ORDI-"S",XWOR%,,XWOR% ADRI -16,A < LE REPERTOIRE SOLAR 16.65 < EST PLUS ETENDU QUE CELUI < DU PAUVRE T1600. XWOR%: VAL 0 STA VALDIR ADRI -7,W CPZ ETAPH JE C14 JG C13 ADRI -1,A < ETAPH=-1 : TEST SI A=18. C13: EQU $ ADRI -17,A < ETAPH=1 : TEST SI A=17. JANE C20 C14: EQU $ LA VALDIR CPI 16 JG C15 CPZ NETIQ JE C15 BERA3: EQU $ < ETIQUETTE INTERDITE SUR DIRECTIVE LAI 3 BR MERR C15: EQU $ ADRI -23,A JAL MOTCLE CPI 2 JNE C16 BSR PAGE < DIRECTIVE 'PAGE'. BR ADEP C16: EQU $ IC INDASC < DIRECTIVES 'ASCI' ET 'IDP'. BSR MACQ CPI 4 JE MOTCLE JMP BERA1 < CE N'EST PAS UNE CHAINE DE < CARACTERES. COTROU: EQU $ LR W,A PSR W < SAUVEGARDE W(WORD+BYTE). CPZ SYMBO1 JE C17 IF ORDI-"T",XWOR%,,XWOR% CPI 130 < TRAITEMENT 'IF' EN COURS ?? XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% CPI 146 < TRAITEMENT IF EN COURS. XWOR%: VAL 0 JE DIRECT < DIRECTIVE 'EOT'. IF ORDI-"T",XWOR%,,XWOR% CPI 131 XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% CPI 147 XWOR%: VAL 0 JE DIRECT < DIRECTIVE 'END'. BRADEP: EQU $ BR ADEP IF ORDI-"T",XWOR%,,XWOR% C17: EQU $ CPI 118 JG DIRECT XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% C17: EQU $ CPI 174 JNE C18 DC VALDIR BR ARETD < DIRECTIVE 'FLOAT'. C18: EQU $ CPI 134 JLE C19 CPI 160 JL DIRECT IC INFL C19: EQU $ XWOR%: VAL 0 CPZ ETAPH < INSTRUCTIONS T1600. JE C21 C20: EQU $ JG BERA1 < $ DEVANT UN AUTRE MOT CLE < QUE 'EQU'. FALSE: EQU $ < SYMBOLE INCORRECT. LAI 4 BR MERR C21: EQU $ IF ORDI-"S",XWOR%,,XWOR% CPI 101 JNE C22 IC INACTD < ACTD. C22: EQU $ XWOR%: VAL 0 CPZ SITUAT JL C23 LAI 13 < INSTRUCTIONS RENCONTREES HORS BR MERR < D'UNE SECTION 'PROG'. C23: EQU $ IF ORDI-"T",XWOR%,,XWOR% ADRI -111,A JALE C24 ADRI -40,W JMP CLASS2 C24: EQU $ ADRI 15,A XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% ADRI -127,A CPI 33 JL CEPAF ADRI -33,A < CAS DES CODES FLOTTANTS. CPI 8 JGE C25 SLLS 1 < CAS OU IL Y A OPERANDE. EORR W,W < W=0. JMP CLASS2 C25: EQU $ ADRI -8,A < CAS OU IL N'Y A PAS D'OPERANDE. SLLS 11 LBI 96 LR B,W JMP C27 CEPAF: EQU $ JALE C26 ADRI -56,W JMP CLASS2 C26: EQU $ ADRI 31,A XWOR%: VAL 0 JAGE CLASS4 ADRI 16,A JAGE CLASS3 ADRI 9,A JAG CLASS2 ADRI 31,A JAGE CLASS1 ADRI 40,A < 'LBY' A 'JALE'. JMP CLASS2 CLASS1: EQU $ < 'RBT' A 'LRP'. ORI 'A0 SLLS 6 JMP C27 CLASS3: EQU $ < 'LAI' A 'ARM'. ORI '10 JMP CLASS2 CLASS4: EQU $ < 'ACQ' A 'ROMB'. SLLS 8 ORI '1E CLASS2: EQU $ < 'JNC' A 'ADRI' , 'JGE' A 'JLE'. SCLS 8 C27: EQU $ STA BINARY MOTCLE: EQU $ < RECHERCHE TYPE DANS TACAT. LXI 0 C28: EQU $ LBY &ATACAT SBR A,W CPZR W JL C29 < TROUVE. ADRI 1,X JMP C28 C29: EQU $ LBY &ATALON ANDI '1F STA NLIG < NUMERO DE LIGNE DANS NLIG. LBY &ATALON SLRS 5 LR A,X LA &ATACLE STA CLE C30: EQU $ STZ NELT C31: EQU $ LX NLIG LA &ATALIG STA ZTR NEWELT: EQU $ DBT RBT 0,X STA ZTR LY NSYMB LB NACQ < SAUVEGARDES. LA CARLU < DANS KSTORE. PSR A,B,Y LBI 6 CPR B,X JNE C32 BR AFINF < FIN DE CARTE. C32: EQU $ CPZ NELT JE C33 CPI '2C < TEST ','. JNE NOCONF C33: EQU $ LBI -1 BR &ATATYP REGIS: EQU $ ADRI 1,B BASE: EQU $ ADRI 1,B INDEX: EQU $ STB INDREG BSR MACQ LXI 8 C34: EQU $ LBY &ATABRG SLLS 8 CP SYMBOL JE C35 JDX C34 JMP NOCONF < CE N'EST PAS UN NOM DE REGISTRE. C35: EQU $ LR X,A CPZ INDREG JG REGIS1 JE BASE1 CPI 3 < INDEX ??? JNE NOCONF LBY CLE ANDI 'F C36: EQU $ LR A,X C37: EQU $ LA BINARY SBT 0,X C38: EQU $ STA BINARY TESTF: EQU $ < POINT DE RETOUR. IC NELT ADRI -3,K LA ZTR JMP NEWELT BASE1: EQU $ < BASE. ADRI -4,A JALE NOCONF CPI 4 JE NOCONF SCRS 2 C39: EQU $ OR BINARY JMP C38 REGIS1: EQU $ < REGISTRE. LBY BINARY CPI '1A JE INSPSR < 'PSR'. CPI '1B JE INSPLR < 'PLR'. IF ORDI-"S",XWOR%,,XWOR% CPI '1D JE INSPSR < LRM TRAITE COMME UN PSR. XWOR%: VAL 0 LBY CLE SLRS 4 ADRI -1,X XR A,X < A=REGISTRE , B=NBRE DE DECALGES. CPZ NREG JG C40 SLLS 0,X C40: EQU $ IC NREG JMP C39 INSPSR: EQU $ < INSTRUCTION 'PSR'. ADRI 7,X JMP C37 INSPLR: EQU $ < INSTRUCTION 'PLR'. LAI 16 SBR X,A JMP C36 NOCONF: EQU $ < NON CONFORMITE. PLR A,B,Y STA CARLU STB NACQ STY NSYMB LA ZTR TBT 13 JC EVENT < CAS 'PSR'-'PLR','EXT'-'ENT'. LX NELT JDX C42 < AUCUNE AUTRE POSSIBILITE. TBT 15,X JNC C42 < AUCUNE AUTRE POSSIBILITE. IC NLIG JMP C31 EVENT: EQU $ CPZ LIST2 JE C41 CPZ VALDIR JE C41 BR ASORLI < 'EXT'-'ENT' AU SECOND PASSAGE. C41: EQU $ CPZ NELT JNE C30 C42: EQU $ LAI 1 < ERREUR AU 1ER ELEMENT BR MERR EXPA: EQU $ < EXPRESSION ABSOLUE. BSR CALEX JANE NOCONF LBI -1 < MASQUE. LA VALDIR CPI 16 JE DIRIF < DIRECITIVE 'IF'. LA CLE CPI 2 JE RANGT < AUCUNE LIMITATION. SLRD 5 ANDI 3 LR A,X LA SOM SB &ATBINF JAGE C43 EREXPA: EQU $ < VALEUR HORS-LIMITES. LAI 7 BR MERR C43: EQU $ SLLD 2 ANDI 3 LR A,X LA &ATBSUP SB SOM JAL EREXPA LBI 'FF LA NLIG CPI 7 JNE RANGT SBT 18 < OPERANDE IMMEDIAT 9 BITS. RANGT: EQU $ LA SOM ANDR B,A C44: EQU $ IF ORDI-"S",XWOR%,,XWOR% CPZ INACTD < EST-CE UN ACTD ??? JE C39 < NON. CPI 7 < ACTD ? JG EREXPA SLLS 5 XWOR%: VAL 0 JMP C39 DIRIF: EQU $ < DIRECTIVE 'IF'. LAD IOCB4 SVC 0 < EDITION DE LA CARTE 'IF'. BSR PAGIN CPZ SOM JL AVANTI JE C45 IC SIGNIF C45: EQU $ IC SIGNIF AVANTI: EQU $ < SIGNIF=0(<0),1(=0),2(>0). LA CARLU CPI '2C < TEST ','. JNE C42 < ERREUR DE SYNTAXE. BSR MACQ DC SIGNIF JGE AVANTI JANE C47 LXI 3 < SYMBO1=SYMBOLE A RECHERCHER. C46: EQU $ LB &ASYMB STB &ASYMB1 JDX C46 C47: EQU $ BR ADEP EXPT: EQU $ < EXPRESSION TRANSLATBLE. BSR CALEX LA VALDIR ADRI -22,A CPZ SIGMA JAE C48 < CAS 'WORD'. JL NOCONF C48: EQU $ JE NOCONF LA CLE ANDI 7 LR A,X CPZ NIV BR &AIGET END: EQU $ < DIRECTIVE 'END'. JNE C50 LA COMDE TBT 12 JC TESTF < SOM=ADRESSE DE LANCEMENT C49: EQU $ LAI 6 < SYMBOLE N'APPARTIENT PAS A LA BR MERR < SECTION 'PROG'. USE: EQU $ JE C51 C50: EQU $ LAI 5 < EXPRESSION NON DEFINIE. BR MERR C51: EQU $ LA COMDE TBT 12 JC C49 < SYMBOLE D'UNE SECTION 'PROG'. CPZ SITUAT JL C52 LAI 13 < ON N'EST PAS DANS UNE BR MERR < SECTION 'PROG'. C52: EQU $ LA NSEC JAE C57 < 'OFF'. SLLS 1 LR A,W LXI 0 C53: EQU $ BSR RECSEC ADRI -1,W CPZR W JNE C53 LB SOM < EVALUATION DE LIMINF. ADRI -128,B CPR A,B JLE C54 LR B,A C54: EQU $ STA MOTINF BSR RECSEC < EVALUATION DE LIMSUP. LB SOM LYI 128 ADR Y,B CPR A,B JGE C56 LR B,A C56: EQU $ STA MOTSUP C57: EQU $ BR ATESTF REFMEM: EQU $ < REFERENCE MEMOIRE NON DEFINIE. JNE C50 LXI 3 C58: EQU $ LA NSEC CP &SECBAS JNE APREF LA SOM CP &LIMINF JL APREF CP &LIMSUP JL C60 APREF: EQU $ JDX C58 C59: EQU $ LAI 11 < ACCES IMPOSSIBLE. BR MERR C60: EQU $ SB &VALBAS ANDI 'FF SLLS 2 < GENERATION INDICATION DE BASE. LR X,B SCRD 2 JMP C44 JUMP: EQU $ < SAUT CONDITIONNEL. JNE PLUTAR LA NSEC SB SECOUR JANE C59 < SYMBOLE N'APPARTIENT PAS < A SECOUR. LR A,W < W=/ LA SOM LY PAS BSR SPJUMP ANDI 'FF JMP C44 PLUTAR: EQU $ < SYMBOLE DEFINI ULTERIEUREMENT. LA SOM CPI -128 JL EREXPA < DEEPLACEMENT TROP IMPORTANT. CPI 127 JG EREXPA LA &NIV ORI '90 STA &NIV BSR INSDEP < INSERTION CODE OPERATION ET < DEPLACEMENT DANS TDEP. LAI 0 JMP C65 WORD: EQU $ < DIRECTIVE 'WORD'. LA SITUAT JALE C61 LY KSTORE+4 STY NSYMB BR ATESTF C61: EQU $ JNE CHAINA < EXPRESSION NON DEFINIE. DC SINGER < INDICATEUR DE TRANSLATION. LA SOM JAL BERA14 < DEPASSEMENT 32K. LB COMDE TBT 27 JNC C62 LAI 10 < 'DSEC' INTERDIT. BR MERR C62: EQU $ IC TRANS < A CHAGER EN TRANSLATANT. BR AC44 CHAINA: EQU $ < CHAINAGE. CPZ SOM JE C63 BSR INSDEP < INSERTYION DEPLACEMENT DANS TDEP. C63: EQU $ LA &NIV TBT 12 JC DEJCHA ORI '88 < DEBUT DE CHAINAGE. STA &NIV LAI -1 RBT 0 < A='(FFF. C64: EQU $ IC NIV SOWORD: EQU $ LB PAS STB &NIV DC NIV C65: EQU $ IC SINGER < INDICATEUR DE CHAINGAE. BR AC44 DEJCHA: EQU $ < CHAINAGE EN COURS. IC NIV IC TRANS LA &NIV JMP SOWORD EQU: EQU $ < DIRECTIVE 'EQU'. JE C100 LAI 5 < SYMBOLE NON DEFINI. BR MERR C100: EQU $ CPZ SOM JGE C69 BERA14: EQU $ < DEPASSEMENT 32K. LAI 14 BR MERR < < < 2 E M E B R A N C H E D E L ' O V E R L A Y ' Z ' < < DEBOV1: EQU $ NOMOV1: VAL " Z" < NOM DE LA BRANCHE. ZBR: EQU $ XWOR%: VAL ZBR-ZERO*2 XWOR%A: EQU ZERO+XWOR% ASCI " Z " BYTE '04;'D0 < < 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-ZBR IF X10,,XWOR%,XWOR% IF ATTENTION : OVERLAY TROP GROS !!! XWOR%: VAL 0 ENT: EQU $ < DIRECTIVE 'ENT'. LAI 13 < INTERDIT SOUS GE BR MERR EXT: EQU $ < DIRECTIVE 'EXT'. LAI 13 < INTERDIT SOUS GE BR MERR BERA6: EQU $ < SYMBOLE DEJA DEFINI. LAI 6 BR MERR C69: EQU $ BR ATESTF NOMSEC: EQU $ < NOM DE SECTION. BSR MACQ LB CLE TBT 24 JC DIRSEC < DIRECTIVE DE SECTIONNEMEMT. JANE C74 BSR RETIQ < AUTRES DIRECTIVES. JAGE BERA6 < NOM N'APPARTIENT PAS A TSYMB. SLRS 8 ANDI '7F BR AC44 DIRSEC: EQU $ CPZ LIST2 IF ORDI-"T",XWOR%,,XWOR% JE C70 IC SECOUR < SECOND PASSAGE. XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% JE C70 IC SECMAX < SECOND PASSAGE. LA SECMAX STA SECOUR XWOR%: VAL 0 JMP C73 C70: EQU $ JANE C71 BSR RETIQ JAE C71 LAI 8 < APPARTIENT DEJA A TSYMB. BR MERR C71: EQU $ CPZ SECOUR JE GENAD < PREMIERE SECTION. LAI 0 SBT 0 < ADRESSE FIN DE SECTION PRECEDENTE. LX NSYMB STA &ATSYMB < DANS TSYMB. ADRI 1,X LA PAS STA &ATSYMB ADRI 1,X STX NSYMB GENAD: EQU $ BSR INSET IF ORDI-"T",XWOR%,,XWOR% IC SECOUR LA SECOUR XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% IC SECMAX LA SECMAX STA SECOUR XWOR%: VAL 0 CPI 128 JL C72 LAI 9 < NOMBRE DE SECTIONS>127. BR MERR C72: EQU $ ORI '80 SLLS 8 OR &NIVSYM STA &NIVSYM LY NSYMB STY KSTORE+4 BSR SPTAS < MEMORISATION NOM DANS BUF. C73: EQU $ CPZ LG JE C74 < PAS DE NOM DE SECTION. BR ATESTF FINFRA: EQU $ CPI '2C < TEST ','. JNE C75 C74: EQU $ BR ANOCON C75: EQU $ BSR MACQ CPI 1 JNE C74 CPZ TRANS JGE C76 LA BUF LB BUF+1 PSR A,B < SAUVEGARDE DE BUF,BUF+1. C76: EQU $ LA VALDIR NPVIRG: EQU $ < INSTRUCTIONS. JAE TRAREG CPI 19 JGE C78 LBI 0 LYI 0 C77: EQU $ LR A,X < DIRECTIVES DE SECTIONNEMENT. LA BINARY BR &ATABDR < 'EQU' ET 'VAL'. C78: EQU $ JG TRAREG LA BINARY < DIRECTIVE 'DZS'. JAGE C79 LAI 7 < DEPLACEMENT NEGATIF. BR MERR C79: EQU $ AD PAS JAG TRAREG LAI 12 < DEPASSEMENT 32K. BR MERR TRAREG: EQU $ LA NREG CPI 1 JNE RETDIR LA CLE < EXCLUSION 'ADRI'. JAL RETDIR LA BINARY < DUPLICATION RS DANS RD. SLRS 3 ANDI 7 OR BINARY STA BINARY RETDIR: EQU $ CPZ NETIQ JE TRAREF < PAS D'ETIQUETTE. LA SECOUR < TRAITEMENT ETIQUETTE. JAG C80 LAI 3 < ETIQUETTE AVANT SECTION. BR MERR C80: EQU $ SLLS 8 CPZ SITUAT JLE C81 SBT 11 < SECTION 'DSEC'. C81: EQU $ JGE C82 SBT 12 < SECTION 'PROG'. C82: EQU $ LY PAS STY SOM < COMDE=MOT DE COMMANDE , < SOM=VALEUR. C93: EQU $ STA COMDE RETEQ: EQU $ CPZ LIST2 JG TRAREF < SECOND PASSAGE. LA &NETIQ ANDI 'F8 JAE NEWSYM < NOUVEAU SYMBOLE. CPZ SITUAT JLE C83 LAI 10 < SYMBOLE UTILISE AILLEURS. BR MERR C83: EQU $ LYI -1 LR Y,W RETW: EQU $ LXI 0 LY NDEP C84: EQU $ CPR X,Y JE C86 CPZ &ATDEP < MEMORISATION SIGNE. LA &ATDEP RBT 0 EOR NETIQ JANE FINDEP LA &ATDEP1 JG DEPWOR < BIT0=0. AD SOM LY &ATDEP2 BSR SPJUMP ANDI 'FF < ELIMINATION OCTET GUACHE. C85: EQU $ CPZR W JE PERFO FINDEP: EQU $ ADRI -3,X JMP RETW+1 C86: EQU $ CPZR W < X=NDEP. JE NEWSYM ADRI 1,W < AUCUNE ERREUR DETECTEE. LA &NETIQ TBT 12 JNC RETW IC NETIQ LAI 'AA LB &NETIQ BSR ASPSO1 LAI '22 LB SOM BSR ASPSO1 DC NETIQ JMP RETW DEPWOR: EQU $ < DEPLACEMENT SUR 'WORD'. AD SOM JAGE C87 LAI 14 BR MERR C87: EQU $ LA &ATDEP1 JMP C85 PERFO: EQU $ < SORTIE DEPLACEMENT. LR A,Y LAI '2E LB &ATDEP2 LR X,L BSR ASPSO1 LAI '22 LR Y,B BSR ASPSO1 LR L,X LR X,B ADRI -3,X TASDEP: EQU $ < TASSEMENT DE TDEP. LY NDEP CPR Y,X JNE C88 LR B,X ADRI 3,Y STY NDEP JMP C84 C88: EQU $ LA &ATDEP ADRI 3,X STA &ATDEP ADRI -4,X JMP TASDEP NEWSYM: EQU $ < NOUVEAU SYMBOLE. LA &NETIQ ANDI 7 OR COMDE STA &NETIQ IC NETIQ LA SOM STA &NETIQ TRAREF: EQU $ < TRAITEMENT REFERENCE. LA VALDIR JAE INSTR CPI 18 JG C77 LB SOM < SORTIE LISTING ('EQU' ET 'VAL'). BSR CONVER < B=VALEUR CONVERSION. STY &ZACQ10 < POIDS FORTS VALEUR STA &ZACQ11 < POIDS FAIBLES VALEUR BR ASORLI WORD1: EQU $ < DIRECTIVE 'WORD'. INSTR: EQU $ < INSTRUCTION. LBI 'A6 LAI 1 CPZ TRANS JNE INCPAS C90: EQU $ LBI '24 < CHARGER SANS TRANSLATER. INCPAS: EQU $ AD PAS STA PAS CPZ TRANS JL TREXT < DEBUT CHAINAGE SUR 'EXT'. LR B,A SREXT: EQU $ LB BINARY IF ORDI-"T",XWOR%,,XWOR% BSR SPLIST < PERFO MOT+SORTIE LISTING. CPZ PVIR XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% CPZ INFL JE COMFL PSR B LB M3800 < POSITIONNEMENT DU CODE FLOTTANT. COMFL: EQU $ BSR SPLIST < SORTIE DU BINAIRE DU 1ER MOT < ET EDITION LISTING ... CPZ INFL JE COND3 IC PAS IC DEBRES+2 LAI '24 PLR B BSR SPLIST COND3: EQU $ CPZ PVIR XWOR%: VAL 0 JE NBRAN STZ TRANS < 'WORD' + POINT VIRGULE. STZ MOBYTE STZ SINGER RBYTE: EQU $ BSR SPSAV STZ BINARY STZ PVIR STZ NETIQ IC DEPLA2 ADRI -3,K PLR W < RESTITUTION RANG DU MOT CLE. BR ACOT ELIMIN: EQU $ < ELIMINATION LG SYMBOLE EQUIVALENT. CPZ NETIQ JNE C92 C91: EQU $ LAI 3 < ETIQUETTE MANQUANTE. BR MERR C92: EQU $ IF ORDI-"S",XWOR%,,XWOR% CPZ SECOUR JE C91 < ERREUR : AUCUNE SECTION < N'EST ENCORE DEFINIE !! XWOR%: VAL 0 LA COMDE SLRS 3 < AINSI QUE LE BIT13 ('ENT'). SLLS 3 IF ORDI-"T",XWOR%,,XWOR% JMP C93 XWOR%: VAL 0 IF ORDI-"S",XWOR%,,XWOR% BR RETEQ1 XWOR%: VAL 0 TREXT: EQU $ < SORTIE SYMBOLE EXTERNE. PLR A,B STA BUF STB BUF+1 LAI '21 BSR ASPSO2 LAI '22 JMP SREXT EQU1: EQU $ < DIRECTIVE 'EQU'. CPZ ETAPH JE ELIMIN LBY COMDE < POSITIONNEMENT DE $. STA SECOUR LA COMDE TBT 11 JC C94 TBT 12 JNC C95 ADRI -2,B < 'PROG'. C94: EQU $ ADRI 1,B < 'DSEC'. C95: EQU $ STB SITUAT LB SOM STB PAS STB DEBRES+2 CPZ SITUAT JG C96 < 'DSEC'. LAI 'A0 BSR ASPSO1 C96: EQU $ BSR SPLIS1 < SORTIE LISTING. NBRAN: EQU $ BR ADEP BYTE: EQU $ < DIRECTIVE 'BYTE'. ANDI 'FF CPZ INBYTE JE BYTE1 < BYTE DE GAUCHE. OR MOBYTE < BYTE DE DROITE. STZ INBYTE C97: EQU $ STA BINARY JMP INSTR BYTE1: EQU $ SLLS 8 STA MOBYTE IC INBYTE CPZ PVIR JE C97 JMP RBYTE < 'BYTE' + POINT-VIRGULE. DZS: EQU $ < DIRECTIVE 'DZS'. JAE C96 LAI 'AC LB BINARY CPZ SITUAT JG C98 < ON EST DANS UN 'DSEC'. BSR ASPSO1 < REPEAT LOAD. C98: EQU $ LA BINARY STZ BINARY JMP C90 VAL: EQU $ < DIRECTIVE 'VAL'. CPZ NETIQ JE C91 < ETIQUETTE MANQUANTE. LA &NETIQ ANDI 'BC JAE C99 LAI 4 < SYMBOLE DEJA UTILISE. BR MERR C99: EQU $ LAI '40 STA COMDE JMP NEWSYM COMMON: EQU $ < DIRECTIVE 'COMMON'. ADRI -1,Y LOCAL: EQU $ < DIRECTIVE 'LOCAL'. ADRI 2,Y TABLE: EQU $ < DIRECTIVE 'TABLE'. LR B,W CPI 3 JG NONVER < 'TABLE' OU 'DSEC'. AD ETASS < VERIFICATION DE L'ENCHAINEMENT < DES SECTIONS. LR A,X LA MOTEST TBT 0,X JNC C101 LAI 16 < ENCHAINEMENT INCORRECT. BR MERR C101: EQU $ LAI 3 MP VALDIR STB ETASS NONVER: EQU $ LR W,B LX LIMSU2 CPZR X JE NREGUL LA PAS < SORTIE 'COMMON' OU 'LOCAL'. CP &LIMSUP JGE C102 STA &LIMSUP STA &LIMSU1 C102: EQU $ STZ LIMSU2 NREGUL: EQU $ CPZ SITUAT JL FINPRO JE C103 LA SAUVPA < SORTIE 'DSEC'. STA PAS REPRO: EQU $ STZ SITUAT C103: EQU $ CPZR Y JE YNUL LR Y,X < 'COMMON' OU 'LOCAL'. LYI 128 LA PAS < POSITIONNEMT IMPLICITE C ET L. STA &LIMINF STA &LIMIN1 ADR Y,A STA &VALBAS STA &VALBA1 ADR Y,A STA &LIMSUP STA &LIMSU1 LA SECOUR STA &SECBAS STA &SECBA1 STX LIMSU2 YNUL: EQU $ CPZR B LY PAS JE TRACOM STB SITUAT < 'PROG' OU 'DSEC'. JL TRACOM STZ PAS STY SAUVPA < 'DSEC'. LYI 0 JMP C104 TRACOM: EQU $ < SORTIE NOM DE SECTION. LAI '36 BSR ASPSO2 C104: EQU $ STY DEBSEC STY FINSEC IC INDZS CPZ LIST2 JG C105 < SECOND PASSAGE. IC NIVSYM STY &NIVSYM C105: EQU $ BR ASORLI < SORTIE LISTING. PROG: EQU $ < DIRECTIVE 'PROG'. ADRI -2,B DSEC: EQU $ < DIRECTIVE 'DSEC'. ADRI 1,B JMP TABLE FINPRO: EQU $ < FIN DE SECTION 'PROG'. LXI 0 LR X,W C106: EQU $ LA &ATSYMB < RECHERCHE DES JUMPS NON < SATISFAITS. ANDI '90 CPI '90 JNE MORE BSR SORCLF LAD &ATSYMB < 'JUMP' NON SATISFAIT. BSR SORSYM < EDITION SYMBOLE. ADRI 1,W MORE: EQU $ < APPEL SYMBOLE SUIVANT. BSR SYMUL JNE C106 CPZR W JNE C107 LA FINSEC CP PAS JLE REPRO C107: EQU $ LAI 15 < LIMITE SECTION NON ATTEINTE. BR MERR USE1: EQU $ < DIRECTIVE 'USE'. SLRS 14 LR A,X CPZ INBRE JNE NIMPL < POSITIONNEMENT EXPLICITE. CPI 3 < RETOUR POSITIONNEMENT IMPLICITE. JNE C108 LAI 1 < BASE W. BR MERR C108: EQU $ LY &SECBA1 STY &SECBAS LA &LIMIN1 LB &LIMSU1 LY &VALBA1 RUSE: EQU $ STA &LIMINF STB &LIMSUP STY &VALBAS BR ASORLI < SORTIE LISTING. EXT1: EQU $-1 ENT1: EQU $-1 NIMPL: EQU $ LY NSEC STY &SECBAS LA MOTINF LB MOTSUP LY SOM JMP RUSE < NOTA : < SOUS ' S' , LES DIRECTIVES PSTH < ET PSTS NE SONT PAS RECONNUES !!! PSTH: EQU $ PSTS: EQU $ LAI 13 BR MERR DO: EQU $ < DIRECTIVE 'DO'. STA INDO LAD IOCB4 SVC 0 < EDITION DE LA CARTE 'DO'. BSR PAGIN BSR ASIMUL < SIMULATION 'LECTURE CARTE' < DANS L'ITEM1. BR ADEP ASCI: EQU $ < DIRECTIVE 'ASCI'. LBI '24 C111: EQU $ IC NACQ1 LX NACQ1 LBY &AZACQ CPI '22 JE FASCI < FIN DE CHAINE. SLLS 8 SCLD 8 JAE C111 SASCI: EQU $ IC PAS BSR SPLIST < PERFO MOT + SORTIE LISTING. IC DEBRES+2 < INCREMENTATION ADRESSE. CPZ INDASC JNE ASCI BR ADEP FASCI: EQU $ STZ INDASC LAI 0 SCLD 8 JANE SASCI < ENCORE UN CARACTERE. BR ADEP IDP: EQU $ < DIRECTIVE 'IDP'. LAI 'B4 LB RCLF SLLD 8 STA BUF STB BUF+1 BSR PSORTQ < SORTIE RC-LF DANS QUADRUPLET. IDP1: EQU $ LXI -3 STZ BUF < NETTOYAGE DE BUF. STZ BUF+1 C112: EQU $ LR X,Y IC NACQ1 LX NACQ1 LBY &AZACQ CPI '22 JE FIDP < FIN DE CHAINE. LR Y,X STBY &ABUF JIX C112 SIDP: EQU $ LAI 'B4 STBY BUF BSR PSORTQ < SORTIE QUADRUPLET. CPZ INDASC JNE IDP1 BR ASORLI < SORTIE LISTING. FIDP: EQU $ STZ INDASC LAI -3 CPR A,X JNE SIDP SORLIS: EQU $ < SORTIE LISTING (ZACQ) BSR APAGEN BR ADEP END1: EQU $ < DIRECTIVE 'END'. EORR L,L LAI 4 STA LG < LONGUEUR BIDON. STZ SYMBO1 < ANNULATION TRAITEMENT 'IF'. BSR RETIQ CPZR L JE C113 LAI 17 < ASSEMBLAGE INCORRECT. BR MERR C113: EQU $ CPZ SITUAT JGE C114 < LA SECTION EN COURS N'EST PAS < UNE SECTION 'PROG'. LA FINSEC CP PAS JG C107 < LIMITE DE SECTION NON ATTEINTE. C114: EQU $ DC IOCB4+2 LAD IOCB4 < SORTIE LISTING. SVC 0 BSR PAGIN CPZ LIST2 JG FINASS < SECOND PASSAGE. LB SOM CPZR B JNE C115 SBT 16 < B='8000 C115: EQU $ LAI '28 BSR ASPSO1 < SORTIE DE L'ADRESSE DE LANCEMENT. LAI '30 LB CHECK BSR ASPSO1 < SORTIE CHECKSUM. IC INDEND STZ LIST2 STZ CHECK PAGE < < < F I N D ' A S S E M B L A G E : < < FINASS: EQU $ BSR SORCLF LAD IOCB1 < EDITION CARTE CONTENUE DANS ZACQ. SVC 0 < < PREPARATION DU CHARGEMENT DE L'OVERLAY : < LBI "L" < B=' L' SBT 18 RTERGE: EQU $ LAI BRANCH-ZERO*2 STA DEMSGN+1 < DEMSGN EST POSITIONNE SUR < BRANCH , EN VUE DU CHARGE- < MENT DE ' L'. LAI BRANCH-ZERO LR A,W < W=@BRANCH. STB 0,W < ON MET EN TETE DE BRANCHE LE < NOM DE CELLE QUE L'ON DOIT < CHARGER (C'EST-A-DIRE LE LOADER). LA APILE LR A,K < ON RE-INITIALISE K AVEC UNE < PILE DONT L'EMPLACEMENT < N'EST PAS PERTURBE PAR LE < CHARGEMENT DES OVERLAYS. < (CELLE DU SYSTEM E 'GE'). < < TENTATIVE DE CHARGEMENT DU LOADER : < LAD DEMSGN BSR AOVL < TENTATIVE DE CHARGEMENT , AVEC : < A=@DEMSGN & W=@BRANCH. LAD CCI SVC 0 < EN CAS D'ERREUR DE CHARGEMENT , < ON FAIT UN RETOUR DEFINITIF < AU CCI. JMP $-1 EOT: EQU $ < DIRECTIVE 'EOT'. LAI 13 < INTERDIT EN OVERLAY BR MERR NDS: EQU $ < DIRECTIVE 'NDS'. BSR SORCLF LXI 0 C117: EQU $ LA &ATSYMB ANDI 'A0 CPI '80 JNE C118 < ELIMINATION EXT. LAD &ATSYMB < A=ADRESSE SYMBOLE. BSR SORSYM BSR SORCLF C118: EQU $ BSR SYMUL JNE C117 BR ADEP EST: EQU $ < DIRECTIVE 'EST'. LB IOCB4 STB IOCB3 JAE TCOMP < TABLE AU COMPLET. BSR SORSEC C119: EQU $ BR ADEP TCOMP: EQU $ < BINARY=NUMERO DE SECTION. STA BINARY BSR SORSEC LA BINARY CP SECOUR JE C119 < TERMINE. ADRI 1,A JMP TCOMP DST: EQU $ < DIRECTIVE 'DST'. LAI 13 < DST INTERDIT SOUS GE BR MERR PAGE < < < S I M U L A T I O N L E C T U R E C A R T E S : < < < FONCTION : < CETTE ROUTINE RECUPERE A PARTIR < DE L'ITEM1 TRANSLATE DE 4K , < LES IMAGES DES CARTES A ASSEMBLER ; < LE SEPARATEUR DE CARTES UTILISE EST < LE CARACTERE '#'. < < SIMUL: EQU $ LAI BRANCH-ZERO LR A,W < W=@BRANCH !!!!!! < < NETTOYAGE DU BUFFER D'ENTREE DES CARTES : < LAI '20 < A='SPACE'. LXI 79 < POUR REMETTRE A 'SPACE' 80 < CARACTERES. Z10: EQU $ STBY &AZACQ < REMISE A 'SPACE' DU BUFFER. JDX Z10 < CARACTERE SUIVANT. STBY &AZACQ < REMISE A 'SPACE' DU CARACTERE 0. < < SIMULATION DE LA LECTURE D'1NE CARTE < SOURCE A PARTIR DE L'ITEM1 TRANSLATE : < LX IAI1 < X=INDEX COURANT DE L'ITEM1. LYI 0 < COMPTEUR DES CARACTERES < D'UNE IMAGE DE CARTE SOURCE. Z11: EQU $ LR X,A < VALIDATION DE L'INDEX ITEM1. CP 6,W < LE MOT6 DE LA BRANCHE CONTIENT < LE NBRE DE CARACTERES D'1NE < PAGE DE VISU. JGE Z21 < ERREUR , ON EST HORS-ITEM1 !!! < DE L'ITEM1. LR Y,A < POUR VALIDATION DU COMPTE. CPI 80 < ON NE DOIT PAS DEPASSER < CARACTERES ..... JGE Z21 < ERREUR : CARTE TROP LONGUE !!!! LBY &AI1 < SINON RECUPERATION D'UN < CARACTERE DE L'ITEM1. ADRI 1,X < PROGRESSION INDEX ITEM1. CPI "#" < EST-CE UN FIN DE LIGNE (#) ???? JE Z12 < OUI , LE CARACTERE '#' INDIQUE < LA FIN DE L'IMAGE D'UNE CARTE .... XR X,Y < X=INDEX DU BUFFER CARTE. STBY &AZACQ < SINON , LE CARACTERE RECUPERE < EST MIS DANS LE BUFFER D'ENTREE. XR X,Y ADRI 1,Y < COMPTAGE DES CARACTERES. JMP Z11 < AU SUIVANT ... Z12: EQU $ STX IAI1 < SAVE LE NOUVEL INDEX COURANT < DE L'ITEM1. RSR < < TRAITEMENT DES ERREURS : < Z21: EQU $ ADRI -1,K < ANNULATION DES EFFETS DU BSR < D'APPEL DE ASIMUL. LAI 0 < ERREUR 0 D'ASSEMBLAGE. BR MERR PAGE < < < S O U S - P R O G R A M M E S : < < < < < C A L C U L D ' U N E E X P R E S S I O N : < < PCALEX: EQU $ < CALCUL D'EXPRESSION. LXI LCALEX STZ &INCALE JDX $-1 C123: EQU $ BSR MACQ JAL ECALEX STZ INDICA JAE TYPLET CPI 1 JE TYPFIN CPI 2 JE TYPCOM LY VALEUR < TERME ABSOLU. C124: EQU $ IC INBRE TYPABS: EQU $ LA SOM CPZ SIGNE JE MULTIP < MULTIPLICATION OU DIVISION. JG C125 NGR Y,Y C125: EQU $ ADR Y,A C126: EQU $ STA SOM JV ECALEX < OVERFLOW OU DIVISION IMPOSSIBLE. SUIMUL: EQU $ LA CARLU CPI '20 JE C134 < 'ESPACE'. CPI '2C JE C134 < 'VIRGULE'. IF ORDI-"S",XWOR%,,XWOR% IC RANG < MISE A JOUR RANG DE L'ELEMENT. XWOR%: VAL 0 JMP C123 MULTIP: EQU $ CPZ SIGMA JNE ECALEX < MULTIPLICANDE OU DIVIDENDE < NON ABSOLU. CPZ INDICA JNE ECALEX < MULTIPLICATEUR OU DIVISEUR < NON ABSOLU. STY VALEUR CPZ SIGN1 JG DIVIS < DIVISION. MP VALEUR JAE C127 CPI -1 JNE ECALEX < RESULTAT NON SUR 16 BITS. C127: EQU $ STB SOM JMP SUIMUL DIVIS: EQU $ SARD 16 < B=POIDS FAIBLES. DV VALEUR JMP C126 TYPLET: EQU $ < SUITE DE LETTRES. BSR RETIQ JAL ECALEX < NOM DE SECTION. JAE C132 < LE SYMBOLE N'APPARTIENT PAS < A TSYMB. LY &ATSYMB < MOT VALEUR. ANDI 'FFFC JAE C138 < ETIQUETTE DE LA PHRASE EN COURS TBT 8 JC NONDEF < NON DEFINI. TBT 9 JC C124 < SYMBOLE ABSOLU. CPI 4 JNE C128 LX VALDIR < 'OFF'. ADRI -8,X CPZR X JNE ECALEX < NON UTILISE AVEC 'USE'. C128: EQU $ SLRD 8 XR A,B < B=NUMERO DE SECTION. COMAS: EQU $ CPZ RANG JNE PAPREM TBT 3 < 1ER ELEMENT. JNC C129 DC INDSEC < SYMBOLE APPARTIENT A 'DSEC'. C129: EQU $ STB NSEC < NSEC=NUMERO DE SECTION. PRESER: EQU $ SCRD 8 STA COMDE < COMDE=MOT DE COMMANDE. LA RANG < SAUVEGARDE RANG DE L'ELEMENT. STA RANG1 CPZ SIGNE REPAS: EQU $ JL ECALEX C130: EQU $ LA SIGNE AD SIGMA STA SIGMA IC INDICA IF ORDI-"S",XWOR%,,XWOR% IC RANG XWOR%: VAL 0 JMP C124 PAPREM: EQU $ < AUTRES ELEMENTS. TBT 3 JC C131 < APPARTIENT A 'DSEC'. CPZ INDSEC < MELANGES INTERDIT SI NEGATIF. JMP REPAS C131: EQU $ LA NSEC CPR A,B JNE ECALEX < MELANGES INTERDIT SI NEGATIF. JMP C130 C132: EQU $ BSR INSET NONDEF: EQU $ < NON DEFINI. LA NIVSYM LB &NIVSYM CP NETIQ JE TYPCOM < ETIQUETTE DE LA PHRASE EN COURS. STA NIV < SAUVEGARDES. STB MOT1 STY MOT2 CPZ RANG JNE ECALEX < CE N'EST PAS LE 1ER ELEMENT. TBT 26 JNC C133 IC INDSEC < REFERENCE EXTERNE. BSR SPTAS < MEMORISATION SYMBOLE DANS BUF. C133: EQU $ XR A,B LYI 0 JMP C129 TYPFIN: EQU $ < FIN DE PHRASE. DC NACQ C134: EQU $ LA SIGMA SLRS 1 JANE ECALEX < SIGMA DIFFERENT DE 0 ET 1. JC C137 CPZ NIV < SIGMA=0 JNE ECALEX C135: EQU $ LA SIGMA C136: EQU $ RSR ECALEX: EQU $ < EXPRESSION INCORRECTE. LAI 2 BR MERR C137: EQU $ CPZ RANG1 JNE ECALEX < ELEMENT TRANSLATABLE NON EN < TETE DE L'EXPRESSION. CPZ INDSEC < SIGMA=1. JLE C135 LAI -1 STA SIGMA JMP C136 TYPCOM: LAI 0 < COMPTEZUR D'ASSEMBLAGE. C138: EQU $ CPZ SITUAT JLE C139 SBT 3 < SECTION 'DSEC' EN COURS. C139: EQU $ JGE C140 SBT 4 < SECTION 'PROG' EN COURS. C140: EQU $ LB SECOUR LY PAS JMP COMAS PAGE < < < M O D U L E D ' A C Q U I S I T I O N : < < PMACQ: EQU $ LXI LMACQ STZ &INMACQ JDX $-1 LYI -2 PMACQ1: EQU $ LX NACQ LR X,A CPI 72 < FIN DE CARTE? JL C2200 LAI '0D JMP C2201 C2200: EQU $ LBY &AZACQ C2201: EQU $ STA CARLU CPZ ETAS JNE APRES CPI '3B < TEST ';'. JE POIVRE < POINT-VIRGULE RECONNU. CPI '26 < TEST '&'. JE INDIR < CARACTERE D'INDIRECTION RECONNU. CPI '24 < TEST '$'. JE COMPAS < COMPTEUR D'ASSEMBLAGE RECONNU. CPI '27 < TEST ''' JE HEXA < INDICATIF NBRE HEXA RECONNU. CPI '23 < TEST '#'. JE COMUT CPI '2C < TEST ','. JE FNBR1 < OMISSION DU CHIFFRE 0. CPI '2F < TEST DU '/'. JE SLASH < DIVISION RECONNUE. APRES: EQU $ SBT 8 CPI '8D < TEST R/C. JE C141 < R / C RECONNU. ANDI '3F C141: EQU $ LR A,B LXI LTABTY C142: EQU $ LBY &ATABLG SBR B,A JAG C143 JDX C142 C143: EQU $ LBY &ATABTY AD ETAS CPI 25 LR A,X LA CARLU JG CCHAIN BR &ATARUP POIVRE: EQU $ < POINT-VIRGULE. LA VALDIR CPI 22 JE C144 < SUR 'WORD'. CPI 20 JNE EMACQ C144: EQU $ IC PVIR < OU SUR 'BYTE'. LA CARLU JMP APRES INDIR: EQU $ < INDIRECTION RECONNU. CPZ NLIG JNE EMACQ ADRI 1,X STX KSTORE+3 LA BINARY SBT 2 STA BINARY JMP NEWCAR DECIM: EQU $ < DEBUT NBRE DECIMAL. ANDI 'F STA VALEUR LAI 10 C145: EQU $ LBI 16 C146: EQU $ STA CSTE C147: EQU $ STB ETAS NEWCAR: EQU $ IC NACQ JMP PMACQ1 HEXA: EQU $ < DEBUT NBRE HEXADECIMAL. IC INDHEX LAI 16 JMP C145 CNBRE: EQU $ < CONTINUATION D'UN NBRE. ANDI 'F C148: EQU $ LR A,X LA CSTE CPI 10 LA VALEUR JNE C149 CP M3277 JGE EMACQ C149: EQU $ MP CSTE JANE EMACQ ADR X,B STB VALEUR JNV NEWCAR LIMDEC: EQU $ < TEST LIMITE SI DECIMAL. SLLD 19 JANE EMACQ < LIMITE (32.768) DEPASSEE. CPZ SIGNE JGE EMACQ < SIGNE PLUS. JMP NEWCAR CNBR1: EQU $ < CONTINUATION NBRE HEXA. CPZ INDHEX JE EMACQ ANDI '1F CPI 6 JG EMACQ ADRI 9,A JMP C148 SUILT1: EQU $ < CHIFFRE DANS SUITE DE LETTRES. IC INDICA SUILT: EQU $ < SUITE DE LETTRES. LX LG ADRI 2,X LBI 8 CPR X,B JE EMACQ STBY &ASYMB ANDI '1F LR A,B SLLD 26 ADRI -2,X CPZR X JE C150 SLRD 5 JDX $-1 C150: EQU $ OR COND STA COND LA COND+1 ORR A,B STB COND+1 IC LG LBI 8 JMP C147 SLASH: EQU $ IC SIGN1 LAI 2 CSIGNE: EQU $ < SIGNE. CPZ SIGNE JNE EMACQ ANDI 3 ADRI -4,A STA SIGNE JMP NEWCAR EXCLAM: CPI '8D JE EMACQ CCHAIN: EQU $ CPZ INDASC JNE NEWCAR < DIRECTIVES 'ASCI' ET 'IDP'. JMP C148 < ELEMENT ABSOLU. FNBRE: EQU $ < FIN D'UN NBRE. DC NACQ JMP FNBR1 FSUILT: EQU $ < FIN D'UNE SUITE DE LETTRES. DC NACQ JMP FSUIL1 CHAIN: EQU $ < DEBUT CAHINE DE CARACTERES. LA NACQ STA NACQ1 LAI 0 SBT 7 < A=256 LBI 24 JMP C146 FCHAIN: EQU $ LA INDASC < Y=4 : CHAINE DE CARACTERES. ADR A,Y FNBR1: EQU $ ADRI 1,Y < Y=3 : ELEMENT ABSOLU. COMPAS: EQU $ ADRI 1,Y < Y=2 : $. FINPH: EQU $ ADRI 1,Y < Y=1 : FIN DE PHRASE. FSUIL1: EQU $ ADRI 1,Y < Y=0 : SUITE DE LETTRES. COMUT: EQU $ ADRI 1,Y < Y=-1 : #. ETIQ: EQU $ LA LG < Y=-2 : ETIQUETTE. ADRI 1,A SLRS 1 STA LG IC NACQ CPZ SIGNE JE C151 IC SIGNE C151: EQU $ IC SIGNE < SIGNE=1(+),0,-1(-). LR Y,A RSR EMACQ: EQU $ < ERREUR DE SYNTAXE. LAI 1 BR MERR PAGE < < < I N S E R T I O N S Y M BO L E D A N S T S Y M B : < < PINSET: EQU $ BSR TESAT LX NSYMB LAD &ATSYMB < COMMANDE. STA NIVSYM LAD SYMBOL LR A,W LA LG < LONGUEUR DANS A. STA &ATSYMB ADRI 2,X LR X,Y JAE C153 < DIRECTIVE DE SECTIONNEMENT AVEC < LG=0. C152: EQU $ LB 0,W STB &ATSYMB ADRI 1,X ADRI 1,W ADRI -1,A JAG C152 C153: EQU $ STX NSYMB ADRI -1,Y LR Y,X LA &NIVSYM < A=MOT DE COMMANDE. RSR PAGE < < < I N S E R T I O N D ' U N D E P L A C E M E N T < D A N S T DE P : < < PINSDP: EQU $ BSR TESAT LX NDEP CPZ BINARY < BINARY=0 SI 'WORD'. LA NIV JE C154 SBT 0 < 'JMP'. C154: EQU $ STA &ATDEP LA SOM STA &ATDEP1 LA PAS STA &ATDEP2 ADRI -3,X STX NDEP SORINS: EQU $ RSR PAGE < < < T E S T D E S A T U R A T I O N D E S T A B L E S : < < PTESAT: EQU $ LX NSYMB LAD &ATSYMB LR A,B < B=ADRESSE 1ERE MEMOIRE LIBRE < DE TSYMB. LX NDEP LAD &ATDEP < A=ADRESSE 1ERE MEMOIRE LIBRE < DE TDEP. SBR B,A CPI 5 JL C155 RSR C155: EQU $ LAI 9 < TABLES SATUREES. BR MERR PAGE < < < R E C H E R C H E S Y M B O L E D A N S T S Y M B : < < PRETIQ: EQU $ LXI 0 C156: EQU $ LR X,A SB NSYMB JAE SRETIQ LAD &ATSYMB STA NIVSYM LA &ATSYMB TBT 10 JC C157 < ELIMINATION SYMBOLE EXT. TBT 8 ADCR L < ELIMINATION SYMBOLE NON < DEFINI. C157: EQU $ ADRI 2,X ANDI 3 CP LG JE C158 ADR A,X JMP C156 C158: EQU $ LR A,B < LONGUER DANS B. LAD SYMBOL LR A,W LYI 0 NEWORD: EQU $ LA &ATSYMB EOR 0,W ORR A,Y ADRI 1,X ADRI 1,W ADRI -1,B CPZR B JNE NEWORD CPZR Y JNE C156 LA LG ADRI 1,A SBR A,X LA &NIVSYM SRETIQ: EQU $ RSR < SYMBOLE TROUVE : A=MOT < DE COMMANDE. PAGE < < R E C H E R C H E P R O C H A I N < N O M D E S E C T I O N : < < PRECSC: EQU $ LA NSYMB CPR A,X JE SOREC < I1=1. LY &ATSYMB LBI 3 ANDR Y,B < B=LONGUEUR SYMBOLE. ADRI 1,B ADRI 1,X LA &ATSYMB < A=ADRESSE DEBUT DE SECTION. ADR B,X CPZR Y JGE PRECSC < I1=0. SOREC: EQU $ RSR PAGE < < < R E C H E R C H E S Y M B O L E < S U I V A N T D A N S T S Y M B : < < PSYMUL: EQU $ LA &ATSYMB ANDI 3 ADRI 2,X ADR A,X LA NSYMB CPR X,A < TEST SI LIMITE ATTEINTE. RSR PAGE < < < E D I T I O N D U B I N A I R E : < < < NOTA : < EN MODE ' S' , LE BINAIRE < EST ENREGISTRE DANS LA ZONE 'ABO' < ET NON PAS SUR FICHIER SEQUENTIEL. < < SPSO1: EQU $ < SORTIE UN QUADRUPLET. STBY BUF SLLD 2 SBT 30 LXI -3 SUIVAN: EQU $ SCRD 6 SLRS 10 SBT 9 PTY JNC C159 SBT 8 C159: EQU $ STBY &ABUF JIX SUIVAN SORTQ: EQU $ LXI -4 C161: EQU $ LBY &ABUF < ELIMINATION DES NULLS. JAG C162 LAI 'A0 STBY &ABUF C162: EQU $ JIX C161 LBY BUF CPI '30 JE PERBIN < COMMANDE 'EOF'. LA CHECK < CALCUL DU CHECKSUM. AD BUF ADCR A AD BUF+1 ADCR A STA CHECK PERBIN: EQU $ LB ABO < B=RECEPTEUR=ZONE IMPLANTEE < EN TETE DES 4 DERNIERS K. LAD BUF < A=@ BUFFER CONTENANT LE QUADRUPLET LXI 2 MOVE < PLACER LE QUADRUPLET DANS LA ZONE ADRI 2,B < MISE A JOUR DU POINTEUR < COURANT DE SIMULATION SGF. STB ABO < AND SAVE. LA AI1 RBT 0 < A=@CORPS(ITEM1). ADRI -LTN,A < POUR TENIR COMPTE DE LA ZONE < DE SAUVEGARDE DE L'EN-TETE < DE L'ITEM2. ADRI -2-LTN,A < A=LIMITE SUPERIEURE DE LA < ZONE ABO. SBR B,A < A=ESPACE RESTANT LIBRE POUR < LA ZONE ABO. JALE Z22 < ERREUR : BINAIRE OVERFLOW. RSR < < TRAITEMENT DES ERREURS : < Z22: EQU $ ADRI -1,K < RECUPERATION DU BSR D'APPEL. LAI 0 < ERREUR 0 D'ASSEMBLAGE. BR MERR < < < SPSO2: EQU $ < SORTIE 2 QUADRUPLETS. STBY BUF BSR PSORTQ < SORTIE 1ER QUADRUPLET. LA BUF+2 STA BUF LA BUF+3 STA BUF+1 JMP SORTQ < SORTIE 2EME QUADRUPLET. < < < PSOSYM: EQU $ < SORTIE SYMBOLE DONT A=ADRESSE. BSR TRASYM LAI 6 BSR SORMES RSR < < < PSORM: EQU $ < SORTIE MESSAGES NON ERREUR. STA IOCB3+2 PSR X LAD IOCB3 SVC 0 PLR X RSR < < < PSORCL: EQU $ < SORTIE RC-LF. LA RCLF STA SYMBOL LAI 2 BSR SORMES RSR PAGE < < < C O N V E R S I O N S N U M E R I Q U E S : < < PCONV: EQU $ < CONVERSION HEXADECIMALE 4 < CHIFFRES. BSR HEXA2 LR A,Y < Y=POIDS FORTS. BSR HEXA2 RSR < A=POIDS FAIBLES. < < < PHEXA: EQU $ < CONVERSION HEXADECIMALE 2 < CHIFFRES. LAI 0 STZ ZTR SLLD 4 BSR BSUPL STBY ZTR LAI 0 SLLS 4 SLLD 4 BSR BSUPL OR ZTR RSR < < < PCOV10: EQU $ < CONVERSION DECIMALE 2 CHIFFRES. ANDI '3F SLRD 16 DV M10 BSR BSUPL < CHIFFRE DES DIZAINES. XR A,B BSR BSUPL < CHIFFRE DES UNITES. SLLS 8 SCRD 8 RSR < < < SUPL: EQU $ < TRAITEMENT DES BITS 8,9,10. CPI 9 JLE C164 < CHIFFRE. ADRI -9,A < LETTRE. ORI '40 JMP C165 C164: EQU $ ORI '30 C165: EQU $ RSR < LE CALCUL DE PARITE A ETE SUPPRME. PAGE PTRAS: EQU $ < TRANSFERT DANS SYMBOL. PSR X LXI 3 < NETTOYAGE SYMBOL. STZ &ASYMB JDX $-1 STA NIVSYM < A=ADRESSE DU SYMBOLE. LA &NIVSYM ANDI 3 < A=LONGUEUR. JAE LONUL < LONGUEUR NULLE. LXI 1 IC NIVSYM C166: EQU $ IC NIVSYM LB &NIVSYM STB &ASYMB ADRI 1,X ADRI -1,A JAG C166 LONUL: EQU $ < RESTAURATION DE X. PLR X RSR < SAVE X DANS ZTR. < < < PTAS: EQU $ < TRANSFERT SYMBOLE DANS BUF. LA SYMBOL LB SYMBOL+1 SLRD 8 STA BUF STB BUF+1 LA SYMBOL+1 STA BUF+2 LA SYMBOL+2 STA BUF+3 LAI '22 STBY BUF+2 RSR PAGE PSORC: EQU $ < EDITION SECTION. BSR SORCLF BSR PAGIN LYI -1 LR Y,W C167: EQU $ LXI 0 ADRI 1,W < LETTRE SUIVANTE (1ERE LETTRE < EST 'A'. PSORC1: EQU $ LA &ATSYMB SLRD 8 CPI '80 < ELIMINATION ADRESSE DE FIN < DE SECTION. JE NEDIT ANDI '7F CP BINARY JNE NEDIT < APPARTIENT A AUTRE SECTUON. TBT 16 JC NEDIT < ELIMINATION SYMBOLE NON DEFINI. LAD &ATSYMB BSR TRASYM CPZ &ATSYMB JG EDITER CPZR W JNE NEDIT < NOM DEJA EDITE. LA LIBSEC STA SYMBOL LA LIBSEC+1 STA SYMBOL+1 LAI 4 JMP EDNOM EDITER: EQU $ LBY SYMBOL ANDI '1F CPR A,W JNE NEDIT < LETTRE NON CONFORME. ADRI 1,X LB &ATSYMB < MOT VALEUR. LA CARSP+1 STA SYMBOL+2 BSR CONVER < CONVERSION HEXADECIMALE. STA SYMBOL+1 STY SYMBOL ADRI -1,X LAI 6 EDNOM: EQU $ BSR SORMES LAD &ATSYMB < A=ADRESSE SYMBOLE. BSR TRASYM LAI 6 BSR SORMES BSR SORCLF < RC-LF. BSR PAGIN NEDIT: EQU $ BSR SYMUL JNE PSORC1 LAI 26 CPR A,W JNE C167 < LETTRE 'Z' NON ATTEINTE. BSR SORCLF BSR PAGIN RSR PAGE < < < E D I T I O N L I S T I N G : < < PLIST: EQU $ < SORTIE LISTING (ZACQ1). STB BINARY CPZ SITUAT JG C168 < ON EST DANS UNE DSEC. BSR ASPSO1 < SORTIE MOT BINAIRE. C168: EQU $ BSR VERPA < VERIFICATION DEPASSEMENT 32K. LBY BUF CPI 'AC JE PLIS1 < 'DZS'. LX SINGER < CARACTERE SPECIAL. LA &ACARSP STA &ZACQ12 LB BINARY < B=MOT. BSR CONVER < CONVERSION. STY &ZACQ13 < POIDS FORTS DU MOT. STA &ZACQ14 < POIDS FAIBLES DU MOT. PLIS1: EQU $ < SORTIE LISTING ('DZS' + 'EQU'). LB DEBRES+2 BSR CONVER LR A,L LA VALDIR CPI 17 JE ADCOMP < '$EQU'. LR L,A CPZ INDZS STZ INDZS JG ADCOMP < LA PHRASE PRECEDENTE ETAIT 'DZS'. ANDI 7 JAE ADCOMP < SORTIE ADRESSE COMPLETE. LR L,A SLLS 8 ORI 'A0 SCLS 8 LY CARSP+1 JMP C169 ADCOMP: EQU $ LR L,A < POIDS FORT DE L'ADRESSE. C169: EQU $ STY &ZACQ10 STA &ZACQ11 < POIDS FAIBLES DE L'ADRESSE. CPZ LIMSU2 JE PAGENE < PAS DE GENERATION DE DEPLACEMENT. CPZ ETAPH JG PAGENE < PAS DE GENERATION DE DEPLACEMENT < ('$EQU'). LA DEBRES+2 < A=PAS SAUVEGARDE. SB DEBSEC ADRI -128,A CPI 127 JG PAGENE < DEPLACEMENT SUPERUEUR A 127. LR A,B BSR CONVER STA &ZACQ16 < POIDS FAIBLES DU DEPLACEMENT. LA OUVR STA &ZACQ15 LA FERM STA &ZACQ17 PAGENE: EQU $ < SORTIE DU LISTING. LAD IOCB4 SVC 0 BSR PAGIN LAI 26 < PLUS DE SORTIE SYMBOLIQUE STA IOCB4+2 LA RCLF STA &ZACQ18 LA VALDIR CPI 19 JNE C170 IC INDZS < PHRASE EST 'DZS'. C170: EQU $ RSR < < PPAGE: EQU $ < SAUT DE PAGE. PSR X LA SYMBOL PSR A LAD IOCB < LIRE UN CARACTERE SVC 0 JNE PAEFEC LAD IOCB7 < AVANT D'EFFACER SVC 0 PAEFEC: EQU $ PLR A STA SYMBOL PLR X STZ NBLIN RSR < < < PPAGIN: EQU $ < MISE EN PAGE. IC NBLIN LA NBLIN CPI NBLIG < TEST PAR RAPPORT AU NBRE DE < LIGNES SUR UN ECRAN DE VISU. JE PPAGE < SAUT DE PAGE EN BAS. RSR PAGE < < < T R A I T E M E N T D U J U M P : < < PJUMP: EQU $ CP DEBSEC JL C172 CPZR W JNE C171 CP FINSEC JLE C171 STA FINSEC < ADRESSE LIMITE DE SECTION. C171: EQU $ SBR Y,A CPI -128 JL C172 < HORS D'ATTEINTE. CPI 127 JG C172 < HORS D'ATTEINTE. RSR C172: EQU $ LAI 11 < HORS-LIMITE DE SECTION. BR MERR < < < VERPAS: EQU $ < VERIFICATION DU PAS. CPZ PAS JL C173 RSR C173: EQU $ LAI 12 < PASSAGE AU-DELA DE 32K. BR MERR < < < PSAV: EQU $ < SAVE POUR LES CAS D'ERREURS. LXI LSAV C174: EQU $ LA &ASAVE STA &AREST JDX C174 RSR PAGE < < < T R A I T E M E N T D E S E R E U R S : < < ERR: EQU $ STA NR NR0: LXI LSAV < RESTORE VALEURS SAUVEGARDEES. C175: EQU $ LA &AREST STA &ASAVE JDX C175 LA MOT1 JAE C176 STA &NIV IC NIV LA MOT2 STA &NIV C176: EQU $ LA DEPLA2 < PREPARTION MESSAGE D'ERREUR. BSR CONV10 STA SYMBO2+4 < DEPLACEMENT. LA NR BSR CONV10 STA ZTR < NUMERO D'ERREUR. STZ BASCUL < CHANGEMENT DU NVP D'ENTREE. LA NR < TEST DE L'ERREUR PRODUITE ??? CPI 17 < EST-CE LA FATALE ERREUR '17' ??? JNE E1947 < NON , L'ASSEMBLAGE PEUT SE < POURSUIVRE .... LAI "G" < REVENIR A 'GE' SLLS 8 ORI "E" LR A,B LAI BRANCH-ZERO LR A,W < W=@BRANCH. BR 9,W < LES ASSEMBLAGES EN ERREUR < SONT ABORTES (VERS 'EOT'). < < CAS DES AUTRES ERREURS. < E1947: EQU $ BR RETER PAGE < < < T O P U T I L E D E S Y M B O L : < < TOP: EQU $ < < < V A L I D A T I O N I M P L A N T A T I O N : < < X13: VAL TOP-ZBR*2 < TAILLE DE LA BRANCHE ' Z'. X10: VAL ZERO-BRANCH+PILE-LTNI-LTNI*2-X13 ZEROV2: EQU ZERO+X10 < ERREUR D'ASSEMBLAGE SI < MAUVAISE IMPLANTATION. DZS X10/2+1 < CLEAR PAR PRUDENCE. EOT #SIP GEN PROCESSEUR#