;*********************************************************
;*                                                       *
;*     Call the user defined transaction program         *
;*                                                       *
;*  This subroutine calls the user defined transaction   *
;*  program and passes to it the CREATE_TP record.       *
;*                                                       *
;*                                                       *
;* CopyRight 1995. Nicholas Poljakov all rights reserved.*
;*                                                       *
;*********************************************************
.MODEL LARGE
.DATA
.CODE
         EXTRN  _tp_exit:dword
         PUBLIC _calltpn
_calltpn PROC
         push  bp
         mov   bp,sp
;
         push  ds
;
         mov   ax, [bp + 8]
         mov   dx, [bp + 6]
         cmp   ax, 0ffffh    ; check if the exit is not
         jne   CallTP
         cmp   dx, 0ffffh    ; available
         jne   CallTP
         mov   ax, 0         ; set the return code and then exit
         mov   dx,084ch      ; rc. = 'tp_not_available_no_retry'
         jmp   short CallTpExit
CallTP:
         mov   ds, ax
         pushf
         call  _tp_exit
;
;  Load the SENSE value from the CREATE_TP record.
;
         mov   bx, dx
         mov   ax, word ptr [bx + 20]  ; load the ax with value of sense
         mov   dx, word ptr [bx + 22]  ; load the dx with value of sense
;
CallTpExit:
         pop   ds
;
         pop   bp
         ret
_calltpn ENDP
         END
