MACROS JSR

(George Source)

MACROS JSR.txt
22^=    #           RUTH PORTER,   7OPAW
23DW ...[??? DATUMSMO SECT CENT FGN 9 DOC   
2JHQ    #   
2K3B    # THE MACROS ARE FOR ACCESSING SWAPPED IN OBJECT PROGRAMS.  
2KH2    # THEY USE FIXED STORE LOCATIONS(IN CBWCORE):JWSP1,JWSP2,JWSP3,JWCON1   
2L2L    #MAC  DATUMSMO                     [WORKING MACRO   
2LG=          OPTMOD    %A,%B,%C
2L^W    #NOR
2M9N ...[??? OPTMOD SECT CENT FGN 9 DOC 
2MFG    #   
2M^6    #MACRO         OPTMOD   
2NDQ    #STRING        %A   
2NYB          MOD   %C,%A   
2PD2    #STRING        %A   
2PXL    #SKIP   
2QC=          MOD   %C,%B   
2QWW    #NORMAL 
2R6N ...[??? DATUMA SECT CENT FGN 9 DOC 
2RBG    #MAC  DATUMA   [FINDS DATUM OF A PLUGGED IN OBJ PROG
2RW6    #STR  %B
2S*Q          LDX   0  %B   
2STB    #STR  %B
2T*2    #SKI
2TSL          LDX   0  FX2  
2W#=          STO   0  %A   
2WRW    #NOR
2X3N ...[??? DATUMB SECT CENT FGN 9 DOC 
2X?G    #MAC  DATUMB   [FINDS DATUM OF AN UNPLUGGED PROG
2XR6          DATUMA   %A,%B
2Y=Q    #NOR
2YGJ ...[??? CHECKA SECT CENT FGN 9 DOC 
2YQB    #MAC  CHECKA   [CHECK THAT AN OBJ PROGRAM AREA IS WITHIN RESERVATIONS   
2^=2          CHECKB   %A,%B,%C,%D,%E,%F,%G,%H,%I,%J
2^PL    #NOR
2^^D ...[??? CHECKBX SECT CENT FGN 9 DOC
329=    #MAC  CHECKBX  [CHECK RESERVATIONS-NO COORDS-PRIVATE USED BY ILLPERI ETC
32NW          LDX   0  %A   
338G          ANDX 0  JWCON1
33N6          DATUMSMO %D,FX2,TXL 0 ALIMIT  
347Q          BCC      %C   
34MB    #STR           %B   
3572    (   
35LL          ADX   0  %B   
366=          BZE   0  M2   
36KW          SBN   0  1
375G          DATUMSMO %D,FX2,TXL 0 ALIMIT  
37K6          BCC      %C   
384Q    M2  
38JB    )   
3942    #NOR
39?S ...[??? CHECKB SECT CENT FGN 9 DOC 
39HL    #SKIP G3
3=3=    (   
3=GW    #MAC  CHECKB   [CHECK RESERVATIONS FOR AN UNPLUGGED PROG
3?2G          CHECKBX  %A,%B,%C,%D  
3?8Q ...#NOR
3?8X ...)   
3?94 ...#SKI       G4   
3?99 ...(   
3?9B ...#MAC  CHECKB   [J.S.RAYNER         GEORGE 4 VERSION 
3?9H ...      STO   1  JWSP3               [STORE X1,2  
3?9N ...      STO   2  JWSP4
3?9T ...#STR  %B
3?=2 ...      LDX   0  %B                  [LENGTH  
3?=7 ...#STR  %B
3?=# ...#SKIP   
3?=F ...      LDN   0  1
3?=L ...      STO   0  JWSP2
3?=R ...      LDX   0  %A                  [PROG ADDR   
3?=Y ...      ANDX  0  JWCON1   
3??5 ...      STO   0  JWSP1
3??= ...#STR  %E                           [PERMISSION  
3??C ...#SKIP   
3??J ...      LDN   0  CHREAD   
3??P ...#STR  %E
3??W ...(   
3?#3 ...#STR  %E,W  
3?#8 ...#SKIP   
3?#* ...      LDN   0  CHREAD+CHWRITE   
3?#G ...#STR  %E,W  
3?#M ...      LDX   0  %E                  [ANY OTHER   
3?#S ...)   
3?#^ ...      STO   0  JWSP6               [STORE PERM  
3?*6 ...#STR           %H   
3?*? ...(   
3?*D ...      LDX   0  %H   
3?*K ...      ANDX  0  BITS22LS 
3?*Q ...)   
3?*X ...#STR           %H   
3?B4 ...#SKI
3?B9 ...      LDCT  0  #400 
3?BB ...      STO   0  JWSP5               [ BLOCK POINTER. 
3?BH ...      OPTMOD   %D,FX2,LDN 1 0   
3?BN ...      CALL  0  (CHECK4) 
3?BT ...      LDCT  5  #000                [ RESTART OPTIONS.   
3?C2 ...#STR           %I   
3?C7 ...(   
3?C# ...#FID  15    15 1
3?CF ...#STR           %J   
3?CL ...#FID  16    16 1
3?CR ...)   
3?CY ...#STR           %G   
3?D5 ...(   
3?D= ...      LDN   3  %G   
3?DC ...      CALL  2  (CHECK5) 
3?DJ ...)   
3?DP ...#STR           %G   
3?DW ...#SKI
3?F3 ...      CALL  2  (CHECK1) 
3?F8 ...      DOWN     PAGETURN,1   
3?F* ...#STR           %I   
3?FG ...      BRN      %I                  [ RESTART JUMP.  
3?FM ...#STR           %I   
3?FS ...#SKI
3?F^ ...      BRN      (GEOERR) 
3?G6 ...      DOWN     SETUPPTS,1          [ENTER ROUTINE TO SET UP PAGE TABLES 
3?G? ...      CALL  0  (CHECK3)            [RES VIOL
3?GD ...      CALL  0  (CHECK2) 
3?GK ...      BRN      %C                  [JUMP IF RESVIOL 
3?GQ ...#STR  %F                           [EXIT IF COORDINATION
3?GX ...#SKIP   
3?H4 ...      BRN      £
3?H9 ...#STR  %F
3?HB ...      BRN      %F   
3?HH ...#NOR
3?HN ...)   
3?HT ...[??? CHECKEXT SECT CENT FGN 9 DOC   
3?K= ...#SKIP   G3  
3?RG ...(   
3?^Q    #MAC  CHECKEXT [EXTEND AREA-PART OF WHICH IS ALREADY CHECKED
3#FB          CHECKB   %A,%B,%C,%D,%E,%F,%G 
3#ML ...#NOR
3#N7 ...)   
3#NN ...#SKI       G4   
3#P9 ...(   
3#PQ ...#MAC  CHECKEXT  
3#Q? ...#STR  %G
3#QS ...#SKIP   
3#R* ...!              ERROR IN CHECKEXT NO 7TH PARAM   
3#RW ...      LDX   0  %A                  [IF THE SPECIFIED AREA DOES NOT  
3#SC ...      ANDN  0  #1777               [CROSS A PAGE BOUNDARY THEN THE  
3#SY ...      ADX   0  %B                  [WHOLE AREA MUST BE CHECKED ALREADY  
3#TF ...      SBN   0  1025                [THIS TEST SHOULD IMPROVE THE PERF.  
3#W2 ...      BNG   0  MCHECKEXT           [OF THE OFFLINE PERI ROUTINES.   
3#WH ...#STR  %D
3#X4 ...#SKIP   
3#XK ...      CLEAR    FX2,0,%G,%H  
3#Y6 ...#STR  %D
3#YM ...      CLEAR    %D,0,%G,%H   
3#^8 ...      CHECKB   %A,%B,%C,%D,%E,%F,%G,%H,%I,%J
3#^P ...MCHECKEXT   
3*2= ...#NOR
3*2R ...)   
3*3# ...[??? ADDRESS SECT CENT FGN 9 DOC
3*46 ...#SKIP    G3 
3*=B ...(   
3*DL    #MAC  ADDRESS  [CONVERT AN OBJECT PROGRAM ADDRESS TO A GEORGE ADDRESS   
3*Y=          SMO      %A   
3BCW          LDX   0  ADATUM   
3BXG          ADX   0  %B   
3CC6          STO   0  %C   
3CKB ...#NOR
3CL2 ...)   
3CLL ...#SKI       G4   
3CM= ...(   
3CMW ...#MAC  ADDRESS  [J.S.RAYNER         GEORGE 4 VERSION 
3CNG ...      STO   1  JWSP1
3CP6 ...      STO   2  JWSP2
3CPQ ...      LDX   0  %B                  [VIRT ADDR   
3CQB ...      LDX   1  %A                  [PCA 
3CR2 ...      LDX   2  0
3CRL ...      ANDX  0  BN2T13              [STORE'IN-PAGE'ADDRESS   
3CS= ...      STO   0  JWSP3
3CSW ...      CALL  0  (HFIRST1)
3CTG ...      ORX   0  JWSP3
3CW6 ...      LDX   1  JWSP1
3CWQ ...      LDX   2  JWSP2
3CXB ...      STO   0  %C   
3CY2 ...#NOR
3CYL ...)   
3C^= ...[??? OUTMOVE SECT CENT FGN 9 DOC
3C^W ...#SKIP   G3  
3D86 ...(   
3DBB    #MAC  OUTMOVE  [MOVE OBJ PROG AREA TO GEORGE AREA   
3DW2          STO   1  JWSP1
3F*L          LDX   0  %D   
3FT=          STO   0  JWSP2
3G#W          SMO      %A   
3GSG          LDX   0  ADATUM   
3H#6          ADX   0  %B   
3HRQ          LDX   1  %C   
3J?B          SMO      JWSP2
3JR2          MOVE  0  0
3K=L          LDX   1  JWSP1
3KDW ...#NOR
3KG= ...)   
3KHL ...#SKI       G4   
3KK2 ...(   
3KLB ...#MAC  OUTMOVE  [J.S.RAYNER         GEORGE 4 VERSION 
3KMQ ...      INMOVEZ  %A,%B,%C,%D,IN,MVCH  
3KP6 ...#NOR
3KQG ...)   
3KRW ...[??? INMOVE SECT CENT FGN 9 DOC 
3KTB ...#SKIP  G3   
3L3L ...(   
3L9W    #MAC  INMOVE   [MOVE  GEORGE  AREA TO OBJ PROG AREA 
3LPG          LDX   0  %D   
3M96          STO   0  JWSP2
3MNQ          STO   1  JWSP1
3N8B          LDX   0  %B   
3NN2          STO   0  JWSP3
3P7L          LDX   0  %C   
3PM=          SMO      %A   
3Q6W          LDX   1  ADATUM   
3QLG          ADX   1  JWSP3
3R66          SMO      JWSP2
3RKQ          MOVE  0  0
3S5B          LDX   1  JWSP1
3S?L ...#NOR
3S#W ...)   
3SB6 ...#     NOTE THAT IN THE EXPANSIONS OF INMOVE ETC WE MUST GIVE FUNNY PARAM
3SCB ...#SKI       G4   
3SDL ...(   
3SFW ...#MAC  INMOVE   [J.S.RAYNER         GEORGE 4 VERSION 
3SH6 ...      INMOVEZ  %A,%B,%C,%D,OUT,MVCH 
3SJB ...#NOR
3SKL ...)   
4=72 ...[??? PMODES SECT CENT FGN 9 DOC 
4==G    # THIS MACRO OBTAINS THE BRANCHING & STORE MODES OF A PROG. MEMBER  
4=Q6    # %A-MODIFIER CONTAINING MEMBER.NO.%B-PTR TO PCA
4?9Q    #MAC  PMODES
4?PB          OPND  SMO,%B,FX2  
4#92          LDCH  %A ALMT 
4#NL    #NOR
4#YD ...[??? MACCS SECT CENT FGN 9 DOC  
4*8=    # THIS MACRO LEAVES THE ADDRESS OF X0 OF THE MEMBER (IN %A) IN X0   
4*MW    # & %C (IF SPECIFIED).%B PTR       TO PROG  
4B7G    #MAC  MACCS    [JSRAYNER.FIND ADDRESS OF MEMBERS X0 
4BM6          MOD LDX 0 ADATUM,%B   
4C6Q    #STR  %C
4CLB          STO   0  %C   
4D62    #NOR
4D*S ...[??? ONR SECT CENT FGN 9 DOC
4DKL    # THIS MACRO OBTAINS THE ONR OF A MEMBER.%A-ADDRESS OF X0   
4F5=    #MAC  ONR      [JSRAYNER.GET ORDER NO.REGISTER (1907)   
4FJW          LDX   0  JWCON1   
4G4G          SMO      %A   
4GJ6          ANDX  0  8
4H3Q    #SKIP %B
4HHB          STO   0  %B   
4J32    #NOR
4J=S ...[??? VETC SECT CENT FGN 9 DOC   
4JGL    # THIS MACRO OBTAINS THE V,C,SMO,ZSM BITS IN STANDARD FORM  
4K2=    #MAC  VETC     [JSRAYNER.M V,C,SMO,ZSM.(1907)   
4KFW          LDCT  0  #600 
4K^G          SMO      %A   
4LF6          ANDX  0  8
4LYQ          STO   0  JWSP1
4MDB          LDCT  0  #140 
4MY2          SMO      %A   
4NCL          ANDX  0  9
4NX=          ORX   0  JWSP1
4PBW    #SKIP %B
4PWG          STO   0  %B   
4QB6    #NOR
4QKY ...[??? NBREAKIN SECT CENT FGN 9 DOC   
4QL4 ...#UNS  ENBREAKIN 
4QL8 ...(   
4QL# ...#MAC  NBREAKIN  
4QLD ...[   
4QLJ ...[  IF %B IS 5,9 OR 16,UP=REJECTED,UPPLUS 1,OK   
4QLN ...[  IF %B IS 3,4,8,UP IS OK,UPPLUS 1 REJECTED
4QLS ...[   
4QLY ...#STR  %A,1  
4QM4 ...      LDX   1  %A   
4QM8 ...      LDX   2  FX2  
4QM# ...      ACCSTO   JOBNO(1),ACOMMUNE1,2 
4QMD ...      ACCSTO   ACTNUM(1),ACOMMUNE2,2
4QMJ ...     LDN   0   K%BPROCONTX  
4QMN ...     STO   0   ACOMMUNE3(2) 
4QMS ...     DOWN  PROCONTX,17  
4QMY ...#SKI  %B-5                         [OMIT IF %B IS 5 
4QN4 ...(   
4QN8 ...#SKI  %B-9                         [OMIT IF %B IS 9 
4QN# ...(   
4QND ...#SKI  %B-16                        [OMIT IF %B IS 16
4QNJ ...(   
4QNN ...#STR  %D                           [OMIT IF NO %D   
4QNS ...     BRN       %D   
4QNY ...#STR %D 
4QP4 ...#SKI
4QP8 ...     BRN       MNBREAKIN3   
4QP# ...#STR  %C                           [OMIT IF NO %C   
4QPD ...     BRN       %C   
4QPJ ...#STR %C 
4QPN ...#SKI
4QPS ...     BRN       MNBREAKIN3   
4QPY ...)   
4QQ4 ...)   
4QQ8 ...)   
4QQ# ...#SKI %B-8   
4QQD ...(   
4QQJ ...#SKI %B-4   
4QQN ...(   
4QQS ...#SKI %B-3   
4QQY ...(   
4QR4 ...#STR  %C                           [OMIT IF NO %C   
4QR8 ...     BRN       %C   
4QR# ...#STR %C 
4QRD ...#SKI
4QRJ ...     BRN       MNBREAKIN3   
4QRN ...#STR  %D                           [OMIT IF NO %D   
4QRS ...     BRN       %D   
4QRY ...#STR %D 
4QS4 ...#SKI
4QS8 ...     BRN       MNBREAKIN3   
4QS# ...)   
4QSD ...)   
4QSJ ...)   
4QSN ...MNBREAKIN3  
4QSS ...#NOR
4QSY ...)   
4QT4 ...#UNS  ENBREAKIN 
4QT8 ...#SKI
4QT# ...(   
4QTQ    #SKI  ANOUSER   
4R*B    (   
4RT2    #   
4S#L    #     THIS MACRO INITIATES BREAKIN ON A JOB 
4SS=    #   
4T9K ...#MAC  NBREAKIN  
4TLY ...#STR  %A,2  
4W4? ...      LDX   2  %A   
4WFL ...      LDCH  0  ATYPE(2) 
4WW^ ...      SBN   0  CPAT/64  
4X## ...      BZE   0  MS   
4XPM ...      GEOERR   1,NOT CPA
4Y72 ...MS    BRUSEN   M1,2 
4YJ* ...      LDX   0  JOBNO(2) 
4Y^N ...      SMO      FX2  
4^C3 ...      STO   0  ACOMMUNE1
4^SB ...      LDN   0  K%BPROCONTX  
529P ...      SMO      FX2  
52M4 ...      STO   0  ACOMMUNE2
534C ...      DOWN     PROCONTX,17  
53FQ ...      BRN      M20A 
53X5 ...      BRN      M21  
54#D ...M1  
54PR ...#STR  %B,3  
5576 ...(   
55JF ...      LDX   0  JOBEVENTS(2) 
55^S ...#STR  %B,5  
56C7 ...#SKI
56SG ...      BNG   0  M20  
579T ...#STR  %B,5  
57M8 ...      BNG   0  M21  
584H ...      SLL   0  3
58FW ...#STR  %B,5  
58X9 ...#SKI
59#J ...      BNG   0  M20  
59PX ...#STR  %B,5  
5=7= ...      BNG   0  M21  
5=JK ...      LDCT  0  #500 
5=^Y ...      ORS   0  JOBEVENTS(2) 
5?C? ...)   
5?SL ...      LDX   0  ATYPE(2) 
5#9^ ...      ANDN  0  #2000
5#M# ...#STR  %B,5  
5*4M ...#SKI
5*G2 ...      BZE   0  M21  
5*X* ...#STR  %B,5  
5B#N ...      BZE   0  M20  
5BQ3 ...      SMO      FX2  
5C7B ...      STO   2  ACC7 
5CJP ...      UNQUEUE   
5D24 ...      FPUT  
5DCC ...      LDX   2  ACC7(2)  
5DSQ ...#STR  %A,1  
5F=5 ...#SKI
5FMD ...      LDX   %A 2
5G4R ...#STR  %B,5  
5GG6 ...#SKI
5GXF ...      BRN      M21  
5H#S ...#STR  %B,5  
5HQ7 ...      BRN      M20  
5J7G ...M20A
5JJT ...#STR  16,%B 
5K28 ...#SKI
5KCH ...      BRN      M21  
5KSW ...M20 
5L=9 ...#STR  %B,3  
5LMJ ...#SKI
5M4X ...(   
5MG= ...      LDN   1  1
5MXK ...      BRN      MF   
5N#Y ...)   
5NQ? ...#STR  %B,3  
5P7L ...(   
5PJ^ ...#STR  16,%B 
5Q2# ...#SKI
5QCM ...(   
5QT2 ...      LDCT  0  1
5R=* ...      ORS   0  JOBEVENTS(2) 
5RMN ...)   
5S53 ...#STR  9,%B  
5SGB ...#SKI
5SXP ...(   
5T*4 ...      LDN   0  4
5TQC ...      ORS   0  JOBEVENTS(2) 
5W7Q ...      LDN   1  1
5WK5 ...)   
5X2D ...#STR  9,%B  
5XCR ...      LDN   1  0
5XT6 ...      BRN      MF   
5Y=F ...)   
5YMS ...M21 
5^57 ...#STR  %B,3  
5^GG ...#SKI
5^XT ...      GEOERR   1,NSTOPMOP   
62*8 ...#STR  %B,3  
62QH ...(   
637W ...#STR  %B,5  
63K9 ...#SKI
642J ...(   
64CX ...      LDCT  0  #20  
64T= ...      ORS   0  JOBEVENTS(2) 
65=K ...      TESTOUT   
65MY ...)   
665? ...#STR  16,%B 
66GL ...#SKI
66X^ ...      LDN   1  0
67*# ...#STR  16,%B 
67QM ...(   
6882 ...#STR  9,%B  
68K* ...#SKI
692N ...      LDN   1  0
69D3 ...#STR  9,%B  
69TB ...      LDN   1  1
6==P ...)   
6=N4 ...)   
6?5C ...MF    CALL  0  £
6?GQ ...      ADN   0  5
6?Y5 ...      ADX   0  1
6#*D ...      LDX   1  FX1  
6#QR ...      LDX   2  FX2  
6*86 ...      EXIT  0  0
6*KF ...#NOR
6*Y# ...)   
6B5P ...)   
6B?7 ...[??? FLIPS SECT CENT FGN 9 DOC  
6BL2    #   
6C5L    #     THIS MACRO UNSETS AND/OR SETS A BIT IN A SPECIFIED WORD   
6CK=    #   
6D4W    #MAC  FLIPS 
6DJG    #STR  %B
6F46    (   
6FHQ    #STR  %C
6G3B    #SKI  %B-%C 
6GH2    (   
6H2L          LDBIT    %B,0 
6HG=          ANDX  0  %A   
6H^W          ERS   0  %A   
6JFG    )   
6J^6    )   
6KDQ    #STR  %C
6KYB    (   
6LD2    #STR  %B
6LXL    #SKI  %B-%C 
6MC=    (   
6MWW          LDBIT    %C,0 
6NBG          ORS   0  %A   
6NW6    )   
6P*Q    )   
6PTB    #NOR
6Q58 ...[??? FLIPX SECT CENT FGN 9 DOC  
6Q*2    #   
6QSL    #     THIS MACRO UNSETS AND/OR SETS MASKS OF BITS IN A SPECIFIED WORD   
6R#=    #MAC  FLIPX 
6RRW    #STR  %B
6S?G    (   
6SR6    #STR  %C
6T=Q    #SKI  %B-%C 
6TQB    (   
6W=2    #STR  %B,0  
6WPL          LDX   0  %B   
6X9=          ANDX  0  %A   
6XNW          ERS   0  %A   
6Y8G    )   
6YN6    )   
6^7Q    #STR  %C
6^MB    (   
7272    #STR  %B
72LL    #SKI  %B-%C 
736=    (   
73KW    #STR  %C,0  
745G          LDX   0  %C   
74K6          ORS   0  %A   
754Q    )   
75JB    )   
7642    #NOR
76?S ...[??? FLIPW SECT CENT FGN 9 DOC  
76HL    #     THIS MACRO SWITCHES A MASK IN A SPECIFIED WORD
773=    #MAC  FLIPW 
77GW    #ACC  %B
782G    (   
78G6          LDX   0  %B   
78^Q          ERS   0  %A   
79FB    )   
79^2    #ACC  %B
7=DL    #SKI
7=Y=          ERS   %B %A   
7?CW    #NOR
7?MN ...[??? LDBIT SECT CENT FGN 9 DOC  
7?XG    #   
7#C6    #     THIS MACRO LOADS BIT %A INTO WORD %B  
7#WQ    #   
7*BB    #MAC  LDBIT 
7*W2    #SKIP %A>23-23  
7B*L    !     %A EXCEEDS 23 OR IS UNDEFINED 
7BT=    #ACC  %B
7C#W    (   
7CSG          LDBITZ   %A,0 
7D#6          STO   0  %B   
7DRQ    )   
7F?B    #ACC  %B
7FR2    #SKIP   
7G=L          LDBITZ   %A,%B
7GQ=    #NOR
7H24 ...[??? LDBITZ SECT CENT FGN 9 DOC 
7H9W    #   
7HPG    #     THIS MACRO SETS BIT %A OF ACCUMULATOR %B  
7J96    #   
7JNQ    #MAC  LDBITZ
7K8B    #SKI  %A<9-9
7KN2    (   
7L7L          LDCT  %B 0
7LM=    #FID  15+%A 15+%A 1 
7M6W    )   
7MLG    #SKI  %A>11-11  
7N66    (   
7NKQ          LDN   %B 0
7P5B    #FID  %A %A 1   
7PK2    )   
7Q4L    #SKIP %A$9  
7QJ=    #SKIP   
7R3W          LDX   %B BIT9 
7RHG    #SKIP %A$10 
7S36    #SKIP   
7SGQ          LDX   %B BIT10
7T2B    #SKIP %A$11 
7TG2    #SKIP   
7T^L          LDX   %B BIT11
7WF=    #NOR
7WP4 ...[??? LDNBIT SECT CENT FGN 9 DOC 
7WYW    #   
7XDG    #     THIS MACRO SETS ALL BITS EXCEPT BIT %A OF WORD %B 
7XY6    #   
7YCQ    #MAC  LDNBIT
7YXB    #SKIP %A>23-23  
7^C2    !     %A EXCEEDS 23 OR IS UNDEFINED 
7^WL    #ACC  %B
82B=    (   
82TW          LDNBITZ  %A,0 
83*G          STO   0  %B   
83T6    )   
84#Q    #ACC  %B
84SB    #SKIP   
85#2          LDNBITZ  %A,%B
85RL    #NOR
863D ...[??? LDNBITZ SECT CENT FGN 9 DOC
86?=    #   
86QW    #     THIS MACRO SETS ALL BITS EXCEPT BIT %A OF ACCUMULATOR %B  
87=G    #   
87Q6    #MAC  LDNBITZ   
889Q    #SKIP %A>11-11  
88PB    (   
8992          NGN   %B 1
89NL    #FID  0 %A 1
8=8=    )   
8=MW    #SKIP %A<12-12  
8?7G    (   
8?M6          NGN   %B 2
8#6Q          SRC   %B %A+1 
8#LB    )   
8*62    #NOR
8**S ...[??? BITMASK SECT CENT FGN 9 DOC
8*KL    #   
8B5=    #     THIS MACRO SETS UP A MASK OF THE SPECIFIED BITS   
8BJW    #   
8C4G    #MAC  BITMASK   
8CJ6          +0
8D3Q          BITMASKZ %A,%B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M   
8DHB    #STR  %N
8F32          BITMASKZ %N,%O,%P,%Q,%R,%S,%T,%U,%V,%W,%X 
8FGL    #NOR
8FQD ...[??? NBITMASK SECT CENT FGN 9 DOC   
8G2=    #   
8GFW    #     THIS MACRO SETS UP A MASK OF ALL BITS EXCEPT THE SPECIFIED BITS   
8G^G    #   
8HF6    #MAC  NBITMASK  
8HYQ          -1
8JDB          BITMASKZ %A,%B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M   
8JY2    #STR  %N
8KCL          BITMASKZ %N,%O,%P,%Q,%R,%S,%T,%U,%V,%W,%V,%W,%X   
8KX=    #NOR
8L74 ...[??? BITMASKZ SECT CENT FGN 9 DOC   
8LBW    #   
8LWG    #     THIS IS AN ITERATIVE MACRO ONLY USED IN DEFINING BITMASK/NBITMASK 
8MB6    #   
8MTQ    #MAC  BITMASKZ  
8N*B    #STR  %A
8NT2    (   
8P#L    #SKIP %A>23-23  
8PS=    !     %A EXCEEDS 23 OR IS UNDEFINED 
8Q?W    #FID  %A %A 1   
8QRG          BITMASKZ %B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M  
8R?6    #STR  %N
8RQQ          BITMASKZ %N,%O,%P,%Q,%R,%S,%T,%U,%V,%W,%X 
8S=B    )   
8SQ2    #NOR
8S^S ...[??? SETBIT SECT CENT FGN 9 DOC 
8T9L    #   
8TP=    #     THIS MACRO SETS BIT %A OF WORD %B 
8W8W    #   
8WNG    #MAC  SETBIT
8X86          FLIPS    %B,,%A   
8XMQ    #NOR
8XXJ ...[??? UNSETBIT SECT CENT FGN 9 DOC   
8Y7B    #   
8YM2    #     THIS MACRO UNSETS BIT %A OF WORD %B   
8^6L    #   
8^L=    #MAC  UNSETBIT  
925W          FLIPS    %B,%A
92KG    #NOR
92T# ...[??? TBS SECT CENT FGN 9 DOC
9356    #   
93JQ    #     THIS MACRO PICKS UP BIT %A OF WORD %B IN BIT %A OF ACC %C 
944B    #   
94J2    #MAC  TBS   
953L          LDBIT    %A,%C
95H=          ANDX  %C %B   
962W    #NOR
96=N ...[??? BBS SECT CENT FGN 9 DOC
96GG    #   
9726    #     THIS MACRO BRANCHES TO %C IF BIT %A OF WORD %B IS SET 
97FQ    #   
97^B    #MAC  BBS   
98F2          TBS      %A,%B,0  
98YL          BNZ   0  %C   
99D=    #NOR
99N4 ...[??? BBUS SECT CENT FGN 9 DOC   
99XW    #   
9=CG    #     THIS MACRO BRANCHES TO %C IF BIT %A OF WORD %B IS UNSET   
9=X6    #   
9?BQ    #MAC  BBUS  
9?WB          TBS      %A,%B,0  
9#B2          BZE   0  %C   
9#TL    #NOR
9**= ...[??? STEPBAC SECT CENT FGN 9 DOC
CWSB    # THIS MACRO STEPS BACK THE ONR OF A PROG MEMBER.%A-ADDRESS OF X0   
CXRL    #     MARK 4 ONWARDS VERSION OF STEPBAC 
CY?=    #MAC  STEPBAC   
CYQW          LDX 0 %A  
C^=G          STO 0 JWSP1   
C^Q6          MOD   LDX 0 9,%A  
D29Q          SLC   0  3
D2PB          ANDN  0  1
D392          ADN   0  1
D3NL          SMO JWSP1 
D48=          SBS 0 8   
D4MW    #NOR
D4XN ...[??? STEPBAC1 SECT CENT FGN 9 DOC   
D57G    # THIS MACRO IS A MORE CONVENIENT FORM OF STEPBAC   
D5M6    #MAC  STEPBAC1 [JSRAYNER.STEPBACK ONR   
D66Q          MACCS    %A,%B
D6LB          STEPBAC  0
D762    #NOR
D7*S ...[??? STEPBACK SECT CENT FGN 9 DOC   
D7KL    #     THIS MACRO STEPS BACK WORD 8 OF AN OBJ PROG.FROM THE CPA  
D85=    #MAC  STEPBACK     [JSRAYNER.STEPBACK WORD 8 FROM OBJ.PROG  
D8JW          DOWN     STEPBACK,1   
D94G    #NOR
D9## ...[??? LOOPW SECT CENT FGN 9 DOC  
D9J6    #   
D=3Q    #     THIS GROUP OF MACROS ENABLE A ROUTINE TO ACCESS A NUMBER OF WORDS 
D=HB    #     OR CHARS WITHIN AN OBJ.PROG.AREA WITHOUT DOING A SEPERATE ADDRESS 
D?32    #     CONVERSION FOR EACH WORD. 
D?GL    #   
D#2=    #     LOOPW,NEXTW,NEXTWX ENABLE WORDS TO BE ACCESSED IN ORDER   
D#FW    #                        OF ASCENDING ADDRESS.  
D#^G    #   
D*F6    #SKIP G3
D*YQ    (   
DBDB    #MAC  LOOPW        [DATUM,MOD,ACC   
DBY2          ADDRESS  %A,%B,%B 
DC6= ...#NOR
DC6W ...)   
DC7G ...#SKI       G4   
DC86 ...(   
DC8Q ...#MAC  LOOPW        [DATUM,MOD,ACC   
DC9B ...      STOZ     JWSP11   
DC=2 ...      LDN   0  #2000(%B)
DC=L ...      ANDX  0  B2T13
DC?= ...      STO   0  JWSP10   
DC?W ...      SBN   0  0(%B)               [
DC#G ...      SBX   0  %C   
DC*6 ...      BPZ   0  MLOOPW1             [JUMP IF ALL IN ONE PAGE 
DC*Q ...      NGS   0  JWSP11   
DCBB ...      ADX   %C 0                   [WORDS IN FIRST PAGE 
DCC2 ...      ADDRESS  %A,JWSP10,JWSP10 
DCCL ...MLOOPW1 
DCD= ...      ADDRESS  %A,%B,%B 
DCDW ...#NOR
DCFG ...)   
DCG6 ...[??? NEXTW SECT CENT FGN 9 DOC  
DCGQ ...#SKI   G3   
DCP2 ...(   
DCX=    #MAC  NEXTW        [MOD,ACC,LABEL   
DDBW          ADN   %A 1
DDWG          BCT   %B %C   
DF4Q ...#NOR
DF5H ...)   
DF6# ...#SKI       G4   
DF75 ...(   
DF7W ...#MAC  NEXTW        [MOD,ACC,LABEL   
DF8M ...      ADN   %A 1
DF9D ...      BCT   %B %C   
DF=9 ...      LDX   %B JWSP11   
DF?2 ...      BZE   %B MNEXTW1  
DF?R ...      STOZ     JWSP11   
DF#J ...      LDX   %A JWSP10   
DF** ...      BRN      %C   
DFB6 ...MNEXTW1 
DFBX ...#NOR
DFCN ...)   
DFDF ...[??? NEXTWX SECT CENT FGN 9 DOC 
DFF= ...#SKIP    G3 
DFMG ...(   
DFTQ    #MAC  NEXTWX       [MOD,ACC,LABEL,NUMBER
DG*B          ADX   %A %D   
DGT2          SBX   %B %D   
DH#L          BZE   %B MNEXTWX1 
DHS=          BPZ   %B %C   
DJ?W    MNEXTWX1
DJG6 ...#NOR
DJGQ ...)   
DJHB ...#SKI       G4   
DJJ2 ...(   
DJJL ...#MAC  NEXTWX       [MOD,ACC,LABEL,NUMBER
DJK= ...      ADX   %A %D   
DJKW ...      SBX   %B %D   
DJLG ...      BZE   %B MNEXTWX1 
DJM6 ...      BPZ   %B %C   
DJMQ ...MNEXTWX1
DJNB ...      LDX   %A JWSP10   
DJP2 ...      SBX   %A %B   
DJPL ...      ADX   %B JWSP11   
DJQ= ...      STOZ     JWSP11   
DJQW ...      BZE   %B MNEXTWX2 
DJRG ...      BPZ   %B %C   
DJS6 ...MNEXTWX2
DJSQ ...#NOR
DJTB ...)   
DJW2 ...[??? LOOPD SECT CENT FGN 9 DOC  
DJWL ...#SKIP   G3  
DK4W ...(   
DK?6    #     LOOPD,NEXTD ALLOW ACCESS TO THE WORDS OF AN OBJ. PROG AREA
DKQQ    #                 IN DESCENDING ORDER OF ADDRESS
DL=B    #   
DLQ2    #MAC  LOOPD        [DATUM,MOD,ACC   
DM9L          ADX   %B %C                  [ADDRESS OF LAST WORD+1  
DMP=          SBN   %B 1
DN8W          ADDRESS  %A,%B,%B 
DNC6 ...#NOR
DNCK ...)   
DND4 ...#     LOOPD,NEXTD ALLOW ACCESS TO THE WORDS OF AN OBJ. PROG AREA
DNDH ...#                 IN DESCENDING ORDER OF ADDRESS
DNF2 ...#   
DNFF ...#SKI       G4   
DNFY ...(   
DNGC ...#MAC  LOOPD        [DATUM,MOD,ACC   
DNGW ...      ADX   %B %C                  [ADDRESS OF LAST WORD+1  
DNH* ...      SBN   %B 1
DNHS ...      STOZ     JWSP11   
DNJ? ...      LDN   0  0(%B)
DNJQ ...      ANDN  0  #1777
DNK9 ...      ADN   0  1
DNKN ...      STO   %B JWSP10   
DNL7 ...      SBS   0  JWSP10   
DNLL ...      SBX   0  %C   
DNM5 ...      BPZ   0  MLOOPD1  
DNMJ ...      NGS   0  JWSP11   
DNN3 ...      ADX   %C 0
DNNG ...      ADDRESS  %A,JWSP10,JWSP10 
DNN^ ...MLOOPD1 
DNPD ...      ADDRESS  %A,%B,%B 
DNPX ...#NOR
DNQB ...)   
DNQT ...[??? NEXTD SECT CENT FGN 9 DOC  
DNRL ...#SKIP    G3 
DN^W ...(   
DP86    #MAC  NEXTD        [MOD,ACC,LABEL   
DPMQ          SBN   %A 1
DQ7B          BCT   %B %C   
DQ*L ...#NOR
DQBC ...)   
DQC8 ...#SKI       G4   
DQC^ ...(   
DQDQ ...#MAC  NEXTD        [MOD,ACC,LABEL   
DQFH ...      SBN   %A 1
DQG# ...      BCT   %B %C   
DQH5 ...      LDX   %B JWSP11   
DQHW ...      BZE   %B MNEXTD1  
DQJM ...      STOZ     JWSP11   
DQKD ...      LDX   %A JWSP10   
DQL9 ...      BRN      %C   
DQM2 ...MNEXTD1 
DQMR ...#NOR
DQNJ ...)   
DQP* ...[??? LOOPCH SECT CENT FGN 9 DOC 
DQQ6 ...#SKIP    G3 
DQYB ...(   
DR6L    #   
DRL=    #     LOOPCH,NEXTCH ALLOW EACH CHAR OF AN OBJ PROG AREA TO BE ACCESSED  
DS5W    #                   IN ASCENDING ORDER OF ADDRESS   
DSKG    #   
DT56    #MAC  LOOPCH       [DATUM,MOD,ACC   
DTJQ          ADDRESS  %A,%B,%B 
DTM6 ...#NOR
DTN2 ...)   
DTNW ...#   
DTPQ ...#     LOOPCH,NEXTCH ALLOW EACH CHAR OF AN OBJ PROG AREA TO BE ACCESSED  
DTQL ...#                   IN ASCENDING ORDER OF ADDRESS   
DTRG ...#   
DTSB ...#SKI       G4   
DTT= ...(   
DTW6 ...#MAC  LOOPCH       [DATUM,MOD,ACC   
DTX2 ...      STOZ     JWSP11   
DTXW ...      LDN   0  #2000(%B)           [ADDRESS OF NEXT PAGE
DTYQ ...      ANDX  0  B2T13
DT^L ...      STO   0  JWSP10   
DW2G ...      SLC   %B 2                   [NO OF CHARS IN THIS PAGE
DW3B ...      SLC   0  2
DW4= ...      SBX   0  %B   
DW56 ...      SRC   %B 2
DW62 ...      SBX   0  %C   
DW6W ...      BPZ   0  MLOOPCH1            [JUMP IF ALL IN THIS PAGE
DW7Q ...      NGS   0  JWSP11   
DW8L ...      ADX   %C 0                   [NO OF CHARS IN THIS PAGE
DW9G ...      ADDRESS  %A,JWSP10,JWSP10 
DW=B ...MLOOPCH1
DW?= ...      ADDRESS  %A,%B,%B 
DW#6 ...#NOR
DW*2 ...)   
DW*W ...[??? NEXTCH SECT CENT FGN 9 DOC 
DWBW ...#SKIP   G3  
DWF= ...(   
DWJ2    #MAC  NEXTCH       [MOD,ACC,LABEL   
DX3L          BCHX  %A £
DXH=          BCT   %B %C   
DXPG ...#NOR
DXQN ...)   
DXRW ...#SKI       G4   
DXT4 ...(   
DXW= ...#MAC  NEXTCH       [MOD,ACC,LABEL   
DXXD ...      BCHX  %A £
DXYL ...      BCT   %B %C   
DX^S ...      LDX   %B JWSP11   
DY32 ...      BZE   %B MNEXTCH1 
DY48 ...      STOZ     JWSP11   
DY5B ...      LDX   %A JWSP10   
DY6J ...      BRN      %C   
DY7Q ...MNEXTCH1
DY8Y ...#NOR
DY=6 ...)   
DY?# ...[??? REM SECT CENT FGN 9 DOC
DY#G ...#SKIP    G3 
DY*N ...(   
DYBW ...#     REM      OBTAINS THE NUMBER OF WORDS OR CHARS LEFT IN THE AREA
DYD4 ...#              DEFINED BY THE LAST LOOPW,D,CH MACRO 
DYF= ...#MAC  REM      [ACC 
DYGD ...#NOR
DYHL ...)   
DYJS ...#     REM      OBTAINS THE NUMBER OF WORDS OR CHARS LEFT IN THE AREA
DYL2 ...#              DEFINED BY THE LAST LOOPW,D,CH MACRO 
DYM8 ...#SKI       G4   
DYNB ...(   
DYPJ ...#MAC  REM      [ACC 
DYQQ ...      ADX   %A JWSP11   
DYRY ...#NOR
DYT6 ...)   
DYW# ...[??? CLEAR SECT CENT FGN 9 DOC  
DYXG ...#SKIP     G3
DYYN ...(   
DY^W ...#MAC  CLEAR 
D^34 ...#NOR
D^4= ...)   
D^5D ...#   
D^6L ...#     CLEARS LOCKS. 
D^7S ...#   
D^92 ...#SKI       G4   
D^=8 ...(   
D^?B ...#MACRO         CLEAR
D^#J ...#SKIP          %B>3-3   
D^*Q ...(   
D^BY ...!     %B IS INVALID PARAMETER TO CLEAR. 
D^D6 ...#GAP           10   
D^F# ...#EXIT   
D^GG ...)   
D^HN ...#SKIP          %B-2 
D^JW ...(   
D^L4 ...      CALL  0  (CLEAR1)            [ DUMP ACCS. 
D^M= ...#ACC           %A   
D^ND ...(   
D^PL ...      LDX   0  %A   
D^QS ...      STO   0  JWSP9               [ PCA ADDR.  
D^S2 ...)   
D^T8 ...#ACC           %A   
D^WB ...#SKIP   
D^XJ ...      STO   %A JWSP9
D^YQ ...)   
D^^Y ...#SKIP          %B-2 
F236 ...#SKIP   
F24# ...      STO   3  JWSP3
F25G ...#STRING        %C   
F26N ...#SKIP   
F27W ...      OPTMOD   %D,FX2,LDN 3 HLOCK1  
F294 ...#STRING        %C   
F2== ...      OPTMOD   %D,FX2,LDN 3 %C  
F2?D ...#STRING        %E   
F2#L ...#SKIP   
F2*S ...(   
F2C2 ...#STRING        %C%D 
F2D8 ...      XCLEAR   %B,1 
F2FB ...#STRING        %C%D 
F2GJ ...#SKIP   
F2HQ ...      XCLEAR   %B,HLOCKN
F2JY ...)   
F2L6 ...#STRING        %E   
F2M# ...      XCLEAR   %B,%E
F2NG ...#SKIP          %B-2 
F2PN ...      CALL  0  (CLEAR2) 
F2QW ...#SKIP          %B-2 
F2S4 ...#SKIP   
F2T= ...      LDX   3  JWSP3
F2WD ...#NORMAL 
F2XL ...)   
F2YS ...[??? CLEARALL SECT CENT FGN 9 DOC   
F322 ...#SKIP   G3  
F338 ...(   
F34B ...#SKI  JSKI21
F35J ...(   
F36Q ...#MAC  CLEARALL  
F37Y ...#NOR
F396 ...)   
F3=# ...)   
F3?G ...#SKI       JSKI21   
F3#N ...(   
F3*W ...#SKI       G4   
F3C4 ...(   
F3D= ...#MACRO         CLEARALL 
F3FD ...#SKIP          %B>3-3   
F3GL ...(   
F3HS ...!     %B IS INVALID PARAMETER TO CLEAR. 
F3K2 ...#GAP           10   
F3L8 ...#EXIT   
F3MB ...)   
F3NJ ...#SKIP          %B-2 
F3PQ ...(   
F3QY ...      CALL  0  (CLEAR1)            [ DUMP ACCS. 
F3S6 ...#ACC           %A   
F3T# ...(   
F3WG ...      LDX   0  %A   
F3XN ...      STO   0  JWSP9               [ PCA ADDR.  
F3YW ...)   
F424 ...#ACC           %A   
F43= ...#SKIP   
F44D ...      STO   %A JWSP9
F45L ...)   
F46S ...#SKIP          %B-2 
F482 ...#SKIP   
F498 ...      STO   3  JWSP3
F4=B ...      STO   5  JWSP10              [STORE  X5   
F4?J ...      MOD      LDX   5   HLOCKBN,%C 
F4#Q ...      MOD      LDN   3  HLOCKB1,%C  
F4*Y ...MALL  XCLEAR   %B,1 
F4C6 ...      ADN   3  HLOCKLEN 
F4D# ...      BCT   5  MALL 
F4FG ...      LDX   5  JWSP10               [RESTORE  X5
F4GN ...#SKIP          %B-2 
F4HW ...      CALL  0  (CLEAR2) 
F4K4 ...#SKIP          %B-2 
F4L= ...#SKIP   
F4MD ...      LDX   3  JWSP3
F4NL ...#NORMAL 
F4PS ...)   
F4R2 ...)   
F4S8 ...[??? FINMOVE SECT CENT FGN 9 DOC
F4TB ...#SKIP   G3  
F4WJ ...(   
F4XQ ...#MAC  FINMOVE  [J.S.RAYNER          GEORGE 3 VERSION
F4YY ... MOD  ADX   %B ADATUM,%A
F526 ...      SMO      %D   
F53# ...      MOVE  %C 0
F54G ...#NOR
F55N ...)   
F56W ...#SKI       G4   
F584 ...(   
F59= ...#MAC  FINMOVE  [J.S.RAYNER          GEORGE 4 VERSION
F5=D ...      FINMOVEZ %A,%B,%C,%D,%E,OUT,MVCH,%F,%G
F5?L ...#NOR
F5#S ...)   
F5B2 ...[??? FINMVCH SECT CENT FGN 9 DOC
F5FW ...#SKIP   G3  
F5N6 ...(   
F5WB    #MAC  FINMVCH  [J.S.RAYNER          GEORGE 3 VERSION
F6B2     MOD  ADX   %B ADATUM,%A
F6TL          SMO      %D   
F7*=          MVCH  %C 0
F7HG ...#NOR
F7JW ...)   
F7L= ...#SKI       G4   
F7ML ...(   
F7P2 ...#MAC  FINMVCH  [J.S.RAYNER          GEORGE 4 VERSION
F7QB ...      FINMOVEZ %A,%B,%C,%D,%E,OUT,MOVE,%F,%G
F7RQ ...#NOR
F7T6 ...)   
F7WG ...[??? FOUTMOVE SECT CENT FGN 9 DOC   
F7Y2 ...#SKIP     G3
F86= ...(   
F8#G    #MAC  FOUTMOVE [J.S.RAYNER          GEORGE 3 VERSION
F8S6     MOD  ADX   %B ADATUM,%A
F9?Q          SMO      %D   
F9RB          MOVE  %B 0
F9^L ...#NOR
F=32 ...)   
F=4B ...#SKI       G4   
F=5Q ...(   
F=76 ...#MAC  FOUTMOVE [J.S.RAYNER          GEORGE 4 VERSION
F=8G ...      FINMOVEZ %A,%B,%C,%D,%E,IN,MVCH,%F,%G 
F=9W ...#NOR
F=?= ...)   
F=#L ...[??? FOUTMVCH SECT CENT FGN 9 DOC   
F=B6 ...#SKIP   G3  
F=JB ...(   
F=QL    #MAC  FOUTMVCH [J.S.RAYNER          GEORGE 3 VERSION
F?==     MOD  ADX   %B ADATUM,%A
F?PW          SMO      %D   
F#9G          MVCH  %B 0
F#CQ ...#NOR
F#F6 ...)   
F#GG ...#SKI       G4   
F#HW ...(   
F#K= ...#MAC  FOUTMVCH [J.S.RAYNER          GEORGE 4 VERSION
F#LL ...      FINMOVEZ %A,%B,%C,%D,%E,IN,MOVE,%F,%G 
F#N2 ...#NOR
F#PB ...)   
F#PC ...[??? WORDSIN SECT CENT FGN 11 DOC   
F#PD ...#SKI
F#PF ...[ AS FINMOVE BUT DOES UP TO 1024 WORDS  
F#PG ...#MAC  WORDSIN   
F#PH ...#SKI  G4
F#PJ ...      FINMOVEZ %A,%B,%C,%D,%E,OUT,MVCH,%F,%G,MORE   
F#PK ...#SKI  G3
F#PL ...(   
F#PM ...      FADDRESS %A,%B
F#PN ...      LDX   0  %D   
F#PP ...      REMOVE %B,%C,0
F#PQ ...)   
F#PR ...#NOR
F#PS ...[??? WORDSOUT SECT CENT FGN 11 DOC  
F#PT ...#SKI
F#PW ...[ AS FOUTMOVE BUT DOES UP TO 1024 WORDS 
F#PX ...#MAC  WORDSOUT  
F#PY ...#SKI  G4
F#P^ ...      FINMOVEZ %A,%B,%C,%D,%E,IN,MVCH,%F,%G,MORE
F#Q2 ...#SKI  G3
F#Q3 ...(   
F#Q4 ...      FADDRESS %A,%B
F#Q5 ...      LDX   0  %D   
F#Q6 ...      REMOVE %B,%C,0
F#Q7 ...)   
F#Q8 ...#NOR
F#Q9 ...[??? REMOVE SECT CENT FGN 11 DOC
F#Q= ...#SKI
F#Q? ...[ TO MOVE (OR MVCH) UP TO 1024 WORDS (OR CHARS) 
F#Q# ...#MAC  REMOVE
F#Q* ...#SKI  %A<%B$%A  
F#QB ...(   
F#QC ...[                                   REVERSE ACCS IF A>B 
F#QD ...      REMOVE   %B,%A,%C,%D,%F,%E,%G 
F#QF ...#EXI
F#QG ...)   
F#QH ...#STR  MVCH,%D   
F#QJ ...#SKI
F#QK ...(   
F#QL ...      TXL   %C B513 
F#QM ...      BCS      MREMOVE1            [J IF <513 TO MOVE   
F#QN ...      MVCH  %A 0
F#QP ...MREMOVE1
F#QQ ...      MOD      MVCH %A 0,%C 
F#QR ...#EXI
F#QS ...)   
F#QT ...#STR  %E%F  
F#QW ...(   
F#QX ...      MOD      MOVE %A 0,%C 
F#QY ...      SBN   %C 512  
F#Q^ ...      ADX   %A %C   
F#R2 ...      ADX   %B %C                  [READY FOR NEXT MOVE IF ANY  
F#R3 ...      BNG   %C MREMOVE2 
F#R4 ...      BZE   %C MREMOVE2            [J IF ALL MOVED  
F#R5 ...      MOVE  %A 0                   [MOVE THE REST   
F#R6 ...MREMOVE2                           [NOW UPDATE ACCS AS REQUIRED 
F#R7 ...#STR  %E,S  
F#R8 ...      ADN   %A 512  
F#R9 ...#STR  %E,N  
F#R= ...      SBX   %A %C   
F#R? ...#STR  %F,S  
F#R# ...      ADN   %B 512  
F#R* ...#STR  %F,N  
F#RB ...      SBX   %B %C   
F#RC ...#STR  %G
F#RD ...      ADN   %C 512  
F#RF ...#EXI
F#RG ...)   
F#RH ...      TXL   %C B513 
F#RJ ...      BCS      MREMOVE3            [ IF CAN BE DONE IN ONE MOVE 
F#RK ...      MOVE  %A 0
F#RL ...      ADN   %A 512  
F#RM ...      ADN   %B 512  
F#RN ...MREMOVE3
F#RP ...      MOD      MOVE %A 0,%C 
F#RQ ...#NOR
F#RR ...[??? FADDRESS SECT CENT FGN 9 DOC   
F#S= ...#SKIP   G3  
F*2G ...(   
F*8Q    #MAC  FADDRESS [J.S.RAYNER          GEORGE 3 VERSION
F*NB     MOD  ADX   %B ADATUM,%A
F*WL ...#NOR
F*X? ...)   
F*XY ...#SKI       G4   
F*YK ...(   
F*^= ...#MAC  FADDRESS [J.S.RAYNER          GEORGE 4 VERSION
F*^X ...      OPTMOD   %D,FX2,SBX %B %C+1   
FB2J ...      LDX   0  %B   
FB39 ...      SLC   0  2
FB3W ...      TXL   0  BIT11
FB4H ...      BCS      MFADDRESS1   
FB58 ...      SBN   %B 1024 
FB5T ...      OPTMOD   %D,FX2,ADX %B %C+3   
FB6G ...      BRN      MFADDRESS2   
FB77 ...MFADDRESS1  
FB7S ...      OPTMOD   %D,FX2,ADX %B %C+2   
FB8F ...MFADDRESS2  
FB96 ...#NOR
FB9R ...)   
FB=D ...[??? LOCKCA SECT CENT FGN 9 DOC 
FB?6 ...#SKIP    G3 
FBFB ...(   
FBML    #MAC  LOCKCA   [J S.RAYNER         GEORGE 3 VERSION 
FC7=    #STR  %C
FCLW    (   
FD6G          LDX   %C %B   
FDL6     MOD  ADX   %C ADATUM,%A
FF5Q    )   
FF#2 ...#NOR
FF#9 ...)   
FF#D ...#SKI       G4   
FF#M ...(   
FF#W ...#MACRO         LOCKCA   
FF*5 ...#STR  1,%C  
FF*# ...      STO   1  JWSP1
FF*H ...#STR  2,%D  
FF*Q ...(   
FF*^ ...#STR  2,%C  
FFB8 ...      STO   2  JWSP2
FFBC ...      OPTMOD   %D,FX2,LDN 2 0   
FFBL ...)   
FFBT ...      LDX   0  HLOCK1(2)
FFC4 ...      BNZ   0  (GEOERR) 
FFC? ...      LDN   0  1024+CHREAD+CHWRITE  
FFCG ...      STO   0  HLOCK1(2)
FFCP ...      LDX   0  %B   
FFCY ...      ANDX  0  B2T13
FFD7 ...      STO   0  HLOCK1+1(2)  
FFDB ...      LDX   1  EVENT5(2)
FFDK ...      ANDX  1  B2T13
FFDS ...      STO   1  HLOCK1+2(2)  
FFF3 ...MLOCKCA1
FFF= ...      SRC   1  11   
FFFF ...      LDN   0  #0010
FFFN ...      BNG   1  MLOCKCA2 
FFFX ...      LDCT  0  #001 
FFG6 ...MLOCKCA2
FFG* ...      SMO      BGLOT
FFGJ ...      ADS   0  0(1) 
FFGR ...      BNG   2  MLOCKCA3 
FFH2 ...      LDX   1  EVENT6(2)
FFH9 ...      BZE   1  MLOCKCA4 
FFHD ...      STO   1  HLOCK1+3(2)  
FFHM ...      ORX   2  GSIGN
FFHW ...      LDN   0  1024 
FFJ5 ...      ADS   0  HLOCK1(2)
FFJ# ...      BRN      MLOCKCA1 
FFJH ...MLOCKCA3
FFJQ ...#STR  2,%D  
FFJ^ ...#SKIP   
FFK8 ...      ERX   2  GSIGN
FFKC ...MLOCKCA4
FFKL ...#STR  1,%C  
FFKT ...      LDX   1  JWSP1
FFL4 ...#STR  2,%D  
FFL? ...(   
FFLG ...#STR  2,%C  
FFLP ...      LDX   2  JWSP2
FFLY ...)   
FFM7 ...#STRING        %C   
FFMB ...      OPTMOD   %D,FX2,LDX %C EVENT5 
FFMK ...#NORMAL 
FFMS ...)   
FFN3 ...[??? FSUM SECT CENT FGN 9 DOC   
FFNG ...#SKIP    G3 
FFWQ ...(   
FG52    #     FSUM     THIS MACRO'SUMS'AN AREA OF AN OBJ PROG USING 127 INSTR   
FGJL    #MAC  FSUM     [J.S.RAYNER         GEORGE 3 VERSION 
FH4=     MOD  ADX   %C ADATUM,%A
FHHW          SMO      %D   
FJ3G          SUM   %B 0
FJ9Q ...#NOR
FJ=6 ...)   
FJ=G ...#     FSUM     THIS MACRO'SUMS'AN AREA OF A OBJ PROG USING 127 INSTR
FJ=W ...#SKI       G4   
FJ?= ...(   
FJ?L ...#MAC  FSUM     [J.S.RAYNER         GEORGE 4 VERSION 
FJ#2 ...      NGX   0  %C                  [CALL NO OF WORDS OF AREA THAT   
FJ#B ...      ANDN  0  #1777               [ARE WITHIN THE FIRST PAGE   
FJ#Q ...      BNZ   0  MFSUM1   
FJ*6 ...      LDN   0  1024 
FJ*G ...MFSUM1  
FJ*W ...      TXL   0  %D                  [CALC NO OF WORDS TO BE INCLUDED 
FJB= ...      BCS      MFSUM2              [IN FIRST SUM
FJBL ...      LDX   0  %D   
FJC2 ...MFSUM2  
FJCB ...      OPTMOD   %F,FX2,SBX %C %E+1   
FJCQ ...      OPTMOD   %F,FX2,ADX %C %E+2   
FJD6 ...      SMO      0
FJDG ...      SUM   %B 0                   [SUM AREA IN FIRST PAGE  
FJDW ...      SBX   0  %D                  [MINUS NO OF WORD LEFT   
FJF= ...      BZE   0  MFSUM3              [JUMP IF NONE
FJFL ...      NGX   0  0
FJG2 ...      STO   %B JWSP1               [PRESERVE SUM SO FAR 
FJGB ...      OPTMOD   %F,FX2,LDX %C %E+3   
FJGQ ...      SMO      0
FJH6 ...      SUM   %B 0                   [SUM AREA IN SECOND PAGE 
FJHG ...      ADX   %B JWSP1               [TOTAL SUM   
FJHW ...      BVSR     £                   [CLEAR V - PROBABLY UNNECESSARY  
FJJ= ...MFSUM3  
FJJL ...#NOR
FJK2 ...)   
FJKB ...[??? FILL SECT CENT FGN 9 DOC   
FJL= ...#SKIP    G3 
FJSG ...(   
FK2Q    #MAC  FILL     [J.S.RAYNER          GEORGE 3 VERSION
FKGB     MOD  ADX   %B ADATUM,%A
FL22          SMO      %B   
FLFL          STO   %C 0
FL^=          LDX   0  %D   
FMDW          BCT   0  MFILL1   
FMYG          BRN      MFILL2   
FND6    MFILL1  
FNXQ          SMO      %B   
FPCB          LDN   %C 1
FPX2          SMO      0
FQBL          MOVE  %B 0
FQW=    MFILL2  
FR4G ...#NOR
FR4R ...)   
FR54 ...#SKI       G4   
FR5* ...(   
FR5L ...#MAC  FILL     [J.S.RAYNER          GEORGE 4 VERSION
FR5X ...      STO   %C JWSP2
FR68 ...      LDX   0  JWSP2
FR6F ...      LDX   %C %D   
FR6Q ...      STO   %C JWSP1
FR73 ...      OPTMOD   %F,FX2,SBX %B %E+1   
FR7# ...      ANDN  %B #7777
FR7K ...      SBN   %B 1024 
FR7W ...      BPZ   %B MFILL4              [JUMP ALL IN SECOND PAGE 
FR87 ...      NGX   0  %B                  [WORDS IN FIRST PAGE 
FR8D ...      TXL   0  %C   
FR8P ...      BCC      MFILL1   
FR92 ...      LDX   %C 0                   [WORDS TO FILL IN FIRST PAGE 
FR9? ...MFILL1  
FR9J ...      ADN   %B 1024 
FR9T ...      OPTMOD   %F,FX2,ADX %B %E+2   
FR=6 ...MFILL5  
FR=C ...      LDX   0  JWSP2
FR=N ...      SMO      %B   
FR=^ ...      STO   0  0
FR?= ...      SBS   %C JWSP1
FR?H ...      BCT   %C MFILL2   
FR?S ...      BRN      MFILL6              [ONLY ONE WORD TO FILL   
FR#5 ...MFILL2  
FR#B ...      LDX   0  %C   
FR#M ...      SMO      %B   
FR#Y ...      LDN   %C 1
FR*9 ...      SMO      0
FR*G ...      MOVE  %B 0
FR*R ...MFILL6  
FRB4 ...      LDX   %C JWSP1
FRB* ...      BZE   %C MFILL3   
FRBL ...      LDN   %B 0
FRBX ...MFILL4  
FRC8 ...      OPTMOD   %F,FX2,ADX %B %E+3   
FRCF ...      BRN      MFILL5   
FRCQ ...MFILL3  
FRD3 ...#NOR
FRD# ...)   
FRDK ...[??? FPROGMOV SECT CENT FGN 9 DOC   
FRF2 ...#SKIP   G3  
FRM= ...(   
FRTG    #MAC  FPROGMOVE[J.S.RAYNER         GEORGE 3 VERSION 
FS*6     MOD  ADX   %B ADATUM,%A
FSSQ     MOD  ADX   %F ADATUM,%E
FT#B     MOD  MOVE  %B 0,%I 
FTS2    #NOR
FTS= ...)   
FTSG ...#   
FTSQ ...#   
FTT2 ...#SKI       G4   
FTT= ...(   
FTTG ...#MACRO         FPROGMOVE
FTTQ ...#SKIP          %F-%B-1  
FTW2 ...!     WRONG PARAMETERS  
FTW= ...      STO   1  JWSP1
FTWG ...      STO   2  JWSP2               [ DUMP ACCS. 
FTWQ ...      OPTMOD   %D,FX2,LDN 0 %C  
FTX2 ...      STO   0  JWSP3               [ -> OUT LOCKDOWN LIST.  
FTX= ...      OPTMOD   %H,FX2,LDN 1 %G  
FTXG ...      STO   1  JWSP4               [ -> IN  LOCKDOWN LIST   
FTXQ ...      SBX   %F 1(1) 
FTY2 ...      ADX   %F 2(1)                [ ABSOLUTE IN ACC
FTY= ...      NGX   0  %F   
FTYG ...      ANDN  0  #1777
FTYQ ...      BZE   0  MFP1 
FT^2 ...      LDN   0  1024 
FT^= ...MFP1  BXL   0  %I,MFP2  
FT^G ...      LDX   0  %I   
FT^Q ...MFP2  STO   0  JWSP6               [ = MIN(LENGTH,END OF PAGE) IN.  
FW22 ...      LDX   1  JWSP3
FW2= ...      SBX   %B 1(1) 
FW2G ...      ADX   %B 2(1)                [ ABSOLUTE OUT ACC.  
FW2Q ...      NGX   1  %B   
FW32 ...      ANDN  1  #1777
FW3= ...      BZE   1  MFP3 
FW3G ...      LDN   1  1024 
FW3Q ...MFP3  BXL   1  %I,MFP4  
FW42 ...      STO   1  JWSP5               [ MIN(LENGTH,END OF PAGE) OUT.   
FW4= ...MFP4
FW4G ...      LDN   2  0
FW4Q ...      BXL   1  0,MFP5   
FW52 ...      LDN   2  1
FW5= ...      LDX   1  0                   [ X1 = MIN   
FW5G ...MFP5
FW5Q ...      ACCSTO   %I,JWSP5(2)  
FW62 ...      MOVE  %B 0(1)                [ MOVE TO FIRST PAGE BOUNDARY
FW6= ...      BXE   1  %I,MFP7             [ NOT NECESSARY  
FW6G ...MFP6  SBS   1  JWSP5
FW6Q ...      SBS   1  JWSP6
FW72 ...      SMO      JWSP3(2) 
FW7= ...      LDX   0  3
FW7G ...      STO   0  %B(2)               [ UPDATE FIRST ACC   
FW7Q ...      ERN   2  1
FW82 ...      ADS   1  %B(2)               [ UPDATE SECOND ACC. 
FW8= ...      LDX   1  JWSP5(2) 
FW8G ...      BZE   1  MFP7A
FW8Q ...      MOVE  %B 0(1) 
FW92 ...MFP7A   
FW9= ...      BNG   2  MFP7 
FW9G ...      ORX   2  GSIGN
FW9Q ...      BRN      MFP6 
FW=2 ...MFP7
FW== ...      LDX   1  JWSP1
FW=G ...      LDX   2  JWSP2
FW=Q ...#NORMAL 
FW?2 ...)   
FW?= ...[??? PROGMOVE SECT CENT FGN 9 DOC   
FW#* ...#SKI           G3   
FW*4 ...(   
FW*R ...#MAC           PROGMOVE             [ONJ(:CENT)   G3 VERSION
FWBG ...[   
FWC9 ...      TRACE    %E,PROGMV3   
FWCY ...[   
FWDM ...      LDX   0  %E                  [LOAD NO. OF WORDS TO BE MOVED   
FWFB ...      MOD       ADX    %B  ADATUM,%A
FWG5 ...      MOD       ADX   %D   ADATUM,%C     [SO WE NOW HAVE REAL ADDR  
FWGS ...      SBN   0  513  
FWHH ...      BNG   0  MOV513              [J. IF LESS THAN 513 WORDS TO BE MVD 
FWJ= ...      MOVE  %B 0                   [DO A MOVE OF 512 WORDS  
FWJ^ ...      ADN   %B  512                [UPDATE  READ POINTER
FWKN ...      ADN   %D 512                 [UPDATE  WRITE  PPOINTER 
FWLC ...MOV513  
FWM6 ...      MOD      MOVE  %B  0,%E        [NOW MOVE REMAINING WORDS  
FWMT ...      LDX    1  FX1 
FWNJ ...      LDX    2  FX2                   [RESET X1 + X2
FWP? ...#NOR
FWPC ...)   
FWPH ...#SKI           G4   
FWPM ...(   
FWPR ...#MAC           PROGMOVE            [OWEN  N  JOHN      :CENT
FWPX ...[   
FWQ3 ...[   THIS  MACRO ENABLES AN AREA OF A PROGRAM TO BE COPIED TO AN AREA
FWQ7 ...[   OF ANOTHER  PROGRAM - NO CHECKS ARE CARRIED CONCERNING THE AREAS
FWQ? ...[                           INVOLVED AND IT IS ASSUMED THAT THE AREAS   
FWQC ...[                           HAVE BEEN CHECKB'ED 
FWQH ...[   
FWQM ...[       PARAMETERS  -    %A  =  PCA  ADDRESS CONCERNING AREA TO BE READ 
FWQR ...[   
FWQX ...[                        %B  =  VIRTUAL  -        -      -   -  -   -   
FWR3 ...[      (CONTENTS)   
FWR7 ...[                        %C  =  PCA      -        -      -   -  - WRITE 
FWR? ...[   
FWRC ...[[                        %D  =  VIRUAL  -        -      -   -  -    -  
FWRH ...[   
FWRM ...[                        %E  =  NO. OF WORDS TO BE MOVED
FWRR ...[   
FWRX ...[           %B+%D MUST NOT BE X0,X1,X2 + MUST BE CONSELUTIVE ACCUMULATOR
FWS3 ...[   
FWS7 ...[   
FWS? ...      TRACE    %E,PROGMV
FWSC ...[   
FWSH ...      ACCSTO   %E,JWSP5            [STORE NO. OF WORDS TO BE MOVED  
FWSM ...[   
FWSR ...      ACCSTO   %A,JWSP1 
FWSX ...      ACCSTO   %C,JWSP2            [STORE BOTH PCA'S
FWT3 ...[   
FWT7 ...      LDX   0  GSIGN
FWT? ...      ORS   0  JWSP1
FWTC ...      ORS   0  JWSP2               [SET B0 OF PCA'S SO PAGES NOT BRGHT  
FWTH ...[   
FWTM ...      STO   %B  JWSP3   
FWTR ...       STO   %D  JWSP4  
FWTX ...[                          REL POSITIONS STORED 
FWW3 ...      LDN    %B  0  
FWW7 ...      LDN   %D 0                   [SET ACCS=0 TO FORCE SEARCH FOR PAGE 
FWW? ...[   
FWWC ...[  THERE COME THE GUTS OF IT ALL  !!
FWWH ...[   
FWWM ...MAGAN   
FWWR ...      BNZ   %B MNTLOCA             [JUMP IF HAVE PAGE ADDR  
FWWX ...[   
FWX3 ...      LDX   1  JWSP1
FWX7 ...      LDX   2  JWSP3               [SET UP ENTRY FOR PAGE   
FWX? ...[   
FWXC ...      CALL  0  (HFIRST1)           [SEARCH  
FWXH ...[   
FWXM ...      LDX   %B 0                   [PUT PAGE ADDR IN %B 
FWXR ...[   
FWXX ...MNTLOCA 
FWY3 ...      BNZ   %D MNTLOCB             [JUMP IF PAGE ADDR OKAY  
FWY7 ...[   
FWY? ...      LDX   1  JWSP2
FWYC ...      LDX   2  JWSP4               [SET UP FOR SEARCH   
FWYH ...[   
FWYM ...      CALL  0  (HFIRST1)           [SEARCH  
FWYR ...[   
FWYX ...      LDX   %D 0                   [RESET CORRECT PAGE ADDR 
FW^3 ...[   
FW^7 ...MNTLOCB 
FW^? ...      LDX   1  JWSP3
FW^C ...      ANDN  1  #1777               [FIND REL ADDR IN PAGE (READ)
FW^H ...[   
FW^M ...       ANDX  %B  B2T13              [FIRST TAKE OUT PAGE DISPLACEMENT   
FW^R ...       ADX   %B  1                  [RELATIVIZE FOR START OF READ   
FW^X ...[   
FX23 ...      LDX   2  JWSP4
FX27 ...      ANDN  2  #1777               [FIND REL ADDR IN PAGE (WRITE)   
FX2? ...[   
FX2C ...       ANDX  %D  B2T13             [REMOVE PAGE DISLACEMENT 
FX2H ...       ADX   %D  2                  [RELITIVIZE FOR START OF WRITE  
FX2M ...[   
FX2R ...      BXL   1  2,MBGTR  
FX2X ...      LDX   2  1
FX33 ...[                                  [FIND THE LARGER REL ADDR
FX37 ...MBGTR   
FX3? ...      LDN   1  1024 
FX3C ...      SBX   1  2                   [X1=MAX MOVE ALLOWED TO BOUNDARY 
FX3H ...[   
FX3M ...      BXL   1  JWSP5,MTOMV  
FX3R ...      LDX   1  JWSP5               [TEST AREA WE CAN MOVE<AREA TO BE MUD
FX3X ...[   
FX43 ...MTOMV   
FX47 ...      NGN   0  513  
FX4? ...      ADX   0  1
FX4C ...[   
FX4H ...      BNG   0  ML513               [JUMP IF MOVE IS LESS THAN 513 WORDS 
FX4M ...[   
FX4R ...      MOVE  %B 0                   [DO A 512 WORD MOVE  
FX4X ...[   
FX53 ...      ADN   %B 512  
FX57 ...      ADN   %D 512                 [UPDATE THE REAL ADDRESS'S   
FX5? ...[   
FX5C ...ML513   
FX5H ...      MOVE  %B 0(1)                [DO THE MOVE 
FX5M ...[   
FX5R ...      SBS   1  JWSP5               [REDUCE NO. OF WORDS TO BE MOVED 
FX5X ...[   
FX63 ...      LDX   0   JWSP5   
FX67 ...      BZE   0  MEND                [JUMP IF ALL WORDS MOVED 
FX6? ...[   
FX6C ...      ADS   1  JWSP3
FX6H ...      ADS   1  JWSP4               [UPDATE VIRTUAL ADDRESS'S
FX6M ...[   
FX6R ...      LDX   1  JWSP4
FX6X ...      ANDN  1  #1777               [FIND REL POS IN PAGE
FX73 ...[   
FX77 ...      BNZ   1  MNOTB               [ARE WE ON BOUNDARY  I.E. X1=0   
FX7? ...[   
FX7C ...      LDN   %D 0                   [YES - SO FORCE SEARCH NEXT TIME 
FX7H ...[   
FX7M ...      LDX   1  JWSP3
FX7R ...      ANDN  1  #1777
FX7X ...[   
FX83 ...      BNZ   1  MAGAN               [JUMP IF READ AREA NOT ON PAGE BOUD  
FX87 ...[   
FX8? ...MNOTB   
FX8C ...      LDN   %B 0                   [ZEROIZE M/C ADD TO FORCE SEARCH 
FX8H ...      BRN      MAGAN               [ROUND AGAIN 
FX8M ...[   
FX8R ...MEND
FX8X ...      LDX   1  FX1  
FX93 ...      LDX   2  FX2                 [AND THATS IT
FX97 ...#NOR
FX9? ...)   
FX9C ...[??? CHARS SECT CENT FGN 9 DOC  
FX9H ...#MAC  CHARS    [JSRAYNER.THIS MACRO GENERATE A WORD OF 4 CHARS GIVEN BY 
FX=W                   +0   
FXQG    #STR  %A
FY=6    (   
FYPQ    #FID  0     5  %A   
F^9B    #SKIP %A>63-63  
F^P2    !JSR CHARS1 
G28L    )   
G2N=    #STR  %B
G37W    (   
G3MG    #FID  6     11 %B   
G476    #SKIP %B>63-63  
G4LQ    !JSR CHARS2 
G56B    )   
G5L2    #STR  %C
G65L    (   
G6K=    #FID  12    17 %C   
G74W    #SKIP %C>63-63  
G7JG    !JSR CHARS3 
G846    )   
G8HQ    #STR  %D
G93B    (   
G9H2    #FID  18    23 %D   
G=2L    #SKIP %D>63-63  
G=G=    !JSQ CHARS4 
G=^W    )   
G?FG    #NOR
G?P# ...[??? TRUSTED SECT CENT FGN 9 DOC
G?^6    #     THIS MACRO TESTS WHETHER A PROGRAM IS ALLOWED TO USE ANY OF THE   
G#DQ    #     TRUSTED FACILITIES AVAILABLE. 
G#YB    #     %A=POINTER TO PCA OF PROGRAM  
G*D2    #     %B=LABEL TO JUMP TO IF THE FACILITY IS NOT AVAILABLE  
G*XL    #     %C=Q,%D=R,%E=S,%F=T-THESE ARE OPTIONAL AND SPECIFY THE STATUSES   
GBC=    #     BEING TESTED FOR. 
GBWW    #   
GCBG    #MAC  TRUSTED   
GCW6    #DEF  MTRU=0
GD*Q    #DEF  MTRUQ=#100
GDTB    #DEF  MTRUR=#40 
GF*2    #DEF  MTRUS=#20 
GFSL    #DEF  MTRUT=#10 
GG#=          LDCT  0  MTRU%C+MTRU%D+MTRU%E+MTRU%F  
GGRW          MOD   ORX 0 ATRUST,%A 
GH?G          MOD   SBX 0 ATRUST,%A 
GHR6          BNZ   0  %B   
GJ=Q    #FRE  MTRU,MTRUQ,MTRUR,MTRUS,MTRUT  
GJQB    #NOR
^^^^ ...14502610001300000000