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#