• Please review our updated Terms and Rules here

Why I used DRDOS 3.41 on IBM PC 5150 (adventures with 256KB RAM, XT-IDE and HXC)

voidstar78

Veteran Member
Joined
May 25, 2021
Messages
684
Location
Texas
In the 80s, I was lucky to have a Tandy 1000SX - which I used daily for about 5 years (mastered that config.sys and self taught some Turbo Pascal v3 to v7). I've since forgotten nearly all of that, but some of it is slowly coming back to me.

Recently, I was lucky to come across a pristine condition IBM PC 5150. It is a "B model" with 256KB RAM, both disk drives are 5.25" DD 360KB, and it has the 63W power supply, stock 8088, and that cassette port (which I verified works, can save and load my BASIC programs). Also came with an interesting CGA card. More on the CGA in another thread....

I didn't want to put any wear and tear on the 5.25" disk drives, so I ordered one of the HXC floppy emulators. It was a tad confusing at first, but after some trial and error I've gotten it working very well: I can handle both 360KB and 720KB images, switching between A: and B: drives, and can swap HFE files without having to muck with any dip switches or reboot. My only issue is that I can only handle DD 360/720KB, I can't handle any HD 1.22/1.44MB images. And I think it is my disk controller that is the limiting factor (which I think I did verify in some IBM documentation that HD media wasn't supported in the original IBM PC disk controllers).


So, eventually I ordered an XT-IDE with 128MB CF card. It worked "out of the box" as soon as it arrived, booting to DOS 6.22 and preloaded with a bunch of things. But then I broke it.... The story here is: I tried to make my own backup image of the CF card. I used the only CF card reader that I had - and long story short, I think that card reader corrupted the disk. I was never able to actually image that CF card (my Win10 machine just kept bouncing a drive letter on and off, which was a bad sign). And when I tried to boot my XT-IDE with that CF again, it just said "Boot sector not found." Now I'm sure there are a lot of ways to fix that -- but I just ordered another XT-IDE and CF card.


Meanwhile, I've challenged myself to re-initialize that CF card myself. I don't have another PC with any physical disk drives (or disk media). Here is a summary of some interesting things I re-discovered about DOS:

- Early DOS is limited to 32MB partitions, specifically before 3.31
- Later DOS requires over 256KB RAM (just to run the installer! I'm not kidding, even PC-DOS 4.0 just said "Out of memory" when the installer ran)
- I tried creating a 720KB version of a MS-DOS 6.22 install, but it never would boot (when I create the PC-DOS 3.30 image, I end up with RSA-H attributes on the files ibmbio.com, ibmdos.com and dos00i.400 - thankfully, somehow the zip and HXC image creation is preserving those attributes and it all just boots -- but I thought SYS.COM did a little boot more to prepare a disk for actually being bootable, some 512byte MBR?)
- I tried booting to DOS 3.X, then running the DOS 6.X copy of SYS.COM to initialize a blank disk image - but it just says "incorrect DOS version" and won't run

So.... Then I remembered I used DR-DOS for a long time back in the day.

- I tried DR DOS 5.0 since it still came on 3.5" 720KB disk images, but it said quite explicitly: "Sorry, this program requires 512 Kbytes of free memory".
- Then I tried DR DOS 3.41 ! That was a winner... Sort of.

I used it's FDISK to initialize a full 128MB primary active partition on the CF card. I think the FORMAT.COM was on disk2, so had to image+mount that (put it in B: drive), and format the partition. Then I ran the DR DOS 3.41 setup. That worked, up until the SYS.COM part: "SYS.COM did not run successfully."

I'm not sure why the setup reported this error. I exited back to the command prompt, and just ran SYS.COM myself: SYS C: which then reported the following:
"Writing new boot sector.
"System files copied."

So that ran manually just fine, and I ended up with DRBIOS.sys and DRBDOS.SYS COMMAND.COM on C: - and then my XT-IDE would again boot to C: just fine also. (there was a DRDOS folder, but it empty - so I just copied A: and B: contents to there, both disks of DRDOS).

DRDOS comes with EDITOR.EXE - use CTRL-K CTRL-X to save and exit from that (like for creating autoexec.bat and config.sys)



So that was the adventure - my XT-IDE worked out of the box and I had a 128MB partition on my 5150 Type B with 256KB... but I corrupted my CF card somehow. So I manually got it booting again. I couldn't get an MS-DOS 6.22 image for my 720KB limited disk controller - the PC/DR/MS DOS installers from ver 4 and 5 required over 256KB (no idea why, for an installer...), and older 3.30 or older DOS only let me create 32MB partitions.... DR-DOS 3.41 was my best compromise in the situation: if your XT-IDE CF becomes corrupted or lost and you have a 256KB 5150, you can get back to a single 128MB partition using DRDOS 3.41

And this partition should remain compatible if I ever do get a 720KB DOS 6.22 image in the future (I'll try creating one when I get my 2nd XT-IDE and CF card next week). Or maybe I'll find a newer controller card.

Now I'll start loading it up with content, so I don't have to flip between 720KB disk images on the HXC so much :)



-v
 
Follow up: so much more convenient having a "fixed disk." I also installed the SoundBlaster 2.0 (4x 720KB disks for a CT1350B) and Lemmings is playing actual music now....

And then I got the internet working! It's true, the 3com 3C509B-TPO 16-bit ISA will work in the 5150 - using updated drivers from github:
https://github.com/hackerb9/3C509B-nestor

Plus then mTCP tools for DHCP, telnet, ftp, irc, ntp - I can now set my clock on startup using the network.


Of course this now means I could setup an FTP server on another LAN machine, and just FTP files over to the PC. I did a 5MB test download from speedtest, but then got distracted with some telnet BBS's and world wide IRC chats.... But confirmed it all works.

I had to cheat slightly: the 3com config EXE program is 233KB - it has this text-gui that makes it large, so it also requires over 256KB of RAM to run [ even though you can set all the settings from command line, it still has to load the EXE and try to run ]. So I used the RAM expansion on the XT-IDE Deluxe and bumped up my 5150 to 640KB RAM (I needed to do that also to run Lemmings and SimCity anyway). I had to hunt around for some Address and IRQ settings that would work - the 3COM test diagnostic built into its 3CCFG.EXE didn't pass all its test - I suspect because it is trying to execute some 80186 instructions (it's the 3C509.COM program that was modified to work in the 8-bit ISA 5150, not the 3CCFG.EXE). Now that it is configured, I'll see if I can bump back down to the stock 256KB RAM and still use the mTCP tools.
 
And this partition should remain compatible if I ever do get a 720KB DOS 6.22 image in the future

There are some 720K disks for MS-DOS 6.22 on ebay, but I'm not 100% sure if they are a complete set or not. But you don't really need to do that since you've said that you can use 360K disks or images. Back when I bought MS-DOS 6.22 new in a store, I was still using an XT class machine, so I sent in a coupon to get the 360K disks. So they definitely exist, and I just checked and it seems there is an image on winworld of the 13 disks. Now that I think about it, that ebay set must be complete, because 7 720K disks is more than twice as much space as 13 360K.

https://www.ebay.com/itm/373655652796

ms-dos 6.22  720k.jpg

I've actually got a set of the physical disks for 360K in case there are any issues with the ones at winworld.

My only concern is that the box for 6.22 says that it requires 512K. I'm not sure if that's required to boot, or if that 512K is just needed for some of the extra features, many of which won't work without a 386 anyway.
 
Ah, thanks - I saw that in WinWorld (the 5.25" option MS-DOS 6.22), except I didn't consider it because it said "Upgrade". "(Upgrade)" to me implied it needed an earlier DOS installation, and it would then upgrade from there. Maybe I misunderstood and that's not really the case (and so what is "Upgrade" about it?). I also didn't really bother trying after seeing MS-DOS 4.X and 5.X already complained about not having enough RAM to do the installation (at 256KB).

Right now I'm happy with my setup and can run all the things I want to run. When I started all this I didn't have my MicroRAM, so was stuck with the 256KB. That was my main original point: if you're in a situation of being limited to 256KB RAM and not being able to use high density disks, then seek DR-DOS 3.41



Incidentally - yes, MS-DOS 6.22 did BOOT for me when I was configured to 256KB (it was pre-loaded on the original CF I had for the XT-IDE DELUXE). That's why I was really surprised to realize MS-DOS 4 and 5 required 512KB to install (maybe they make large memory buffers during the install to try to copy files faster -- or some of the files may be uncompressed into RAM and then written {and depending on the type of compression, maybe the entire compressed stream has to be resident into memory before getting uncompressed?}).


Now that I do have the MicroRAM and can configure up to 640KB, I'd like to see if those 360KB MS-DOS 6.22 Upgrade work (or if they require a pre-installed OS)
 
They might complain about not having an OS already installed, but if I recall correctly you can work around that by quitting the installer and doing and fdisk and format /s and maybe making a DOS directory or something like that.
 
FYI, IBM's PC DOS 7.0 takes up the least amount of RAM of any version of DOS after 3.3. However, it does use about 6.5K more than PC DOS 3.3, which may not be trivial on a 256K system. MS/PC DOS 4.0x is the most memory-hungry, taking up about 10K more than 3.3.
 
Oh? Cool - since it's a true IBM PC 5150, I wanted to try to stay with the PC DOS "lineage." I've ordered another CF card and may give PC DOS 7 a try (although sticking with pre-1990 software is kind of fun) - although this DR DOS 3.41 configuration is running everything I'm interested in (except Lotus 1-2-3, I need to look into that more after my current traveling).


I tried the MS DOS 6.02 mouse driver, and found it didn't work well with Lemmings (it would run, but there were odd graphical side effects - a green screen between load screens, and seems liked a forced CGA mode). So I tried a newer v8 of MOUSE.COM/MOUSE.SYS and Lemmings (and SimCity) works now with this serial mouse. But I'm not sure how much RAM either version really consumes (DR DOS 3.41 didn't yet include a MEM.EXE equivalent, at least as far as I can tell or recall)


The only thing not working for me so far is Adlib support on KQ4. It's rumored as one of the earliest (commercial) programs to support Adlib, but so far i's been Speaker only. Will tinker more on this also when I get back.
 
And then I got the internet working! It's true, the 3com 3C509B-TPO 16-bit ISA will work in the 5150 - using updated drivers from github: https://github.com/hackerb9/3C509B-nestor

I had to cheat slightly: the 3com config EXE program is 233KB - it has this text-gui that makes it large, so it also requires over 256KB of RAM to run [ even though you can set all the settings from command line, it still has to load the EXE and try to run ]. So I used the RAM expansion on the XT-IDE Deluxe and bumped up my 5150 to 640KB RAM [...] Now that it is configured, I'll see if I can bump back down to the stock 256KB RAM and still use the mTCP tools.

Thanks for the bug report. It's silly that the 3C509B configuration program requires more than 256KB to run. While I don't have the skill to remove MEWEL from 3Com's 3CCFG.EXE to turn it into a small command-line only utility, I bet someone here, such as nestor or predator99, does.

Another possibility for getting a smaller executable would be to rewrite the entire program using the 3c509.c driver from the Linux kernel. I believe Mike Chambers started work on that a while ago. The benefit of going that route is it might be possible to write a program that works on machines with only 64KB of RAM.
 
I tried the MS DOS 6.02 mouse driver, and found it didn't work well with Lemmings (it would run, but there were odd graphical side effects - a green screen between load screens, and seems liked a forced CGA mode). So I tried a newer v8 of MOUSE.COM/MOUSE.SYS and Lemmings (and SimCity) works now with this serial mouse. But I'm not sure how much RAM either version really consumes (DR DOS 3.41 didn't yet include a MEM.EXE equivalent, at least as far as I can tell or recall)

Have you tried CuteMouse? It has the smallest memory footprint of any mouse driver I've tried (it's possible there's some truly ancient versions of the MS or Logitech drivers that are smaller but I haven't found them) and works with everything I've tried.
 
Agree that a 64KB configuration tool would be a good thing!

But I haven't yet been able to do the experiment to see how much of mTCP (+3com driver loaded) will work with 256KB RAM - the way I have this situated now, it's a bit of a chore to open up the 5150 case. Plus reducing the memory isn't just removing the XT-IDE expansion, we have to fiddle with those dip switches on the mainboard itself. I only have a single fairly pristine 5150, don't really have a backup/spare, so I try not to open it more then I have to. Next weekend I may get time to try it - since I'll have the case open, planning to do my "can I get 4 disk drives to work" experiment (have to make my own 37-pin to 34-pin cable).


I imagine altogether that'll be pretty tight - NIC drivers + any meaningful program (like IRC) with 64KB. I have a WiModem for the C64, but I've been (kind of) trying to figure out a way to get an IRC client on the C64 (which, obviously, only has 64KB also). Just thought it would be fun to IRC between a Commodore and IBM system. There is also a WiModem for the 32K Commodore PET -- maybe there is still some multi-line BBS still up, that might be currently the only way to get those 3 systems connected in a chat group.


I'm still working (in the background) on another software project for PET, probably till the end of this year. But after that, I'm hoping to find time to try some sort of networked game that will run on the 5150 (i.e. 8088) - probably a simple single screen tank kind of game. And by networked, that'd mean like 3+ players at the same time (not just an interlink kind of connection) - so it's really just another application of FTPServer - got these connected clients, they're uploading me data, in response I upload my game-state back to them, etc. For memory reasons, it'd probably have to be limited to like 4-10 clients. Long ago I remember some really rad scrolling tank game - done in "text-graphics" for the PC, you had to aim and fire and it scrolls over the terrain during your shot (had some annoying sound effects too, pre-SB days). Can't remember the name of it, but always thought a networked version of that would have been cool.
 
Have you tried CuteMouse?

I think I did, and I think I had some issue with it. I'm using a serial mouse, and DR-DOS 3.41. Can't remember what the issue was. I'll try to get some time to try it again. I've been mostly focusing on pre-1990s software -- of course I say that while talking about mTCP haha. But mTCP has mostly just been a means to help FTP that old software onto the system.
EDIT: tried it again - CTM-EN /S14 (COM1, INT 4) it just says device not found (tried just CTM-EN and a few variations, still just says device not found)


I'm getting more brave about just copying to the CF. The new CF reader I got is working very well. But just a couple times, after re-inserting the CF card, the thing wouldn't boot and makes me really nervous. So far I've just re-seated the card, rebooted and try again and it works. When I have a bulk set of stuff with many directories, I'll do the CF-card directly -- but if just a few files, like MOD music updates, I'll sling them with FTP.

NOTE: Any good way to make an Image of a CF card? I tried AOMEI Backupper, but I don't think it even acknowledged the presence of the CF card (or said the format was invalid). I backup all the files, but I'd rather just do a pure image backup (and restore).

I did mess up my drive LABEL. I changed the label while the CF card was inserted, but now when I boot on the 5150 the label comes up as garbage (and running LABEL.COM won't let me change it, says it can remove the label).
 
Last edited:
NOTE: Any good way to make an Image of a CF card? I tried AOMEI Backupper, but I don't think it even acknowledged the presence of the CF card (or said the format was invalid). I backup all the files, but I'd rather just do a pure image backup (and restore).

Do you have the kind of Compact Flash adapter that lets you eject the card out the back without opening the case? If so, you can always just pop it into a more modern machine and then copy the image. (E.g., dd if=/dev/sdx of=backup.img).

[Update: Oh yeah, you had mentioned that the last time you tried that, Windows 10 ate the disk and spat it out folded, spindled, and mutilated.]
 
Last edited:
For sending a disk image over the network, I notice mbbrutman 's mTCP comes with netcat. I use the UNIX version of netcat all the time for exactly that purpose, but in UNIX everything, even entire drives, are files. (On one host I run nc -l 9899 > disk.img; on the other, I run nc 192.168.2.10 9899 < /dev/sda).

Does anyone know if DOS has a similar way to address an entire drive as a file? DOS seems to like having special names like "CON:" and "NUL:", so maybe mTCP's netcat understands that "C:" means to send the raw bytes?
 
[Update: Oh yeah, you had mentioned that the last time you tried that, Windows 10 ate the disk and spat it out folded, spindled, and mutilated.]

Yeah, that was a sad day since I had no backup CF (I was even polite and used that "eject USB" button in Windows, it still ate it). But the experience did force me to go thru the steps of re-initializing an OS onto the CF from scratch (I couldn't find the image from the XT-IDE Deluxe folks, and wanted to just go thru the motions of an old school DOS install anyway). I have 4x CF cards now, each ready to boot :)

Next time I have the case open (maybe next weekend) I'm going to try to setup the XT-IDE with two (CF) hard drives - this way I can just backup/mirror them directly.
NOTE: although this makes me wonder - could a stock 8088 63W power supply actually support 4x disk drives and 2x hard drives? Just as a hypothetical - I don't actually intent to try that configuration - but I'm just saying, we're kind of spoiled by the 128MB capacity of the CF cards and the low power of its circuits? )
 
Could a stock 8088 63W power supply actually support 4x disk drives and 2x hard drives?

Excellent question. I can't find the exact wattage fixed disks of the time used, but they were monstrous beasts. I suspect the answer is a resounding "No" since DOS didn't even support fixed disks until PC DOS 2.0 was released with the IBM XT. The XT could supply twice the power, 130W, and came with a 10 MB hard drive. If you wanted to attach the same hard drive to your 8088 PC, IBM offered the "5161 Expansion Unit" which was basically an XT case with the same 130W power supply.
 
I found a minuszero page which states the IBM PC's 63 watt power supply couldn't handle even a single hard drive of the time, but that you might be able to get a Seagate ST-225 to work.

There's another minuszero page that says the 10 MB drive in the IBM XT was the Seagate ST-412 which was rated by Seagate to have a peak pull of 42W (@12V) + 5.5W (@5V) for a total of 47.5 watts max. You might think that would work with the IBM PC's "63 Watt" power supply, but it wouldn't because each line had a separate rating. The 12V power line in the original PC power supply could only provide 24 watts max, so even one ST-412 would have been too much.

Those minuszero pages give (nearly) all the details you need to answer what wattage would be necessary for 4x floppies and 2x hard drives:
Peak watts
+5 V line
Peak watts
+12 V line
Multiple
Seagate ST-412
(10 MB hard drive)
5.5 W42 W×2
???
(MFM controller card)
??×2
Tandon TM100-2
(Full Height Floppy Drive)
1.9 W10.8 W×4
IBM 5¼" Diskette Drive Adapter
(360 KB Floppy Controller)
2 W0 W×2


Multiplying that out gives a peak power draw of 22.6 W on the +5 V rail and 127.2 W on +12 V. The 5V usage is not a problem as the original IBM PC's power supply could provide 35 W. However, for 12 V, not only would the original IBM PC's power supply have failed (24 W max), even the beefier XT power supply, which could provide 50.4 watts on the +12 V line, would not have been sufficient.


Take my calculations with a grain of salt. As a sanity check, note that the IBM 5161 did power two hard drives with only an XT power supply. So why do my calculations say it could not? (2×42 = 84W @12V). Partially it is because I'm looking only at the peak wattage, which happens for the hard drives only when first spinning up. If you can time them so that they don't spin up simultaneously (and I seem to recall that devices of that era could do so), you could use the hard drive's typical watts, 20.4W (@12V), for one of the drives. That'd give a max wattage on the +12V line for two ST-412 hard drives of only 62.4W instead of 84W. If I use the amps measured by minuszero.net, rather than the rated amps for the ST-412, the number falls to 52W (@12V).

That gets us into the ballpark of what the XT power supply was rated to handle, 50.4 W on the +12V line. Still, that seems too close for comfort and not something IBM would have done, so perhaps I am mistaken about the 5161 using two ST-412s. Could it have been a different drive? Are some of the numbers on minuszero.net wrong? Am I just confused about how math works? I do not know.


Another grain of salt: I'm not sure, but I believe each floppy controller card could only spin up one of its two floppy drives at a time, so there is no physical way all four floppy drives would be using their peak consumption simultaneously. If that's right, at most it would be two at peak (10.8 W at +12 V) and two at normal usage (4 W at +12 V), for a total draw of 29.6 W on the +12 V line, instead of 43.2 W.
 
You won’t fit 4 full height floppy drives and two full height hard drives in a 5150, not even with a 5161 hanging off of it. I guess if maybe two of the floppy drives were I some sort of enclosure off the 37 pin port on the floppy controller, but then I’d think that enclosure would have its own power.
 
Yea I was thinking of the 37-pin port. I'm planning to try seeing if I can get an HxC disk emulator working off of that port (which can emulate up to two disk drives). In a "real" setup (early 80s) it would have to be a drive enclosure - which good point, true it would probably have its own power. [ and other good point mentioned was that only 2 disk drives at a time would ever be operating ]

The HxC will need power also - I won't have the internal disk drives connected (hopefully), so I'm planning to just borrow the Molex connector off of one of those (running an extension through the little hole at the back of the case).

Also good reminder that the original 5150 (by itself) wasn't even intended for 1 hard drive, let alone 2. :) Well, I'm not ashamed of "cheating" with an XT-IDE. The HxC's are very nice (for getting software images from a modern PC and running them on a 5150), but I don't want to mess with the drive bays to try to fit a 3.5" device. The XT-IDE just lets me keep all that file content in one place, instead of swapping between 180/360/720KB images.
 
Last edited:
I got the 37-pin port working just fine. Not the most efficient way, but I put some notes here:

5150: Setting up Floppy Disk Controller – voidstar


BTW, anyone know why DR DOS 3.41 doesn't have enough memory to fully run CHKDSK ?


My config.sys and autoexec.bat are empty (blank, renamed them -- such that on boot up, the OS asks for time and date). So it's a completely "default" boot up of DR DOS 3.41

I have the full 640K RAM enabled.

I can do chkdsk /a, just not the more thorough chkdsk.



Click image for larger version  Name:	IMG_7135A.jpg Views:	0 Size:	205.2 KB ID:	1222915
 
Try reducing free memory to less than 512K. Having a signed memory check would overflow if the free memory exceeds 512K.
 
Back
Top