12 22FL ... SEG MTCHECK,860,FILE,OLP 21 22_= ... SEGENTRY K1MTCHECK,MTCHECK [MTCHECK MACRO ENTRY WITH %D GIVEN 19 23DW ... SEGENTRY K11MTCHECK,MTCHECKNOD[MTCHECK MACRO WITHOUT %D 20 23YG ... SEGENTRY K2MTCHECK,MTREAD [ENTRY FROM MTOBJ WHEN READING 20 24D6 ... SEGENTRY K3MTCHECK,MTWRITE [ENTRY FROM MTOBJ WHEN WRITING 20 24XQ ... SEGENTRY K4MTCHECK,ZCONFURWB [ENTRY FROM EDOBJ FOR CONFURWB 4 25CB ...[ 21 25X2 ...[ MACRO MTCHECK CHECKS A GSBS-SIZED BLOCK PURPORTING TO CONTAIN FOUR 20 26BL ...[ CONSECUTIVE MT INDEX FILE BLOCKLETS. IT IS USED BY DUMPER,COPY, 9 26W= ...[ RETRIEVAL SYSTEM ETC. 4 27*W ...[ 17 27TG ...[ THE K2MTCHECK ENTRY IS USED TO CHECK AFTER A FILEREAD 4 28*6 ...[ 19 28SQ ...[ THE K3 & K4 ENTRY POINTS ARE USED TO CHECK BEFORE A FILEAUTW 4 29#B ...[ 4 29S2 ...[ 16 2=?L ...[ FOR FORMAT OF MT FILESTORE FILES SEE PRM 5.5.3.2 4 2=R= ...[ 21 2?=W ...[ THE BULK FILE ADDRESS IS CHECKED APPROXIMATELY IF THE NUMBER OF BULK 15 2?QG ...[ BLOCKS IS NOT KNOWN (E.G. *FH BLOCK WRITE). 4 2#=6 ...[ 21 2#PQ ...[ THERE IS ONLY A SIMPLE CHECK THAT HDDR IS THE FIRST RECORD IN THE FILE 20 2*9B ...[ IF PRESENT AND NO CHECK THAT QUAL FOLLOWS MARK. HOWEVER FAILURE OF 16 2*P2 ...[ THESE CONDITIONS WILL NOT BREAK MTOBJ OR MATALO. 4 2B8L ...[ 8 2BN= ...TEND 4HEND 9 2C7W ...TMARK 4HMARK 9 2CMG ...TQUAL 4HQUAL 9 2D76 ...THDDR 4HHDDR 4 2DLQ ...[ 4 2F6B ...[ 14 2FL2 ...MTREAD [DEPTH ZERO; CHECK FIRST BREA 4 2G5L ...[ 14 2GK= ... STOZ AWORK4(2) [ DEPTH 18 2H4W ... MHUNTW 3,BSTB,BREAD [X3->BLOCK TO BE CHECKED 16 2HJG ... LDCT 7 #200 [ZFILEREAD SWITCH 9 2J46 ... BRN ZMERGE 4 2JHQ ...[ 4 2K3B ...[ 20 2KH2 ...MTWRITE [DEPTH ZERO; BLOCK WAS NEXT TO ACTIVITY BEFORE DOWN 4 2L2L ...[ 14 2LG= ... STOZ AWORK4(2) [ DEPTH 4 2L_W ...[ 15 2MFG ...ZCONFURWB [DEPTH [AWORK4]; ELSE AS ABOVE 4 2M_6 ...[ 16 2NDQ ... LDX 3 FPTR(2) [X3->NEXT BLOCK 9 2NYB ... LDCT 0 BLINK/8 9 2PD2 ... ERX 0 ATYPE(3) 20 2PXL ... BNZ 0 NOBLINK [J IF BLINK NOT CREATED BY DOWN 18 2QC= ... LDX 3 FPTR(3) [X3->BLOCK NEXT TO BLINK 5 2QWW ...NOBLINK 16 2RBG ... LDCT 7 #400 [ZFILEWRIT SWITCH 3 2RW6 ... 4 2S*Q ...[ 5 2STB ...ZMERGE 16 32NW ... STO 7 AWORK1(2) [KEEP SWITCHES 21 32Q4 ... LDX 6 A1(3) [PICK UP CURRENT BULK FILE ADDRESS 18 32R= ... CHAIN 3,2 [CHAIN NEXT TO ACTIVITY 16 32SD ... LDX 3 AWORK4(2) [DEPTH FOR FFCA 14 32TL ... FFCA [X2->FCA 15 32WS ... PSTAC 2,2 [X2->FSTACK 14 32Y2 ... BFCBX 2,2 [X2->FCB 10 32_8 ... NGX 5 BULKMOD(2) 18 332B ... BPZ 5 WRONG [J IF BULKMOD NEGATIVE 9 333J ... ADX 5 FBLMOD(2) 19 334Q ... SBN 5 FBLKS-A1 [LEAVES NO. OF BULK BLOCKS 8 335Y ... LDX 2 FX2 18 3376 ... LDX 3 FPTR(2) [RECOVER BLOCK POINTER 16 338G ... STO 5 AWORK3(2) [FOR FINAL CHECK 8 33N6 ... LDX 1 FX1 9 347Q ... BRN SUPPLIED 4 34MB ...[ 4 3572 ...[ 14 35LL ...MTCHECK [MTCHECK MACRO ENTRY POINT 4 366= ...[ 19 36KW ... LDX 5 ACOMMUNE3(2) [NO. OF BULK BLOCKS IN FILE 9 375G ... STO 5 AWORK3(2) 10 37K6 ... BRN MTCHECKMERG 4 384Q ...[ 18 38JB ...MTCHECKNOD [MTCHECK MACRO ENTRY POINT IF %D NOT GIVEN 4 3942 ...[ 17 39HL ... LDN 5 FILESIZE-1 [USE MAXIMUM POSSIBLE 17 3=3= ... NGS 5 AWORK3(2) [I.E. NO FINAL CHECK 6 3=GW ...MTCHECKMERG 17 3?2G ... STOZ AWORK1(2) [SET ZERO FOR MTCHECK 19 3?G6 ... LDX 6 ACOMMUNE2(2) [CURRENT BULK FILE ADDRESS 19 3?_Q ... LDX 0 ACOMMUNE1(2) [ATYPE OF BLOCK TO BE CHECKED 15 3#FB ... FIND 3,0 [X3->BLOCK 5 3#_2 ...SUPPLIED 18 3*DL ... BNG 5 WRONG [J IF BULK SIZE NEGATIVE 18 3*Y= ... SLL 5 GSBSLOG [CONVERT BLOCKS TO WORDS 18 3BCW ... ADN 5 1 [ADJUST FOR TESTING EASE 10 3BXG ... LDX 7 ALOGLEN(3) 19 3CC6 ... SRL 7 GSBSLOG-BLS [CONVERT LENGTH TO BLOCKLETS 6 3CWQ ...NEXTBLKLET 21 3DBB ... NGN 4 1 [INITIALISE INDEX POINTER REL TO A1 20 3DW2 ... BRN MTBULKREC [1ST WORD OF BLOCKLET LOOKS LIKE 18 3F*L ...[ 2ND WORD OF DATA RECORD. 5 3FT= ...NEXTREC 7 3G#W ... SMO 4 17 3GSG ... LDX 0 A1(3) [NEXT RECORD HEADER 17 3H#6 ... BZE 0 NDBLKLET [J IF END OF BLOCKLET 17 3HRQ ... BNG 0 NOTBULK [J UNLESS BULK RECORD 18 3J?B ... ADS 0 6 [UPDATE BULK FILE ADDRESS 6 3JR2 ...MTBULKREC 7 3K=L ... SMO 4 19 3KQ= ... LDX 0 A1+1(3) [GET BULK FILE NEXT ADDRESS 20 3L9W ... BXU 0 6,WRONG [J IF BULK FILE ADDRESS INCORRECT 21 3LPG ... BXGE 0 5,WRONG [J IF BULK FILE ADDRESS OUT OF RANGE 18 3M96 ... ADN 4 AMTDATA [INCREMENT INDEX POINTER 6 3MNQ ...OVERBLKLET 20 3N8B ... BXL 4 BSBS4,NEXTREC [J UNLESS OVER END OF BLOCKLET 5 3NN2 ...WRONG 8 3NXS ... LDX 2 FX2 9 3P7L ... LDX 0 AWORK1(2) 18 3PM= ... BNG 0 ZGEOERR [J TO GEOERR IF FILEWRIT 17 3Q6W ... BZE 0 NOREPORT [J IF MTCHECK MACRO 19 3QLG ... CORRUPTB BACK1(3),BACK2(3) [REPORT ERROR & ABANDON FILE 5 3R66 ...NOREPORT 9 3RKQ ... SETREP2 CORRUPT 9 3S5B ... LDX 0 AWORK1(2) 18 3SK2 ... BNZ 0 UP [J UNLESS MTCHECK MACRO 7 3T4L ... UPPLUS 1 4 3TJ= ...[ 5 3W3W ...NOTBULK 19 3WHG ... BXU 0 TEND(1),NOTEND [J UNLESS END OF INDEX FOUND 9 3X36 ... KEEPREP 7,ENDFILE 19 3XGQ ... LDX 5 AWORK3(2) [SIZE OF BULK FILE IN BLKS 16 3Y2B ... BNG 5 RETURN [J IF NOT KNOWN 14 3YG2 ... ADN 6 GSBS-1 [ROUND UP 17 3Y_L ... SRL 6 GSBSLOG [CONVERT TO BLOCKS 17 3_F= ... BXU 5 6,WRONG [J IF INDEX DISAGREES 9 3_YW ... BRN RETURN 4 42DG ...[ 5 42Y6 ...NOTEND 17 43CQ ... BXU 0 TMARK(1),NOTMARK [J UNLESS TAPEMARK 18 43XB ... ADN 4 AMTMARK [INCREMENT INDEX POINTER 10 44C2 ... BRN OVERBLKLET 4 44WL ...[ 5 45B= ...NOTMARK 17 45TW ... BXU 0 TQUAL(1),NOTQUAL [J UNLESS QUALIFIER 5 46*G ...THEADER 7 46T6 ... SMO 4 18 47#Q ... BXU 0 A1+AMTQUAL-1(3),WRONG [J IF ENDS DON'T MATCH 18 47SB ... ADN 4 AMTQUAL [INCREMENT INDEX POINTER 10 48#2 ... BRN OVERBLKLET 4 48RL ...[ 5 49?= ...NOTQUAL 16 49QW ... BXU 0 THDDR(1),WRONG [J UNLESS HEADER 19 4==G ... BNZ 6 WRONG [J IF HDDR AFTER BULK DATA 9 4=Q6 ... BRN THEADER 4 4?9Q ...[ 5 4?PB ...NDBLKLET 9 4#92 ... SBN 4 GSBS4-1 18 4#NL ... ADX 4 A1+GSBS4-1(3) [LAST WORD OF BLOCKLET 19 4*8= ... BNZ 4 WRONG [J IF BACKWARD POINTER WRONG 21 4*MW ... ADN 3 GSBS4 [MOVE BLOCK POINTER TO NEXT BLOCKLET 18 4B7G ... BCT 7 NEXTBLKLET [START AGAIN IF ANY LEFT 8 4BM6 ... KEEPREP 7,OK 5 4C6Q ...RETURN 18 4CLB ... SETREP2 OK [REPLY (UNLESS MTCHECK) 9 4D62 ... LDX 0 AWORK1(2) 20 4DKL ... BNZ 0 UP [J TO OMIT REPLY UNLESS MTCHECK 21 4F5= ... STO 6 ACOMMUNE1(2) [SET UPDATED BULK FILE ADDRESS REPLY 7 4FJW ... PUTREP2 7 7 4G4G ... UPPLUS 1 5 4GJ6 ...UP UP 4 4H3Q ...[ 5 4HHB ...ZGEOERR 21 4J32 ... GEOERR 1,WRITE! [FORMAT ERROR IN MT FILE INDEX BLOCK 4 4JGL ...[ 4 4K2= ...#END 6 ____ ...523361560006