home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / BMULKY.ZIP / MULAUD.ASM < prev    next >
Encoding:
Assembly Source File  |  1988-04-25  |  1.9 KB  |  61 lines

  1. ; Assembler interface to Turbo Pascal - MULKEY
  2. ;
  3. ; Copyright 1988 by Mark R. Boler  -  All Rights Reserved
  4.  
  5. TITLE        MULKEY
  6.  
  7. CODE         SEGMENT BYTE PUBLIC
  8.  
  9.              ASSUME  CS:CODE
  10.  
  11.              EXTRN   AUD_Record: NEAR
  12.  
  13.              PUBLIC  AddRecord, UpdateRecord, DeleteRecord
  14.  
  15. AddOp        EQU     2
  16. UpdateOp     EQU     3
  17. DeleteOp     EQU     4
  18.  
  19. ; PROCEDURE xxxRecord(Handle: WORD; VAR d); EXTERNAL;
  20.  
  21. Handle       EQU     WORD PTR ss:[bx + 8]
  22. DBufSeg      EQU     WORD PTR ss:[bx + 6]
  23. DBufOfs      EQU     WORD PTR ss:[bx + 4]
  24.  
  25. UpDateRecord PROC    FAR
  26.              mov     al, UpdateOp         ; set op code
  27. CallEntry:
  28.              mov     bx, sp               ; set up stack frame in bx
  29.              push    Handle               ; set up for call to AUD_Record
  30.              push    DBufSeg
  31.              push    DBufOfs
  32.              push    ax
  33.              call    AUD_Record           ; make the call
  34.              ret     6                    ; clean up and return to caller
  35. UpDateRecord ENDP
  36.  
  37. AddRecord    PROC    FAR
  38.              mov     al, AddOp            ; load op code
  39.              jmp     SHORT CallEntry      ; make the call
  40. AddRecord    ENDP
  41.  
  42. ; PROCEDURE DeleteRecord(Handle: WORD); EXTERNAL;
  43.  
  44. DHandle      EQU     WORD PTR ss:[bx + 4]
  45.  
  46. DeleteRecord PROC    FAR
  47.              mov     al, DeleteOp         ; set op code
  48.              mov     bx, sp               ; set up stack frame in bx
  49.              push    DHandle              ; set up for call to AUD_Record
  50.              push    ss                   ; push address of Handle
  51.              add     bx, 4
  52.              push    bx
  53.              push    ax                   ; push op code
  54.              call    AUD_Record           ; make the call
  55.              ret     2                    ; clean up and return to caller
  56. DeleteRecord ENDP
  57.  
  58. CODE         ENDS
  59.  
  60.              END
  61.