[comp.os.msdos.programmer] Reading antiquated disk formats

goldstein@arecibo.aero.org (Fogbound Child) (09/19/90)

OK, this is a chance for people to show their age and/or ingenuity.
I've got 5.25" disks from a variety of old machines, which are not MSDOS
format compatible. I would like very much to be able to read some of the 
stuff and convert it to a MSDOS-readable format.

The formats and machines are as follows:

FORMAT			OPERATING SYSTEM		MACHINE
---------------------------------------------------------------
30 track, SS, SD        MOS                             SysTek I
35 track, SS, DD        MOS+                            SysTek I
40 track, SS, DD        Newdos 80 v2                    TRS-80 Mod I
40 track, DS, DD        Newdos 80 v2                    TRS-80 Mod I

I tried some half-hearted low-level hacking, but encountered great 
Trolls of the System (stuff like sectors numbered 0, etc), and fled in fear.


Any Information would be greatly appreciated!
(Please, no flames near my beloved antiques...)
___Samuel___
_________I_claim_and_accept_sole_responsibility_for_the_above._SjG.____________
<goldstein@aerospace.aero.org> | "I should have been a pair of ragged claws,
<goldstein@arecibo.aero.org>   |  Scuttling across the floors of silent seas."
(213) 336-3592 (9-5, M-F)      |     --   J. Alfred Prufrock (T. S. Eliot)

otto@tukki.jyu.fi (Otto J. Makela) (09/19/90)

In article <85968@aerospace.AERO.ORG> goldstein@arecibo.aero.org (Fogbound Child) writes:
   OK, this is a chance for people to show their age and/or ingenuity.
   I've got 5.25" disks from a variety of old machines, which are not MSDOS
   format compatible. I would like very much to be able to read some of the 
   stuff and convert it to a MSDOS-readable format.

   The formats and machines are as follows:

   FORMAT			OPERATING SYSTEM		MACHINE
   ---------------------------------------------------------------
   30 track, SS, SD        MOS                             SysTek I
   35 track, SS, DD        MOS+                            SysTek I
   40 track, SS, DD        Newdos 80 v2                    TRS-80 Mod I
   40 track, DS, DD        Newdos 80 v2                    TRS-80 Mod I

I tried once doing low-level stuff like this and quit in disgust.
You need to wank the BIOS and MS-DOS incredibly before things work...
and most of the strokes are undocumented :-)

However, TRS-80 mod I disks are supported by MediaMaster, I believe.
Sorry, can't name the publisher of this program.
--
* * * Otto J. Makela <otto@jyu.fi> * * * * * * * * * * * * * * * * * * * * *
* Phone: +358 41 613 847, BBS: +358 41 211 562 (CCITT, Bell 2400/1200/300) *
* Mail: Kauppakatu 1 B 18, SF-40100 Jyvaskyla, Finland, EUROPE             *
* * * Computers Rule 01001111 01001011 * * * * * * * * * * * * * * * * * * *

phys169@canterbury.ac.nz (09/20/90)

In article <OTTO.90Sep19150923@tukki.jyu.fi>, otto@tukki.jyu.fi (Otto J. Makela) writes:
> In article <85968@aerospace.AERO.ORG> goldstein@arecibo.aero.org (Fogbound Child) writes:
>}    I've got 5.25" disks from a variety of old machines, which are not MSDOS
>}    format compatible. I would like very much to be able to read some of the 
>}    stuff and convert it to a MSDOS-readable format.
>} 
>}    The formats and machines are as follows:
>} 
>}   FORMAT			OPERATING SYSTEM		MACHINE
>}    ---------------------------------------------------------------
>}    30 track, SS, SD        MOS                             SysTek I
>}    35 track, SS, DD        MOS+                            SysTek I
>}    40 track, SS, DD        Newdos 80 v2                    TRS-80 Mod I
>}    40 track, DS, DD        Newdos 80 v2                    TRS-80 Mod I
> 
> I tried once doing low-level stuff like this and quit in disgust.
> You need to wank the BIOS and MS-DOS incredibly before things work...
> and most of the strokes are undocumented :-)

Okay, here are the clues you need:
(1) To read single density on a 360K drive, you need to set it to FM instead of
MFM, and use 125KHz mode, all of which is undocumented, and not supported by
the BIOS. I've found the easiest way to be to try to read the track using the
normal BIOS call, (which sets up the transfer addresses, etc, before failing),
then output the appropriate bytes to the diskette controller, and read in the
status. I can read TRS-DOS and NewDos 80, and Gimix-Flex diskettes this way,
with only a few problems. I'll tidy up my code a bit and send you some (I'm
posting my reply so others who might want it can e-mail me - if there is enough
interest I'll post a decent bit of Turbo Pascal source, perhaps my DISKEDIT
program).

(2) TRS-80 systems with DD drives still write the first (boot) track in low
density, because the hardware starts up in low density, and cannot change until
the nooted program tells it to. Luckily, this track is fairly unimportant so
long as the diskette has been formatted in the "normal" way, but of course
Apparat's NewDos in particular has many options in formatting diskettes, so you
cannot always assume important things.

(3) Several machines (e.g. Pet & Apple) use variable-frequency recording,
changing things from one track to another, so PC's cannot read them without
special hardware (possibly bit 3 of the port at 3F1 on a PS2, the Read Data
bit, being read in a very tight loop with interrupts turned off, might do some
good, but only a masocist would attempt such a program! Any masocists out
there? Please send me the code if it works! ;-)

Mark Aitchison, Physics, University of Canterbury, New Zealand.

broehl@watserv1.waterloo.edu (Bernie Roehl) (10/04/90)

In article <85968@aerospace.AERO.ORG> goldstein@arecibo.aero.org (Fogbound Child) writes:
>The formats and machines are as follows:
>
>FORMAT			OPERATING SYSTEM		MACHINE
>---------------------------------------------------------------
>[...]
>40 track, SS, DD        Newdos 80 v2                    TRS-80 Mod I
>40 track, DS, DD        Newdos 80 v2                    TRS-80 Mod I

The problem is that the Mod I, like other machines of its generation, wrote
track 0 in single-density mode.  You have to get down and dirty and reprogram
your disk controller chip to handle the FM vs MFM format.

The sector number is a minor issue, as I recall...

You should pick up a copy of "TRS-80 Disk and Other Mysteries", in which
the TRSDOS/NEWDOS/LDOS disk formats are described in complete detail.

It's rather bizarre, really... you read your boot block to find out what
track the directory is stored on, then go through the directory entries
and their "extents", then do something involving a dead goat under a full
moon... you get the idea.


-- 
	Bernie Roehl, University of Waterloo Electrical Engineering Dept
	Mail: broehl@watserv1.waterloo.edu OR broehl@watserv1.UWaterloo.ca
	BangPath: {allegra,decvax,utzoo,clyde}!watmath!watserv1!broehl
	Voice:  (519) 885-1211 x 2607 [work]