[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 32MB is size???



In article <vTVXf.7800$4L1.2405@newssvr11.news.prodigy.com>,
Bryan Parkoff <none@nospam.net> wrote:
> "Paul Schlyter" <pausch@saaf.se> wrote in message 
> news:e0oh20$2h45$1@merope.saaf.se...
>> In article <iAHXf.51135$2O6.5759@newssvr12.news.prodigy.com>,
>> Bryan Parkoff <none@nospam.net> wrote:
>>
>>> Hi, I suggest you to read "Beneath to ProDOS" and "Beneath to DOS 3.3"
>>> manual.  DOS 3.3 is designed to read 256 bytes per sector at this time.
>>> ProDOS is designed to read 512 bytes per two sectors at this time.  It
>>> shows that ProDOS is faster than DOS 3.3 for reading and writing because
>>> double sectors are stored in the RAM.
>>
>> No, that's not the reason ProDos reads so much faster than DOS 3.3.
>>
>> One can fairly easily patch DOS 3.3 so it reads about as fast as
>> ProDos does.  A number of special DOS'es, with these patches, are
>> known by names like Diversi-Dos, Pronto-Dos, etc --- all of them use
>> 256-byte sectors, both at the sector level as well as at the OS level.
>>
>> -- 
>> ----------------------------------------------------------------
>> Paul Schlyter,  Grev Turegatan 40,  SE-114 38 Stockholm,  SWEDEN
>> e-mail:  pausch at stockholm dot bostream dot se
>> WWW:     http://stjarnhimlen.se/
> 
> Paul,
> 
> Well, unpatched DOS 3.3 executes 6502 instructions by using extra cycles 
> because of crossing page boundary.  ProDOS borrowed patched DOS 3.3 to 
> reduce cycles by increasing performance so crossing page boundary is 
> avoided.
> 
> Bryan Parkoff

I never denied that.  But you claimed that this page boundary stuff was
the reason unpatched DOS 3.3 reads disk so much slower than ProDos.  And
that's what I objected to.

The reason unpatched DOS 3.3 is so slow is that it pipes all its disk
I/O stuff through a "read one byte" (and, if writing, "write one byte")
subroutine.  And that subroutine saves and restores an environment 45 bytes
large each time it is called.  This means that if you read (or write) a large
number of bytes, those 45 bytes are needlessly swapped back and forth for
each and every byte read.  This slows down unpatched DOS 3.3 enough to
make it miss the next sector when it passes under the disk r/w head, forcing
DOS 3.3 to wait another disk revolution for the next sector.

Compared to this "swap 45 bytes back and forth for each and every byte read",
the delay due to the page boundary stuff you mention is quite insignificant.

-- 
----------------------------------------------------------------
Paul Schlyter,  Grev Turegatan 40,  SE-114 38 Stockholm,  SWEDEN
e-mail:  pausch at stockholm dot bostream dot se
WWW:     http://stjarnhimlen.se/