Package Name: gestalt
with Types; use Types;
package Gestalt is
--
-- File: Gestalt.h
--
-- Contains: Gestalt Interfaces.
--
-- Version: Technology: System 7.5
-- Package: Universal Interfaces 2.1 in ŇMPW LatestÓ on ETO #18
--
-- Copyright: © 1984-1995 by Apple Computer, Inc.
-- All rights reserved.
gestaltAddressingModeAttr : constant OSType := ToRes("addr"); -- addressing mode attributes
gestalt32BitAddressing : constant := 0; -- using 32-bit addressing mode
gestalt32BitSysZone : constant := 1; -- 32-bit compatible system zone
gestalt32BitCapable : constant := 2; -- Machine is 32-bit capable
gestaltAliasMgrAttr : constant OSType := ToRes("alis"); -- Alias Mgr Attributes
gestaltAliasMgrPresent : constant := 0; -- True if the Alias Mgr is present
gestaltAliasMgrSupportsRemoteAppletalk : constant := 1; -- True if the Alias Mgr knows about Remote Appletalk
gestaltAppleTalkVersion : constant OSType := ToRes("atlk");
gestaltAUXVersion : constant OSType := ToRes("a/ux");
gestaltCloseViewAttr : constant OSType := ToRes("BSDa"); -- CloseView attributes
gestaltCloseViewEnabled : constant := 0; -- Closeview enabled (dynamic bit - returns current state)
gestaltCloseViewDisplayMgrFriendly : constant := 1; -- Closeview compatible with Display Manager (FUTURE)
gestaltCFMAttr : constant OSType := ToRes("cfrg"); -- returns information about the Code Fragment Manager
gestaltCFMPresent : constant := 0; -- true if the Code Fragment Manager is present
gestaltColorMatchingAttr : constant OSType := ToRes("cmta"); -- ColorSync attributes
gestaltHighLevelMatching : constant := 0;
gestaltColorMatchingLibLoaded : constant := 1;
gestaltColorMatchingVersion : constant OSType := ToRes("cmtc");
gestaltColorSync10 : constant := 16#0100#; -- 0x0100 & 0x0110 _Gestalt versions for 1.0-1.0.3 product
gestaltColorSync11 : constant := 16#0110#; -- 0x0100 : constant :== low-level matching only
gestaltColorSync104 : constant := 16#0104#; -- Real version, by popular demand
gestaltColorSync105 : constant := 16#0105#;
gestaltConnMgrAttr : constant OSType := ToRes("conn"); -- connection mgr attributes
gestaltConnMgrPresent : constant := 0;
gestaltConnMgrCMSearchFix : constant := 1; -- Fix to CMAddSearch?
gestaltConnMgrErrorString : constant := 2; -- has CMGetErrorString()
gestaltConnMgrMultiAsyncIO: constant := 3; -- CMNewIOPB, CMDisposeIOPB, CMPBRead, CMPBWrite, CMPBIOKill
gestaltComponentMgr : constant OSType := ToRes("cpnt");
gestaltColorPickerVersion : constant OSType := ToRes("cpkr"); -- returns version of ColorPicker
gestaltColorPicker : constant OSType := ToRes("cpkr");
gestaltNativeCPUtype : constant OSType := ToRes("cput"); -- Native CPU type
gestaltCPU68000 : constant := 1; -- Various 68k CPUs...
gestaltCPU68010 : constant := 2;
gestaltCPU68020 : constant := 3;
gestaltCPU68030 : constant := 4;
gestaltCPU68040 : constant := 5;
gestaltCPU601 : constant := 16#101#; -- IBM 601
gestaltCPU603 : constant := 16#103#;
gestaltCPU604 : constant := 16#104#;
gestaltCRMAttr : constant OSType := ToRes("crm "); -- comm resource mgr attributes
gestaltCRMPresent : constant := 0;
gestaltCRMPersistentFix : constant := 1; -- fix for persistent tools
gestaltCRMToolRsrcCalls : constant := 2; -- has CRMGetToolResource/ReleaseToolResource
gestaltControlStripVersion: constant OSType := ToRes("csvr");
gestaltCTBVersion : constant OSType := ToRes("ctbv");
gestaltDBAccessMgrAttr : constant OSType := ToRes("dbac"); -- Database Access Mgr attributes
gestaltDBAccessMgrPresent : constant := 0; -- True if Database Access Mgr present
gestaltDictionaryMgrAttr : constant OSType := ToRes("dict"); -- Dictionary Manager attributes
gestaltDictionaryMgrPresent : constant := 0; -- Dictionary Manager attributes
gestaltDITLExtAttr : constant OSType := ToRes("ditl"); -- AppenDITL, etc. calls from CTB
gestaltDITLExtPresent : constant := 0; -- True if calls are present
gestaltDisplayMgrAttr : constant OSType := ToRes("dply"); -- Display Manager attributes
gestaltDisplayMgrPresent : constant := 0; -- True if Display Mgr is present
gestaltDisplayMgrCanSwitchMirrored : constant := 2; -- True if Display Mgr can switch modes on mirrored displays
gestaltDisplayMgrSetDepthNotifies : constant := 3; -- True SetDepth generates displays mgr notification
gestaltDisplayMgrVers : constant OSType := ToRes("dplv");
gestaltDragMgrAttr : constant OSType := ToRes("drag"); -- Drag Manager attributes
gestaltDragMgrPresent : constant := 0; -- Drag Manager is present
gestaltDragMgrFloatingWind: constant := 1; -- Drag Manager supports floating windows
gestaltPPCDragLibPresent : constant := 2; -- Drag Manager PPC DragLib is present
gestaltEasyAccessAttr : constant OSType := ToRes("easy"); -- Easy Access attributes
gestaltEasyAccessOff : constant := 0; -- if Easy Access present, but off (no icon)
gestaltEasyAccessOn : constant := 1; -- if Easy Access "On"
gestaltEasyAccessSticky : constant := 2; -- if Easy Access "Sticky"
gestaltEasyAccessLocked : constant := 3; -- if Easy Access "Locked"
gestaltEditionMgrAttr : constant OSType := ToRes("edtn"); -- Edition Mgr attributes
gestaltEditionMgrPresent : constant := 0; -- True if Edition Mgr present
gestaltEditionMgrTranslationAware : constant := 1; -- True if edition manager is translation manager aware
gestaltAppleEventsAttr : constant OSType := ToRes("evnt"); -- Apple Events attributes
gestaltAppleEventsPresent : constant := 0; -- True if Apple Events present
gestaltScriptingSupport : constant := 1;
gestaltOSLInSystem : constant := 2; -- OSL is in system so donŐt use the one linked in to app
gestaltFinderAttr : constant OSType := ToRes("fndr"); -- Finder attributes
gestaltFinderDropEvent : constant := 0; -- Finder recognizes drop event
gestaltFinderMagicPlacement : constant := 1; -- Finder supports magic icon placement
gestaltFinderCallsAEProcess : constant := 2; -- Finder calls AEProcessAppleEvent
gestaltOSLCompliantFinder : constant := 3; -- Finder is scriptable and recordable
gestaltFinderSupports4GBVolumes : constant := 4; -- Finder correctly handles 4GB volumes
gestaltFinderHasClippings : constant := 6; -- Finder supports Drag Manager clipping files
gestaltFindFolderAttr : constant OSType := ToRes("fold"); -- Folder Mgr attributes
gestaltFindFolderPresent : constant := 0; -- True if Folder Mgr present
gestaltFontMgrAttr : constant OSType := ToRes("font"); -- Font Mgr attributes
gestaltOutlineFonts : constant := 0; -- True if Outline Fonts supported
gestaltFPUType : constant OSType := ToRes("fpu "); -- fpu type
gestaltNoFPU : constant := 0; -- no FPU
gestalt68881 : constant := 1; -- 68881 FPU
gestalt68882 : constant := 2; -- 68882 FPU
gestalt68040FPU : constant := 3; -- 68040 built-in FPU
gestaltFSAttr : constant OSType := ToRes("fs "); -- file system attributes
gestaltFullExtFSDispatching: constant := 0; -- has really cool new HFSDispatch dispatcher
gestaltHasFSSpecCalls : constant := 1; -- has FSSpec calls
gestaltHasFileSystemManager: constant := 2; -- has a file system manager
gestaltFSMDoesDynamicLoad : constant := 3; -- file system manager supports dynamic loading
gestaltFSSupports4GBVols : constant := 4; -- file system supports 4 gigabyte volumes
gestaltFSSupports2TBVols : constant := 5; -- file system supports 2 terabyte volumes
gestaltHasExtendedDiskInit : constant := 6; -- has extended Disk Initialization calls
gestaltFSMVersion : constant OSType := ToRes("fsm ");
gestaltFXfrMgrAttr : constant OSType := ToRes("fxfr"); -- file transfer manager attributes
gestaltFXfrMgrPresent : constant := 0;
gestaltFXfrMgrMultiFile : constant := 1; -- supports FTSend and FTReceive
gestaltFXfrMgrErrorString : constant := 2; -- supports FTGetErrorString
gestaltGraphicsAttr : constant OSType := ToRes("gfxa"); -- Quickdraw GX attributes selector
gestaltGraphicsIsDebugging: constant := 16#00000001#;
gestaltGraphicsIsLoaded : constant := 16#00000002#;
gestaltGraphicsIsPowerPC : constant := 16#00000004#;
gestaltGraphicsVersion : constant OSType := ToRes("grfx"); -- Quickdraw GX version selector
gestaltCurrentGraphicsVersion : constant := 16#00010000#; -- the version described in this set of headers
gestaltHardwareAttr : constant OSType := ToRes("hdwr"); -- hardware attributes
gestaltHasVIA1 : constant := 0; -- VIA1 exists
gestaltHasVIA2 : constant := 1; -- VIA2 exists
gestaltHasASC : constant := 3; -- Apple Sound Chip exists
gestaltHasSCC : constant := 4; -- SCC exists
gestaltHasSCSI : constant := 7; -- SCSI exists
gestaltHasSoftPowerOff : constant := 19; -- Capable of software power off
gestaltHasSCSI961 : constant := 21; -- 53C96 SCSI controller on internal bus
gestaltHasSCSI962 : constant := 22; -- 53C96 SCSI controller on external bus
gestaltHasUniversalROM : constant := 24; -- Do we have a Universal ROM?
gestaltHasEnhancedLtalk : constant := 30; -- Do we have Enhanced LocalTalk?
gestaltHelpMgrAttr : constant OSType := ToRes("help"); -- Help Mgr Attributes
gestaltHelpMgrPresent : constant := 0; -- true if help mgr is present
gestaltHelpMgrExtensions : constant := 1; -- true if help mgr extensions are installed
gestaltCompressionMgr : constant OSType := ToRes("icmp");
gestaltIconUtilitiesAttr : constant OSType := ToRes("icon"); -- Icon Utilities attributes (Note: available in System 7.0, despite gestalt)
gestaltIconUtilitiesPresent : constant := 0; -- true if icon utilities are present
gestaltKeyboardType : constant OSType := ToRes("kbd "); -- keyboard type
gestaltMacKbd : constant := 1;
gestaltMacAndPad : constant := 2;
gestaltMacPlusKbd : constant := 3;
gestaltExtADBKbd : constant := 4;
gestaltStdADBKbd : constant := 5;
gestaltPrtblADBKbd : constant := 6;
gestaltPrtblISOKbd : constant := 7;
gestaltStdISOADBKbd : constant := 8;
gestaltExtISOADBKbd : constant := 9;
gestaltADBKbdII : constant := 10;
gestaltADBISOKbdII : constant := 11;
gestaltPwrBookADBKbd : constant := 12;
gestaltPwrBookISOADBKbd : constant := 13;
gestaltAppleAdjustKeypad : constant := 14;
gestaltAppleAdjustADBKbd : constant := 15;
gestaltAppleAdjustISOKbd : constant := 16;
gestaltJapanAdjustADBKbd : constant := 17; -- Japan Adjustable Keyboard
gestaltPwrBkExtISOKbd : constant := 20; -- PowerBook Extended International Keyboard with function keys
gestaltPwrBkExtJISKbd : constant := 21; -- PowerBook Extended Japanese Keyboard with function keys
gestaltPwrBkExtADBKbd : constant := 24; -- PowerBook Extended Domestic Keyboard with function keys
gestaltLowMemorySize : constant OSType := ToRes("lmem");
gestaltLogicalRAMSize : constant OSType := ToRes("lram");
gestaltMachineType : constant OSType := ToRes("mach"); -- machine type
gestaltClassic : constant := 1;
gestaltMacXL : constant := 2;
gestaltMac512KE : constant := 3;
gestaltMacPlus : constant := 4;
gestaltMacSE : constant := 5;
gestaltMacII : constant := 6;
gestaltMacIIx : constant := 7;
gestaltMacIIcx : constant := 8;
gestaltMacSE030 : constant := 9;
gestaltPortable : constant := 10;
gestaltMacIIci : constant := 11;
gestaltMacIIfx : constant := 13;
gestaltMacClassic : constant := 17;
gestaltMacIIsi : constant := 18;
gestaltMacLC : constant := 19;
gestaltQuadra900 : constant := 20;
gestaltPowerBook170 : constant := 21;
gestaltQuadra700 : constant := 22;
gestaltClassicII : constant := 23;
gestaltPowerBook100 : constant := 24;
gestaltPowerBook140 : constant := 25;
gestaltQuadra950 : constant := 26;
gestaltMacLCIII : constant := 27;
gestaltPerforma450 : constant := gestaltMacLCIII;
gestaltPowerBookDuo210 : constant := 29;
gestaltMacCentris650 : constant := 30;
gestaltPowerBookDuo230 : constant := 32;
gestaltPowerBook180 : constant := 33;
gestaltPowerBook160 : constant := 34;
gestaltMacQuadra800 : constant := 35;
gestaltMacQuadra650 : constant := 36;
gestaltMacLCII : constant := 37;
gestaltPowerBookDuo250 : constant := 38;
gestaltAWS9150_80 : constant := 39;
gestaltPowerMac8100_110 : constant := 40;
gestaltAWS8150_110 : constant := gestaltPowerMac8100_110;
gestaltMacIIvi : constant := 44;
gestaltMacIIvm : constant := 45;
gestaltPerforma600 : constant := gestaltMacIIvm;
gestaltPowerMac7100_80 : constant := 47;
gestaltMacIIvx : constant := 48;
gestaltMacColorClassic : constant := 49;
gestaltPerforma250 : constant := gestaltMacColorClassic;
gestaltPowerBook165c : constant := 50;
gestaltMacCentris610 : constant := 52;
gestaltMacQuadra610 : constant := 53;
gestaltPowerBook145 : constant := 54;
gestaltPowerMac8100_100 : constant := 55;
gestaltMacLC520 : constant := 56;
gestaltAWS9150_120 : constant := 57;
gestaltMacCentris660AV : constant := 60;
gestaltPerforma46x : constant := 62;
gestaltPowerMac8100_80 : constant := 65;
gestaltAWS8150_80 : constant := gestaltPowerMac8100_80;
gestaltPowerBook180c : constant := 71;
gestaltPowerMac6100_60 : constant := 75;
gestaltAWS6150_60 : constant := gestaltPowerMac6100_60;
gestaltPowerBookDuo270c : constant := 77;
gestaltMacQuadra840AV : constant := 78;
gestaltPerforma550 : constant := 80;
gestaltPowerBook165 : constant := 84;
gestaltMacTV : constant := 88;
gestaltMacLC475 : constant := 89;
gestaltPerforma47x : constant := gestaltMacLC475;
gestaltMacLC575 : constant := 92;
gestaltMacQuadra605 : constant := 94;
gestaltQuadra630 : constant := 98;
gestaltPowerMac6100_66 : constant := 100;
gestaltAWS6150_66 : constant := gestaltPowerMac6100_66;
gestaltPowerBookDuo280 : constant := 102;
gestaltPowerBookDuo280c : constant := 103;
gestaltPowerMac7100_66 : constant := 112; -- Power Macintosh 7100/66
gestaltPowerBook150 : constant := 115;
kMachineNameStrID : constant := -16395;
gestaltMachineIcon : constant OSType := ToRes("micn");
gestaltMiscAttr : constant OSType := ToRes("misc"); -- miscellaneous attributes
gestaltScrollingThrottle : constant := 0; -- true if scrolling throttle on
gestaltSquareMenuBar : constant := 2; -- true if menu bar is square
-- The name gestaltMixedModeVersion for the 'mixd' selector is semantically incorrect.
-- The same selector has been renamed gestaltMixedModeAttr to properly reflect the
-- Inside Mac: PowerPC System Software documentation. The gestaltMixedModeVersion
-- symbol has been preserved only for backwards compatibility.
--
-- Developers are forewarned that gestaltMixedModeVersion has a limited lifespan and
-- will be removed in a future release of the Interfaces.
--
-- For the first version of Mixed Mode, both meanings of the 'mixd' selector are
-- functionally identical. They both return 0x00000001. In subsequent versions
-- of Mixed Mode, however, the 'mixd' selector will not respond with an increasing
-- version number, but rather, with 32 attribute bits with various meanings.
-- gestaltMixedModeVersion : constant OSType := ToRes("mixd");
gestaltMixedModeAttr : constant OSType := ToRes("mixd"); -- returns Mixed Mode attributes
gestaltPowerPCAware : constant := 0; -- true if Mixed Mode Manager supports PowerPC
gestaltMMUType : constant OSType := ToRes("mmu "); -- mmu type
gestaltNoMMU : constant := 0; -- no MMU
gestaltAMU : constant := 1; -- address management unit
gestalt68851 : constant := 2; -- 68851 PMMU
gestalt68030MMU : constant := 3; -- 68030 built-in MMU
gestalt68040MMU : constant := 4; -- 68040 built-in MMU
gestaltEMMU1 : constant := 5; -- Emulated MMU type 1
gestaltStdNBPAttr : constant OSType := ToRes("nlup"); -- standard nbp attributes
gestaltStdNBPPresent : constant := 0;
gestaltNotificationMgrAttr : constant OSType := ToRes("nmgr"); -- notification manager attributes
gestaltNotificationPresent : constant := 0; -- notification manager exists
gestaltNameRegistryVersion : constant OSType := ToRes("nreg");
gestaltNuBusSlotCount : constant OSType := ToRes("nubs");
gestaltOpenFirmwareInfo : constant OSType := ToRes("opfw");
gestaltOSAttr : constant OSType := ToRes("os "); -- o/s attributes
gestaltSysZoneGrowable : constant := 0; -- system heap is growable
gestaltLaunchCanReturn : constant := 1; -- can return from launch
gestaltLaunchFullFileSpec : constant := 2; -- can launch from full file spec
gestaltLaunchControl : constant := 3; -- launch control support available
gestaltTempMemSupport : constant := 4; -- temp memory support
gestaltRealTempMemory : constant := 5; -- temp memory handles are real
gestaltTempMemTracked : constant := 6; -- temporary memory handles are tracked
gestaltIPCSupport : constant := 7; -- IPC support is present
gestaltSysDebuggerSupport : constant := 8; -- system debugger support is present
gestaltOSTable : constant OSType := ToRes("ostt");
gestaltPCXAttr : constant OSType := ToRes("pcxg"); -- PC Exchange attributes
gestaltPCXHas8and16BitFAT : constant := 0; -- PC Exchange supports both 8 and 16 bit FATs
gestaltPCXHasProDOS : constant := 1; -- PC Exchange supports ProDOS
gestaltLogicalPageSize : constant OSType := ToRes("pgsz");
gestaltPopupAttr : constant OSType := ToRes("pop!"); -- popup cdef attributes
gestaltPopupPresent : constant := 0;
gestaltPowerMgrAttr : constant OSType := ToRes("powr"); -- power manager attributes
gestaltPMgrExists : constant := 0;
gestaltPMgrCPUIdle : constant := 1;
gestaltPMgrSCC : constant := 2;
gestaltPMgrSound : constant := 3;
gestaltPMgrDispatchExists : constant := 4;
-- 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.}
gestaltPPCToolboxAttr : constant OSType := ToRes("ppc "); -- PPC toolbox attributes
gestaltPPCToolboxPresent : constant := 16#0000#; -- PPC Toolbox is present Requires PPCInit to be called
gestaltPPCSupportsRealTime: constant := 16#1000#; -- PPC Supports real-time delivery
gestaltPPCSupportsIncoming: constant := 16#0001#; -- PPC will deny incoming network requests
gestaltPPCSupportsOutGoing: constant := 16#0002#; -- PPC will deny outgoing network requests
gestaltProcessorType : constant OSType := ToRes("proc"); -- processor type
gestalt68000 : constant := 1;
gestalt68010 : constant := 2;
gestalt68020 : constant := 3;
gestalt68030 : constant := 4;
gestalt68040 : constant := 5;
gestaltParityAttr : constant OSType := ToRes("prty"); -- parity attributes
gestaltHasParityCapability: constant := 0; -- has ability to check parity
gestaltParityEnabled : constant := 1; -- parity checking enabled
gestaltQuickdrawVersion : constant OSType := ToRes("qd "); -- quickdraw version
gestaltOriginalQD : constant := 16#000#; -- original 1-bit QD
gestalt8BitQD : constant := 16#100#; -- 8-bit color QD
gestalt32BitQD : constant := 16#200#; -- 32-bit color QD
gestalt32BitQD11 : constant := 16#201#; -- 32-bit color QDv1.1
gestalt32BitQD12 : constant := 16#220#; -- 32-bit color QDv1.2
gestalt32BitQD13 : constant := 16#230#; -- 32-bit color QDv1.3
gestaltQuickdrawFeatures : constant OSType := ToRes("qdrw"); -- quickdraw features
gestaltHasColor : constant := 0; -- color quickdraw present
gestaltHasDeepGWorlds : constant := 1; -- GWorlds can be deeper than 1-bit
gestaltHasDirectPixMaps : constant := 2; -- PixMaps can be direct (16 or 32 bit)
gestaltHasGrayishTextOr : constant := 3; -- supports text mode grayishTextOr
gestaltSupportsMirroring : constant := 4; -- Supports video mirroring via the Display Manager.
gestaltQuickTimeVersion : constant OSType := ToRes("qtim"); -- returns version of QuickTime
gestaltQuickTime : constant OSType := ToRes("qtim");
gestaltQuickTimeFeatures : constant OSType := ToRes("qtrs");
gestaltPPCQuickTimeLibPresent : constant := 0; -- PowerPC QuickTime glue library is present
gestaltPhysicalRAMSize : constant OSType := ToRes("ram ");
gestaltRBVAddr : constant OSType := ToRes("rbv ");
gestaltROMSize : constant OSType := ToRes("rom ");
gestaltROMVersion : constant OSType := ToRes("romv");
gestaltResourceMgrAttr : constant OSType := ToRes("rsrc"); -- Resource Mgr attributes
gestaltPartialRsrcs : constant := 0; -- True if partial resources exist
gestaltRealtimeMgrAttr : constant OSType := ToRes("rtmr"); -- Realtime manager attributes
gestaltRealtimeMgrPresent : constant := 0; -- true if the Realtime manager is present
gestaltSCCReadAddr : constant OSType := ToRes("sccr");
gestaltSCCWriteAddr : constant OSType := ToRes("sccw");
gestaltScrapMgrAttr : constant OSType := ToRes("scra"); -- Scrap Manager attributes
gestaltScrapMgrTranslationAware : constant := 0; -- True if scrap manager is translation aware
gestaltScriptMgrVersion : constant OSType := ToRes("scri");
gestaltScriptCount : constant OSType := ToRes("scr#");
gestaltSCSI : constant OSType := ToRes("scsi"); -- SCSI Manager attributes
gestaltAsyncSCSI : constant := 0; -- Supports Asynchronous SCSI
gestaltAsyncSCSIINROM : constant := 1; -- Async scsi is in ROM (available for booting)
gestaltSCSISlotBoot : constant := 2; -- ROM supports Slot-style PRAM for SCSI boots (PDM and later)
gestaltControlStripAttr : constant OSType := ToRes("sdev"); -- Control Strip attributes
gestaltControlStripExists : constant := 0; -- Control Strip is installed
gestaltControlStripVersionFixed : constant := 1; -- Control Strip version Gestalt selector was fixed
gestaltControlStripUserFont : constant := 2; -- supports user-selectable font/size
gestaltControlStripUserHotKey : constant := 3; -- support user-selectable hot key to show/hide the window
gestaltSerialAttr : constant OSType := ToRes("ser "); -- Serial attributes
gestaltHasGPIaToDCDa : constant := 0; -- GPIa connected to DCDa}
gestaltHasGPIaToRTxCa : constant := 1; -- GPIa connected to RTxCa clock input}
gestaltHasGPIbToDCDb : constant := 2; -- GPIb connected to DCDb
gestaltNuBusConnectors : constant OSType := ToRes("sltc");
gestaltSlotAttr : constant OSType := ToRes("slot"); -- slot attributes
gestaltSlotMgrExists : constant := 0; -- true is slot mgr exists
gestaltNuBusPresent : constant := 1; -- NuBus slots are present
gestaltSESlotPresent : constant := 2; -- SE PDS slot present
gestaltSE30SlotPresent : constant := 3; -- SE/30 slot present
gestaltPortableSlotPresent: constant := 4; -- PortableŐs slot present
gestaltFirstSlotNumber : constant OSType := ToRes("slt1");
gestaltSoundAttr : constant OSType := ToRes("snd "); -- sound attributes
gestaltStereoCapability : constant := 0; -- sound hardware has stereo capability
gestaltStereoMixing : constant := 1; -- stereo mixing on external speaker
gestaltSoundIOMgrPresent : constant := 3; -- The Sound I/O Manager is present
gestaltBuiltInSoundInput : constant := 4; -- built-in Sound Input hardware is present
gestaltHasSoundInputDevice : constant := 5; -- Sound Input device available
gestaltPlayAndRecord : constant := 6; -- built-in hardware can play and record simultaneously
gestalt16BitSoundIO : constant := 7; -- sound hardware can play and record 16-bit samples
gestaltStereoInput : constant := 8; -- sound hardware can record stereo
gestaltLineLevelInput : constant := 9; -- sound input port requires line level
-- the following bits are not defined prior to Sound Mgr 3.0
gestaltSndPlayDoubleBuffer : constant := 10; -- SndPlayDoubleBuffer available, set by Sound Mgr 3.0 and later
gestaltMultiChannels : constant := 11; -- multiple channel support, set by Sound Mgr 3.0 and later
gestalt16BitAudioSupport : constant := 12; -- 16 bit audio data supported, set by Sound Mgr 3.0 and later
gestaltStandardFileAttr : constant OSType := ToRes("stdf"); -- Standard File attributes
gestaltStandardFile58 : constant := 0; -- True if selectors 5-8 (StandardPutFile-CustomGetFile) are supported
gestaltStandardFileTranslationAware : constant := 1; -- True if standard file is translation manager aware
gestaltStandardFileHasColorIcons : constant := 2; -- True if standard file has 16x16 color icons
gestaltStandardFileUseGenericIcons : constant := 3; -- Standard file LDEF to use only the system generic icons if true
gestaltStandardFileHasDynamicVolumeAllocation : constant := 4; -- True if standard file supports more than 20 volumes
gestaltSysArchitecture : constant OSType := ToRes("sysa"); -- Native System Architecture
gestalt68k : constant := 1; -- Motorola MC68k architecture
gestaltPowerPC : constant := 2; -- IBM PowerPC architecture
gestaltSystemVersion : constant OSType := ToRes("sysv");
gestaltTSMgrVersion : constant OSType := ToRes("tsmv"); -- Text Services Mgr version, if present
gestaltTSMgr2 : constant := 16#200#;
gestaltTSMgrAttr : constant OSType := ToRes("tsma"); -- Text Services Mgr attributes, if present
gestaltTSMDisplayMgrAwareBit : constant := 0; -- TSM knows about display manager
gestaltTSMdoesTSMTEBit : constant := 1; -- TSM has integrated TSMTE
gestaltTSMTEVersion : constant OSType := ToRes("tmTV");
gestaltTSMTE1 : constant := 16#100#;
gestaltTSMTE2 : constant := 16#200#;
gestaltTSMTEAttr : constant OSType := ToRes("tmTE");
gestaltTSMTEPresent : constant := 0;
gestaltTSMTE : constant := 0; -- gestaltTSMTE is old name for gestaltTSMTEPresent
gestaltTextEditVersion : constant OSType := ToRes("te "); -- TextEdit version number
gestaltTE1 : constant := 1; -- TextEdit in MacIIci ROM
gestaltTE2 : constant := 2; -- TextEdit with 6.0.4 Script Systems on MacIIci (Script bug fixes for MacIIci)
gestaltTE3 : constant := 3; -- TextEdit with 6.0.4 Script Systems all but MacIIci
gestaltTE4 : constant := 4; -- TextEdit in System 7.0
gestaltTE5 : constant := 5; -- TextWidthHook available in TextEdit
gestaltTE6 : constant := 6; -- TextEdit in System 8.0
gestaltTEAttr : constant OSType := ToRes("teat"); -- TextEdit attributes
gestaltTEHasGetHiliteRgn : constant := 0; -- TextEdit has TEGetHiliteRgn
gestaltTESupportsInlineInput : constant := 1; -- TextEdit does Inline Input
gestaltTESupportsTextObjects : constant := 2; -- TextEdit does Text Objects
gestaltTeleMgrAttr : constant OSType := ToRes("tele"); -- Telephone manager attributes
gestaltTeleMgrPresent : constant := 0;
gestaltTeleMgrPowerPCSupport : constant := 1;
gestaltTeleMgrSoundStreams : constant := 2;
gestaltTeleMgrAutoAnswer : constant := 3;
gestaltTeleMgrIndHandset : constant := 4;
gestaltTeleMgrSilenceDetect : constant := 5;
gestaltTeleMgrNewTELNewSupport : constant := 6;
gestaltTermMgrAttr : constant OSType := ToRes("term"); -- terminal mgr attributes
gestaltTermMgrPresent : constant := 0;
gestaltTermMgrErrorString : constant := 2;
gestaltTimeMgrVersion : constant OSType := ToRes("tmgr"); -- time mgr version
gestaltStandardTimeMgr : constant := 1; -- standard time mgr is present
gestaltRevisedTimeMgr : constant := 2; -- revised time mgr is present
gestaltExtendedTimeMgr : constant := 3; -- extended time mgr is present
gestaltSpeechAttr : constant OSType := ToRes("ttsc"); -- Speech Manager attributes
gestaltSpeechMgrPresent : constant := 0; -- bit set indicates that Speech Manager exists
gestaltSpeechHasPPCGlue : constant := 1; -- bit set indicates that native PPC glue for Speech Manager API exists
gestaltToolboxTable : constant OSType := ToRes("tbtt");
gestaltThreadMgrAttr : constant OSType := ToRes("thds"); -- Thread Manager attributes
gestaltThreadMgrPresent : constant := 0; -- bit true if Thread Mgr is present
gestaltSpecificMatchSupport : constant := 1; -- bit true if Thread Mgr supports exact match creation option
gestaltThreadsLibraryPresent : constant := 2; -- bit true if Thread Mgr shared library is present
gestaltTVAttr : constant OSType := ToRes("tv "); -- TV version
gestaltHasTVTuner : constant := 0; -- supports Philips FL1236F video tuner
gestaltHasSoundFader : constant := 1; -- supports Philips TEA6330 Sound Fader chip
gestaltHasHWClosedCaptioning : constant := 2; -- supports Philips SAA5252 Closed Captioning
gestaltHasIRRemote : constant := 3; -- supports CyclopsII Infra Red Remote control
gestaltHasVidDecoderScaler : constant := 4; -- supports Philips SAA7194 Video Decoder/Scaler
gestaltHasStereoDecoder : constant := 5; -- supports Sony SBX1637A-01 stereo decoder
gestaltVersion : constant OSType := ToRes("vers"); -- gestalt version
gestaltValueImplementedVers : constant := 5; -- version of gestalt where gestaltValue is implemented.
gestaltVIA1Addr : constant OSType := ToRes("via1");
gestaltVIA2Addr : constant OSType := ToRes("via2");
gestaltVMAttr : constant OSType := ToRes("vm "); -- virtual memory attributes
gestaltVMPresent : constant := 0; -- true if virtual memory is present
gestaltTranslationAttr : constant OSType := ToRes("xlat"); -- Translation Manager attributes
gestaltTranslationMgrExists : constant := 0; -- True if translation manager exists
gestaltTranslationMgrHintOrder : constant := 1; -- True if hint order reversal in effect
gestaltTranslationPPCAvail : constant := 2;
gestaltTranslationGetPathAPIAvail : constant := 3;
gestaltExtToolboxTable : constant OSType := ToRes("xttt");
type SelectorFunctionProcPtr is access function
(selector : in OSType;
response : access Long_Integer) return OSErr;
subtype SelectorFunctionUPP is UniversalProcPtr;
uppSelectorFunctionProcInfo : constant := 16#000003E0#; -- FUNCTION (4 byte param, 4 byte param): 2 byte result;
function Gestalt
(selector : in OSType;
response : access Long_Integer)
return OSErr;
pragma Import (C, Gestalt, "Gestalt", "Gestalt");
function ReplaceGestalt
(selector : in OSType;
gestaltFunction : in SelectorFunctionUPP;
oldGestaltFunction : access SelectorFunctionUPP)
return OSErr;
pragma Import (C, ReplaceGestalt, "ReplaceGestalt", "ReplaceGestalt");
function NewGestalt
(selector : in OSType;
gestaltFunction : in SelectorFunctionUPP)
return OSErr;
pragma Import (C, NewGestalt, "NewGestalt", "NewGestalt");
-- These functions are built into System 7.5, but not on earlier systems
function NewGestaltValue
(selector : in OSType;
newValue : in Long_Integer)
return OSErr;
pragma Import (C, NewGestaltValue, "NewGestaltValue", "NewGestaltValue");
function ReplaceGestaltValue
(selector : in OSType;
replacementValue : in Long_Integer)
return OSErr;
pragma Import (C, ReplaceGestaltValue, "ReplaceGestaltValue", "ReplaceGestaltValue");
function SetGestaltValue
(selector : in OSType;
newValue : in Long_Integer)
return OSErr;
pragma Import (C, SetGestaltValue, "SetGestaltValue", "SetGestaltValue");
function DeleteGestaltValue
(selector : in OSType)
return OSErr;
pragma Import (C, DeleteGestaltValue, "DeleteGestaltValue", "DeleteGestaltValue");
end Gestalt;