• Please review our updated Terms and Rules here

DOS 1.XX and a 386 SX; 160k image on a higher capacity disk.

fjk61011

Veteran Member
Joined
Nov 18, 2009
Messages
1,724
Location
Dublin, Ireland
DOS 1.XX and a 386 SX; 160k image on a higher capacity disk.

I have a disk image of DOS 1.0 from a 160k SS/DD 5 1/4 inch floppy disk. Is it possible to restore this image to a higher capacity disk?

What is the fastest processor that DOS 1.0 would run on?
 
DOS 1.XX and a 386 SX; 160k image on a higher capacity disk.

I have a disk image of DOS 1.0 from a 160k SS/DD 5 1/4 inch floppy disk. Is it possible to restore this image to a higher capacity disk?

What is the fastest processor that DOS 1.0 would run on?

If you use DSKIMAGE.COM to write your disk, you specify tracks/heads/sectors -- 40/1/8 in the case of your 160KB disk image. The program creates the disk as specified. See the instructions in DSKIMAGE.TXT

I have executed that image on a 486DX2.
 
You can drop just about any combination of tracks, heads and sectors that you want on a diskette.

To keep things simple I would use a 5.25 inch diskette. If you want to be adventurous you can use a 3.5" diskette. You may have some problems formatting the diskette, as 160K or 180K is not a well known/recognized format. If you cheat in the CMOS of your machine you can make the 3.5" diskette look like a 5.25" drive and then you can get the nonstandard formats.
 
M. Brutman is correct in that you can create a 3.5" diskette with the specified 5.25" structure (tracks/heads/sectors). I created a 3.5" boot diskette on my 486DX2 system. I just booted a Windows 98SE laptop which has a 3.5" disk drive in it with that diskette. It boots fine and asks you to enter the date (DOS 1.0). The DOS program "CHKDSK" reports that it is a 160KB diskette. When I examine the properties of that diskette under Windows 98SE, it reports that it is a 160KB diskette also.

Thanks to M. Brutman for his DSKIMAGE program. I have used it to create disk images for all my original (factory label) diskettes, both 5.25" and 3.5", which go back to 1981.
 
Last edited:
Hi Ken,

Glad you like it and are finding it useful.

One of the reasons I wrote my own version of this often repeated utility is that I was working with very old diskettes and was getting a lot of read errors that would often clear up on a retry or two. Sometimes it would take five or six retries. If you are imaging a diskette you only need one good read of the entire diskette, so I gave the user the option to specify how many retries they want before dskimage gives up.

If you are archiving clean your heads often, and once you get a good image back it up!


Mike
 
Thanks guys, I'll try it out later. I'm supposed to be painting and wall-papering the house :( And it's a holiday weekend here :( :(
 
You can drop just about any combination of tracks, heads and sectors that you want on a diskette.

To keep things simple I would use a 5.25 inch diskette. If you want to be adventurous you can use a 3.5" diskette. You may have some problems formatting the diskette, as 160K or 180K is not a well known/recognized format. If you cheat in the CMOS of your machine you can make the 3.5" diskette look like a 5.25" drive and then you can get the nonstandard formats.

What I find to work is to format the disk with the tracks/heads/sectors it is designed to contain, and then just write the image to that this as if it was a 160K/180K disk. DOS 1.x will see the drive as a 5.25" drive with a 160K disk, even if it is a 3.5" drive with a HD disk in it.

To my experience, DOS sets (and almost fully relays on) it's own "disk format" flag on the first sector of the disk. Because of this, you can actually use 720KB 3.5" disks in an early type XT without any upgraded BIOS or Int13h-extension (you may have to upgrade the controller to an AT-style one if you use a HD-compatible drive).
 
Last edited:
OK, it's 5.30 pm here and I'm on a little coffee break. I'll have a read of the above posts while I let the paint dry and try to understand the concepts involved. I have a PS/1 386 SX which I think I upgraded to a 486 SX with a Cyrix chip way back in the 20th Century. It's running DOS 4.0 and Windows 3.0 at the moment. There is a 3.5 inch disk drive in it. But the drive takes its power through the data ribbon cable! If I remember rightly either the first or last channel wire is cut on the ribbon. I also have an ISA floppy controller with an edge connector and I have a 5.25 inch floppy drive.
 
What I find to work is to format the disk with the tracks/heads/sectors it is designed to contain, and then just write the image to that this as if it was a 160K/180K disk. DOS 1.x will see the drive as a 5.25" drive with a 160K disk, even if it is a 3.5" drive with a HD disk in it.

To my experience, DOS sets (and almost fully relays on) it's own "disk format" flag on the first sector of the disk. Because of this, you can actually use 720KB 3.5" disks in an early type XT without any upgraded BIOS or Int13h-extension (you may have to upgrade the controller to an AT-style one if you use a HD-compatible drive).

I did not format the 3.5" diskette with the tracks/heads/sector parameters of the 160KB image file.

It has been a long time since I created the DOS 1.0 3.5" diskette I mentioned in a previous post so I did the following:
1. Formatted another 3.5" diskette as a 1.44MB (just to make sure it was 1.44MB)
2. Ran DSKIMAGE using the following command
"DSKIMAGE DOS10B.DSK 0:40:1:8" where DOS10B.DSK is the name of my 160KB image file on the hard drive,
and "0" specifies the A: drive on my laptop (AMD K6 running Windows 98SE) -- I did this using the MSDOS command line prompt

After it finished I booted the laptop from the 3.5" diskette -- it booted to DOS 1.0. I ran "CHKDSK" which reports 160KB on the A: drive

I rebooted to bring up Windows 98SE, and checked the properties of the 3.5" diskette. It was reported to be 160KB.

Maybe Mike Brutman can explain if DSKIMAGE formats on the fly, or if the 3.5" diskette is still formatted as 1.44 and just thinks it is a 160KB diskette. Either way it works.
 
What I find to work is to format the disk with the tracks/heads/sectors it is designed to contain, and then just write the image to that this as if it was a 160K/180K disk. DOS 1.x will see the drive as a 5.25" drive with a 160K disk, even if it is a 3.5" drive with a HD disk in it.

To my experience, DOS sets (and almost fully relays on) it's own "disk format" flag on the first sector of the disk. Because of this, you can actually use 720KB 3.5" disks in an early type XT without any upgraded BIOS or Int13h-extension (you may have to upgrade the controller to an AT-style one if you use a HD-compatible drive).

My comment above is related to the difficulty of getting a non-standard format onto a disk. Depending on the OS being used and the drive, you may not be able to tell it exactly how you want the diskette formatted. For example, a single sided format might be difficult to specify. My utility does not do formatting so there has to be a good format on the diskette first, and it has to match the image that you are going to write.


(This should probably be a different thread ...)

While the boot sector has a 'format' type flag in it, there are exceptions. I have some very old diskettes that do not have that field set correctly. The Linux loopback driver was not able to tell what was going on and would not mount the diskette image, even though it appeared to be a readable MS-DOS diskette.

I have used the trick you describe recently to boot DOS 3.3 on a 720KB diskette in a 1.44MB drive attached to a PCjr, which only supports double density drives. DOS was fine with it, but it can't format new disks. I'm doing a little research on why - I suspect that the 1.44MB drive is getting confused. It's a mess because the 1.44MB drives have to set the data rate based on the type of media being used, and not from the controller. Even though I'm using double density media it still fails.

Does anybody have any genuine 720KB/1MB drives for sale/trade? :)


Mike
 
Ken,

Now I'm starting to confuse myself just thinking about it!

There are two formats in involved - formatting the media, and then applying a filesystem on top of that. When we talk about floppy drives most formatting utilities do both at the same time.

DskImage only reads and writes sector data - it does not do any formatting.

So if you start with a preformatted diskette, the physical format of the media is fine and DskImage will just write sectors to whatever is there. If you could 'see' your format of the disk, the physical format might use 2 sides of the diskette, 80 tracks per side, and 19 sectors per track. If you put a 160KB diskette image on top of that you are only using 1 side, 40 tracks, and 9 sectors per track of the formatted area.


Before I embarrass myself any further I'm sure that ChuckG has something to say. He made a living out of this. :)
 
Yeah, I've usually got plenty to say :)

160KB is only 8 sectors per side, one side per cylinder. Although DOS 1.x physically formatted 8 sectors per side, DOS after 2.0 physically formats 9 sectors per side when the /8 switch is given, but uses only the first 8. In other words, the DPB reflects 8 sectors, but the disk in fact is formatted with 9.

It's perfectly possible to stick a DOS 1.1 image on a 1.44M floppy, using only the first 8 sectors of the 18 physically present. DOS 1 doesn't know anything about densities and so leaves the controller alone. Where you get into trouble is when using DOS 1.1 FORMAT on a high-density drive (or even a 720K drive). It attempts to make sense out of the parameters returned by the BIOS and tends to really mess things up--you'll get whacky messages about the number of bad sectors and generally will not be able to SYS the floppy that you get--SYS gets even more confused.

The safest way to go if your system supports the setting is to tell the BIOS that you have a 360K drive where your 1.44MB one is. Sometimes, depending on the vendor, you can get away with this and everything, including FORMAT, works just the way it should.

Note that you can use COPYQM's BLIND mode to transfer a 160K to a 720K floppy. If you specify SMART, COPYQM will use whatever format's already there--until it hits the first write error, after which it'll format the remaining tracks on the floppy. I was kind of hoping to create a native 1.44MB bootable floppy using COPYQM's CONVERT argument, but DOS 1.x doesn't use the same boot sector layout that later versions do. Maybe it's possible with some tinkering, but FORMAT, DISKCOPY, COMP, and SYS are definitely going to have issues...
 
I have used the trick you describe recently to boot DOS 3.3 on a 720KB diskette in a 1.44MB drive attached to a PCjr, which only supports double density drives. DOS was fine with it, but it can't format new disks. I'm doing a little research on why - I suspect that the 1.44MB drive is getting confused. It's a mess because the 1.44MB drives have to set the data rate based on the type of media being used, and not from the controller. Even though I'm using double density media it still fails.

I have a 720KB drive, and I can tell that it handles R/W just fine but it still won't format media as 720KB (it tries to format it as 360KB media instead, and I don't remember if it runs into errors).

This has to do with what Chuck states; Normal R/W uses info from the first sector in combination with BIOS calls (the IBM PC BIOS just passes the data to the FDC in most cases without checking it first), while Format uses the drive parameters stored within the BIOS.

I curently use a software Int13h-extender (from 2M) in my XT to support HD drives. It works extremely well, and I am fully able to R/W/Format any disk supported by the disk drives.
 
I have a 720KB drive, and I can tell that it handles R/W just fine but it still won't format media as 720KB (it tries to format it as 360KB media instead, and I don't remember if it runs into errors).

This has to do with what Chuck states; Normal R/W uses info from the first sector in combination with BIOS calls (the IBM PC BIOS just passes the data to the FDC in most cases without checking it first), while Format uses the drive parameters stored within the BIOS.

I curently use a software Int13h-extender (from 2M) in my XT to support HD drives. It works extremely well, and I am fully able to R/W/Format any disk supported by the disk drives.

First, I doubt that FORMAT is using the drive parameter tables in BIOS. PCs, XTs and PCjrs don't have any such thing. And later versions of DOS (3.2?) provided DRVPARM to override DOS's view of an existing drive, or DRIVER.SYS to add a new logical DOS drive. These both operate independently of the BIOS.

I used drvparm and driver.sys to 'fix' what DOS was seeing and was still having trouble. And FORMAT was giving me 'track 0 unusable' type error messages, not laying down the wrong format. So I think we have two different things going on here.
 
First, I doubt that FORMAT is using the drive parameter tables in BIOS. PCs, XTs and PCjrs don't have any such thing. And later versions of DOS (3.2?) provided DRVPARM to override DOS's view of an existing drive, or DRIVER.SYS to add a new logical DOS drive. These both operate independently of the BIOS.

I used drvparm and driver.sys to 'fix' what DOS was seeing and was still having trouble. And FORMAT was giving me 'track 0 unusable' type error messages, not laying down the wrong format. So I think we have two different things going on here.

The XT BIOS does at least have some parameters pointed to by Int1Eh, defining 5.25" DD drives at default (the DOS Bootstrap routine updates therse parameters if nessecary).

I have no idea what Format actually does, but it problably does more than just regular R/W through Int13h. It may use the Int13h format command, which is a special case seperated from the R/W routines.

I still recomend the 2M Int-13h replacment, as it gives full FDD support on any PC without eating more than some KB of RAM. As long as the booting disk is able to boot without the replacement, all you have to do is to include it first in Config.sys.
 
Last edited:
The source for MS-DOS 3.3 is available on the 'net, and it builds. One could take the source for SYS, FORMAT, etc., and if they won't run on DOS 1.x make them.. (you could also use FreeDOS ones, etc., but it might be harder to adapt due to the design changes between 1.x->3.x->5.x)
 
Hi all,

I've read the previous posts and am honoured that my question has elicited such interesting responses. I've copied dskimage and the image itself to the DOS 4.0 machine with 3.5" drive. When I run dskimage I get "Abnormal program termination". I'll connect up the 5.25" drive later and see what I can do. On my Windows 7 machine, I tried to run the DOS 1.0 image in VirtualBox. It wouldn't run, but when I ran the image under Flopper in VirtualBox the image booted to a date prompt and then A> DIR listed 38 files including DONKEY.BAS :) and CHKDSK showed 40 files.
 
Back
Top