GSCANTRA

(George Source)

Macros used: BXGE, BXL, LABFIX, PMOVE

GSCANTRA.txt
22FL    #OPT  K0GSCANTRA=0  
22^=    #LIS  K0GSCANTRA>K0POST>K0KERNEL>K0ALLGEO   
23DW    #SEG  GSCANTRA                     [DICK RUSBRIDGE  
23YG          8HGSCANTRA
24D6    #     FIXED STORE CODE OF GSCAN MACRO   
24XQ          LABFIX   JJSCAN   
25CB          STO   0  BATEMAN1            [REMEMBER LINK   
25X2          SMO      BATEMAN1 
26BL          OBEY     2                   [LOAD AND STORE ADDRESS OF   
26W=          STO   0  BATEMAN2            [AREA TO BE SCANNED  
27*W          SMO      BATEMAN1 
27TG          OBEY     3                   [LOAD AND STORE LENGTH OF
28*6          LDCH  0  0
28SQ          STO   0  BATEMAN3            [AREA TO BE SCANNED  
29#B          ADN   0  4                   [ADD 4 FOR REC HDR, NAME AND ACT NO. 
29S2          TXL   0  GSCANLEFT           [TEST AND J IF THIS SCAN WILL FIT IN 
2=?L          BCS      PMOVE               [BUFFER  
2=R=          LDX   1  GSCANPNTR
2?=W          STOZ     0(1)                [STOZ NEXT WORD IN BUFFER-INDICATES  
2?QG                                       [NEXT SCAN AT START OF BUFFER
2#=6          LDX   1  GSCANBUFF
2#PQ          STO   1  GSCANPNTR           [RE-SET CURRENT SCAN AND LAST VALID  
2*9B          STO   1  GSCANVAL            [SCAN POINTERS = TO START OF BUFFER  
2*P2          LDX   1  GSCANLEN            [ALSO RESET 'SPACE LEFT TO END OF
2B8L          STO   1  GSCANLEFT           [BUFFER' = LENGTH OF BUFFER  
2BN=    PMOVE ADX   0  GSCANPNTR           [X0=CURRENT SCAN ADD. IN BUFFER PLUS 
2C7W                                       [LENGTH OF SCAN  
2CMG          LDX   1  GSCANVAL            [BRANCH IF NOT NECESSARY TO UPDATE   
2D76    X     BZE   1  SOK                 [GSCANVAL
2DLQ          TXL   0  GSCANVAL            [TEST AND J IF FIRST VALID SCAN IS   
2F6B          BCS      SOK                 [NOT GOING TO BE OVERWRITTEN 
2FL2          LDX   1  0(1)                [GET LENGTH OF FIRST VALID SCAN AND  
2G5L          BZE   1  Z                   [BRANCH IF AT START OF BUFFER
2GK=          ADX   1  GSCANVAL 
2H4W    Z     STO   1  GSCANVAL            [RESET ADDRESS OF FIRST VALID SCAN   
2HJG          BRN      X
2J46    SOK   SBX   0  GSCANPNTR           [RESET X0 TO LENGTH OF CURRENT SCAN  
2JHQ          LDX   1  GSCANPNTR           [LOAD CURRENT POSITION IN BUFFER 
2K3B          STO   0  0(1)                [STORE RECORD HEADER 
2KH2          LDX   2  BATEMAN1            [GET LINK
2L2L          LDX   0  0(2)                [STORE SCAN NAME 
2LG=          STO   0  1(1) 
2L^W          LDX   0  1(2) 
2MFG          STO   0  2(1) 
2M^6          LDX   2  FX2  
2NDQ          LDX   0  ACTNUM(2)           [STORE ACTIVITY NUMBER   
2NYB          STO   0  3(1) 
2PD2          ADN   1  4                   [STEP BUFFER POINTER 
2PXL          LDX   0  BATEMAN3 
2QC=          BZE   0  SOK1                [BRANCH IF NOTHING TO BE SCANNED 
2QWW          LDX   0  BATEMAN2            [GET START ADD. OF AREA TO BE SCANNED
2RBG          SMO      BATEMAN3 
2RW6          MOVE  0  0                   [COPY TO BUFFER  
2S*Q    SOK1  LDX   1  GSCANPNTR           [RESET POINTER TO START OF THIS  
2STB          LDX   0  0(1)                [RECORD AND LOAD RECORD LENGTH   
2T*2          ADS   0  GSCANPNTR           [RESET BUFFER POINTER
2TSL          SBS   0  GSCANLEFT           [AND LENGTH LEFT IN BUFFER   
2W#=          LDN   1  4                   [UPDATE LINK 
2WRW          ADS   1  BATEMAN1 
2X?G          LDX   1  FX1                 [X1 AND  
2XR6          BRN      (BATEMAN1)          [EXIT
2Y=Q
2YQB
2^=2    #SKI  K6TRACE>11-11 
2^PL    (   
329=    #   
32NW    # THIS ROUTINE, ENTERED FROM THE TRACE MACRO, PLANTS INFO IN TRACE BUFFE
338G          LABFIX   JJTRACEX 
33N6          BVCI     £                   [SET V IF TRACE GENERATED BY GSCAN   
347Q          LABFIX   JJTRACE  
34MB          STO   1  BATEMAN3            [STORE LINK  
3572          STO   2  BATEMAN2 
35LL          LDX   1  BATEMAN1            [RESET  X1   
366=          SMO      BATEMAN3 
36KW          OBEY     2
375G          LDX   2  JTRAPNTR            [CURRENT BUFFER POINTER  
37K6          STO   1  2(2)                [%A TO BUFFER
384Q          BZE   1  T1   
38JB          BXGE  1  JTHREE,T1           [SPECIAL ACTION IF X1 OR X2  
3942          LDN   1  BATEMAN1-1(1)
39HL    T1    LDX   1  0(1)                [CONTENTS OF %A  
3=3=          STO   1  3(2) 
3=GW          LDX   1  BATEMAN3            [EGT LINK
3?2G          MOVE  1  2                   [8H%B TO BUFFER  
3?G6          LDN   1  0
3?^Q          BVCR     T3   
3#FB          LDCT  1  256                 [SET SIGN BIT IF V SET   
3#^2    T3    ADS   1  2(2)                [STORE GSCAN MARKER  
3*DL          LDX   1  FX2  
3*Y=          LDX   1  ACTNUM(1)           [ACTIVITY NUMBER 
3BCW          STO   1  4(2) 
3BXG    T2    ADN   2  JTRAENT             [STEP ON POINTER 
3CC6          BXL   2  JTRATOP,XIT  
3CWQ          LDX   2  JTRABUFF            [REST IF END OF BUFFER   
3DBB          STOZ     JTRAIND             [SET BUFFER FULL INDICATOR   
3DW2    XIT   STO   2  JTRAPNTR            [STORE POINTER TO NEXT ENTERY
3F*L          LDX   1  BATEMAN1            [RESTORE X1  
3FT=          LDX   2  BATEMAN2            [  AND X2
3G#W          SMO      JTHREE   
3GSG          BRN      (BATEMAN3)          [EXIT
3H#6    )   
3HRQ    #END
3J?B    #LIS  0 
^^^^ ...64624757000200000000