Login
Back to forumSee the full topicGo to last reply

Posted By

JamesD
on 2013-08-10
01:14:30
 Re: Z80 GUI: SymbOS

The problem here is that you guys think the rate is theoretical. It's not. Bits are written and read at a constant speed and the disk turns at a constant speed. That is a fact.
The only way it can be wrong is if:
A) The disk rotations speed is wrong (I confirmed it off an apple ii faq though the 3.5" disks vary rotation speed by track)
B) The sector size is wrong. (it's not though I don't count leading/trailing bytes)
C) The number of sectors per track is wrong (this depends on the DOS version anyway and I confirmed it)
D) The Wiki comment about being able to read a track in two revolutions is wrong.

How fast an Apple can read a file (not just a track) on an Apple II is going to depend on:
A) File size
B) Whether the DOS has to constantly look at the file allocation info on the disk.
This will create additional seeks.
C) How many track seeks must take place and how far those seeks move the drive head.
D) Fragmentation
E) Number of file buffers allocated
F) The sector interleave.
If the info on the Wiki is correct, the Apple II can read a raw sector, decode it while the disk passes the next sector and it will be ready to read the next sector when it gets there. Hence the two rotations of the disk. One to read even sectors (0,2,4,6,7...) and one to read odd sectors (1,3,5,7,9...). I'm talking physical order, not logical.

(this might get confusing)
With 16 sectors per track, the physical order of the logical sectors would be 0,8,1,9,2,10,3,11,4,12,5,13,6,14,7,15.
If it took passing 2 physical sectors to decode 1 sector you would interleave the logical sectors 0,6,11,1,7,12,2,8,13,3,9,14,4,10,15,5 and it would require 3 rotations to read the data of an entire track.

(assuming 16 sectors per track)
If one DOS version can only read one sector per rotation then you divide the max transfer rate per track I listed by 16. If it can only read two sectors per rotation then you divide the transfer rate by 8. Etc... I divided by two since they claimed it could be done in 2 rotations.

At 5 revolutions per second it takes 1/5 of a second to rotate past an entire track or .2 seconds which matches the FAQ.

This section of the FAQ compares loading a game on several DOS versions:
http://www.faqs.org/faqs/apple2/faq/part6/

This section talks about how much defragmenting files speeds up disks.
http://www.faqs.org/faqs/apple2/faq/part7/

And how fast a PC can transfer a file probably won't match how fast an Apple can transfer a file and there is no guarantee the PC will be faster. But you'll notice the Apple manages about 10K per second before adding track stepping, moving data from buffers to their final address, etc...

Given the fact that it only takes .2 seconds for a disk rotation and stepping will be slow, the PC shouldn't be a lot faster than the Apple II. If you have to read an entire 35 track disk you are only adding 35 * .2 or 7 seconds. It's not going to be anywhere near as slow as loading it with one CPU and then transferring it to another over a serial link.

If you compare the Apple vs a computer with a hardware interface that can read the entire track in one rotation, the Apple will clearly be slower but for 64K you are talking 3.2 seconds so it's not very noticeable.

FWIW, the 1551 should be faster than the Apple II Disk II but it doesn't look like the DOS is very optimized based on the Wiki numbers. It may only read one sector per revolution or something.



Back to top


Copyright © Plus/4 World Team, 2001-2024