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