VOGONS


Why does EMS suck on my 286?

Topic actions

Reply 21 of 167, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie

Alright, things seems to look OK overall.
Well, nothing would be suspicious other than the SCSI controller, if you would be able to temporary remove that to see if EMS would work without it, such as using an IDE controller or running the games from floppy entirely without the SCSI controller. I know that your specific SCSI controller also provides the floppy controller, so you would have to find other I/O boards with the floppy and IDE controller.

Other than that, I can't think of anything else. You should keep EMS at LIM 4.0, that's the best configuration.

If you really have to have the SCSI controller, then perhaps you can try to check how you load the ASPI4DOS, before or after EMS drivers.

Reply 22 of 167, by maxtherabbit

User metadata
Rank l33t
Rank
l33t

I'm not loading ASPI4DOS, the SCSI BIOS handles my boot drive and I have no other SCSI devices.

I'm going to make another MS-DOS 6.22 boot floppy and just put the LTEMM driver on there and try that one more time. If that fails, I'm going to pull the card and move on. SCSI is infinitely more important of a feature to me on this build than EMS - I can live without Monster Bash in soundblaster mode 😒

Last edited by maxtherabbit on 2019-08-09, 00:21. Edited 1 time in total.

Reply 24 of 167, by Matth79

User metadata
Rank Oldbie
Rank
Oldbie

I'm wondering, if the SCSI BIOS is only operating in a single 8 bit ROM, then it may be an issue with the "fast decode" which uses a 128k block for 8/16 bit selection.
Is there an option in BIOS that will shadow the SCSI BIOS range so it does not have to access the ROM across the ISA bus.
This would tend to provoke issues with real software using disk and EMS, but not with an artificial test program

Reply 25 of 167, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie

Typically, if the 286 chipsets support ROM shadowing, then it would also come with EMS support. So I think he has a plain vanilla 286 system that simply maps the 4MB memory into 640KB and the remaining 3456KB above 1MB. If the chipsets support ROM shadowing, then it can remap some of those 3456KB into C0000-FFFFFh and EMS would just come with it. I knew the pain, my 1st 286 computer was exactly this type of 286, using Headland HT10 chipsets. Another indication is E0000-FFFFFh 128KB was used by the System BIOS. For chipsets with ROM shadowing, it would only need the last 64KB F0000-FFFFFh after shadowing typically contains the BIOS runtime, not the entirely ROM including POST & Diagnostics.

So no, I don't think his 286 board supports ROM shadowing.

However, it seems that one may be able to achieve the same speed-up as ROM shadowing by loading the ASPI4DOS.SYS driver. Got it from AHA-154x user manual through Google. Definitely worth a try. Some conventional memory will be lost since you can't map any memory into upper memory block.

Q. 	 Why should I install the ASPI4DOS.SYS manager if I only
have one hard disk installed, and it is currently installed under
the BIOS?
A. When the manager is loaded, Int 13 calls are rerouted through
the driver instead of through the host adapter BIOS. Since the
Int 13 code is processed at RAM speed instead of ROM speed,
overall system performance is increased.
Last edited by kjliew on 2019-08-09, 02:02. Edited 1 time in total.

Reply 26 of 167, by maxtherabbit

User metadata
Rank l33t
Rank
l33t
kjliew wrote:

How about posting your AUTOEXEC.BAT and CONFIG.SYS?

just booted from a freshly made MS-DOS 6.22 floppy disk containing no AUTOEXEC.BAT, and a CONFIG.SYS containing only a single line:

DEVICE=LTEMM.EXE /P:D000

Only change in symptoms observed was Spear of Destiny now stops playing the music when it crashes 🤣

Reply 27 of 167, by maxtherabbit

User metadata
Rank l33t
Rank
l33t
kjliew wrote:

Typically, if the 286 chipsets support ROM shadowing, then it would also come with EMS support. So I think he has a plain vanilla 286 system that simply maps the 4MB memory into 640KB and the remaining 3456KB above 1MB. If the chipsets support ROM shadowing, then it can remap some of those 3456KB into C0000-FFFFFh and EMS would just come with it. I knew the pain, my 1st 286 computer was exactly this type of 286, using Headland HT10 chipsets. Another indication is E0000-FFFFFh 128KB was used by the System BIOS. For chipsets with ROM shadowing, it would only need the last 64KB F0000-FFFFFh after shadowing typically contains the BIOS runtime, not the entirely ROM including POST & Diagnostics.

So no, I don't think his 286 board supports ROM shadowing.

It really doesn't, I promise

Reply 28 of 167, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie

Maybe the SCSI BIOS cannot transfer data properly from disk to the memory located on the EMS card. Either because of a software bug or hardware incompatibility. Especially if the SCSI card is 16-bit ISA and the EMS card is 8-bit ISA, trying to do DMA in that scenario may not be supported.

Is there a way to disable the SCSI card's DMA or limit it to a certain range of memory?

again another retro game on itch: https://90soft90.itch.io/shmup-salad

Reply 29 of 167, by maxtherabbit

User metadata
Rank l33t
Rank
l33t
bakemono wrote:

Maybe the SCSI BIOS cannot transfer data properly from disk to the memory located on the EMS card. Either because of a software bug or hardware incompatibility. Especially if the SCSI card is 16-bit ISA and the EMS card is 8-bit ISA, trying to do DMA in that scenario may not be supported.

Is there a way to disable the SCSI card's DMA or limit it to a certain range of memory?

This is my current operating theory.

There is no way to restrict the DMA capabilities of the SCSI HBA that I am aware of other than changing the DMA transfer speed.

Reply 30 of 167, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie
maxtherabbit wrote:

There is no way to restrict the DMA capabilities of the SCSI HBA that I am aware of other than changing the DMA transfer speed.

I think you can if you load ASPI4DOS.SYS. The /W or /WM option allocates buffers in extended memory or main memory. There is even /V or /VM that allocates buffer for video memory, which I guess it is in A0000-BFFFFh range.
I also noticed that AHA-154x SCSI card uses DMA 5 by default and that is a conflict for most SoundBlaster 16 compatible setup. You may want to move the SCSI DMA channel to something else. The default SCSI I/O address at 330h also in potential conflict with SoundBlaster MPU-401 default address. If you do have a SoundBlaster compatible, then this is also something to check out.

Reply 31 of 167, by maxtherabbit

User metadata
Rank l33t
Rank
l33t
kjliew wrote:
maxtherabbit wrote:

There is no way to restrict the DMA capabilities of the SCSI HBA that I am aware of other than changing the DMA transfer speed.

I think you can if you load ASPI4DOS.SYS. The /W or /WM option allocates buffers in extended memory or main memory. There is even /V or /VM that allocates buffer for video memory, which I guess it is in A0000-BFFFFh range.
I also noticed that AHA-154x SCSI card uses DMA 5 by default and that is a conflict for most SoundBlaster 16 compatible setup. You may want to move the SCSI DMA channel to something else. The default SCSI I/O address at 330h also in potential conflict with SoundBlaster MPU-401 default address. If you do have a SoundBlaster compatible, then this is also something to check out.

I'm running a CT1330A Soundblaster Pro, which doesn't use DMA 5 or port 330h.

Reply 33 of 167, by ibmapc

User metadata
Rank Newbie
Rank
Newbie

Have you run SETBOARD.EXE from the INTEL ABOVE BOARD driver disk? If you don't have it you can download it using the following link.
http://ibm-pc.org/drivers/memory/Intel-AB.zip
I believe that driver is for the ABOVE BOARD PLUS, but it should work on a NON-PLUS board.
My memory is a little foggy, but I think when I set up an ABOVE BOARD on my 286, I had to run SETBOARD and define how much of the boards memory was to be used as XMS and the starting address. If ALL the ABOVE BOARD ram is set as XMS, none is available for EMS. So, if the ABOVE BOARD has 2MB of ram and it is configured in SETBOARD with 1MB of XMS ram, the 1MB remaining would be available for EMS. You can also configure it with ZERO XMS and all of the ABOVE BOARD RAM would be available for EMS. After running SETBOARD, I think SOFTSET.EXE will help to install and configure the EMS Driver.

Hope this helps, as I said, my memory is a little foggy on this subject due to the fact that it's been a few years since I've played with a 286.

If you're still stuck after taking these steps, let me know and I'll see if I can dig out My IBM 5162 and try to see how I configured it with EMS on the ABOVE BOARD.

Regards,

Greg

Reply 34 of 167, by maxtherabbit

User metadata
Rank l33t
Rank
l33t

Yes, I ran SETBOARD. I had it set up to provide no conventional or XMS, the entire board was allocated to EMS. It was configured properly at the software level as well. EMS just doesn't work on this system outside of synthetic tests apparently.

Reply 36 of 167, by Scali

User metadata
Rank l33t
Rank
l33t
maxtherabbit wrote:

EMS just doesn't work on this system outside of synthetic tests apparently.

Which brings me back to my earlier point of the possible limits of these synthetic tests.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 37 of 167, by maxtherabbit

User metadata
Rank l33t
Rank
l33t
Scali wrote:
maxtherabbit wrote:

EMS just doesn't work on this system outside of synthetic tests apparently.

Which brings me back to my earlier point of the possible limits of these synthetic tests.

Sure, it's a good point. I just don't have the DOS ASM chops to write a better test

Reply 38 of 167, by maxtherabbit

User metadata
Rank l33t
Rank
l33t

Here's the memory map without the EMM driver loaded, clearly showing nothing in the page frame area:

20190808_225526.jpg
Filename
20190808_225526.jpg
File size
1.67 MiB
Views
1035 views
File license
Fair use/fair dealing exception

Here's the result of TESTEMS:

20190809_115311.jpg
Filename
20190809_115311.jpg
File size
1.06 MiB
Views
1035 views
File license
Fair use/fair dealing exception

Reply 39 of 167, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie

I would suggest one last try with Intel Above Board and setting the EMS Page Frame to CC00 instead of D000.
And, check to see if STACKS=0,0 an STACKS=9,256 in CONFIG.SYS will make any difference.