SweetLow Posted February 10 Posted February 10 The package for A20 Line Always On processing (and more) in HIMEM.SYS http://sweetlow.orgfree.com/download/a20alwon.zip Joint work with BolenB As usual - do NOT forget to read readme 1
defuser Posted November 28 Posted November 28 For the sake of interest, I checked all this on an Intel H81: 0. 0_FIXED WARNING: The A20 Line was already enabled 1. 1_PS_2 Windows protection error. You need to restart your computer. 2. 2__A20CONTROL_OFF WARNING: The A20 Line was already enabled 2+1. 2_1_PREFERRED WARNING: The A20 Line was already enabled 3. 3__ALWAYS_ON Installed A20 handler number 19. 3+1. 3_1 Windows protection error. You need to restart your computer. (What's surprising is that the error occurs exactly once every other time.). А20TEST.EXE (From the "Undocumented PC" floppy disk from 1996) in any case it gives the following: A20 CONTROL TEST v2.00 (c) 1994, 1996 FVG ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН Tests the A20 gate state and keyboard controller status and the ability of the controller to change the A20 gate. When A20 is enabled, memory is accessable above 1MB. Otherwise, when A20 is disabled, the system acts like an 8088. ДДДДДДДДДДДДДДДДДДДДДДДД Test Results ДДДДДДДДДДДДДДДДДДДДДДДДД Verified ДДД Keyboard Controller ДДД A20 Test A20 State Returned State D0 Value ДДДДДДДДДДДДДДДДДДДД ДДДДДДДДД ДДДДДДДДДДДДДД ДДДДДДДД Initial State enabled disabled 49h D1 Command disable enabled disabled 49h D1 Command enable enabled disabled 49h DD Command disable enabled disabled 49h DF Command enable enabled disabled 49h
SweetLow Posted November 28 Author Posted November 28 1 hour ago, defuser said: 1. 1_PS_2 Windows protection error. You need to restart your computer. 3+1. 3_1 Windows protection error. You need to restart your computer. (What's surprising is that the error occurs exactly once every other time.). Definitely some problem exists with PS/2 handler. What is the result on unpatched (original) HIMEM.SYS? And to check more precisely it is better to run himem in verbose mode: device=himem.sys /v 1 hour ago, defuser said: А20TEST.EXE (From the "Undocumented PC" floppy disk from 1996) in any case it gives the following http://sweetlow.orgfree.com/download/a20speed.zip The modern version of this kind of software. 1
defuser Posted November 28 Posted November 28 (edited) 2 hours ago, SweetLow said: What is the result on unpatched (original) HIMEM.SYS? And to check more precisely it is better to run himem in verbose mode: device=himem.sys /v So he writes the following: Quote Installed A20 handler number 2. 64K High Memory Area (HMA) is available. and WINDOWS starts normally (without errors). The old "A20TEST" (1996) gives the same as above. And here is the new one, the link to which you gave: Quote XMS Function Addr: 0762:00CF XMS Version: 03.00h (3.0) Driver Version: 3.95 (03.5Fh) HMA: Present On Enter --> XMS A20 Line: Disabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled Local Enabling: Success --> XMS A20 Line: Enabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Enabled 3 Seconds Wait... --> XMS A20 Line: Enabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Enabled Local Disabling: Success --> XMS A20 Line: Disabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled 3 Seconds Wait... --> XMS A20 Line: Disabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled But I launched the original HIMEM.SYS (from 11.05.1998), as you wrote, only with the parameter "/V". Although usually (Beyond the current experiment) I also use additionally "/MACHINE:AT" (With it, the ScanDIsk disk check at the WINDOWS boot stage is MUCH faster), as well as the parameter "/NUMHANDLES=64". Edited November 28 by defuser
SweetLow Posted November 28 Author Posted November 28 (edited) --> Real A20 Line: Enabled always and --> PS/2 A20 Line: Disabled --> PS/2 A20 Line: Enabled i.e. switchable. It is usual behaviour of middle time hardware (Intel chipsets from 5* to 9* for example) But the source of >Windows protection error. You need to restart your computer. on patched PS/2 handler is unknown. Edited November 28 by SweetLow
defuser Posted November 28 Posted November 28 1 hour ago, SweetLow said: It is usual behaviour of middle time hardware (Intel chipsets from 5* to 9* for example) So which correction option is best suited for this case? 1 hour ago, SweetLow said: But the source of >Windows protection error. You need to restart your computer. on patched PS/2 handler is unknown. I retested in combination with the new "A20TEST" variant and only with the "/V" parameter: Quote Installed A20 handler number 2. 64K High Memory Area (HMA) is available. XMS Function Addr: 0762:00CF XMS Version: 03.00h (3.0) Driver Version: 3.95 (03.5Fh) HMA: Present On Enter --> XMS A20 Line: Enabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled Local Disabling: Error: 82h Local Enabling: Success --> XMS A20 Line: Enabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled 3 Seconds Wait... --> XMS A20 Line: Enabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled However, the error when starting WINDOWS has not appeared again yet.
defuser Posted November 28 Posted November 28 (edited) Can you provide reference results of "A20TEST" when it is guaranteed to work correctly, in the same form as presented above? To understand how it should actually be, under normal conditions. Edited November 28 by defuser
SweetLow Posted November 28 Author Posted November 28 2 minutes ago, defuser said: So which correction option is best suited for this case? 2_1 - as readme states. And it's the best till it's working, of course. 4 minutes ago, defuser said: I retested Which of variants? You have to test 2 variants: 1. Original HIMEM.SYS (NOT in package). 2. 1_PS_2 Without any options except /v. And better with DOS=LOW in CONFIG.SYS (or without DOS too).
defuser Posted November 28 Posted November 28 37 minutes ago, SweetLow said: Which of variants? "PS/2". And above about the original "HIMEM.SYS".
defuser Posted November 28 Posted November 28 (edited) 1 hour ago, SweetLow said: You have to test 2 variants: 1. Original HIMEM.SYS (NOT in package). 2. 1_PS_2 Without any options except /v. And better with DOS=LOW in CONFIG.SYS (or without DOS too). Original HIMEM.SYS /v Quote A20TEST.EXE XMS Function Addr: 0217:00CF XMS Version: 03.00h (3.0) Driver Version: 3.95 (03.5Fh) HMA: Present On Enter --> XMS A20 Line: Disabled --> Real A20 Line: Enabled Local Enabling: Success --> XMS A20 Line: Enabled --> Real A20 Line: Enabled 3 Seconds Wait... --> XMS A20 Line: Enabled --> Real A20 Line: Enabled Local Disabling: Success --> XMS A20 Line: Disabled --> Real A20 Line: Enabled 3 Seconds Wait... --> XMS A20 Line: Disabled --> Real A20 Line: Enabled ... A20TEST.EXE /AT /PS2 XMS Function Addr: 0217:00CF XMS Version: 03.00h (3.0) Driver Version: 3.95 (03.5Fh) HMA: Present On Enter --> XMS A20 Line: Disabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled Local Enabling: Success --> XMS A20 Line: Enabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Enabled 3 Seconds Wait... --> XMS A20 Line: Enabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Enabled Local Disabling: Success --> XMS A20 Line: Disabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled 3 Seconds Wait... --> XMS A20 Line: Disabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled Fixed "1. 1_PS_2" /v Quote A20TEST.EXE XMS Function Addr: 0217:00CF XMS Version: 03.00h (3.0) Driver Version: 3.95 (03.5Fh) HMA: Present On Enter --> XMS A20 Line: Enabled --> Real A20 Line: Enabled Local Disabling: Error: 82h Local Enabling: Success --> XMS A20 Line: Enabled --> Real A20 Line: Enabled 3 Seconds Wait... --> XMS A20 Line: Enabled --> Real A20 Line: Enabled ... A20TEST.EXE /AT /PS2 XMS Function Addr: 0217:00CF XMS Version: 03.00h (3.0) Driver Version: 3.95 (03.5Fh) HMA: Present On Enter --> XMS A20 Line: Enabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled Local Disabling: Error: 82h Local Enabling: Success --> XMS A20 Line: Enabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled 3 Seconds Wait... --> XMS A20 Line: Enabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled "DOS=HIGH,UMB" is removed in this case. Only HIMEM.SYS is loaded with the single parameter "/v". HIMEM.SYS itself writes the same thing in both cases: Quote Installed A20 handler number 2. 64K High Memory Area (HMA) is available. Edited November 28 by defuser
defuser Posted November 28 Posted November 28 (edited) 1 hour ago, SweetLow said: 2_1 - as readme states. And it's the best till it's working, of course. On this configuration, this option does not work, as far as I understand: Quote XMS Function Addr: 0217:00CF XMS Version: 03.00h (3.0) Driver Version: 3.95 (03.5Fh) HMA: Present On Enter --> XMS A20 Line: Enabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled Local Disabling: Success --> XMS A20 Line: Enabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled 3 Seconds Wait... --> XMS A20 Line: Enabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled Local Enabling: Success --> XMS A20 Line: Enabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled 3 Seconds Wait... --> XMS A20 Line: Enabled --> Real A20 Line: Enabled --> AT A20 Line: Disabled --> PS/2 A20 Line: Disabled Edited November 28 by defuser
SweetLow Posted November 28 Author Posted November 28 Just now, defuser said: On this configuration, this option does not work, as far as I understand: No, it is working as expected - XMS state is exactly equal to the state of real hardware. Always On to be precise. 23 minutes ago, defuser said: A20TEST.EXE Ok, hardware is functioning as described above. 1
SweetLow Posted December 8 Author Posted December 8 (edited) Thank to @defuser testing: http://sweetlow.orgfree.com/download/a20alwon.zip 1. Fixed bug of simultaneous using /TESTMEM:ON and /A20CONTROL:OFF. Memory testing procedure relied on the state after /A20CONTROL:ON execution. 2. The code for the /A20CONTROL:OFF patch is made more generic and yet at the same time simplified. 3. Added 3+2+1 variant of patch. 4. The difference of variants -1 and 3 from /A20CONTROL:OFF on the hardware with the A20 Line Always On mentioned. Edited December 8 by SweetLow more descriptions
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now