{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: GSCANTRA)}}
====== GSCANTRA ======
(George Source)
**Macros used:** [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:LABFIX|LABFIX]], [[george:macro:PMOVE|PMOVE]]
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