ADJUNCTS85

(George Source)

Macros used: ACROSS, ALTLEN, ALTLENG, BS, BXE, BXGE, BXL, BXU, CHAIN, CHNUMCON, DOWN, ENTPROP, FREECORE, HUNT, JBC, JBS, MASK, MENDAREA, MFREE, MHUNT, MHUNTW, MTCHAR, NAME, PARAFREE, PARALYSE, PARANEXT, PARANUMB, PARAPASS, SEG, SEGENTRY, SETNCORE, SETREP, TESTPAIR, TESTREP, TESTREP2, TRACE, UP

ADJUNCTS85.txt
22FL ...      SEG   ADJUNCTS,85,PETER CAMPBELL :FILE
23DW    #     THIS CHAPTER SETS UP A FILE/ADJUNCTS BLOCK IN WHICH IT STORES FILE
23YG    #     "ENDINGS". IT EXPECTS THAT THE QUALIFIERS HAVE JUST BEEN SPLIT AT 
24D6    #     & THE FIRST "PASSED"  
25CB    [   
25X2          SEGENTRY K1ADJUNCTS,X1ADJUNCTS
26BL    [   
26W=    #DEF  Z=K60ADJUNCTS>599-599 
27*W    SFTRAP  
27TG    #HAL  FILE+FTRAP,0  
28*6    XMULTI  
28SQ    #HAL CPB+CALAS,0
29#B    TIFZ
29S2          LDX   0  ANUM(2)  
2=?L          BNG   0  XIT                 [END 
2=R=          BZE   0  MESSN               [ERROR   
2?=W          BRN      MAINM
2?QG    [   
2#=6    X1ADJUNCTS  
2#PQ    [   
2#WY ...      HUNT     3,FILE,ADJUNCTS  
2*46 ...      BPZ   3  ADJXISTS 
2*9B          SETNCORE ADPAIR-A1,3,FILE,ADJUNCTS
2*P2          LDN   0  ADPAIR-A1
2B8L          STO   0  A1(3)
2BN=          STOZ     A1+1(3)             [ZEROIZE MODES WORD  
2C7W          STOZ     A1+2(3)             [ & OTHER TWO
2CMG          STOZ     A1+3(3)  
2D76          STOZ     A1+4(3)             [2ND MODE WORD   
2DGT ...      STOZ     ACOMMUNE8(2) 
2DWJ ...ADJXISTS
2F6B    #   
2FL2    #  1) THE FIRST PARAM IS ALREADY PASSED.WE CHECK FOR DEVICES & TG ADJUNC
2G5L    #     ANCT AND ENTER MAIN ROUTINE AT"MAINM" 
2GK=    #   
2H4W          HUNT     2,CPB,CUNI   
2HJG          LDX   0  ANUM(2)  
2J46          BZE   0  MESSN               [NULL ILLEGAL
2JHQ          SRL   0  2
2K3B          ANDN  0  #4000
2KH2          BNZ   0  TRAPGOADJ
2L2L          LDCH  7  APARA(2) 
2LG=          SBN   7  #32                 [TEST 1ST CHAR FOR * 
2L^W          BNZ   7  TIFZ                [J IF NOT *  
2MFG          CALL  6  VIX1               [CHECK & LOAD DEVICE TYPE 
2M^6    #   
2NDQ    #  2) WE PASS NEXT PARAM,EXIT IF NON/EX. ERROR IF NULL. 
2NYB    #     CHECK FOR TG ADJ & ENTER AT"MAINM".   
2PD2    #   
2PXL    NXMOD   
2QC=          CALL  3  PARAPASS            [NEXT PARAM  
2QWW          BRN      XIT  
2RBG          BRN      MESSN
2RW6          SRL   0  2
2S*Q          ANDN  0  #4000
2STB          BNZ   0  TRAPGOADJ           [J IF COMPOSITE PARAM
2T*2          BRN      MAINM               [J TO START TESTING QUALIFIERS   
2TSL    #   
2W#=    #  8) WE CHECK NOW FOR ODDS & SODS LIKE 'NONS' & 'GDR'  
2WRW    #     BRANCH TO"MESSN" IF NOT FOR ERROR.
2X?G    #   
2XR6    NONST   
2Y=Q          LDX   1  FX1  
2YQB          LDX   0  APARA(2) 
2^=2          TXU   0  XGDR(1)  
2^PL          BCS      NOTGDR              [J IF NOT GDR
329=          HUNT     1,FILE,ADJUNCTS  
32NW          LDX   0  BIT10               [B10 => GDR MODE 
338G          ORS   0  A1+4(1)  
33N6          FREECORE 2
347Q          BRN      NXMOD
34MB    NOTGDR  
3572    #SKI  FNTRAP
35LL    (   
366=          TXU   0  UNTR(1)  
36KW          BCS      NOTUN               [J IF NOT UNTRAP QUALIFIER   
375G          HUNT     1,FILE,ADJUNCTS  
37K6          LDCT  0  #010 
384Q          ORS   0  A1+1(1)  
38JB          FREECORE 2
3942          BRN      NXMOD
39HL    NOTUN   
3=3=    )   
3=4D ...      BXU   0  POWN(1),NOTOWN      [J IF NOT OWNERACC QUAL. 
3=5L ...      HUNT     1,FILE,ADJUNCTS  
3=6S ...      BS       1,BAOWNACC   
3=82 ...      FREECORE 2
3=98 ...      BRN      NXMOD
3==B ...NOTOWN  
3=?J ...      BXU   0  PFROZ(1),NOTFROZ    [J IF NOT FROZEN QUAL.   
3=#Q ...      HUNT     1,FILE,ADJUNCTS  
3=*Y ...      BS       1,BAFROZEN   
3=C6 ...      FREECORE 2
3=D# ...      BRN      NXMOD
3=FG ...NOTFROZ 
3=GW          LDX   3  0
3?2G          SRL   3  12   
3?G6          SBN   3  #6062
3?^Q          BNZ   3  NOTPR               [J IF NOT PROPERTY QUALIFIER 
3#FB          HUNT     1,FILE,ADJUNCTS  
3#^2          LDN   0  2
3*DL          ORS   0  A1+2(1)  
3*Y=          ENTPROP                      [ANALYSES PROPERTY QUALIFIER 
3BCW ...      TESTREPN OK,MESSN 
3BXG          MFREE    CPB,CUNI 
3CC6          BRN      NXMOD
3CWQ    NOTPR   
3DBB          TXU   0  NONS(1)  
3DW2          BCS      MESSN
3F*L          HUNT  1,FILE,ADJUNCTS 
3FT=          LDN   0  1
3G#W          ORS   0  A1+2(1)             [B1 -> NONSTANDARD   
3GSG          FREECORE 2
3H#6          BRN      NXMOD
3HRQ    #   
3J?B    #  7) THIS COPES WITH ALL QUALIFIERS WHICH ARE SIZE QUALIFIERS - I.E.   
3JR2    #     AFTER EXTENDING ADJUNCTS BLOCK,DISCARDS ALPHA CHARACTERS AND  
3K=L    #     CONVERTS NUMBER,PUTTING IT INTO ADJUNCTS BLOCK.   
3KQ=    #     GOES TO "NONS"AT END  
3L9W    #   
3LPG    SIQA  LDX   1  FX1  
3M96          LDN   5  1                   [MASK FOR BIT-SETTING
3MNQ    NXSIZ LDX   0  SIZES(1)            [COMPARE AGAINST QUALS FOLLOWED BY NU
3N8B          BZE   0  NONST               [MAY BE NONSTANDARD  
3NN2          BXE   0  APARA(2),SIZOK      [FOUND ONE   
3P7L          ADN   5  1
3PM=          ADN   1  1
3Q6W          BRN      NXSIZ
3QLG    SIZOK CALL  6  SETPAIR             [LENGTHEN.ADJUNCTS BLOCK BY 2
3R66          STO   5  A1-2(3)             [SET IDENTIFIER FOR THIS QUAL IN 1ST 
3RKQ          HUNT     2,CPB,CUNI   
3S5B          LDEX  0  ANUM(2)  
3SK2          LDX   1  2
3T4L    NXCHA LDCH  5  APARA(1)            [TEST CHARS OF PARAM 
3TJ=          SBN   5  #41                 [UNTIL A NON-LETTER IS FOUND 
3W3W          BNG   5  NUMIC
3WHG          SBN   5  #32  
3X36          BPZ   5  ODD                 [J IF GREATER THAN Z 
3XGQ          BCHX  1  £
3Y2B          BCT   0  NXCHA
3YG2          SMO      FX1  
3Y^L          LDX   0  SDESTP              [J IF NOT "DEST".
3^F=          BXU   0  APARA(2),MESSO   
3^YW          STOZ     A1-1(3)             [SET DEFAULT VALUE IN ADJCHECK   
42DG          FREECORE 2
42Y6          BRN      NXMOD
43CQ    ODD   ADN   5  #32                 [START RESETTING X5  
43XB    NUMIC DEX   0  ANUM(2)             [RESET UNI BLOCK TO USE CHNUMCON 
44C2          ADN   5  #41                 [RESET X5
44WL    NXNUM DCH   5  APARA(2)            [MOVE NUMERICS TO BEGINNING OF PARAM 
45B=    XNUM
45TW    #SKI  K6NORMALUS>599-599
46*G          TRACE    5,ADJSIZE
46T6          BCHX  1  £
47#Q          BCHX  2  £
47SB          LDCH  5  APARA(1) 
48#2          DCH   5  APARA(2) 
48RL          BCT   0  XNUM 
49?=          CHNUMCON                     [CONVERT NUMBER TO BINARY
49QW          TESTREP  CHNUMERR,NMW 
4==G          HUNT     1,CPAR,GNUMCON   
4=Q6          HUNT     2,FILE,ADJUNCTS  
4?9Q          LDX   0  A1+1(1)             [ & STORE IT IN LAST WORD OF ADJUNCTS
4?PB          ADX   2  A1(2)
4#92          STO   0  A1-1(2)  
4#NL          FREECORE 1                   [FREE CPAR/GNUMCON   
4*8=          HUNT     1,CPB,CUNI   
4*MW          FREECORE 1
4*N* ...#   
4*NS ...# ROUTINE TO CHECK LIMIT QUALIFIERS FOR REPEATS 
4*P? ...# SMALLEST IS TAKEN 
4*PQ ...#   
4*Q9 ...      HUNT     2,FILE,ADJUNCTS  
4*QN ...      ADX   2  A1(2)
4*R7 ...      LDN   0  18   
4*RL ...      LDX   1  A1-2(2)        [TEST FOR 'LIMIT' QUALIFIER CODE  
4*S5 ...      BXU   1  0,NXMOD        [ J. IF NOT FOUND 
4*SJ ...      LDN   3  A1-2(2)  
4*T3 ...      HUNT     2,FILE,ADJUNCTS  
4*TG ...      ADN   2  ADPAIR   
4*T^ ...NEXTQUAL
4*WD ...      SBN   3  2
4*WX ...      BXL   3  2,NXMOD        [ IF LAST QUALIFIER   
4*XB ...      LDX   0  0(3) 
4*XT ...      SBN   0  18   
4*Y# ...      BNZ   0  NEXTQUAL       [ IF NOT 'LIMIT'  
4*YR ...      LDX   0  1(3) 
4*^= ...      SBN   2  ADPAIR-A1
4*^P ...      ADX   2  0(2) 
4B28 ...      SBN   2  1
4B2M ...      LDX   1  0(2) 
4B36 ...      BXGE  1  0,REJECTQUAL   [ IF NOT < PREVIOUS ONE   
4B3K ...      STO   1  1(3) 
4B44 ...REJECTQUAL  
4B4H ...      HUNT     3,FILE,ADJUNCTS  
4B52 ...      LDX   4  A1(3)
4B5F ...      SBN   4  2
4B5Y ...      STO   4  A1(3)
4B6C ...      ALTLENG  3,4            [ SHORTEN BLOCK   
4B7G          BRN      NXMOD               [J FOR NEXT QUALIFIER
4BM6    #   
4C6Q    #  3) THIS CHECKS FOR DEVICE TYPE,GOES TO"NOSIZ"IF UNSATISFIED. 
4CLB    #   
4D62    MAINM   
4DKL          LDCH  0  APARA(2) 
4F5=          SBN   0  #32                 [COULD IT BE A DEVICE TYPE ? 
4FJW          BNZ   0  NOSIZ               [J IF NOT
4G4G          CALL  6  VIX1 
4GJ6          BRN   NXMOD   
4H3Q    #   
4HHB    #  4) THIS CHECKS FOR CLEAN MAIN MODE,THEN THE OTHERS.GOES TO "SUBMO"   
4J32    #   
4JGL    NOSIZ LDX   1  FX1                 [IS THIS A MODE QUALIFIER
4K2=          LDN   5  0                   [MAIN-MODE SETTER
4KFW          LDX   0  APARA(2) 
4K^G          BXE   0  MCLEA(1),SCLN       [TEST IF CLEAN MODE  
4LF6          BXE   0  MSCRA(1),SSCR       [J IF SCRATCH
4LYQ    NXMM  LDX   0  MODP(1)  
4MDB          BZE   0  SUBMO               [J IF NOT A MAIN MODE
4MY2          BXU   0  APARA(2),MYNX       [J IF 1ST 4 CHARS NOT  SAME  
4NCL          HUNT     3,FILE,ADJUNCTS  
4NX=          LDN   0  #7000
4PBW          ANDX  0  A1+1(3)        [J IF M.MODE ALREADY GIVEN
4PLN ...      SLL   5  9
4PWG ...      BZE   0  SETMM
4Q6# ...      SBX   0  5               [HAS DIFFERENT MAIN MODE 
4QB6 ...      BNZ   0  MESSQ           [   ALREADY BEEN SET 
4QKY ...SETMM   
4QTQ          ORS   5  A1+1(3)             [SET MAIN-MODE IN B12-B14
4R*B          FREECORE 2                   [FREE LAST CUNI BLOCK
4RT2          BRN      NXMOD
4S#L    MYNX  ADN   1  1
4SS=          ADN   5  1                   [ADD 1 TO MODE SETTER
4T?W          BRN      NXMM                [J TO TEST AGAINST NEXT MAIN-MODE
4TRG    SCLN  LDCT  5  #020 
4W?6          HUNT     3,FILE,ADJUNCTS  
4WQQ    OKSCRA  
4X=B          ORS   5  A1+1(3)  
4XQ2          FREECORE 2
4Y9L          BRN      NXMOD
4YP=    SSCR  LDN   5  #4004
4^8W          MHUNTW   3,FILE,ADJUNCTS  
4^NG          LDN   0  #7000
5286          ANDX  0  A1+1(3)  
52MQ          BNZ   0  MESSQ               [J IF THERE IS A MAIN MODE ALREADY   
537B          BRN      OKSCRA   
53M2    #   
546L    #  5) THIS CHECKS FOR SUBMODES,EXITS TO "QUALS" 
54L=    #   
555W    SUBMO LDX   1  FX1  
55KG          LDN   5  1                   [MASK FOR BIT-SETTING
5656    NXPRE LDX   0  NAME(1)             [NEXT SUB-MODE   
56JQ          BZE   0  QUALS
574B          BXU   0  APARA(2),TRYNX      [J IF 1ST 4 CHARS NOT SAME   
57J2          HUNT     3,FILE,ADJUNCTS  
583L          ORS   5  A1+1(3)             [SET BIT IN ADJUNCTS 
58H=          FREECORE 2
592W          BRN      NXMOD
59GG    TRYNX ADN   1  1
5=26          SLL   5  1                   [MOVE MASK   
5=FQ          BRN      NXPRE
5=^B    #   
5?F2    #  6) CHECK ORGANISATIONAL QUALIFIERS, THEN TRY NORMAL, ALLCHAR OR GRAPH
5?YL    #   
5#D=    QUALS LDX   1  FX1  
5#XW          LDCT  5  #200                [MASK
5*CG    NXQAL LDX   0  RAD(1)   
5*X6          BZE   0  QNGA                [J IF NO ORG. QUALS - TRY NORMAL ETC 
5BBQ          BXU   0  APARA(2),NXQ        [J IF NOT THIS ONE   
5BWB          HUNT     3,FILE,ADJUNCTS  
5CB2          ORS   5  A1+3(3)             [SET THE BIT 
5CTL          MFREE    CPB,CUNI 
5D*=          BRN      NXMOD
5DSW    NXQ   ADN   1  1
5F#G          SRL   5  1
5FS6          BRN      NXQAL
5G?Q    #   
5GRB    #     CHECK FOR THE QUALIFIERS 'NORMAL, GRAPHIC & ALLCHAR'. IF NONE OF  
5H?2    #     THESE TRY SIZE QUALIFIERS.
5HQL    #   
5J==    QNGA  LDX   1  FX1  
5JPW          SBN   1  1
5K9G    NGA   ADN   1  1
5KP6          LDX   0  NGATABLE(1)  
5L8Q          BZE   0  SIQA                [J IF END OF TABLE   
5LNB          TXU   0  APARA(2) 
5M82          BCS      NGA                 [J TO TRY NEXT IN TABLE  
5MML          HUNT     3,FILE,ADJUNCTS  
5N7=          SMO      FX2  
5NLW ...      LDX   5  ACOMMUNE8
5P6G          BNZ   5  MESSQ               [J IF THERE'S BEEN A MODE QUALIFIER  
5PL6          LDX   5  A1+2(3)  
5Q5Q          ANDN  5  #32  
5QKB          ERS   5  A1+2(3)             [UNSET ANY DEFAULT MODE  
5R52          LDX   5  NGABITS(1)          [PICK UP THE CORRESPONDING BITS  
5RJL          ORS   5  A1+2(3)             [SET IN THE ADJUNCTS DEVICE TYPE 
5S4=          SMO      FX2  
5SHW ...      STO   5  ACOMMUNE8              [INDICATE MODE SET
5T3G          FREECORE 2                   [THE CUNI
5TH6          BRN      NXMOD
5W2Q    #   
5WGB    #     SUBROUTINE TO LENGTHEN ADJUNCTS BLOCK.
5X22    #   
5XFL    SETPAIR                            [SUBROUTINE TO LENGTHEN THE ADJUNCTS 
5X^=    MERG  SBX   6  FX1  
5YDW          HUNT     3,FILE,ADJUNCTS  
5YYG          LDX   4  A1(3)
5^D6          ADN   4  2
5^XQ          STO   4  A1(3)               [SET RECORD HEADER   
62CB          ALTLEN   3,4,FILE,ADJUNCTS
62X2          HUNT     3,FILE,ADJUNCTS  
63BL          ADX   3  A1(3)
63W=    OUT   ADX   6  FX1  
64*W          EXIT  6  0
64TG    XIT   FREECORE 2
65*6          ACROSS   ADJCHECK,1   
65SQ    MASK           #77777700
66#B    NGATABLE
66S2                   4HNORM   
67?L                   4HALLC   
67R=                   4HGRAP   
68=W                   +0   
68QG    NGABITS 
69=6                   #40000002
69PQ                   #40000022
6=9B                   #40000012
6=P2    VICES   
6?8L          4H*MT 
6?N=          4H*ED 
6#7W          4H*DR 
6#MG          4H*FD 
6*76          4H*TR 
6*LQ          4H*TP 
6B6B          4H*LP 
6BL2          4H*CR 
6C5L          4H*CP 
6CK=          4H*DA 
6D4W          +0
6DJG    TYPES          #00500000
6F46                   #00600000
6FHQ                   #01100000
6G3B                   #00600000
6GH2                   #40000002
6H2L                   #40000022
6HG=                   #40000012
6H^W                   #40000012
6JFG                   #40000012
6J^6                   #00600000
6KDQ    SUBVICES
6KYB                   4HNORM   
6LD2                   4HALLC   
6LXL                   +0   
6MC=                   4HGRAP   
6MWW                   4HALPH   
6NBG                   4HPREV   
6NW6                   4HVARI   
6P*Q                   +0   
6PTB    MTCHAR  
6Q*2                   4HGT                [G-TRACK 
6QSL                   4H7T                [7-TRACK 
6R#=                   4HPE                [PHASE-ENCODED   
6RRW                   4HNZ                [NZRI TAPE   
6S?G                   +0   
6SR6    SUBBITS 
6T=Q                   #2   
6TQB                   #22  
6W=2                   +0   
6WPL                   #12  
6X9=                   +0   
6XNW                   +0   
6Y8G                   +0   
6YN6    XGDR           4HGDR
6^7Q    NONS           4HNONS   
6^MB    #SKI  FNTRAP
7272    UNTR           4HUNTR   
72LL    MTBITS  
736=          #0020 
73KW          #0040 
745G                   #0200
74K6                   #0400
754Q    SIZES          4HKWOR              [LESS THAN SKWORDS   
75JB                   4HBUCK              [<1/2/4/8>   
7642                   4HINTE              [<0/1/2/3>   
76HL                   4HRECO              [NOT MORE THAN BUCKET SIZE IN WORDS  
773=                   4HKEYL              [LESS THAN RECORD SIZE IN CHARS  
77GW                   4HKEYP              [LESS THAN RECORD SIZE IN CHARS  
782G                   4HHEAD              [<2/37   
78G6                   4HODDB              [<0/1/2/3>   
78^Q    #SKI  AHEADER   
79FB    (   
79^2                   4HDATA   
7=DL                   4HFIRS   
7=Y=                   4HSECO   
7?CW                   4HTHIR   
7?XG                   4HSEEK   
7#C6    )   
7#WQ    #SKI  AHEADER<1$1   
7*BB    (   
7*W2                   4H   
7B*L                   4H   
7BT=                   4H   
7C#W                   4H   
7CSG                   4H   
7D#6    )   
7DRQ    SDESTP  
7F?B                   4HDEST   
7FR2                   4HMODE   
7G=L                   4HOFLO   
7GQ=                   4HSTEP   
7H9W                   4HLIMI   
7HPG    #SKI  AHEADER   
7J96                   4HWBHE   
7JNQ    #SKI  AHEADER<1$1   
7K8B                   4H   
7KN2                   4HREVG   
7KT8 ...#UNS JWPHASE4   
7L2B ...               4HJOBN              [ QUALIFIER FOR RV (JOBNUMBER)   
7L7L                   +0   
7LM=    RAD            4HRAND              [FILE ORG. QUALS 
7M6W                   4HFIXE   
7MLG                   4HSERI   
7N66                   +0   
7NKQ    MODP           4HEXEC              [MAIN-MODES PRESET   
7P5B                   4HREAD   
7PK2                   4HREAD              [REALLY READR  -  SHOULDN'T OCCUR
7Q4L                   4HAPPE   
7QJ=                   4HWRIT   
7R3W                   4HGENE   
7RHG                   4HOVER   
7S36                   4HCLEA   
7SGQ                   +0   
7T2B ...NAME           4H                  [SUB-MODES PRESENT   
7TG2 ...               4H   
7T^L                   4HEMPT   
7WF=          4H                           [DESTRUCT
7WYW          4HMULT
7XDG                   4HNOWA   
7XY6                   4HREPL   
7YCQ                   4HCOMM   
7YXB ...               4H   
7^C2                   4H   
7^WL                   4H   
82B=                   4H   
82TW                   4HOFFS   
83*G          4H
83T6          4H
84#Q          4H
84SB          4H
85#2          4HMAYB
85RL          4HGIVE
86?=                   +0   
86QW    MCLEA          4HCLEA   
87=G    MSCRA          4HSCRA   
87Q6    TRAP           4HTRAP   
889Q    TGO            4HGO 
88PB    TG             4HTG 
8992    STOP           4HSTOP   
89NL    TS             4HTS 
89TS ...POWN           4HOWNE   
8=32 ...PFROZ           4HFROZ  
8=8=    TRAPGOADJ   
8=MW    #SKI  Z 
8?7G          TRACE  APARA(2),TRAPGO?   
8?M6          LDEX  4  ATYPE(2) 
8#6Q          FREECORE 2
8#LB          HUNT  1,CPB,CMULTI
8*62          LDX   5  ANALEV(1)           [PRESERVE ANALYSIS LEVEL FOR PARAFREE
8*KL          STO   5  AWORK2(2)           [STORE ANALEV IN AWORK2  
8B5=          PARANEXT ,,4                 [SPLIT INTO: "A" & "(B,C,...)"   
8B*4 ...      TESTREP2  TOOMANY,MESSW   
8BJW          CALL  3  VARIOUS             [CHECK PAIRING & NO. OF PARAMS   
8C4G          SBN   4  3                   [PRESET INSTRUCTION  
8CJ6          HUNT  2,CPB,CUNI             ['TRAPGO' SHOULD HAVE BEEN PASSED
8D3Q          LDX   0  APARA(2) 
8DHB          LDX   3  APARA+1(2)   
8F32          LDN   7  0
8FGL          TXU   0  TRAP(1)  
8G2=          BCC      YTRAP               [J IF TRAP   
8GFW          TXU   0  TG(1)
8G^G          BCC      TRAP2               [J IF TG 
8HF6          BRN      TRYTS
8HYQ    YTRAP   
8JDB          TXU   3  TGO(1)   
8JY2          BCC      TRAP2               [J IF TRAPGO 
8KCL          TXU   3  STOP(1)  
8KX=          BCC      TRAP1               [J IF TRAPSTOP   
8LBW          BRN      TYPMODES 
8LWG    TRYTS TXU   0  TS(1)
8MB6          BCS      TYPMODES 
8MTQ    TRAP1 LDCT  7  #200                [TRAPSTOP BIT FOR ETRAPMODES 
8N*B    TRAP2   
8NT2          FREECORE 2
8P#L          LDX   5  BITS22LS            [ARBITARILY LARGE NUMBER OF  PARAMS  
8PS=          CALL  6  SPLITUP             [SPLIT INTO :"B","C",... ETC 
8Q?W          DOWN     TRAPPARA,2   
8QRG          TESTREPN USERFORM,NUP        [J IF USERNAME(IF ANY) WAS OK
8R?6          SETREP   NAMEFORM            [NAMEFORM REPLY FOR HIGHER ROUTINES  
8RQQ          UP
8S=B    NUP 
8SQ2          TESTREP  UNSTYLE,UNSTYL   
8T9L          TESTREP  NOUSER,NOUSER
8TP=          TESTREP  NOSTYLE,NOSTYL   
8W8W          TESTREP  PSEUTRAP,PSEUT   
8WNG          TESTREP  WFTRAP,WFTRAP
8X86          MHUNTW   3,FILE,FTRAP 
8XMQ          ORS   7  ETRAPMODES(3)
8Y7B          LDX   7  3
8YM2          CALL  6  TRAPLAST 
8^6L    QDEFAULT
8^L=    #SKI  Z 
925W          TRACE   AWORK2(2),QDEFAULT
92KG          LDX   5  AWORK2(2)          [RETRIEVE ANALYSIS LEVEL  
9356          ADN   5  1
93JQ          PARAFREE 5
944B          BRN      NXMOD
94J2    TRAPLAST
953L          LDX   3  FPTR(3)  
95H=          LDX   0  ATYPE(3) 
962W          BXU   0  XMULTI(1),TRAPLAST   
96GG          CHAIN    7,BPTR(3)
9726          EXIT  6  0
97FQ    TESTPAIR
97^B          TESTREP  UNPAIR,XUNPAIR      [J IF DELIMITERS UNPAIRED
98F2          EXIT  1  0
98YL    #     THIS  SUBROUTINE  CHECKS THAT THE CONTENTS OF THE FIRST CUMI BLOCK
99D=    #     IN THE CHAIN IS A PERIPHERAL TYPE 5WE ALREADY KNOW IT BEGINS WITH 
99XW    #     A"*" IF ENTERED AT "VIX1") AND ORS THE APPROPRIATE BITS INTO  
9=CG    #     A1+2 OF THE ADJUNCTS BLOCK.IF A PERI TYPE HAS ALREADY BEEN GIVEN  
9=X6    #     IT FLAGS AN ERROR 
9?BQ    #   
9?WB    #     ON ENTRY X2 => CUNI. ON EXIT X7 CONTAINS THE VALUE OF THE POINTER 
9#B2    #     TO THE TABLE OF MODES.THIS IS USED IN FURTHER ANALYSIS OF 
9#TL    #     PERIPHERAL MODES  
9**=    VIX 
9*SW          LDCH  0  APARA(2)            [MAY BE PERIPHERAL DEVICE TYPE   
9B#G          SBN   0  #32                 [QUALIFIER   
9BS6          BNZ   0  MESSN
9C?Q    VIX1
9CRB    #SKI  Z 
9D?2          TRACE  APARA(2),VIX1  
9DQL          LDX   0  ANUM(2)  
9F==          ANDN  0  #7777
9FPW          SBN   0  3
9G9G          BNZ   0  MESSM
9GP6    VL    LDX   0  VICES(1) 
9H8Q          BZE   0  MESSN
9HNB          BXE   0  APARA(2),VLL 
9J82          ADN   1  1
9JML          BRN      VL   
9K7=    VLL 
9K8^ ...      MHUNT    3,FILE,FABSNB
9K=N ...      JBS      VLL1,3,BFABWORK     [AVOID 4-WORD FABSNB CHECK FOR   
9K#C ...      LDX   0  A1+1(3)             [WORKFILES - TEST WF BIT SET 
9KB6 ...      BPZ   0  VLL1                [OR NON-ALPHA CHAR 0 OF A1+1 
9KCT ...      LDX   0  A1(3)               [ERROR IF FABSNB ONLY 4-WORDS AS USER
9KFJ ...      SBN   0  4                   [ONLY WRONG WITH DEVICE TYPE QUAL
9KH? ...      BZE   0  MESSM               [E.G. RT :USER(*MT)  
9KHN ...      BXU   1  FX1,VLL1            [*MT?
9KHP ...      NGN   5  1
9KHQ ...      LDCT  0  #400 
9KHR ...      ERX   5  0
9KHS ...      MHUNT    1,FILE,FNAME 
9KHT ...      ANDX  0  A1(1)
9KHW ...      ANDS  5  A1(1)
9KHX ...      LDX   1  FX1  
9KHY ...      BNZ   0  VLL1 
9KJ5 ...      JBC   VLL1,3,BFABLANG 
9KJG ...      BRN      MESST
9KK2 ...VLL1
9KLW          HUNT  3,FILE,ADJUNCTS 
9L6G          LDX   0  A1+2(3)  
9LL6          BNZ   0  QMES 
9M5Q    NOMES   
9MKB          LDX   0  TYPES(1) 
9N52          ORS   0  A1+2(3)  
9NJL          STO   1  7                   [PRESERVE POINTER-OCCASIONALLY NEEDED
9P4=          FREECORE 2
9PHW          EXIT  6  0                   [EXIT
9Q3G    QMES
9QH6          SBN   0  3
9R2Q          BPZ   0  MESSN               [J IF NOT "NONS", "PROP" OR "PR" 
9RGB          LDCT  0  5                   [MT TYPE 
9S22          BXE   0  TYPES(1),NOMES      [J BACK IF MT TYPE   
9SFL          BRN      MESSN
9S^=    #     THIS  SUBROUTINES PASSES THE NEXT PARAM & TESTS THE   
9TDW    #     REPLY  IN ANUM OF THE CUNI- BLOCK 
9TYG    #     EXIT     NON-EXISTENT 
9WD6    #     EXIT +1  NULL 
9WXQ    #     EXIT +2  O/W  
9XCB    PARAPASS
9XX2          SBX   3  FX1  
9YBL          PARAPASS  
9YW=          ADX   3  FX1  
9^*W          HUNT  2,CPB,CUNI  
9^TG    #SKI  Z 
=2*6          TRACE    APARA(2),PARAPASS
=2SQ          LDX   0  ANUM(2)  
=3#B          BNG   0  (3)  
=3S2          ADN   3  1
=4?L          BZE   0  (3)  
=4R=          EXIT  3  1
=5=W    #   
=5QG    #     THIS  SUBROUTINE SPLITS THE 2ND PARAM IN THE LOWEST CMULTI BLOCK  
=6=6    #     AT COMMAS,THEREBY ALSO REMOVING THE OUTERMOST BRACKETS.A CHECK
=6PQ    #     IS MADE ON THE PAIRING OF BRACKETS,& THE NUMBER OF PARAMETERS 
=79B    #     THERE 
=7P2    #     X5 ON ENTRY CONTAINS THE MAXIMUM NUMBER OF PARAMS +1  
=88L    #   
=8N=    SPLITUP 
=97W    #SKI  Z 
=9MG          TRACE   5,SPLITUP 
==76          SBX   6  FX1                 [DATUMISE,LINK   
==LQ          LDN   4  2                   [PARAM. NO.  
=?6B          PARALYSE #34,,4              [SPLIT AT ","
=?B8 ...      TESTREP2  TOOMANY,MESSW   
=?L2          CALL  3  VARIOUS             [CHECK ETC   
=#5L          SBX   4  5                   [PRESET INSTRUCTION  
=#K=          ADX   6  FX1                 [REDATUMISE LINK 
=*4W          EXIT  6  0
=*JG    #   
=B46    #     THIS SUBROUTINE CHECKS PAIRING & NUMBER OF PARAMETERS 
=BHQ    #   
=C3B    VARIOUS 
=CH2    #SKI  Z 
=D2L          TRACE   0(3),VARIOUS  
=DG=          CALL  1  TESTPAIR            [CHECK PAIRING   
=D^W          SBX   3  FX1  
=FFG          PARANUMB 4                   [NO. OF PARAMS   
=F^6          ADX   3  FX1  
=GDQ          OBEY     0(3)                [OBEY PRESENT INSTRUCTION(EITHER AN  
=GYB          BPZ   4  MESSN               ["SBX 4 ?" OR AN "SBN 4 ?"   
=HD2          EXIT   3  1   
=HXL    #   
=JC=    #   
=JWW    TYPMODES [ENTRY TO ANALYSE BASIC PERIPHERAL QUALS. & THEIR SUB- 
=KBG                   [QUALIFIERS.WE HAVE A CONPOSITE PARAM.(NOT A TRAPGO ADJUN
=KW6          LDX   0  APARA(2) 
=L*Q          BXE   0  TYPES(1),MTQUAL     [*MT CAN BE QUALIFIED
=LTB          ADN   1  4                   [DON'T WANT *DR ETC  
=M*2    #SKI  Z 
=MSL          TRACE   0(1),TYPMODES 
=N#=          CALL  6  VIX                 [CHECK IS A PERI TYPE
=NRW          SBX   7  FX1                 [WE'LL USE THE POINTER   
=P?G          LDN   5  3                   [ONLY 2 PARAMS AT"MODE" LEVEL
=PR6          CALL  6  SPLITUP  
=Q=Q          ADN   4  3                   [X4 = NO PARAMS -3   
=QQB          BZE   4  QDEFAULT 
=R=2          ADX   7  FX1  
=RPL          ADN   7  TABLE-4             [EXIT ACCORDING TO TYPE FOUND
=S9=          EXIT  7  0                   [TABLE OF'BRNS' AT'TABLE'
=SNW    TABLE   
=T8G          BRN      PARTR               [TR IS INTERESTING   
=TN6          BRN      PARTR               [TP  
=W7Q          BRN      MESSP               [ ERROR  
=WMB          BRN      PARCR               [CR SLIGHTLY INTERESTING 
=X72          BRN      MESSP               [ ERROR  
=XLL    MESSP   
=Y6=          ACROSS  NORMERR,66
=YKW    #    "AN ILLAGAL SUBQUALIFIER HAS BEEN GIVEN"   
=^5G    QARD  4HCARD
=^K6    PARCR   
?24Q    #SKI  Z 
?2JB          TRACE  4,PARCR
?342          SBN   4  2                   [MUST BE ONE PARAM   
?3HL          BPZ   4  MESSP
?43=          CALL  3  PARAPASS 
?4GW          NULL  
?52G          NULL  
?5G6          LDX   0  APARA(2) 
?5^Q          SBX   0  QARD(1)             [MUST BE "CARD"  
?6FB          BNZ   0  MESSP
?6^2          BRN      QDEFAULT 
?7DL    PARTR   
?7Y=    #SKI  Z 
?8CW          TRACE  4,PARTR
?8XG          STOZ     AWORK4(2)           [SWITCH  
?9C6    PARTRLOOP   
?9WQ          CALL  3  PARAPASS 
?=BB          NULL  
?=W2          NULL  
??*L          CALL  3  TESTIT              [ALLCHAR & NORMAL FIRST  
??T=          BRN      NALCNOR             [BRN IF NOT ONE OF THESE 
?##W          LDN   0  1                   [TEST IF B23SET (-> ALLCHAR OR NORMAL
?#SG          ANDX  0  AWORK4(2)           [[ALREADY FOUND) 
?*#6          BNZ   0  MESSP
?*RQ          LDN   0  1                   [SET BIT NOW 
?B?B          ORS   0  AWORK4(2)
?BR2          BCT   4  PARTRLOOP           [BRANCH ON COUNT FOR NEXT PARAM  
?C=L          BRN      QDEFAULT1
?CQ=    NALCNOR 
?D9W          ADN   1  1                   [UPDATE PTR. 
?DPG          CALL  3  TESTIT              [SEARCH THRU' OTHER MODES
?F96          BRN      NOMODEX             [BRN IF NOT FOUND
?FNQ          LDN   0  2                   [TEST IF B22 SET (=> ONE OF THESE
?G8B          ANDX  0  AWORK4(2)           [MODES ALREADY GIVEN)
?GN2          BNZ   0  MESSP
?H7L          LDN   0  2
?HM=          ORS   0  AWORK4(2)           [OR IN B22   
?J6W          BCT   4  PARTRLOOP
?JLG    QDEFAULT1   
?K66          LDX   0  A1+2(1)             [X1 -> ADJUNCTS  
?KKQ          SBN   0  #32  
?L5B          BZE   0  MESSP               [NORMAL + ALLCHAR ILLEGAL
?LK2          BRN      QDEFAULT 
?M4L    #   
?MJ=    NOMODEX 
?N3W          FREECORE 2
?NHG          BRN      MESSP
?P36    MTQUAL  
?PGQ    #SKI  Z 
?Q2B          TRACE    APARA+1(2),MTQUAL
?QG2          BRN      MESSN               [CURRENTLY DON'T ALLOW *MT TO BE 
?Q^L                                       [QUALIFIED   
?RF=    #   
?RYW    #   
?SDG    #     THIS  SUBROUTINE,SEARCHES THRU' THE TABLE POINTED TO BY X1 FOR A  
?SY6    #     MATCH WITH'APARA'OF THE CUNI BLOCK AT X2. IF FOUND,THE APPR. BIT  
?TCQ    #     POINTED TO IN THE BITS TABLE IS ORED INTO A1+2 OF THE ADJUNCTS
?TXB    #     BLOCK AFTER THE CUNI IS FREED.
?WC2    #   
?WWL    TESTIT  
?XB=          LDX   0  SUBVICES(1)  
?XTW          BZE   0  (3)  
?Y*G          BXE   0  APARA(2),TESTFOUND  [J IF FOUND  
?YT6          ADN   1  1                   [STEP ON PTR 
?^#Q          BRN      TESTIT              [BACK
?^SB    TESTFOUND   
#2#2          LDX   6  SUBBITS(1)          [PICK UP APPR. BITS  
#2RL          FREECORE 2                   [FREE CUNI   
#3?=          HUNT  1,FILE,ADJUNCTS        [OR BITS INTO ADJUNCTSB  
#3QW          BZE   6  OBSOLETE            [J IF ONE OF ALPHA, PREVIOUS OR VAR  
#4=G          LDN   0  #77  
#4Q6          ANDX  0  A1+2(1)  
#59Q          ERS   0  A1+2(1)             [UNSET CURRENT DEFAULT VALUE 
#5PB          ORS   6  A1+2(1)  
#692    OBSOLETE
#6NL          EXIT  3  1
#78=    UNSTYL  
#7MW    #     UNRECOGNIZED TRAPSTYLE
#87G          ACROSS   NORMERR,24   
#8M6    NOUSER  
#96Q    #     USERNAME NOT IN DICTIONARY
#9LB          ACROSS   NORMERR,25   
#=62    NOSTYL  
#=KL    #     TRAPSTYLE PARAMETER MISSING   
#?5=          ACROSS   NORMERR,26   
#?JW    MESSM   
##4G    #     DEVICE TYPE QUALIFIER INCORRECT   
##J6          ACROSS   NORMERR,27   
#*3Q    MESSN   
#*HB    #     AN ILLEGAL QUALIFIER HAS BEEN GIVEN   
#B32          ACROSS   NORMERR,28   
#BGL    MESSO   
#C2=    #     A SIZE QUALIFIER IS INCORRECT 
#CFW          ACROSS   NORMERR,29   
#C^G    MESSQ   
#DF6    #    "AN ILLEGAL COMBINATION OF DETAILS..." 
#DYQ          ACROSS   NORMERR,37   
#F2^ ...MESST   
#F58 ...#     A LANGUAGE CODE HAS BEEN GIVEN WITH *MT   
#F7C ...      ACROSS   NORMERR,20   
#F9L ...MESSW   
#F?T ...#      MORE THAN 24 PARAMS  
#FB4 ...      ACROSS   NORMERR,34   
#FDB    XUNPAIR 
#FY2    #     AN UNPAIRED DELIMITER HAS BEEN GIVEN  
#GCL          ACROSS   NORMERR,30   
#GX=    PSEUT   
#HBW    #     FRED IS A PSEUDO-USER --- ETC 
#HWG          ACROSS   NORMERR,70   
#JB6    NMW 
#JTQ    #     SET REPLY O UP
#K*B          ACROSS   NORMERR,64   
#KT2    WFTRAP  
#L#L    #     TRAPS ON WORKFILES MAY ONLY BE GIVEN TO THE PROPER USER   
#LS=          ACROSS   NORMERR,65   
#M?W    [   
#MRG          MENDAREA 25,K99ADJUNCTS   
#N?6    #END
^^^^ ...12575733000500000000