22FL ... SEG INCMON,850,MIKE PUTNAM,INCDUMP 22^= # 23DW SEGENTRY K1INCMON,X1INCMON 23YG SEGENTRY K2INCMON,X2INCMON 243L ... SEGENTRY K3INCMON,X3INCMON 246Q ... SEGENTRY K4INCMON,X4INCMON 249W ... SEGENTRY K5INCMON,X5INCMON 24*2 ... SEGENTRY K7INCMON,X7INCMON 24D6 # 24XQ # ENTRY 1 DUMPS THE TOP FILE OPEN. 25CB # ENTRY 2 DUMPS A FILE USING BSTS, IT ASSUMES THAT A FILE/ENT, 25X2 # BSTB/FULLB (=BLOCKS REC) , AND IF NEC A FILE/FINTER1 (=INDEX REC) 26BL # ARE AVAILABLE. THE SUP DIR MUST BE OPEN, TO STOP COPYFILE 26W= # BOTH ENTRIES THEN SET UP THE PARAMETERS FOR THE FILDUMPED MESSAGE 27*W # WHILE DUMPING AN INDEXED FILE, A COUNT IS KEPT 27TG # OF THE SPACE THE FILE WOULD OCCUPY AFTER COMPRESSION. 282N ...# ENTRY 3 WRITES A SENTINEL 287W ...# ENTRY 4 CALLS SUBROUTINES UPDATEQUAL AND WRITESFS 28*6 # 28SQ # CALLED FROM INCWRITE 29#B # 29S2 ...# ON ENTRY, 2=?L # AWORK3=0 OR INDEX NO 2=R= # DURING DUMPING:- 2?=W # X4=0 IF FILE OPEN FOR DUMPING 2?QG # =NO OF READS ISSUED +1 IF FILE BEING READ VIA BSTS 2#=6 # X6=NO OF BLOCKS WRITTEN TO TAPE 2#PQ # AWORK1=FILE SIZE 2*9B # AWORK2=COUNT OF BLOCKS AFTER COMPRESSION 2*P2 # AWORK3=-1 RANDOM 2B8L # =0 SERIAL,NOT INDEXED 2BN= # =INDEX NO. IF INDEXED 2C7W # AWORK4=HIGHEST KEY ENCOUNTERED SO FAR 2CMG # X7=SPACE LEFT IN CURRENT COMPRESSED BLOCK 2D76 # (SAVED IN INCWORK, EXCEPT WHEN PROCESSING A BLOCK) 2DLQ # 2F6B SEGENTRY INCREADLIM 2FL2 5 [DEFAULT VALUE 2G5L NCLEANDAY 864000/K9*100 [A DAY'S CLEANCTS 2G*D ...MLANCOMP 4HC1 2GK= # 2H4W # 2HJG # SUBROUTINES:- 2J46 # 2JHQ # "SUBNULL" OUTPUTS A NULL PARAMETER TO THE GMON/ASET BLOCK. 2K3B # CALLED ON X7 AND COORDINATES. 2KH2 # 2L2L # "SUBPACKX" OUTPUTS A PARAMETER TO THE GMON/ASET BLOCK USING 2LG= # OUTPACKX. CALLED ON X7 AND COORDINATES. 2L^W # ON ENTRY, X4=ADDRESS OF WORD FROM WHICH TO TO TAKE VALUE 2MFG # X5=ADDRESS OF WORD CONTAINING LENGTH OF PARAMETER 2M^6 # X6=ADDRESS OF WORD CONTAINING PDC. 2NDQ # 2NYB # "SFINDFRB" LOCATES THE FRB FOR LOCKC. 2PD2 # LEAVES X2->FRB, CALLED ON X1. 2PXL # 2QC= # "WAIT" WAITS FOR A PREVIOUS MT TRANSFER TO COMPLETE. 2QWW # IN THE CLOSED FILE CASE, IT RENAMES THE FRB A BSTB/BFREEW IF THERE 2RBG # ARE MORE READS TO BE ISSUED. 2RW6 # IN ALL OTHER CASES IT FREES THE FRB. 2S*Q # IF A FAIL OR EOT OCCURRED, IT UPDATES THE COUNTS, AND GOES UP. 2STB # IF A BSTB/BFREEW EXISTS TO BE REFILLED IT EXITS 7 0 WITH X3->IT. 2T*2 # OTHERWISE IT EXITS 7 1. 2TSL # ON ENTRY,X1->FINC BLOCK,X3->FRB. CALLED ON X7. 2W#= # ON EXIT ,X1->FINC BLOCK. 2WRW # 2X?G # "UPDCOUNTS" UPDATES THE TIMES AND COUNTS IN THE FINC BLOCK. 2XR6 # ON ENTRY, X1->FINC BLOCK, X6=BLOCKS WRITTEN COUNT. 2Y=Q # CALLED ON X7. 2YQB # ON EXIT,X1->FINC BLOCK,X6=COUNT. 2^=2 # THE FULLB & FINTER1 BLOCKS WILL BE FREED, AND AWORK4 2^PL # WILL CONTAIN THE RESIDENCE NO FOR LATER USE BY OUTPACK CODE 329= # 32NW # 338G # "READBSTS" ISSUES AUTONOMOUS READS FOR A CLOSED FILE. 33N6 # THE NO. OF BUFFERS USED IS SET BY THE WORD INCREADLIM, WHICH CAN 347Q # BE ALTERED BY RESTORE TIME MACRO 34MB # ON ENTRY, X3->A BUFFER BLOCK CURRENTLY NAMED BSTB/BFREEW. 3572 # THE CORE UNJAMMER FREES THESE BLOCKS, SO WE MUST NOT COORDINATE 35LL # BETWEEN NAMING THE BUFFER BSTB/BFREEW AND ENTERING READBSTS. 366= # 36KW # 36LM ...# "XLOCFINC" SETS X1-> FINC FOR THE CURRENT INCREMENT. USES 36MD ...# ACOMMUNE2 36N9 ...# 36P2 ...# 36PR ...XLOCFINC 36QJ ... SMO FX2 36R* ... STO 0 ACOMMUNE2 [SAVE LINK 36S6 ... MHUNTW 1,FILE,FINC 36SX ...#UNS FPD 36TN ...( 36WF ... JBC NFLINC,,BFILEINC 36X= ... HUNT2 1,FILE,FINC,1 36Y3 ...NFLINC 36YS ...) 36^K ... SMO FX2 372B ... LDX 0 ACOMMUNE2 3737 ... EXIT 0 0 373Y ...# 374P ...# 375G SUBNULL 37K6 SBX 7 FX1 384Q OUTNULL 38JB ADX 7 FX1 3942 EXIT 7 0 39HL # 3=3= SUBPACKX 3=GW SBX 7 FX1 3?2G OUTPACKX 4,5,6 3?G6 ADX 7 FX1 3?^Q EXIT 7 0 3#FB # 3#^2 SFINDFRB 3*DL MHUNTW 2,FILE,FRB 3*Y= EXIT 1 0 3BCW # 3BXG WAIT 3CC6 SBX 7 FX1 3CWQ LDX 2 FX2 3DBB LDEX 0 INCACT(1) [GET COUNT OF RUNNING DUMPER ACTS 3DW2 SBN 0 1 [REMOVE DUMPER'S OWN COUNT 3F*L DEX 0 INCACT(1) [PUT IT BACK- LEAVING ANY FAIL OR EOT 3FKD LDX 5 CLEANCT [TIME STARTED WAIT FOR MT 3FT= BZE 0 NOWAIT [J IF ALL DTA'S ENDED 3G#W COOR1 [WAIT TILL KICKED BY LAST DTA 3GSG NOWAIT 3H#6 BZE 4 NBFREEW [J IF FILE OPEN 3HRQ LDX 0 AWORK1(2) 3J?B BXL 0 4,NBFREEW [J IF ALL READS ISSUED 3JR2 NAME 3,BSTB,BFREEW [NAME BUFFER BSTB BFREEW 3K=L UNLOCK 3 [UNLOCK IT 3KQ= BRN YBFREEW 3L9W NBFREEW 3LPG FREECORE 3 3M96 ADN 7 1 [NO BFREEW SO EXIT 1 3MNQ YBFREEW 3M^H ... CALL 0 XLOCFINC 3N=# LDX 0 CLEANCT 3N#= SBX 0 5 [TIME WAITING FOR TAPE 3NB8 BPZ 0 NMIDNIGHT2 [J IF MIDNIGHT NOT OCCURRED 3ND6 SMO FX1 3NG4 ADX 0 NCLEANDAY [ADD A DAYS CLEANCTS 3NJ2 NMIDNIGHT2 3NKY ADS 0 INCMTWAIT(1) [UPDATE TIME WAITING FOR MTS 3NN2 LDX 0 INCACT(1) 3P7L BZE 0 NEOT [J IF NO EOT OR FAIL 3PM= CALL 7 UPDCOUNTS [UPDATE COUNTS ETC. 3PPT ... LDX 0 AWORK3(2) 3PQ* ...#UNS FNSAD 3PQT ... SBN 0 1 3PR* ...#UNS FNSAD 3PRT ...#STR 3PSD ... SBN 0 2 [IF FILE AN INDEXED VSF 3PX3 ... BNG 0 NOTVSF1 [J IF NOT 3P^L ... DOWN INCVFCHK,4 [ABANDON FILE DEPENDENT CHECKING 3Q2F ...#UNS FNSAD 3Q3# ... NULL [ NEVER OBEYED - ALWAYS COMES UPPLUS 1 HERE 3Q49 ...NOTVSF1 3Q** ... BRN MTEOT [EOT OR FAIL EXIT PATH 3QLG NEOT 3R66 ADX 7 FX1 3RKQ EXIT 7 0 3S5B # 3SK2 UPDCOUNTS 3T4L NGX 0 AWORK3(2) 3TJ= BPZ 0 NSYS [J IF NOT INDEXED 3W3W ADS 6 INCSYSSIZE(1) [UPDATE CURRENT SYSTEM FILES SIZE 3WHG LDX 0 AWORK2(2) 3X36 ADS 0 INCCMPSIZE(1) [UPDATE COMPRESSED SYSTEM FILE SIZE 3XGQ NSYS 3Y2B LDX 0 CLEANCT [GET TIME 3YG2 SBX 0 INCTIMING(1) [CALCULATE TIME TAKEN 3Y^L BPZ 0 NMIDNIGHT [J IF NOT DUMPED OVER MIDNIGHT 3^F= SMO FX1 3^YW ADX 0 NCLEANDAY [ADD A DAY'S CLEANCTS 42DG NMIDNIGHT 42Y6 STO 0 AWORK2(2) [REMEMBER TI E 43CQ ADS 0 INCTIMEFILE(1) [ADD TO TIME DUMPING FILES 43XB ADS 6 INCSIZE(1) [ADD TO SIZE OF DUMP 44C2 ADS 6 INCBLNUM(1) [ADD TO BLOCK COUNT INCL. SENTINALS 44WL BNZ 4 NFCB4 [J IF FILE NOT OPEN 45B= TOPFCB2 3 [X3->FCB 45TW LDX 5 BSPRE(3) [RESID NO 46*G BRN RESID 46T6 NFCB4 47#Q MHUNTW 3,BSTB,FULLB [BLOCKS REC 47SB LDX 5 A1+1(3) [RESID NO 48#2 FREECORE 3 [FREE REC 48RL NGX 0 AWORK3(2) 49?= BPZ 0 RESID [J IF NO INDEX REC 49QW MFREEW FILE,FINTER1 4==G RESID 4=Q6 STO 5 AWORK4(2) [STORE RESID NO 4?9Q EXIT 7 0 4?PB # 4#92 READBSTS 4#NL SBX 7 FX1 4*8= MHUNTW 1,BSTB,FULLB 4*MW SMO 4 4B7G LDX 5 A1+1(1) [GET NEXT BLOCK NO 4B=L ...#UNS JSKI33 4B*Q ... READAUTO FAIL+BUSE,BSBS,,A1+1(1),EX5 [ISSUE READ 4BDW ...#UNS JSKI33 4BJ2 ...#SKI 4BM6 READAUTO BUSE,BSBS,,A1+1(1),EX5 [ISSUE READ 4C6Q ADN 4 1 [INCREMENT NEXT BLOCK POINTER 4CLB ... CALL 0 XLOCFINC [REHUNT THE FINC BLOCK 4D62 ADX 7 FX1 4DKL EXIT 7 0 4DKN ...# 4DKQ ...# 4DKS ...XFDUMPCOM [ GETS POINTER IN X1 TO FI FDUMPCOM 4DKW ... SMO FX2 4DKY ... STO 0 ACOMMUNE1 [ SAVE LINK 4DL2 ... HUNTMISB 1,FI,FDUMPCOM [ FIND FDUMPCOM IN MISCELLAN. CHAIN 4DL4 ... SMO FX2 4DL6 ... LDX 0 ACOMMUNE1 4DL8 ... EXIT 0 0 4DL= ...# 4DL# ...SFINDQUAL [S/R USED TO LOCATE FQUAL BLOCK FOR LOCKC 4DLB ... [X2 -> BLOCK . CALLED ON X1 4DLD ... MHUNTW 2,FILE,FQUAL 4DLG ... EXIT 1 0 4DLJ ...# 4DLL ...# 4DLN ...TIMESTART [SR TO START TIMING A DELAY FOR STATS. 4DLQ ... [CALLED ON X7. ON EXIT X1->FINC 4DLS ... CALL 0 XLOCFINC [X1->FINC 4DLW ... LDX 0 CLEANCT 4DLY ... STO 0 INCTIMING(1) 4DM2 ... EXIT 7 0 4DM4 ...# 4DM6 ...# 4DM8 ...TIMEND [SR TO WIND UP TIMING OF DELAY FOR STATS. 4DM= ... [CALLED ON X7,ON EXIT X1->FINC,X0=TIME 4DM# ... CALL 0 XLOCFINC [X1->FINC 4DMB ... LDX 0 CLEANCT 4DMD ... SBX 0 INCTIMING(1) 4DMG ... BPZ 0 NMIDN [J IF IT DIDNT HAPPEN OVER MIDNIGHT 4DMJ ... SMO FX1 4DML ... ADX 0 NCLEANDAY [ADD A DAYS CLEANCTS 4DMN ...NMIDN 4DMQ ... EXIT 7 0 4DMS ...# 4DMW ...# 4DMY ...RESTARTDATA [SETS UP A RESTART POINT FOR RESTORABLE INCREMENT OF 4DN2 ... [DUMP, UNLESS ONE IS ALREADY EXTANT 4DN4 ... SBX 4 FX1 4DN6 ... HUNTW 3,FI,FDUMPFAB 4DN8 ... BPZ 3 RSTEXIT 4DN= ... DOWN INCEOT,8 4DN# ...RSTEXIT 4DNB ... ADX 4 FX1 4DND ... EXIT 4 0 4DNG ...# 4DNJ ...# 4DNL ...# 4DNN ...RESTARTFREE [FREES ALL RESTART BLOCKS SET UP BY RESTARTDATA 4DNQ ... [CALLED ON X4 4DNS ... HUNTW 3,FI,FDUMPFAB 4DNW ... BNG 3 (4) 4DNY ... FREECORE 3 4DP2 ... BRN RESTARTFREE 4DP4 ...# 4DP6 ...# 4DP8 ...WRITESFS [WRITES SUB-FILE SENTINEL TO THE MTS (TAPE-MARK 4DP= ... [& QUALIFIER BLOCK). 4DP# ...# ON ENTRY, QUAL. BLOCK MUST HAVE BEEN SET UP. X4 IS S/R LINK. 4DPB ...# ON EXIT, X1->FINC BLOCK,X2=FX2,X3->FQUAL BLOCK 4DPD ...# USES X0,X1,X5,X7,ACOMMUNE1, AND INCTIMING 4DPG ... SBX 4 FX1 4DPJ ... LDX 2 FX2 4DPL ... CALL 7 TIMESTART [START TIMING DELAY IN WRITING SFS 4DPN ... LDN 0 5 [SHOW TM WANTED 4DPQ ... STO 0 ACOMMUNE1(2) 4DPS ... DOWN MTDUMP,2 [WRITE ONE 4DPW ... CALL 1 SFINDQUAL [X2->FQUAL 4DPY ... LOCKC 2,SFINDQUAL [LOCK IT 4DQ2 ... MHUNTW 3,FILE,FQUAL [X3->FQUAL 4DQ4 ... LDN 0 ESENTYP(3) [BASE OF TRANSFER 4DQ6 ... STO 0 ACOMMUNE3(2) 4DQ8 ... LDN 0 1 [WRITE MODE 4DQ= ... STO 0 ACOMMUNE1(2) 4DQ# ... LDN 0 20 [LENGTH OF TRANSFER 4DQB ... STO 0 ACOMMUNE2(2) 4DQD ... DOWN MTDUMP,2 [WRITE QUALIFIER 4DQG ... LDX 5 ESENTYP(3) [GET SENT TYPE FOR LATER USE 4DQJ ... UNLOCK 3 [UNLOCK FQUAL BLOCK 4DQL ... CALL 7 TIMEND [COMPUTE TIME TAKEN 4DQN ... ADS 0 INCTIMESENT(1) [ADD TO "TIME WRITING SENTINELS" COUN 4DQQ ... LDN 0 1 4DQS ... ADS 0 INCBLNUM(1) [UPDATE COUNT OF BLOCKS (INCLUDING 4DQW ... [ SENTINELS) IN INCR. 4DQY ... LDCT 0 #200 [IF SENT WAS START OF INCREMENT (IE X 4DR2 ... ANDX 0 ESENB(3) [WE EXIT IGNORING TAPE EVENTS - THESE 4DR4 ... BNZ 0 NEOT2 [WILL BE DEALT WITH ON X1 ENTRY 4DR6 ... LDX 7 INCACT(1) [NOW WE DEAL WITH ANY FAIL OR EOT 4DR8 ... BNG 7 MTEOT [IF FAIL OCCURRED, JUMP INTO INCEOT 4DR= ... BPZ 5 NOTESFS [J IF THAT WASNT AN ESFS 4DR# ... LDX 5 AWORK1(2) [GET ITS FILE NUMBER (STILL IN AWORK1 4DRB ... BZE 5 NOTESFS [J IF WAS ZERO E OF COMP SF 4DRC ... JBS NOTESFS,1,BINCRFAIL [NO MESSAGE IF CORRUPT FILE 4DRD ... MONOUT FILDUMPED [JUST DUMPED A FILE,OUTPUT MESSAGE 4DRG ... CALL 0 XLOCFINC [X1->FINC 4DRJ ...NOTESFS 4DRL ... BZE 7 NEOT2 [J IF NO EOT OCCURRED 4DRN ... JBC MTEOT,1,BINCEOT [J IF EOT OR FAIL NOT OCCURRED BEFORE 4DRQ ...NEOT2 4DRS ... ADX 4 FX1 4DRW ... EXIT 4 0 4DRY ...# 4DS2 ...SETESFS [SETS UP WORD A1(ESF SENT),WORD A1+1 & ZEROISES LOCAL NAM 4DS4 ... [OF QUALIFIER BLOCK. 4DS6 ... [ON ENTRY, X6= NO. OF BLOCKS WRITTEN SINCE LAST SENTINEL. 4DS8 ... [ X4 IS S/R LINK. 4DS= ... [ON EXIT, X3->QUALIFIER BLOCK, X6= NO. OF BLOCKS WRITTEN. 4DS# ... [ USES X0 & X1. 4DSB ... MHUNTW 3,FILE,FQUAL [X3-> FQUAL BLOCK 4DSD ... LDCT 0 #400 4DSG ... STO 0 ESENTYP(3) [SET 'END OF SUBFILE SENTINEL' 4DSJ ... STOZ ESENBP(3) [ZEROISE WORD 1 OF SENTINEL 4DSL ... LDN 0 ESENBP(3) 4DSN ... LDN 1 ESENBP+1(3) 4DSQ ... MOVE 0 18 [ZEROISE REST OF SENTINEL 4DSS ... SMO FX2 4DSW ... LDX 0 AWORK1 [SET BLOCK NO. IN ESFS SAME AS IN BSF 4DSY ... STO 0 ESENFN(3) 4DT2 ... STO 6 ESENBP(3) [SET UP NO. OF BLOCKS WRITTEN 4DT4 ... EXIT 4 0 4DT6 ...# 4DT8 ...# 4DT= ...# INSERTS 'NO. OF BLOCKS IN FILE' INTO WORD ESENCT OF QUALIFIER BLOCK, 4DT# ...# SPECIAL RESIDENCE NO. IN ESENAL IF ON A SPECIAL RESIDENCE, SETS 4DTB ...# FSIZE FENDBUCK & FVERSION INTO ESEN17,ESEN10 & ESEN11 RESPECTIVELY, S 4DTD ...# FILE NUMBER IN ESENFN & LOCAL NAME IN ESENLOC1-ESENFG & ESENLAN AND, 4DTG ...# IF A DIRECTORY, SETS B0 OF ESENB & INSERTS USER NAME IN ESENUSE1-3. 4DTJ ...# ON ENTRY, X4 IS S/R LINK. 4DTL ...# ON EXIT,X1->FINC BLOCK,X2->FCB,X3->FQUAL BLOCK 4DTN ...# X6=NO. OF BLOCKS TO BE DUMPED. USES X0 4DTQ ...UPDATEQUAL 4DTS ... TOPFCB 2 [X2-> FCB OF FILE BEING DUMPED 4DTW ... MHUNTW 3,FILE,FQUAL [X3-> QUALIFIER BLOCK 4DTY ... LDX 6 FBLMOD(2) 4DW2 ... SBN 6 FBLKS-A1 4DW4 ... LDX 0 FETM(2) 4DW6 ... STO 0 ESENTM(3) [SET TYPE/MODE 4DW8 ... LDX 0 FSIZE(2) 4DW= ... STO 0 ESEN17(3) [SET SIZE (OR MAX. SIZE) 4DW# ... LDX 0 FENDBUCK(2) 4DWB ... STO 0 ESEN10(3) [ LAST BUCKET WRITTEN, ETC., 4DWD ... LDX 0 FVERSION(2) 4DWG ... STO 0 ESEN11(3) [ & VERSION NO. 4DWJ ... LDN 0 FLOC1(2) 4DWL ... LDN 1 ESENLOC1(3) 4DWN ... MOVE 0 5 [SET UP LOCAL NAME OF FILE FROM FCB 4DWQ ... LDX 0 FLAN(2) 4DWS ... STO 0 ESENLAN(3) [ AND LANGUAGE 4DWW ... LDN 0 1 4DWY ... STO 0 ESENRL(3) [SET REEL NO., GEN. NO. & LANG. FOR A 4DX2 ... STO 0 ESENFG(3) 4DX4 ... SMO FX1 4DX6 ... LDX 0 MLANCOMP 4DX8 ... STO 0 ESENLAN(3) 4DX= ... LDX 0 BSPRE(2) 4DX# ... LDX 5 0 4DXB ... SBN 0 48 4DXD ... BPZ 0 SPECIAL [J IF ON A SPECIAL RESI&ENCE 4DXG ... LDN 5 0 [CLEAR SPECIAL RESIDENCE NO. 4DXJ ...SPECIAL 4DXL ... LDCT 7 #400 [ESENB VALUEFOR DIRS 4DXN ...# 4DXQ ...# THE FOLLOWING CODE IS ALSO EXECUTED BY THE CODE WHICH SETS UP 4DXS ...# THE QUAL BLOCK FOR FILES. 4DXW ...# ON ENTRY,X2->FCB,X3->FQUAL,X5=SPEC RESID WORD,X6=SIZE,X7=ESENB VALUE 4DXY ...# 4DY2 ...UPDCOMMON 4DY4 ... LDN 0 6 4DY6 ... STO 0 ESENTYP(3) [SET START OF S/F SENT. WORD 4DY8 ... STOZ ESEN1(3) [CLEAR WORDS NOT OTHERWISE UPDATED 4DY= ... STOZ ESEND2(3) [ 4DY# ... STO 7 ESENB(3) 4DYB ... STO 6 ESENCT(3) [SET 'NO. OF BLOCKS IN FILE' 4DYD ... STO 5 ESENAL(3) 4DYG ... LDN 0 FME1(2) [USER NAME OF DIR. 4DYJ ... LDN 1 ESENUSE1(3) 4DYL ... MOVE 0 3 [SET USER NAME IN QUALIFIER BLOCK 4DYN ... CALL 0 XLOCFINC [X1->FINC 4DYQ ... LDX 0 INCBLNUM(1) 4DYS ... SMO FX2 4DYW ... STO 0 AWORK1 [REMEMBER BLOCK NO. IN THIS INCR 4DYY ... STO 0 ESENFN(3) [SET IT UP IN QUAL BLOCK 4D^2 ... EXIT 4 0 4D^4 ...# 4D^6 ...# 4F5= # 4FJW # 4G4G # 4GJ6 X1INCMON [DUMPING AN OPEN FILE 4GJ= ... MHUNTW 1,FILE,FINC 4GJB ... JBC SENTOK,1,BINCCMPSENT [J IF NO COMPOS S/F WRITTEN 4GJG ... LDN 6 0 4GJL ... STOZ AWORK1(2) [CLEAR FILE NUMBER WORD 4GJQ ... CALL 4 SETESFS 4GJW ... CALL 4 WRITESFS [WRITE ESFS 4GK2 ...SENTOK 4GK6 ... TOPFCB2 2 4GK= ... TRACEIF K6INCWRITE,199,299,FME1(2),USER 4GKB ... TRACEIF K6INCWRITE,199,299,COMM(2),PASS3 4GKG ... BC 2,BFCORE [DONT KEEP USAGE BLOCKS 4GKL ... REWIND [REWIND THE DIR 4GKQ ... CALL 4 UPDATEQUAL [SET UP BSFS FROM FCB 4GKW ... CALL 4 WRITESFS [WRITE IT 4GL2 ... LDN 0 INDEXDIR [INDEX NO FOR A DIR 4GL6 ... STO 0 AWORK3(2) [SET UP AWORK3 AS EXPECTED BY DUMPER 4GLP ...#UNS FNSAD 4GP# ...( 4GRX ... DOWN INCVFCHK,1 [ SET UP DIRECTORY CHECKING 4GWG ... NULL [ NEVER OBEYED - ALWAYS COMES UPPLUS 1 HERE 4G^5 ...) 4H3Q LDN 4 0 [SET 'FILE OPEN' MARKER 4HHB TOPFCB2 3 [X3->FCB 4J32 JBS SERIAL,3,BFSER [J IF SERAL 4JGL NOTSER 4K2= NGN 7 1 4KFW STO 7 AWORK3(2) [AWRORK3 -VE MEANS NOT SERIAL 4K^G SERIAL 4LF6 ... CALL 0 XLOCFINC [X1->FINC 4LYQ LDX 0 CLEANCT 4MDB STO 0 INCTIMING(1) [REMEMBER TIME 4MY2 STOZ INCWORK(1) [ZERO SPACE LEFT IN CURRENT 4NCL [COMPRESSED BLOCK COUNT. 4NX= STOZ AWORK2(2) [ZERO COMPRESSED BLOCK SIZE 4PBW STOZ AWORK4(2) [ZERO PRVIOUS KEY WORD 4PWG STO 6 AWORK1(2) [STORE SIZE OF FILE 4QB6 LDN 6 0 [ZERO BLOCKS WRITTEN COUNT 4QTQ READB 4R*B BXE 6 AWORK1(2),READBEND [J IF END OF FILE 4RK8 LDX 5 CLEANCT [SAVE TIME WE STARTED WAIT FOR BS 4RT2 BNZ 4 NFCB [J IF FILE NOT OPEN 4S#L READB [READ Z BLOCK OF FILE 4SS= MHFINC 4T53 ... CALL 0 XLOCFINC [X1->FINC 4T*S LDX 0 CLEANCT [COMPUTE TIME WAITED FOR BS 4TCQ SBX 0 5 4TFN BPZ 0 NMIDNIGHT3 [J IF MIDNIGHT NOT OCCURRED 4THL SMO FX1 4TKJ ADX 0 NCLEANDAY [ADD A DAYS CLEANCTS 4TMG NMIDNIGHT3 4TPD ADS 0 INCBSWAIT(1) [UPDATE TIME WAITING FOR BS 4TRG BZE 6 SFIRST [J IF 1ST BLOCK OF FILE 4W?6 CALL 7 WAIT [WAIT FOR LAST TRANSFER TO COMPLETE 4WQQ CALL 7 READBSTS [IF FILE CLOSED, AND MORE READS 4X=B [ISSUE NEXT READ 4XQ2 SFIRST 4Y9L MHUNTW 3,FILE,FRB [X3->NEW FRB 4YP= LDX 0 AWORK3(2) 4^8W BNG 0 WROUT [J IF NOT SERIAL- NO CHECKS 4^NG LDX 7 INCWORK(1) [GET COUNT OF SPACE LEFT 5286 [IN CURRENT COMPRESSED BLOCK 52MQ 537B # IF THE FILE IS SERIAL, WE CHECK THAT THE RECORD HEADERS 53M2 # ARE VALID AND THAT THEIR SUM DOES NOT EXCEED THE SIZE OF A BS BLOCK 546L # 54L= # IF IT IS INDEXED, WE ALSO CHECK THAT THE KEYS ARE IN ASCENDING ORDER 555W # AND THAT THE KEY FOR A BLOCK IS EQUAL TO THE HIGHEST KEY FOUND SO FAR 55KG # 5656 STOZ ACOMMUNE1(2) [ZEO DISTANCE DOWN BLOCK 56JQ ADN 3 A1 [X3->1ST REC 574B TAGAIN 57J2 LDX 0 FRH(3) 583L BPZ 0 NDUM [J IF NOT ADUMMY REC 58H= ANDX 0 BRHMASK 592W BNZ 0 XDUD [H IF ILLEGAL BITS IN REC HEADER 59GG LDEX 0 FRH(3) 5=26 BRN YDUM 5=FQ NDUM 5=^B NGX 5 AWORK3(2) 5?F2 BPZ 5 YDUM [J IF NOT INDEXED FILE 5?YL SBX 7 0 [SUBTRACT FROM CT OF SPACE LEFT 5#D= [IN CURRENT COMPR BLOCK 5#XW BPZ 7 YDUM [J IF NOT OVER FULL 5*CG LDN 7 1 5*X6 ADS 7 AWORK2(2) [INCR. COMPRESSED SIZE 5BBQ LDN 7 GSBS-1 [RESET SPACE AVAIL CT 5BWB SBX 7 0 5CB2 YDUM 5CTL BZE 0 XINDCHECK [J IF END OF BLOCK 5D*= ADX 0 ACOMMUNE1(2) 5DSW STO 0 ACOMMUNE1(2) [UPDATE DISTANCE DOWN BLOCK 5F#G BXGE 0 BSBS,XDUD [J IF OFF END OF BLOCK 5FS6 KEYRECI AWORK3(2),,3,NOKEY,5 [X5=KEY IF ANY 5G?Q BXL 5 AWORK4(2),XDIR [J IF LESS THAN PREV KEY 5GRB STO 5 AWORK4(2) [REMEMBER AS 'PREVIOUS KEY' 5H?2 NOKEY 5HQL LDEX 0 FRH(3) 5J== ADX 3 0 [X3=NEXT REC 5JPW BRN TAGAIN 5K9G XINDCHECK 5K*Y ... LDX 0 AWORK3(2) [ 5KGB ... BZE 0 NINDCH [J IF NOT INDEXED FILE 5KH= ...#UNS FNSAD 5KJ6 ... SBN 0 1 5KK2 ...#UNS FNSAD 5KKW ...#STR 5KLS ... SBN 0 2 5KR= ... BNG 0 NOTVSF2 [J IF NOT A DIR 5KXN ... DOWN INCVFCHK,2 [PERFORM FILE DEPENDENT VSF CHECKS 5K^7 ...#UNS FNSAD 5L2L ... BRN MTEOT [ ERROR DETECTED 5L46 ...NOTVSF2 5L8Q BNZ 4 NFCB2 [J IF FILE NOT OPEN 5LNB TOPFCA2 3 [X3->FCA 5M82 FFINDEXB 3,3 [X3->INDEX BLOCK 5MML XINDEX 5N7= SMO 6 5NLW LDX 0 INDEXREC(3) [X0=KEY FOR BLOCK 5P6G BXU 0 AWORK4(2),XDIR [J IF NOT = LAST KEY FOUND 5PL6 NINDCH 5Q5Q ... CALL 0 XLOCFINC 5QKB STO 7 INCWORK(1) [SAVE CT OF SPACE LEFT IN 5R52 [CURRENT COMPRESSED BLOCK 5RJL WROUT 5RKH ...#UNS FPD 5RLD ...( 5RM* ... CALL 1 SFINDFRB 5RN= ... LOCKC 2,SFINDFRB [LOCK BUFFER 5RP7 ... MHUNTW 3,FILE,FRB 5RQ4 ... LDN 0 A1(3) [START OF TRANSFER ADDR 5RQ^ ... STO 0 ACOMMUNE3(2) 5RRW ... LDN 0 1 [MODE OF TRANSFER 5RSR ... STO 0 ACOMMUNE1(2) 5RTN ... LDN 0 GSBS [LENGTH OF TRANSFER 5RWK ... STO 0 ACOMMUNE2(2) 5RXG ... DOWN MTDUMP,3 [INITIATE AUTONOMOUS TRANSFER 5RYC ...) 5R^# ...#UNS FPD 5S29 ...#SKI 5S36 ...( 5S4= LDX 5 INCCOPIES(1) [X5=NO. OF DTA'S 5SHW LDN 0 1 5T3G STO 5 INCACT(1) [NO. OF RUNNING DUMPERS ACTS 5TH6 ADS 0 INCACT(1) [+1 FOR DUMPER ITSELF 5W2Q CALL 1 SFINDFRB [X2->FRB 5WGB LOCKC 2,SFINDFRB [LOCK IT DOWN 5X22 MHUNTW 3,FILE,FRB [X3->FRB 5XFL S10 5X^= FINDACTFB 2,,ACTDOC,ADUMPT,,BPTR [X2->NEXT DTA 5YDW LDN 0 1 5YYG DCA ,STO,0,MODE [SET UP MODE 5^D6 LDN 0 GSBS 5^XQ DCA ,STO,0,COUNT [COUNT 62CB LDN 0 A1(3) 62X2 DCA ,STO,0,CTSA [START ADDRESS 63BL SMO FX2 63W= STO 2 ACOMMUNE1 [REMEMBER ADDR OF DTA 64*W FPUT [KICK IT 64TG LDX 2 ACOMMUNE1(2) 65*6 BCT 5 S10 65JY ...) 65SQ ADN 6 1 [INCR COUNT OF BLOCKS WRITTEN 66#B LDX 2 FX2 66S2 BRN READB [GO FOR ANOTHER FILE BLOCK 67?L 67R= XDUD 68=W XDIR 68?P ...#UNS JSKI33 68#J ...( 68*C ... MHUNTW 3,FILE,FRB [X3->FRB OF CORRUPT BLOCK 68B= ... LDX 5 BACK1(3) [RESID NO FOR CORRUPT FILE HANDLER 68C5 ... LDX 3 BACK2(3) [LIKEWISE BLOCK NO. 68CY ... CORRUPTB 5,3 [INVOKE CORRUPT FILE MECHANISM 68DR ... [CORRUPTB WILL GEOERR IF IT 68FL ... DOWN INCEOT,5 [IS A DIRECTORY OTHERWISE WE MARK 68GF ... CALL 0 XLOCFINC [THE FILE 'TO-BE-CLOSEABANDONED' 68H# ... BRN WROUT [AND CARRY ON DUMPING IT WITHOUT 68J7 ... [FURTHER CHECKS AND WITHOUT UPDATING 68K2 ... [THE DIRECTORY ENTRY. THIS MAINTAINS 68KT ... [THE DUMPTAPE FORMAT 68LN ...) 68MH ...#UNS JSKI33 68NB ...#SKI 68P9 ...( 68QG BNZ 4 NFCB3 [FILE NOT OPEN=J 69=6 MHUNTW 1,FILE,FRB 69PQ NAME 1,FILE,FURB 6=9B SFCA ,2,2 [X2->FSTACK 6=P2 CHAIN 1,2 [CHAIN BLOCK IN FILE CHAIN FOR PM 6?8L NFCB3 6?N= SMO FX2 6#7W NGX 0 AWORK3 6#MG BNG 0 XDDIR [J IF INDEXED 6#X# ... DOWN INCEOT,4 [OUTPUT WARNING MESSAGE 6*76 ... CALL 7 UPDCOUNTS [UPDATE COUNTS ETC 6*BY ... BRN MTEOT [EXIT BY EOT PATH 6*LQ XDDIR 6B6B GEOERR BRIEFPM,DUD DIR 6BL2 6BNK ...) 6BR8 # 6BYB # 6C5L X2INCMON [DUMPING A CLOSED FILE 6C5S ... READAGAIN [GET A FILE/ENT BLOCK 6C62 ... MHUNTW 3,FILE,FRB 6C68 ... NAME 3,FILE,ENT [X3->FILE/ENT BLOCK 6C6B ... JBC NFLINC2,,BPARALLEL [J IF NOT TO BE WRITTEN TO 2ND INC 6C6J ... JMBS NFLINCP,3,BEALLINCS,BEREVERE 6C6Q ... BS ,BFILEINC [SET FILE ONLY INCR MARKER 6C6Y ... BRN NOSENT2 [NO COMP SF XENT NEEDED 6C76 ...# 6C7# ...# IF THE FILE IS TO BE DUMPED ON THE RESTORABLE INCR OF A PARALLEL 6C7G ...# DUMP WE MUST RECORD THE FACT, AS A TAPE EVENT ON THE FILE ONLY INC 6C7N ...# MAY MAKE IT NECESSARY TO BACKSPACE THE RESTORABLE INCR AND 6C7W ...# DEUPDATE THE DIRENT. 6C84 ...# 6C8= ...NFLINCP 6C8D ... CALL 4 RESTARTDATA 6C8L ...NFLINC2 6C8S ... MHUNTW 1,FILE,FINC 6C92 ... BS 1,BINCTERMINL [ PASS 2 NOT IN VAIN 6C98 ... JBC NOSENT2,1,BINCGENRES [J IF NOT POT GEN RES 6C9B ... JBSS NOSENT2,1,BINCCMPSENT [J IF COMP S/F SENT ALREADY 6C9J ... CALL 4 UPDATEQUAL 6C9Q ... CALL 4 WRITESFS [WRITE ONE 6C9Y ...NOSENT2 6C=6 ...# 6C=# ...# WE ARE GOING TO HAVE TO DUMP THE FILE USING BACKREADS 6C=G ...# FIRST WE HAVE TO SET UP THE QUAL BLOCK FROM THE FILE/ENT 6C=N ...# 6C=W ...# 6C?4 ... MHUNTW 1,FILE,ENT 6C?= ... TRACEIF K6INCWRITE,199,299,ELOC1(1),INCCFILE 6C?D ... MHUNTW 3,FILE,FQUAL [X3->FQUAL BLOCK 6C?L ... LDX 0 ETM(1) 6C?S ... STO 0 ESENTM(3) [TYPE/MODE 6C#2 ... LDEX 0 EINF3(1) 6C#8 ... STO 0 ESEN17(3) [MAX SIZE 6C#B ... LDX 0 EENDBUCK(1) 6C#J ... STO 0 ESEN10(3) [LAST BUCKET WRITTEN ETC 6C#Q ... LDX 0 EVERSION(1) 6C#Y ... STO 0 ESEN11(3) [VERSION NO. 6C*6 ... LDN 4 ELOC1(1) 6C*# ... LDN 5 ESENLOC1(3) 6C*G ... MOVE 4 5 [MOVE ACROSS LOCAL NAME ETC 6C*N ... LDX 0 ELAN(1) 6C*W ... STO 0 ESENLAN(3) [LANGUAGE 6CB4 ... LDN 7 0 [ESENB VALUE FOR FILES 6CB= ... LDN 5 #77 6CBD ... ANDX 5 EALLOC(1) [RESID NO IF ALLOCATED 6CBL ... JMBC NREV,1,BEREVERE,BESERIAL [J IF NOT SERIAL AND REVERED 6CBS ...# 6CC2 ...# IN THE SERIAL REVERED CASE, WE MUST DUMP ONLY THOSE BLOCKS WRITTEN 6CC8 ...# TO BACKING STORE. THE CODE TO DO THE FINDING OUT IS IN INCEOT. 6CCB ...# 6CCJ ... DOWN INCEOT,2 [LEAVES NO OF BLOCKS IN ACOMMUNE1 6CCQ ... MHUNTW 3,FILE,FQUAL 6CCY ... LDX 6 ACOMMUNE1(2) 6CD6 ... BRN REV 6CD# ...NREV 6CDG ... LDX 6 ECOPS(1) 6CDN ... SRL 6 15 6CDW ...REV 6CF4 ... TOPFCB 2 [X2->FCB OF SUP DIR 6CF= ... CALL 4 UPDCOMMON [CARRY OUT UPDATING COMMON WITH DIRS 6CFD ... CALL 4 WRITESFS [WRITE THE BSFS 6CFL ... READ [GET BLOCKS REC 6CFS ... MHUNTW 3,FILE,FRB 6CG2 ... NAME 3,BSTB,FULLB [CALL IT A FULLB BLOCK 6CG8 ... BWZ AWORK3(2),WRITEF [J IF NOT INDEXED 6CGB ... READ [GET INDEX RECORD 6CGJ ... MHUNTW 3,FILE,FRB 6CGQ ... NAME 3,FILE,FINTER1 6CGY ...WRITEF 6CK= LDN 4 1 [SET FILE NOT OPEN 6CMT ... LDX 0 AWORK3(2) 6CQD ... SBN 0 2 [IS IT A VSF 6CT3 ... BNG 0 NOTVSF3 6CXL ... DOWN INCVFCHK,1 [INITIALISE FILE DEPENDENT CHECKING 6CYF ...#UNS FNSAD 6C^# ... NULL [ NEXER OBEYED - ALWAYS COMES UPPLUS 6D29 ...NOTVSF3 6D4W BZE 6 NULLFILE2 6DJG LDX 5 6 6F46 BXL 5 INCREADLIM(1),READLOOP 6FHQ LDX 5 INCREADLIM(1) 6G3B READLOOP [X5 =MIN(INCREADLIM,FILE SIZE) 6GH2 [WE NOW SET UP THAT MANY BUFFERS AND 6H2L [START FILLING THEM 6HG= STO 5 AWORK1(2) 6H^W SETNCORE GSBS,3,BSTB,BFREEW [SET UP BUFFER 6JFG CALL 7 READBSTS [ISSUE READ 6J^6 LDX 5 AWORK1(2) 6KDQ BCT 5 READLOOP 6KYB NULLFILE2 6LD2 MHUNTW 3,FILE,ENT 6LXL JBS SERIAL,3,BESERIAL 6MC= BRN NOTSER 6MGB # 6MKG # THIS CODE IMPLEMENTS THE WAIT FOR A BS BLOCK WHEN WE ARE 6MNL # DUMPING A CLOSED FILE VIA BSTS DIRECT. 6MRQ # 6MWW NFCB 6NBG MHUNTW 1,BSTB,FULLB [X1->BLOCKS REC 6NW6 SMO 6 6P*Q LDX 7 A1+2(1) [X7=BLOCK NO 6PTB BACKWAIT ,A1+1(1),7 [WAIT FOR END OF TRANSFER 6PX# ...#UNS JSKI33 6P^= ...( 6Q38 ... JBC NOFAIL,2,EXDUMPFAIL [J IF NO FAILED TRANSFERS 6Q3M ... MHUNTW 1,BSTB,FULLB 6Q47 ... CORRUPTB A1+1(1),7 [INVOKE CORRUPT FILE MECHANISM 6Q56 ... DOWN INCEOT,5 6Q74 ... [MARK FILE TO BE CLOSEAB'D 6Q92 ...NOFAIL 6Q=Y ...) 6Q*2 MHUNTW 1,BSTB,FULLB [GET BLOCK NO AGAIN IN CASE 6QSL SMO 6 [BSTS HAS CHANGED IT COS OF 6R#= LDX 7 A1+2(1) [WRITE FAIL BY SOMEONE ACCESSING IT 6RRW XFINDBL 6S?G HUNT2OPT 2,BSTB,BREAD [X2->NEXTBREAD 6SR6 BPZ 2 XFOUND [J IF FOUND ONE 6T=Q GEOERR BRIEFPM,INCBLALT [LOG. BLOCK NO. IN FILE OVERWRITTEN 6TQB XFOUND 6W=2 BXU 7 BACK2(2),XFINDBL [J IF NOT THE ONE 6WPL NAME 2,FILE,FRB [NAME IT A FRB 6X9= LDX 2 FX2 6XNW BRN MHFINC 6Y8G NFCB2 6YN6 MHUNTW 3,FILE,FINTER1 [X3->INDEX REC 6^7Q BRN XINDEX 6^MB 7272 # THE FOLLOWING CODE SETS UP THE PARAMS FOR THE MESSAGE 72LL # DETAILS ARE:- 1) USERNAME 736= # 2) LOCALNAME 73KW # 3) GENERATION NO. 745G # 4) LANGUAGE 74K6 # 5) SIZE IN BLOCKS 754Q # 6) TYPE/MODE OF FILE 75JB # 7) BLOCK NUMBER WITHIN THIS INCREMENT 7642 # 8) TIME TO DUMP IN 1/5 SECS. 76HL # 9) NUMBER OF THE F/S RESIDENCE HOLDING THE FILE. 773= # 77GW # 782G READBEND [END OF FILE 78G6 ... CALL 0 XLOCFINC 78^Q BZE 6 NULLFILE [J IF NOTHING WRITTEN 79FB CALL 7 WAIT [WAIT IF NEC. 79^2 NULL [EXIT PATH NOT USED HERE 7=DL NULLFILE 7=Y= CALL 7 UPDCOUNTS [UPDATE THE COUNTS 7?2T ... LDX 0 AWORK3(2) 7?3* ...#UNS FNSAD 7?3T ... SBN 0 1 7?4* ...#UNS FNSAD 7?4T ...#STR 7?5D ... SBN 0 2 [IS FILE INDEXED VSF 7?83 ... BNG 0 NOTVSF4 [J IF NOT 7?=L ... DOWN INCVFCHK,3 7??F ...#UNS FNSAD 7?#* ... BRN MTEOT [ ERROR DETECTED 7?*9 ...NOTVSF4 7?CW 7?K4 ... CALL 0 XLOCFINC 7?Q= ... JBS NOMESS,1,BINCRFAIL 7?XG MHUNTW 3,FILE,FQUAL [X3->FILE/FQUAL 7#C6 LDN 5 3 [PARAM LENGTH 7#WQ LDN 6 JPDUSERNAME [PDC 7*BB LDN 4 ESENUSE1(3) [USERNAME 7*W2 CALL 7 SUBPACKX [PUT OUT USERNAME 7B*L 7BT= MHUNTW 3,FILE,FQUAL [X3->FILE/FQUAL 7C#W LDX 0 ESENB(3) 7CSG BPZ 0 PNOTDIR [J IF IT ISN'T A DIR. 7D#6 CALL 7 SUBNULL [NO LOCAL NAME 7DRQ CALL 7 SUBNULL [NO .GEN 7F?B CALL 7 SUBNULL [NO LANG. 7FR2 BRN PSIZE 7G=L 7GQ= PNOTDIR 7H9W LDN 4 ESENLOC1(3) [LOCAL NAME 7HPG LDN 6 JPDLOCNAME [PDC 7J96 CALL 7 SUBPACKX [PUT OUT LOCAL NAME 7JNQ 7K8B MHUNTW 3,FILE,FQUAL [X3->FILE/FQUAL 7KN2 LDN 4 ESENFG(3) [GEN NO 7L7L LDN 5 1 [RESET PARAM LENGTH 7LM= LDN 6 JPDGENNUM [PDC 7M6W CALL 7 SUBPACKX 7MLG 7N66 MHUNTW 3,FILE,FQUAL [X3->FILE/FQUAL 7NKQ LDN 4 ESENLAN(3) [LANG. 7P5B LDN 6 JPDLANGUAGE [PDC 7PK2 CALL 7 SUBPACKX [PUT OUT LANGUAGE 7Q4L 7QJ= PSIZE 7R3W LDN 5 1 [RESET PARAM LENGTH FROM DY PATH 7RHG LDN 4 AWORK1(2) [BLOCK COU T 7S36 LDN 6 JPDBLOCKCT [BLOCK COUNT 7SGQ CALL 7 SUBPACKX [PUT OUT SIZE 7T2B 7TG2 MHUNTW 3,FILE,FQUAL [X3->FILE/FQUAL 7T^L LDX 0 ESENB(3) 7WF= BNG 0 PNULL [J IF DIR 7WYW LDX 0 ESENTM(3) [TYPE/MODE 7XDG BNZ 0 PTM [J IF NONZERO TM 7XY6 PNULL 7YCQ CALL 7 SUBNULL [PUT OUT NOTHING IF ZERO TM 7YXB BRN PBLNUM 7^C2 PTM 7^WL LDN 4 ESENTM(3) 82B= LDN 6 JPDOCTA 82TW CALL 7 SUBPACKX [PUT OUT T/M 83*G 83T6 PBLNUM 84#Q MHUNTW 3,FILE,FQUAL [X3->FILE/FQUAL 84SB LDN 4 ESENFN(3) [BLOCK NO 85#2 LDN 6 JPDNUMA 85RL CALL 7 SUBPACKX [PUT OUT BLOCK NO 86?= 86QW LDN 4 AWORK2(2) [TIME TO DUMP 87=G LDN 6 JPDNUMB 87Q6 CALL 7 SUBPACKX 889Q 88PB LDN 4 AWORK4(2) 8992 LDN 6 JPDNUMC 89NL CALL 7 SUBPACKX [PUT OUT RESID NO 8=8= 8=#Y ...#UNS FPD 8=FL ...( 8=L# ... JBC NPLL,,BPARALLEL 8=R2 ... CALL 0 XLOCFINC [IN PLLL MODE OUTPUT INCR NO 8=XN ... LDN 4 INCNO(1) 8?4B ... LDN 6 JPDINCNUM 8?94 ... CALL 7 SUBPACKX 8?*Q ...NPLL 8?GD ...) 8?GN ...NOMESS 8?GY ... MHUNTW 3,FILE,FQUAL 8?HD ... LDX 0 ESENFN(3) 8?HY ... STO 0 AWORK1(2) [RESET AWORK1 FOR WRITESFS 8?JD ... LDX 6 ESENCT(3) [AND X6 FOR SETESFS 8?JY ... CALL 4 SETESFS 8?KD ... CALL 4 WRITESFS 8?KY ... LDX 0 AWORK1(2) [PASS NEW VALUE OF AWORK1 8?LD ... STO 0 ACOMMUNE1(2) [TO INCWRITE 8?M6 UPPLUS 1 [NORMAL EXIT 8?MB ...X3INCMON 8?ML ... CALL 4 WRITESFS 8?MW ... UP 8?N6 ...# 8?NB ...X4INCMON 8?NL ... CALL 4 UPDATEQUAL 8?NW ... CALL 4 WRITESFS 8?P6 ... UPPLUS 1 8?PB ...X5INCMON [ENTRY TO WRITE EIS 8?PL ... CALL 4 RESTARTFREE [ENSURE ALL RESTAR DATA FORGOTTEN 8?PW ... BC ,BFILEINC [ENSURE WRITESFS PICKS UP 1ST FINC 8?Q6 ...NEXTFINC 8?QB ... LDN 6 0 [ZERO FILE SIZE 8?QL ... STOZ AWORK1(2) [ZERO FILE NUMBER 8?QW ... CALL 4 SETESFS [SET UP ESFS 8?R6 ... CALL 0 XLOCFINC 8?RB ... JBC YEOTS,1,BINCFIN [J IF INC NOT TO BE WOUND UP 8?RL ... JBSS YEOIS,1,BINCEOIS [J IF END INC SENT ALREADY WRITTEN 8?RW ... LDCT 7 #200 [SHOW EI SENT 8?S6 ... JMBC NOREST,1,BINCENDBAT,BINCGENRES[J IF NOT SUIT FOR GEN RES 8?SB ... LDCT 7 #600 [MARK AS GEN RESTOREABLE 8?SL ...NOREST 8?SW ... STO 7 ESENGR(3) 8?T6 ... CALL 4 WRITESFS [WRITE E1S 8?TB ...YEOIS 8?TL ... JBSS YEOTS,1,BINCEOTS [J IF END OF TAPE SENT ALREADY WRITTE 8?TW ... MHUNTW 3,FILE,FQUAL 8?W6 ... LDN 0 7 8?WB ... STO 0 ESENTYP(3) [SET ETS 8?WL ... STOZ ESENGR(3) [CLEAR GENRES WORD 8?WW ... CALL 4 WRITESFS 8?X6 ...#UNS IDC 8?XB ...( 8?XL ...# 8?XW ...# WE NOW BACKSPACE BACK OVER END OF TAPE SENTINEL 8?Y6 ...# SO THAT TAPE IS CORRECTLY POSITIONED FOR NEXT INCREMENT,IF 8?YB ...# IT USES THIS TAPE WITHOUT REWINDING 8?YL ...# 8?YW ... LDN 3 2 [ COUNT OF BACKSPACES 8?^6 ...YBSPACE2 8?^B ... LDN 0 3 [ SET UP APPROPRIATE MODE 8?^L ... STO 0 ACOMMUNE1(2) 8?^W ... DOWN MTDUMP,2 [ DOWN TO FIRE OFF PERIS 8#26 ... BCT 3 YBSPACE2 [ BACK FOR NEXT PERI 8#2B ... CALL 0 XLOCFINC [ GET POINTER TO FINC AGAIN 8#2L ...) 8#2W ...YEOTS 8#36 ... JBC NOPLL,,BPARALLEL [J IF NOT IN PL MODE 8#3B ... JBSS NOPLL,,BFILEINC [J IF NOT SECOND FINC 8#3L ... HUNT2 1,FILE,FINC [X1-> 2ND FINC 8#3W ... JBS NEXTFINC,1,BINCFIN [IF INCR TO BE WOUND UP JUMP BACK 8#46 ...NOPLL 8#4B ... BC ,BDUMPING [ SHOW NO LONGER DUMPING 8#4L ... CALL 0 XFDUMPCOM 8#4Q ... BNG 1 NOFDUMPFR 8#4W ... FREECORE 1 [ FREE FDUMPCOM BLOCK 8#56 ... MFREEW FI,INDEXCHK 8#5= ...NOFDUMPFR 8#5B ... UP 8#5L ...X7INCMON 8#5W ...MTEOT 8#66 ... ACROSS INCEOT,1 8#6Q # 8#LB MENDAREA 20,K99INCMON 8*62 # 8*KL #END ^^^^ ...53526321001000000000