Bad Classic Operating Systems (was: Micro$oft Biz'droid Lusers)

From: Derek Peschel <dpeschel_at_eskimo.com>
Date: Sun Apr 21 11:51:46 2002

On Sun, Apr 21, 2002 at 08:36:56AM -0700, Sellam Ismail wrote:
> On Sun, 21 Apr 2002, Derek Peschel wrote:

> > memory to areas of disk and read it back again). Apple's DOS 1 and 2
> > had no files, or so I hear. FORTH often still doesn't, though it was
>
> Where'd you hear that?
 
On some "history of the Apple" site, probably.
>
> Any information on Apple DOS before version 3 would be interesting. I
> didn't think they HAD versions before 3.2. From what I've read, 3.2 was
> the version that was finally deemed complete and ready for release.

1 and 2 were not released (which is why I don't have any more information
than you do). You may be interested in chapter 2 of _Beneath Apple DOS_.

        Since its introduction, Apple DOS has gone through three
        major versions. All of these versions look very much the
        same on the surface. All commands supported by DOS 3.3 are
        also supported in 3.2 and 3.1. The need for additional
        versions has been more to fix errors in DOS and to make
        minor enhancements than to provide additional
        functionality. Only DOS 3.3 has offered any major
        improvement in function; an increase in the number of
        sectors that will fit on a track from 13 to 16.

        DOS 3 - 29 June 1978
        DOS 3.1 - 20 July 1978

        The first release of DOS was apparently a victim of a rush
        at Apple to introduce the DISK II. As such, it had a number
        of bugs. With the movement towards the APPLE II PLUS and the
        introduction of the AUTOSTART ROM, a new release was
        needed.

        DOS 3.2 - 16 February 1979

        Although DOS 3.2 embodied more changes from its predecessor
        than any other release of DOS, 90% of the basic structure of
        DOS 3.1 was retained. The major differences between DOS 3.1
        and 3.2 and later versions of DOS are listed below:

        - NOMON C,I,O is the initial default under DOS 3.2. MON
          C,I,O was the default under DOS 3.1.
        - Input prompts (>,],*) are echoed when MON O is in effect,
          not under MON I as was the case under 3.1.
        - When a DOS command was entered from the keyboard, DOS
          executed it and then passed a blank followed by a carriage
          return to BASIC under 3.1. Under 3.2 only a carriage
          return is passed.
        - Under 3.2, certain commands may not be entered from the
          keyboard but may only be used within a BASIC program
          (READ, WRITE, POSITION, OPEN, APPEND).
        - Under 3.2, when LOADing an APPLESOFT program, DOS
          automatically converts from APPLESOFT ROM format to
          APPLESOFT RAM format if the RAM version of BASIC is in use
          and vice versa.
        - DOS 3.1 could not read lowercase characters from a text
          file; DOS 3.2 can.
        - Some DOS commands are allowed to create a new file, others
          will not. Under DOS 3.1, any reference to a file that
          didn't exist, caused it to be created. This forced DOS 3.1
          to then delete it if a new file was not desired. (LOAD XYZ
          under 3.1 if XYZ did not exist, created XYZ, deleted XYZ,
          and then printed the file not found error message.) Under
          3.2, OPEN is allowed to create a file if one does not
          exist, but LOAD may not.
        - Under 3.1, exiting to the monitor required that the
          monitor status register location ($48) be set to zero
          before reentering DOS. Under DOS 3.2 this is no longer
          necessary.
        - The Read-Write/Track-Sector (RWTS) section of DOS disables
          interrupts while it is executing. Under 3.1, RWTS could be
          interrupted by a peripheral while writing to a disk,
          destroying the disk.
        - The default for the B (byte offset) keyword is 0 under
          3.2.
        - DOS was reassembled for 3.2 causing most of its
          interesting locations and routines to move slightly. This
          played havoc with user programs and utilities which had
          DOS addresses built into them.
        - Additional file types (beyond T, I, A, and B) are defined
          within DOS 3.2, although no commands yet support them. The
          new types are S, R, a new A, and a new B. R has
          subsequently been used by the DOS TOOLKIT for relocatable
          object module assembler files. At present, no other use
          is made of these extra file types.
        - Support was added under 3.2 for the AUTOSTART ROM.
        - All files open when a disk full condition occurs are
          closed by DOS 3.2.
        - As with each new release of DOS, several new programs were
          added to the master diskette for 3.2. Among these was
          UPDATE 3.2, a replacement for MASTER CREATE, the utility
          for creating master diskettes. UPDATE 3.2 converts a slave
          into a master and allows the HELLO file to be renamed.

        DOS 3.2.1 - 31 July 1979

        DOS 3.2.1 was essentially a "maintenance release" of DOS
        3.2. Minor patches were made to RWTS and the COPY program
        to correct a timing problem when a dual drive copy was done.
        Additional delays were added following a switch between
        drives.

        DOS 3.3 - 25 August 1980

        Introduced in mid 1980 as a hardware/software upgrade from
        DOS 3.2.1, the DOS 3.3 package includes new bootstrap and
        state ROM chips for the disk controller card which provide
        the capability to format, read, and write a diskette with 16
        sectors. (These ROMs are the same ones used with the
        LANGUAGE SYSTEM.) This improvement represents almost a 25%
        increase in available disk space over the old 13 sector
        format. Also included in the 3.3 package is an updated
        version of the DOS manual, a BASICS diskette (for 13 sector
        boots), and a master diskette. Although the RWTS portion of
        DOS was almost totally rewritten, the rest of DOS was not
        reassembled and only received a few patches:

        - The initial DOS bootstrap loader was moved to $800 under
          3.3. It was at $300 under 3.2. In addition, as stored on
          the diskette (track 0 sector 0) it is nibblized in the
          same way as all other sectors under 3.3.
        - A bug in APPEND which caused it to position improperly if
          the file was a multiple of 256 bytes long was fixed under
          3.3.
        - A VERIFY command is internally executed after every SAVE
          or BSAVE under 3.3.
        - All 4 bytes are used in the Volume Table Of Contents
          (VTOC) free sector bit map when keeping track of free
          sectors. This allows DOS to handle up to 32 sectors per
          track. Of course, RWTS will only handle 16 sectors due to
          hardware limitations.
        - If a LANGUAGE CARD is present, DOS stores a zero on it at
          $E000 during bootstrap to force the HELLO program on the
          master diskette to reload BASIC.
        - DOS is read into memory from the top down (backwards)
          under 3.3 rather than the bottom up. The image is still
          stored in the same order on diskette (tracks 0, 1, and
          2), however.
        - Additional programs added to the master diskette under 3.3
          include FID, a generalized file utility which allows
          individual files or groups of files to be copied, MUFFIN,
          a conversion copy routine to allow 3.2 files to be moved
          to 16 sector 3.3 diskettes, BOOT 13, a program which will
          boot a 13 sector diskette, and a new COPY program which will
          also support single drive copies.
        - Under 3.2, speed differences in some drives prevented
          their use together with the COPY program. Because the
          COPY program was rewritten under 3.3, that restriction no
          longer applies.

        DOS 3.3 - 1 January 1983

        This "maintenance release" of DOS was introduced with the
        Apple IIe computer. It contains a few minor patches and no
        additional function.

        - A patch was introduced in DOS 3.3 to fix a bug in APPEND
          processing. This patch also had bugs. Additional patches
          were added to (hopefully) correct this problem.

        - An error for the POSITION calculation in large files is
          corrected in this release.

        - A few instructions were added to properly support the 80
          column display on the Apple IIe.

        - The system master diskette contains some different files.
          Notably, a fast loader for the language card and all of
          the example programs have been moved to a separate
          diskette.

No, I don't have an online copy of the book -- I just typed everything in.

Some other historical tidbits:

DOS 3.x was not written by Apple but by Optimized System Software.
They later went on to write the DOS for the Atari 8-bit machines, which has
a very polished and modular internal organization (though Atari never really
upgraded the hardware -- also it would be nice to get rid of the menu system
and mix BASIC with DOS -- I think there are software programs to do that).

FID says FIle Developer in its title screen. A few years ago I read
(on comp.sys.apple2) that it was originally called FISHEAD. (That is
a horrible acronym but I forget what for.) The Apple management protested.
Little did they know that FID really stands for Fishead In Disguise!

And MUFFIN was named for the programmer's dog. A program to convert 3.3
files back to 3.2 exists and is called (naturally enough) NIFFUM.

I'm not sure if the APPEND bug was ever completely fixed. DOS doesn't
record the length of a text file, unlike ProDOS; that undoubtedly makes
the programmer's life harder. I believe sparse text files under DOS
are also a complete pain.

-- Derek
Received on Sun Apr 21 2002 - 11:51:46 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:34:32 BST