Subject: Re: Gestalt values for new machines
To: None <briggs@mail.vt.edu, macbsd-general@sun-lamp.cs.berkeley.edu>
From: Anita Holmgren <anita@tenon.com>
List: macbsd-general
Date: 02/28/1994 09:26:40
Hello Allen,

At 10:38 AM 2/27/94 -0500, Allen Briggs wrote:
>Does anyone have a list of gestalt values newer than those in GestaltEqu.h
>from THINK C 6.0?  Basically, I'm looking for values for machines newer than
>the Q700/900/PB140/etc.  The LCII wasn't listed...


I know you have some pointers already, but perhaps Tenon's gestalt
definitions will be of some help:


/************************************************************

Created: Sunday, January 6, 1991 at 9:27 PM
    GestaltEqu.h
    C Interface to the Macintosh Libraries


        Copyright Apple Computer, Inc.    1988-1990
        All rights reserved

************************************************************/


#ifndef __GESTALTEQU__
#define __GESTALTEQU__

#include <mpw/Types.h>


enum {


/************************
 *    Gestalt error codes
 ************************/
    gestaltUnknownErr = -5550,              /* value returned if Gestalt
doesn't know the answer */
    gestaltUndefSelectorErr = -5551,        /* undefined selector was
passed to Gestalt */
    gestaltDupSelectorErr = -5552,          /* tried to add an entry that
already existed */
    gestaltLocationErr = -5553,             /* gestalt function ptr wasn't
in sysheap */

/**************************
 *    Environment Selectors
 **************************/

#define gestaltVersion 'vers'               /* gestalt version */
#define gestaltAddressingModeAttr 'addr'    /* addressing mode attributes */

    gestalt32BitAddressing = 0,             /* using 32-bit addressing mode */
    gestalt32BitSysZone = 1,                /* 32-bit compatible system zone */
    gestalt32BitCapable = 2,                /* Machine is 32-bit capable */

#define gestaltAliasMgrAttr 'alis'          /* Alias Mgr Attributes */

    gestaltAliasMgrPresent = 0,             /* True if the Alias Mgr is
present */

#define gestaltAppleTalkVersion 'atlk'      /* appletalk version */
#define gestaltAUXVersion 'a/ux'            /*a/ux version, if present */
#define gestaltConnMgrAttr 'conn'           /* connection mgr attributes    */

    gestaltConnMgrPresent = 0,
    gestaltConnMgrCMSearchFix = 1,          /* Fix to CMAddSearch?     */

#define gestaltCRMAttr 'crm '               /* comm resource mgr attributes */

    gestaltCRMPresent = 0,

#define gestaltCTBVersion 'ctbv'            /* CommToolbox version */
#define gestaltDBAccessMgrAttr 'dbac'       /* Database Access Mgr attributes */

    gestaltDBAccessMgrPresent = 0,          /* True if Database Access Mgr
present */

#define gestaltDITLExtAttr 'ditl'           /* AppenDITL, etc. calls from CTB */

    gestaltDITLExtPresent = 0,              /* True if calls are present */

#define gestaltEasyAccessAttr 'easy'        /* Easy Access attributes */

    gestaltEasyAccessOff = 0,               /* if Easy Access present, but
off (no icon) */
    gestaltEasyAccessOn = 1,                /* if Easy Access "On" */
    gestaltEasyAccessSticky = 2,            /* if Easy Access "Sticky" */
    gestaltEasyAccessLocked = 3,            /* if Easy Access "Locked" */

#define gestaltEditionMgrAttr 'edtn'        /* Edition Mgr attributes */

    gestaltEditionMgrPresent = 0,           /* True if Edition Mgr present */

#define gestaltAppleEventsAttr 'evnt'       /* Apple Events attributes */

    gestaltAppleEventsPresent = 0,          /* True if Apple Events present */

#define gestaltFindFolderAttr 'fold'        /* Folder Mgr attributes */

    gestaltFindFolderPresent = 0            /* True if Folder Mgr present */
};
enum {

#define gestaltFontMgrAttr 'font'           /* Font Mgr attributes */

    gestaltOutlineFonts = 0,                /* True if Outline Fonts
supported */

#define gestaltFPUType 'fpu '               /* fpu type */

    gestaltNoFPU = 0,                       /* no FPU */
    gestalt68881 = 1,                       /* 68881 FPU */
    gestalt68882 = 2,                       /* 68882 FPU */
    gestalt68040FPU = 3,                    /* 68040 built-in FPU */

#define gestaltFSAttr 'fs  '                /* file system attributes */

    gestaltFullExtFSDispatching = 0,        /* has really cool new
HFSDispatch dispatcher */
    gestaltHasFSSpecCalls = 1,              /* has FSSpec calls    */
    gestaltHasFileSystemManager = 2,        /* has a file system manager */

#define gestaltFXfrMgrAttr 'fxfr'           /* file transfer manager
attributes */

    gestaltFXfrMgrPresent = 0,

#define gestaltHardwareAttr 'hdwr'          /* hardware attributes */

    gestaltHasVIA1 = 0,                     /* VIA1 exists */
    gestaltHasVIA2 = 1,                     /* VIA2 exists */
    gestaltHasASC = 3,                      /* Apple Sound Chip exists */
    gestaltHasSCC = 4,                      /* SCC exists */
    gestaltHasSCSI = 7,                     /* SCSI exists */
    gestaltHasSoftPowerOff = 19,            /* Capable of software power off */

#define gestaltHelpMgrAttr 'help'           /* Help Mgr Attributes */

    gestaltHelpMgrPresent = 0,              /* true if help mgr is present */

#define gestaltKeyboardType 'kbd '          /* keyboard type */

    gestaltMacKbd = 1,
    gestaltMacAndPad = 2,
    gestaltMacPlusKbd = 3,
    gestaltExtADBKbd = 4
};
enum {
    gestaltStdADBKbd = 5,
    gestaltPrtblADBKbd = 6,
    gestaltPrtblISOKbd = 7,
    gestaltStdISOADBKbd = 8,
    gestaltExtISOADBKbd = 9,
    gestaltADBKbdII = 10,
    gestaltADBISOKbdII = 11,

#define gestaltLowMemorySize 'lmem'         /* size of low memory area */
#define gestaltLogicalRAMSize 'lram'        /* logical ram size */
#define gestaltMiscAttr 'misc'              /* miscellaneous attributes */

    gestaltScrollingThrottle = 0,           /* true if scrolling throttle on */
    gestaltSquareMenuBar = 2,               /* true if menu bar is square */

#define gestaltMMUType 'mmu '               /* mmu type */

    gestaltNoMMU = 0,                       /* no MMU */
    gestaltAMU = 1,                         /* address management unit */
    gestalt68851 = 2,                       /* 68851 PMMU */
    gestalt68030MMU = 3,                    /* 68030 built-in MMU */
    gestalt68040MMU = 4,                    /* 68040 built-in MMU */

#define gestaltStdNBPAttr 'nlup'            /* standard nbp attributes */

    gestaltStdNBPPresent = 0,

#define gestaltNotificationMgrAttr 'nmgr'   /* notification manager
attributes */

    gestaltNotificationPresent = 0,         /* notification manager exists */

#define gestaltNuBusConnectors 'sltc'       /* bitmap of NuBus connectors*/
#define gestaltOSAttr 'os  '                /* o/s attributes */

    gestaltSysZoneGrowable = 0,             /* system heap is growable */
    gestaltLaunchCanReturn = 1,             /* can return from launch */
    gestaltLaunchFullFileSpec = 2,          /* can launch from full file spec */
    gestaltLaunchControl = 3                /* launch control support
available */
};
enum {
    gestaltTempMemSupport = 4,              /* temp memory support */
    gestaltRealTempMemory = 5,              /* temp memory handles are real */
    gestaltTempMemTracked = 6,              /* temporary memory handles are
tracked */
    gestaltIPCSupport = 7,                  /* IPC support is present */
    gestaltSysDebuggerSupport = 8,          /* system debugger support is
present */

#define gestaltOSTable 'ostt'               /*  OS trap table base  */
#define gestaltToolboxTable 'tbtt'          /*  OS trap table base  */
#define gestaltExtToolboxTable 'xttt'       /* Extended Toolbox trap table
base */
#define gestaltLogicalPageSize 'pgsz'       /* logical page size */
#define gestaltPowerMgrAttr 'powr'          /* power manager attributes */

    gestaltPMgrExists = 0,
    gestaltPMgrCPUIdle = 1,
    gestaltPMgrSCC = 2,
    gestaltPMgrSound = 3,

#define gestaltPPCToolboxAttr 'ppc '        /* PPC toolbox attributes */

/*
 * PPC will return the combination of following bit fields.
 * e.g. gestaltPPCSupportsRealTime +gestaltPPCSupportsIncoming +
gestaltPPCSupportsOutGoing
 * indicates PPC is cuurently is only supports real time delivery
 * and both incoming and outgoing network sessions are allowed.
 * By default local real time delivery is supported as long as PPCInit has
been called.*/


    gestaltPPCToolboxPresent = 0x0000,      /* PPC Toolbox is present
Requires PPCInit to be called */
    gestaltPPCSupportsRealTime = 0x1000,    /* PPC Supports real-time
delivery */
    gestaltPPCSupportsIncoming = 0x0001,    /* PPC will deny incoming
network requests */
    gestaltPPCSupportsOutGoing = 0x0002,    /* PPC will deny outgoing
network requests */

#define gestaltProcessorType 'proc'         /* processor type */

    gestalt68000 = 1,
    gestalt68010 = 2,
    gestalt68020 = 3,
    gestalt68030 = 4,
    gestalt68040 = 5,

#define gestaltParityAttr 'prty'            /* parity attributes */

    gestaltHasParityCapability = 0,         /* has ability to check parity */
    gestaltParityEnabled = 1                /* parity checking enabled */
};
enum {

#define gestaltQuickdrawVersion 'qd  '      /* quickdraw version */

    gestaltOriginalQD = 0x000,              /* original 1-bit QD */
    gestalt8BitQD = 0x100,                  /* 8-bit color QD */
    gestalt32BitQD = 0x200,                 /* 32-bit color QD */
    gestalt32BitQD11 = 0x210,               /* 32-bit color QDv1.1 */
    gestalt32BitQD12 = 0x220,               /* 32-bit color QDv1.2 */
    gestalt32BitQD13 = 0x230,               /* 32-bit color QDv1.3 */

#define gestaltQuickdrawFeatures 'qdrw'     /* quickdraw features */

    gestaltHasColor = 0,                    /* color quickdraw present */
    gestaltHasDeepGWorlds = 1,              /* GWorlds can be deeper than
1-bit */
    gestaltHasDirectPixMaps = 2,            /* PixMaps can be direct (16 or
32 bit) */
    gestaltHasGrayishTextOr = 3,            /* supports text mode
grayishTextOr */

#define gestaltPhysicalRAMSize 'ram '       /* physical RAM size */
#define gestaltPopupAttr 'pop!'             /* popup cdef attributes */

    gestaltPopupPresent = 0,

#define gestaltResourceMgrAttr 'rsrc'       /* Resource Mgr attributes */

    gestaltPartialRsrcs = 0,                /* True if partial resources
exist */

#define gestaltScriptMgrVersion 'scri'      /* Script Manager version
number    <08/05/89 pke> */
#define gestaltScriptCount 'scr#'           /* number of active script
systems    <08/05/89 pke> */
#define gestaltSerialAttr 'ser '            /* Serial attributes */

    gestaltHasGPIaToDCDa = 0,               /* GPIa connected to DCDa*/
    gestaltHasGPIaToRTxCa = 1,              /* GPIa connected to RTxCa
clock input*/
    gestaltHasGPIbToDCDb = 2,               /* GPIb connected to DCDb */

#define gestaltSoundAttr 'snd '             /* sound attributes */

    gestaltStereoCapability = 0,            /* sound hardware has stereo
capability */
    gestaltStereoMixing = 1,                /* stereo mixing on external
speaker */
    gestaltSoundIOMgrPresent = 3,           /* The Sound I/O Manager is
present */
    gestaltBuiltInSoundInput = 4            /* built-in Sound Input
hardware is present */
};
enum {
    gestaltHasSoundInputDevice = 5,         /* Sound Input device available */

#define gestaltStandardFileAttr 'stdf'      /* Standard File attributes */

    gestaltStandardFile58 = 0,              /* True if selectors 5-8
(StandardPutFile-CustomGetFile) are supported */

#define gestaltTextEditVersion 'te  '       /* TextEdit version number
<08/05/89 pke> */

    gestaltTE1 = 1,                         /* TextEdit in MacIIci ROM
<8Aug89smb> */
    gestaltTE2 = 2,                         /* TextEdit with 6.0.4 Script
Systems on MacIIci (Script bug fixes for MacIIci) <8Aug89smb> */
    gestaltTE3 = 3,                         /* TextEdit with 6.0.4 Script
Systems all but MacIIci <8Aug89smb> */
    gestaltTE4 = 4,                         /* TextEdit in System 7.0 */
    gestaltTE5 = 5,                         /* TextWidthHook available in
TextEdit */

#define gestaltTermMgrAttr 'term'           /* terminal mgr attributes */

    gestaltTermMgrPresent = 0,

#define gestaltTimeMgrVersion 'tmgr'        /* time mgr version */

    gestaltStandardTimeMgr = 1,             /* standard time mgr is present */
    gestaltRevisedTimeMgr = 2,              /* revised time mgr is present */
    gestaltExtendedTimeMgr = 3,             /* extended time mgr is present */

#define gestaltVMAttr 'vm  '                /* virtual memory attributes */

    gestaltVMPresent = 0,                   /* true if virtual memory is
present */

/*************************
 *    Info-only selectors
 ************************/

};
enum {
#define gestaltMachineType 'mach'           /* machine type */

    kMachineNameStrID = -16395,
    gestaltClassic = 1,
    gestaltMacXL = 2,
    gestaltMac512KE = 3,
    gestaltMacPlus = 4,
    gestaltMacSE = 5,
    gestaltMacII = 6,
    gestaltMacIIx = 7,
    gestaltMacIIcx = 8,
    gestaltMacSE030 = 9,
    gestaltPortable = 10,
    gestaltMacIIci = 11,
    gestaltMacIIfx = 13,
    gestaltMacClassic = 17,
    gestaltMacIIsi = 18,
    gestaltMacLC = 19,
    gestaltQuadra900 = 20,
    gestaltMacPowerBook170 = 21,
    gestaltQuadra700 = 22,
    gestaltMacClassicII = 23,
    gestaltMacPowerBook100 = 24,
    gestaltMacPowerBook140 = 25,
    gestaltQuadra950 = 26,
    gestaltMacLCIII = 27,
    gestaltMacPowerBook210 = 29,
    gestaltCentris650 = 30,
    gestaltMacPowerBook230 = 32,
    gestaltMacPowerBook180 = 33,
    gestaltMacPowerBook160 = 34,
    gestaltQuadra800 = 35,
    gestaltQuadra650 = 36,
    gestaltMacLCII = 37,
    gestaltMacPowerBook250 = 38,
    gestaltMacIIvi = 44,
    gestaltPerforma600 = 45,
    gestaltMacIIvx = 48,
    gestaltColorClassic = 49,
    gestaltMacPowerBook165c = 50,
    gestaltCentris610 = 52,
    gestaltQuadra610 = 53,
    gestaltMacPowerBook145 = 54,
    gestaltMacLC520 = 56,
    gestaltCentris660AV = 60,
    gestaltMacPowerBook180c = 71,
    gestaltMacPowerBook270c = 77,
    gestaltQuadra840AV = 78,
    gestaltMacPowerBook165 = 84,
    gestaltMacLC475 = 89,
    gestaltQuadra605 = 94

#define gestaltMachineIcon 'micn'           /* machine icon */
#define gestaltROMSize 'rom '               /* rom size */
#define gestaltROMVersion 'romv'            /* rom version */
#define gestaltSystemVersion 'sysv'         /* system version*/
};

OSErr Gestalt(OSType selector,long *response);
OSErr NewGestalt(OSType selector,ProcPtr gestaltFunction);
OSErr ReplaceGestalt(OSType selector,ProcPtr gestaltFunction,ProcPtr
*oldGestaltFunction);

#endif

Best regards,
Anita


Tenon Intersystems                           Phone: 805-963-6983
1123 Chapala Street                          FAX: 805-962-8202
Santa Barbara, CA 93101                      info@tenon.com
                                             AppleLink: TENON



------------------------------------------------------------------------------