[Coco] Re: Disk Basic and 512 byte block floppies.

John E. Malmberg wb8tyw at qsl.net
Sun Jan 18 21:44:34 EST 2004


x0remery at dsbmail.itg.ti.com wrote:
>>>>>I formatted a 720K 3.5 inch floppy with 512 byte sectors
> 
> Is this basically what is done when you patch RSDOS to use 80 tracks of a floppy?
> That does allow the full 720K access, one half at a time. I have a program (by
> Colin Stearman) that patches RSDOS and most or all related commands to do this.

No.

> The limitation is the number of drives you can have files open on at the same
> time, unless you tell the program to relocate Basic's GAT table.

The last time I looked at that issue was a while ago.  As I remember it, 
the size of some structure in memory was directly dependent on the 
number of tracks on the disk, and there was not room to expand it by any 
useful amount.  Moving it required patching the ROM, which requires 
either burning a new one, or copying it into RAM.

Since at the time, I was using FLEX for the screen and keyboard I/O, 
copying ROM to RAM for patching was not an option.

> I've been thinking of writing a utility to easily transfer files from 35/40 track
> floppies to 72 or 80 track floppies. If I made an 80 track RSDOS floppy,
> does that mean WinXP could read it?

Apparently not with out a device driver.

The Color Computer users 256 bytes per sector on a floppy, and that is 
no longer supported by most other operating systems with out a special 
driver.

LINUX still allows you to create a device descriptor for 256 byte sector 
media, but I do not know how well that works as I have not tried it. 
Getting one of my old laptops running LINUX has my to do list for a while.


The issue is that the OpenVMS, UNIX/LINUX and Microsoft Windows drivers 
use DMA (Direct Memory Access) and error checking on the transfers.  So 
if the requested transfer does not occur perfectly they abort.

Experiments with MS-DOS 2.x and 3.x showed that when a transfer error 
occurred, the device driver did not transfer any data into a user buffer.

The Color Computer does not do much error checking or range checks.  So 
it will continue to transfer data for the entire sector, what ever size 
it is.

Now writing the floppy in 512 sector mode is only 1/2 the battle of 
getting the other operating system to read it.

You also have to be able to read it by sector instead of file 
structured, or write a file system driver for the operating system.

For OpenVMS or UNIX/LINUX, reading or writing individual sectors on 
media is trivial, but might require some special access privileges.

For Microsoft Windows, there are two different APIs that are used, 
depending on if you are using Windows 9X or successors, or Windows NT or 
successors.  The Microsoft MSDN documentation with their Visual C++ 
compiler documents this.

There is also source for rawritewin with the LINUX distribution for a 
program that can be built to run on Microsoft Windows that will be able 
to write directly to a floppy.

-John
wb8tyw at qsl.network
Personal Opinion Only





More information about the Coco mailing list