13 22FL #OPT K0COMPRESS=K0FILESTORE>K0ALLGEO 7 22_= #LIS K0COMPRESS 15 23DW #SEG COMPRESS40 [JUDY BIDGOOD 13 23YG #OPT K6COMPRESS=K6FILESTORE>K6ALLGEO 7 24D6 8HCOMPRESS 12 24XQ SEGENTRY K2COMPRESS,ZCOMPRESS 21 25CB # THIS SEGMENT IMPLEMENTS THE INCDUMP COMPRESS COMMAND TO COMPRESS VITAL 19 25X2 # SYSTEM FILES. THIS COMMAND CAN ONLY BE ISSUED UNDER :DUMPER. 7 266S ...SPACE #20202020 7 269C ... FSHSKIP B 4 26#2 ...( 5 26BL XMAS #4 6 26W= 4HMAST 6 27*W 4HER 5 27TG 4H 9 28SQ XFIL 4HSYST 9 29#B 4HEM F 9 29S2 4HILES 4 2=?L ...) 6 2=R= ZCOMPRESS 10 2=T8 ... FSHCODE B,XFSHBCOMP 4 2=X6 ...( 9 2=_4 ... BRN (GEOERR) 6 2?32 ...XFSHBCOMP 4 2?4Y ...) 7 2?6W ... FSHSKIP B 4 2?8S ...( 9 2?=W MONOUT COMPHEAD 17 2?QG STOZ AWORK1(2) [OLD SIZE OF FILE. 16 2#=6 STOZ AWORK2(2) [NEW SIZE OF FILE 18 2#PQ STOZ AWORK3(2) [OLD SIZE OF FILESTORE. 18 2*9B STOZ AWORK4(2) [NEW SIZE OF FILESTORE. 11 2*P2 SETNCORE 10,1,ADATA,CREADL 8 2B8L STOZ A1(1) 11 2B#H ... SETNCORE 16,1,FLIB,FLINC 7 2BDD ... LDN 0 1 15 2BJ* ... STO 0 A1(1) [REC HEADER 11 2BN= SETNCORE 6,1,FILE,FLOCNB 20 2C7W SETNCORE 4,2,FILE,FABSNB [SET UP FABSNB CONTAINING MASTER 9 2CMG LDN 1 XMAS(1) 8 2D76 ADN 2 A1 7 2DLQ MOVE 1 4 13 2DP5 ... OPENSYS XEND1,INCINDEX,GENERAL 17 2DRD ... GETFNAME [FABSNB FOR INCINDEX 9 2DTR ... BRN NEXTDIR 5 2DY6 ...XSTEPUP 7 2F9G ... LDN 0 1 9 2FGW ... ADS 0 AWORK3(2) 9 2FS= ... ADS 0 AWORK4(2) 6 2G5L XSTEP STEP 5 2GK= XSTEP1 8 2H4W BZE 3 XEND 10 2HJG LDX 0 ERES-A1(3) 18 2J46 BNZ 0 XSTEP [J IF NOT NAME RECORD. 11 2JHQ ... JBC XSTEP,3,BNINDEX 18 2JJS ... JMBS XSTEP,3,BNERASE,BNTEMP[NOT WORTH COMPRESSING 9 2JKW ... LDX 0 ECOPSN(3) 8 2JLY ... SRL 0 15 7 2JN2 ... SBN 0 1 21 2JP4 ... BNG 0 XSTEP [DON'T COMPRESS OR SEARCH IF EMPTY 20 2JQ6 ... ORX 0 EUSE1N(3) [X0=0 IF 1 BLOCK TERMINAL FILE 17 2JR8 ... BZE 0 XSTEPUP [CAN'T BE COMPRESSED 8 2JS= ... TESTBRKI XFIN 10 2JT# ... MHUNT 2,FILE,FLOCNB 9 2JWB ... LDX 0 EUSE1N(3) 16 2JXD ... BNZ 0 XDIR [J IF DIRECTORY 9 2JYG ... LDX 0 ELANN(3) 20 2J_J ... STO 0 A1+5(2) [UPDATE FLOCNB WITH LOCAL NAME 9 2K2L ... ADN 3 ELOC1N 8 2K3N ... LDN 4 A1(2) 7 2K4Q ... MOVE 3 5 8 2K5S ... BRN XBOTH 4 2K6W ...XDIR 13 2K7Y ... LDX 0 HCOLUSER [VVV: 19 2K92 ... STO 0 A1(2) [UPDATE FLOCNB WITH USERNAME 15 2K=4 ... STOZ A1+4(2) [UNUSED WORD 9 2K?6 ... LDN 1 ELOC1N(3) 7 2K#8 ... SUM 0 3 15 2K*= ... STO 0 A1+5(2) [STORE KEY 9 2KB# ... ADN 3 EUSE1N 9 2KCB ... LDN 4 A1+1(2) 7 2KDD ... MOVE 3 3 5 2KFG ...XBOTH 21 2KH2 CALL 6 TESTALT [ALTLEN FABSNB AND UPDATE R.H. SET X2 19 2L2L ADX 2 A1(2) [ADD IN NEW LENGTH OF FABSNB 8 2LG= ... ADN 2 A1-6 10 2L_W ... MHUNT 1,FILE,FLOCNB 8 2MFG ... ADN 1 A1 19 2M_6 ... MOVE 1 6 [UPDATE FABSNB FROM FLOCNB 7 2R8L ... READAGAIN 10 2R*G ... MHUNTW 1,FILE,FRB 10 2RGB ... NAME 1,FILE,ENT 12 2SJG ... OPENRELN XEND1,GENERAL,QUERY 10 2SPB ... TESTRPN2 OK,NOTOPEN 7 2SW= ... TOPFCB2 3 10 2T36 ... JBS XSTEP,3,BFDIR 9 2T82 ... BRN NEXTDIR 4 2T*2 XEND 10 2TSL MHUNT 1,FILE,FABSNB 8 2W#= LDX 0 A1(1) 7 2WRW SBN 0 4 17 2X?G BZE 0 XFIN [J IF END OF :MASTER 5 384Q NEXTDIR 21 38JB TOPFCB2 3 [X3 FCB OF FILE TO BE COMPRESSED 9 3942 #SKI K6COMPRESS>99-99 11 39HL TRACE FLOC1(3),LOCNAM 9 3=3= LDX 0 FBLMOD(3) 9 3=GW SBN 0 FBLKS-A1 7 3?2G SBN 0 1 20 3?G6 BNZ 0 XMORE [J IF MORE THAN 1 BLOCK IN FILE 7 3?_Q LDN 0 1 9 3#FB ADS 0 AWORK3(2) 9 3#_2 ADS 0 AWORK4(2) 7 3*#P ...NOOP CLOSETHROW 9 3*ND ... BRN NOTOPEN 5 3*Y= XMORE 7 3BCW ADN 0 1 16 3BXG STO 0 AWORK1(2) [OLD SIZE OF FILE 18 3CC6 ADS 0 AWORK3(2) [OLD SIZE OF FILESTORE 9 3CCH ... LDX 7 BSPRE(3) 7 3CCY ... LDX 4 7 13 3CD* ... SBN 7 48 [<48? 8 3CDQ ... BNG 7 XCONT 16 3CF7 ... LDX 3 BMISC [I.E.SPECIAL RES. 13 3CFJ ... LDX 5 BSAB [TYPE 9 3CF_ ...STEP LDX 3 FPTR(3) 14 3CGB ... BXE 3 CXMI,(GEOERR) [LAST? 16 3CGR ... BXU 5 ATYPE(3),STEP [BSLIST BLOCK? 9 3CH8 ... LDX 6 BACK1(3) 7 3CHK ... SBX 6 4 18 3CJ2 ... BNZ 6 STEP [NOT THIS RES.,CONT SCAN 9 3CJC ... LDX 7 BSFREE(3) 17 3CJS ... SBX 7 0 [ - NO BLOCKS IN FILE 8 3CK9 ... BPZ 7 XCONT 9 3CKL ... ADS 0 AWORK4(2) 19 3CL3 ... OUTPACK BACK1(3),1,NUMA [OUTPUT RESNO AS 1ST PARAM 16 3CLD ... CALL 7 OUTNAME [ FILENAME AS 2ND 10 3CLT ... MONOUT FNCOMPRESS 11 3CM= ... MHUNT 1,ADATA,CREADL 8 3CMM ... STOZ A1(1) 17 3CN4 ... MHUNT 2,FLIB,FLINC [SET RESNO IN FLINC 7 3CNF ... LDX 1 2 8 3CNW ... LDX 0 A1(2) 7 3CP? ... SBN 0 1 8 3CPN ... BZE 0 STORE 10 3CQ5 ...SCAN BXE 4 A1+2(2),NOOPA 7 3CQG ... ADN 2 1 8 3CQX ... BCT 0 SCAN 9 3CR# ...STORE STO 4 A1+2(2) 7 3CRP ... LDX 2 1 7 3CS6 ... LDN 1 1 8 3CSH ... ADS 1 A1(2) 8 3CSY ...NOOPA LDX 2 FX2 8 3CT* ... BRN NOOP 5 3CTQ ...XCONT 7 3CWQ LDN 7 0 20 3DBB ... BS 3,BFCORE [SET 'LEAVE BLOCKS IN CORE' BIT. 9 3F*L #SKI K6COMPRESS>99-99 11 3FT= TRACE FBLMOD(3),BEFORE 6 3G#W REWIND 5 3GSG PRESS 6 3H#6 STEP 16 3HRQ BZE 3 XPRESS [JIF END OF FILE 9 3J?B LDEX 3 FRH(3) 21 3JR2 SBX 7 3 [SUBTRACT R.H. FROM SPACE IN PREV. 21 3K=L TOPFCA2 2 [ BLOCK (IF ANY) 10 3KQ= LDX 0 FREADWORD(2) 8 3L9W SBN 0 A1 20 3LPG BNZ 0 PRESS [IGNORE IF NOT 1ST REC IN BLOCK 20 3M96 BNG 7 WONTFIT [JIF REC WON'T FIT IN PREV BLOCK 7 3MNQ READAGAIN 6 3N8B DELETE 10 3NN2 MHUNTW 1,FILE,FRB 10 3P7L NAME 1,FILE,FWB 20 3PM= DOWN INSERT,10 [INSERT REC @ END OF PREV BLOCK 9 3Q6W MFREEW FILE,FWB 8 3QLG BRN PRESS 5 3R66 WONTFIT 9 3RKQ LDN 7 GSBS-1 20 3S5B SBX 7 3 [START TO CALC AMOUNT OF SPACE IN 19 3SK2 CALL 6 SFUBFREE [DISPOSE OF USAGE BLOCK FOR 18 3T4L [PREVIOUS BLOCK OF FILE. 21 3TJ= BRN PRESS [ THIS BLOCK 5 3W3W XPRESS 7 3WHG TOPFCB2 3 9 3X36 LDX 0 FBLMOD(3) 9 3XGQ SBN 0 FBLKS-A1 16 3Y2B STO 0 AWORK2(2) [NEW SIZE OF FILE 18 3YG2 ADS 0 AWORK4(2) [NEW SIZE OF FILESTORE 9 3Y_L #SKI K6COMPRESS>99-99 11 3_F= TRACE FBLMOD(3),AFTER 9 3_P4 ... BC 3,BFCORE 7 3_S_ ... CLOSETHROW 9 3_YW LDX 0 AWORK2(2) 9 42DG SBX 0 AWORK1(2) 9 42Y6 BZE 0 ONEBLK 9 43CQ ... CALL 7 OUTNAME 21 4=Q6 OUTPACK AWORK1(2),1,NUMA [SET UP OLD SIZE AND NEW SIZE OF FILE 21 4?9Q OUTPACK AWORK2(2),1,NUMB [IN GMON/ASET BLOCK AS 2ND AND 3RD 21 4?PB MONOUT ECOMPRESS [PARAMETERS FOR OUTPUT. OUTPUT MESSAG 11 4#92 MHUNT 1,ADATA,CREADL 8 4#NL STOZ A1(1) 5 4*8= ONEBLK 5 4*9H ...NOTOPEN 9 4*=S ... CALL 1 XPOINT 21 4*N= ... HUNT2J 1,FILE,FABSNB,2,NOTSTART [J TO NOTSTART IF ONLY 1 FABSNB 19 4B5N ... FREECORE 2 [EXTRA FABSNB FOR INCINDEX 10 4BH6 ... OPENMAS XEND1,READ 8 4BPL ... BRN XSTEP 5 4BY6 ...NOTSTART 10 4C6Q MHUNT 1,FILE,FLOCNB 7 4CLB LDN 0 6 18 4D62 SBS 0 A1(2) [DECREMENT R.H. OF FABSNB 8 4DKL LDX 5 A1(2) 8 4F5= ADN 5 A1(2) 8 4FJW LDN 6 A1(1) 20 4G4G MOVE 5 6 [MOVE NAME FROM FABSNB TO FLOCNB 8 4GJ6 ... TESTBRKI XEND1 12 4H3Q ... OPEN XEND1,GENERAL,QUERY 10 4LF6 TESTREPN OK,NOTOPEN 5 4LYQ XOPEN 21 4MDB GETDIR 2 [NOTICE ERASEES,POSITION ON INDEX REC 18 4MY2 [TRAPS RECORD IF FOUND 9 4NCL ... VFREEW FILE,ENT 9 4NX= TESTREP OK,XSTEP 7 4PWG STEPAGAIN 9 4QB6 BRN XSTEP1 4 4QTQ XFIN 15 4R*B CLOSETOP [CLOSE MASTER 5 4RT2 XEND1 21 4S#L MHUNT 2,ADATA,CREADL [SET UP NAME :- FILESTORE IN CREADL 20 4SS= LDN 1 XFIL(1) [THEN MOVE TO GMON/ASET AS FIRST 17 4T?W [PARAMETER FOR OUTPUT 8 4TRG LDN 0 12 8 4W?6 STO 0 A1(2) 9 4WQQ ADN 2 CPDATA 7 4X=B MOVE 1 3 9 4XQ2 SBN 2 CPDATA 13 4Y9L OUTPARAM A1(2),CPDATA,ADATA,CREADL 8 4YP= LDX 2 FX2 11 4_8W OUTPACK AWORK3(2),1,NUMA 11 4_NG OUTPACK AWORK4(2),1,NUMB 16 5286 MONOUT FCOMPRESS [OUTPUT MESSAGE 10 528? ... MHUNT 2,FLIB,FLINC 8 528D ... LDX 5 A1(2) 7 528K ... SBN 5 1 15 528Q ... BZE 5 XEND2 [ NO MESSAGE 7 528X ... OUTINCS 10 5294 ... INFORM 0,BSSPECRES,1 10 5299 ... INFORM 0,FCCAOINF,1 10 529B ...XEND2 MFREE FLIB,FLINC 10 529H ... FSHCODE A,XFSHAABAND 4 52=Y ...( 20 52#* ... TESTBRKI XABAND [J IF BREAKIN BIT SET ELSE ENDCOM 20 52*Q ... TRANSFIN ,,ALIEN [RETURN IF CAME FROM MACHINE B 6 52C7 ... ENDCOM 5 52DJ ...XABAND 18 52F_ ... LDN 4 1 [OFFSET OF 1 - ABANDCOM 20 52HB ... TRANSFIN ,,ALIEN [RETURN IF CAME FROM MACHINE B 6 52JR ...XFSHAABAND 4 52L8 ...) 7 52MQ ... ABANDCOM 7 555W # SUBROUTINES 5 556D ...OUTNAME 8 5572 ... SBX 7 FX1 10 557J ... MHUNT 1,FILE,FABSNB 8 5586 ... LDX 3 A1(1) 8 558N ... GETCORE 3,1 10 559= ... MHUNT 1,FILE,FABSNB 8 559S ... FINDCORE 2 10 55=B ... NAME 2,FILE,FABSNB 8 55=Y ... LDN 1 A1(1) 8 55?G ... LDN 2 A1(2) 8 55#4 ... MOVE 1 0(3) 11 55#L ... MHUNT 1,ADATA,CREADL 8 55*8 ... SMO FX1 8 55*Q ... LDX 0 SPACE 9 55B# ... STO 0 A1+1(1) 9 55BW ... LDN 5 A1+1(1) 9 55CD ... LDN 6 A1+2(1) 7 55D2 ... MOVE 5 9 21 55DJ ... UNNORM FULL [SET NAME OF FILE UP IN CREADL BLOCK 10 55F6 ... MFREE FILE,FABSNB 21 55FN ... MHUNT 1,ADATA,CREADL [AND MOVE INTO GMON/ASET AS 8 55G= ... LDN 0 26 8 55GS ... STO 0 A1(1) 21 55HB ... OUTPARAM A1(1),CPDATA,ADATA,CREADL [FIRST PARAMETER FOR OUTPUT 8 55HY ... ADX 7 FX1 7 55JG ... EXIT 7 0 5 55KG XPOINT 10 5656 MHUNT 2,FILE,FABSNB 7 56JQ EXIT 1 0 5 574B TESTALT 9 57J2 CALL 1 XPOINT 8 583L LDX 5 A1(2) 8 58H= LDX 4 A1(2) 7 592W ADN 5 6 11 59GG BXL 4 ALOGLEN(2),RHEAD 8 5=26 SBX 6 FX1 10 5=FQ ALTLENG 2,5,XPOINT 8 5?F2 ADX 6 FX1 9 5?YL CALL 1 XPOINT 5 5#D= RHEAD 8 5#XW STO 5 A1(2) 7 5*CG EXIT 6 0 4 5*X6 # 5 5BBQ SFUBFREE 16 5BWB TOPFCB 1 [X1->FCB,X2->FCA. 8 5CB2 LDN 0 FBLKS 19 5CTL BXE 0 FREADBLOCK(2),(6) [J IF FIRST BLOCK OF FILE. 10 5D*= LDX 5 FREADBLOCK(2) 7 5DSW SBN 5 1 7 5F#G SMO 5 21 5FS6 LDX 4 0(1) [PICK UP BLK NO OF PREVIOUS BLOCK. 8 5G?Q PSTAC 2,2 19 5GRB SFUB 2,4,1,(6) [J IF NO USAGE BLOCK PRESENT. 10 5H?2 LDEX 0 ARINGNO(2) 7 5HQL SBN 0 1 9 5J== BZE 0 ONEFCA 7 5JPW ADN 0 1 8 5K9G ADN 2 A1 6 5KP6 STACKLOOK 20 5L8Q BXE 5 FREADBLOCK(2),(6) [J IF SOMEONE ELSE USING BLOCK. 9 5LNB ADN 2 FELLEN 9 5M82 BCT 0 STACKLOOK 5 5MML ONEFCA 9 5N7= LDX 0 ATYPE(1) 8 5NLW SRL 0 12 9 5P6G SBN 0 FILE+FUWB 9 5PL6 BZE 0 UWRITE 19 5Q5Q FREECORE 1 [FREE BLOCK IF IT'S A FURB. 7 5QKB EXIT 6 0 5 5R52 UWRITE 8 5RJL SBX 6 FX1 8 5S4= CHAIN 1,FX2 7 5SHW LDN 4 0 17 5T3G FILEAUTW 4,FAIL+FREE,,5 [WRITE AWAY BLOCK. 8 5TH6 ADX 6 FX1 7 5W2Q EXIT 6 0 7 5WGB FILETRAN 4 5WQ8 ...) 11 5X22 MENDAREA 50,K99COMPRESS 4 5XFL #END 6 ____ ...236334260002