2
;--- DPMICL16.ASM: 16bit DPMI application written in MASM syntax.
3
;--- assemble: JWasm -bin -Fo dpmicl16.com dpmicl16.asm
15
;--- the 16bit initialization part
18
pop ax ;get word saved on stack for COM files
22
mov bx,1000h ;it was a full 64kB stack
24
mov ah, 4Ah ;free unused memory
26
mov ax, 1687h ;DPMI host installed?
30
push es ;save DPMI entry address
32
and si, si ;requires host client-specific DOS memory?
35
mov ah, 48h ;alloc DOS memory
41
mov ax, 0000 ;start a 16-bit client
42
call far ptr [bp] ;initial switch to protected-mode
45
;--- now in protected-mode
48
db "welcome in protected-mode",CR,LF,0
49
mov ax, 4C00h ;normal client exit
54
db "no DPMI host installed",CR,LF,'$'
57
db "not enough DOS memory for initialisation",CR,LF,'$'
60
db "DPMI initialisation failed",CR,LF,'$'
70
;--- print a string in protected-mode with simple
71
;--- DOS commands not using pointers.