MES29 DEC 15 ASC 15,FONCTION NON DEFINIE LIGNE: _ MES30 DEC 13 ASC 13,DEFINE INCORRECT LIGNE: _ MES31 DEC 20 ASC 20,TROP D'ARGUMENTS DANS LE DEFINE LIGNE: _ MES32 DEC 21 ASC 21,NOMBRE DE MOTS OCCUPES PAR LE PROGRAMME: MES33 DEC 21 ASC 21,CARACTERE NON AUTORISE EN SNOBOL LIGNE: _ MES34 DEC 15 ASC 15,ERREUR DE PARENTHESES LIGNE: _ MES35 DEC 15 ASC 15,CONSTRUCTION ILLEGALE LIGNE: _ MES36 OCT 100021 ASC 16,ENTREE DANS DECBI AVEC NOMBRE<0 MES37 DEC 19 ASC 19,LABEL DEFINI PLUS D'UNE FOIS LIGNE: _ MES38 OCT 100034 ASC 27,HLT DANS JSB LONG:DANS LE 1ER MOT D'UNE CHAINE:-N>=0!!! MES39 OCT 100015 ASC 12,HLT DANS JSB CARI:I>N!!! MES40 DEC 12 ASC 12,COMPILATION INTERROMPUE MES41 DEC 20 ASC 20,FIN DE COMPILATION . NOMBRE D'ERREURS: _ MES42 DEC 10 ASC 9,PLUS DE 50 ERREURS MES43 DEC 10 ASC 10,LABEL NON DEFINI : SPC 5 ERRE NOP S.P. D'ERREUR CLA JSB SPECR SAUT DE LIGNE LDB NBERR NBR. D'ERREURS INB CPB D50 JMP ERR3 ARRET COMPILATION STB NBERR CLB STB INSTO INSTO#0-->ARRET COMP. STB ERRNO NUMERO D'ERREUR LDA ERRE LDB .TABE ERR1 CPA 1,I JMP ERR2 ISZ ERRNO INB JMP ERR1 ERR2 LDB .MESE ADB ERRNO LDB 1,I LDA 1,I SSA ISZ INSTO AND MASKS STA DECAL STB BGAR LDA INDL PAS DE LISTING : SZA,RSS JSB LIERR ECRITURE LIGNE ERRONEE LDA DECAL LDB BGAR ERR5 CMA,INA INA STA MESLG INB LDA 1 LDB ZOIM. JSB MOUV BUFFER SANS : _ LDA INSTO SZA JMP ERR4 LDA LIGNO JSB ECRNO CCB ADB ZOIM. ADB DECAL JSB MOUV LDA DECAL ADA D2 JSB SPECR NO LIGNE DU LISTING CLA JSB SPECR SAUT DE LIGNE LDA COFIN SZA JMP ERRE,I LDA PREOP STA PTOP JMP LISUI ERR3 CLA,INA STA INSTO PLUS DE 50 ERREURS LDB PTR42 LDA 1,I JMP ERR5 ERR4 LDA MESLG CMA,INA JSB SPECR LDB PTR40 LDA 1,I CMA,INA STA MESLG INB LDA 1 LDB ZOIM. JSB MOUV LDA MESLG CMA,INA JSB SPECR JMP TERM2 * * MOUV NOP JSB MOUVE MESLG NOP JMP MOUV,I * SPECR NOP INA STA LGMES SPEC2 JSB EXEC DEF *+5 DEF D13 ATTENTE AVANT DEF LUOUL ECRITURE MESSAGE DEF GAR10 DEF GAR11 LDA GAR10 SSA JMP SPEC2 JSB EXEC DEF *+5 DEF D2 DEF LUOUL DEF ZOIM DEF LGMES JMP SPECR,I * DECBI NOP SSA ER36 JSB ERRE LDB BLAN2 STB BUECR STB BUECR+1 LDB BUDEB STB BUASC LDB BUEND STB BUEC CLB S.P. DE CONVERSION:BINAIRE-ASCII STB CHCTR SZA,RSS JMP CONV2 CONV1 DIV D10 SZA JMP CONV2 SZB,RSS JMP CONV3 CONV2 ADB O60 STB BUASC,I ISZ BUASC LDB CHCTR CPB D4 JMP ER25 INB STB CHCTR CLB JMP CONV1 CONV3 LDA BUDEB STA BUASC CONV6 LDA BUASC,I SLB JMP CONV4 STA BUEC,I JMP CONV5 CONV4 ALF,ALF IOR BUEC,I STA BUEC,I CCA ADA BUEC STA BUEC CONV5 INB ISZ BUASC CPB CHCTR RSS JMP CONV6 SLB,RSS JMP DECBI,I LDA BUEC,I IOR BLANG STA BUEC,I JMP DECBI,I O60 OCT 60 D10 DEC 10 * LIERR NOP LDA INSTO SZA JMP LIERR,I LDA COFIN SZA JMP LIERR,I LDA NCAR CMA,INA INA STA NN LDB BUF. LIER1 STB MESAD ADA D70 CLB SSA INB STB INARR LDA NN SZB LDA DM70 STA NNN ARS STA MESLG LDA MESAD LDB ZOIM. JSB MOUV LDB NNN CMB,INB SLB JMP NNIMP LDA MESLG CMA,INA LIER2 JSB SPECR LDA INARR SZA,RSS JMP LIERR,I LDA NN ADA D70 STA NN LDB MESAD ADB D35 JMP LIER1 * NNIMP BRS ADB ZOIM. LDA 1,I AND PFORT ADA ESPAC STA 1,I JMP LIER2 SPC 4 PERFB NOP PERFORE DE BUF, AVEC NBMOT JSB EXEC DEF *+5 DEF D2 DEF COWO0 .BUF DEF BUF DEF NBMOT JMP PERFB,I SPC 5 ************************************************************* * * * PACK * * POUR METTRE EN FORMAT PSEUDO-RELOCATABLE * * COMPATIBLE DOS. (RECORD DE LONGUEUR < 60 MOTS)* * * * LDA K * * STA CODE (CODE DE L'ENREGISTREMENT,-2 IEME. MOT) * * LDA LONGUEUR DU BUFFER (+ NB. MOTS) * * LDB ADRESSE DU BUFFER * * JSB PACK * * * ************************************************************** SPC 2 PACK NOP STA GAR5 STB GAR7 STB GAR4 ADA DM1 SSA HLT 0B INA ADA DM50 SSA JMP OKPAC ADA DM4 SSA JMP OKPAC ADA D4 POUR RESTORER STA GAR3 NOUVEAU NB DE MOTS CMA,INA ADA GAR5 STA GAR5 ADA GAR7 STA GAR4 OKPAC LDA GAR5 ADA D3 POUR CODE, CHECKS., & NB. MOTS STA NBMOT ALF,ALF STA BUF LDA GAR5 CMA,INA STA PACK2 LDA GAR7 LDB .BUF ADB D3 JSB MOUVE PACK2 NOP LDA COD STA BUF+1 JSB CHECK LDB JBINS CLA CPB DM1 STA LGFLG LDA LGFLG LOAD AND GO FLAG SZA,RSS JMP PACK3 JSB %WRIT DEF PACK3 DEF BUF DEF NBMOT PACK3 LDA INDB SZA JSB PERFB LDB GAR4 CPB GAR7 JMP PACK,I LDA GAR3 JMP PACK+1 SPC 3 LEADR NOP LDA LUOUB TEST LU = 4 CPA D4 RSS JMP LEADR,I LDB INDB FAUT-IL PERFORER LE BIM. SZB,RSS JMP LEADR,I JSB EXEC DEF *+3 DEF D3 DEF RCODE JMP LEADR,I * SPC 4 CHECK NOP LDA .BUF,I AND PFORT ALF,ALF CMA,INA ADA D3 LDB .BUF ADB D3 STB TEMP1 LDB BUF+1 CHEC1 ADB TEMP1,I ISZ TEMP1 INA,SZA JMP CHEC1 STB BUF+2 JMP CHECK,I SPC 3 HED ** REAL-TIME, DOS, AND DOS/IOMEC READ SOURCE ** *READS SOURCE FROM DISK (IF LUN= 2) OR OTHER DEVICE *CALLING SEQUENCE FOR %READ: JSB %READ * DEF *+5 * DEF LUNIN LUN FOR INPUT * DEF BUFFR FWA OF READ-BUFFER * DEF RLEN -(NO OF CHARS) * EOF RETURN * NORMAL RETURN *RETURNS WITH: (B) = NO.OF CHARS. SPC 4 %READ NOP JSB FTEST INITIALIZE IF FIRST TIME LDA %READ,I STA EXIT RETURN ADDRESS ISZ %READ LDA %READ,I STA LUNAD ADDR FOR LUN OF INPUT ISZ %READ LDA %READ LDA 0,I RAL,CLE,SLA,ERA TEST I-BIT AND CLEAR JMP *-2 INDIRECT, GO ON THRU INDIR.CHAIN STA RBFAD FWA OF READ-BUFFER ISZ %READ LDA %READ,I STA RLGTH RECORD-LENGTH ADDR ISZ %READ BUMP RETURN ADDR FOR EOF RETURN LDA LUNAD,I CPA D2 LUN = 2 JMP READ1 YES ADA O400 KEYBOARD INPUT, -PRINTING- STA LUN JSB EXEC READ FROM OTHER THAN DISK DEF *+5 DEF M1OR1 CODE = 1 OR -1 FOR READ DEF LUN ADDR OF INPUT-LUN OF CONTROL CARD RBFAD BSS 1 ADDR OF READ-BUFFER RLGTH BSS 1 ADDR OF ASKED-FOR RECD LENGTH JMP EXIT,I EXIT SPC 4 LUNAD BSS 1 ADDR OF INPUT-LUN OF CONTROL CARD LUN BSS 1 O400 OCT 400 EXIT BSS 1 EXIT POINT BUFFR BSS 128 SECTOR-BUFFER FIRST OCT 0 FIRST TIME FLAG READ1 LDA FIRST SZA FIRST TIME ? JMP *+3 NO ISZ FIRST SET NE.0 JSB %JFIL READ IN FIRST SECTOR JSB GETWD GET RECORD HEAD ALF,ALF (A)= NO OF WORDS LDB 0 SZA,RSS END OF TAPE ? JMP EXIT,I YES, EXIT WITH (B)=0 SSA EOF ? JMP %READ,I YES, EOF RETURN CMA,INA -( NO OF WORDS IN RECORD) RBL STB ALGTH RECORD LGTH IN CHARS LDB RLGTH,I ASKED-FOR RECORD-LENGTH (-) BRS CONVERT TO -(WORD COUNT) STA RCOUN SET CURRENT-RECORD COUNT STB ACOUN SET ASKED-FOR RECORD COUNT JSB GETWD GET WORD FROM DISK STA RBFAD,I WORD TO USER-S BUFFER ISZ RBFAD BUMP BUFFER ADDR ISZ ACOUN BUMP COUNT RSS JMP READ2 READY,FINISH UP ISZ RCOUN BUMP RECORD COUNT JMP *-7 CONTINUE LDB ALGTH RETURN ACTUAL RECORD-LENGTH JMP *+5 READ2 ISZ RCOUN SKIP TO END OF RECORD JMP *+5 LDB RLGTH,I READY, RETURN ASKED-FOR REC.LGTH CMB,INB POS LGTH LDA CODE. RETURN CODE-WORD IN A JMP EXIT,I JSB GETWD GET NEXT WORD JMP READ2 AND SKIP BFRAD BSS 1 POINTER FOR INTERNAL BUFFER GETWD NOP LDA BFRAD,I ISZ BFRAD ISZ BCOUN BUMP BUFFER COUNTER JMP GETWD,I EXIT ISZ SECTR BUMP SECTOR NO. LDB STYPE SSB JMP RTECD STA SAVE LDB SECTR CPB 116B END OF TRACK? CLB,RSS YES,SECTOR = 0 JMP GETW1+1 STB SECTR SECTOR NO = 0 ISZ TRACK BUMP TRACK NO. JSB EXEC DEF *+5 DEF .M16 CODE = -16 FOR STATUS DEF D1 1 TRACK DEF TRACK STARTING TRACK DEF TRACK NEXT GOOD TRACK JMP GETW1+1 RTECD LDB =B1755 ADB RLUN =1757B FOR SYST, 1760B FOR AUX. LDB 1,I CPB SECTR END OF TRACK? CLB,RSS YES, SECTOR NO.= 0 JMP GETW1 STA CODE. SAVE CODE-WORD STB SECTR SECTOR NO =0 LDA =D-8 STA N LDA CODE. CLE,ELA SHIFT UPPER 8 BITS OF ELB,CLE A INTO B, OR LSL 8 ISZ N JMP *-3 ALF,ALF STA TRACK SET TRACK NO STB RLUN SET LUN JSB READS READ SECTOR JMP GETWD+1 GET RECORD WORD GETW1 STA SAVE JSB READS READ NEXT SECTOR LDA SAVE JMP GETWD,I READS NOP LDA BFWA STA BFRAD BUFFER-POINTER= FWA BUFFER LDA MSIZE -64 OR -128 STA BCOUN BUFFER COUNTER JSB EXEC READ SECTOR DEF *+7 DEF M1OR1 CODE = 1 OR -1 FOR READ DEF RLUN LUN BFWA DEF BUFFR FWA OF READ-BUFFER DEF PSIZE 64 OR 128 WORDS DEF TRACK TRACK NO. DEF SECTR SECTOR NO. JMP READS,I EXIT ACOUN BSS 1 ASKED-FOR RECD COUNT RCOUN BSS 1 CURRENT-RECORD COUNT ALGTH BSS 1 RECD LGTH TRACK BSS 1 CURRENT TRACK NO SECTR BSS 1 CURRENT SECTOR NO BCOUN BSS 1 SECTOR-BUFFER COUNTER SAVE BSS 1 TEMP STORAGE RLUN BSS 1 LUN OF CURRENT TRACK CODE. BSS 1 STYPE BSS 1 SAVES SYSTEM TYPE CODE FROM OPSY N BSS 1 COUNTER M1OR1 DEC 1 SET FOR RTE, MAY CHANGE .M16 DEC -16 .2OR3 DEC 2 PSIZE DEC 64 MSIZE DEC -64 * *%RDSC READS A SECTOR *CALLING SEQUENCE: LDA CODE * LDB SECTR SECTOR NO. * JSB %RDSC * RETURN (A)= LAST WORD IN SECTOR %RDSC NOP STB SECTR SECTOR NO. LDB =D-8 STB N CLB CLE,ELA ELB,CLE LSL 8 ISZ N JMP *-3 ALF,ALF STA TRACK LDA STYPE SSA JMP *+3 DONT CHANGE UNIT FOR RTE CPB D3 SET LU NEG IF = 3 CMB,INB STB RLUN LUN= 2 OR 3 JSB READS READ SECTOR LDB STYPE LDA BUFFR+63 LAST WORD IN 64 WORD SECTOR SLB LDA BUFFR+127 LAST WORD IN 128 WORD SECTOR JMP %RDSC,I *%JFIL GETS SOURCE-FILE CODEWDRD FROM BASE PAGE, FORMS A WORD= *LUN,TRACK AND CALLS %RDIN WITH IT. %JFIL NOP JSB FTEST INITIALIZE IF FIRST TIME LDA =D-8 STA N LDA STYPE CLE,SSA JMP RTEFL RTE LDB 124B DOS OR IOMEC/DOS LDA .2OR3 LUN = 2 OR 3 JSB RRL RRL 8 BLF,BLF JMP CONTU RTEFL LDB 1767B SOURCE-FILE CODE WORD CLA CLE,ELB RRL 1 ELA ADA .2OR3 JSB RRL SHIFT TRACK NO INTO A STA CODE. SAVE LUN, TRACK NO. CLB CONTU JSB %RDSC READ SECTOR JMP %JFIL,I EXIT FTEST NOP INITIALIZES RTE,DOS,OR DOSM STUF LDA FIRST FIRST TIME ? SZA JMP FTEST,I NO. JSB .OPSY STA STYPE 0 = DOS, 1 = IOMEC/DOS, -2 = RTE SSA JMP FTEST,I RTE CCB DOS OR IOMEC/DOS STB M1OR1 SET M1OR1 = -1 SLA,RSS JMP FTEST,I DOS LDB =D128 IOMEC/DOS. BUFFER SIZE = 128 STB PSIZE CMB,INB STB MSIZE LDB D3 STB .2OR3 LOGICAL UNIT = 3 JMP FTEST,I RRL NOP PERFORMS RRL N CLE,SSA IF MSB = 0, E=0 CCE ELSE E=1 ELB SHIFT E INTO B ELA SHIFT E INTO A ISZ N JMP RRL+1 JMP RRL,I SPC 3 COWO0 OCT 304 COD NOP NBMOT NOP RCODE OCT 1004 TEMP1 NOP BUF BSS 60 GAR5 NOP GAR7 NOP GAR3 NOP GAR4 NOP SPC 5 ADLAB NOP ADMOT NOP ADR NOP ADTSM NOP ADTSY NOP ADTYP NOP ASCL ASC 1,L ASTER OCT 52 * MULCD OCT 100003 CODE * SPC 3 B4 OCT 1404 NOP NOP BGAR NOP BLANG OCT 20000 ESPACE A GAUCHE BLAN2 OCT 20040 SPC 3 CBAD NOP CHCTR NOP CLELE NOP INDICATEUR PREMIERE LIGNE CLLCD OCT 100017 CODE CALL CNT NOP CNTAR NOP CNTLG NOP CNTPA NOP CO1CD OCT 100006 CO2CD OCT 100007 CODE CONCAT. 2 CODE NOP COFIN NOP COMF NOP COMS NOP COM NOP CONT NOP CTVIR NOP SPC 3 DECAL NOP DEFI. DEF *+1 DEC -6 ASC 3,DEFINE D1 DEC 1 D2 DEC 2 D3 DEC 3 D4 DEC 4 D5 DEC 5 D6 DEC 6 D7 DEC 7 D13 DEC 13 D35 DEC 35 D50 DEC 50 D70 DEC 70 D500 DEC 500 D511 DEC 511 DESP OCT 42000 DISCD OCT 100050 DIV OCT 57 / DIVCD OCT 100004 CODE / DOLAR OCT 44 $ INDCD OCT 100020 CODE $ DM1 DEC -1 DM2 DEC -2 DM3 DEC -3 DM4 DEC -4 DM6 DEC -6 DM10 DEC -10 DM12 DEC -12 DM30 DEC -30 DM50 DEC -50 DM70 DEC -70 DM72 DEC -72 DPT OCT 72 : DIS. DEF *+1 DEC -6 ASC 3,DISQUE SPC 3 EGAL OCT 75 = EGACD OCT 100000 CODE = EN ASC 1,EN ERRNO NOP ESPAC OCT 40 EXPON OCT 136 ^ EXPCD OCT 100005 CODE ^ SPC 3 FINLG OCT 100040 FLGLB NOP FTLB NOP FIN TABLE DES LABELS FONC NOP FSTFO OCT 77757 SPC 3 GACTB NOP GARA NOP GAR12 NOP GARB NOP GARI NOP GAR1 NOP GAR2 NOP GAR10 NOP GAR11 NOP GAR14 NOP GOTO1 OCT 100014 GOTOS OCT 100015 GOTOF OCT 100016 GOTO NOP SPC 3 I NOP IDEND OCT 120000 INARR NOP INCND NOP INDB NOP INDICATEUR POUR BINAIRE A PERFORER INDL NOP INDICATEUR POUR LISTING INDT NOP INGOT NOP INDIC DE GOTO DANS UNE EXPR ARITHMETIQUE INSTO NOP SPC 3 J NOP JBINS EQU 101B SPC 3 LIGNO NOP LONCD OCT 100010 LSTFO OCT 177761 C'EST - NB. FONCT. DE BASE LUNI NOP LUOU NOP LUINS EQU A LUOUL EQU A+1 LUOUB EQU A+2 LGFLG EQU A+4 LGMES NOP LSTME EQU 100B SPC 3 MASKS OCT 77777 MEMCD OCT 100051 MEMOI NOP MESAD NOP .MODE DEF *+1 DEC -4 ASC 2,MODE NOP MEMO. DEF *+1 DEC -7 ASC 4,MEMOIRE SPC 3 NBERR NOP NCA NOP NCAR NOP NCARA NOP NN NOP NNN NOP NOMCA NOP SPC 3 O12 OCT 12 O20 OCT 20 O32 OCT 32 O46 OCT 46 O100 OCT 100 O300 OCT 300 O377 OCT 377 O401 OCT 401 O53 OCT 53 + PLUCD OCT 100001 CODE + O55 OCT 55 - MINCD OCT 100002 CODE - OF OCT 106 OM100 OCT -100 O140 OCT 140 OM40 OCT -40 OM133 OCT -133 OM140 OCT -140 OM60 OCT -60 OM72 OCT -72 OS OCT 123 SPC 3 PAFER OCT 51 ) PAROU OCT 50 ( PAR3 NOP PARNB NOP PATCD OCT 100011 PERIO NOP PFORT OCT 177400 POINT OCT 56 . PRFOI NOP PRITE NOP PTFIX NOP PTR DANS VRAIE CHAINE POSTFIXEE PTFI NOP PTR DANS LA CH POSTFIXEE EN MEMEOIRE PTR1 NOP PTR2 NOP SPC 3 QUOTE OCT 47 ' SPC 3 RPLCD OCT 100041 SPC 3 STATU NOP STATUS APRES UNE LECTURE SPC 3 TYAD1 OCT 0 TYAD2 OCT 010000 TYAD3 OCT 020000 TYAD4 OCT 030000 TYAD5 OCT 050000 SPC 3 VIRA ASC 1,,A VIRB ASC 1,,B VIRG OCT 54 VIRGULE VIRL ASC 1,,L VIRT ASC 1,,T SPC 3 .G OCT 27000 POINT A GAUCHE SKP *******TABLE DES VRAIES VALEURS******** * ------------------------ * * DTVV DEF TVV DTVV1 DEF TVV1 NTV NOP TVV DEC -6 ASC 3,ANCHOR OCT 100045 DEC -8 ASC 4,UNANCHOR OCT 100046 TVV1 DEC -1 ASC 1,* NOP TAVV BSS 2000 LASVV DEF * FVV. DEF TAVV FTVV NOP SPC 3 **************FIN TABLE DES SYMBOLES************** TSYM. DEF TSYM TSYM DEC -5 ASC 3,QUOTE NOP DEC -6 ASC 3,SYSPPT NOP DEC -6 ASC 3,SYSPLT NOP DEC -6 ASC 3,SYSPRT NOP DEC -6 ASC 3,SYSPOT NOP DEC -6 ASC 3,SYSPIT NOP DEC -1 ASC 1,$ FTS NOP DEC -3 ASC 2,.EQ OCT 100022 DEC -5 ASC 3,FLOAT CFLOA OCT 100021 DEC -3 ASC 2,.LT OCT 100023 DEC -3 ASC 2,.GT OCT 100024 DEC -3 ASC 2,.LE OCT 100025 DEC -3 ASC 2,.GE OCT 100026 DEC -3 ASC 2,.NE OCT 100027 DEC -4 ASC 2,.NUM NUMCD OCT 100030 DEC -6 ASC 3,.REMDR OCT 100031 DEC -6 ASC 3,EQUALS OCT 100032 DEC -5 ASC 3,UNEQL OCT 100033 DEC -4 ASC 2,TRIM OCT 100034 DEC -4 ASC 2,TIME OCT 100035 DEC -4 ASC 2,EXIO EXCD OCT 100036 DEC -4 ASC 2,SIZE SIZCD OCT 100037 SKP ****************TABLE DES LABELS**************************** * ---------------- ADTLB DEF TLBL NTLB NOP TLBL DEC -3 ASC 2,END CBLEN NOP DEC -6 ASC 3,RETURN CBRET NOP DEC -7 ASC 4,FRETURN CBFRE NOP BSS 1000 FTB DEF * FIN DE LA TABLE DEBT DEF CBFRE+1 SPC 10 ZO. DEF *+1 ZOGAR BSS 36 GARAGE DE LA DERNIERE LIGNE LUE NO. DEF NOLG ZOI. DEF ZOIM ZOIM. DEF ZOIM+1 NOLG ASC 1, BSS 2 ZOIM ASC 1, BSS 40 SKP ****************** CHAINE POSTFIXEE INTERMEDIAIRE ******** * ------------------------------ DCHFI DEF CHPFI NCO NOP CHPFI BSS 500 FFIX DEF * SPC 3 *****************PILE OPERATEURS***************************** * --------------- PREOP DEF * BSS 100 FINOP DEF * PTOP NOP MOLIB DEF * END SNOBO ‡