🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.os.msdos.programmer
Article #2198

Re: Reading antiquated disk formats

#2198
From: phys169
Date: Thu, 20 Sep 1990 06:28
46 lines
3198 bytes
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.
Technical Details
Message-ID: <1990Sep20.114227.9192@canterbury.ac.nz>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!comp.vuw.ac.nz!virtue!canterbury.ac.nz!phys169
References: <85968@aerospace.AERO.ORG> <OTTO.90Sep19150923@tukki.jyu.fi>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!comp.vuw.ac.nz!virtue!canterbury.ac.nz!phys169
From: phys169@canterbury.ac.nz
Newsgroups: comp.os.msdos.programmer
Subject: Re: Reading antiquated disk formats
Message-ID: <1990Sep20.114227.9192@canterbury.ac.nz>
Date: 20 Sep 90 06:28:15 GMT
References: <85968@aerospace.AERO.ORG> <OTTO.90Sep19150923@tukki.jyu.fi>
Organization: University of Canterbury
Lines: 46