COMHOOK867

(George Source)

Macros used: ACROSS, BRUSEN, CLOSE, COMBRKIN, FJOCA, FREECORE, MFREE, MHUNT, OPEN, SEG, SEGENTRY, SETHOOK, SETHSTAR, SETNCORE, SPRIVJUMP, TESTHOOK, TESTREP, USEROPEN

COMHOOK867.txt
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
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1