VOGONS


First post, by reflexve

User metadata
Rank Newbie
Rank
Newbie

Hey everyone!

I have been experimenting with moving my retro PC (Compaq Presario 425) over to FreeDOS for classic gaming and I've run into a knowledge gap. The system is using XTIDE on a 3Com 3C509 boot ROM to enable large disk support, which lets me use a 64GB CF card as my primary drive (I've formatted it into a 16GB partition). With MS-DOS 6.22 I initially was getting around 2MB/sec read/write speeds on the drive, which was tolerable but not great. One limitation of using XTIDE is that the ROMs are only on an 8bit interface, necessitating four operations to do a single read/write on a 16bit IDE bus.

The usual workaround for this is to enable shadowram in the BIOS to copy the ROM memory into system memory at boot, which permits full performance. Unfortunately this PC does not have such an option in BIOS, but I discovered that MS-DOS' emm386 could actually mirror ROM into RAM via the ROM=xxxx-xxxx switch. This doubled performance up to over 4MB/sec, and in Win98 I got around 12MB/sec due to it's 32bit disk access/file access modes. Cooking with gas now!

The other day I decided to see how FreeDOS was coming along, it has a lot of newer and more advanced utilities and active development, which obviously MS-DOS does not have. I have everything functional and plenty of free conventional with all devices loaded. However disk access is absolutely abysmal, around 400kb/sec. I also cannot find any way to shadow the ROM into RAM. If I swap out Jemm for emm386 I can once again shadow the ROM, but even then I'm only getting 2MB/sec and for whatever reasons himem.sys takes up 44kb of conventional memory no matter what I do.

What I am wondering is why FreeDOS seems to have a much lower baseline disk performance, and whether or not there are any tools to enable shadowing a ROM address into system memory. I've only been messing with this for a day, but I'm not seeing any switches for this function in any of the docs.

Any help is appreciated, thanks in advance!