Uploaded to ftp://ftp.devoresoftware.com/downloads/emm386 are the files
emmx208.zip, EMM386/HIMEM mostly executable package (EXEs compressed via
mutant UPX), and emms208.zip, EMM386/HIMEM mostly source package. Nomyso
version 2.0 was uploaded to ftp://ftp.devoresoftware.com/downloads/nomyso
named nomyso20.zip. nomyso is the newly chosen subdirectory for all Nomyso
Version 2.08 of EMM386 is strictly a compatibility release to help ease
transition for Microsoft EMM386 setups, increasing the number of identical
options allowed in both EMM386 versions. Specifically, EMM386 will now
accept NOHI and NOMOVEXBDA without complaint, although these two options
are no-op's. That is, the two option do not change behavior on the part of
FreeDOS EMM386 because it never performs the actions these options
inhibit. In addition, MIN=### is accepted as a synonym for the EMM=###
option because, since the EMS/XMS pool-sharing feature was implemented,
FreeDOS and Microsoft EMM386 act the same for the two options. Also, a few
cosmetic source code cleanups were made to EMM386.ASM for better
NASM-conversion via Nomyso.
Nomyso has grown considerably from version 1.0 to 2.0 and has moved from
semi-toy to useful program status. Nomyso version 2.0 converts EMM386.ASM
source to assemble under NASM. Although Nomyso will not automatically
convert many MASM/TASM programs, it now stands a decent chance of
converting significant parts of a lot of the programs out there, depending
on their style and complexity.
I anticipate that Version 2.08 of EMM386 is the final non-bugfix release I
will create (bugfix versions will continue, as necessary). I've done all
the new design and enhancements I want to do, or think are necessary. The
ability to assemble and test with NASM may expand the pool of potential
developers, although any such changes should still be discussed with -- and
need be approved by -- the HIMEM/EMM386 maintainer(s).
For my part, on the FreeDOS-related front, I will likely continue work on
Nomyso. There is even a faint chance I will someday document advanced
HIMEM and EMM386 options and behavior, or heck, maybe clean up that really
lame Wikipedia Encyclopedia entry for FreeDOS.
The few minor source changes made to EMM386.ASM and NASM-specific notes follow:
- EMM386 was sloppy with its case in 6-8 source lines, a fact that was
masked by TASM ignoring variable case. NASM is case-sensitive and complained.
- NASM does not support PUBLIC/GLOBAL declarations after the variable
declaration, so two PUBLIC declarations were moved.
- One routine labelled 'pause' was a problem because pause is a recently
added CPU opcode (who knew?). Also a macro generated labels of INT1 and
INT3, which are consider special CPU opcodes. Changes were made to avoid
creating labels which matched valid CPU opcodes.
- Although limited macro conversion support is present in Nomyso v2.0,
passing a hexadecimal value as a beginning value was causing problems and
would have required me to extensively rewrite the macro converter to insert
multiple lines and %ifnum's for a mere four source lines in EMM386.ASM. So
I got lazy and changed the hexadecimal values to decimal values instead.
Note that NASM is slightly less efficient than TASM when generating object
code so there will be a slight increase in the EMM386 binary size, although
the increase was well under 1%. In fact, NASM is better than TASM at one
type of optimization, but not enough to overcome other misses.
Also note that it turns out that with the more complex EMM386 source, NASM
mirrors the past problems with HIMEM for five, six, and seven passes. Only
with eight passes, i.e. NASM -O8 -f OBJ EMM386.ASM, does the OBJ generate
properly. To forestall future problems with ever more complex programs, I
strongly recommend just using -O99, as is commonly found in NASM
builds. 99 passes should be enough, and NASM will stop at the last pass
which makes no changes, so it's doubtful anything near that many will
More information on Nomyso is available at www.devoresoftware.com/nomyso
. If any of you have suggestions for an open source application written in
MASM or TASM which could use an automatic conversion to NASM, let me know
and I'll consider making it the test case for Nomyso version 2.5 or 3.0.
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
Freedos-user mailing list