WHAT'S NEW IN VERSION 2.52 o LASTBYTE.SYS: A code change introduced in version 2.50 broke MOVE=VIDEOBIOS and MOVE=MAINBIOS; corrected. o HIGHTSR.EXE, HIGHDRVR.SYS (and HIGHUMM): An intentional interaction between HIGHUMM and both HIGHTSR and HIGHDRVR was introduced in version 2.50 to disable HIGHUMM while loading software into upper memory. Unfortunately, a bug in the code caused HIGHUMM to remain disabled; corrected. WHAT'S NEW IN VERSION 2.51 o LASTBYTE.SYS: The new DMA test that was introduced in version 2.50 caused parity errors on some machines on subsequent access to video or main bios; corrected. WHAT'S NEW IN VERSION 2.50 FOREWORD This version incorporates a large number of new features, enhancements, and bug fixes. Perhaps most significant is the comprehensive treatment of direct memory access (DMA), including automatic detection of those memory controllers that do not permit DMA in the upper memory area (UMA), a new utility (HIGHDMA.SYS) that detects DMA access to the UMA, and reworked versions of HIGHDRVR.SYS and HIGHTSR.EXE that work around DOS's internal use of DMA when loading device drivers and TSRs. There are some things, however, that remain unfinished in preference to getting this version out the door before a planned vacation. Although a new low-level driver for the NEC PowerMate is included, this driver still isn't quite finished. (It works only if you add EXCLUDE=C800:32 to the LASTBYTE.SYS command line.) In addition, we had hoped to implement double buffering options in HIGHDMA.SYS to work around all CD-ROM and disk DMA access to the UMA, but this will have to wait for the next release. Dan Lewis, owner Key Software Products o HIGHDMA.SYS: A new utility that watches for and notifies you whenever DMA access of the upper memory area (UMA) has occured. Some chipsets do not support such access, and DMA can corrupt data when it occurs in the same 128k UMA region as a 16-bit adapter. This utility helps to discover those device drivers or TSR's which may need to be loaded low because they use DMA. o HIGHUMM.SYS: Added /SHRINK option to be used in conjunction WHAT'S NEW IN VERSION 2.52 with the DOS=UMB option of MS-DOS. Reduces HIGHUMM resident size to about 100 bytes. Also added XMS function 12h (Resize a UMB memory block). o HIGHDRVR.SYS, HIGHTSR.EXE: Would fail on those chipsets that do not permit Direct Memory Access (DMA) into shadow ram memory when the hi-loaded software was taken from a disk whose controller uses DMA. All floppy disk (and some hard disk) controllers use DMA. Corrected. o HIGHDRVR.SYS: Previous versions of HIGHDRVR were unable to successfully load some device drivers into upper memory (even when DMA was not involved). The method that HIGHDRVR uses to load drivers has been completely reworked, thus allowing drivers like Lantastic's NDIS driver (RETH.DOS) to now be loaded high. o LASTBYTE.SYS, CHIPSET.EXE: Added support for the following chipsets: ATMEL AT40410 EFAR EC802G Forex FRX46C401, FRX46C521, and FRX58C601 Intel 82424 and 82434 (see Foreword above) Intel 386SL, 486SL, and 486SLz CPU's (with shadow ram controller built into CPU chip) NEC PowerMate 286 Laptop (see Foreword above) OPTi 82C495XLC, 82C547, 82C691, 82C693, and 82C895 VIA Technologies VT82C486 and VT82C496 o LASTBYTE.SYS: Now you may use a "DOS=" option (in addition to the normal "HOLE=" option) to specify a region of usable read-only memory when you have a chipset that forces the main bios shadow ram to be read-only. o LASTBYTE, HIGHSPLR, HIGHAPND: Now puts all or most of their code into read-only memory if available. (LASTBYTE and HIGHSPLR have a /NOSPLIT option to prevent this.) The shadow ram in the main bios region (F000-FFFF) on some chipsets is read-only; you may be able to make some part of this memory available using a "HOLE=" or "DOS=" option. o HIGHMEM.EXE: Reorganized the on-screen information to improve readability. Now indicates if your chipset supports Direct Memory Access (DMA) in the upper memory area (UMA), if a portion of shadow ram memory is read-only, regions of the UMA in which usable memory is not available, and whether or not DMA into a region is endangered by the presence of a 16-bit adapter. o LASTBYTE.SYS, CHIPSET.EXE: Added detection of the 486SX2 and WHAT'S NEW IN VERSION 2.52 486DX4 cpu's. The old code (which did not detect these cpu's) would hang if either of these cpu's were present. o HIGHDRVR.SYS, HIGHDISK.SYS: These two device drivers now only leave their 32-byte "stub" in conventional memory if necessary; you may override their automatic choice with either /STUB=0 (use no stub), or /STUB=1 (force use of stub). o LASTBYTE.SYS: Extended the TRACE options to include a third form, TRACE=, to trace a selected subset of the main bios interrupt vectors. o HIGHDUBL.SYS: Added a /FORCE option. HIGHDUBL checks if DOS is later than version 6.20; if so, then it assumes that you are using the new DriveSpace Disk Compression instead of the older DoubleSpace. Since HIGHDUBL can only be used with DoubleSpace, it will issue an error message if the DOS version is later than 6.20. Since it is possible, however, to use DoubleSpace with the newer versions of DOS, you can force HIGHDUBL to bypass the version check with the /FORCE option. o INSTALL.EXE: Now checks to see if using DriveSpace Disk Compression. If so, then it recommends using the DEVICEHIGH/LOADHIGH approach instead of the HIGHDRVR/HIGHTSR approach. o LASTBYTE.SYS: All Bios ROM's were supposed to be automatically copied into shadow ram if already shadowed. This did not happen for the main bios if the chipset was one (like OPTi) that forces the main bios shadow ram to be read-only; corrected. o SEVERAL MODULES: If HIGHUMM was used with DOS=UMB, subsequent use of HIGHTSR, HIGHENV, HIGHKEY, etc., would sometimes fail thinking that there was no upper memory available; corrected. o LASTBYTE.SYS: Discovered that if the video bios region (C000-C7FF) is made cacheable on the OPTi 82C495SLC chipset, then writes to that region are not reliable even if it is NOT write-protected. The low-level physical driver now tests for this problem, and disables video bios caching if necessary. o INSTALL.EXE: Existing "INSTALL=HIGHTSR.EXE ..." in CONFIG.SYS was incorrectly converted into INSTALL=HIGHTSR.SYS; corrected. Existing HIGHTSR commands in AUTOEXEC.BAT were sometimes not converted to new TLBMM directory; corrected. LOADHIGH and LH commands were not properly converted to HIGHTSR commands; corrected. Added /REPLACE option to WHAT'S NEW IN VERSION 2.52 DEVICE=HIGHUMM.SYS (and /SHRINK option when used with DOS=UMB). o LASTBYTE.SYS: MOVE=TABLES would fail on Super VGA with error message, "HOLE option outside of shadow ram"; corrected. o SEVERAL MODULES: Internal test to identify 386SL/486SL cpu interfered with one or more memory controller types; corrected. o LASTBYTE.SYS: Corrected a bug that was overwriting some static data with the result that warm boots (Ctrl-Alt-Del) that were converted to cold boots (due to DOS=F000:32, etc.) would hang. o LASTBYTE.SYS: Use of a TRACE option on a machine without an EGA or VGA video adapter would cause the error message, "Can't locate video bios entry point"; corrected. o LASTBYTE.SYS: The low-level driver for the Via Technologies VT82C470/475/495 had reversed the control for the EXXX and FXXX shadow regions, and did not correctly implement the test for relocated shadow ram memory; corrected. o CHIPSET.EXE: The tests for all Via chipsets would hang; corrected. o LASTBYTE.SYS: The OPTi 82C597 low-level driver that caused LASTBYTE.SYS to hang if an EXCLUDE option was used; corrected. o CHIPSET.EXE: Test for Headland HT12 hung on machine with HT12 chipset; corrected. o CHIPSET.EXE: Test for Forex FRX46C421 returned false negative result; corrected. o LASTBYTE.SYS: Low-level driver for Headland HT12 did not reduce extended memory properly by the amount that was used for upper memory; corrected. o LASTBYTE.SYS, CHIPSET.EXE: Reported clock speed of Pentium was low; corrected.