MACROSAJE

(George Source)

MACROSAJE.txt
2249 ...[  THIS MACRO FILE IS OWNED JOINTLY BY COMM AND DIAG
226D ...[ COMM OWNS THE FIRST HALF (UP TO ORIF) AND DIAG OWNS THE REST  
228N ...[     4 MACRO DEFINITIONS.  
22CB ...[     --------------------  
22L4 ...[   
22L7 ...[??? EDITRP SECT COMM FGN 8 DOC 
22L= ...[   
22L* ...[     MACRO TO CONTROL THE INCLUSION OF THE ENHANCEMENT 
22LD ...[     TO REDUCE THE PROBLEM OF LARGE REPEATED EDITS 
22LH ...[     HOLDING UP OBJECT PROGRAMS.   
22LL ...[   
22LP ...#MAC  EDITRP                       [EDITRP-IF %A ON OR ABSENT SET UP
22LS ...[                                  [NO. OF CHAPTER CHANGES BETWEEN  
22LX ...[                                  [CALLS TO MACRO LETOPRUN=%B OR 10
22M2 ...[                                  [EDITRP IS A RESTORE-TIME MACRO. 
22M5 ...#STR  %A,ON                        [INCLUDE IF %A NOT ON OR NOT ABSENT  
22M8 ...(   
22M? ...#STR  OFF,%A
22M# ...(   
22MB ...!  PARAMETER MUST BE ON OR OFF  
22MF ...#EXI                               [EXIT IF %A IS OFF OR INVALID
22MG ...)   
22MH ...#MEN  EDITOR
22MJ ...#TRA  K60EDITOR 
22MK ...      BRN      K61EDITOR
22ML ...#END
22MM ...)   
22MN ...#STR  %A,ON 
22MP ...#SKI
22MQ ...(   
22MR ...#MEN  FIXED 
22MS ...#TRA  EDRPCHCH  
22MT ...#SKI  %B
22MY ... +%B
22N3 ...#SKI  %B
22N6 ...#SKI
22N9 ... +10
22N# ...#END
22NC ...#MEN  EDITOR
22NG ...#TRA  K60EDITOR 
22NK ...      NULL  
22NN ...#END
22NP ...)   
22NR ...#NOR
22NW ...[??? LETOPRUN SECT COMM FGN 8 DOC   
22N^ ...[     MACRO TO ALLOW OBJECT PROGRAM TO RUN DURING LARGE 
22P4 ...[     REPETITIVE EDITS-ENHANCENENT 8159.
22P7 ...[   
22P9 ...#MAC LETOPRUN   
22P? ...[ THE MACRO SUSPENDS THE CURRENT ACTIVITY IF IT FINDS A NUMBER OF   
22P* ...[ RUNNABLE OBJECT PROGRAMS EQUAL TO THE NUMBER OF PROCESSORS.   
22PC ...[ IT SEARCHES THE PROGRAM RING, FOLLOWING THE 'BPTR' TO IMPROVE 
22PF ...[ THE CHANCE OF FINDING A MILL-BOUND PROGRAM, FOR   
22PH ...[ AN ELEMENT FOR MEMBER 0.  
22PK ...[ CHECKS ARE MADE THAT THE PROGRAM IS NOT RUNNING AND IS NOT STOPPED.   
22PM ...[ THE 4 MELS ARE EXAMINED FOR ONE WHICH IS NOT SUSPENDED.   
22PP ...[ THE CURRENT ACTIVITY IS SUSPENDED IF THE COUNT OF PROCESSORS EXPIRES. 
22PR ...[ THE COUNT IS DECREMENTED WHEN A NON-SUSPENDED MEL IS FOUND.   
22PT ...      LDCH  2  APROCNO      [NUMBER OF PROCESSORS   
22PX ...      LDN   1  BPROG        [PROGRAM RING BASE  
22P^ ...M1LOP BZE   2  M2LOP
22Q3 ...M5LOP LDX   1  BPTR(1)      [FOLLOW BACKWARD POINTER
22Q5 ...      LDN   0  GMEL 
22Q7 ...      BXE   0  1,M3LOP      [GIVE UP IF GEORGE'S MEL FOUND - IT'S   
22Q9 ...      LDCH  0  ARM(1)       [GEORGE WE WANT TO SUSPEND! 
22Q? ...      BNZ   0  M5LOP        [CONTINUE SEARCH IF NOT MEMBER 0
22Q* ...      SMO      APD(1)       [ADDRESS OF 'ASTOP' 
22QC ...      LDXC  0  ANM-ASTOP
22QF ...      BCS      M5LOP        [CONTINUE SEARCH IF PROGRAM IS RUNNING  
22QH ...      SMO      APD(1)   
22QK ...      LDX   0  0            [PICK UP ASTOP  
22QM ...      BNZ   0  M5LOP        [CONTINUE SEARCH IF PROGRAM IS STOPPED  
22QP ...[ CHECK EACH MEL, DECREMENT COUNT IF A NON-SUSPENDED MEL IS FOUND   
22QR ...      LDX   0  ASU(1)   
22QT ...      BZE   0  M4LOP
22QX ...      LDX   0  ASU+(ASU2-ASU1)(1)   
22Q^ ...      BZE   0  M4LOP
22R3 ...      LDX   0  ASU+(ASU3-ASU1)(1)   
22R5 ...      BZE   0  M4LOP
22R7 ...      LDX   0  ASU+(ASU4-ASU1)(1)   
22R9 ...      BNZ   0  M5LOP
22RC ...M4LOP BCT   2  M1LOP
22RG ...M2LOP COOR3    #41  
22RK ...M3LOP LDX   1  FX1  
22RN ...      LDX   2  FX2  
22RR ...#NOR
22SQ ...[                                  DICK RUSBRIDGE   
233D ...[??? EDSTAT SECT COMM FGN 8 DOC 
23=6 ...[   
23DS ...[   
23MG ...[     MACRO TO SWITCH ON THE EDIT SPECIAL FOR PLESSEY   
23W8 ...[     THAT OUTPUTS THE JOBTIME AT THE START AND END 
244W ...[     OF AN EDIT, AND ALSO THE TOTAL RECORD TRANSFERS   
24?J ...[     PERFORMED DURING THE EDIT.
24GB ...#   
24GQ ...#MAC  EDSTAT
24H6 ...#MEN  EDIT  
24HG ...#TRA  ESP1  
24HW ... NULL   
24J= ...#END
24JL ...#MEN EDITORA
24K2 ...#TRA ESP10  
24KB ... NULL   
24KQ ...#END
24L6 ...#MEN EDITPT 
24LG ...#TRA ESP2   
24LW ... ADS 7 IEOS(2)  
24M= ...#TRA ESP3   
24ML ... ADS 7 IEOS(2)  
24N2 ...#TRA ESP4   
24NB ... NULL   
24NQ ...#TRA ESP5   
24P6 ... NULL   
24PG ...#TRA ESP6   
24PW ... ADS 4 IEOS(2)  
24Q= ...#TRA ESP7   
24QL ... ADS 4 IEOS(2)  
24R2 ...#TRA ESP8   
24RB ... ADS 7 IEOS(2)  
24RQ ...#TRA ESP9   
24S6 ... ADS 7 IEOS(2)  
24SG ...#END
24SW ...#MEN EDWRITE
24T= ...#TRA ESP
24TL ... ADS 4 IENS(2)  
24W2 ...#END
24WB ...#NOR
24WJ ...[??? EDERM SECT COMM FGN 8 DOC  
24WQ ...#   
24X6 ...#   
24XQ    #MAC  EDERM                        [EDERM - GENERATE ERROR MESSAGE %C   
25CB    IERR%A +%B                         [OF CHARACTER LENGTH %B AND LABEL IT 
25X2     %BH%C                             [%C. MUST ONLY BE USED IN SEGMENT
26BL    #NOR                               [EDITER  
26LD ...[??? EDERR SECT COMM FGN 8 DOC  
26W=    #   
27*W    #   
27TG    #MAC  EDERR                        [EDERR - OUTPUT THE ERRROR MESSAGE   
28*6 ... LDN 7 IERR%A                      [LABELLED %A, IN COMERR OR COMMENT   
28SQ ... DOWN EDITER,1                     [CATEGORY, IF FORMER SET COMERR FLAG 
29#B ...#NOR                               [AND RETURN TO ONE AFTER MACRO   
29J8 ...[??? EDCOM SECT COMM FGN 8 DOC  
29S2    #   
2=?L    #MAC  EDCOM                        [EDCOM - OUTPUT THE COMMENT MESSAGE  
2=R=     LDN 7 IERR%A                      [LABELLED %A IN THE COMMENT CATEGORY 
2?=W     DOWN EDITER,2                     [AND REUTRN TO ONE AFTER MACRO.  
2?QG    #NOR
2#2# ...[??? EDCOMERR SECT COMM FGN 8 DOC   
2#=6    #   
2#*= ...#MAC  EDCOMERR                     [EDCOMERR - OUTPUT THE ERROR 
2#DB ... LDN 7 IERR%A                       [MESSAGE %A IN COMMAND ERROR
2#HG ... DOWN EDITER,5                     [CATEGORY, SET COMERR FLAG   
2#LL ...#NOR                               [AND RETURN TO ONE AFTER MACRO   
2#N8 ...[??? IETS SECT COMM FGN 8 DOC   
2#PQ    #   
2*9B    #MAC  IETS                         [IETS - TABLE SETUP MACRO. THIS MACRO
2*P2    #DEF 25?=1?                        [INSERTS THE VALUE OF %B MODULO *77  
2B8L    #LIS  0 
2BN=    #STR %C                            [FROM THE START OF THE TABLE IS GIVEN
2C7W    #DEF 21?=%C                        [BY %A, EXPRESSED AS THE NUMBER OF   
2CMG    #STR %B                            [SIX BIT FIELDS. %A MAY BE EITHER AN 
2D76    #DEF 22?=%B                        [OCTAL NUMBER OR A CHARACTER. IF IT  
2DLQ    #SKI 22?/64                        [IS A CHARACTER ITS NUMERIC VALUE IS 
2F6B    ! IETS ADDRESS OUT OF RANGE !      [TAKEN. IF %C IS OMITTED IT IS ASSUM 
2FL2    #STR #,%A                          [ED THAT THE MACRO HAS BEEN USED 
2G5L     4H000%A                           [PREVIOUSLY AND THE SAME %C APPLIES; 
2GK=    #STR #,%A                          [SIMILARLY FOR %B. FOR ANY ONE TABLE 
2H4W    #STR                               [THERE MUST ONLY BE ONE OF ANY %A
2HJG     %A                                [BECAUSE #FID ADDS IN. THE TABLE AT  
2J46    #DEF 24?=0?-1                      [%C MUST BE PREVIOUSLY ZEROISED. 
2JHQ    #DEF 20?=34?+24?+0]                [THIS MACRO SUPPRESSES MOST OF THE   
2K3B    #DEF 23?=20?/4*4                   [LISTING BECAUSE IF IT DIDNT THE 
2KH2    #TRA 20?/4+21?+1                   [LISTING WOULD BE VERY MESS INDEED.  
2L2L    #LIS 25?                           [NOTE THE CUNNING MANIPULATION OF
2LG=    #FID 20?-23?*6 20?-23?*6+5 22?     [QUERY VARIABLES. THIS AVOIDS AN 
2L^W    #TRA 24?                           [INTERLUDE, WHICH WOULD BE VERY  
2MFG    #NOR                               [INEFFICIENT.
2MP# ...[??? IET SECT COMM FGN 8 DOC
2M^6    #   
2NDQ    #   
2NYB    #MAC  IET                          [IET - A RECURSICE VERSION OF IETS   
2PD2     IETS %A                           [WHERE %B AND %C ARE ALREADY SET UP. 
2PXL    #STR %B 
2QC=     IET %B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T,%U,%V,%W  
2QWW    #NOR
2R6N ...[??? FFFNORM SECT COMM FGN 8 DOC
2RBG    #   
2RW6    #   
2S*Q    #MAC  FFFNORM                      [FFFNORM - FANTASTICALLY FAST FNORM  
2STB     DOWN FFFNORM,1                    [CONVERTS <FILE-DESCRIPTION> POSSIBLY
2T*2    #STR %A                            [INCLUDING <DETAILS> HELD IN A FNAME 
2TSL     BRN %A                            [INOT A FABSNB. IF ERROR EXITS TO %A 
2W#=    #STR %A                            [(OPTIONAL). REPLIES SET ARE OK, 
2WRW    #SKI                               [NAMEFORM, ADJUNCTS(NOT DEALT WITH)  
2X?G     NULL                              [AND CHNUMERR.   
2XR6    #NOR
2Y2Y ...[??? ORIF SECT DEVT FGN 9 DOC   
2Y=Q    #   
2YQB    #   
2^=2    #MAC  ORIF  
2^PL    #STR  %C
329= ...#DEF  26?=26?*256+%C
32NW    #STR  %C
338G    #SKI
33N6 ...#DEF  26?=26?*256+GEORGE
347Q    #STR  %B
34MB ...#DEF  25?=25?*256+%B
3572    #STR  %B
35LL    #SKI
366= ...#DEF  25?=25?*256+G3ISSUE   
36KW ...#DEF  24?=24?*256+%A
375G    #NOR
37*# ...[??? INCIF SECT DEVT FGN 8 DOC  
37K6    #   
384Q    #   
38JB    #MAC  INCIF 
3942    #STR  %C
39HL    #DEF  26?=%C
3=3=    #STR  %C
3=GW    #SKI
3?2G    #DEF  26?=GEORGE
3?G6    #STR  %B
3?^Q    #DEF  25?=%B
3#FB    #STR  %B
3#^2    #SKI
3*DL    #DEF  25?=G3ISSUE   
3*Y=    #DEF  24?=%A
3BCW    #NOR
3BMN ...[??? SEG SECT DEVT FGN 9 DOC
3BXG    #   
3CC6    #   
3CWQ ...#MAC  SEG                          [UPDATED FOR 8.64 +8.67  
3DBB ...#DEF  M1SEG=24?/65536&255$G3MARK<1  
3DW2 ...#DEF  M2SEG=24?/256&255$G3MARK<1
3F*L ...#SKI  24?&255$G3MARK<M1SEG<M2SEG$1 [SKIP WRONG MARK 
3FT= ...(   
3G#W ...#DEF  M3SEG=25?/65536&255$G3ISSUE<1 
3GSG ...#DEF  M4SEG=25?/256&255$G3ISSUE<1   
3H#6 ...#SKI  25?&255$G3ISSUE<M3SEG<M4SEG$1 [SKIP WRONG ISSUE   
3HRQ ...(   
3J?B ...#DEF  M5SEG=26?/65536&255$GEORGE<1  
3JR2 ...#DEF  M6SEG=26?/256&255$GEORGE<1
3K=L ...#SKI  26?&255$GEORGE<M5SEG<M6SEG$1 [SKIP WRONG GEORGE   
3KQ= ...(   
3MNQ    #INC %A 
3N8B    )   
3NN2    )   
3P7L    )   
3PM=    #FRL
3Q6W    #DEF 24?=#77777777  
3QLG    #DEF 25?=#77777777  
3R66    #DEF 26?=#77777777  
3R75 ...#STR   G,%E 
3R84 ...#STR
3R93 ...    SEGMES   %E 
3R=2 ...#STR   G,%F 
3R=^ ...#STR
3R?Y ...    SEGMES   %F 
3R#X ...#STR   G,%G 
3R*W ...#STR
3RBT ...    SEGMES   %G 
3RCS ...#STR   G,%H 
3RDR ...#STR
3RFQ ...      SEGMES   %H   
3RGP ...#STR   G,%I 
3RHN ...#STR
3RJM ...      SEGMES   %I   
3RKQ    #SEG %A%B   %C  
3S5B     8H%A   
3SK2    #STR %D 
3T4L    (   
3TJ=    #OPT K6%A=K6ALLGEO>K6%D            [LEVELS IF %D PRESENT
3W3W    #OPT  K0%A=K0ALLGEO>K0%D>0         [LEVELS IF %D PRESENT
3WHG    #LIS K0%A>K0ALLGEO>K0%D>0   
3X36    )   
3XGQ    #STR %D 
3Y2B    #SKI
3YG2    (   
3Y^L    #OPT K6%A=K6ALLGEO                 [LEVELS IF %D ABSENT 
3^F=    #OPT K0%A=K0ALLGEO>0               [LEVELS IF %D ABSENT 
3^YW    #LIS K0%A>K0ALLGEO>0
42DG    )   
42Y6    #NOR
437Y ...[??? CLO7 SECT DEVT FGN 8 DOC   
43CQ    #   
43XB    #   
44C2    #MAC  CLO7                         [UNLOAD TAPE %A  
44WL    #INT
45B=    MCLO7 #40501007,0   
45TW          LDN   7  %A   
46*G          PERI  7  MCLO7
46T6          EXIT  0  0
47#Q    #JUM  MCLO7+2   
47SB    #NOR
4848 ...[??? ISSUE SECT DEVT FGN 8 DOC  
48#2    #   
48RL    #   
49?=    #MAC  ISSUE 
49QW ...[     THIS MACRO CHECKS THE ISSUE NUMBER OF A SET OF MENDS  
4==G    #SKI  +%A-G3ISSUE   
4=Q6    (   
4?9Q    #INT
4?PB    M1ISSUE     20HAMENDING WRONG ISSUE 
4#92    M2ISSUE     20:M1ISSUE  
4#NL    M3ISSUE  SUSTY M2ISSUE  
4*8=          EXIT  0  0
4*MW    #JUM  M3ISSUE   
4B7G    )   
4BM6    #NOR
4BWY ...[??? MEND SECT DEVT FGN 8 DOC   
4C6Q    #   
4CLB    #   
4D62 ...[     MACRO MEND [MFN   
4DKL    #   
4F5= ...[     THIS MACRO MUST BE USED TO INTRODUCE 'NO PART' AND 'MULTI PART'   
4FJW ...[                                                                MENDS  
4G4G    #   
4GJ6    #MAC  MEND  
4GP# ...#SKI  67?&#171700<1$1   
4GWG ... MENDON %A  
4H3Q    #STR  %B
4HHB    #STR
4J32    (   
4JGL    ! MEND %A HAS NO
4K2=    ! BUG NUMBER
4KFW    )   
4K^G    #SKI %A!<#40000000$#40000000<1*%A!>75?$75? [IF %A COMPILABLE (& NOT 
4LF6    (                                          [ALREADY COMPILED)   
4LYQ    #MEN  LEND,%A,%B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T  
4M3* ...#SKI   %A>80503$80503   
4M5Y ...(   
4M8H ...#SKI  %A<80600$80600
4M?6 ...#ALT  FIXMEND = %A>FIXMEND  
4M*P ...)   
4MDB    #END
4MY2    #NOR
4NCL ...[??? MENDON SECT DEVT FGN 8 DOC 
54L=    #   
555W ...[     MACRO MENDON [MFN 
55KG    #   
5656 ...[     THIS MACRO CAUSES MENDS TO BE COMPILED ALTHOUGH THEIR 
56JQ ...[     STATUSES ARE SUCH THAT THEY WOULD NORMALLY NOT BE INCLUDED
574B    #   
57J2    #MAC  MENDON
57MX ...#UNS %A!+1  
57RS ...#SKI
57XP ...#STA %A,75?+1   
583L    #SKI  %A!$#40000000<1$1 
58H=    (   
592W    ! MEND %A HAS   
59GG    ! ALREADY BEEN COMPILED 
5=26    )   
5=FQ    #SKI  %A!$#40000000 
5=^B    #STA  %A,75?+1  
5?F2    #STR  %B
5?YL     MENDON %B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T,%U,%V  
5#D=    #NOR
5#XW ...[??? SEGMES SECT DIAG FGN 18
5*CG ...[   
5*X6 ...[ MACRO SEGMES  
5BBQ ...[   
5BWB ...[   
5CB2 ...[ THIS MACRO SETS BITS IN GMESBITS  
5CTL ...[ IF MES ITEMS ARE INCLUDED 
5D*= ...[   
5DSW ...#MAC   SEGMES   
5F#G ...#DEF   21? = 0  
5FS6 ...#STR   G3,%A
5G?Q ...#STR
5GRB ...#DEF  21? = 1   
5H?2 ...#STR   G5,%A
5HQL ...#STR
5J== ...#DEF   21? = 1  
5JPW ...#STR   G4,%A
5K9G ...#STR
5KP6 ...#DEF   21? = 1  
5L8Q ...#UNS   %A   
5LNB ...(   
5M82 ...   MACINT   
5MML ...#TRA   GMESBITS + 21?   
5N7= ...    20?^B%A 
5NLW ...#END
5P6G ...#EXI
5PL6 ...)   
5Q5Q ...   MACINT   
5QKB ...#TRA   GMESBITS + 21?   
5R52 ...   (20?$B%A)<20?
5RJL ...#END
5S4= ...#EXI
5SHW ...#NOR
5T3G ...[??? MACINT SECT DIAG FGN 18
5TH6 ...[   
5W2Q ...[ MACRO MACINT  
5WGB ...[   
5X22 ...[ THIS IS AN INTERLUDE WHICH MENDS FIXED AND SETS THE   
5XFL ...[ BITS IN GMESBITS FOR SEGMES   
5X^= ...[   
5YDW ...#MAC   MACINT   
5YYG ...#MEN   FIXED
5^D6 ...#TRA   GMESBITS + 2 
5^XQ ...#INT
62CB ...#ORD
62X2 ...SLINK      +0   
63BL ...START  STO  0  SLINK
63W= ...      LDX  0  START-3+21?   
64*W ...      STO  0  18? + 3] + 20 
64TG ...      LDX  0  SLINK 
65*6 ...      EXIT  0  0
65SQ ...#JUM   START
664J ...#EXT
66#B ...#NOR
^^^^ ...327446600021