Re: Apple II Disk Drive Question




"David Empson" <dempson@xxxxxxxxxxxxx> wrote in message
news:1hc3ki3.10zs31r14ulie6N%dempson@xxxxxxxxxxxxxxxx
Bryan Parkoff <none@xxxxxxxxxx> wrote:

"David Empson" <dempson@xxxxxxxxxxxxx> wrote in message
news:1hc37c1.zm35pr1p8py2mN%dempson@xxxxxxxxxxxxxxxx
Rotation speed is about 300 rpm. Data rate is nominally 250 kbps (4
microseconds per bit), derived from the Apple II CPU clock which runs
at
about 1.023 MHz, with one bit every 4 clock cycles, so about 255.75
kbps.

I have a question. If RPM is to be between 280 and 310. Can you
please
tell how many KBps per second will be. For example -- 300 RPM is
250KBps.
280 RPM may be 220KBps. 310 RPM may be 280KBps. Please list KBps each
RPM
like 280, 281, 282, and so forth until 310. I am curious.

It isn't as simple as that.

The data rate is fixed when writing: it is determined by the controller,
which will write one bit every four CPU cycles, no matter how fast the
disk is spinning.

The read speed is somewhat variable, to allow for differences in
rotation speed between the drive which wrote the disk and the drive
which is reading it.

According to the manual for my Apple 5.25 drive, the optimal rotation
speed is 299 rpm. Can anyone else confirm this is the actual optimal
midpoint for the rotation speed?

For the purposes of the following, I'll assume all machines are running
at exactly the same clock speed. In reality there is a noticeable small
difference between PAL and NTSC models, since PAL Apple II models have a
master clock frequency of 14.25 MHz, while NTSC is 14.31818 MHz, and
there will be minor variations between individual machines (in the order
of tens or perhaps hundreds of parts per million, well under 1%). The
following could be done experimentally with two drives on the same
computer, adjusting the speed of the two drives to create the necessary
differences.

If the writing and reading drive are operating at exactly the same
rotation speed, then one bit will be read from disk every four CPU
cycles (32 CPU cycles per byte).

If the writing drive is spinning faster than the reading drive, then the
bits will be somewhat shorter from the reading drive's point of view,
resulting in bytes taking less than 32 CPU cycles to read (on average).

If the writing drive is spinning slower than the reading drive, then the
bits will be somewhat longer from the reading drive's point of view,
resulting in bytes taking more than 32 CPU cycles to read (on average).

I assume the range you quote (280 to 310 rpm) allows for worst case,
then a disk written at 280 rpm must be readable at 310 rpm, and vice
versa. This will be determined by the amount of variability allowed for
in the disk controller read hardware. At the extremes, there might be
limits due to the worst case magnetic response from the disk and
sensitivity of the read hardware, risking interference between adjacent
bits or read errors with too much time between flux reversals (one
bits). The software might also be timing sensitive, not able to keep up
with the data if it is arriving too fast, or regarding the data as
invalid if the bytes are too short or too long.

If you want to calculate the actual duration of each bit, you need to
know the rotation speed of both the writing and reading drives, and it
is a simple proportional calculation.

At the extremes: 280/310 is about 0.90, so bits written and read at
opposite extremes will 90% of the expected duration (write at 310, read
at 280) or 110.7% of the expected duration (write at 280, read at 310).

This works out at 3.6 CPU cycles per bit (on average) in the shortest
case (284 kbps), 4.4 CPU cycles per bit (on average) in the longest case
(232 kbps).

--
David Empson
dempson@xxxxxxxxxxxxx

David,

Thank you very much for your answer. It looks like that 6502 CPU must
be involved for writing to disk, but Disk II card does not need to depend on
6502 CPU for reading because it is done through slate sequencer. Right? I
can't remember exactly when I read "Understanding the Apple //e" book
chapter 9. It is explained very well.
It is only a possibility to implement Disk II's speed like 280 to 310
RPM. It is almost impossible, but there are many ways to overcome
limitation which it is done through timing. However, Disk II speed is
independent from the timing because the rotation is at constant speed, but
it can be done using variation resistor adjustment. Correct?

Bryan Parkoff


.



Relevant Pages

  • Re: Apple II Disk Drive Question
    ... derived from the Apple II CPU clock which runs at ... which will write one bit every four CPU cycles, ... adjusting the speed of the two drives to create the necessary ... know the rotation speed of both the writing and reading drives, ...
    (comp.sys.apple2)
  • Re: [SLE] Disk activity -> CPU waiting i.s.o. idle?
    ... > When I create a lot of disk activity, my CPU ... In theory a SCSI drive will spend less time waiting than a IDE drive ... IDE drives may not be your best choice. ...
    (SuSE)
  • RE: Renicing and disk usage priority
    ... the thing that's got me wondering if lowering the nice value would help is that there are plenty of free CPU cycles to grab up. ... Renicing and disk usage priority ... IO bound processes get a lot higher (where higher is ...
    (RedHat)
  • Re: DD not working--SUCCESS!
    ... writing things and such - lots of disk activity resulting from that). ... It is far safer to boot from a live CD without either drives mounted ... dd will use lots of CPU time. ... cables, available RAM, and no doubt a number of others. ...
    (Fedora)
  • Re: Z110 read floppy disk question.
    ... Thanks Herb! ... I have two Z110 boxes, neither of which will come up to the monochrome monitor screen with any text, thought the keyboards will beep with key clicks and so on so at least part of the main board and CPU must be working at this point. ... the commercial version supported more disk formats. ... Plus this test box I'm building to try this has ISA slot operations in it into which I can even test plug the ISA drive controller for the floppy diskette drives as well as the hard disk drive controller for the Z386-25 hard drives. ...
    (comp.sys.zenith.z100)