All the Executor source as-is from the subversion tree it was last worked on.

This commit is contained in:
Clifford T. Matthews
2008-10-05 21:48:37 -06:00
commit 3183eb6ea0
2517 changed files with 441747 additions and 0 deletions

649
docs/gestalt/t1.html Normal file
View File

@@ -0,0 +1,649 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
><HEAD
><TITLE
>Gestalt under ROMlib</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="NEXT"
TITLE="ARDI selectors"
HREF="x163.html"></HEAD
><BODY
CLASS="article"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="ARTICLE"
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="title"
><A
NAME="AEN2"><TT
CLASS="function"
>Gestalt</TT
> under ROMlib</H1
><P
CLASS="copyright"
>Copyright &copy; 1999, 2002 by Abacus Research &#38; Development, Inc.</P
><DIV
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="50%"
CELLSPACING="0"
CELLPADDING="0"
ALIGN="CENTER"
><TR
><TD
VALIGN="TOP"
><B
>Abstract</B
></TD
></TR
><TR
><TD
VALIGN="TOP"
><P
>&#13;This article provides information about <TT
CLASS="function"
>Gestalt</TT
>
under ROMlib. Since <TT
CLASS="application"
>Executor</TT
> and the
Carbonless Copies Runtime System both use ROMlib, this information
also applies to them.
</P
></TD
></TR
></TABLE
></DIV
><HR
WIDTH="75%"
ALIGN="CENTER"
COLOR="#000000"
SIZE="1"></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="t1.html#AEN20"
>Apple Selectors</A
></DT
><DT
><A
HREF="x163.html"
>ARDI selectors</A
></DT
></DL
></DIV
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="./stylesheet-images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>&#13;The information in this paper is <I
CLASS="emphasis"
>not</I
> built
directly from the ROMlib source. It is provided as-is and is subject
to change.
</P
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="AEN20">Apple Selectors</H1
><P
>&#13;PageMaker 4.2 calls <TT
CLASS="function"
>Gestalt</TT
> with the
<TT
CLASS="constant"
>gestaltAliasMgrAttr</TT
> selector and if
<TT
CLASS="function"
>Gestalt</TT
> returns <SPAN
CLASS="returnvalue"
>noErr</SPAN
>,
proceeds to use the Alias Manager, even the response is
<SPAN
CLASS="returnvalue"
>0</SPAN
>. PageMaker 4.2 will not use the Alias
Manager if in this case <TT
CLASS="function"
>Gestalt</TT
> returns
<SPAN
CLASS="returnvalue"
>gestaltUndefSelectorErr</SPAN
>. PageMaker 4.2's
use of <TT
CLASS="function"
>Gestalt</TT
> doesn't appear to be within spec
(IMVI), but that's just another difference where ROMlib has to do what
the Mac does, rather than what the specifications suggest.
</P
><P
>&#13;MacInTax '93 does the same thing with the Edition Manager that
PageMaker does with the Alias Manager. Claris Works does the same
thing with Apple Events. After ARDI saw three instances of this
behavior ARDI stopped keeping track. Because of such behavior, there
are a number of selectors that ROMlib deliberately fails to recognize.
ROMlib does this when its support for the queried functionality is
incomplete. Here are the selectors that ROMlib deliberately fails to
recognize:
</P
><P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><TT
CLASS="constant"
>gestaltAliasMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltApplEventsAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltAppleTalkVersion</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltAUXVersion</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltConnMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltCRMAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltCTBVersion</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltDBAccessMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltEasyAccessAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltEditionMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltFontMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltFXfrMgrAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltHardwareAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltHelpMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltMiscAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltNotificatinMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltNuBusConnectors</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltOSAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltPopupAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltPowerMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltPPCToolboxAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltResourceMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltScriptCount</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltScriptMgrVersion</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltSerialAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltStdNBPAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltTermMgrAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltParityAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltVMAttr</TT
></TD
><TD
>'<TT
CLASS="literal"
>icmp</TT
>'</TD
></TR
><TR
><TD
>'<TT
CLASS="literal"
>sysa</TT
>'</TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
></TR
></TBODY
></TABLE
><P
></P
><P
>&#13;ROMlib recognizes and returns information for these selectors:
</P
><P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><TT
CLASS="constant"
>gestaltDITLExtAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltFindFolderAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltFSAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltSoundAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltExtToolboxTable</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltToolboxTable</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltOSTable</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltFPUType</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltKeyboardType</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltLogicalPageSize</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltLogicalRAMSize</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltLowMemorySize</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltMMUType</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltPhysicalRAMSize</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltProcessorType</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltQuickdrawVersion</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltQuickdrawFeatures</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltTimeMgrVersion</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltVersion</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltMachineIcon</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltMachineType</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltROMSize</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltROMVersion</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltSystemVersion</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltTextEditVersion</TT
></TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
></TR
></TBODY
></TABLE
><P
></P
><P
>&#13;ROMlib fails to recognize the following four selectors unless they are
specifically enabled by the "pretend" options (Pretend Help, Pretend
Edition, Pretend Script, Pretend Alias). The pretend options can be
enabled in the preferences panel or via a configuration file.
</P
><P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><TT
CLASS="constant"
>gestaltHelpMgrAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltScriptMgrVersion</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltEditionMgrAttr</TT
></TD
></TR
><TR
><TD
><TT
CLASS="constant"
>gestaltAliasMgrAttr</TT
></TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
></TR
></TBODY
></TABLE
><P
></P
><P
>&#13;These two selectors are only recognized if the system version is set
to 7.0 or higher:
</P
><P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><TT
CLASS="constant"
>gestaltStandardFileAttr</TT
></TD
><TD
><TT
CLASS="constant"
>gestaltApplEventsAttr</TT
></TD
><TD
>&nbsp;</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x163.html"
ACCESSKEY="N"
>Next &#62;&#62;&#62;</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>ARDI selectors</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

410
docs/gestalt/x163.html Normal file
View File

@@ -0,0 +1,410 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
><HEAD
><TITLE
>ARDI selectors</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Gestalt under ROMlib"
HREF="t1.html"><LINK
REL="PREVIOUS"
TITLE="Gestalt under ROMlib"
HREF="t1.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
><TT
CLASS="function"
>Gestalt</TT
> under ROMlib</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="t1.html"
ACCESSKEY="P"
>&#60;&#60;&#60; Previous</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
>&nbsp;</TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="AEN163">ARDI selectors</H1
><P
>&#13;ARDI has added one special <TT
CLASS="function"
>gestalt</TT
> selector,
<TT
CLASS="constant"
>gestaltPHYSICAL</TT
> ('<TT
CLASS="literal"
>MUL8</TT
>'). It
returns the address of a routine that behaves just like
<TT
CLASS="function"
>Gestalt</TT
>, but provides access to a completely
different set of tables. These tables contain information about the
environment in which <TT
CLASS="application"
>Executor</TT
> is running
instead the emulated environment that
<TT
CLASS="application"
>Executor</TT
> provides.
</P
><P
>&#13;Example:
</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="programlisting"
>&#13;
int PhysicalGestalt (long selector, long *responsep)
{
int retval;
pascal int (*physfp) (long sel, long *responsep);
retval = Gestalt ('MUL8', (void *) &#38;physfp);
if (retval == noErr)
retval = physfp (selector, responsep);
return retval;
}
...
OSErr err;
long vers;
err = PhysicalGestalt ('sysv', &#38;vers);
/* err should be noErr and vers should be the version of Executor you're
running, not the version of the System file we're emulating */
</PRE
></TD
></TR
></TABLE
><P
>&#13;These are the PhysicalGestalt selectors supported:
</P
><DIV
CLASS="table"
><A
NAME="AEN175"><P
><B
>Table 1. PhysicalGestalt Selectors</B
></P
><TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
ALIGN="LEFT"
VALIGN="MIDDLE"
>Name</TH
><TH
ALIGN="LEFT"
VALIGN="MIDDLE"
>Value</TH
><TH
ALIGN="LEFT"
VALIGN="MIDDLE"
>Response</TH
></TR
></THEAD
><TBODY
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>gestaltSystemVersion</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>'<TT
CLASS="literal"
>sysv</TT
>'</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>numeric version of <TT
CLASS="application"
>Executor</TT
></TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>gestaltExecutorVersionString</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>'<TT
CLASS="literal"
>xqtr</TT
>'</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>address of the string version of <TT
CLASS="application"
>Executor</TT
></TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>gestaltDemoStatus</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>'<TT
CLASS="literal"
>demo</TT
>'</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>1, if this is a demo version</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>gestaltDemoExpiration</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>'<TT
CLASS="literal"
>xpir</TT
>'</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>how many days until the demo expires</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>gestaltSerialNumber</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>'<TT
CLASS="literal"
>s/n </TT
>'</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>non-demo version: serial number</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>gestaltRegisteredName</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>'<TT
CLASS="literal"
>name</TT
>'</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>non-demo version: name </TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>gestaltRegisteredOrg</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>'<TT
CLASS="literal"
>org </TT
>'</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>non-demo version: organization</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>gestaltPhysicalRAMSize</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>'<TT
CLASS="literal"
>ram </TT
>'</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>amount of physical ram on the machine</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>gestaltScreenSize</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>'<TT
CLASS="literal"
>scrn</TT
>'</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>resolution of the monitor</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>gestaltGhostScriptVersion</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>'<TT
CLASS="literal"
>gost</TT
>'</TD
><TD
ALIGN="LEFT"
VALIGN="MIDDLE"
>win32 only: Ghostscript DLL version</TD
></TR
></TBODY
></TABLE
></DIV
><P
>&#13;ARDI is willing to add PhysicalGestalt selectors as Mac developers require.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="t1.html"
ACCESSKEY="P"
>&#60;&#60;&#60; Previous</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="t1.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>&nbsp;</TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><TT
CLASS="function"
>Gestalt</TT
> under ROMlib</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>&nbsp;</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>