1
0
mirror of synced 2026-01-31 05:53:09 +00:00

Add support for DOS Upper Memory Blocks (UMBs). (#38)

* Import unmodified USE!UMBS source.

From https://forum.vcfed.org/index.php?threads/loading-dos-high-on-a-xt.32320/

* Customize the UMB Driver prompts.

* Refactor memory management. Allow activation of EMS/UMB on demand.

* Update the XTEMM and XTUMBS drivers to map their ranges.

* Add instructions for all the drivers.
This commit is contained in:
Matthieu Bucchianeri
2025-03-07 22:00:26 -08:00
committed by GitHub
parent 553ca58dff
commit 0fbbc0070c
14 changed files with 1711 additions and 94 deletions

View File

@@ -3027,18 +3027,25 @@ instmsg PROC NEAR
RET
instmsg ENDP
;--------------------------------------------------------------------
; Check EMS i/o port.
; Initialize EMS window and check EMS i/o port.
; output
; for lo-tech EMS board, we cannot read from the page registers
; hence we just return OK anyway.
; cf = 0 : OK
; cf = 1 : NG
;--------------------------------------------------------------------
ckemsio PROC NEAR
MOV DX,CS:EMSIO
; JJP IN AL,DX
; JJP CMP AL,255 ;check TRS flag
; JJP JE ckems3
ADD DX,10 ; EMS segment register
MOV AX,CS:PAGE_FRAME_SEG
OUT DX,AX
ADD DX,3 ; debug base register
OUT DX,AX
DEC DX ; EMS pages count register
MOV AL,PHYS_PAGES
OUT DX,AL
ADD DX,3 ; debug register
IN AL,DX
CMP AL,2 ; Region::EmsWindow
JNE ckems3
ckems4:
CLC ;reset CF
RET
@@ -3520,9 +3527,9 @@ info:
; EMM driver initial routine work data area
;--------------------------------------------------------------------
start_msg db CR,LF
DB 'XTEMM: EMM Driver for XTMax r02',CR,LF
DB 'XTEMM: EMM Driver for XTMax r03',CR,LF
db ' Based on Lo-tech EMM Driver for the Lo-tech 2MB EMS board.',CR,LF
db ' Based on modifications by Michael Karcher.',CR,LF
db ' Based on modifications by Michael Karcher.',CR,LF
db ' Based on original works Copyright (c) 1988, Alex Tsourikov.',CR,LF
db ' All rights reserved.',CR,LF
db 'Using EMS '

View File

@@ -29,7 +29,6 @@ Syntax: DEVICE=LTEMM.EXE [/switches]
/i:nnn - EMS i/o port base address (260)
/h:nnn - Maximal number of handles (64)
/d:nn - Depth of contest saves (5)
/f:nnn - First page number (0)
/n - Bypass memory test
/x - Perform long memory test
/3 - Use only EMS 3.2 functions