Show pageBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. {{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]] <code - 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 </code> Last modified: 17/01/2024 11:55by 127.0.0.1 Log In