1 ; ***********************************************************
 2 ; *                                                         *
 3 ; * Copyright, (C) Honeywell Bull Inc., 1987                *
 4 ; *                                                         *
 5 ; * Copyright, (C) Honeywell Information Systems Inc., 1986 *
 6 ; *                                                         *
 7 ; ***********************************************************
 8 
 9 ; HISTORY COMMENTS:
10 ;  1) change(86-07-04,Westcott), approve(87-07-13,MCR7580),
11 ;     audit(87-07-13,Leskiw), install(87-08-07,MR12.1-1072):
12 ;     Created.
13 ;                                                      END HISTORY COMMENTS
14 
15 ;/* : PROCEDURE FUNCTION (pe_antry)
16 ;
17 ;Provides a "far" entry point to be used by MOWSE for calling pe.c when an
18 ;application message is received. The use of this routine allows us to use
19 ;the small memory model for the Lattice compiler.
20 ;*/
21 
22 include  dos.mac
23 
24 ;-------------- External procedures
25 
26 extrn    pe:near
27 
28 ;-------------- Data segment
29 
30 dseg
31 
32 pe_str  struc
33 old_bp  dw      ?       ; save area for old bp
34 off_r1  dw      ?       ; return offset from stack call
35 seg_r1  dw      ?       ; return segment from stack call
36 off_r2  dw      ?       ; return offset from wsexecap
37 seg_r2  dw      ?       ; return segment from execap
38 mcb_ptr dw      ?       ; param for pe (mcb_ptr)
39 min_cap dw      ?       ; param for pe (minor_capability)
40 bufseg  dw      ?       ; param for pe (buffer segment address)
41 bufoff  dw      ?       ; param for pe (buffer offset address)
42 buflen  dw      ?       ; param for pe (buffer length)
43 pe_str  ends
44 endds
45 
46 ;*************************************************************************
47 ;                                  MAIN
48 ;*************************************************************************
49 pseg
50 
51 public pe_entry
52 
53 pe_entry proc far
54 
55         push    bp                     ; save BP
56         mov     bp,sp                  ; Get parameter off stack
57         push    buflen[bp]             ; ... bp -> pe_str.buf_lend (backwords addressing)
58         push    bufoff[bp]             ; ... and put them onto stack individually
59         push    bufseg[bp]
60         push    min_cap[bp]
61         push    mcb_ptr[bp]
62         call    pe                     ; call pre_entry routine to application
63         mov     sp,bp                  ; put sp back
64         pop     bp                     ; restore original bp
65         ret
66 
67 pe_entry endp
68 endps
69        end
70 ^Z