home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / OS2BAS.ZIP / HELPHOOK.ASM < prev    next >
Assembly Source File  |  1989-09-14  |  2KB  |  74 lines

  1. ; Program Name: HelpHook.ASM
  2. ;
  3. ; Functions   :
  4. ;
  5.  
  6. DOSSEG
  7. .286                  ; OS/2 only runs on 286 machines
  8. .model medium, PASCAL          ; Medium memory model when interfacing with BASIC
  9.                   ; PASCAL and BASIC use same calling conventions
  10.  
  11. .data
  12.  
  13. bhab1    DW  ?              ; set up local data for BasClientWndProc
  14. bhab2    DW  ?
  15. busmode  DW  ?
  16. bidtopic DW  ?
  17. bidsub   DW  ?
  18. bprcpos1 DW  ?
  19. bprcpos2 DW  ?
  20.  
  21. .code
  22.  
  23. EXTRN    HelpHook:PROC         ; BASIC function to call
  24.  
  25. PUBLIC BasHelpHook, RegHelpHook
  26.  
  27. BasHelpHook PROC hab1:word, hab2:word, usmode:word, idtopic:word, idsub:word, prcpos1:word, prcpos2:word
  28.  
  29.    push ds
  30.    mov  ax, @data             ; get our data segment
  31.    mov  ds, ax
  32.  
  33.    mov  ax, hab2              ; transfer the values passed
  34.    mov  bhab1, ax             ; from PM to local variables
  35.    mov  ax, hab1              ; for the call to BASIC
  36.    mov  bhab2, ax
  37.    mov  ax, usmode
  38.    mov  busmode, ax
  39.    mov  ax, idtopic
  40.    mov  bidtopic, ax
  41.    mov  ax, idsub
  42.    mov  bidsub, ax
  43.    mov  ax, prcpos2
  44.    mov  bprcpos1, ax
  45.    mov  ax, prcpos1
  46.    mov  bprcpos2, ax
  47.  
  48.    mov  ax, OFFSET bhab1      ; set up for call to BASIC
  49.    push ax                    ; BASIC expects values to
  50.    mov  ax, OFFSET busmode    ; be passed by reference.
  51.    push ax
  52.    mov  ax, OFFSET bidtopic
  53.    push ax
  54.    mov  ax, OFFSET bidsub
  55.    push ax
  56.    mov  ax, OFFSET bprcpos1
  57.    push ax
  58.  
  59.    call HelpHook              ; call BASIC routine - note
  60.                               ; return values are already
  61.    pop ds                     ; in dx, ax so we don't have
  62.    ret                        ; to do anything.
  63.  
  64. BasHelpHook ENDP
  65.  
  66. RegHelpHook PROC
  67.    mov dx, SEG BasHelpHook    ; return address of
  68.    mov ax, OFFSET BasHelpHook ; BASIC routine.
  69.    ret
  70.  
  71. RegHelpHook ENDP
  72.  
  73.    end
  74.