Introduction to ProDOS In this book, we take a close look at the two standard disk operating systems for the Apple II family of computers: GS/OS (Apple IIgs/Operating System) and ProDOS 8 (Professional Disk Operating System, 8-bit version). GS/OS is the primary disk operating system for the Apple IIgs with ROM version 01 or higher. It does not run on any other model in the Apple II family. GS/OS takes advantage of the advanced features of the 16-bit 65816 microprocessor in the IIgs, such as the powerful instruction set and the ability to directly address 16Mb of memory. It is the successor to ProDOS 16, an interim IIgs operating system which Apple provided from the introduction of the IIgs in September 1986 to September 1988 For the sake of compatibility, GS/OS supports all ProDOS 16 commands, so older applications written to run under ProDOS 16 will also run properly under GS/OS. ProDOS 8 works with the Apple II Plus, IIe, and IIc. It also works on a IIgs running in IIe/IIc emulation mode, and you can switch between it and GS/OS if GS/OS was the operating system you booted from. ProDOS 8 is a fairly simple 8-bit operating system that works in the 6502 (or 65C02) microprocessor's 64K memory space only. Nearly every ProDOS 8 command has a GS/OS equivalent, but the method used to invoke the command is different, at least for assembly-language programs. GS/OS and ProDOS 8, like all operating systems, manage the flow of data to and from a storage medium, such as a 5.25- or 3.5-inch floppy disk or a hard disk. (GS/OS also manages character devices like the keyboard and the video hardware.) They do this by translating the high-level disk commands an application program uses into the low-level instructions needed to communicate directly with the disk drive controller. The operating system also defines the data structures used to store groups of related data, called files, on the disk; the directories where it stores the names of files (and other file attributes); the method it uses to keep track of what parts of the medium are in use; the method it uses to load itself from disk; and related matters. I GS/OS and ProDOS 8 work well with all disk devices Apple sells for the Apple II family: the Apple 5.25 Drive (and its predecessors), the HD20SC hard disk, the UniDisk 3.5 and the Apple 3.5 Drive, the Apple II Memory Expansion card (a RAMdisk device), and the AppleCD SC CD-ROM drive. ProDOS 8 expects the media used in these devices to be formatted for the ProDOS file system, but GS/OS understands foreign file systems as well (if you provide it with the file system translator files described below). The two standard drives for Apple II computers are the 5.25-inch drive (140K capacity) and the 3.5-inch drive (800K capacity). They interface to the system through a cable connected to a disk controller card plugged into one of the slots at the back of the Apple IIgs, IIe, or II Plus (slot 6 is recommended for 5.25-inch drives; slot 5 for 3.5-inch drives). On all but the first model of the slotless Apple IIc, the disk control- lers for both types of drives are built in. The IIgs also has a built-in disk drive port for both types of drives; you can use it instead of two separate plug-in controller cards. Apple's 20Mb hard disk, the HD20SC, works with all members of the Apple II family except the Apple IIc. Unlike a floppy drive, its magnetic medium cannot be removed from the drive unit. This device can access information much more quickly and hold much more of it than a 5.25- or 3.5-inch drive. It interfaces to the Apple II through a SCSI (Small Computer System Interface) controller card, one quite dif- ferent from the one used with floppy drives. APPLE II OPERATING SYSTEMS -A HISTORY When the Apple II debuted in 1977, the cassette recorder was the only mass-storage device available to its users. The reason was simple: The original Apple II had a built-in cassette port that made it convenient and simple to hook up a recorder, but an Apple-compatible disk drive and controller had yet to be invented. Working with normal cassette tape as a storage medium is no treat. The program storage and loading rate is very slow, and you're never sure if glitches on the tape have rendered the program unreadable until it's too late to recover. Furthermore, files on cassette tape cannot be named or automatically accessed by the Apple II, so you must keep meticulous written records of what programs are stored where so that you can properly position the tape by hand. Steve Wozniak, the inventor of the Apple II, was apparently as frustrated with cassette tape as everyone else. In the winter of 1977-1978, he designed a disk controller peripheral card for a standard disk drive unit that was later to be called the Disk II. At the same time, Bob Shepardson, and later Randy Wigginton, Dick Huston, and Rick Auricchio, were busy writing a disk operating system that would make it easy for programmers to create, organize, and access files on the 5.25-inch disk medium that the disk drive uses. Apple eventually shipped the Disk II, its controller card, and the first released version of the disk operating system (DOS 3.1) in the early summer of 1978. (The Disk II was later renamed the UniDisk, then the Apple 5.25 Drive.) This was probably the 2 An Introduction to GS/OS and ProDOS 8 most important event in the early history of Apple because it meant, for the first time, useful business software could be written for the Apple II. Such software needs to create and manipulate large database files quickly and easily, a feat that would be next to impossible if cassette tapes were used instead of disks. Several changes were made to DOS 3.1 in the months following its initial release to fix the inevitable bugs that wriggled to the surface. DOS finally stabilized at version 3.2.1 by mid-1979. This early version of DOS formatted disks with 35 data tracks and with 13 256-byte data sectors per track (for a total of 113.75K of storage, where 1K = 1024 bytes). In fact, the program in ROM on the disk controller card could start up (or boot) only disks using this specific 13-sector format. Apple also released its Pascal operating system in 1979. This system manages files quite differently from either DOS 3.x or ProDOS. To transfer a Pascal textfile to a DOS disk (and vice versa), you can use utility programs available from commercial sources and user groups. Apple upgraded DOS 3.2.1 substantially in 1980 to support the new 16-sector-- per-track formatting scheme used by Apple Pascal. The result was DOS 3.3, a version still current when Apple released ProDOS 8 in early 1984. The formatting change also forced a change in the ROM boot program on the disk controller card. The main advantage of switching to the new formatting scheme was that disks could hold an additional 16.25K of information (for a total of 140K). The main disadvantage was that DOS 3.3 could not read files directly from a DOS 3.2.1-formatted disk (and DOS 3.2.1 disks could not be directly booted). Fortunately, Apple supplied a program called MUFFIN for transferring files from the old disk format to the new one and another program called BOOT13 for booting DOS 3.2.1 disks with a 16-sector drive controller. Apple first released ProDOS 8, then called simply ProDOS, in January 1984. It runs on any Apple IIe, Apple IIc, or Apple IIgs or on an Apple II Plus with a 16K memory card installed in peripheral slot zero. It also runs on the original Apple II with a 16K memory card if the Applesoft language, not the Integer BASIC language, is installed in ROM. With the release of ProDOS 8, Apple served notice that it would no longer release new software products that use DOS 3.3 and urged independent software developers to do the same. Nevertheless, DOS 3.3 remains a popular oper- ating system, particularly among developers of educational software, and new pro- grams that use it are still quite common. A ProDOS 8-compatible controller card for the 5Mb ProFile hard disk that Apple had released a couple of years earlier for use with its Apple III system also came out in January 1984. On bootup, ProDOS 8 automatically recognizes the presence of the ProFile and interacts with it just as if it were another 5.25-inch disk device (except that ProDOS 8 knows the ProFile has a much greater storage capacity). The internal structure of the ProDOS file system is such that it can easily deal with even higher- capacity devices; it supports a volume size of up to 32Mb. Apple later replaced the ProFile with the 20Mb HD20SC hard disk, a Small Computer Systems Interface (SCSI) device. It connects to the system through the Apple II SCSI interface card. Apple II Operating Systems - A History 3 In September 1985, the UniDisk 3.5 drive made its first appearance. Its medium is a 3.5-inch, removable, hard-shell disk with a storage capacity of 800K. ProDOS 8 automatically recognizes its controller card on bootup, so there is no need to install a special driver. (Apple later began shipping a version of the IIc with a built-in controller for the UniDisk 3.5.) Apple also released an expansion slot Apple II Memory Expansion card, which ProDOS 8 recognizes as a RAMdisk on bootup. Apple announced the Apple IIgs in September 1986. At this time, Apple renamed the original ProDOS as ProDOS 8 and released ProDOS 16, an operating system specifically for the IIgs. Although ProDOS 16 formats disks and stores files on disk in the same way as ProDOS 8 (meaning the two can co-exist on one disk), they are incompatible at the programming level. Apple released ProDOS 16 to take advantage of the full 16Mb memory space the 65816 uses; ProDOS 8 works in a minimal 64K memory space only. With the IIgs, came the Apple 3.5 Drive, another drive that uses 800K, 3.5-inch, hard-shell disks. The difference between it and the UniDisk 3.5 is that it doesn't have the intelligent processor built in to the UniDisk 3.5, and it works on the IIgs only. Another version of the IIc debuted in September 1986. This one has a connector you can attach a memory expansion card to. Like the Apple II Memory Expansion card, ProDOS 8 recognizes this card as a RAMdisk. In September 1988, Apple began providing GS/OS, a new Apple IIgs operating system intended to replace ProDOS 16. Since GS/OS understands all ProDOS 16 commands, all ProDOS 16-based programs will work just fine under GS/OS. But GS/OS also supports a new set of operating system commands that is much more powerful than the ProDOS 16 set. One important new feature of GS/OS is that it is can access disks formatted for the standard ProDOS file system and disks formatted for foreign file systems like High Sierra (for CD-ROMs), HFS (used by the Macin- tosh), and MS-DOS. Access to foreign operating systems is enabled by putting file system translator (FST) modules on the GS/OS system disk. In the initial release of GS/OS, Apple provided FSTs for the ProDOS and High Sierra file systems. Another model of the IIc, the Apple IIc Plus, also came out in September 1988. It features a built-in 3.5-inch drive that works with ProDOS 8. Early versions of ProDOS 8 suffered from several minor but annoying bugs that were removed in later versions. As of this writing, the current version is 1.7. GS/OS, a much more complex operating system, is not now nearly as stable as ProDOS 8. Apple releases new versions about twice a year. COMPARING PRODOS 8 WITH DOS 3.3 DOS 3.3 is made up of two main modules: the I/O (input/output) driver, which commu- nicates directly with a 5.25-inch disk controller, and the Applesoft command interpreter, which parses and executes the Applesoft disk commands that DOS 3.3 provides (OPEN, READ, CATALOG, and so on). The equivalent modules in ProDOS 8 are split into two program files called PRODOS (the I/O driver) and BASIC.SYSTEM (the Applesoft command interpreter). On many application disks, PRODOS automatically loads 4 An Introduction to GS/OS and ProDOS 8 BASIC.SYSTEM when the disk starts up. Thus it is necessary to compare DOS 3.3 with the PRODOS-BASIC.SYSTEM combination and not simply with PRODOS proper. Table 1-1 gives short descriptions of the Applesoft disk commands that BASIC.SYSTEM and DOS 3.3 provide. Most of these commands are available in both environments, but some are unique to one or the other. In general, the BASIC.SYSTEM versions of the duplicated commands are more powerful than their DOS 3.3 counterparts because they support more command parameters. (We review these parameters in Chapter 5.) Moreover, some commands behave slightly differently in one system from how they behave in the other. Not surprisingly, the more powerful PRODOS-BASIC.SYSTEM environment oc- cupies a lot more memory space than DOS 3.3 does; in fact, it uses almost twice as much space. Fortunately, most of ProDOS 8 resides in a 16K bank-switched RAM space that does not conflict with the space the Applesoft interpreter uses. This space is built in to an Apple IIe, IIc, and IIgs and can be added to an Apple II or Apple II Plus by installing a 16K memory card in slot zero. Two side effects of the use of this space by ProDOS 8 are that ProDOS 8 cannot function with a program that uses the memory card for data storage or with Integer BASIC, the original version of Apple BASIC. In a DOS 3.3 environment, Integer BASIC loads into the same bank-switched RAM area ProDOS 8 uses and then is selected by throwing a special software- controlled switch. The other major difference between DOS 3.3 and BASIC.SYSTEM is in the handling of file buffers. A file buffer is a memory area an open file uses; it holds the data contained in the active part of the file as well as information defining the location of the file on the disk. When DOS 3.3 first starts up, it automatically sets up three such buffers; a different number (from 1 to 16) can be reserved using a command called MAXFILES. The DOS 3.3 file buffers are each 595 bytes long and are stored between the top of the Applesoft program space (this address is stored at $73/$74 and is called HIMEM) and the start of the DOS 3.3 code (at $9D00). ProDOS 8, on the other hand, initially sets up no file buffers; it dynamically allocates and de-allocates file buffers as files are opened and closed. When a file is opened, ProDOS 8 lowers HIMEM by 1024 bytes and assigns the buffer to the 1024-byte space beginning at HIMEM + 1024. When a file is closed, the file buffers below its own are repositioned, and then HIMEM is raised by 1024 bytes. (A total of eight files can be open simultaneously.) Because ProDOS 8 uses this dynamic space allocation method, it is not possible to use the DOS 3.3 technique of reserving a safe space for an assembly-language program by lowering HIMEM and storing the pro- gram between the current and previous HIMEMs. But there is an alternative method for freeing up space above HIMEM, and we examine it in Chapter 5. Important Features of ProDOS 8 and BASIC.SYSTEM A PRODOS-BASIC.SYSTEM environment supports several useful features that im- prove program execution speed and permit easy integration of non-Apple devices into the system. Here are some of the more important features. Comparing ProDOS 8 with DOS 3.3 5 Table 1-1 Comparing the BASIC.SYSTEM and DOS 3.3 Applesoft disk commands APPEND Opens a file and prepares to add data to it Yes Yes BLOAD Loads a file (usually binary) Yes Yes BRUN Loads and executes an assembly-language program that is in a binary file Yes Yes BSAVE Saves a file (usually binary) Yes Yes CATALOG Lists all the files on the medium (long form) Yes Yes CLOSE DELETE EXEC IN# LOAD LOCK NOMON OPEN POSITION PR# READ RENAME RUN SAVE UNLOCK VERIFY WRITE Closes a file Deletes a file Executes commands from a textfile Redirects character input Loads an Applesoft program Locks a file [Permitted but ignored under ProDOS 8] Opens a file Prepares to read from or write to a specific position in the file Redirects character output Reads from a file Renames a file Loads and executes an Applesoft program (or, if no filename is specified, executes the program in memory) Saves an Applesoft program Unlocks a file Checks for the existence of a file; if no filename is specified, displays a copyright notice Writes to a file 6 An Introduction to GS/OS and Pro DOS 8 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes YesTable 1-1 Continued - (dash) Executes an Applesoft, binary, text, or system file BYE Transfers control to another system program CAT Lists the files on the medium (short form) CHAIN Transfers control to another Applesoft program while maintaining the current variables CREATE Creates a file (usually a directory file) FLUSH Writes the contents of a file buffer to the medium FRE Performs Applesoft garbage collection PREFIX Sets up the name of the active directory RESTORE Restores Applesoft variables from a file STORE Saves Applesoft variables to a file FP Initializes Applesoft mode INIT Formats a disk INT Initializes Integer BASIC mode MAXFILES Creates space for file buffers MON Enables the display of DOS operations Yes No Yes No Yes No Yes Noa Yes No Yes No Yes Nob Yes No Yes No Yes No No Yes Noc Yes No Yes No Yes No Yes NOTES: you can chain Applesoft programs under DOS 3.3 by loading and calling a subroutine called CHAIN that is stored on the DOS 3.3 master disk. byou can use the Applesoft FRE command to garbage-collect under DOS 3.3 (and ProDOS 8). It executes much more slowly than the corresponding ProDOS 8 command, however. Under ProDOS 8, you format a disk using a separate program on the ProDOS 8 master disk (either Filer or System Utilities). Machine Language Interface. Probably the most important feature of ProDOS 8 is the special disk command interpreter, called the machine language interface (MLI), which allows easy access to files using assembly-language programming techniques. DOS 3.3 has no such interface and is very cumbersome to deal with at this level. The Comparing ProDOS 8 with DOS 3.3 7 MLI commands perform such standard file-handling chores as opening, reading, writing, and closing. The calling parameters for each command have been carefully defined by Apple. We take a close look at the MLI in Chapter 4. Date-Stamping of Files. Whenever ProDOS 8 creates or writes to files, it reads the current time and date from a clock device (if one is installed in the system) and stores the information in the file's directory entry on disk. When the disk is cataloged, the time and date of creation and of last modification appears next to the filename. ProDOS 8 works with the built-in IIgs clock and clock cards that emulate the command set of the Thunderware Thunderclock. As we see in Chapter 8, it is possible to install clock drivers for other types of clock cards as well. Disk Controller Card and Device Driver Protocols. One annoying trait of DOS 3.3 is that it is very difficult to integrate foreign disk devices (non-Apple-brand hard disks, higher-density floppy disk drives, and so on) into the system. Not so with ProDOS 8. Apple has published a disk controller protocol recognized by ProDOS 8 that permits such devices to be automatically installed at bootup time. This protocol defines the addresses in the disk controller card ROM space at which information relating to the size of the volume, the characteristics of the volume, and the address of the disk driver subroutine responsible for performing disk I/O operations is stored. Apple has also defined how to pass parameters to a ProDOS 8 disk driver subroutine and how the driver returns error codes to the caller. We see how to write a disk driver subroutine in Chapter 7. Improved Interrupt Handling. In Chapter 6, we see that ProDOS 8 automatically installs its own internal interrupt-handling subroutine that takes control whenever an I/O device generates an active IRQ (interrupt request) signal. This subroutine will, in turn, call subroutines you can install to service such interrupts. This means it is very simple to integrate an interrupt subroutine even though another one may already be active. Hierarchical Directory Structure. Using ProDOS 8, it is possible to create several directories, each of which can contain several files, on one disk. This allows a common group of files to be conveniently arranged in one directory for easier access. The directories are organized so that each is contained within another (called the parent); the path of directories ultimately leads back to the root directory (also called the volume directory). The root directory is the one created and named when the disk is first formatted. We analyze the hierarchical structure of directories in Chapter 2. /RAM Disk Device. The Apple IIgs, Apple IIc, and Apple IIe (with an extended 80-column text card) have 64K of auxiliary memory in addition to the 64K of main memory normally used for program storage. ProDOS 8 uses this memory space for file storage just as if it were storage space on a floppy disk or hard disk. The RAM medium 8 An Introduction to GS/OS and ProDOS 8 is called a RAMdisk. The main differences between using the RAMdisk and conven- tional disk media are that I/O operations execute much more quickly (after all, there are no mechanical parts to move about) and that the RAMdisk vanishes when you turn the power off. As we see in Chapter 2, each disk in the system has a name associated with it (the volume name). The volume name for the RAMdisk is /RAM. We examine the characteristics of/RAM in Chapter 7. We also examine the /RAM5 RAMdisk you can set up on an Apple IIgs. This RAMdisk uses memory on a card you put in the IIGS's special memory expansion slot. Extensibility of BASIC.SYSTEM. The BASIC.SYSTEM program defines a reason- ably simple method you can use to add more commands to the BASIC.SYSTEM command set. We see how to do this in Chapter 5. "Separation of Powers." Unlike DOS 3.3, the low-level ProDOS 8 command inter- preter that performs all fundamental disk I/O operations is not mixed with the BASIC.SYSTEM interpreter that provides the set of "English" disk commands used in an Applesoft program. This means if you wish to write another language interpreter, or a 100 percent assembly-language program, you can save about 12K of memory space by loading it instead of BASIC.SYSTEM. the Intelligent Run Command. The "dash" command is a BASIC.SYSTEM com- mand very popular with people who do not like to type. It executes either an Applesoft program file (just as RUN does), a binary file (BRUN), or a textfile (EXEC) by automatically determining what type of file has been specified and then performing the steps needed to execute such a file. Dash can also execute system program files like BASIC.SYSTEM. (See Chapter 5 for a description of system programs. Briefly, a system program is a standalone assembly-language program that defines a program- ming environment or one that performs a specific function without relying on the presence of another system program.) Useful Parameters. Many BASIC.SYSTEM commands support useful parameters that allow greater control (than possible with DOS 3.3) over how they are to be executed. For example, you can use the ,@# suffix (where # represents a line number) with the BASIC.SYSTEM RUN command to load a program and then run it beginning at any line number. Moreover, you can use the ,E# suffix (where # represents a memory address) to specify an ending address when using a binary file command (BLOAD and BSAVE). You can also use a ,Ttype suffix with BLOAD or BSAVE to work with any type of file other than standard BIN (binary) files. (type is the three-character mnemonic for the file type: BAS for BASIC, BIN for binary, TXT for text, and so on.) One other useful new parameter is ,F#; when reading a textfile, use it to skip over a specified number of fields (a field is a group of characters followed by a carriage return). We discuss parameters recognized by BASIC.SYSTEM in Chapter 5. Comparing ProDOS 8 with DOS 3.3 9 Speed. ProDOS 8 performs disk I/O operations on a 5.25-inch disk at the rate of about 8K bytes per second. This is significantly faster than the DOS 3.3 rate of about 1K bytes per second. Furthermore, BASIC.SYSTEM includes a version of the FRE command that garbage-collects Applesoft string variables much faster than the Apple- soft command of the same name; BASIC.SYSTEM also garbage-collects automatically, before the slow Applesoft routine has a chance to do so. With BASIC.SYSTEM, garbage collection never takes more than a few seconds, whereas under DOS 3.3, it can take several minutes. (See Chapter 4 of Inside the Apple IIe for a description of the garbage collection process.) File Size and Volume Size. ProDOS 8 can deal with files that hold up to 16Mb and with block-structured (disklike) devices that hold up to 32Mb of information. DOS 3.3 volumes cannot exceed 400K. COMPARING GS/OS WITH PRODOS 8 The fundamental difference between GS/OS and ProDOS 8 is, of course, that GS/OS works on the Apple IIgs only. This is because GS/OS is written in 65816 assembly language, and it uses IIgs-specific tool sets like the Memory Manager and the System Loader. Although most GS/OS commands have ProDOS 8 equivalents, several unique commands make GS/OS a much richer programming environment. Listed below are the most important differences between the GS/OS and ProDOS 8 programming environments. 1. A GS/OS application can call GS/OS commands from anywhere within the 16Mb memory space of the 65816. A ProDOS 8 application can call ProDOS 8 com- mands from the first 64K of memory only. 2. GS/OS applications are stored in relocatable load files, meaning they can be loaded and run at any memory location. ProDOS 8 applications are simple binary images of program code, so they generally run at only one memory location. (It is possible to write relocatable ProDOS 8 applications, but it makes programming so difficult that most programmers don't bother trying.) 3. GS/OS applications use the Apple IIgs Memory Manager tool set to ensure they won't use memory areas already in use by other system resources. ProDOS 8 applications are responsible for their own memory management, so programmers must be aware of what areas ProDOS 8 occupies. 4. GS/OS has 33 pathname prefixes that can be referred to by special shorthand names like 1/ or 28/. ProDOS 8 has only one pathname prefix (called the default prefix). 5. GS/OS identifies disk devices by name, whereas ProDOS 8 identifies them by slot and drive number. 10 An Introduction to GS/OS and ProDOS 8 6. GS/OS has a built-in disk-formatting command (Format) and a built-in cataloging command (GetDirEntry). ProDOS 8 does not. 7. GS/OS has a command that lets you move files from one directory to another (ChangePath). ProDOS 8 does not. 8. Under GS/OS, an application can determine its own name with the GetName command. ProDOS 8 has no similar command although an application can deduce its name by inspecting a pathname buffer. 9. GS/OS has an enhanced Quit command that an application can use to pass control directly to the system program that called it, to pass control to any specified system program, or to call another system program almost as if it were a subrou- tine. The ProDOS 8 QUIT command can pass control only to a ProDOS 8 program selector. 10. GS/OS can create and deal with extended files, but ProDOS 8 cannot. Extended files (sometimes called resource files) are made up of two logical parts: a data fork and a resource fork. The data fork generally contains application-specific data, and the resource fork generally contains a group of data structures, called resources, that define such things as icons, text strings, and alert box templates. 11. GS/OS uses file system translators (FSTs) to provide an application with transpar- ent access to disk volumes that use non-ProDOS file systems, such as High Sierra for CD-ROM or Macintosh HFS, as well as the ProDOS file system. ProDOS 8 only works with disks formatted for the ProDOS file system. 12. GS/OS lets an application access character-oriented devices, like the video screen, keyboard, modem, and printer, using the same types of commands you would use to access disk files. Under ProDOS 8, the application must use completely different techniques to access character-oriented devices, many of which require an understanding of the low-level hardware interface. 13. GS/OS accesses disks faster than ProDOS 8 because it uses disk-caching techniques and more efficient 65816 code. It can also format disks with a lower block interleave ratio (2:1 instead of 4:1), thus improving the effective data transfer speed. 14. GS/OS allows an unlimited number of open files and active volumes, and it imposes no limit on the number of devices per slot. ProDOS 8 allows only 8 open files, 14 active volumes, and 2 devices per slot. 15. GS/OS, because it uses file system translators, can access non-ProDOS volumes up to 2048Gb (gigabytes) in size and can deal with files up to 4096Mb long. ProDOS 8 volumes cannot exceed 32Mb, and files cannot be longer than 16Mb. 16. GS/OS does not come with a BASIC language interpreter equivalent to ProDOS 8's BASIC.SYSTEM program. Comparing GS/OS with Pro DOS 8 11