Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

FASM 1.67.34 now lacks unreal mode hack (Announce)

posted by Rugxulo Homepage, Usono, 24.02.2009, 07:36

> version 1.67.3xx (2009 Feb)
>
> [-] deleted UNreal mode support in DOS commandline version

EDIT: Not trying to be off-topic, just thought this would explain the advantages and difficulties that Tomasz encountered developing FASM in this direction:

Just for the record, here's some historical tidbits for FASM:

> When processor is in real mode, fasm uses its unREAL engine to get
> into the fastest possible 32-bit environment. DPMI is used only when
> there's no way to use unREAL, that is when processor is in V86 mode
> (and under DPMI fasm is generally slower, though on modern computers
> it doesn't make any visible difference, but try it on some 386SX machine).

And this:

> I've got a bad news for the fasm's unREAL mode fans.
> As you may know, even though unREAL allows the 4 GB of data
> to be used in one segment, it still limits the code that can
> be run from one segment to 64 KB. And this is starting to
> become a problem, because fasm's code (with all the data
> - tables, etc. - already moved above) is almost 64 KB
> already, and is going to "break this barrier" soon.
> So I have two choices - either I will try to keep the unREAL
> version running somehow (it could be possible to move some
> parts of code to other segments, but still I would have to replace
> some parts of common core code particularly for this version - and
> I dislike it), or get rid of unREAL code and leave only the DPMI
> variant (this already happened with FASMD). What do you think?
>
> I'm OK with throwing away the unreal, but I won't provide DPMI
> host with fasm. I just feel it's not the way it should be.
> I would make it work just like FASMD does now.

And here:

> So it's the early Cyrix - I suspected so, since that explains
> the [32-bit real mode] incompatibility.

It also had compatibility issues with BOCHS and DOSBox due to this.

And (finally) here:

> The first approach I've used to achieve such mode was a bit
> different from current - it had universal interrupts handlers,
> that (thanks to some opcode-tricks) were able to detect whether
> they are executed as 16-bit or 32-bit code and jump to appropriate
> code. In current version I the IDTR is different for the 32-bit
> code, and so there is separate interrupt table for this mode.
> I've invented this solution after I realized that on all processors
> I could test the IDT base can be altered even for real mode, and
> it seems to be much more stable in my tests.

 

Complete thread:

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