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 bretjohn Homepage E-mail, Rio Rancho, NM, 19.09.2011, 19:50

> BUT early versions of Microsoft LINK /EXEPACK and early versions of
> PKLITE (pre 1991) had a bug, and relied on A20 being disabled.
>
> for this reason MSDOS invented first LOADFIX, them started programs with
> A20 disabled, and reenabled A20 on the first int 21, and left it enabled.

Interesting. I never knew that's what LOADFIX was for -- it never made any sense to me before now why a program would have a problem being loaded in the first 64k.

> anyway, checking for A20 status is easy, like
>
> status = memcmp(0000:80, FFFF:90, 16)

Yes, the HIMEMX source has an ASM implementation of the same basic test.

> only if status is disabled, you should enable, then copy, then disable A20
> status will be enabled most of the time

I don't think I want that to be the default behavior, though, since it makes things INCREDIBLY slow -- too slow to depend on in an IRQ handler if there's a way to avoid it. I think my default is going to be to to enable A20 and leave it on, but have a user-selectable option to do it "the slow way". Like you, I don't see a lot of point in making that the default behavior given the limited number of programs affected and the availability of LOADFIX.

***

I still think the possibility of using a second core to make the mode switches faster may still be worth investigating, though. Even when you don't have to mess with the A20 line, the mode switches are still noticeably slow when you need to do a lot of them in the background.

 

Complete thread:

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