From: rgaros@bio.vu.nl (Rene G.A. Ros)
Subject: Suppl. Gestalt Selectors List 1.2 (repost)
Organization: VU Biology, Amsterdam, The Netherlands
Date: Tue, 29 Dec 1992 10:24:58 GMT

Supplemental Gestalt Selectors List 1.2 (repost)
=======================================

Last modified: November 30, 1992, 21:50 CET (GMT+1)

Supplemental to the selector codes listed in the Gestalt Chapter of
Inside Macintosh VI (IM VI), that is.
These can include selector codes installed by Apple's (system)
software or by software from third parties (your software?).
(NIM Operating System Utilities has been delayed from Winter 1992 to
June 1993, according to Addison-Wesley Holland).

I don't have all the documentation or knowledge and I don't want to.
I would like to see this list to become a combined effort by different
persons who have together access to a wide area of information.
This list may contain (educated) guesses and perhaps even false
information, so no guarantee is made about the contents.
You can use this information freely, but when you find information not
included in IM VI or in this list; please mail it me.
If you have additions, corrections, comments, suggestions, news about
available software, etc., please mail me. Please, also mention the
source you used.
For ways to contact me, see the end of this list.

This list is originally distributed in the following ways:
USENET newsgroup comp.sys.mac.programmer (c.s.m.p.)
I will post every new version of the list to c.s.m.p., but the last
version will be reposted once a month.

FTP-site
sumex-aim.stanford.edu
Every new version (except bug-release) is submitted to the info-mac
archives at sumex-aim.stanford.edu. (/info-mac/tech/gestalt-list-XX.txt)
It is also available on its mirror sites (e.g. in Europe: lth.se).

FINGER
You can also read this list by using finger to 'rgaros@bio.vu.nl'.
    Tip: 'finger rgaros@bio.vu.nl | more' or
         'finger rgaros@bio.vu.nl > filename'
My .plan file that you see when you do this, may be more up-to-date and
may include small corrections, or contains a preliminary version of the
next version to be published.

MAIL LIST
Every person on this mail list gets automatically an update by email whenever
there are some changes. If you want to join this mail list you need to send
me an email asking to be included. The same applies when you want to be
removed from the list.
This service is only possible to those who have an account on Internet or
any other network reachable from Internet. I can not provide mailing of
printed versions or on disk by normal surface mail.


CONTENTS
    # Changes
    # Definitions and Format
    # Gestalt Selector Codes & Responses
      =  Apple System Software
      =  Apple Additional Software
      =  Third Parties Software
    # Gestalt Selector Codes, Responses Unknown
      =  Apple System Software
      =  Apple Additional Software
      =  Third Parties Software
    # Abbreviations
    # Format version numbers
      =  4-byte words
      =  BCD
      =  INTEGER
    # AppleShare File & Print Server selector codes
    # Glue code
    # Sources
    # Related Software
    # Acknowledgements
    # Legal Stuff
      =  Notice of Liability
      =  Trademarks
      =  Distribution
    # Moderator


####Changes (since v1.1)
    Added selectors
      Apple System  : alis, fxfr, misc, term,
      Apple Add.    : arb 
      Third Parties : CKI3
    Added unknown
      Apple System  : OSType(7), OSType(13)
      Apple Add.    : 
      Third Parties : AP17, GtOp, gV00..gV04, LFnt, PBUf, PBUt, RQDC
    Changed
      Apple System  : atkv, conn, hdwr, mach, ppc , rsrc, tabl
      Apple Add.    : qtim
      Third Parties : YeHa
    Previously unknown
      Apple System  : ctbm, ctbu, sccr, sccw, vmbs
      Apple Add.    : strm
      Third Parties : ApoL (incl. complete description)

    Added "Glue Code" chapter about selectors 'glue-ed' by programming
      software, when the Gestalt Manager is not available. (Suggested
      by Marco Piovanelli).
    Marco also went hunting for the Gestalt Selector Table and found
      probably the correct meaning of the 'tabl' selector.
      Meanwhile he also found two unusual selectors, OSType(7) and
      OSType(13) ("Charlie's selectors" !? ;-) ) These are listed at
      the end of unknown Apple System Software selectors.
    Added "Legal Stuff" chapter (US legal system is famous :-) ).
    More entries in 'Related software'-chapter, including the location
      of related New Technical Notes on ftp.apple.com.
    Selectors 'dict' and 'tsmv' were incorrectly listed as known.
    Dave Radcliffe (Mac DTS, Author TN Apple) clarified the two
      contradictions in the previous version.
    Jeremy Roussak (Author Apollo ext) allowed including the chapter
      'Programmers' Information' from the Apollo 1.0 documentation.
    Victor Tan (Author SpeedyFinder7 cp) provided some remarks about
      the selector installed by SP7.

    And yes, when there are more 'Third Party'-selectors they will
    get their own, separate list.


####Definitions and Format
    Apple System Software
      Selectors installed by normal System Software.
      IM VI: "Apple reserves for its own use all four-character
              sequences consisting solely of lowercase letters and
              nonalphabetic ASCII characters".
    Apple Additional Software
      Selectors installed by additional software by Apple Inc.
      See also quote above.
    Third Parties Software
      Selectors installed by software from parties other than Apple Inc.
      IM VI: "If you have registered a creator string with Apple, you
              are strongly encouraged to use that sequence as your
              selector code".

    Format used to display information about selector code:

    |   ****'selector code' (Application [available in version])
    |       name (description, documentation) OR description
    |
    |       CONST declaration; {remark} *ref.number to source
    |
    |       contradiction:
    |         source A says "X"
    |         source B says "Y"

    If a selector code is installed by Apple software the entry also
    includes if it is in addition to or not listed in IM VI.
    The source reference number may also be used in other places than
    indicated above. It then applies to other parts of then entry.
    Some constant-names may not originate from official publications.
    Any response value described is what was found by others or myself on
    different machine(s) with its configuration.


####Gestalt Selector Codes & Responses
====Apple System Software
****'alis' (System [7.0])
    gestaltAliasMgrAttr (addition by AppleTalk Remote Access)

    gestaltAliasMgrSupportsRemoteAppletalk = 1; {supports Remote Access} *9
    See also remarks with 'qtim' selector.
****'atkv' (System [since 7.0, AT 56])
    gestaltATalkVersion *4 (not listed)
    Returns AppleTalk version in 4-byte words.
    This is different from 'atlk' !
    With the release of the System 7 Tuner product, AppleTalk will not be
    loaded at startup, if prior to the previous shutdown AppleTalk was
    turned off in the Chooser. Under this circumstance, the 'atkv' selector
    is not available. If the 'atkv' selector is not available under System 7,
    this is an indicator that AppleTalk cannot be turned on without doing so
    in the Chooser and rebooting the system. *4

    gestaltATalkVersion = 'atkv'; *3/5
****'atlk' (System [since 6.0.4])
    gestaltAppleTalkVersion (addition)
    Returns the version of the .MPP driver in INTEGER.

    LAPMgrExists := (AppleTalkVersion >= 53); *4
****'conn' (System, CTB installed [since 7.0])
    gestaltConnMgrAttr (addition)
    Under System 6, this Gestalt selector isn't implemented when the
    Communications Toolbox is installed (Michael Hecht).

    additional responses exist but unknown (bit 2 & 3).
****'ctbm' (System, CTB installed)
    gestaltCTBManagersAttr (not listed)
    Communications Toolbox Managers, bitmask of which managers are present.

    gestaltCTBManagersAttr = 'ctbm'; *7
****'ctbu' (System, CTB installed)
    gestaltCTBUtilsAttr (not listed)
    Communications Toolbox Utilities Attr

    gestaltCTBUtilsAttr    = 'ctbu'; *7
    gestaltCTBUtilsPresent = 0;      *7
****'eajt' (Easy Access cp [since 7.0])
    gestaltEasyAccessJTable (not listed)
    Returns the base address of the Easy Access jump-trap table.

    gestaltEasyAccessJTable = 'eajt'; *3
****'flag' (Network Extension ext [since System 7.0 *4])
    gestaltFlagshipAttr (not listed)

    gestaltFlagshipAttr       = 'flag'; *3
    gestaltFlagshipPresent    = 0;      *3
    gestaltFlagshipRegistered = 1;      *3
****'fpu ' (System [since 6.0.4])
    gestaltFPUType (addition)

    gestal68040FPU = 3; *2
****'fs  ' (System)
    gestaltFSAttr (addition)

    gestaltHasFileSystemManager = 2; *2
****'font' (System [since 7.0])
    gestaltFontMgrAttr (addition)

    additional System 7.1 responses exist but unknown.
****'fxfr' (System [since 7.0])
    gestaltFXfrMgrAttr (addition)

    gestaltFXfrMgrErrorString = 1; *7
****'hdwr' (System [since 6.0.4])
    gestaltHardwareAttr (additions)

    gestaltHasRBV          =  2; {RBV}                     *3
    gestaltHasOSS          =  5; {OSS}                     *3
    gestaltHasSCSIDMA      =  6; {53C80 SCSI DMA}          *3
    gestaltHasSWIMIOP      =  8; {SWIM IOP}                *3
    gestaltHasSCCIOP       =  9; {SCC IOP}                 *3
    gestaltHasFitch        = 10; {Fitch memory Controller} *8
    gestaltHasIWM          = 11; {IWM}                     *3
    gestaltHasPWM          = 12; {PWM disk speed buffer}   *8
    gestaltHasRAMSndBuff   = 13; {RAM-based sound buffer}  *8
    gestaltHasVideoDAConv  = 14; {Video D/A Converter}     *8
    gestaltHasPGC          = 15; {PGC (parity control)}    *8
    gestaltHasSoftPowerOff = 19;                           *2
    gestaltHasSonic        = 20; {Sonic}                   *3
    gestaltHasSCSI961      = 21; {Int. 53C96 SCSI}         *1
    gestaltHasSCSI962      = 22; {Ext. 53C96 SCSI}         *1
    gestaltHasDAFBVideo    = 23; {DAFB Video}              *3
    See for more information the TN "M.OV.GestaltSysenvirons".
****'kbd ' (System [since 6.0.4])
    gestaltKeyboardType (additions)

    gestaltPwrBookADBKbd    = 12; {PowerBook ADB Keyboard}     *1
    gestaltPwrBookISOADBKbd = 13; {PowerBook ISO ADB Keyboard} *1
****'mach' (System [since 6.0.4])
    gestaltMachineType (additions)

    gestaltQuadra900    = 20; {Macintosh Quadra 900}     *1
    gestaltPowerBook170 = 21; {Macintosh PowerBook 170}  *1
    gestaltQuadra700    = 22; {Macintosh Quadra 700}     *1
    gestaltClassicII    = 23; {Macintosh Classic II}     *1
    gestaltPowerBook100 = 24; {Macintosh PowerBook 100}  *1
    gestaltPowerBook140 = 25; {Macintosh PowerBook 140}  *1
    gestaltQuadra950    = 26; {Macintosh Quadra 950}     *1
    gestaltPowerBook210 = 29; {Macintosh PowerBook 210}
    gestaltPowerBook230 = 32; {Macintosh PowerBook 230}
    gestaltPowerBook180 = 33; {Macintosh PowerBook 180}
    gestaltPowerBook160 = 34; {Macintosh PowerBook 160}
    gestaltMacLCII      = 37; {Macintosh LC II}
    gestaltMacIIvi      = 44; {Macintosh IIvi}
    gestaltPerforma600  = 45; {Macintosh Performa 600}
    gestaltMacIIvx      = 48; {Macintosh IIvx}
    gestaltPowerBook145 = 54; {Macintosh PowerBook 145}

    Exceptions with systems prior to System 7.1:
    gestaltMacLCII      = 19; {Macintosh LC & LC II}
    gestaltPowerBook145 = 25; {Macintosh PowerBook 140 & 145}
****'misc' (System [since 6.0.5])
    gestaltMiscAttr (addition)

    gestaltBootGlobals = 1; {Boot Globals} *8
****'mmu ' (System [since 6.0.4])
    gestaltMMUType (addition)

    gestalt68040MMU = 4; {68040 built-in} *2
****'ppc ' (System [since 7.0])
    gestaltPPCToolboxAttr (addition)
    The first thing that is confusing is that, unlike other selectors
    returning attributes, the responses are not bit values, but bit masks.
    This means you simply AND the value with the response to test the bit.
    The second thing that is confusing is how to interpret
        gestaltPPCToolboxPresent = 0x0000.
    What this means is that if the PPC toolbox is present, but has not
    been initialized (by calling PPCInit), then gestaltPPCToolboxAttr
    returns 0x0000. In reality, PPCInit gets called by the Process
    Manager before any applications get launched, so no applications
    will actually see this response. (Dave Radcliffe)

    gestaltPPCToolboxAttr      = 'ppc ';
    gestaltPPCToolboxPresent   = 0x0000, {Requires PPCInit to be called}
    gestaltPPCSupportsIncoming = 0x0001; {Deny incoming net requests}
    gestaltPPCSupportsOutGoing = 0x0002; {Deny outgoing net requests}
    gestaltPPCSupportsRealTime = 0x1000; {Supports real-time delivery}
****'proc' (System [since 6.0.4])
    gestaltProcessorType (addition)

    gestalt68040 = 5; *2
****'qdrw' (System [since 7.0])
    gestaltQuickDrawFeaturesAttr (not listed)
    There is a bug in the 'qdrw' selector that causes it to report
    that Color QuickDraw is always present, even on machines that
    don't support it.
    Apple has acknowledged this bug on AppleLink. (Chris Wysocki)
    Use SysEnvirons instead or try this:
      gHasColorQuickDraw := (Gestalt(gestaltQuickDrawVersion,
        qdVersion) = noErr) & (qdVersion >= gestaltQuickDraw8Bit);

    gestaltQuickDrawFeaturesAttr = 'qdrw'; *2
    gestaltHasColor              = 0;      *2
    gestaltHasDeepGWorlds        = 1;      *2
    gestaltHasDirectPixMaps      = 2;      *2
    gestaltHasGrayishTextOr      = 3;      *2]
****'rsrc' (System [should work since 7.0?])
    gestaltResourceMgrAttr (addition)
    Under System 7, bit 0 that tells if you have partial resource
    support doesn't work right. This selector is undefined under
    System 7.0 and 7.0.1 even though the partial resource calls are
    available. (Michael Hecht, Quinn)

    additional response exist but unknown (bit 1).
****'sccr' (System [6.0.4, discontinued])
    gestaltSCCReadPortsAddr (not listed)
    Returns the address of SCC read ports.

    gestaltSCCReadPortsAddr = 'sccr';
****'sccw' (System [6.0.4, discontinued])
    gestaltSCCWritePortsAddr (not listed)
    Returns the address of SCC write ports.

    gestaltSCCWritePortsAddr = 'sccw';
****'sysv' (System [since 6.0.4])
    gestaltSystemVersion (listed in IM VI; question)
    Returns the version number of currently active System file in BCD.
    Is it correct system 6.0.8 returns 0x0607? Can you determine if it
    is actually 6.0.8 in another way?
****'tabl' (System [since 6.0.4])
    gestaltSelectorTable (not listed)
    Returns a handle to the Gestalt selector table itself.
    The Gestalt selector table is kept in a resizable block in the system
    heap. The last item in the table is a dummy entry (INVALID), marked by
    a selector OSType(MaxLongInt). (Marco Piovanelli, he has also some
    snippet Pascal code to list all selectors)

    gestaltSelectorTable = 'tabl';
****'term' (System [7.1?])
    gestaltTermMgrAttr (addition)

    gestaltTermMgrErrorString = 1; *7
****'via1' (System [6.0.4, discontinued])
    gestaltVIA1Addr (not listed)
    Returns the address of VIA 1.

    gestaltVIA1Addr = 'via1';
****'via2' (System [6.0.4, discontinued])
    gestaltVIA2Addr (not listed)
    Returns the address of VIA 2.

    gestaltVIA2Addr = 'via1';
****'vmbs' (System, VM on [since 7.0])
    gestaltVMBackingStoreRef (not listed)
    Returns the ioRefNum of the VM storage file.

    gestaltVMBackingStoreRef = 'vmbs';
****'wma.' (System [since 7.0])
    gestaltResponderAttr (Workstation Management Agent aka Responder,
                          not listed)

    gestaltResponderAttr    = 'wma.';
    gestaltResponderPresent = 0;
****'xttt' (System [since 6.0.8])
    gestaltExtToolboxTable (not listed)
    Returns the base address of the Extended Toolbox trap table.

    gestaltExtToolboxTable = 'xttt';


====Apple Additional Software
****'admn' (AppleShare Admin appl [since 3.0])
    gestaltASAdminAttr

    gestaltASAdminAttr    = 'admn';
    gestaltASAdminPresent = 0;
****'arb ' (AppleTalk Remote Access [1.0])
    gestaltArbitorAttr (Serial Port Arbitration) *9

    gestaltArbitorAttr = 'arb ';
    gestaltSerialArbitrationExists = 0; {Serial Port Arbitration installed}
****'asps' (AppleShare Print Server appl [since 3.0])
    gestaltASPrintServerAttr

    gestaltASPrintServerAttr    = 'asps';
    gestaltASPrintServerPresent = 0;
****'aucd' (Audio CD Access ext [since 4.0])
    gestaltAudioCDAccessVersion (CD-ROM Software 4.0)
    Returns Audio CD Access version in BCD.
    Version 4.0.1 of the CD-ROM Software will still return 0x0400.

    gestaltAudioCDAccessVersion = 'aucd';
****'font' (TrueType INIT for System 6.x)
    This selector is also installed by the TT INIT.
    See for details IM VI.
****'hgfd' (AppleShare File Server appl [since 3.0])
    gestaltASFileServerAttr

    gestaltASFileServerAttr    = 'hgfd';
    gestaltASFileServerPresent = 0;
****'hscd' (High Sierra File Access ext [since 4.0])
    gestaltHighSierraFAVersion (CD-ROM Software 4.0)
    Returns High Sierra File Access version in BCD.
    Version 4.0.1 of the CD-ROM Software will still return 0x0400.

    gestaltHighSierraFAVersion = 'hscd';
****'mtcp' (MacTCP cp [since 1.1])
    gestaltMacTCPAttr
    0x0000 is returned if MacTCP is present but unopened, *5
    0x0001 is returned for MacTCP when it is opened.      *5

    gestaltMacTCPAttr   = 'mtcp';
    gestaltMacTCPOpened = 0; *5
    I have seen this selector returning 0x0002 on a PB140 with System 7.1,
    unknown MacTCP version.
****'qtim' (QuickTime ext [since 1.0])
    gestaltQuickTimeVersion
    Returns QuickTime version in 4-byte words.
    If you install QuickTime under System 6, a major portion of the Alias
    Manager and FSSpec support is also added. But, QT doesn't implement
    the Gestalt selectors because the implementation is not complete. You
    must check for either Alias Mgr or QuickTime. (Michael Hecht)

    gestaltQuickTimeVersion = 'qtim';
****'strm' (AppleTalk Remote Access [1.0])
    gestaltRemoteAccessAttr *9

    gestaltRemoteAccessAttr   = 'strm';
    gestaltRemoteAccessExists = 0; {RA Connection Interface is available)
****'ufox' (Foreign File Access ext [since 4.0])
    gestaltForeignFAVersion (CD-ROM Software 4.0)
    Returns Foreign File Access version in BCD.
    Version 4.0.1 of the CD-ROM Software will still return 0x0400.

    gestaltForeignFAVersion = 'ufox';

====Third Parties Software
****'ApoL' (Apollo ext [since 1.0])
    gestaltApolloTable
    Returns a handle to an instance of the following structure (described
    in C):

    struct
     {  long version;          // same as first 4 bytes of 'vers' resource
        short attr;            // attribute bits
        Boolean (*Control)(Boolean)   // control function
      };

    See for more information the Programmers' Information chapter in the
    Apollo 1.0 documentation. (Jeremy Roussak)

    gestaltApolloTable = 'ApoL';
****'CKI3' (AETracker cp [since 3.0])
    gestaltAETrackerAddr
    This selector returns a pointer to the external interface routine for
    AETracker, details of which are in the AETracker interface guide.
    (C.K. Haun)

    gestaltAETrackerAddr = 'CKI3';
****'SLip' (StuffIt SpaceSaver ext)
    gestaltSItSpaceSaverAddr
    Returns the address of the SpaceSaver "command module" which allows
    developers to access all the functions of SS. (Leonard Rosenthol)

    gestaltSItSpaceSaverAddr = 'SLip';


####Gestalt Selector Codes, Responses Unknown
====Apple System Software
****'BSDa' (CloseView cp)
    (developed by Berkeley Systems, Inc.)
****'bugz' (System (Tuna Helper INIT rsrc) [since 7.0]/Tune-up ext)
    IIx (701/111): $02f7f33f, PB140 (71): $1ffffaff
****'dict' (System [since 7.1])
    gestaltDictionaryMgrAttr/Version? (Dictionary Manager, not listed)

    gestaltDictionaryMgr???     = 'dict';
    PB140 (71): $00000001
****'icon' (System? [?])
    Icon Utilities Attr?
****'nubs' (System [6.0.4, 6.0.5, 6.0.7, discontinued])
    gestaltNuBusCount?
    Returns count of NuBus slots?
    Plus: $00000000, IIx: $00000006
****'rbv ' (System [6.0.4, discontinued])
    Plus: $00000000, IIx: -
    (Installed but unknown response on MacIIx)
****'slot' (System [6.0.4, 6.0.5, discontinued])
    Plus: $00000000, IIx: $00000003
****'slt1' (System [6.0.4, 6.0.5, discontinued])
    Returns first slot# in hexadecimal?
    Plus: -, IIx: $00000009
    (Installed but unknown response on MacPlus)
****'tsmv' (System [since 7.1])
    gestaltTextServicesMgrVersion? (not listed)

    gestaltTextServicesMgrVersion = 'tsmv';
    new System 7.1 response exists but unknown
****'vmcl' (System, VM on [since 7.0])
****OSType(7) (System [since 6.0.4])
    Returns LongInt('carl') and a result code of noErr.
****OSType(13) (System [since 6.0.4])
    Returns LongInt('bbmc') and a result code of noErr.

====Apple Additional Software
****'cpnt' (QuickTime ext [since 1.0])
    gestaltComponentMgrAttr/Version? (Component Manager)

    gestaltComponentMgr???     = 'cpnt';
    gestaltComponentMgrPresent = 0; (guess)
****'icmp' (QuickTime ext [since 1.0])
    gestaltCompressionMgrAttr (ImageCompression Manager) *6

    gestaltCompressionMgrAttr = 'icmp'; *6
****'kpcd' (Apple Photo Access ext [since 1.0])
    gestaltApplePhotoAccess??? (CD-ROM Software 4.0)
    Response unknown ($fffffff7).

    gestaltApplePhotoAccess??? = 'kpcd';
****'slnk' (AppleTalk Remote Access MNPlink? [1.0])

====Third Parties Software
    Especially the Third Party selectors may change with every new release
    and are therefore only listed in the 'known selectors' chapter when
    the author has described the structure in the documentation or by
    mail to me.
****'AP17' (?)
****'AzNe' (NameView cp)
****'ESOC' (Serial of Champions ext)
****'GtOp' (?)
****'gV00', 'gV01', 'gV02', 'gV03', 'gV04' (PowerPort cp???)
****'He20' (Helium cp)
****'Intj' (Interjection ext)
****'LFnt' (Dialog View cp, formerly List Font cp)
****'MV10' (TearOFF cp)
****'NMBT' (Attention cp [since 0.6])
****'PBUf' (?)
****'PBUt' (?)
****'RQDC' (DropCheck cp)
****'YeHa' (SpeedyFinder7 cp)
    The structure to which the _Gestalt selector refers changes almost
    invariably from version to version of SF7. Should someone work out
    parts of the structure of the selector keep in mind that it will
    almost certainly change in the next minor release and definitley with
    the next major release. (Victor Tan)


####Abbreviations
    ADB    - Apple Desktop Bus
    AS     - AppleShare
    ASC    - Apple Sound Chip
    CPU    - Central Processing Unit
    DAFB   - ???
    DMA    - Direct Memory Access
    DN     - Developer Note
    FPU    - Floating Point Unit
    IM     - Inside Macintosh (old volumes I-VI)
    IOP    - Input/Output Processor
    IWM    - Integrated Woz Machine
    MMU    - Memory Management Unit
    NIM    - New Inside Macintosh
    OSS    - ???
    PGC    - ???
    PPC    - Process-to-Process Communication
    PWM    - ???
    RBV    - RAM-Based Video
    SCC    - Serial Communications Controller
    SCSI   - Small Computer System Interface
    SIMM   - Single In-line Memory Module
    Sonic  - ???
    SWIM   - Super Integrated Woz Machine?
    TN     - Technical Note
    VIA    - Versatile Interface Adapter
    VM     - Virtual Memory

    appl   - application
    cp     - control panel
    ext    - extension
    FA     - File Access
    RA     - Remote Access


####Format version numbers
====4-byte words
    The format of the LONGINT result is as follows:
    (based on posting by Ivan M Cavero Belaunde)

        MMmbSSss    (e.g. 01524050)

        Where:
            MM is major revision release in BCD           1
            m  is minor revision release in BCD           5
            b  is bug fix release in BCD                  2
            SS is development stage                       b
               (dev=10,alpha=20,beta=40,release=80)
            ss is dev. stage # in BCD                    50
                                                    ------- +
                                                   1.5.2b50   :-)

    The 'atkv' selector returns the major revision release in hexadecimal.
====BCD (Binary Coded Decimal)
    0x0400 means 4.0.0 (MMmb, see above)
====INTEGER
    The decimal representation of the returned value is the version.


####AppleShare File & Print Server selector codes
    The selectors are defined when the application has run.
    If it is still running (or wasn't properly quit) the response
    is one. When the application has properly quit the response
    is zero.
      'admn' AppleShare Admin
      'asps' AppleShare Print Server
      'hgfd' AppleShare File Server


####Glue code
    The following programming software includes glue-code to return some
    responses even if the Gestalt Manager is not available. Every entry
    includes the selectors of which the Glue-code can return a response.

****Symantec THINK Pascal [at least since 4.0.1]:
    atlk, fpu , kbd , kbd , lram, mach, mmu , qd  , ram , sysv, vers


####Sources
    *1 Apple Inc.; TN M.OV.GestaltSysenvirons, May 1987, rev. Sep. 1992
    *2 Symantec Corp.; THINK Pascal 4.0.1
    *3 Carl C.Hewitt; Gestalt DA 1990
    *4 Apple Inc.; TN M.NW.AppleTalk2, Feb. 1992, rev. Sep. 1992
    *5 Apple Inc.; MacTCP 1.1 Programmer's Guide.
    *6 Apple Inc.; QuickTime ImageCompression source files (with QT 1.0)
    *7 Symantec Corp.; Think C GestaltGlue source files
    *8 Eric Simenel, Apple Computer France; Gestalt dcmd 1.0
    *9 Apple Inc.; AppleTalk Remote Access API External Reference
                   Specification


####Related Software
****AEgestalt
    Uses Apple Events to get Gestalt response from remote machine,
    includes C-source. (Requires color?? Doesn't want to run on MacPlus)
      FTP: bric-a-brac.apple.com
             /dts/mac/sc/snippets/platforms.tools/aegestalt-1-0.hqx
****Gestalt DCMD
    This dcmd (debugger command for MacsBug) allows you to "use"
    Gestalt when you're in MacsBug.
      FTP: bric-a-brac.apple.com
             /dts/mac/sc/snippets/platforms.tools/gestalt-dcmd.hqx
****DisplayGestalt
    Small application displays configuration using Gestalt Mgr,
    includes C-source.
      FTP: mac.archive.umich.edu
             /development/libraries/displaygestalt.cpt.hqx
****Gestalt!
    Displays responses from know installed selectors.
      FTP: ftp.lu.se
             /pub/mac/util/Gestalt!_X.X.X.cpt.hqx
             /pub/mac/util/Gestalt!_X.X.X.cpt.hqx.txt
****GestaltDA
    Displays responses from installed selectors.
****GestaltExt
    External for 4TH Dimension Relational Database application from
    ACI/ACIUS.
      FTP: ftp.scri.fsu.edu
             /pub/4d/4d-GestaltExt.external.hqx
****GestaltGlue
    Glue code in C.
      FTP: ics.uci.edu
             /mac/think-c/symantec/pre-5.0stuff/gestalt.hqx
****Technical Notes 'M.OV.GestaltSysenvirons' and 'M.NW.AppleTalk2'
    M.OV.GestaltSysenvirons discusses Gestalt and SysEnvirons
    M.NW.AppleTalk2 discusses AppleTalk
      FTP: bric-a-brac.apple.com
             /dts/mac/tn/overview/gestalt-and-system-environs.hqx
             /dts/mac/tn/networking/appletalk2.hqx
****Test Gestalt
    Examples to test for QuickDraw version and Virtual Memory status,
    includes C-source.
      FTP: bric-a-brac.apple.com
             /dts/mac/sc/snippets/toolbox/testgestalt.hqx


####Acknowledgements
    I want to thank the following persons for their contribution
    to this list:

    C.K. Haun (Author AETracker cp)                       <haun@apple.com>
    Chris Wysocki                                     <wysocki@netcom.com>
    Dave Radcliffe (Author TN GestaltSysenvirons)     <radcliff@apple.com>
    Ivan M Cavero Belaunde                         <ivanski@world.std.com>
    Jeremy Roussak (Author Apollo ext)             <jeremyr@dcs.qmw.ac.uk>
    Jon Watte                                        <d88-jwa@nada.kth.se>
    Lawrence D'Oliveiro                                <ldo@waikato.ac.nz>
    Leonard Rosenthol                                <leonardr@netcom.com>
    Marco Piovanelli                         <piovanel@ghost.dsi.unimi.it>
    Mark B. Johnson                                   <mjohnson@Apple.com>
    Michael Hecht                              <Michael_Hecht@mac.sas.com>
    Pete Resnick                                 <resnick@cogsci.uiuc.edu>
    Quinn                                            <quinn@cs.uwa.edu.au>
    Robert Hess                             <robert_hess@macweek.ziff.com>
    Roland Mansson (Author Gestalt! appl)       <roland.mansson@ldc.lu.se>
    Victor Tan (Author SpeedyFinder7 cp)      <victort@extro.ucc.su.oz.au>

    and the Computer Department at the Biology Faculty of the
    Free University in Amsterdam (The Netherlands) for their help and
    support.

    These persons provided information used in this list. They did this
    on personal title, NOT on behalf of their employer.
    I assume information you mail to me about Gestalt selectors may be
    used in this list. Information made available to the general public
    (e.g. a posting to a USENET newsgroup) is also included and the
    persons name added to this chapter (and to the mail list).
    I will mail you back to thank you and include the parts from the
    list which, according the information you provided, were changed
    to let you check them.
    BTW Persons are only listed with any software they wrote when
    these are mentioned somewhere in this list.


####Legal Stuff
====Notice of Liability
    The information in this list is distributed on a "AS IS" basis, without
    warranty. While every precaution has been taken in the preparation of
    this list, neither the moderator nor any contributor shall have any
    liability to any person or entity with respect to any liability, loss,
    or damage caused or alleged to be caused directly or indirectly by the
    information contained in this list or by the computer software and
    hardware products described herein.
====Trademarks
    Throughout this list trademarked names are used. Rather than put a
    trademark symbol in every occurrence of a trademarked name, I state I am
    using the names only in an editorial fashion and to the benefit of the
    trademark owner with no intention of infringement of the trademark.
====Distribution
    The information in this list may be used freely for NON-COMMERCIAL
    purposes only. If you DO USE the information in this list for
    COMMERCIAL purposes, you may consider sending the moderator a donation.
    If you (start to) redistribute this list outside Internet (especially
    printed, on disk or CD-ROM) you are kindly asked to notify the moderator.
    You are not allowed to distribute modified versions of this list,
    including, but not limited to, deleting, adding or moving text or
    adding non-text parts. Distribution in any electronical format except
    a normal text file is not allowed without permission.
    You are not allowed to redistribute it with any other name than
    'gestalt-list-XX.txt' (where XX is the version number) unless because
    of technical reasons.


####Moderator
    Rene G.A. Ros (student Computer Science)
    D.C. van Krimpenstraat 3
    1067 SG  Amsterdam
    The Netherlands, Europe
    Bank      : Postbank 4762669

    Phone#    : +31 20 611 92 74 / +31 20 611 87 00
    Fax#      : +31 20 611 60 06
    Internet  : rgaros@bio.vu.nl
                rgaros@nikhefk.nikhef.nl
                rener@htsa.aha.nl (you can send a carbon copy of urgent
                                   messages to this address)
    CompuServe: 100112,1363 (not preferred)
                >INTERNET: rgaros@bio.vu.nl

Newsgroups: comp.sys.mac.programmer