{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: DTSUBS867)}} ====== DTSUBS867 ====== (George Source) **Macros used:** [[george:macro:ALTLEN|ALTLEN]], [[george:macro:BBS|BBS]], [[george:macro:BXE|BXE]], [[george:macro:BXL|BXL]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:CONSERNO|CONSERNO]], [[george:macro:FREECORE|FREECORE]], [[george:macro:JBC|JBC]], [[george:macro:JBCC|JBCC]], [[george:macro:JBS|JBS]], [[george:macro:JMBAC|JMBAC]], [[george:macro:JMBAS|JMBAS]], [[george:macro:JMBS|JMBS]], [[george:macro:LF|LF]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUTX|MONOUTX]], [[george:macro:OPENINC|OPENINC]], [[george:macro:OUTEXES|OUTEXES]], [[george:macro:OUTMON|OUTMON]], [[george:macro:OUTNULL|OUTNULL]], [[george:macro:OUTNUM|OUTNUM]], [[george:macro:OUTPARAM|OUTPARAM]], [[george:macro:READBACK|READBACK]], [[george:macro:REPEAT|REPEAT]], [[george:macro:REWIND|REWIND]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:STEP|STEP]], [[george:macro:STF|STF]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]] 225X ... SEG DTSUBS,867,C.R.JOHNSON,SCHEDULER 229S ...[ 22*P ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 22FL ...[ 22PD ...[ 237Q ... SEGENTRY K1DTSUBS,(GEOERR) 23L4 ... SEGENTRY K9DTSUBS,(GEOERR) 244B ... SEGENTRY K3DTSUBS,(GEOERR) 24GN ... SEGENTRY K2DTSUBS,(GEOERR) 24^2 ... SEGENTRY K5DTSUBS,(GEOERR) 25CB ... SEGENTRY K7DTSUBS,(GEOERR) 25X2 SEGENTRY K8DTSUBS,X8DTSUBS 26BL ... SEGENTRY K11DTSUBS,X11DTSUBS 26W= SEGENTRY K4DTSUBS,X4DTSUBS 27*W SEGENTRY K10DTSUBS,X10DTSUBS 27TG SEGENTRY K12DTSUBS,X12DTSUBS 28*6 SEGENTRY K13DTSUBS,X13DTSUBS 28SQ SEGENTRY K14DTSUBS,X14DTSUBS 29#B SEGENTRY K15DTSUBS,X15DTSUBS 29S2 [ AWORK1 USED IN TSNS AND OUTTAPE S.R. TO DISTINGUISH ENTRY POINTS 2=?L [ AWORK1 ZERO UNLESS TSNS ENTRY USED 2=R= [ 2?=W [ THE FOLLOWING ENTRY POINTS ARE PROVIDED TO DEAL WITH THE VARIOUS 2?QG [ TYPES OF FAILURE. THE "FDT" BLOCK IS USED (AND MARKED) TO FIND 2#=6 [ THE INCREMENT THAT WAS IN USE. 2#PQ [ 2#WY ...[ MONITORING FILE MESSAGES 2*46 ...[ 2*9B [ 2*P2 [ 2B8L ...WMTLOAD +JMTLOAD [PLEASE LOAD RETRIEVE TAPE%A : %B 2FL2 MASK0 #37777777 2G5L MAGNO +7036875 2G*D ...TEN +10 2GK= QIS 4HIS 2H4W QARE 4HARE 2H56 ...QWPR 8H(WPR) 2H5B ...QFSNO 4H(FS [USED BY X11DTSUBS 2H5N ...WRSTRING [THESE CHARACTER STRINGS 2H5T ... 4H(U) [ARE USED BT OUTTSNS 2H62 ... 4H(O) [......THEY MUST BE KEPT 2H67 ... 8H(O,U) [CONTIGUOUS.... 5=^B ...[ 5?F2 ...[ SET UP A FDINCS BLOCK FOR TAPE IN ADTSN 5XPD ...[ 5X^= ...[ ******************************************************************** 5Y94 ...[ 5YDW X8DTSUBS 5YHF ... JBCC XOPENINC,BOLC,BIFDTOPEN [J IF INCINDEX NOT OPEN 5YJX ... LDN 4 20 [SET 'NOT DUMPING' FLAG 5YL* ...[ SEARCH BACKWARDS THROUGH INCINDEX UNTIL TAPE 5YLL ...[ MISSING FOR 20 CONSECUTIVE INCS OR BEGINNING OF FILE 5YLX ...X8DT1 READBACK 5YM8 ... TESTREP2 BEGFILE,X8DT3,FIRSTREC,X8DT3 5YMF ... MHUNTW 3,FILE,FRB 5YMQ ... ADN 3 A1 5YN3 ... LDX 0 AWORK2(2) [TSN 5YN# ... LDEX 2 AINCRHR(3) 5YNK ... SBN 2 AMAGR 5YNW ...X8DT2 SBN 2 INCMAGLEN 5YP7 ... SMO 2 5YPD ... BXE 0 AMAGR(3),X8DT4 5YPP ... BNZ 2 X8DT2 5YQ2 ... BNG 4 X8DT6 5YQ? ... SBN 4 1 5YQJ ... BRN X8DT5 5YQK ...X8DT4 LDN 4 20 5YQL ...X8DT5 SBN 3 A1 5YQM ... FREECORE 3 5YQN ... BRN X8DT1 5YQP ...X8DT6 5YQQ ... SBN 3 A1 5YQR ... FREECORE 3 5YQS ... BRN X8DT7 5YQT ...X8DT3 REWIND 5YQW ... 5YQX ...X8DT7 LDN 4 20 5YR6 ... SMO FX2 5YR# ... STO 4 ACOMMUNE1 5YRG ... LDN 4 0 5YRN ... BRN XNOOPEN 5YW5 ...XOPENINC 5YYG OPENINC ,READ 5^7D ... LDN 4 1 [SET 'DUMPING' FLAG 5^BB ...XNOOPEN [ 5^K# ... SETNCORE 7,3,FILE,FDINCS 5^S= ... STOZ FDINCNO(3) 6238 ... LDX 0 AWORK2(2) [X0 => TSN 62=6 ... STO 0 FDINCTSN(3) [STORE TSN IN FDINCS 62F4 ... LDN 2 0 [X2 => ZERO 62N2 ... STF 3,FDINCFSNO,2 [FILESTORE 0 62X2 T1SUBS 63BL STEP 63W= BZE 3 T5SUBS 64*W ... JBS T1SUBS,3,BINSUITRVR [J IF INCREMENT NOT SUITABLE 64TG ... LDEX 2 AINCRHR(3) 65*6 ... SBN 2 AMAGR 65SQ SMO FX2 66#B LDX 0 AWORK2 66S2 T2SUBS 67?L SBN 2 INCMAGLEN 67R= SMO 2 68=W ... BXE 0 AMAGR(3),T3SUBS [J IF TSN FOUND IN INCINDEX RECORD 68*N ... BNZ 2 T2SUBS 68DG ... MHUNTW 2,FILE,FDINCS 68H# ... LDX 3 FDINCNO(2) 68L6 ... BZE 3 T1SUBS [READ NEXT RECORD 68NY ... SMO FX2 68RQ ... LDX 3 ACOMMUNE1 68WJ ... BNG 3 T5SUBS 68^B ... SBN 3 1 6948 ... SMO FX2 6972 ... STO 3 ACOMMUNE1 69=6 BRN T1SUBS [READ NEXT INCINDEX RECORD 69FY ...T3SUBS 69KT ... LDN 6 20 69PQ ... SMO FX2 69^J ... STO 6 ACOMMUNE1 6=9B ADX 2 3 6=P2 LDX 6 AMAGSTATE-A1(2) [PICK UP MAGSTATE OF THIS TAPE 6?8L ... LDCT 5 #562 [CHECK STATE OF TAPE 6?N= ANDX 5 6 6#7W SLC 5 2 6#MG BNG 5 T1SUBS [J IF TAPE RETURNED 6*76 BZE 4 T4SUBS [ J IF NOT FOR DUMPING 6*LQ BNZ 5 T6SUBS [J IF FAILED OR WRONGED 6B6B T4SUBS 6BL2 LDX 7 AINCNO-A1(3) 6C5L MHUNTW 2,FILE,FDINCS 6CK= ... LDX 3 FDINCNO(2) [NUMBER OF ENTRIES 6D4W LDN 0 1 6DJG ... ADS 0 FDINCNO(2) [INCREASE NO. OF ENTRIES 6FHQ SMO 2 6G3B ... STO 7 FDINCINC(3) [INC NO. FOR THIS ENTRY 6G?8 ... ADN 3 5 [PLUS 1 SPARE 6GH2 ... 6H^W BXL 3 ALOGLEN(2),T1SUBS 6JFG LDX 6 2 6JP# ... ADN 3 8 [INCREASE LENGTH BY 8 IF NESCESSARY 6J^6 ALTLEN 6,3,FILE,FDINCS [INCREASE BLOCK SIZE IF MESS 6KDQ BRN T1SUBS 6KYB T5SUBS 6LD2 LDN 5 0 6LXL T6SUBS 6MC= CLOSETOP 6MWW STO 6 ACOMMUNE1(2) 6N6N ... BZE 4 PLUS0 [J IF NOT FOR DUMPING 6NBG BNZ 5 PLUS1 6NL# ...PLUS0 6NW6 UP 6P*Q PLUS1 6PTB UPPLUS 1 [EXIT PLUS 1 IF DUMPING CASE AND 6Q*2 [TAPE FAILED OR WRONGED 6QSL [X5 HOLDS APPRO BITS : X6 = AMAGSTATE 6R#= [ 6RRW [ S.R. TO SET NEXT PARAM S OR NULL,NEXT AS SET OF TSNS 6R^4 ...[ 6S6= ...[ ******************************************************************** 6S?G [ 6SR6 OUTTAPE 6T=Q LDX 2 FX2 6TQB STOZ AWORK1(2) [SET'NO IS OR ARE' 6W=2 BRN TSNS2 6WPL [ 6X9= [ SR TO SET FIRST PARAM AS S OR NULL,SECOND PARAM AS SET OF TSNS, 6XNW [ 3RD PARAM IS OR ARE 6Y8G TSNS LDX 2 FX2 6YN6 STO 7 AWORK1(2) 6^7Q TSNS2 SBX 7 FX1 [SET'IS OR ARE'REQUIRED 6^#D ...[ CALCULATE SIZE OF FILE FINTER 6^F6 ... MHUNTW 2,FILE,APROC 6^KS ... LDX 4 AMTS(2) [COUNT OF TAPES 6^QG ... STO 4 5 6^X8 ... SLL 4 1 [2 WORDS PER TSN 723W ... ADN 5 15 [1 WORD FOR A1 AND 728J ... SRL 5 2 [SPACE FOR SPACES 72*= ... ADX 4 5 [AND SPACE FOR (O,U) 72FY ... SETUPCORE 4,3,FILE,FINTER 72LL STOZ A1(3) 736= MHUNTW 2,FILE,APROC 73KW LDX 4 AMTS(2) [COUNT OF TAPES 745G SBN 4 1 74K6 BZE 4 ONLYONE [J IF ONLY ONE COPY 754Q LDCT 0 #630 [S CHAR 75JB SMO FX2 7642 STO 0 ACOMMUNE1 76HL LDN 0 1 773= OUTPARAM 0,ACOMMUNE1 77GW BRN OUTN 782G ONLYONE 78G6 OUTNULL 78^Q OUTN ADN 4 1 [RESET COUNT OF MTS 79FB LDN 5 0 [MODIFIER 79K? ...#UNS IDC 79P8 ... LDN 1 0 [MARKER FOR LENGTHENING FINTER BLOCK 79T5 ...[ 79^2 [ CONVERT NEXT TSN TO CHARS 7=8S ...[ 7=DL OUTTSN 7=G8 ...#UNS IDC 7=HQ ...( 7=K# ... BZE 1 NOINCREASE [J IF NO INCREASE 7=LW ... LDX 3 1 [X3 => INCREASE IN LENGTH 7=ND ... MHUNTW 1,FILE,FINTER [FIND FINTER 7=Q2 ... ADX 3 ALOGLEN(1) [X3 => NEW LENGTH 7=RJ ... ALTLEN 1,3,FILE,FINTER [INCREASE LENGTH 7=T6 ...NOINCREASE [ 7=WN ...) 7=Y= MHUNTW 3,FILE,APROC 7?CW SMO 5 7?XG LDX 6 AMAG(3) 7#C6 CONSERNO 6,ACOMMUNE1 7#WQ LDX 1 ACOMMUNE1(2) 7*BB ADN 2 ACOMMUNE2 7*W2 MHUNTW 3,FILE,FINTER 7B*L ... LDX 6 3 7BT= LDX 3 A1(3) 7C#W ADN 3 A1+1 7CSG ... ADX 3 6 7D#6 MVCH 2 0(1) 7D#L ...#UNS IDC 7D*6 ...( 7D*L ...[ 7DB6 ...[ IS TAPE WRONGED? 7DBL ...[ 7DC6 ... MHUNTW 1,FILE,APROC [X1 -> INCINDEX RECORD 7DCL ... ADX 1 5 [ADD ON MODIFIER 7DD6 ... JMBAC NOTWRONG,1,BMOPWR,BMUSWR [J IF NOT WRONGED 7DDL ... LDN 2 0 [X2 IS MODIFIER FOR CHAR STRING 7DF6 ... JMBAS XBOTHWR,1,BMUSWR,BMOPWR [J IF USER AND OPERATOR WRONGED 7DFL ... JBS USWR,1,BMUSWR [J IF USER WRONGED ONLY 7DG6 ... ADN 2 1 [MUST BE OPERATOR WRONGED 7DGL ...USWR [ 7DH6 ... SMO FX1 [ 7DHL ... ADN 2 WRSTRING [X2 -> APPRPRIATE STRING 7DJ6 ... MVCH 2 3 [MOVE IN STRING 7DJL ... LDN 1 1 [INCREASE FINTER BY ONE WORD 7DK6 ... BRN SPACE [ 7DKL ...XBOTHWR [WRONGED IN BOTH CONTEXTS 7DL6 ... ADN 2 2 [OP AND US WRONGED 7DLL ... SMO FX1 [ 7DM6 ... ADN 2 WRSTRING [X2 -> CHAR STRING 7DML ... MVCH 2 5 [MOVE IN STRING 7DN6 ... LDN 1 2 [INCREASE FINTER BY TWO WORDS 7DNL ... BRN SPACE [ 7DP6 ...NOTWRONG [DO NOT INCREASE FINTER LENGTH 7DPL ... LDN 1 0 [MARKER. 7DQ6 ...SPACE [ 7DQL ...) 7DRQ [ 7F?B [ INSERT SPACE 7FR2 [ 7G=L ... LDN 0 #20 7GQ= ... DCH 0 0(3) 7H9W BCHX 3 £ 7HPG ... SBX 3 6 7J96 SBN 3 A1+1 7JNQ ... SMO 6 7K8B STO 3 A1 7KN2 ADN 5 INCMAGLEN 7L7L BCT 4 OUTTSN 7LM= [ 7M6W [ ALL TSNS NOW CONVERTED-OUTPUT MESSAGE 7MLG [ 7N66 MHUNTW 3,FILE,FINTER 7NKQ LDX 2 A1(3) 7P5B SLC 2 2 [NO.OF CHARS 7PK2 SBN 2 1 [DONT O/P LAST SPACE CHAR 7Q4L ... OUTEXES 2,A1+1,FILE,FINTER 7QJ= MFREEW FILE,FINTER 7R3W [ 7RHG [ IS OR ARE 7S36 [ 7SGQ LDX 0 AWORK1(2) 7T2B BZE 0 TSNEND [J IF NO'IS OR ARE'REUQUIRED 7TG2 MHUNTW 3,FILE,APROC 7T^L LDX 4 AMTS(3) 7WF= SBN 4 1 7WYW LDN 0 2 [CHARS IN IS 7XDG ADN 1 QIS [ADDRESS OF IS 7XY6 BZE 4 NULLPARAM 7YCQ ADN 0 1 [CHARS IN ARE 7YXB ADN 1 1 [ADDRESS OF ARE 7^C2 NULLPARAM 7^WL LDX 6 0(1) [MESSAGE 82B= STO 6 ACOMMUNE1(2) 82TW OUTPARAM 0,ACOMMUNE1 [PARAM=IS OR ARE 83*G TSNEND 83T6 ADX 7 FX1 84#Q EXIT 7 0 84SB [ 85#2 [ SR TO DO OUTPARAM OF LIST OF INC.NOS IN FLINC BLOCK,AND THEN 85RL [ 86?= OUTINCNOS 86QW SBX 7 FX1 87=G MHUNTW 3,FLIB,FLINC 87Q6 LDX 6 A1(3) 889Q SBN 6 2 88PB BZE 6 ONLYINC [J IF ONLY ONE INC 88R5 ...#SKI JSKI30 88SS ...( 88WH ... LDX 0 FLINCST(3) 88Y= ... BNZ 0 OLDFORM [J IF NO FLINCST 88^^ ... SBN 6 1 893N ... BZE 6 ONLYINC [J IF ONLY 1 INC,FORMAT 2 FLINC 895C ...OLDFORM 8976 ...) 8992 LDCT 0 #630 [S CHAR 89NL SMO FX2 8=8= STO 0 ACOMMUNE1 8=MW LDN 0 1 8?7G OUTPARAM 0,ACOMMUNE1 8?M6 BRN OUTOTHER 8#6Q ONLYINC 8#LB OUTNULL 8*62 OUTOTHER 8*KL ADN 6 2 8B5= SLL 6 2 8BJW SETUPCORE 6,2,ADATA,CREADL 8C4G ADN 2 CPDATA [NEXT CHAR POSN 8CJ6 MHUNTW 3,FLIB,FLINC 8D3Q LDX 6 A1(3) 8DHB SBN 6 1 8F32 XDECR LDX 0 A1+2(3) [NEXT INC.NO. 8F4P ...#SKI JSKI30 8F6D ...( 8F87 ... BNZ 0 NOFLINCST [J IF NO FLINCST 8F9W ... ADN 3 1 8F?K ... SBN 6 1 8F*# ... BRN XDECR 8FC3 ...NOFLINCST 8FDQ ...) 8FGL LDN 4 0 8G2= SMO FX1 8GFW MPY 0 MAGNO 8G^G MODE 0 8HF6 LDN 5 7 8HYQ VCON CBD 0 4 8JDB BNZ 4 NOTZ 8JY2 BCT 5 VCON 8KCL ADN 5 1 8KX= NOTZ DCH 4 0(2) [FIRST NON-ZERO CHAR 8LBW BRN NOTZ2 8LWG WCON CBD 0 0(2) 8MB6 NOTZ2 BCHX 2 £ 8MTQ BCT 5 WCON 8N*B BCT 6 PUTCOMMA [COMMA IF MORE LEFT 8NT2 BRN NOINCSLEFT 8P#L PUTCOMMA 8PS= LDN 4 #34 [COMMA 8Q?W DCH 4 0(2) 8QRG BCHX 2 £ 8R?6 ADN 3 1 [POINT TO NEXT INC.NO. 8RQQ BRN XDECR 8S=B [ 8SQ2 [ X2 POINTS TO NEXT CHAR POSN IN ADATA 8T9L [ 8TP= NOINCSLEFT 8W8W SLC 2 2 8WNG MHUNTW 3,ADATA,CREADL 8X86 LDX 4 3 8XMQ ADN 4 CPDATA 8Y7B SLL 4 2 8YM2 SBX 2 4 [NO OF CHARS IN X2 8^6L ... OUTEXES 2,CPDATA,ADATA,CREADL 8^L= MFREEW ADATA,CREADL 925W ADX 7 FX1 92KG EXIT 7 0 9356 [ 93JQ [ SR TO DO MONOUT 944B [ 94J2 OUTMON 953L SBX 7 FX1 95H= SMO 7 962W LDX 5 0(1) [MESSAGE 96GG MONOUTX 5 9726 ADX 7 FX1 97FQ EXIT 7 1 97GY ...[ 97J6 ...[ 97K# ...[ MESSAGE-PLEASE LOAD RETRIEVE TAPE%A :%B 97LG ...[ 97MN ...[ ******************************************************************** 97NW ...[ 97Q4 ... SEGENTRY K100DTSUBS [USED BY RESTORE TIME MACRO REQRVMAX 97R= ... +175 [DEFAULT SETTING FOR MAX NO OF TSNS T 97SD ...X11DTSUBS 97TL ...#UNSET FIRSTR 97WS ...( 97Y2 ... LDX 7 K100DTSUBS(1) [X7 => MAX NO OF TSNS TO BE OUTPUT IN 97^8 ... LDN 6 0 [X6 => WILL CONTAIN NO OF TSNS PUT IN 982B ... LDX 3 BOLC [X3 => FDT 983J ... LDX 4 A1(3) [X4 => NO OF TAPE ENTRIES 984Q ... BZE 4 XNOMESS2 [J IF NO TSNS 985Y ... BXL 4 7,XFOURLOW [J IF X4 < X7 9876 ... SLL 7 1 [TWO WORDS PER TSN 988# ... SETUPCORE 7,2,FILE,FINTER1 [USED TO HOLD TSNS IN BINARY FORM 989G ... SRL 7 1 [RESET X7 98=N ... SLL 4 2 [4 WORDS PER TSN 98?W ... BRN XSEVLOW [ 98*4 ...XFOURLOW [ 98B= ... SLL 4 1 [TWO WORDS PER TSN 98CD ... SETUPCORE 4,2,FILE,FINTER1 [USED TO HOLD TSNS IN BINARY FORM 98DL ... SLL 4 1 [FOUR WORDS PER TSN 98FS ...XSEVLOW [ 98H2 ... ADX 4 BOLC [X4 => LIMIT OF ENTRIES IN FDT 98J8 ... LDX 3 BOLC [X3 SET UP AS A MODIFIER FOR 98KB ... SBN 3 4 [SCANNING UP FDT 98LJ ...REPEAT [ 98MQ ... ADN 3 4 [POINT TO NEXT ENTRY 98NY ... BXE 3 4,XFDTEND [J IF END OF FDT 98Q6 ... JBC REPEAT,3,BIFDTO [J IF BIFDT CLEAR 98R# ... JMBS REPEAT,3,BIFDTOW,BIFDTUW,BIFDTCL [J IF TAPE WRONGED OR CA 98SG ... LDX 5 FDSN(3) [X5 => BINARY TSN 98TN ... STO 5 A1(2) [STORE TSN IN FINTER1 98WW ... LDX 5 FDST(3) [X5 => STATE OF TAPE 98Y4 ... STO 5 A1+1(2) [STORE STATE OF TAPE IN FINTER1 98^= ... ADN 2 2 [UPDATE FINTER1 POINTER 992D ... ADN 6 1 [UPDATE COUNT OF TSNS 993L ... BXL 6 7,REPEAT [J IF MAX NO OF TSNS NOT YET REACHED 994S ...XFDTEND [ 9962 ... BZE 6 XNOMESS1 [J IF NO TSNS FOUND 9978 ... SBN 6 1 [WE NOW HAVE TO OUTPUT AN 998B ... BZE 6 XONLYONE [ S CHARACTER IF MORE THAN ONE TAPE 999J ... LDCT 0 #630 [ S CHARACTER 99=Q ... SMO FX2 [ 99?Y ... STO 0 ACOMMUNE1 [STORE S CHARACTER FOR OUTPARAM 99*6 ... LDN 0 1 [ONE CHARACTER 99B# ... OUTPARAM 0,ACOMMUNE1 [OUTPARAM ASSUMES ACTIVITY BLOCK 99CG ... BRN TSNSETUP [ 99DN ...XONLYONE [ 99FW ... OUTNULL [NO S IF ONLY ONE TAPE 99H4 ...TSNSETUP [ 99J= ... ADN 6 1 [RESET X6 => NO. OF TAPES 99KD ... STO 6 4 [X4 => NO. OF TAPES, X6 IS CORRUPTED 99LL ... STO 6 7 [NOW SET UP A FILE/FINTER BLOCK 99MS ... SLL 6 1 [TWO WORDS PER TSN 99P2 ... ADN 7 7 [1 WORD FOR A1 AND 99Q8 ... SRL 7 2 [SPACE FOR COMMAS 99RB ... ADX 6 7 [SPACE FOR (FSN) = 2 WORDS + 99SJ ... ADN 6 6 [SPACE FOR '(WPR)' STRING, 5*3 = 4 WO 99TQ ... SETUPCORE 6,3,FILE,FINTER [USED TO HOLD CHARACTER TSNS 99WY ... STOZ A1(3) [SET CHARACTER COUNT ZERO 99Y6 ... LDN 5 0 [X5 SET UP AS MODIFIER FOR FINTER1 99^# ...#UNS FTS2 9=2G ... LDN 7 0 [SET 'DONT INCREASE LENGTH' FLAG 9=3N ...TSNLOOP [ 9=4W ...#UNS FTS2 9=64 ...( 9=7= ... BZE 7 XNOINCREAS [J IF NO 'FS' 9=8D ... MHUNTW 3,FILE,FINTER [X3 -> FINTER 9=9L ... LDX 7 ALOGLEN(3) [X7 => LOGICAL LENGTH 9==S ... ADN 7 2 [INCREASE BY 2 9=#2 ... ALTLEN 3,7,FILE,FINTER [INCREASE 9=*8 ... LDN 7 0 [SET 'DON'T INCREASE LENGTH' FLAG 9=BB ...XNOINCREAS 9=CJ ...) 9=DQ ... MHUNTW 3,FILE,FINTER1 [FIND BINARY TSNS AGAIN 9=FY ... SMO 5 [MODIFIES FINTER1 9=H6 ... LDX 6 A1(3) [X6 => TSN 9=J# ... CONSERNO 6,ACOMMUNE1 [CONVERT TSN TO CHARACTERS 9=KG ... LDX 1 ACOMMUNE1(2) [X1 => CHARACTER COUNT 9=LN ... ADN 2 ACOMMUNE2 [X2 -> FIRST TSN CHARACTER 9=MW ... MHUNTW 3,FILE,FINTER [X3 -> FINTER 9=P4 ... LDX 6 3 [X6 -> FINTER 9=Q= ... LDX 3 A1(3) [X3 => CHARACTER COUNT 9=RD ... ADN 3 A1+1 [X3 => RELATIVE CHARACTER POSITION 9=SL ... ADX 3 6 [X3 => ABSOLUTE CHARACTER POSITION IN 9=TS ... MVCH 2 0(1) [MOVE TSN INTO FINTER,X3 IS UPDATED 9=X2 ... MHUNTW 2,FILE,FINTER1 [FIND FINTER1 AGAIN 9=Y8 ... SBN 2 1 [TO FIND FILESTORE 9=^B ... ADX 2 5 [NUMBER AND 9?2J ... LF 2,FDTFSNO,1 [IN ORDER TO SEE IF A 9?3Q ... LDX 2 A1+2(2) [WPR IS NEEDED 9?4Y ... BBS 7,2,XNOWPR [J IF NO WPR REQUIRED 9?66 ...[ 9?7# ...[ INSERT '(WPR)' STRING IF NECESSARY 9?8G ...[ 9?9N ... SMO FX1 [X1 WAS CORRUPTED 9?=W ... LDN 2 QWPR [X2 => ADDRESS OF STRING (WPR) 9?#4 ... MVCH 2 5 [MOVE THE FIVE CHARACTERS 9?*= ...#UNS FTS2 9?BD ... BNZ 1 (GEOERR) [J IF ALIEN TAPE NEEDS WPR! 9?CL ...[ 9?DS ...[ NOW INSERT FILESTORE NUMBER 9?G2 ...[ 9?H8 ...XNOWPR [ 9?JB ...#UNS FTS2 9?KJ ...( 9?LQ ... BZE 1 XNOFSNO [J IF HOST FILESTORE 9?MY ... SMO FX1 [X1 CORRUPTED 9?P6 ... LDN 2 QFSNO [X2 -> STRING '(FS' 9?Q# ... MVCH 2 3 [MOVE THE THREE CHARACTERS 9?RG ... LDN 7 1 [SET 'INCREASE LENGTH' FLAG 9?SN ... SMO FX1 [ 9?TW ... DVS 0 TEN [CONVERT FILESTORE NUMBER TO DECIMAL 9?X4 ... LDN 2 2 [X2 => COUNT OF RELEVENT CHARS 9?Y= ... SLL 1 18 [QUOTIENT IN TOP CHARACTER POSITION 9?^D ... SLL 0 12 [REMAINDER IN SECOND POSITION 9#2L ... BNZ 1 XTWOCHAR [J IF TWO CHARS 9#3S ... SBN 2 1 [ONLY ONE CHARACTER 9#52 ... SLL 0 6 [REMAINDER IN TOP POSITION 9#68 ...XTWOCHAR [ 9#7B ... ORX 1 0 [X1 => FILESTORE IN CHARS 9#8J ... BZE 1 (GEOERR) [X1 ILLEGAL 9#9Q ... SMO FX2 [ 9#=Y ... STO 1 ACOMMUNE1 [STORE FILESTORE NUMBER 9##6 ... LDX 1 2 [X1 => COUNT 9#*# ... SMO FX2 [ 9#BG ... LDN 2 ACOMMUNE1 [X2 -> FILESTORE NUMBER 9#CN ... SMO 1 [X1 => 1 OR 2 9#DW ... MVCH 2 0 [MOVE CHARACTERS 9#G4 ... LDN 0 #31 [X0 => ')' 9#H= ... DCH 0 0(3) [PUT ) IN FINTER 9#JD ... BCHX 3 £ [UPDATE CHARACTER BY ONE 9#KL ...) 9#LS ...[ 9#N2 ...[ NOW INSERT A SPACE 9#P8 ...[ 9#QB ...XNOFSNO [ 9#RJ ... LDN 0 #20 [X0 => SPACE 9#SQ ... DCH 0 0(3) [PUT COMMA IN FINTER 9#TY ... BCHX 3 £ [UPDATE CHARACTER COUNT BY ONE 9#X6 ... SBX 3 6 [RESET X3 TO CONTAIN 9#Y# ... SBN 3 A1+1 [NEW CHARACTER COUNT 9#^G ... SMO 6 [ 9*2N ... STO 3 A1 [STORE NEW CHARACTER COUNT IN FINTER 9*3W ... ADN 5 2 [UPDATE MODIFIER 9*54 ... BCT 4 TSNLOOP [J IF NOT ALL TSNS YET CONVERTED 9*6= ...[ 9*7D ...[ ALL TSNS NOW CONVERTED - OUTPUT MESSAGE 9*8L ...[ 9*9S ... MHUNTW 3,FILE,FINTER [FIND FINTER 9*?2 ... LDX 2 A1(3) [X2 => CHARACTER COUNT WORD 9*#8 ... SLC 2 2 [NO. OF CHARACTERS 9**B ... SBN 2 1 [DONT OUTPUT LAST COMMA 9*BJ ... OUTEXES 2,A1+1,FILE,FINTER [OUTPUT %B OF MESSAGE 9*CQ ... MFREEW FILE,FINTER [GET RID OF FINTER 9*DY ... CALL 7 OUTMON [OUTPUT MESSAGE 9*G6 ... +JMTLOAD 9*H# ...XNOMESS1 9*JG ... MFREEW FILE,FINTER1 [FREE FILE/FINTER1 9*KN ...XNOMESS2 9*LW ... UP [RETURN FROM WHENCE WE CAME (SCHEDMTX 9*N4 ...) 9*SW [ 9B#G ...[ MESSAGE-MT%A %B %C%D WRONGED MAKING INC%E %F UNAVAILABLE 9BS6 [ 9B^# ...[ ******************************************************************** 9C6G ...[ 9C?Q X4DTSUBS 9CRB CALL 7 TSNS [CONVERT LIST OF TSNS FROM PSEUDO 9D?2 [INCINDEX RECORD IN APROC BLOCK 9DGS ... OUTNULL 9DQL BRN OUTWRNGMES 9F== [ 9FH7 ...[ O/P LIST OF INCREMENTS AND MESSAGE: 9FS4 ...[ MT%A %B %C%D WRONGED MAKING INC%E %F UNAVAILABLE 9G4^ ...[ %A AND %B ARE NULL, %C AND %D ALREADY OUTPUT (BY DTWRONG) 9G*W ...[ 9GLR ...[ ******************************************************************** 9GXN ...[ 9H8Q X10DTSUBS 9HNB OUTWRNGMES [SEND MESSAGE ABOUT WRONGED TAPES 9J82 CALL 7 OUTINCNOS 9JML CALL 7 OUTMON 9K7= ... +HMTWRONGP 9KLW UP 9L6G [ 9LL6 [ MESSAGE OF THE TYPE-INC %A ON MT%B %C-DEAL WITH A,B,C FROM APROC 9LTY ...[ 9M5Q ...[ ******************************************************************** 9M*J ...[ 9MKB X12DTSUBS 9N52 MHUNTW 2,FILE,APROC 9NJL OUTNUM AINCNO(2),0 9P4= CALL 7 OUTTAPE 9PHW UP 9Q3G [ ENTRY POINTS FOR OUTINCS,OUTTSNS AND OUTINCTSN MACROS 9Q7C ...[ 9Q?# ...[ ******************************************************************** 9QC9 ...[ 9QH6 X13DTSUBS 9R2Q CALL 7 OUTINCNOS 9RGB UP 9RKG ...[ 9RNL ...[ ******************************************************************** 9RRQ ...[ 9RWW ...[ 9S22 X14DTSUBS 9SFL CALL 7 OUTTAPE [ WITH NO PARAMETER 9S^= UP 9T57 ...[ 9T94 ...[ ******************************************************************** 9T#^ ...[ 9TDW X15DTSUBS 9TYG CALL 7 TSNS [ WITH PARAMETER ARE 9WD6 UP 9WXQ MENDAREA 20,K99DTSUBS 9XCB #END 9XX2 ^^^^ ...76463364000100000000