22FL ... SEG COMHOOK,,CENT(INSTALLATION HOOKS),,G400 22^= [ 23DW [ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 23YG [ 24D6 # 24XQ # THIS SEGMENT DEALS WITH ENTERING A COMMAND HOOK 25CB # IF ONE HAS BEEN SPECIFIED. 25X2 # 26BL # THIS CHAPTER IS FOR G3PLUS-IH MK2 26W= # 27*W SEGENTRY K1COMHOOK,START 27TG # 28*6 # PRESETS 28SQ # 29#B SEGENTRY G400HKD1 29S2 USERN 12HHOOKS [HOOKS USER NAME 2=?L NMDTLS 2=R= +1 [DETAILS FOR HOOK BODY 2?=W #20000000 2?QG +0 2#=6 TWO +2 [FOR COUNTING 0-3 2#PQ THREE +3 2*9B MASKETM #67777777 2*P2 MASKCONT #77777 2B8L TBLK 2BN= #HAL IUSER+G400BLK,0 2C7W # 2CMG # SUBROUTINE 2D76 # LOCATES HOOK BLOCK 2DLQ # LINK X6,RESULT X3,X0 OVERWRITTEN 2F6B # 2FL2 PHKB 2G5L LDN 3 BMISC [START OF MISC CHAIN 2GK= PHKB1 2H4W LDX 3 BPTR(3) [SCAN BACKWARDS 2HJG LDX 0 ATYPE(3) [TYPE 2J46 ANDX 0 HALFTOP [MASK TOP 12 BITS 2JHQ TXU 0 TBLK(1) 2K3B BCS PHKB1 [IF NOT,TRY NEXT 2KH2 LDX 0 A1(3) 2L2L SBN 0 7 2LG= BNZ 0 PHKB1 [IF NOT,TRY NEXT 2L^W EXIT 6 0 2MFG # 2M^6 # ############################################################# 2NDQ # 2NYB # K K 1 2PD2 # K K 11 2PXL # K K 1 2QC= # K K 1 2QWW # KKK 1 2RBG # K K 1 2RW6 # K K 1 2S*Q # K K 1 2STB # K K 1 2T*2 # 2TSL # ############################################################# 2W#= # 2WRW START 2X?G TESTHOOK NOHK [IF WITHIN HOOK,CONTINUE 2XR6 CALL 6 PHKB [LOCATE HOOKS BLK 2Y=Q LDX 7 A1+2(3) [COUNT OF HOOKS 2YQB ADN 3 A1-2 [START OF TABLE - 5 2^=2 LDN 6 0 [MARK 'NOT ABBREVIATION' 2^PL LDX 4 AWORK1(2) [NO OF CHARS IN VB 329= TXL 4 THREE(1) [MORE THAN TWO ? 32NW BCC P1 [IF SO,JUMP 338G LDN 6 1 [ELSE MARK 'TRY ABBREVIATION' 33N6 P1 347Q BZE 7 NOHK 34MB NXT 3572 ADN 3 5 35LL BZE 6 P2 [J IF NOT ABBREVIATION 366= LDX 0 AWORK2(2) [LOAN 1ST TWO CHARS 36KW ERX 0 0(3) [COMPARE WITH ABBREV FORM 375G BZE 0 PHOUND [J IF FOUND 37K6 P2 384Q LDN 4 0 [PREPARE FOR FULL COMPARISON 38JB P3 3942 SMO 4 39HL LDX 0 1(3) [LOAD NEXT WD FROM TABLE 3=3= SMO 4 3=GW TXU 0 AWORK2(2) [COMPARE AGAINST VERB 3?2G BCC P4 3?G6 BCT 7 NXT 3?^Q BRN NOHK 3#FB P4 3#^2 TXU 4 TWO(1) [TEST IF ANY MORE WDS OF VERB 3*DL BCC PHOUND [J IF NOT,FOUND! 3*Y= ADN 4 1 [ELSE UPDATE COUNT 3BCW BRN P3 [AND COMPARE NEXT WORD 3BXG # 3CC6 # THIS SECTION OF CODE ATTEMPTS TO OPEN THE HOOK 3CWQ # JUST FOUND 3DBB # 3DW2 PHOUND 3F*L LDX 4 4(3) 3FT= LDX 6 CONTEXT(2) 3G#W ANDX 6 MASKCONT(1) 3GSG ANDX 6 4 3H#6 BNZ 6 NOHK [WRONG CONTEXT 3HRQ LDX 5 1(3) 3J?B LDX 6 2(3) 3JR2 LDX 7 3(3) 3K=L SETNCORE 10,3,FILE,FABSNB [SET UP ABSOLUTE NAME BLOCK 3KQ= STO 5 A1+4(3) 3L9W STO 6 A1+5(3) 3LPG STO 7 A1+6(3) 3M96 LDN 0 10 3MNQ STO 0 A1(3) [HEADER 3N8B LDN 5 USERN(1) 3NN2 LDN 6 A1+1(3) 3P7L MOVE 5 3 [USER NAME 3PM= LDN 5 NMDTLS(1) 3Q6W LDN 6 A1+7(3) 3QLG MOVE 5 3 [DETAILS 3R66 USEROPEN PBREAK,EXECUTE,UNTRAP,LEAVE,NOERREP [OPEN HOOK 3RKQ TESTREP OK,OPEN,NOFILE,NHK1 3S5B BRN NHK1 [FAIL CASE 3SK2 # 3T4L # HAVING OPENED THE HOOK IT IS CHECKED FOR PERIPHERAL 3TJ= # TYPE, AND IF OK,ENTERED 3W3W # 3WHG OPEN [CLEAR UP AFTER OPEN 3X36 MFREE FILE,FABSNB 3XGQ MHUNT 3,FILE,ENT 3Y2B LDX 7 ETM(3) 3YG2 BZE 7 PHAIL1 [WRONG PERIPHERAL TYPE 3Y^L SLL 67 9 [TYPE IN X6 3^F= SRL 7 9 [MODE IN X7 3^YW ANDN 6 #377 [MASK FOR BASIC PERIPHERAL FILE 42DG BNZ 6 PHAIL1 [ERROR IF NOT 42Y6 LDX 0 MASKETM(1) 43CQ ANDS 0 EXT+9(2) 43XB ERN 7 #12 44C2 BNZ 7 OUT [J IF SHIFT FILE 44WL LDCT 0 #400 45B= ORS 0 EXT+9(2) [DENOTE GRAPHIC FILE 45TW OUT 46*G FREECORE 3 46T6 STOZ EXT+3(2) 47#Q BNG 4 OUT1 47SB BRUSEN OUT2 48#2 SLL 4 1 48RL BPZ 4 OUT2 [J IF HOOK-STARTING NOT REQUIRED 49?= FJOCA 2 49QW SPRIVJUMP JSSTART,2,OUT2 [J IF ALREADY SYSTEM STARTED 4==G SETHSTAR [SET HOOK-STARTED BIT 4=Q6 OUT2 4?9Q LDX 2 FX2 4?PB SETHOOK 2 4#92 OUT1 4#NL ACROSS ALASB,2 [ENTER HOOK 4*8= # 4*MW # IF NO HOOK IS FOUND,CONTINUE WITH VERBCLAS 4B7G # IN STANDARD WAY. 4BM6 # 4C6Q NHK1 4CLB MFREE FILE,FABSNB 4D62 NOHK 4DKL LDCH 4 AWORK2(2) [1ST CHAR 4F5= SBN 4 #56 4FJW BPZ 4 NOH1 [J IF N-Z INCLUSIVE 4G4G ACROSS VERBCLAS,1 4GJ6 NOH1 4H3Q ACROSS VCLASTWO,1 4HHB # 4J32 # FAIL CASE 4JGL # 4K2= PHAIL1 4KFW CLOSE [CLOSE HOOK 4K^G MFREE FILE,ENT 4LF6 PHAIL 4LYQ BRN NOHK 4MDB # 4MY2 # BREAKIN CASE 4NCL # 4NX= PBREAK 4PBW COMBRKIN 4PWG # HOOK TABLE 4QB6 #END ^^^^ ...003137010001