ALASB867

(George Source)

Macros used: ACROSS, ACROSSVAR, ALTLEN, ALTLENG, BXE, BXGE, BXU, CATMASK, CLOSE, COMBRKIN, COMERRX, CPHOOK, CUBSCHEC, DOWN, ENDREC, FILECOUNT, FREECORE, GETCLB, GETCPB, HLSINFRT, HUNTW, MASK, MENDAREA, MFREEW, MHUNTW, MONOUT, NAME, OPEN, OUTEXES, OUTPAR, RESTART, SEG, SEGENTRY, TRACE, V, VFREEW, XYZ

ALASB867.txt
228Y ...      SEG      ALASB,,CENT(COMMAND PROCESSOR),,G277,G400
22CW ...[   
22LS ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
22TQ ...[     THIS EXCLUDES CODE UNDER #SKI G277
234N ...[   
23?L ...#OPT G277 = 0   
23GJ ...#SKI G277&1 
23PG ...# WITH UGUG EDIT M277 (ONLY MONOUT COMMANDS IF NECESSARY)   
23RS ...#UNS G400   
23W6 ...#     THIS CHAPTER IS MODIFIED FOR G3PLUS-IH MK2
23YG    [ THE ENTRY POINTS  
24D6    [     THESE ENTRY POINTS MUST BE KEPT FIXED WITHIN THE SEGMENT  
24XQ          SEGENTRY K1ALASB,QENTRY1     [ FROM ALAS  
25CB          SEGENTRY K2ALASB,QENTRY2     [ FROM VERBCLAS, MACRALAS
25X2          SEGENTRY K3ALASB,QENTRY3     [ FROM ALAS (ERROR CASE) 
26BL          SEGENTRY K4ALASB,QENTRY4     [ FROM ALAS (ERROR CASE) 
26W=          SEGENTRY K5ALASB,QENTRY5     [ FROM OBEY  
27*W          SEGENTRY K90ALASB,QENTRY90   [ FROM FULSTART  
27H4    #SKI  JWPHASE4  
27N=          SEGENTRY K21ALASB,QENTRY21
27TG    [   
28*6    [   
28SQ    [     THIS SEGMENT IS ENTERED FROM SEGMENT ALAS.IT EXTRACTS THE 
29#B    [     VERB FROM THE CLB AND HANDS IT TO THE SEGMENTS VERBCLAS AND   
29S2    [     MACRALAS FOR CLASSIFICATION.IT THEN ANALYSES AND STORES   
2=?L    [     EACH PARAMETER OF  THE CURRENT COMMAND IN THE CPB/CALAS BLOCK 
2=R=    [     THE CURRENT COMMAND IS THEN ENTERED   
2=YD ...#SKI G277&1 
2?5L ...UA69Z CATMASK  CM   
2?=W    VINC           +INCVERB 
2?QG    VTL            +INVERB  
2#=6    VJONG          +JONG
2#PQ    VMDF           +HLMDF   
2*9B    VERB           4HVERB   
2*P2    VSTOP          +HSTOP   
2B8L    VJMAXPAR       +JMAXPAR 
2BN=    MXCHMESS       +JMAXCHARS   
2C7W    MASK           #17777777
2D76    PARA           4HPARA   
2DLQ    MARA           4HM(00   
2F6B    SPACE          #20  
2FL2    VERBLEN        +12  
2G5L    TSTART         #30303030
2GK=    TSTOP          #31313131
2H4W    PA             #41  
2H#N    PM             #55  
2HJG    PZ             #73  
2J46    THESISL        #30  
2JHQ    THESISR        #31  
2K3B    QUOTES         #22  
2KH2    SEPARATOR      #34  
2L2L    THASH          #23  
2LG=    TEN            +10  
2L^W    ONE            +1   
2MFG    TWO            +2   
2M^6    PARF
2NDQ    #HAL  APARAFIR,1
2NYB    [   
2P9Q    PCOM                               [THIS COMMAND CAN HAVE A LONG FIRST  
2PH6                    4HIF               [  PARAMETER 
2PSG    PCOMA                              [THESE COMMANDS CAN HAVE ANY KIND OF 
2Q5W                   4HWE                [  PARAMETER LONG
2QC=                   4HRO 
2QRB    PCOMB                              [THESE COMMANDS CAN HAVE A 'PARAM (' 
2R7G                   4HEN                [  PARAMETER LONG
2RHN                   4HRM 
2RNW                   4HLE 
2RW6                   4HOB 
2S*Q                   4HJB 
2STB                   4HRJ 
2T58                   4HMR 
2T*2    PCOMC   
2TSL    [   
2W#=    PUNT  MHUNTW   2,CPB,CALAS         [ THE FIND S/R FOR ALTLENG   
2WRW          EXIT  1  0
2X?G    [     ROUTINE FOR STORING CHARACTERS IN THE PARAMETER BLOCK 
2XR6    [     ON ENTRY, EITHER X5=1 AND X6 CONTAINS NEXT CHAR TO BE STORED IN   
2Y=Q    [     THE CPB/CALAS BLOCK, OR X5=0 IN WHICH CASE THE END OF THE PARAM   
2YQB    [     HAS BEEN REACHED. 
2^=2    STOREPB 
2^PL          LDX   4  APTNECHA(2)         [LOAD POS. OF NEXT CHAR IN BLOCK 
329=          SLC   4  2
32NW          ADX   4  5                   [ADD NO OF CHARS TO BE TRANSFERRED   
338G          ADN   4  3                   [ROUND UP
33N6          SRL   4  2
347Q          SBN   4  A1                  [SUBTRACT RED TAPE   
34MB    [     X4 NOW CONTAINS THE LOGICAL LENGTH OF THE BLOCK WHEN THE PRESENT  
3572    [     CHARACTERS HAVE BEEN STORED   
35LL          BNZ   5  P8                  [J IF WE ARE NOT TERMINATING A PARAM 
366=          ADN   4  1                   [ADD 1 TO REQUIRED AMOUNT OF CORE
36KW    P8    LDX   3  ALOGLEN(2)          [DO WE HAVE ENOUGH CORE  
375G          BXGE  3  4,POT       [ JUMP IF YES
37K6          ADN   3  AVELINE             [ADD AVELINE TO AVAILABLE CORE   
384Q          LDX   7  2                   [POINTER TO EXTEND BLOCK IN X7.  
38JB          SBX   0  FX1  
3942          SMO      FX2  
39HL          STO   0  EXT+1
3=3=          ALTLENG  7,3,PUNT            [INCREASE BLOCK SIZE 
3=GW          MHUNTW   2,CPB,CALAS         [FIND PB 
3?2G          SMO      FX2  
3?G6          LDX   0  EXT+1
3?^Q          ADX   0  FX1  
3#FB    POT   BZE   5  P9                  [BRANCH IF WE HAVE TO TERMINATE PARAM
3#^2          LDX   3  APTNECHA(2)         [LOAD PTR TO NEXT CHAR   
3*DL          SMO      2                   [ STORE CHAR IN X6 IN THE CPB/CALAS  
3*Y=          DCH   6  0(3)                [   BLOCK AND UPDATE THE POINTER 
3BCW          BCHX  3  £                   [   APTNECHA 
3BXG          STO   3  APTNECHA(2)  
3CC6          SMO      APTBEPAR(2)  
3CWQ          LDX   4  0(2) 
3DBB          ANDN  4  #7777
3DW2          SBN   4  511                 [ IS PARAMETER 'LONG' I.E. AT LEAST  
3F*L          BNG   4  POKAY               [   512 CHARACTERS LONG  
3FT=          SMO      FX2                 [ IS A 'LONG' PARAMETER KNOWN TO BE  
3G#W          LDX   3  AWORK2              [   ACCEPTABLE IN THIS CASE? 
3GSG          BZE   3  POKAY               [ JUMP IF YES
3H4#          BXE   3  PCOM(1),PSET        [ WITH IF,LONG 1ST PARAM IS OK   
3H#6          LDX   4  APARANUM(2)         [ IS THIS THE FIRST PARAMETER?  J IF 
3HRQ          BZE   4  PERR                [   YES.  FIRST PARAMS CANNOT BE LONG
3J?B          LDN   4  PCOMB-PCOMA         [ IS THIS A COMMAND WHICH CAN HAVE   
3JR2    PLOP1 SMO      4                   [   ANY KIND OF PARAMETER LONG?  
3K=L          BXE   3  PCOMA-1(1),PSET     [ IF SO, JUMP TO SET 'ACCEPTABLE'
3KQ=          BCT   4  PLOP1
3L9W          LDN   4  PCOMC-PCOMB         [ IS THIS A COMMAND WHICH CAN HAVE   
3LPG    PLOP2 SMO      4                   [   A 'PARAM(' PARAMETER LONG?   
3M96          BXE   3  PCOMB-1(1),PTES     [ IF SO, JUMP TO TEST IF THIS PARAM  
3MNQ          BCT   4  PLOP2               [   IS A 'PARAM(' PARAMETER  
3N8B    PERR  STOZ     APTNECHA(2)  
3NN2          LDX   2  FPTR(2)  
3P7L          LDX   7  VJONG(1) 
3PM=          BRN      PCLO 
3Q6W    PTES
3QLG          SMO      APTBEPAR(2)         [ DOES  PARAM BEGIN 'PARAM('?
3R66          LDX   4  1(2)                [ LOAD FIRST WORD OF THE PARAMETER   
3RKQ          BXU   4  PARA(1),PERR        [ IS IT 'PARA'?  IF NO, JUMP 
3RWC          LDX   3  APTBEPAR(2)  
3S74          ADN   3  2(2)                [POINT TO NEXT CHARACTER AFTER 'PARA'
3SCP          LDCH  4  0(3)                [LOAD CHARACTER  
3SNB          BXU   4  PM(1),PERR          [J IF NOT 'M'
3S^3    PSPC  BCHX  3  £
3T9N          LDCH  4  0(3)                [LOAD NEXT CHARACTER 
3TG*          BXE   4  SPACE(1),PSPC       [J IF SPACE  
3TR2          BXU   4  THESISL(1),PERR     [J IF NOT '('
3W3W    PSET  SMO      FX2                 [ SET THE 'THIS LONG PARAMETER IS
3WHG          STOZ     AWORK2              [   ACCEPTABLE' MARKER   
3X36    POKAY   
3XGQ          SMO      APTBEPAR(2)  
3Y2B          ADS   5  0(2)                [ADD NO OF CHARACTERS TO BE TRANSFERE
3YG2          EXIT  0  0
3Y^L    [     THIS  SECTION TERMINATES A PARAMETER AND UPDATES THE POINTER TO   
3^F=    [     THE NEXT AVAILABLE CHARACTER AND TO THE START OF THE LATEST   
3^YW    [     PARAMETER 
42DG    P9    ADN   4  A1-1                [UPDATE X4 TO POINT TO NXT CLEAR WD  
42Y6          SMO      4
43CQ          STO   5  0(2)                [STORE ZERO  
43XB          ADN   4  1                   [SET PTR TO START OF NEXT PARAM  
44C2          STO   4  APTNECHA(2)         [STORE PTR TO NEXT AVAILABLE CHAR
44WL          LDN   4  1
45B=          ADS   4  APARANUM(2)  
45TW          LDX   4  APARANUM(2)         [GET COUNT OF PARAMETERS SO FAR  
46*G          ERN   4  #31  
46T6          BZE   4  PMAX                [J IF 25 PARAMETERS STORED   
47#Q          SMO      FX2  
47SB          LDX   3  AWORK1   
47XG          BZE   3  STO1 
482L          SLL   3  12   
485Q          ORN   3  #2020
488W    STO1
48#2          SMO      FX2  
48RL          STO   3  AWORK2              [ RESET THE 'ACCEPTABLE' MARKER  
49?=          EXIT  0  0
49QW    [   
4==G    [  ERROR EXIT   
4=Q6    PMAX  STOZ     APTNECHA(2)  
4?9Q          LDX   2  FPTR(2)  
4?PB          LDX   7  VJMAXPAR(1)  
4?WJ    PCLO
4#3Q          MHUNTW   3,CPB,CALAS  
4#8Y          NGN   0  1
4#B6          STO   0  APARAFIR(3)  
4#H#          LDX   3  FX2  
4#NL          LDX   6  AWORK1(3)
4*8=          BNZ   6  VORTEX              [ WAS THE COMMAND A MACRO?   
4*MW          CLOSE                        [ IF YES, CLOSE THE MACRO FILE   
4B7G          BRN      VORTEX   
4BM6    [   
4C6Q    #SKI  APL   
4CLB    (   
4D62    PL    4HPL  
4DKL    XPL   12HPRINTLAST  
4F5=    REPLY VFREEW   ADATA,CREPLY 
4FJW          MHUNTW   3,GMON,AOUT  
4G4G          NAME  3,ADATA,CREPLY  
4GJ6          EXIT  4  0
4H3Q    )   
4HHB    [   
4J32    QENTRY1 
4JGL          LDN   7  0
4JJJ ...#SKI G277&1 
4JLG ...(   
4JND ...      LDX   0  AMFMSK(2)
4JQB ...      ORX   0  AMXMSK(2)
4JS# ...      ANDX  0  UA69Z(1) 
4JW= ...      BZE   0  Q90                 [ CM NOT TRACED OR REPORTED  
4JY8 ...)   
4K2=    QENTRY3 
4KFW    VERTMAC 
4K^G          MHUNTW   2,CLB
4LF6    VERT
4LYQ          OUTEXES  ANUMCHA(2),CLBFIR,CLB
4MDB    QENTRY4 
4MY2          OUTPAR   TIMENOW             [ O/P TIME   
4NCL          MONOUT   ACOMJT   
4NX=          BNZ   7  VORTEX   
4P4D    #SKI  JWPHASE4  
4P9L          BRN      Q90  
4PBW    QENTRY90             [FOR RETURN FROM FULSTART IF JOB...
4PWG    #                       [...WAS UNSAVED UNDER DIFFERENT GEORGE  
4P^5    #SKI  JWPHASE4  
4Q3N    (   
4Q6?          HLSINFRT Q90,FSTART   
4Q8W    Q90 
4QB6          STOZ     EXT(2)   
4QTQ          STOZ     AWORK1(2)
4R*B          LDX   4  ACES                [LOAD SPACES 
4RT2          STO   4  AWORK2(2)
4S#L          STO   4  AWORK3(2)
4SS=          STO   4  AWORK4(2)
4T?W          LDN   4  CLBFIR   
4TRG          MHUNTW   2,CLB               [FIND LINE BUFFER
4W?6          LDX   5  ANUMCHA(2)          [LOAD NO. OF CHARS TO ANALYSE
4WQQ    P16   LDX   3  2                   [LOAD X3 WITH POINTER TO LB  
4X=B          ADX   3  4                   [ADD POINTER WITHIN BLOCK
4XQ2          LDCH  6  0(3)                [LOAD NEXT CHAR  
4Y9L          BCHX  4  £                   [UPDATE POINTER  
4YP=          TXU   6  SPACE(1) 
4^8W          BCS      R1                  [J IF NOT SPACE  
4^NG          BCT   5  P16                 [J IF LINE INCOMPLETE
5286          BRN      RESTART  
52MQ    R1    TXU   6  THASH(1) 
537B          BCC      RESTART             [J IF #  
53M2    R2    TXL   6  TEN(1)   
546L          BCC      R3                  [J IF NOT A NUMBER   
54L=          LDX   3  BPTR(2)             [PTR TO /CALAS   
555W          LDX   6  CPBFSD(3)
55KG          BPZ   6  R5                  [J IF SOURCE OF COM. IS A MACRO  
5656          LDX   7  VMDF(1)  
56JQ          BRN      VORTEX   
574B    R6    LDX   3  2
57J2          ADX   3  4
583L          BCHX  4  £
58H=          LDCH  6  0(3)                [LOAD NEXT CHAR  
592W          TXU   6  SPACE(1) 
59GG          BCC      R7                  [J IF SPACE  
5=26    R5    BCT   5  R6   
5=FQ          BRN      RESTART  
5=^B    R7    BCT   5  R16  
5?F2    RESTART 
5?YL          LDN   7  1
5#D=          MHUNTW   2,CLB
5#XW          STOZ     CLBPTNECHA(2)
5*CG          BRN      VORTEX   
5*X6    R16   LDX   3  2
5BBQ          ADX   3  4
5BWB          LDCH  6  0(3) 
5CB2          BCHX  4  £
5CTL    R3    LDX   3  FX2  
5D*=          LDX   7  AWORK1(3)
5DSW          TXU   6  SPACE(1) 
5F#G          BCC      P13                 [J IF SPACE  
5FS6          BZE   7  P14                 [J IF FIRST VERB CHAR
5G?Q          TXL   7  VERBLEN(1)   
5GRB          BCC      VTOLONG             [J IF VERB TOO LONG  
5H?2    P18   LDN   0  1
5HQL          ADS   0  AWORK1(3)           [UPDATE COUNT OF VERB CHARS  
5J==          SRC   7  2
5JPW          ADX   3  7
5K9G          DCH   6  AWORK2(3)           [DEPOSIT CHAR IN AWORK AREA  
5KF#          LDX   3  FX2  
5KP6          LDX   7  AWORK1(3)           [GET COUNT OF VERB CHARS 
5L8Q    P19   BCT   5  R16  
5LNB          BZE   7  RESTART  
5M82          ADN   5  1
5MML    P15   STO   5  APARANUM(2)         [STORE NO OF REMAINING CHARS 
5N7=          SMO      FX2  
5NLW          STO   4  EXT+2
5P6G    #SKI  APL   
5PL6    (   
5Q5Q          LDX   3  FX2  
5QKB          LDX   4  AWORK2(3)
5R52          TXU   4  PL(1)
5RJL          BCC      XFRE 
5S4=          LDX   5  AWORK3(3)
5SHW          LDX   6  AWORK4(3)
5T3G          TXU   4  XPL(1)   
5TH6          TXU   5  XPL+1(1) 
5W2Q          TXU   6  XPL+2(1) 
5WGB          BCC      XFRE 
5X22    [           IF NOT PRINTLAST COMMAND SET UP ADATA/CREPLY BLOCK  
5XFL          CALL  4  REPLY
5X^=          BRN      XCAON
5YDW    XFRE  MFREEW   GMON,AOUT
5YYG    XCAON   
5^D6    )   
5^XQ          NGN   0  2
62CB          SMO      FX2  
62X2          ANDS  0  EXT+9               [UNSET B23 - ANALYSIS FINISHED   
63BL          LDX   2  BPTR(2)  
63W=          LDX   4  CPBFSD(2)
648M          LDX   2  FX2  
64H4          BPZ   4  V                   [J IF SOURCE OF COMMAND IS MACRO 
64TG          SLL   4  1
65*6          BNG   4  OPEN                [J IF WJDF NAME  
65SQ          SLL   4  1
66#B          BPZ   4  V
67?L          LDCT  4  #040 
67R=          ANDX  4  EXT+3(2)            [ISOLATE B3  
685M          BZE   4  OPEN                [J IF RUNJOB FILE OPEN   
68D4    #SKI  JWPHASE4  
68K=          STOZ     EXT+3(2) 
68QG          ACROSS   MACRALAS,1   
69=6    [     ENTRY TO VERBCLAS TO CLASSIFY THE VERB
69PQ    V   
69WY    #UNS CUBSCHEC   
6=46          DOWN     CUBSCHEC,1          [DIAGNOSTIC TO CHECK ONLINE BS COUNT 
6=57 ...#UNS  G400  
6=68 ...(   
6=79 ...      HUNTW    2,IUSER,G400BLK     [LOOK FOR EXIT OB BLK
6=8= ...      BNG   2  XDSK1               [J NOT PRESENT   
6=9? ...      LDX   0  A1(2)
6==# ...      SBN   0  1
6=?* ...      BNZ   0  XDSK1               [OR NOT EXIT 
6=#B ...      FREECORE 2
6=*C ...)   
6=BJ    #SKI  JWPHASE4  
6=HQ          STOZ     EXT+3(2) 
6=P2          LDCH  4  AWORK2(2)           [GET 1ST CHAR
6?8L          SBN   4  #56  
6?N=          BPZ   4  V1                  [J IF N -> Z INC 
6#7W          ACROSS   VERBCLAS,1   
6#MG    V1    ACROSS   VCLASTWO,1   
6#PD ...#UNS  G400  
6#RB ...(   
6#T# ...XDSK1   
6#X= ...      SMO      FX2  
6#^8 ...      STOZ     EXT+3
6*36 ...      ACROSS   COMHOOK,1
6*54 ...)   
6*76    OPEN
6B6B          LDX   4  GSIGN
6BL2          ANDX  4  EXT+3(2)            [ISOLATE B0 OF EXT+3 -SET IF CARD F. 
6C5L          BPZ   4  RJSHIFT             [J IF SHIFT FILE 
6CK=          ORS   4  EXT+9(2)            [DENOTES GRAPHIC FILE
6D4W          BRN      RJX                 [J IF GRAPHIC FILE   
6DJG    RJSHIFT 
6F46          LDX   4  GSIGN
6FHQ          ORS   4  EXT+9(2) 
6G3B          ERS   4  EXT+9(2)            [DENOTES SHIFT FILE  
6GH2    RJX 
6H2L          STOZ     AWORK1(2)           [SET MARKER TO INDICATE FILENAME 
6HG=    [     THE ENTRY FROM VERBCLAS AND MACRALAS  
6HH?    #SKI  JWPHASE4  
6HJ#    (   
6HK*          LDN   4  0
6HLB          BRN      Q2STO
6HMC    QENTRY21
6HND          HLSINFRT QEN21,FSTART 
6HPF    QEN21   
6HQG    QENTRY2 
6HRH          LDX   4  EXT+3(2) 
6HSJ          STO   4  AWORK1(2)
6HTK          LDX   0  EXT+4(2) 
6HWL          STO   0  AWORK3(2)
6HXM    #SKI  JWPHASE4<1$1  
6HYN    (   
6H^W    QENTRY2 
6JFG          LDX   4  AWORK1(2)           [ X1 HOLDS ZERO FOR MACRO, AND   
6JJL          BZE   4  Q2STO
6JL8    )   
6JMQ          SLL   4  12   
6JQW          ORN   4  #2020
6JW2    Q2STO   
6J^6          STO   4  AWORK2(2)           [ SHORT FORM OF COMM FOR BI COMMANDS 
6KDQ          STOZ     EXT+3(2)            [ZEROISE BRACKET INDICATOR WORD  
6KYB          MHUNTW   2,CPB,CALAS         [FIND PB 
6LD2          LDN   4  APARAFIR+1           [SET PARAMETER  
6LXL          STO   4  APTNECHA(2)         [BLOCK WORDS 
6MC=          STOZ     APARAFIR(2)         [FOR BEGINNING   
6MWW          LDN   4  APARAFIR            [OF LINE 
6NBG          STO   4  APTBEPAR(2)  
6NW6          STOZ     APARANUM(2)         [
6P*Q          BRN      P34  
6PTB    P13   BZE   7  P19  
6Q*2          BRN      P15  
6QSL    P14   TXL   6  PA(1)
6R#=          BCS      VDELCH   
6RRW          TXL   6  PZ(1)
6S?G          BCS      P18  
6SR6    VDELCH  
6T=Q          LDX   3  BPTR(2)             [PTR. TO /CALAS  
6TQB          LDX   7  CPBFSD(3)
6W=2          BNG   7  VERBINC             [J IF NOT A MACROS FILE  
6WPL          SBN   5  4
6X9=          BNG   5  VERBINC             [J IF NOT ENOUGH CHARS FOR DELIM.
6XNW          LDN   7  1
6Y8G          ANDX  7  CPBPROGLEV(3)       [ISOLATE DELIMITER BIT   
6YN6          LDX   4  CLBFIR(2)           [GET 1ST 4 CHARS OF LINE 
6^7Q          BNZ   7  TDELIM              [J IF DELIM. BIT SET 
6^MB          TXU   4  CPBSTART(3)  
7272          BCC      STARF               [J IF STARTER FOUND  
72LL          TXU   4  CPBSTOP(3)   
736=          BCS      VERBINC             [J IF NOT A STOPPER  
73KW          LDX   7  VSTOP(1)            [LOAD ERROR MESSAGE IDENTIFIER   
745G          LDX   4  ACES 
74K6          STO   4  CLBFIR+1(2)         [TO TERMINATE STOPPER
754Q          BRN      VP                  [TO REPORT THE ERROR 
75JB    TDELIM  
7642          TXU   4  CPBSTOP(3)   
76HL          BCS      VERBINC             [J IF NOT STOPPER
773=          LDN   7  2
77GW          ORS   7  CPBPROGLEV(3)
782G          ERS   7  CPBPROGLEV(3)       [UNSET 2ND DELIM BIT 
78G6    STARF LDN   7  1
78^Q          ERS   7  CPBPROGLEV(3)       [SET/UNSET DELIM BIT 
79FB          STOZ     CLBPTNECHA(2)
79^2          BRN      XYZ  
7=DL    [     LOADS THE IDENTIFIER CORRESPONDING TO THE 'VERB FORMAT ERROR' 
7=Y=    [     ERROR MESSAGE 
7?CW    VERBINC 
7?XG          LDX   7  VINC(1)  
7#C6          BRN      VORTEX   
7#WQ    [     LOADS THE IDENTIFIER CORRESPONDING TO THE 'VERB TOO LONG' 
7*BB    [     ERROR MESSAGE 
7*W2    VTOLONG 
7B*L          LDX   7  VTL(1)   
7BT=          BRN      VORTEX   
7C#W    [     THIS SECTION SETS UP A NEW COMMAND PROCESSOR LEVEL WHEN THE   
7CSG    [     COMMAND JUST ANALYSED WAS A MACRO 
7D#6    MAC 
7DRQ          LDN   4  1
7F?B          ADS   4  CPLEV(3)            [GO DOWN A COMMAND PROCESSOR LEVEL   
7FR2          LDX   4  CPLEV(3)            [NEW COMMAND PROCESSOR LEVEL 
7G=L          GETCLB   3
7GQ=          GETCPB   3
7H9W          STO   4  CPBCPLEV(3)  
7HPG          LDX   0  GSIGN
7J96          ANDX  0  EXT+9(2) 
7JNQ          STO   0  CPBPROGLEV(3)
7JTY ...#UNS G400   
7K36 ...      CPHOOK    3   
7K8B          FILECOUNT   6                [NO OF FILES OPEN
7KN2          STO   6  CPBFSD(3)
7L7L          LDX   5  AMFMSK(2)           [ SET NEW TRACING
7LM=          STO   5  CMFMSK(3)           [ LEVEL IN CPAT  
7LN*    #UNS CMXMSK 
7LPD    (   
7LQH          STOZ     CMXMSK(3)
7LRL          SEGENTRY K70ALASB 
7LSP          BRN      XK71                [MENDED TO NULL IF REPORTNEST ON 
7LTS          LDN   5  #10  
7LWX          ANDX  5  CONTEXT(2)   
7LY2          BZE   5  XK71                [BR IF NOT MOP   
7L^5          LDX   5  AMXMSK(2)
7M28          STO   5  CMXMSK(3)           [SET REPORTING LEVEL 
7M3?    XK71
7M4B          SEGENTRY K71ALASB 
7M5F    )   
7M6W          LDX   5  TSTART(1)
7MLG          STO   5  CPBSTART(3)         [STORE STARTER   
7N66          LDX   5  TSTOP(1) 
7NKQ          STO   5  CPBSTOP(3)          [STORE STOPPER   
7P5B          LDX   3  FPTR(3)  
7PK2          STO   4  CPBCPLEV(3)  
7Q4L          STO   6  CPBFSD(3)
7QJ=          ENDREC
7R3W    P60   STO   5  APARANUM(3)         [ROUTINE TO EXTRACT  
7RHG          SMO      FX2                 [NEXT CHARACTER TO BE
7S36          LDX   4  EXT+2               [ANALYSED FROM THE   
7SGQ          ADX   3  4                   [LINE BUFFER 
7T2B          LDCH  6  0(3)                [
7TG2          BCHX  4  £                   [
7T^L          SMO      FX2  
7WF=          STO   4  EXT+2
7WYW          TXU   6  SPACE(1) 
7XDG          BCC      PRY                 [J IF SPACE  
7XY6          SMO      FX2  
7YCQ          LDX   4  EXT+3               [LOAD BRACKET COUNT  
7YXB          LDX   5  4                   [ISOLATE INDICATOR   
7^C2          SRL   5  22   
7^WL          ANDX  4  MASK(1)  
82B=          BNZ   4  P21                 [J IF UNDER BRACKETS ETC.
82TW          LDN   5  0                   [INDICATOR = NEW LINE
83*G    R70   TXU   6  SEPARATOR(1) 
83T6          BCC      P23                 [J IF COMMA  
84#Q          TXU   6  THESISL(1)   
84SB          BCC      P25                 [J IF PARENTHESIS
85#2          TXU   6  QUOTES(1)
85RL          BCC      PQUOT               [J IF QUOTES 
86?=    P26   SLL   5  22   
86QW          ORX   4  5
87=G    P27   SMO      FX2  
87Q6          STO   4  EXT+3               [STORE COUNT 
889Q    P29   LDX   0  APTNECHA(2)         [LD PTR TO NEXT NON SPACE CHAR   
88PB          BCHX  0  £                   [INCREASE BY 1 POSITION  
8992          SMO      FX2  
89NL          STO   0  EXT  
8=8=    PSPIG LDN   5  1
8=MW          CALL  0  STOREPB             [STORE CHARACTER IN PARAMETER BLOCK  
8?7G    P34   LDX   3  FPTR(2)  
8?M6          LDX   5  APARANUM(3)  
8#6Q          BCT   5  P60  
8#LB          SMO      FX2  
8*62          LDX   0  EXT  
8*KL          BZE   0  P33  
8B5=          STO   0  APTNECHA(2)         [STORE BACK IN PB
8BJW          SBX   0  APTBEPAR(2)  
8C4G          SLC   0  2
8CJ6          SBN   0  4
8D3Q          SMO      APTBEPAR(2)  
8DHB          STO   0  0(2) 
8F32          BRN      P33  
8FGL    P23   LDN   5  3                   [MARK AS SEPARATOR   
8G2=          SLL   5  22                  [SHIFT TO TOP END OF WORD
8GFW          ORX   4  5                   [ORX INTO X5 
8G^G          SMO      FX2  
8HF6          STO   4  EXT+3               [STORE IN ACTIVITY BLOCK 
8HYQ          SMO      FX2  
8JDB          LDX   0  EXT  
8JY2          BZE   0  XN                  [J IF MARKER NOT SET 
8KCL          STO   0  APTNECHA(2)  
8KX=          SBX   0  APTBEPAR(2)  
8LBW          SLC   0  2
8LWG          SBN   0  4
8MB6          SMO      APTBEPAR(2)  
8MTQ          STO   0  0(2) 
8N*B          SMO      FX2  
8NT2          STOZ     EXT  
8P#L    XN    LDN   5  0
8PS=          CALL  0  STOREPB  
8Q?W          SMO      APTBEPAR(2)         [   UPDATE   
8QRG          LDX   5  0(2)                [   APTBEPAR IN /CALAS   
8R?6          ADN   5  7                   [   TO POINT TO  
8RQQ          SRL   5  2                   [   NEXT PARAMETER   
8S=B          ADS   5  APTBEPAR(2)         [   TYPE/COUNT  WORD 
8SQ2          BRN      P34  
8T9L    P21   BZE   5  P28                 [J IF UNDER PARENTHESIS  
8TP=    PQ    TXU   6  QUOTES(1)
8W8W          BCS      P29                 [J IF NOT QUOTE  
8WNG          SBN   4  1
8X86          BRN      P27  
8XMQ    P30   SBN   4  1                   [SUBTRACT 1 FROM BRACKET COUNT   
8Y7B          BNZ   4  P26                 [BRANCH IF COUNT NOT ZERO
8YM2          BRN      P27  
8^6L    P28   TXU   6  THESISL(1)   
8^L=          BCC      P25                 [J IF LHP
925W          TXU   6  THESISR(1)   
92KG          BCC      P30                 [J IF RHP
9356          BRN      P27  
93JQ    PQUOT LDN   5  2
944B    P25   ADN   4  1                   [ADD 1 TO BRACKET COUNT  
94J2          BRN      P26  
953L    PRY   SMO      FX2  
95H=          LDX   0  EXT  
962W          BNZ   0  PSPIG
96GG          BRN      P34  
9726    [     THIS SECTION ADJUSTS THE LENGTH OF THE
97FQ    [     PARAMETER BLOCK BEFORE ENTERING THE COMMAND   
97^B    P33   LDX   2  FPTR(2)  
98F2          LDX   6  CLBPTNECHA(2)
98YL          ERS   6  CLBPTNECHA(2)       [CLEAR WORD  
9C?Q    P40   LDX   2  BPTR(2)             [LOAD POINTER TO PARAMETER BLOCK 
9CRB          LDX   4  APTNECHA(2)  
9D?2          ERN   4  APARAFIR+1   
9DQL          BZE   4  P100 
9F==          LDN   5  0
9FPW          CALL  0  STOREPB             [TERMINATE PARAMETER 
9G9G          SMO      APTBEPAR(2)         [  UPDATE APTBEPAR   
9GP6          LDX   5  0(2)                [  TO POINT TO   
9H8Q          ADN   5  7                   [  NEXT PARAMETER
9HNB          SRL   5  2                   [   TYPE/COUNT WORD  
9J82          ADS   5  APTBEPAR(2)  
9JML    P100  STOZ     APTNECHA(2)  
9K7=          NGN   5  1
9KLW          LDX   6  APTBEPAR(2)  
9L6G          SMO      6
9LL6          STO   5  0(2)                [MARK LAST PARAMETER IN BLOCK
9M5Q          BZE   4  P101                [J IF NO PARAMETERS  
9MKB          DOWN     ANALYSEA,3          [  TO ANALYSE PARAMETERS 
9N52          MHUNTW   2,CPB,CALAS  
9NJL    P101
9P4=          LDX   7  PARF(1)  
9PHW          STO   7  APTBEPAR(2)  
9Q3G          STO   7  ADNOPARAL(2) 
9QH6          SBN   6  A1-1 
9QS3          LDN   5  AVELINE+APB+1
9R4Y          TXL   6  5
9R*T          BCC      P41A                [BR REQ LEN PARA BLOCK > OR = MIN
9RLQ          LDN   6  AVELINE+APB         [SET REQ LEN PARA BLOCK TO MIN   
9RXM    P41A  TXL   6  ALOGLEN(2)   
9S8J          BCC      P41                 [BR IF REQ LEN = CURRENT LOG LEN 
9SFL          LDX   3  2
9S^=          ALTLEN   3,6                  [SHORTEN CPB/CALAS  
9TDW    P41   MHUNTW   2,CLB               [FIND LB 
9TYG          SMO      FX2  
9WD6          LDX   6  JOBEVENTS
9WXQ          BPZ   6  SAG  
9X4Y          SLL   6  1
9X=6          BNG   6  SAG                 [IGNORE IF BREAK-IN IS STOPJOB   
9XCB          SMO      FX2  
9XX2          LDX   4  AWORK1   
9YBL          BNZ   4  P42  
9YW=          MHUNTW   3,CPB,CALAS  
9^*W          LDCT  6  #300 
9^TG          ANDX  6  CPBFSD(3)
=2*6          BNZ   6  SAG  
=2SQ          CLOSE                        [CLOSE DOWN MACRO FILE   
=3#B    P42   COMBRKIN  
=3S2    [     ENTRY FROM OBEY COMMAND   
=4?L    QENTRY5 
=4R=    SAG   LDX   3  FX2  
=5=W    #SKI  K6ALLGEO>99-99
=5QG          TRACE    AWORK2(3),COMMAND
=6=6          LDX   6  AWORK1(3)           [LOAD MACRO OR BUILT IN TYPE 
=6PQ          BZE   6  MAC                 [J IF MACRO  
=79B          ACROSSVAR  AWORK3(3)         [GO ACROSS TO COMMAND
=7P2    VORTEX  
=88L          TXU   7  ONE(1)   
=8N=          BCS      VP   
=97W    XYZ 
=9MG    #SKI  APL   
==76          MFREEW   GMON,AOUT
==LQ          ENDREC
=?6B    VP    TXU   7  TWO(1)   
=?L2          BCC      XYZ                 [J IF LINE OF COMMENT
=#5L          MHUNTW   2,CLB
=#K=          STOZ     CLBPTNECHA(2)
=DG=    #SKI  APL   
=D^W          CALL  4  REPLY
=FFG    [     THIS COMERR COVERS A MULTITUDE OF SINS: VERB TOO LONG,VERB
=F^6    [     FORMAT ERROR ,PARAMETER IDENTIFIER ERROR ,TOO MANY PARAMETERS 
=GDQ    [     OR RECORDS IN A COMMAND, PARAMETER SUBSTITUTION AT THE WRONG  
=GYB    [     LEVEL,PARAMETER TOO LONG. 
=HD2          COMERRX  7
=HXL          MENDAREA 50,K99ALASB  
=JC=    #END
^^^^ ...45511370000200000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1