Date : Tue, 14 Aug 2001 12:19:59 +0100
From : "Richard Gellman" <r.gellman@...>
Subject: Re: ANNOUNCE : UEF Specification 0.9
>As for non-standard disc formats - the new 'completely accurate' disc drive
>emulation in ElectrEm is now at the level of all type 1 commands (seek,
>restore, step, step in, step out) + read sector, and so should be able to
do
>all protected discs that just mess with the data after the id mark (which
>I'm willing to bet is most) or relies on non-standard sector ordering (e.g.
>interleaved for greater storage capacity) or an increased number of tracks.
I think (but dont quote me on this) used a trick which involved sending the
head too far into the centre, e.g. track 255 or something equally daft, and
then stepped back a preset number of tracks, thus positioning the head over
data which is not aligned correctly with the rest of the standard disc. This
renders commands like *BACKUP useless, but makes a cunning way to load data
off the disc.
>Within a week I reckon I'll have write sector and read/write track running
>which means even those really devious programs which hide data in the gaps
>or things like that should work. I don't think beta 10 of ElectrEm will
>support writing to FDIs, or possibly any beta, but fully accurate writes to
>UEFs will be implemented.
Will that be in UEF.DLL as well? *hint hint* :)
>But on the topic - does anybody have an example of some protected software
>that would run on an Electron so I can do some proper testing? And also, am
>I right in thinking that the DFS ROM's determing FM or MFM disc types by
>simply trying both? At the minute I've not fully implemented FM support so
>the emulator happily loads MFM discs with either mode selected causing 1770
>DFS *CAT to report FM operation, which is why I ask.
FM=Frequency Modulation (Single Density)
MFM=Modified Frequency Modulation (Double Density)
This is set by a bit in the floppy disc control register (&FE24 on a Master
128). Dunno where it is on an Electron.
(Just read this bit is mapped through to the ^DDEN^ line on the FDC, which
goes low when using double density (MFM).)
>And does anybody know how a disc drive reacts with no disc present? The
>WD1770 datasheet doesn't seem to think any alternate action is taken
>depending on the state of the ready line so I assume it goes ahead and sets
>the motor on anyway, but then not only will no data be found but I'd
imaging
>no index hole pulses (you know, assuming the motor ignored the motor line
>and didn't start) either so according to the datasheet the WD1770 will
enter
>an infinite loop which can't be right.
Something enters an infinite loop. I just tried *. (am I the only one who
knows of this *CAT abbreviation?) on my real BBC Master 128, and its still
spinning.
The 1770 only waits for 6 index pulses after motor start if instructed to in
the fdc command. However there is no logic to detect a timeout. So if
there's no disc, it just goes on infinitely, which is why your beeb just
sits there forever with the disc drive light on.
FYI, there were a few programs written for the bbc which worked under
interrupts to detect a timeout of a disc read/seek command, and would reset
the fdc and cause a BRK on timeout.
-- Richard Gellman
<Serious bit>
This email is sent to you as personal communication or to a specific mailing
list ONLY, and does not contain any form of comercial advertsing (spam). By
replying to this email you legally agree that you will honour this in a
similar fashion, and you will not send any commercial email to this email
address, or subscribe this email address to any mailing list without prior
permission. Failure to adhere to this may result in criminal prosecution
under the misuse of information laws applicable in all countries.
<end of serious bit>