summaryrefslogblamecommitdiffstats
path: root/private/mvdm/wow16/win87em/apisim.asm
blob: a7fd1b054316267b25539043bd6c1a08b1d15d81 (plain) (tree)





















































































































                                                                                
	title	OS2_STUB - OS/2 Simulation routines for DOS 3

;	These routines simulate family API routines for DOS 3
;
;	Routines which are never called under DOS 3 just return
;	popping the parameters.
;
;	87/04/24  SKS	DOSGETMACHINEMODE stores a Byte, not a Word!
;


memL=1			; simulate large model for returns
?PLM=1			; pascal calling conventions
?WIN=0			; no Windows

.xlist
	include  cmac_mrt.inc		; old, customized masm510 cmacros
.list
	include msdos.inc


sBegin	code
assumes cs,code


;	__DOSDEVCONFIG - return 8087/80287 indicator

cProc	__DOSDEVCONFIG,<PUBLIC>,<ES,BX>

	parmDP	devinfo
	parmW	devitem
	parmW	reserved

cbegin
	les	bx,devinfo
	mov	word ptr es:[bx],1	; assume have 287
	xor	ax,ax			; return no error
cend


;	__DOSGETMACHINEMODE - return real mode indicator

cProc	__DOSGETMACHINEMODE,<PUBLIC>,<ES,BX>

	parmDP	mode

cbegin
	les	bx,mode
	xor	ax,ax			; ax = return code and mode
	mov	es:[bx],al		; set machine mode to real
cend


;	__DOSSETVEC - never called under DOS 3.x

cProc	__DOSSETVEC,<PUBLIC>,<>

	parmDP	oldaddr
	parmDP	newaddr
	parmW	vecnum

cbegin
cend


;	__DOSCREATECSALIAS

cProc	__DOSCREATECSALIAS,<PUBLIC>,<ES,BX>

	parmW	dataseg
	parmDP	csalias

cbegin
	mov	ax,dataseg
	les	bx,csalias
	mov	es:[bx],ax		; use dataseg value
cend



;	__DOSFREESEG - never called from DOS 3.x

cProc	__DOSFREESEG,<PUBLIC>,<>

	parmW	dataseg

cbegin
cend

;	__DOSWRITE - stripped-down version called from emulator for no87 message
;		 - note that there is no error detection in this version
;		 - since the emulator doesn't check for write errors anyway

cProc	__DOSWRITE,<PUBLIC>,<ds>	; <di> commented out

	parmW	handle		; unsigned
	parmD	p_buffer	; char far *
	parmW	bytestowrite	; unsigned
	parmD	p_byteswritten	; unsigned far *
				; returns unsgined

cbegin
	mov	cx,bytestowrite
	mov 	bx,handle
	lds	dx,p_buffer
	callos	write
;	jc	wrtret		; if write error, error code already in AX
;				; if no error, set bytes written
;	les	di,p_byteswritten
;	mov	word ptr es:[di],ax
 	xor	ax,ax		; if no error, clear return code
;wrtret:
cend


sEnd	code

	end