Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

Using Multiple CPU Cores in DOS? (Miscellaneous)

posted by tom(R) Homepage, Germany, 17.09.2011, 14:09

> > I think that A20 is fiddled only when acessing HMA so it's useless for
> > reaching MMIO at higher address.
wrong. A20 must be fiddled with for every access above 1M.

in real life, A20 is disabled on program start, is enabled by the next DOS interrupt, and stays enable until next program is started.

but still the int15.87 handler (and XMSMove) must check for the state.

> That seems logical to me also, but there must be something going on in the
> BIOS that makes it so slow.
measurements show that something is making it slow - whatever it is.

> I did notice in the code for the latest HIMEMX that basically all the INT
> 15.87 trap does is keep track of the A20 state, so the BIOS must be doing
> something with A20.
the BIOS doesn't care about A20. unexpected things would happen if int15.87 is called with A20 disabled.


it might have been be a good idea if HIMEM had implemented int15.87 to make it much faster and exported to the rest of the world. but:

nobody was supposed to call int15.87. memory above 1 M is abstracted by the XMS handler; nobody else should use physical addresses. no need to export a faster version of a 'forbidden' function

so far no HIMEM (but all EMM386) implement int15.87, so this would make your USB driver dependent on a particular HIMEM implementation

it was you who insisted that the USB driver should also work without HIMEM

it's probably easiest if you copy the HIMEM code to your driver

 

Complete thread:

Back to the forum
Board view  Mix view
15192 Postings in 1365 Threads, 250 registered users, 14 users online (0 registered, 14 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum