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!

Reply 1 of 3, by igully

User metadata
Rank Newbie
Rank
Newbie

Why are you not using any drive cache?
MS-DOS brought SmartDRV and FreeDOS has LBACACHE

On MS-DOS 6.22 which uses FAT16a, you should not be using 16 GB partitions (2 GB should be the maximum)!

And honestly, FreeDOS while commendable as a project, with lots of positive things coming from it, IMHO is neither a fast or efficient DOS distribution. It just works.

I would suggest you give a try IBM PC-DOS 7.1 which is available free for home use, or OpenDOS 7.01 which is also free for non commercial purposes.
There are also other DOS distribution that are less known, but certainly do have some bright spots to learn about. Depends on your time, will and needs.

Reply 2 of 3, by reflexve

User metadata
Rank Newbie
Rank
Newbie
igully wrote on Today, 13:31:
Why are you not using any drive cache? MS-DOS brought SmartDRV and FreeDOS has LBACACHE […]
Show full quote

Why are you not using any drive cache?
MS-DOS brought SmartDRV and FreeDOS has LBACACHE

On MS-DOS 6.22 which uses FAT16a, you should not be using 16 GB partitions (2 GB should be the maximum)!

And honestly, FreeDOS while commendable as a project, with lots of positive things coming from it, IMHO is neither a fast or efficient DOS distribution. It just works.

I would suggest you give a try IBM PC-DOS 7.1 which is available free for home use, or OpenDOS 7.01 which is also free for non commercial purposes.
There are also other DOS distribution that are less known, but certainly do have some bright spots to learn about. Depends on your time, will and needs.

1) SmartDrv offers no gain on flash storage. It's generally recommended not to use it, it just takes up memory and performance is the same. I have confirmed what these forums already say about it elsewhere.

2) I have been using MS-DOS 7.1 from Win98SE since it supports FAT32

I can have a look at PC-DOS and OpenDOS, just not very familiar with those. I am not seeing any regressions when benchmarking FreeDOS vs MS-DOS aside from disk access, that is why I was asking if this is known and if there are things I should be doing. I'll look more deeply into LBACache to determine if it is an analog for SmartDrv or if it has it's own features that make more sense on flash storage.

Reply 3 of 3, by Jo22

User metadata
Rank l33t++
Rank
l33t++

1) SmartDrv offers no gain on flash storage.

Depends, I would say.. CF cards, for example, have a little buffer of 1 KB and aren't exactly quick at writing or if multiple read/write request happen.

They tend to cause stutter on multitasking OSes such as Windows 98, too, I think.
Enabling DMA helps a bit to hide the symptoms, though.
Only works if the CF adapter has DMA lines, also.
Enabling DMA on unsupported hardware causes Windows 98 to hang on boot.

It's generally recommended not to use it, it just takes up memory and performance is the same.

What comes to mind, there's a SmartDrive alternative in Helix Multimedia Cloaking which takes up little RAM.
I've taken a screenshot here: Re: Can I skip Smartdrive?

The advantage of having SmartDrive or a similar cache loaded is most noticeable if multiple files are loaded from disk, I think.
Some games do load their game data during gameplay and can benefit from a cache.

Another advantage is that data held in RAM doesn't need to travel over ISA bus every time.
That frees more bandwidth for ISA graphics cards or soundcards, maybe.

Another aspect of SmartDrive is that it hold the directory information of the FAT in RAM.
That speeds up DIR command, for example. Or opening files.
The ancient FASTOPEN command does same thing, basically. It's a mini cache.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//