summaryrefslogtreecommitdiff
path: root/v4.0/src/MAPPER/PUTMSG.ASM
blob: ef1bef987550a6b3c8c642b20d541abf26d6d64e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
page 60,132

title CP/DOS  DOSPutMessage  mapper

dosxxx	segment byte public 'dos'
	assume	cs:dosxxx,ds:nothing,es:nothing,ss:nothing
;
; ************************************************************************* *
; *
; *	 MODULE: DosPutMessage
; *
; *	 FILE NAME: dos035.asm
; *
; *	 FUNCTION:   diplay message
; *
; *	 CALLING SEQUENCE:
; *
; *		push	handle		; file handle
; *		push	messlgth	; message length
; *		push	messbuff	; message buffer
; *		call	dosputmessage
; *
; *	 RETURN SEQUENCE:   AX = return code
; *
; *
; *
; *	 MODULES CALLED:     INT 21H  function 4
; *
; *************************************************************************

	public	dosputmessage
	.sall
	.xlist
	include macros.inc
	.list

str	struc
old_bp	dw	?
return	dd	?
MessagePtr	dd	?	; message pointer
MessageLength	dw	?	; message length
Handle		dw	?	; file handle
str	ends

dosputmessage proc   far

	Enter	dosputmessage		      ; save registers

	mov	bx,[bp].Handle		      ; get handle
	mov	cx,[bp].MessageLength	      ; get message length
	lds	dx,[bp].MessagePtr	      ; setup message buffer

	mov	ah,40h			      ; load opcode
	int	21h			      ; display message
	jc	ErrorExit		      ; jump if error

	xor	ax,ax			      ; else set good return code

ErrorExit:
	Mexit				      ; pop registers
	ret	size str - 6		      ; return

dosputmessage  endp

dosxxx	ends

	end