{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: ADJUNCTS85)}}
====== ADJUNCTS85 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:ALTLENG|ALTLENG]], [[george:macro:BS|BS]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CHNUMCON|CHNUMCON]], [[george:macro:DOWN|DOWN]], [[george:macro:ENTPROP|ENTPROP]], [[george:macro:FREECORE|FREECORE]], [[george:macro:HUNT|HUNT]], [[george:macro:JBC|JBC]], [[george:macro:JBS|JBS]], [[george:macro:MASK|MASK]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MTCHAR|MTCHAR]], [[george:macro:NAME|NAME]], [[george:macro:PARAFREE|PARAFREE]], [[george:macro:PARALYSE|PARALYSE]], [[george:macro:PARANEXT|PARANEXT]], [[george:macro:PARANUMB|PARANUMB]], [[george:macro:PARAPASS|PARAPASS]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETREP|SETREP]], [[george:macro:TESTPAIR|TESTPAIR]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TRACE|TRACE]], [[george:macro:UP|UP]]
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