|
|
|
|
Apple DOS
|
| |
|
| |
Apple DOS refers to operating systems for the Apple II series of microcomputers from 1979 through early 1983. Apple DOS had three major releases: DOS 3.1, DOS 3.2, and DOS 3.3; each one of these three releases was followed by a second, minor "bug-fix" release, but only in the case of Apple DOS 3.2 did that minor release receive its own version number, Apple DOS 3.2.1. The best-known and most-used version was Apple DOS 3.3 in the 1980 and 1983 releases.

Discussion
Ask a question about 'Apple DOS'
Start a new discussion about 'Apple DOS'
Answer questions from other users
|
Encyclopedia
Apple DOS refers to operating systems for the Apple II series of microcomputers from 1979 through early 1983. Apple DOS had three major releases: DOS 3.1, DOS 3.2, and DOS 3.3; each one of these three releases was followed by a second, minor "bug-fix" release, but only in the case of Apple DOS 3.2 did that minor release receive its own version number, Apple DOS 3.2.1. The best-known and most-used version was Apple DOS 3.3 in the 1980 and 1983 releases. Prior to the release of Apple DOS 3.1, Apple users had to rely on audio cassette tapes for data storage and retrieval, but that method was notoriously slow, inconvenient and unreliable.
Version history
Apple DOS was largely written by Steve Wozniak, Randy Wigginton, and outside contractor Paul Laughton. It was closely tied to the Integer BASIC programming language. To the dismay of many programmers, Apple published no official documentation until release 3.2.
Apple DOS 1 and 2 were purely internal development versions; Apple DOS 3.0 was never publicly released because of remaining bugs.
Apple DOS 3.1, which was the first disk-based operating system for any Apple computer, was released in June 1978 for the Apple II, which had been on the market for a little less than one year. A second bug-fix release came afterwards, addressing a problem with its MASTER CREATE utility, which was used to create Apple DOS master disks. (The built-in INIT command created disks that could be booted only on machines with the same amount of memory as the one that had created them. MASTER CREATE included a self-relocating version of DOS that would boot on Apples with any memory configuration.)
Apple DOS 3.2 was released in 1979 to reflect major changes in computer booting methods that were built into the successor of the Apple II, the Apple II Plus. Instead of the original Integer BASIC, the newer Applesoft BASIC was written into the ROM of the II+. Also, the new ROM had an updated computer reset function, dubbed Autostart, which could boot a disk automatically when the II+ was powered up.
Apple DOS 3.3 was released in 1980. It improved various functions of release 3.2, while also allowing for large gains in available floppy disk storage; the newer P5A/P6A PROMs in the disk controller could read and write data at a higher density, so that instead of 13 sectors, 16 sectors of data could be stored per disk track, increasing the capacity to 140 KB per disk side, with about 130KB available for user programs. Unfortunately, this had the side effect of making it difficult to read disks formatted in prior versions. To counteract this problem, Apple Computer released a utility called "MUFFIN" to migrate Apple DOS 3.2 files and programs to version 3.3. To migrate Apple DOS 3.3 files in the reverse direction, back to version 3.2, users came up with a "NIFFUM" utility; Apple never officially supported transfers in that direction. Release 3.3 also improved the ability to switch between the old Integer BASIC and the newer Applesoft BASIC, if the computer had a language card memory expansion.
Technical details
Apple DOS 3.1 disks used 13 sectors of data per disk track, each sector being 256 bytes in size. It used 35 tracks per disk side, and could access only one side of the floppy disk, unless the user flipped the disk over. This gave the user a total storage capacity of 113.75 KB per disk side, of which about 10 KB were used to store DOS itself and the disk directory, leaving about 100KB for user programs.
Compared to the modern operating systems of today, Apple DOS was quite primitive. The first layer of the operating system was called the RWTS, which stands for "read/write track sector". This layer consisted of subroutines for track seeking, sector reading and writing, and a disk formatting. An API called the File Manager was built on top of this, and implemented functions to open, close, read, write, delete, lock (i.e. write-protect), unlock (i.e. write-enable), and rename files, and to verify a file's structural integrity. There is also a catalog function, for listing files on the diskette, and an init function, which formats a disk for use with DOS, and stores a startup program (usually called HELLO) that will be auto-started when this disk is booted. On top of the File Manager API, the main DOS routines were implemented which hooked into the machine's BASIC interpreter and intercepted all disk commands. It provided BLOAD, BSAVE, and BRUN for storing, loading and running binary executables. LOAD, RUN, and SAVE were provided for BASIC programs, and an EXEC was provided for running text-based batch files consisting of BASIC and DOS commands. Finally, 4 types of files existed, identified by letters in a catalog listing.
Apple DOS File Formats:
- I: Integer BASIC programs (stored in a compact format, not plain-text).
- A: AppleSoft BASIC programs (also stored in a packed, space-saving format).
- B: Binary files, either executable machine-language programs, or data files.
- T: ASCII text files (or plain-text, unpacked batch files).
There were four additional file types; 'R', 'S' and an additional 'A' and 'B', none of which were fully supported. DOS recognized these types for catalog listings only, and there were no direct ways to manipulate these types of files. The 'R' type found some use for relocatable binary executable files. A few programs supported the 'S' type as data files.
Relocatable software
DOS was not designed to use fixed-address subroutine calls for its internal functions. Instead, it was written to permit the software to load at varying locations in system memory. A calling vector table that was always located in the region of $0380-03FF allowed programs to find DOS wherever it was loaded into the system memory. For example, if the DOS hooks into the BASIC CLI stopped functioning, DOS could be reinitialized by calling location $03D0 (CALL 976).
Most assembly language programs did not concern themselves with code relocation since the Apple II did not run multiple programs at the same time like modern computers. Programs were generally written to always expect to find their machine code at the same memory location every time. Fully relocatable code was more complicated and difficult to implement.
This relocatable code was necessary because there could be varying amounts of memory installed in an Apple II, from 16k to 48k, and DOS would always try to load itself at the highest point possible, to free up the lower memory locations for BASIC programs and graphics capabilities. In machines with 48k or more memory, DOS always occupies the region from $9600 to $BFFF (3 file buffers + 10k of software), but it was intelligent enough to load in a lower memory area if less system memory were available.
Boot Loader
The process of loading Apple DOS involved a series of very tiny programs, each of which carried the loading process forward a few steps before passing control to the next program in the chain.
- Originally, the Apple II ROM did not support disk booting at all. At power-up it would go straight to the Monitor ROM machine language prompt. Attempting to boot DOS on a disk required the user to manually attempt to start the process.
- When the disk system was developed the Apple II Monitor ROM was modified to scan each expansion slot in order from slot 7 to slot 1, looking for an expansion card ROM with additional boot code.
- The expansion card ROM boot code is only capable of selecting drive 1 for the slot, moving the read/write arm to track zero, and attempting to read 256 bytes from sector zero of that track. If no disk is present the disk spins continuously until a readable disk is provided and the drive door is closed.
- Sector zero contains a tiny program which tells the computer how to also read sector 1.
- These two sectors combine to form code capable of reading the rest of the sectors in track zero.
- The program in sectors 2-15 of track 0 then proceed to load tracks 1 and 2 which contain the rest of DOS, and relocate it as high in system memory as possible, up to the 48k limit of the Apple II ($BFFF).
- Once DOS is loaded into memory, it attempts to load a startup program as indicated in the DOS program code. This was commonly a BASIC language program named HELLO but DOS could be modified to run other programs at startup, such as assembly language binary files. The appearance of the right-hand bracket ( ] ) on the screen was an indication to the user that an Applesoft BASIC startup program was loading, while a right-hand arrow ( > ) indicated an Integer BASIC program was loading.
- The startup program would then proceed to load whatever commercial software was on the disk, or could present a file section menu system to the user.
Integer BASIC and Applesoft FP-BASIC support
The Apple II started out using a simplified BASIC interpreter known simply as Integer BASIC. It could only handle integer numbers ranging from -32768 to 32767 and only had built-in support for low-resolution graphics, but it was the first version of BASIC available and is what the earliest BASIC programs used.
Later, Apple commissioned Microsoft to develop a much more capable interpreter known as Applesoft BASIC, capable of handling floating-point real numbers with up to eight digits of precision and up to base 48 exponents, and with support for high-resolution graphics. While technically superior, Applesoft could not run older Integer BASIC programs, causing some users to resist upgrading to it.
DOS 3.3 was released when Applesoft BASIC was standard in ROM, so Apple designed it to support switching back and forth between the two BASIC interpreters. The DOS 3.3 System Master disk contained Integer BASIC on disk as a binary file which was loaded into RAM, and then the user could switch between the RAM and ROM BASICs by typing either FP or INT at the command-line prompt. DOS itself could switch automatically between interpreters when running a saved program. Applesoft FP BASIC programs were saved as type A files, while Integer BASIC programs were saved as type I files.
Decline of Apple DOS
After 1980, DOS entered into a state of stagnation, along with all other Apple II products, as Apple concentrated its efforts on the ill-fated Apple III computer and its SOS operating system. After the Apple III had been abandoned by the company, two more versions of Apple DOS, both still called DOS 3.3 but with some bug fixes and better support for the new Apple IIe model, were released in early and mid 1983.
Without third-party patches, Apple DOS could only read floppy disks running in a 5.25-inch Disk II disk drive and could not access any other media, such as hard disk drives, virtual RAM drives, or 3.5-inch floppy disk drives. The structure of DOS was such that it was not possible to have more than 400 KB available per drive without a major rewrite of almost all sections of the code; this was the main reason Apple abandoned DOS in 1983, when Apple DOS was entirely replaced by ProDOS.
ProDOS retained the 16-sector low-level format of DOS 3.3 for 5.25 inch disks, but introduced a new high-level format that was suitable for devices up to 32 MB in size; this made it suitable for hard disks and 3.5-inch floppies. All the Apple computers from the Apple II Plus onward can run both DOS 3.3 and ProDOS, the Apple II Plus requiring a "Language Card" memory expansion to use ProDOS; the Apple //e and later models had built-in Language Card hardware, and so could run ProDOS out of the box. ProDOS included software to copy files from Apple DOS disks. However many people who had no need for the improvements of ProDOS (and who did not like its much higher memory footprint) continued using Apple DOS or one of its clones long after 1983. The Apple convention of storing a bootable OS on every single floppy disk meant that commercial software could be used no matter what OS the user owned. A program called DOS.MASTER enables users to have multiple virtual DOS 3.3 partitions on a larger ProDOS volume, which allowed the use of many floppy-based DOS programs with a hard disk.
Apple stopped authorizing user groups to distribute DOS 3.3 many years ago, but granted one company, Syndicomm, an exclusive license to resell DOS 3.3.
Other versions
- The standard DOS 3.3 disk access speed was slow and inefficient. Significant speed improvements were possible by optimizing the 5.25" drive RWTS routines. ProntoDOS was one such accelerated version of DOS 3.3, sold by the company Beagle Bros.
External links
-
-
- — Apple II news and downloads
-
|
| |
|
|