TIP: Click on subject to list as thread! ANSI
echo: 80xxx
to: JAN WAGEMAKERS
from: DARRYL GREGORASH
date: 1997-12-01 23:16:00
subject: extended memory

Replying to a message of Jan Wagemakers to Craig Hart:
 JW> Because the following has worked with only MSDOS Himem.sys
 JW> loaded.
 JW> /*
 JW>         mov     ax,0        
 JW>         mov     ds,ax       ;DS =
 JW>         mov     word ptr [ds:0b8142h],8403h
Out of idle curiosity, what happens if you try this without himem.sys loaded? 
I ask, because I have been reading Intel specs for years, and haven't got a 
clue what this "Big Real" mode is supposed to be. There are 2 modes on Intel 
32-bit CPUs, 16 and 32. The former has one flavour only, and looks basically 
like one big DOS machine, while the latter has two flavours: native mode 
(segment selectors, not segment addressing, 4 GB address space per selector), 
and Virtual-86 mode, with the CPU set up to emulate one or more 80286 
processors, each of which has the standard 1 MB "base" memory, plus anywhere 
from 0 bytes to  bytes of XMS.
If you try this code in 16-bit mode, you will definitely get a CPU exception, 
I can't recall the number, but it will be a segment boundary violation. It is 
possible that Himem.sys traps that exception with its own error handler, 
analyzes the code that caused the exception, kicks the system into 32-bit 
mode, and places the word in the specified place before returning to 16-bit 
mode.
--- FleetStreet 1.20 NR
---------------
* Origin: BIG BANG Burger Bar: Regina SK Canada (1:140/86)

SOURCE: echomail via exec-pc

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.