8 22FL ...#OPT K0PMJOURNL=0 12 22_= ...#LIS K0PMJOURNL>K0POST>K0ALLGEO 16 23DW ...#SEG PMJOURNL860 [VIJAY KUMAR 4 23YG # 18 24=X ...# THIS SEGMENT OBTAINS A SWAP FILE AND SAVES 21 24K# ...# ON IT THE FCB, FSTACK AND FUWB FOR JOURNAL SJFILE AND 21 24XP ...# ALSO GMON-JRNAL BLOCKS. IT PASSES THE END ADDRESS OF 20 25=6 ...# THIS SAVED AREA TO THE SEGMENT PMCRABS FROM WHERE ON 16 25JH ...# PMCRABS WRITES THE VARIABLE STORE. 4 25X2 # 8 26BL 8HPMJOURNL 9 26W= # ENTRY POINT TABLE 4 27*W # 13 27TG SEGENTRY K1PMJOURNL,XK1PMJOURNL 4 285# ...# 21 28*6 XSJEND +0 [POINTER TO INDICATE THE END OF INFORMATION TRANS 14 28SQ [TO THE STORE BUFFER 21 29#B XFILEND +0 [POINTER TO INDICATE THE END OF TRANSFER OF BLOCK 18 29S2 [FROM FILE CHAIN TO THE STORE BUFFER 15 2=?L XPMJRNLEND +ZEND [END OF SEGMENT PMJOURNL 15 2=CH ...XACC2 +0 [THIS IS USED TO SAVE X2 13 2=HD ...XACC7 +0 [USED TO SAVE X7 20 2=M* ...XASWAPID +ASWAPID [ASWAPID INDICATES VERSIKON OF GEORGE IN USE 21 2=_5 ...XBOUND 4HPMSJ [HEADING TO PUT IN THE BEGINNING AND END OF THE T 18 2?=W [INFORMATION SAVED ON THE SWAP FILE 8 2??C ...XPMSQ 4HPMSQ 16 2??_ ...XBACT +0 [HOLDS BASE OF ACTIVITY CHAIN 19 2?*4 ...XBACK2 +0 [HOLDS BLOCK NUMBER TO BE WRITTEN TO BS 16 2?B7 ...XBASE +0 [HOLDS BASE OF THE FILE CHAIN 17 2?C= ...XBINDEX +BINDEX [HOLDS BASE OF THE INDEX CHAIN 18 2?D* ...XBLKEND +0 [IF =1 PART OF A BLOCK STILL REMAINS 17 2?FD ... [TO BE TRANSFERED TO STORE BUFFER 18 2?GH ...XBLKNUM +0 [HOLDS NUMBER OF BLOCKS IN BLOCK LIST 16 2?HL ...XBSWORDS +0 [HOLDS NUMBER OF WORDS TO BE 15 2?JP ... [TRANSFERED TO SWAP FILE 18 2?KS ...XBUFFULL +0 [XBUFFULL=1 WHEN STORE BUFFER IS FULL 19 2?LX ...XBUFSIZE +0 [SIZE OF STORE BUFFER IN MULTIPLE OF 128 12 2?N2 ...XCPPTR +0 [HOLDS CPPTR 15 2?P5 ...XDISPLMT +0 [DISPLACEMENT IN ALFTABL 21 2?QG XBUFPTR +ZEND+1 [POINTS TO THE LOCATION IN STORE WHERE THE BLOCKS 12 2#=6 [TO BE MOVED 21 2#FY ...XENTRY +0 [HOLDS THE ENTRY OF A SWAP FILE GOT FROM ALFTABLE 17 2#PQ XFILCHAIN +0 [HOLDS START OF THE FILE CHAIN 16 2*4F ...XBWRITE [VALUE OF BSTB/BWRITE BLOCK 10 2*C8 ...#HAL +BSTB+BWRITE,0 14 2*PX ...XFCB [VALUE OF FILE/FCB 9 2B4L ...#HAL +FILE+FCB,0 12 2BC* ...XFCBASE +0 [BASE OF FCB 13 2BQ4 ...XFCBRING +0 [FCB RING ELEMENT 16 2C4R ...XFSTACK [VALUE OF FILE/FSTACK BLOCK 10 2CCG ...#HAL +FILE+FSTACK,0 15 2CQ9 ...XFUWB [VALUE OF FILE/FUWB BLOCK 9 2D4Y ...#HAL +FILE+FUWB,0 16 2DCM ...XGMONJR [ATYPE OF GMON/JRNAL BLOCK 9 2DQB ...#HAL +GMON+JRNAL,0 9 2F55 ...XFNAME 12HJOURNAL 8 2FCS ... 12HSJFILE 14 2FQH ...X512 +512 [USED BY MOVX MACRO 7 2G5L X128 +128 7 2GK= XFOUR +4 7 2H4W ZERO +0 19 2H#N ...XBSONETRAN +0 [IF =1,ONE BS TRANSFER HAS TAKEN PLACE 16 2HJG XALFTABL +0 [HOLDS THE BASE OF ALFTABL 16 2J46 XBUFBEGIN +0 [START OF THE STORE BUFFER 14 2JHQ XBUFSTART +0 [HOLDS XBUFBEGIN+1 7 2JJT ...XJBASE +0 20 2JKY ...XJSWAPDR +0 [SAVES THE VALUE OF PREVIOUS DEVICE RECORD 21 2JM3 ...XJSWAPFD +0 [SAVES THE VALUE OF PREVIOUS DISPT. OF SWAPFILE E 7 2JN6 ...XLINK1 +0 7 2JP9 ...XLINK2 +0 21 2JQ# ...TRANSIZE +0 [HOLDS THE NUMBER OF WORDS TO BE TRANSFERED TO SW 19 2JRC ...NEXTADDR +0 [HOLDS ADDRESS OF REMAINING PART OF THE 15 2JSG ... [BLOCK TO BE TRANSFERED 8 2JTK ...MASK1 #77777600 8 2JWN ...MASK2 #17770000 8 2JXR ...MASK3 #77770000 8 2JYW ...MASK4 #77000000 7 2J__ ...SIXTY +60 18 2K34 ...SBACKPR +0 [ADDRESS OF CURRENT BLOCK ON CHAIN 19 2K47 ...SJBASE +0 [ADDRESS OF THE BASE OF THE JOURNAL CHAIN 19 2K5= ...SAVEPTR +0 [HOLDS THE PREVIOUS STORE BUFFER POINTER 19 2K6* ...SAVESIZE +0 [HOLDS THE PREVIOUS SIZE OF STORE BUFFER 20 2K7D ...SAVEIT +0 [HOLDS THE ORIGINAL SIZE OF THE STORE BUFFER 7 2K8H ...SAVEX2 +0 4 2K9L ...# 18 2K=P ...# THE FOLLOWING AREA IS USED TO STORE THE DEVICE 18 2K?S ...# LIST OF THE DEVICE HOLDING THE SWAP FILE WHICH 16 2K#X ...# WILL BE USED BY THIS SEGMENT (PMJOURNL) 4 2KB2 ...# 6 2KC5 ...XDEVICELIST 19 2KD8 ...#GAP K53-K50 [K53=31,K50=0 (START OF THE DEVICE LIST 7 2KF? ... +0 4 2KH2 # 21 2L2L # ROUTINE TO GET ADDRESS OF NEXT BLOCK ON CHAIN AND VALIDATE IT 10 2LG= # FORWARD POINTER 4 2L_W # 10 2MFG # ENTRY X0=LINK 16 2M_6 # SBACKPR=ADDRESS OF CURRENT BLOCK 4 2NDQ # 17 2NYB # EXIT 0 1 IF POINTER OF NEXT BLOCK OK 20 2PD2 ...# X2 AND SBACKPR = ADDRESS OF NEXT BLOCK 16 2PXL # EXIT 0 0 IF CHAIN BREAK DETECTED 4 2QC= # 5 2QWW SEARCH 10 2RBG SMO SBACKPR(1) 21 2RW6 LDX 2 FPTR [LOAD ADDRESS OF NEXT BLOCK TO VAL 9 2S5Y ... LDX 3 BPTR(2) 10 2S*Q ... TXU 3 SBACKPR(1) 8 2SKJ ... BCS S1 9 2STB LDX 3 FPTR(2) 18 2T*2 ... STO 2 SBACKPR(1) [STORE BLOCK ADDRESS 21 2TSL ... PMCORES 3,S1 [JUMP IF FORWARD POINTER INVALID 15 2W#= EXIT 0 1 [FPTR OK 16 2WRW S1 EXIT 0 0 [FPTR CORRUPT 4 2X?G # 4 329# ...# 4 329B ...# 11 329D ...# SUBROUTINE TRANACT 16 329G ...# THIS SUBROUTINE TRANSFERS REQUIRED BLOCKS 12 329J ...# FROM THE ACTIVITY CHAIN. 4 329L ...# 12 329N ...# ENTRY - NO CONDITIONS. 13 329Q ...# EXIT - X3,X4,X5 DESTROYED. 4 329S ...# 5 329W ...TRANACT 15 329Y ... STO 2 XACC2(1) [SAVE X2 20 32=2 ... LDN 2 BACT [BACT=BASE OF ACTIVITY CHAIN 9 32=4 ... STO 2 XBACT(1) 8 32=6 ... LDX 2 BACT 9 32=7 ... PMCORES 2,XBREAK 10 32=8 ... STO 2 SBACKPR(1) 5 32== ...TESTBLK 20 32=# ... TXU 2 XBACT(1) [IS IT END OF ACTIVITY CHAIN 17 32=B ... BCC YEXIT [IF YES THEN JUMP 9 32=D ... LDX 3 ATYPE(2) 9 32=G ... ANDX 3 MASK3(1) 21 32=J ... TXU 3 XBWRITE(1) [IS IT BSTB-BWRITE BLOCK:XBWRITE=# 19 32=L ... BCC XSKIP [IF BWRITE BLOCK THEN JUMP 21 32=N ... TXU 3 XFUWB(1) [OR IS IT FILE-FUWB BLOCK:XFUWB=#4 19 32=Q ... BCS NEXTACT [IF NONE OF THEM THEN JUMP 5 32=S ...XSKIP 21 32=W ... LDX 3 XFCBASE(1) [ELSE GET BASE OF LAST FCB TRANSFE 21 32=Y ... LDX 4 BSPRE(3) [GET THE RESIDENCE NUMBER FROM FCB 21 32?2 ... TXU 4 BACK1(2) [ARE BOTH RESIDENCE NUMBERS SAME 17 32?4 ... BCS NEXTACT [IF NOT THEN JUMP 9 32?6 ... LDX 4 BACK2(2) 21 32?8 ... STO 4 XBACK2(1) [STORE BLOCK NUMBER TO BE WRITTEN 9 32?= ... LDX 4 FBLMOD(3) 21 32?# ... ADN 4 A1 [X4=LAST BLOCK IN BLOCK LIST IN FC 8 32?B ... SBN 4 FBLKS 21 32?D ... STO 4 XBLKNUM(1) [STORE NUMBER OF BLOCKS IN BLOCK L 5 32?G ...NEXTNUM 21 32?J ... LDX 5 FBLKS(3) [GET NEXT BLOCK NUMBER FROM LAST F 21 32?L ... TXU 5 XBACK2(1) [IS IT EQUAL TO BLK NUMBER IN BSWR 17 32?N ... BCC SAVEBLK [IF YES THEN JUMP 7 32?Q ... ADN 3 1 21 32?S ... BCT 4 NEXTNUM [IF NOT ALL BLK NUMBERS TESTED THE 9 32?W ... BRN NEXTACT 5 32?Y ...SAVEBLK 9 32#2 ... CALL 0 TRANBLK 5 32#4 ...NEXTACT 9 32#6 ... CALL 0 SEARCH 21 32#8 ... BRN XBREAK [BREAK IN ACTIVITY CHAIN THEN JUMP 9 32#= ... BRN TESTBLK 5 32## ...YEXIT 9 32#B ... LDX 2 XACC2(1) 10 32#D ... STO 2 SBACKPR(1) 7 32#G ... EXIT 7 0 4 32#J ...# 11 32#L ...# SUBROUTINE XBSTRANS 17 32#N ...# THIS SUBROUTINE TRANSFERS THE CONTENTS OF THE 20 32#Q ...# STORE BUFFER TO THE SWAP FILE OBTAINED ON BACKING STORE 4 32#S ...# 11 32#W ...# ENTRY NO CONDITIONS 12 32#Y ...# EXIT X3,X4 ARE DESTROYED 4 32*2 ...# 5 32*4 ...XBSTRANS 9 32*6 ... STO 0 XLINK2(1) 9 32*8 ... STO 2 SAVEX2(1) 10 32*= ... LDX 4 XBUFBEGIN(1) 10 32*# ... SBS 4 XBUFPTR(1) 10 32*B ... LDX 3 XBUFPTR(1) 20 32*D ... ANDN 3 #177 [GET LEAST SINIFICANT 7 BITS 9 32*G ... BZE 3 MULTIPLE 9 32*J ... LDX 4 X128(1) 20 32*L ... SBX 4 3 [SUBTRACT THIS NUMBER FROM 128 20 32*N ... ADS 4 XBUFPTR(1) [AND ADD THE RESULT TO BUFFER 21 32*Q ... [POINTER TO MAKE IT MULTIPLE OF 12 5 32*S ...MULTIPLE 10 32*W ... LDX 4 XBUFPTR(1) 21 32*Y ... STO 4 XBSWORDS(1) [NUMBER OF WORDS TO BE TRANSFERED 4 32B2 ...# 17 32B4 ...# TRANSFER THE CONTENTS OF STORE BUFFER TO SWAP FILE 4 32B6 ...# 17 32B8 ... PMBSADD SWAP,1,XBSWORDS(1),XBUFBEGIN(1),ZERO(1) 4 32B= ...# 8 32B# ... LDX 1 FXPM1 10 32BB ... LDX 4 XBUFBEGIN(1) 18 32BD ... STO 4 XBUFPTR(1) [RESET BUFFER POINTER 9 32BG ... LDX 4 SAVEIT(1) 17 32BJ ... STO 4 XBUFSIZE(1) [RESET BUFFER SIZE 10 32BL ... LDX 4 XBSWORDS(1) 21 32BN ... ADS 4 ZERO(1) [SET POINTER FOR NEXT BS TRANSFER 9 32BQ ... LDX 3 JSWAPFD 20 32BS ... TXU 3 XJSWAPFD(1) [ARE TWO SWAP FILES UNEQUAL? 17 32BW ... BCS UNEQUAL [IF YES THEN JUMP 9 32BY ... LDX 4 ZERO(1) 9 32C2 ... SMO FXPMDR 21 32C4 ... STO 4 BEGINCRAB [AND STORE IT TO PASS THIS NUMBERT 5 32C6 ...UNEQUAL 9 32C8 ... LDX 4 XSJEND(1) 21 32C= ... BZE 4 XEXIT [JUMP IF TOTAL TRANSFER NOT FINISH 10 32C# ... LDX 2 XJSWAPFD(1) 9 32CB ... STO 2 JSWAPFD 10 32CD ... LDX 2 XJSWAPDR(1) 9 32CG ... STO 2 JSWAPDR 11 32CJ ... LDN 2 XDEVICELIST(1) 9 32CL ... LDX 3 XCPPTR(1) 21 32CN ... MOVE 2 K53-K50 [ELSE MOVE BACK THE DEVICE LIST 18 32CQ ... BRN (JPMSEG) [AND GO HOME TO RELAX 5 32CS ...XEXIT 9 32CW ... LDX 0 XLINK2(1) 9 32CY ... LDX 2 SAVEX2(1) 7 32D2 ... EXIT 0 0 4 32D4 ...# 11 32D6 ...# SUBROUTINE TRANBLK 19 32D8 ...# THIS SUBROUTINE TRANSFERES THE REQUIRED BLOCK TO THE 9 32D= ...# STORE BUFFER 4 32D# ...# 18 32DB ...# ENTRY X2 = BASE OF THE BLOCK TO BE TRANSFERED 17 32DD ...# EXIT X2 UNCHANGED. X7,X4,X3 DESTROYED 4 32DG ...# 5 32DJ ...TRANBLK 9 32DL ... STO 7 XACC7(1) 9 32DN ... STO 0 XLINK1(1) 9 32DQ ... LDX 4 ASIZE(2) 10 32DS ... STO 4 TRANSIZE(1) 6 32DW ...TRANSREST 21 32DY ... LDX 6 2 [X6=START ADDRESS OF THE TRANSFER 21 32F2 ... LDX 7 XBUFPTR(1) [X7=DESTINATION FOR TRANSFER-STORE 21 32F4 ... LDX 4 XBUFSIZE(1) [X4=AVAILABLE SIZE OF STORE BUFFER 21 32F6 ... BXGE 4 TRANSIZE(1),MOVEBLK [IF BUFFER SIZE>=ASIZE GOTO MOVBLK 21 32F8 ... MOVX XBUFSIZE(1) [ELSE MOVE THE AMOUNT OF WORDSFROM 21 32F= ... [BLOCK=SPACE AVAILABLE IN STORE BU 15 32F# ... LDX 2 SBACKPR(1) [RESET X2 7 32FB ... LDX 4 2 10 32FD ... ADX 4 XBUFSIZE(1) 21 32FG ... STO 4 NEXTADDR(1) [NEXT TRANSFER ADDRESS IN THE BLOC 9 32FJ ... LDX 4 ASIZE(2) 21 32FL ... SBX 4 XBUFSIZE(1) [REST OF THE BLOCK TO BE TRANSFERE 10 32FN ... STO 4 TRANSIZE(1) 10 32FQ ... LDX 4 XBUFSIZE(1) 18 32FS ... ADS 4 XBUFPTR(1) [UPDATE BUFFER POINTER 21 32FW ... CALL 0 XBSTRANS [CALL BACKING STORE TRANSFER ROUTI 7 32FY ... LDN 4 1 21 32G2 ... STO 4 XBSONETRAN(1) [AND SET THE BACKING STORE TRANSFE 9 32G4 ... LDX 4 SAVEIT(1) 19 32G6 ... STO 4 XBUFSIZE(1) [RESET STORE BUFFER SIZE 10 32G8 ... LDX 4 XPMJRNLEND(1) 20 32G= ... STO 4 XBUFPTR(1) [RESET STORE BUFFER POINTER 21 32G# ... LDX 2 NEXTADDR(1) [X2=NEXT TRANSFER ADDRESS IN THE B 9 32GB ... BRN TRANSREST 5 32GD ...MOVEBLK 20 32GG ... MOVX TRANSIZE(1) [MOVE BLOCK TO STORE BUFFER 15 32GJ ... LDX 2 SBACKPR(1) [RESET X2 10 32GL ... LDX 3 TRANSIZE(1) 19 32GN ... SBS 3 XBUFSIZE(1) [UPDATE STORE BUFFER SIZE 18 32GQ ... ADS 3 XBUFPTR(1) [UPDATE BUFFER POINTER 10 32GS ... LDX 3 XBUFPTR(1) 10 32GW ... LDX 4 XBUFBEGIN(1) 21 32GY ... SBX 3 4 [GET IN X3 TOTAL NO. OF WORDS TRAN 21 32H2 ... TXU 3 SAVEIT(1) [IS SIZE OF TRANSFER=BUFFER SIZE? 17 32H4 ... BCC XCALL [IF YES THEN JUMP 9 32H6 ... LDX 0 XLINK1(1) 9 32H8 ... LDX 7 XACC7(1) 16 32H= ... EXIT 0 0 [ELSE GET OUT 5 32H# ...XCALL 9 32HB ... CALL 0 XBSTRANS 7 32HD ... LDN 0 1 21 32HG ... STO 0 XBSONETRAN(1) [SET BACKING STORE TRANSFER INDICA 9 32HJ ... LDX 0 XLINK1(1) 9 32HL ... LDX 7 XACC7(1) 7 32HN ... EXIT 0 0 4 32NW # 15 338G # FOLLOWING MODULE IS TO FIND A SWAP FILE 4 33N6 # 6 347Q XK1PMJOURNL 8 34MB LDX 1 FXPM1 9 3572 ... LDX 2 BINDEX 18 35LL LDX 2 0(2) [LOAD BASE OF ALFTABL 17 35RS ... TXU 2 XBINDEX(1) [IF EQUAL THEN- 21 35_2 ... BCC (JPMSEG) [ALFTABLE HAS NOT BEEN SET UP SO I 18 366= STO 2 XALFTABL(1) [STORE BASE OF ALFTABL 18 36KW ... LDX 4 ALOGLEN(2) [LOAD LENGTH OF BLOCK 5 375G NEXTSWAP 9 37*# ... LDX 3 XFOUR(1) 7 37K6 ... ADN 3 2 21 37SY ... STO 3 XFOUR(1) [INITIAL DISPLACEMENT IN ALFTABL 18 384Q ... TXL 3 4 [COMPARE WITH THE SIZE 21 38#J ... BCC (JPMSEG) [RETURN TO IF NO SWAP FILE AVAILAB 21 38JB ... ADN 3 A1 [GET THE RIGHT DISPLACEMENT FOR TH 21 38S8 ... STO 3 XDISPLMT(1) [AND STORE THE ABSOLUTE DISPLACEME 10 3942 ... SMO XALFTABL(1) 20 39?S ... LDX 5 0(3) [GET THE CONTENTS OF THE ENTRY 20 39HL ... BNG 5 NEXTSWAP [NOT A SWAP FILE ENTRY SO JUMP 9 39RD ... STO 5 XENTRY(1) 21 3=3= ... BBUS 1,XENTRY(1),NEXTSWAP [TEST B1 OF THIS ENTRY OF ALFTABL. 9 3=?4 ... LDX 5 XENTRY(1) 21 3=GW ... ANDN 5 #7777 [EXTRACT THE DISPLACEMENT DIGITS 19 3=QN ... STO 5 XDISPLMT(1) [THE ENTRY AND STORE IT 19 3?2G ... ADN 5 A1 [ADD A1 FOR COMPARISION 21 3?=# ... LDX 3 JSWAPFD [JSWAPFD=DISPLACEMENT OF SWAPFILE 16 3?G6 ... STO 3 XJSWAPFD(1) [ SAVE JSWAPFD 20 3?PY ... STO 5 JSWAPFD [AND STORE RIGHT DISPLACEMENT 9 3?_Q ... LDX 5 XENTRY(1) 21 3#9J ... ANDX 5 MASK2(1) [GET THE UNIT NUMBER FROM THE SWAP 8 3#FB ... SRL 5 12 21 3#P8 ... FINDBSA ,5 [THIS MACRO GIVES A POINTER IN X2 8 3#_2 ... LDX 1 FXPM1 21 3*8S ... LDX 2 CPPTR(2) [GET THE POINTER TO THE DEVICE LIS 21 3*DL ... STO 2 XCPPTR(1) [FOR DEVICE HOLDING THE SWAP FILE 9 3*ND ... LDX 3 JSWAPDR 16 3*Y= ... STO 3 XJSWAPDR(1) [SAVE JSWAPDR 21 3B84 ... STO 2 JSWAPDR [STORE REQUIRED DEVICE RECORD POIN 11 3BCW ... LDN 3 XDEVICELIST(1) 18 3BMN ... MOVE 2 K53-K50 [SAVE THE DEVICE LIST 4 3BXG # 21 3CC6 # THE FOLLOWING CODING CONVERTS THE STORE BUFFER SIZE INTO A MULTIPL 4 3CWQ # 19 3DBB ... ADS 1 XPMJRNLEND(1) [END OF PMJOURNL SEGMENT 10 3DW2 ... LDX 2 XPMJRNLEND(1) 21 3G#W STO 2 XBUFPTR(1) [SET POINTER TO THE START OF STORE 9 3GSG ... LDX 3 ENDFIX 7 3H#6 SBX 3 2 21 3HHY ... ANDX 3 MASK1(1) [MAKE 7 LEAST SIG. BIT ZERO=MULTIP 9 3HRQ ... STO 3 SAVEIT(1) 10 3J3J ... STO 3 SAVESIZE(1) 7 3J?B ... SBN 3 4 10 3JH8 ... STO 3 XBUFSIZE(1) 10 3JR2 LDX 3 XBUFPTR(1) 17 3K=L STO 3 XBUFBEGIN(1) [START OF BUFFER 9 3KGD ... LDX 2 XBOUND(1) 21 3KQ= ... STO 2 0(3) [STORE 'PMSJ' INTO THE FIRST WORD 7 3L24 ... ADN 3 1 21 3L9W ... LDX 2 XASWAPID(1) [CONTENTS OF XASWAPID INDICATES VE 8 3LFN ... STO 2 0(3) 7 3LPG ... ADN 3 1 20 3LQK ... LDX 2 XPMSQ(1) [STORE 'PMSQ' IN THIRD WORD 17 3LRN ... STO 2 0(3) [OF STORE BUFFER 7 3LSR ... ADN 3 1 21 3LTW ... LDX 2 ERLSEQNO [PICK UP ERROR LOGGING SEQ. NO. 20 3LW_ ... STO 2 0(3) [AND STORE IN FOURTH WORD 7 3LY4 ... ADN 3 1 10 3L_# ... STO 3 SAVEPTR(1) 21 3M96 STO 3 XBUFPTR(1) [STORE CURRENT VALUE OF POINTER 10 3MNQ STO 3 XBUFSTART(1) 4 3N8B # 21 3NN2 # FOLLOWING CODING SCANNS THE FILE CHAIN FOR FCB,FSTACK AND FUWB BLO 4 3P7L # 8 3PFB ... LDN 2 BSJC 9 3PR6 ... STO 2 SJBASE(1) 8 3Q4W ... LDX 2 BSJC 9 3Q9Q ... PMCORES 2,XBREAK 9 3QBL ... STO 2 XJBASE(1) 19 3QNB ... LDN 2 BFILE [LOAD BASE OF FILE CHAIN 20 3R26 ... STO 2 XBASE(1) [SAVE THE BASE OF FILE CHAIN 8 3R?W ... LDX 2 BFILE 9 3RDS ... PMCORES 2,XBREAK 20 3RKQ STO 2 SBACKPR(1) [SAVE ADDRESS OF CURRENT BLOCK 5 3S5B ...NEXTBLK 20 3SK2 ... LDX 4 ATYPE(2) [ELSE GET THE ATYPE CONTENTS 21 3T4L ... ANDX 4 MASK3(1) [EXTRACT TYPE/SUBTYPE VALUE MASK3 19 3TJ= ... TXU 4 XFCB(1) [IS IT FCB-XFCB = #4401 17 3XGQ BCC TRANFCB [IF YES THEN JUMP 9 3Y2B ... TXU 2 XBASE(1) 21 3YG2 ... BCC XJRCHAIN [IF END OF FILE CHAIN THEN JUMP 21 3Y_L ... CALL 0 SEARCH [GET THE NEXT BLOCK IN FILE CHAIN 20 3_F= ... BRN XBREAK [IF BREAK IN CHAIN THEN JUMP 20 3_YW ... BRN NEXTBLK [ELSE JUMP TO TEST THE BLOCK 4 45B= # 20 45TW ...# THE FOLLOWING COADING SCANS THE JOURNAL CHAIN FOR GMON/JRNAL 4 46*G # 5 46MH ...XJRTEST 9 46_J ... LDX 2 XJBASE(1) 19 47?K ... TXU 2 SJBASE(1) [TEST IF END OF THE CHAIN 17 47KL ... BCS RESETX2 [IF NO THEN JUMP 10 47XM ... LDX 4 SAVEPTR(1) 10 489N ... STO 4 XBUFPTR(1) 10 48HP ... LDX 4 SAVESIZE(1) 10 48TQ ... STO 4 XBUFSIZE(1) 5 497R ...RESETX2 15 49FS ... LDX 2 XFCBASE(1) [RESET X2 9 49RT ... BRN NEXTFCB 5 4=5W ...XJRCHAIN 7 4=CX ... LDN 4 1 21 4=PY ... STO 4 XFILEND(1) [SET POINTER TO INDICATE END OF FI 5 4?3_ ...XJRNLBLK 9 4?B2 ... LDX 2 XJBASE(1) 10 4?N3 ... STO 2 SBACKPR(1) 5 4#24 ...XGMONEND 20 4##5 ... TXU 2 SJBASE(1) [TEST IF END OF JOURNAL CHAIN 17 4#L6 ... BCC XPMSJ [IF YES THEN JUMP 20 4#Y7 ... LDX 4 ATYPE(2) [ELSE GET THE ATYPE CONTENTS 9 4*=8 ... ANDX 4 MASK3(1) 21 4*J9 ... TXU 4 XGMONJR(1) [IS IT GMON/JRNAL BLOCK-XGMONJR = 17 4*W= ... BCS NEXTGMON [IF NOT THEN JUMP 19 4B8? ... CALL 0 TRANBLK [ELSE TRANSFER THE BLOCK 5 4BG# ...NEXTGMON 21 4BS* ... CALL 0 SEARCH [GET THE NEXT BLOCK IN THE CHAIN 19 4C6Q BRN XBREAK [IF CHAIN BREAK THEN JUMP 9 4CLB ... BRN XGMONEND 4 4D62 # 21 4DKL # THE FOLLOWING CODING TRANSFER THE REQUIRED BLOCKS TO THE END OF TH 4 4F5= # 5 4FJW TRANFCB 21 4G4G ... JBC NEXTFCB,2,BFREV [TEST BFREV BIT OF FCB. IF UNSET J 20 4GJ6 ... LDX 3 FUSE1(2) [IF SET THEN LOAD USER NAME 9 4HHB LDX 4 FUSE2(2) 9 4J32 ... LDX 5 FUSE3(2) 17 4JGL ... TXU 3 XFNAME(1) [COMPARE USER NAME 10 4K2= ... TXU 4 XFNAME+1(1) 10 4KFW ... TXU 5 XFNAME+2(1) 19 4K_G BCS NEXTFCB [IF NOT JOURNAL THEN JUMP 18 4LF6 LDX 3 FLOC1(2) [ELSE LOAD FILE NAME 9 4LYQ LDX 4 FLOC2(2) 9 4MDB ... LDX 5 FLOC3(2) 17 4MY2 ... TXU 3 XFNAME+3(1) [COMPARE FILE NAME 10 4NCL ... TXU 4 XFNAME+4(1) 10 4NX= ... TXU 5 XFNAME+5(1) 19 4PBW BCS NEXTFCB [IF NOT SJFILE THEN JUMP 20 4PLX ... CALL 0 TRANBLK [CALL TRANBLK TO TRANSFER FCB 17 4PWY ... CALL 0 SEARCH [GET FSTACK BLOCK 19 4Q6_ ... BRN XBREAK [IF CHAIN BREAK THEN JUMP 20 4QC2 ... CALL 0 TRANBLK [ELSE TRANSFER FSTACK BLOCK 9 4QM3 ... CALL 7 TRANACT 17 4QX4 ... CALL 0 SEARCH [GET NEXT BLOCK 20 4R75 ... BRN XBREAK [IF BREAK IN CHAIN THEN JUMP 9 4RC6 ... LDX 4 ATYPE(2) 21 4RM7 ... ANDX 4 MASK3(1) [GET TYPE-SUBTYPE VALUE MASK3 = #7 21 4RX8 ... TXU 4 XFCB(1) [IS IT A FCB BLOCK? XFCB = #4401 9 4S79 ... BCC XJRTEST 20 4SC= ... TXU 2 XBASE(1) [OR IS IT END OF FILE CHAIN? 21 4SM? ... BCC XJRTEST [IF YES THEN GOTO TEST JOURNAL CHA 5 4SX# ...MOVEIT 20 4T7* ... CALL 0 TRANBLK [ELSE TRANSFER THE BLOCK(FUWB) 17 4TCB ... CALL 0 SEARCH [GET NEXT BLOCK 9 4TMC ... BRN XBREAK 9 4TXD ... LDX 4 ATYPE(2) 9 4W7F ... ANDX 4 MASK3(1) 18 4WCG ... TXU 4 XFCB(1) [IS IT AN FCB BLOCK 17 4WMH ... BCC SAVEPOINTER [IF YES THEN JUMP 21 4WXJ ... TXU 2 XBASE(1) [OR IS IT THE END OF FILE CHAIN? 17 4X7K ... BCC XJRCHAIN [IF YES THEN JUMP 9 4XCL ... BRN MOVEIT 6 4XMM ...SAVEPOINTER 10 4XXN ... LDX 4 XBUFPTR(1) 10 4Y7P ... STO 4 SAVEPTR(1) 10 4YCQ ... LDX 4 XBUFSIZE(1) 10 4YMR ... STO 4 SAVESIZE(1) 10 4YXS ... STO 2 XFCBASE(1) 9 4_7T ... BRN TRANFCB 4 4_CW ...# 19 4_NG # THE FOLLOWING COADING GETS THE NEXT FCB ON THE FILE CHAIN 4 5286 # 5 52MQ NEXTFCB 9 537B ... CALL 0 SEARCH 9 53M2 ... BRN XBREAK 15 555W ... LDX 4 BPTR(2) [LOAD BPTR 17 55KG ... TXU 4 XBASE(1) [IS BPTR = BFILE? 17 56JQ BCC XJRCHAIN [IF YES THEN JUMP 9 574B ... LDX 4 ATYPE(2) 21 57J2 ... ANDX 4 MASK3(1) [GET TYPE/SUBTYPE VALUE OF THE BLO 21 583L ... TXU 4 XFCB(1) [IS IT FCB BLOCK? (XFCB = #4401) 17 58H= ... BCS NEXTFCB [IF NOT THEN JUMP 10 592W ... STO 2 XFCBASE(1) 10 5=FQ STO 2 SBACKPR(1) 9 5=_B BRN TRANFCB 4 5?F2 # 21 5?YL # THE FOLLOWING CODING STORES 'PMSJ' AT THE END OF THE TOTAL TRANSFE 4 5#D= # 5 5#XW XPMSJ 9 5*5H ... LDX 2 XBOUND(1) 10 5*?8 ... LDX 3 XBUFPTR(1) 10 5*DT ... LDX 4 XBUFSTART(1) 21 5*LG ... TXU 3 4 [IS ANY WORD (XBUFPTR=XBUFSTART? 21 5*S7 ... [HAS BEEN TRANSFERED TO THE STORE 17 5*_S ... BCS MARKER [IF YES THEN JUMP 10 5B7F ... LDX 5 XBSONETRAN(1) 21 5B*6 ... BZE 5 PTRSET [ELSE IF XBSONETRAN=0 THEN JUMP (N 5 5BGR ...MARKER 8 5BND ... STO 2 0(3) 7 5BWB LDN 3 1 10 5C68 ... ADS 3 XBUFPTR(1) 20 5CB2 STO 3 XSJEND(1) [SET END OF TRANSFER INDICATOR 9 5CQ= ... CALL 0 XBSTRANS 9 5D9W ... BRN SETDLPTRS 5 5GD2 ...XBREAK 5 5GS= ...XRGBREAK 10 5H8G ... LDX 4 XBSONETRAN(1) 20 5HJQ ... BZE 4 PTRSET [IF NO BS TRANSFER THEN JUMP 21 5H_2 ... STOZ ZERO(1) [SET BACKING STORE ADDRESS TO OVER 10 5J*= ... LDX 3 XPMJRNLEND(1) 8 5JPG ... STOZ 0(3) 7 5K5Q ... LDN 4 1 10 5KG2 ... STO 4 XBSWORDS(1) 4 5KW= ...# 19 5L=G ...# IF THERE HAD BEEN A BS TRANSFER THE FOLLOWING MACRO OVERWRITES 12 5LLQ ...# THE LABLE 'PMSJ' ON THE SWAP FILE 4 5M32 ...# 17 5MC= ... PMBSADD SWAP,1,XBSWORDS(1),XPMJRNLEND(1),ZERO(1) 21 5MDF ... BRN SETDLPTRS [JUMP TO RESET THE DEVICE LIST POI 4 5MFN ...# 15 5MGX ...# THE FOLLOWING MACRO WILL FIRST STORE ^PMSJ^ 18 5MHP ...# VERSION OF GEORGE IDENTIFIER(CONTENTS OF ASWAPID),'PMSQ', 13 5MJH ...# ERROR LOGGING SEQUENCE NO. AND 'PMSJ' 18 5MK* ...# IN THE STORE BUFFER(AT THE END OF THE CURRENT SEGMENT) AND 19 5MLJ ...# THEN TRANSFER THIS INFORMATION TO THE FIVE CONSECUTIVE WORDS 17 5MMR ...# OF THE SWAP FILE FOR BACKMAP. THE REST OF THE CODING 13 5MP2 ...# WILL RESET THE DEVICE LISTS POINTERS. 4 5MQ9 ...# 5 5MRG ...PTRSET 8 5MSB ... LDX 1 FXPM1 16 5MT= ... LDX 4 XBOUND(1) [LOAD ^PMSJ^ 10 5MW6 ... LDX 2 XPMJRNLEND(1) 21 5MX2 ... STO 4 0(2) [AND STORE IT IN THE STORE BUFFER 8 5MXW ... STO 4 4(2) 18 5MYQ ... LDX 4 XASWAPID(1) [LOAD THE IDENTIFIER 8 5M_L ... STO 4 1(2) 15 5M_X ... LDX 4 XPMSQ(1) [LOAD 'PMSQ' 19 5N28 ... STO 4 2(2) [AND STORE IT IN STORE BUFFER 17 5N2F ... LDX 4 ERLSEQNO [LOAD SEQUENCE NO. 8 5N2Q ... STO 4 3(2) 7 5N33 ... LDN 4 5 10 5N3B ... STO 4 XBSWORDS(1) 9 5N4= ... STOZ ZERO(1) 17 5N56 ... PMBSADD SWAP,1,XBSWORDS(1),XPMJRNLEND(1),ZERO(1) 6 5N62 ...SETDLPTRS 8 5N6W ... LDX 1 FXPM1 10 5N7Q ... LDX 4 XJSWAPDR(1) 17 5NJ2 ... STO 4 JSWAPDR [RESTORE JSWAPDR 10 5NY= ... LDX 4 XJSWAPFD(1) 17 5P#G ... STO 4 JSWAPFD [RESTORE JSWAPFD 9 5PNQ ... BRN (JPMSEG) 4 5Q5Q # 4 5QKB ZEND 4 5R52 ...#END 6 ____ ...336242210004