PMJOURNL866

(George Source)

Macros used: BBUS, BXGE, FINDBSA, JBC, MOVX, NEXTFCB, PMBSADD, PMCORES, SEGENTRY

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