Xerox

From: Eric Smith <eric_at_brouhaha.com>
Date: Thu Dec 17 13:47:36 1998

Sam Ismail <dastar_at_ncal.verio.com> replied to Hans' comments about
Apple DOS:

> I think your memory has some holes (I knew that anyway). As far as I
> remember, with a random access text file, Apple DOS will write 1000 * 128
> (128,000) bytes of zeroes before it lays down your 128 bytes, thereby
> creating a large, mostly empty file.

No, Apple DOS is in fact clever enough to leave holes. They will read as
zeros, but are not actually allocated. This behavior is documented in
the DOS manual. You can thereby create a file that is "larger" than 143K,
and a naive copy program won't be able to copy it to another floppy.
(I'm not sure whether FID handles this properly or not.)

However, I'm not sure that they retained this capability in SOS, ProDOS,
and GS/OS.

Aside from the kludgey way that Apple DOS is interfaced to BASIC (because
neither Integer BASIC nor AppleSoft BASIC had any proper hooks to add
statement and functions in RAM), Apple DOS was actually quite well designed
for the time. Paul Laughton did a commendable job, especially given the
amazingly short period of time he was given to write it. The story is on
his web site:

        http://www.laughton.com/Apple/Apple.html

For those of you that haven't read "Beneath Apple DOS", I'll point out
that DOS actually consisted of three pieces:

1. RWTS - Read/Write Track & Sector. Written by Woz, this was the lowest
           layer. Roughly equivalent to INT 13 in a PC clone BIOS.

2. FMS - file manager. The file system. Provides a fairly clean API
           that was intended to be available to applications, but Apple chose
           not to release documentation on it :-( Fortunately it is
           described in Beneath Apple DOS, but unfortunately that didn't
           happen until DOS was fairly long in the tooth.

3. (not sure of the name) - BASIC interface (although it could be used
           from other languages). This part intercepted the COUT vector
           (equivalent to standard output), watched for lines beginning
           with Control-D, and interpreted them as DOS commands. It also
           used the COUT and KSWL (standard input) vectors for the file
           I/O. This part of DOS is the most commonly criticized, since
           it is the only way that most users and programmers were able
           to access files.

Cheers,
Eric
Received on Thu Dec 17 1998 - 13:47:36 GMT

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:30:49 BST