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

  1. ; Program Name: RegBas9.ASM
  2. ;
  3. ; Functions   :
  4. ;        BasClientWndProc9
  5. ;        RegBas9
  6. ;
  7. ; Description : This supplies the interface routines for BASIC programs.
  8. ;        used to register window classes from BASIC.
  9. ;
  10.  
  11. DOSSEG
  12. .286              ; OS/2 only runs on 286 machines
  13. .model medium, PASCAL      ; Medium memory model when interfacing with BASIC
  14.               ; PASCAL and BASIC use same calling conventions
  15.  
  16. .data
  17.  
  18. hwndb1    DW  ?          ; set up local data for BasClientWndProc
  19. hwndb2    DW  ?
  20. msgb    DW  ?
  21. mp1b1    DW  ?
  22. mp1b2    DW  ?
  23. mp2b1    DW  ?
  24. mp2b2    DW  ?
  25.  
  26. .code
  27.  
  28. EXTRN    ClientWndProc9:PROC            ; BASIC function to call
  29.  
  30. PUBLIC BasClientWndProc9, RegBas9
  31.  
  32.  
  33. BasClientWndProc9  PROC hwnd1:word, hwnd2:word, msg:word, mp11:word, mp12:word, mp21:word, mp22:word
  34.  
  35.                push ds
  36.                mov  ax, @data        ; get our data segment
  37.                mov  ds, ax
  38.  
  39.                mov  ax, hwnd2        ; transfer the values passed
  40.                mov  hwndb1, ax        ; from PM to local variables
  41.                mov  ax, hwnd1        ; for the call to BASIC
  42.                mov  hwndb2, ax
  43.                mov  ax, msg
  44.                mov  msgb, ax
  45.                mov  ax, mp12
  46.                mov  mp1b1, ax
  47.                mov  ax, mp11
  48.                mov  mp1b2, ax
  49.                mov  ax, mp22
  50.                mov  mp2b1, ax
  51.                mov  ax, mp21
  52.                mov  mp2b2, ax
  53.  
  54.                mov  ax, OFFSET hwndb1  ; set up for call to BASIC
  55.                push ax               ; BASIC expects values to
  56.                mov  ax, OFFSET msgb    ; be passed by reference.
  57.                push ax
  58.                mov  ax, OFFSET mp1b1
  59.                push ax
  60.                mov  ax, OFFSET mp2b1
  61.                push ax
  62.  
  63.                call ClientWndProc9     ; call BASIC routine - note
  64.                            ; return values are already
  65.                pop  ds               ; in dx, ax so we don't have
  66.                ret               ; to do anything.
  67.  
  68. BasClientWndProc9  ENDP
  69.  
  70. RegBas9         PROC
  71.               mov dx, SEG BasClientWndProc9    ; return address of
  72.               mov ax, OFFSET BasClientWndProc9 ; BASIC routine.
  73.               ret
  74.  
  75. RegBas9         ENDP
  76.  
  77.             end
  78.