Apple IIgs #100
VersionVille

Revised by Matt Deatherage (May 1992)
Written by Matt Deatherage (January 1991)

This Technical Note is all there is to know about versions, version formats and version numbers on the Apple IIgs.

Changes since January 1991: Revised to include System Software 6.0.


Version Number Formats

There are three kinds of version numbers on the Apple IIgs. Two of the three are documented elsewhere but are repeated here for convenience.

System Tool Set Versions

The Apple IIgs system tools use a one-word version number. The high-order four bits of this word have special meaning. Bits 8-11 are the major version number and bits 0-7 are the minor version number. This is illustrated in Figure 1.


              +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
              | F| E| D| C| B| A| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
              +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
                |  |_____||   Major   |        Minor          |
                |     |   |  Release  |       Release         |
                |     |   |___________|_______________________|
                |     |
                |     +---- 1 = Special Features
                +---------- 1 = Prototype


                       Figure 1 - Toolbox Version Numbers

Note that this definition is different and supersedes the definition in the Apple IIgs Toolbox Reference for system tool sets. Previous documentation reserves only bit 15 as the prototype bit; this has been expanded. Bits 14-12 of user tool set version words have no special meaning; they are still part of the major release.

Note: When comparing the major and minor release version numbers to check the installed version of a system tool, mask off bits 15-12 first (for example, by using an AND #$0FFF instruction).

SmartPort or GS/OS Driver Versions

GS/OS drivers and SmartPort firmware drivers use an alternate one-word version number, described in Figure 2.


              +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
              | F| E| D| C| B| A| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
              +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
              |___________|_______________________|___________|
                  Major             Minor          $A = Alpha
                 Release           Release         $B = Beta
                                                   $E = Experimental
                                                   $0 = Final


            Figure 2 - GS/OS Driver And SmartPort Version Numbers

Apple IIgs Long Version Format

Long version format is a 32-bit (two-word) format similar to the standard Macintosh version numbering scheme defined in Macintosh Technical Note #189, Version Territory, except the four bytes are stored least significant byte first, as is standard on the Apple II, and the values of the stage are different. Figure 3 shows the format of a long version.


               High word
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|1F|1E|1D|1C|1B|1A|19|18|17|16|15|14|13|12|11|10| ...
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|     Major version     | Minor v.  | Bug vers. |
+-----------------------+-----------+-----------+
 Major version          |Minor      | Bug version
 (2 digits, BCD)        |version (1 | (2 digits, BCD)
 Example:               |digit, BCD)| Example:
 $25 = Version 25       |Example:   | $4 = Version
                        |$0 = Vers. | x.y.4
                         x.0
                                                  Low word
                            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
                        ... | F| E| D| C| B| A| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
                            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
                            | Stage  | Must be zero |     Release version   |
                            +--------+--------------+-----------------------+
                      Stage:         |              | Release version (2
                      001 = develop  |              | digits, BCD)
                      010 = alpha    |              | Example:
                      011 = beta     |              | Long version value of
                      100 = final    |              | $25048006 = Version
                      110 = release                   25.0.4f6

                        Figure 3 - Long Version Numbers

Long version format allows for bug versions, unlike toolbox versions. Also, you can do unsigned long comparisons of long versions to determine which revision is later.

Note: If the version stage is 101 (release), the release version must be zero. For example, you may not have version 25.0.4 release 16. "Release version" implies that the product is no longer under development and has no developmental version numbers.

System Version Numbers

The most important of the numerous version numbers in the system are the system tool version numbers. These numbers, passed to LoadTools, LoadOneTool or StartUpTools ensure that you're getting at least the version you want, or maybe a later one. This mechanism is your primary defense against old system software -- by requiring the latest tool versions in your application, you are notified by the Tool Locator early in your program if the system has the latest system software installed or not.

Note that ROM 1 and ROM 3 have different version numbers for seven tools under 5.0.4 -- QuickDraw II, the Scheduler, ADB, SANE, Integer Math, Text Tools and the List Manager. In each case, the ROM 01 version is lower and should be used in your LoadOneTool, LoadTools or StartUpTools calls. The current revision of Apple IIgs System Software is 6.0. Assuming a correct installation, requiring QuickDraw 3.7 in effect requires System Software 6.0, although you may check the system's rVersion resource in the system resource file if you require more detailed information about the system sovtware version.

System Tool Set Versions


Number     Tool                        ROM 1        ROM 3
1          Tool Locator                $0301        $0301
2          Memory Manager              $0302        $0302
3          Misc Tools                  $0302        $0302
4          QuickDraw II                $0307        $0307
5          Desk Manager                $0304        $0304
6          Event Manager               $0301        $0301
7          Scheduler                   $0300        $0300
8          Sound Tools                 $0303        $0303
9          ADB                         $0300        $0300
10         SANE                        $0300        $0300
11         Integer Math                $0300        $0300
12         Text Tools                  $0300        $0300
13         [used internally]           $0300        $0300
14         Window Manager              $0303        $0303
15         Menu Manager                $0303        $0303
16         Control Manager             $0303        $0303
17         [System Loader]             $0400        $0400
18         QuickDraw II Aux            $0304        $0304
19         Print Manager               $0301        $0301
20         Line Edit                   $0303        $0303
21         Dialog Manager              $0304        $0304
22         Scrap Manager               $0301        $0301
23         Standard File               $0303        $0303
25         Note Synthesizer            $0104        $0104
26         Note Sequencer              $0104        $0104
27         Font Manager                $0303        $0303
28         List Manager                $0303        $0303
29         ACE                         $0103        $0103
30         Resource Manager            $0102        $0102
32         MIDI Tools                  $0103        $0103
33         Video Overlay               $0103        $0103
34         Text Edit                   $0103        $0103
35         MIDI Synth                  $0100        $0100
38         Media Control               $0100        $0100

Toolbox Driver Version Numbers


Driver                                 Version
ImageWriter II                         4.2
ImageWriter LQ                         4.2
LaserWriter                            3.2
StyleWriter                            1.0
Epson                                  2.0
Printer Port Driver                    2.1
Modem Port Driver                      2.1
Parallel Card Port Driver              2.0
AppleTalk Port Driver                  3.0
Pioneer 4200 (MC)                      1.0
Pioneer 2000 (MC)                      1.0
Apple CD SC (MC)                       1.0

GS/OS Version Numbers


Component                              Version
GS/OS                                  4.1
ProDOS FST                             4.1
AppleShare FST                         4.0
High Sierra FST                        4.0
Character FST                          4.0
DOS 3.3 FST                            1.2
HFS FST                                1.0
Pascal FST                             1.0
AFP Driver                             4.0
Apple II RAMCard driver                1.0
AppleDisk 3.5 Driver                   5.3
AppleDisk 5.25 Driver                  2.5
AppleTalk Main Driver                  4.0
Console Driver                         3.2
RPM Driver                             4.0
SCSI CD Driver                         6.0
SCSI HD Driver                         6.0
SCSI Scanner Driver                    6.0
SCSI Tape Driver                       6.0
UniDisk 3.5 Driver                     3.0

Control Panel Version Numbers


CDev                                   Version
AppleShare                             2.0
Direct Connect Printer                 1.1
FolderPriv                             1.0
General                                2.0
Keyboard                               1.1
Media Control                          1.1
MIDI                                   1.0
Modem Port                             1.1
Monitor                                1.1
Network Printer Namer                  1.0
Network Printer Chooser                1.0
Network                                1.0
Printer Port                           1.1
RAM                                    1.1
SetStart                               1.0
Slots                                  1.2
Sound                                  2.0
Time                                   2.0

Further Reference


This and all of the other Apple II Technical Notes have been converted to HTML by Aaron Heiss as a public service to the Apple II community, with permission by Apple Computer, Inc. Any and all trademarks, registered and otherwise, are properties of their owners.