home *** CD-ROM | disk | FTP | other *** search
- ------------------------------------------------------------------------------
- ---------------------------- Updates to PMODE/W ------------------------------
- ------------------------------------------------------------------------------
-
- PMODE/W v1.0:
- -------------
-
- ) First release of PMODE/W.
-
- PMODE/W v1.01:
- --------------
-
- ) Now even smaller in size (less than 8k).
-
- ) The DOS critical error handler is now included in the clean up process.
-
- ) 32bit far pointer fixups are now supported (though we doubt they are used).
-
- ) PMWSETUP updated to reflect the fact that the number of real mode callbacks
- allocated cannot exceed 0FFh.
-
- ) PMODEW.EXE will no longer crash the system if run by itself (though you
- should not be doing that anyway because its pointless).
-
- ) After that, we found a small bug in our INT 31h DOS memory block functions.
- Needless to say, it is fixed now.
-
- ) INT 21h function 49h zeroes the ES selector when that block is successfully
- freed.
-
- ) INT 21h function 48h now returns error codes correctly.
-
- ) After all this, we were bored, so we hunted down and compensated for a
- DOS/4GW and EMM386 bug. EMM386 trashed the high bits of ESP which DOS/4GW
- was assuming to be cleared. This only means that now you can run DOS/4GW
- successfully after a PMODE/W program.
-
- PMODE/W v1.02:
- --------------
-
- ) Maintenance release (documentation changes, added FAQ).
-
- ) Changed the method of restoring real mode IRQ vectors upon program
- termination.
-
- PMODE/W v1.10:
- --------------
-
- ) Changed the way 16bit objects are handled during loading/relocation.
-
- ) Added support for 16/32 bit self-relative fixups.
-
- ) INT 21h services 1Bh, 1Ch, 1Fh, 32h, and 34h are now extended.
-
- ) MS Mouse INT 33h functions 0009h, 000Ch, 0016h, and 0017h are now extended.
- Please see PMODEW.DOC for more information on mouse-related functions.
-
- ) Under VCPI/XMS/raw, INT 31h functions 0600h and 0601h will now always return
- with the carry flag clear. Since PMODE/W will never page out memory, locking
- is unnecessary. Under DPMI however, the DPMI host will handle this function.
- These two functions can now be checked for error while still returning
- successfully even when a DPMI host is not present.
-
- ) Changed method of resizing the program DOS memory block at startup to be
- compatible with OS/2 Warp. This fixes a problem with not being able to
- spawn other programs.
-
- ) Fixed a very peculiar memory allocation bug. If you tried to allocate a
- memory block of about 2 gigs, the system would be corrupted and lock up.
-
- ) Fixed a minor inconsistency in the way memory was allocated for objects.
-
- PMODE/W v1.11:
- --------------
-
- ) Added support for DPMI functions 0800h and 0801h.
-
- PMODE/W v1.12:
- --------------
-
- ) Fixed a very obscure bug associated with 32bit near call/jmp fixups.
-
- PMODE/W v1.13:
- --------------
-
- ) Fixed problems with DOS INT 21h read/write functions for disk full and end
- of file conditions.
-
- ) Segments will now be aligned on 256 byte boundaries instead of dword or
- paragraph boundaries.
-
- ) Fixed INT 31h function 0503h always failing.
-
- PMODE/W v1.14:
- --------------
-
- ) Fixed a bug where INT 21h function 4Fh did not copy the DTA buffer properly.
-
- ) Changed initial system memory allocation behavior. Under VCPI memory
- managers, both VCPI and XMS memory will be allocated. This compensates for
- memory managers that do not allow VCPI access to their XMS memory pool.
- Specifically, this fixes a problem with not getting any extended memory
- under EMM386 with EMS turned off.
-
- ) INT 31h function 0100h was incorrectly documented in stating the DX register
- was the number of paragraphs to allocate from DOS, the correct register was
- BX. Other minor document errors were also fixed.
-
- ) Fixed DPMI function 0503h again, and this time it really works.
-
- ) Fixed DPMI function 0500h sometimes returning the wrong size.
-
- ) The temporary real mode DTA will now be set in the protected mode INT 21h
- function 1Ah, not just at extender initialization.
-
- PMODE/W v1.15:
- --------------
-
- ) Fixed a bug with fixup buffer allocation at startup. In rare conditions,
- when not enough low memory was left to relocate the protected mode program
- after it was loaded into low memory, PMODE/W would exit with an out of
- memory error message.
-
- ) A 386 instruction had slipped into our code before our 386 detection. This
- caused PMODE/W to lock up under 80286 processors and below instead of
- exiting with the appropriate error message. Needless to say it has been
- fixed.
-
- ) Fixed IRQ handling to be compatible with possible hardware remapping of IRQ
- vectors.
-
- ) PMODE/W now backs up and restores the entire real mode interrupt vector
- table and the PIC masks upon exit instead of just the IRQ vectors.
-
- ) We have changed our licensing policy and added a student discount.
-
- ) Addition of ASM example files.
-
- ) New custom bind utility! PLEASE READ the "Utilities" section of PMODEW.DOC
- before using it.
-
- PMODE/W v1.16:
- --------------
-
- ) Fixed system crash on exit under a DPMI host like Windows or OS/2.
-
- ) INT 33h function 000Ch will work correctly when called with 0000:00000000
- for the function address.
-
- ) Fixed DPMI INT 31h functions 0900h, 0901h, and 0902h.
-
- PMODE/W v1.20:
- --------------
-
- ) Added compression of protected mode executables.
-
- ) INT 33h function 0Ch will now compensate for OS/2 Warp's obscene habit of
- passing the real mode mouse callback a 16bit stack selector. This behavior
- was sometimes causing slowdowns and lockups with user mouse handlers in
- OS/2 DOS boxes.
-
- ) Fixed a problem where the exit code was being destroyed during cleanup.
-
- ) Under VCPI/XMS/raw, INT 31h functions 0702h and 0703h will now always return
- with the carry flag clear. Since PMODE/W will never page out memory, these
- functions are unnecessary. Under DPMI however, the DPMI host will handle
- this function. These two functions can now be checked for error while still
- returning successfully even when a DPMI host is not present.
-
- ) Fixed minor internal problem with an error not being returned correctly at
- startup if the A20 gate could not be enabled.
-
- ) Changed DPMI function 0400h to return DPMI host version number of 0.9
- instead of 1.0.
-
- ) Documentation for PMWSETUP, PMWBIND, and PMWLITE can now be found in
- the file UTILS.DOC
-