Bin-patch MPW to shut down on quit
This commit is contained in:
parent
8e376852da
commit
5acac806a1
|
@ -1,25 +0,0 @@
|
|||
; AutoQuit.a
|
||||
;
|
||||
; Copyright (C) 2004 Paul Pratt
|
||||
;
|
||||
; You can redistribute this file and/or modify it under the terms
|
||||
; of version 2 of the GNU General Public License as published by
|
||||
; the Free Software Foundation. You should have received a copy
|
||||
; of the license along with this file; see the file COPYING.
|
||||
;
|
||||
; This file is distributed in the hope that it will be useful,
|
||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
; license for more details.
|
||||
|
||||
AutoQuit MAIN EXPORT
|
||||
BLANKS ON
|
||||
STRING ASIS
|
||||
|
||||
IMPORT MyStart : CODE
|
||||
|
||||
JMP MyStart ; call linked C function
|
||||
|
||||
ENDMAIN
|
||||
|
||||
END
|
|
@ -1 +0,0 @@
|
|||
TEXTMPS
|
|
@ -1,278 +0,0 @@
|
|||
/*
|
||||
AutoQuit.c
|
||||
|
||||
Copyright (C) 2004 Paul Pratt
|
||||
|
||||
You can redistribute this file and/or modify it under the terms
|
||||
of version 2 of the GNU General Public License as published by
|
||||
the Free Software Foundation. You should have received a copy
|
||||
of the license along with this file; see the file COPYING.
|
||||
|
||||
This file is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
license for more details.
|
||||
*/
|
||||
|
||||
#include <types.h>
|
||||
#include <limits.h>
|
||||
#include <stddef.h>
|
||||
#include <SegLoad.h>
|
||||
#include <Script.h>
|
||||
#include <Files.h>
|
||||
#include <Devices.h>
|
||||
#include <Windows.h>
|
||||
#include <TextEdit.h>
|
||||
#include <Dialogs.h>
|
||||
#include <ShutDown.h>
|
||||
#include <Traps.h>
|
||||
#include <Scrap.h>
|
||||
|
||||
typedef unsigned long ui5b;
|
||||
typedef unsigned short ui4b;
|
||||
typedef unsigned char ui3b;
|
||||
|
||||
typedef long si5b;
|
||||
typedef short si4b;
|
||||
typedef char si3b;
|
||||
|
||||
#define NULL ((void *)0)
|
||||
|
||||
#define kdCtlPosition 16
|
||||
|
||||
#define kDSK_Block_Base 0x00F40000
|
||||
#define kDSK_QuitOnEject 3
|
||||
|
||||
#define SonyVarsPtr 0x0134
|
||||
|
||||
#define kcom_checkval 0x841339E2
|
||||
#define kcom_callcheck 0x5B17
|
||||
|
||||
#define kDiskDriverExtension 0x4C9219E6
|
||||
|
||||
struct MyDriverDat_R {
|
||||
ui5b zeroes[4];
|
||||
ui5b checkval;
|
||||
ui5b pokeaddr;
|
||||
};
|
||||
typedef struct MyDriverDat_R MyDriverDat_R;
|
||||
|
||||
#define DSKDat_checkval 0
|
||||
#define DSKDat_extension 2
|
||||
#define DSKDat_commnd 4
|
||||
#define DSKDat_result 6
|
||||
#define DSKDat_params 8
|
||||
#define DSKDat_TotSize 32
|
||||
|
||||
#define kCmndFindExtnFind 1
|
||||
#define kCmndFindExtnId2Code 2
|
||||
#define kCmndFindExtnCount 3
|
||||
|
||||
#define kCmndDiskNDrives 1
|
||||
#define kCmndDiskRead 2
|
||||
#define kCmndDiskWrite 3
|
||||
#define kCmndDiskEject 4
|
||||
#define kCmndDiskGetSize 5
|
||||
#define kCmndDiskGetCallBack 6
|
||||
#define kCmndDiskSetCallBack 7
|
||||
#define kCmndDiskQuitOnEject 8
|
||||
|
||||
#define kParamVersion 8
|
||||
|
||||
#define kParamFindExtnTheExtn 8
|
||||
#define kParamFindExtnTheId 12
|
||||
|
||||
#define ROMBase 0x02AE
|
||||
|
||||
#define UTableBase 0x011C
|
||||
#define UnitTableEntryCount 0x01D2
|
||||
#define VCBQHead 0x358
|
||||
|
||||
|
||||
#define get_long(x) (*((ui5b *)(x)))
|
||||
#define get_word(x) (*((ui4b *)(x)))
|
||||
#define get_byte(x) (*((ui3b *)(x)))
|
||||
#define put_long(x, v) (*((ui5b *)(x))) = (v)
|
||||
#define put_word(x, v) (*((ui4b *)(x))) = (v)
|
||||
#define put_byte(x, v) (*((ui3b *)(x))) = (v)
|
||||
|
||||
QDGlobals qd;
|
||||
|
||||
static TrapType GetTrapType(short theTrap)
|
||||
{
|
||||
if ((theTrap & 0x0800) != 0) {
|
||||
return ToolTrap;
|
||||
} else {
|
||||
return OSTrap;
|
||||
}
|
||||
}
|
||||
|
||||
static short NumToolboxTraps(void)
|
||||
{
|
||||
if (NGetTrapAddress(_InitGraf, ToolTrap)
|
||||
== NGetTrapAddress(0xAA6E, ToolTrap))
|
||||
{
|
||||
return 0x200;
|
||||
} else {
|
||||
return 0x400;
|
||||
}
|
||||
}
|
||||
|
||||
static Boolean TrapAvailable(short trap_num)
|
||||
{
|
||||
TrapType type;
|
||||
|
||||
type = GetTrapType(trap_num);
|
||||
if (type == ToolTrap) {
|
||||
trap_num &= 0x07ff;
|
||||
}
|
||||
if (trap_num > NumToolboxTraps()) {
|
||||
return false;
|
||||
} else {
|
||||
return NGetTrapAddress(trap_num, type)
|
||||
!= NGetTrapAddress(_Unimplemented, ToolTrap);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#define MKC_Shift 0x38
|
||||
|
||||
/*
|
||||
Don't have 'main', and instead have a bit of assembly
|
||||
language call 'MyStart', to avoid the glue code of
|
||||
a development environment that doesn't really support
|
||||
Macintosh 128K
|
||||
*/
|
||||
|
||||
void MyStart(void);
|
||||
|
||||
void MyStart(void)
|
||||
{
|
||||
ui3b theKeys[16];
|
||||
MyDriverDat_R *SonyVars;
|
||||
|
||||
InitGraf((Ptr)&qd.thePort);
|
||||
InitFonts();
|
||||
InitWindows();
|
||||
InitMenus();
|
||||
TEInit();
|
||||
InitDialogs(NULL);
|
||||
|
||||
GetKeys(*(KeyMap *)theKeys);
|
||||
if ((theKeys[MKC_Shift / 8] & (1 << (MKC_Shift & 7))) == 0) {
|
||||
/* shift key not pressed */
|
||||
|
||||
SonyVars = (MyDriverDat_R *)get_long(SonyVarsPtr);
|
||||
|
||||
if ((SonyVars != NULL)
|
||||
&& ((1 & (ui5b)SonyVars) == 0)
|
||||
/* for emulators like sheepshaver */
|
||||
&& (SonyVars->zeroes[0] == 0)
|
||||
&& (SonyVars->zeroes[1] == 0)
|
||||
&& (SonyVars->zeroes[2] == 0)
|
||||
/* && (SonyVars->zeroes[3] == 0) */
|
||||
)
|
||||
{
|
||||
ui5b pokeaddr = SonyVars->pokeaddr;
|
||||
|
||||
if ((SonyVars->checkval == kcom_checkval)
|
||||
&& (pokeaddr != 0))
|
||||
{
|
||||
/* have new Mini vMac extension mechanism */
|
||||
|
||||
ui3b DskDatV[DSKDat_TotSize];
|
||||
ui4b DistExtnId;
|
||||
|
||||
put_word(DskDatV + DSKDat_checkval, kcom_callcheck);
|
||||
put_word(DskDatV + DSKDat_extension, 0);
|
||||
put_word(DskDatV + DSKDat_commnd, kCmndFindExtnFind);
|
||||
put_long(DskDatV + kParamFindExtnTheExtn,
|
||||
kDiskDriverExtension);
|
||||
put_long(pokeaddr, (ui5b)&DskDatV);
|
||||
if (get_word(DskDatV + DSKDat_checkval) == 0) {
|
||||
DistExtnId =
|
||||
get_word(DskDatV + kParamFindExtnTheId);
|
||||
|
||||
put_word(DskDatV + DSKDat_checkval, kcom_callcheck);
|
||||
put_word(DskDatV + DSKDat_extension, DistExtnId);
|
||||
put_word(DskDatV + DSKDat_commnd,
|
||||
kCmndDiskQuitOnEject);
|
||||
put_long(pokeaddr, (ui5b)&DskDatV);
|
||||
}
|
||||
} else {
|
||||
/* see if this is old Mini vMac */
|
||||
Ptr StartAddr = *(Ptr *)ROMBase;
|
||||
if (StartAddr == (Ptr)0x00400000) {
|
||||
ui5b CheckSum = get_long(StartAddr);
|
||||
if ((CheckSum == 0x4D1EEEE1)
|
||||
|| (CheckSum == 0x4D1EEAE1)
|
||||
|| (CheckSum == 0x4D1F8172))
|
||||
{
|
||||
/* this is a Mac Plus, now check for patches */
|
||||
if ((get_word(StartAddr + 3450) == 0x6022)
|
||||
&& (get_word(StartAddr + 3752) == 0x4E71)
|
||||
&& (get_word(StartAddr + 3728) == 0x4E71))
|
||||
{
|
||||
/* yes, this is old Mini vMac */
|
||||
((short *)kDSK_Block_Base)[kDSK_QuitOnEject]
|
||||
= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (TrapAvailable(_ShutDown)) {
|
||||
ShutDwnPower();
|
||||
} else {
|
||||
/*
|
||||
manual shutdown, following description of Shutdown
|
||||
manager in Inside Mac Vol V.
|
||||
*/
|
||||
|
||||
int i;
|
||||
ParamBlockRec r;
|
||||
ui5b *UTable = (ui5b *)get_long(UTableBase);
|
||||
ui4b UCount = get_word(UnitTableEntryCount);
|
||||
VCBPtr vcbp;
|
||||
VCBPtr nextvcbp;
|
||||
|
||||
for (i = 0; i < UCount; ++i) {
|
||||
DCtlHandle h = (DCtlHandle)UTable[i];
|
||||
if (h != NULL) {
|
||||
if (((*h)->dCtlFlags & (1 << dNeedGoodBye)) != 0) {
|
||||
r.cntrlParam.ioCompletion = NULL;
|
||||
r.cntrlParam.ioVRefNum = 0;
|
||||
r.cntrlParam.ioCRefNum = (*h)->dCtlRefNum;
|
||||
r.cntrlParam.csCode = -1;
|
||||
PBControlSync(&r);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
(void) UnloadScrap();
|
||||
|
||||
vcbp = (VCBPtr)get_long(VCBQHead);
|
||||
|
||||
while (vcbp != NULL) {
|
||||
nextvcbp = (VCBPtr)vcbp->qLink;
|
||||
r.ioParam.ioCompletion = NULL;
|
||||
r.ioParam.ioNamePtr = NULL;
|
||||
r.ioParam.ioVRefNum = vcbp->vcbVRefNum;
|
||||
(void) PBEject(&r);
|
||||
(void) PBUnmountVol(&r);
|
||||
vcbp = nextvcbp;
|
||||
}
|
||||
/*
|
||||
in case haven't actually quit by now.
|
||||
documentation mentions something about
|
||||
async component of PBEject.
|
||||
*/
|
||||
while (1) {
|
||||
EventRecord theEvent;
|
||||
(void)GetNextEvent(everyEvent, &theEvent);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
TEXTMPS
|
|
@ -1,62 +0,0 @@
|
|||
/*
|
||||
AutoQuit.r
|
||||
|
||||
Copyright (C) 2004 Paul Pratt
|
||||
|
||||
You can redistribute this file and/or modify it under the terms
|
||||
of version 2 of the GNU General Public License as published by
|
||||
the Free Software Foundation. You should have received a copy
|
||||
of the license along with this file; see the file COPYING.
|
||||
|
||||
This file is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
license for more details.
|
||||
*/
|
||||
|
||||
#include "Types.r"
|
||||
#include "Icons.r"
|
||||
|
||||
#define kStrVersion "1.1.1"
|
||||
#define kMajorVersion 1
|
||||
#define kMinorVersion 1
|
||||
#define kMinorSubVersion 1
|
||||
|
||||
#define kStrCopyrightYear "2012"
|
||||
|
||||
resource 'vers' (1) {
|
||||
kMajorVersion,
|
||||
kMinorVersion * 16 + kMinorSubVersion,
|
||||
release,
|
||||
0x0,
|
||||
0,
|
||||
kStrVersion,
|
||||
kStrVersion ", © " kStrCopyrightYear " Paul C. Pratt."
|
||||
};
|
||||
|
||||
/*
|
||||
for SIZE flags, just pretend it's a normal
|
||||
application. i.e. it would act normally, if
|
||||
it didn't quit immediately after launch.
|
||||
*/
|
||||
|
||||
resource 'SIZE' (-1) {
|
||||
reserved,
|
||||
acceptSuspendResumeEvents,
|
||||
reserved,
|
||||
canBackground,
|
||||
multiFinderAware,
|
||||
backgroundAndForeground,
|
||||
dontGetFrontClicks,
|
||||
ignoreChildDiedEvents,
|
||||
is32BitCompatible,
|
||||
isHighLevelEventAware,
|
||||
localAndRemoteHLEvents,
|
||||
isStationeryAware,
|
||||
useTextEditServices,
|
||||
reserved,
|
||||
reserved,
|
||||
reserved,
|
||||
65536,
|
||||
65536
|
||||
};
|
|
@ -1 +0,0 @@
|
|||
TEXTMPS
|
|
@ -1,345 +0,0 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
|
@ -1 +0,0 @@
|
|||
TEXTMPS
|
|
@ -1,36 +0,0 @@
|
|||
mk_output_d = :
|
||||
ProjNm = AutoQuit
|
||||
|
||||
mk_source_d = {mk_output_d}
|
||||
mk_obj_d = {mk_output_d}
|
||||
mk_built_program = {mk_output_d}{ProjNm}
|
||||
|
||||
mk_CallC = SC
|
||||
mk_COptions = -proto strict -w 17 -align mac68k -b -mbg off -opt space
|
||||
mk_CallA = Asm
|
||||
mk_AOptions = -case on
|
||||
|
||||
|
||||
TheApplication ƒ "{mk_built_program}"
|
||||
|
||||
"{mk_obj_d}{ProjNm}.c.o" ƒ "{mk_source_d}{ProjNm}.c"
|
||||
{mk_CallC} "{mk_source_d}{ProjNm}.c" -o "{mk_obj_d}{ProjNm}.c.o" {mk_COptions}
|
||||
"{mk_obj_d}{ProjNm}.a.o" ƒ "{mk_source_d}{ProjNm}.a"
|
||||
{mk_CallA} "{mk_source_d}{ProjNm}.a" -o "{mk_obj_d}{ProjNm}.a.o" {mk_AOptions}
|
||||
|
||||
ObjFiles = ∂
|
||||
"{mk_obj_d}{ProjNm}.a.o" ∂
|
||||
"{mk_obj_d}{ProjNm}.c.o" ∂
|
||||
|
||||
|
||||
"{mk_obj_d}{ProjNm}.rsrc" ƒ "{mk_source_d}{ProjNm}.r"
|
||||
Rez -t rsrc -c RSED -i "{RIncludes}" "{mk_source_d}{ProjNm}.r" -o "{mk_obj_d}{ProjNm}.rsrc"
|
||||
|
||||
"{mk_built_program}" ƒ {ObjFiles} "{mk_obj_d}{ProjNm}.rsrc"
|
||||
Duplicate -y "{mk_obj_d}{ProjNm}.rsrc" "{mk_built_program}"
|
||||
Link -t FNDR -c MACS -rn ∂
|
||||
-sg Main=STDCLIB,SANELIB,CSANELib,SADEV,STDIO ∂
|
||||
-o {mk_built_program} ∂
|
||||
{ObjFiles} ∂
|
||||
"{Libraries}"Interface.o
|
||||
SetFile -d . -m . -a B "{mk_built_program}"
|
|
@ -1 +0,0 @@
|
|||
TEXTMPS
|
|
@ -1,28 +0,0 @@
|
|||
AutoQuit README
|
||||
Paul C. Pratt
|
||||
www.gryphel.com
|
||||
April 25, 2008
|
||||
|
||||
|
||||
AutoQuit assists in 'wrapping' an application for the Mac Plus,
|
||||
so that you can use it with Mini vMac more as you would an
|
||||
native application for your machine.
|
||||
|
||||
Further information may be found at
|
||||
"http://minivmac.sourceforge.net/extras/autoquit.html".
|
||||
|
||||
|
||||
You can redistribute AutoQuit and/or modify it under the terms
|
||||
of version 2 of the GNU General Public License as published by
|
||||
the Free Software Foundation. See the included file COPYING.
|
||||
|
||||
AutoQuit is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
license for more details.
|
||||
|
||||
--
|
||||
|
||||
To compile AutoQuit using MPW, set the current directory to
|
||||
the "source" directory. Then execute the 'Make' command, and
|
||||
execute the output of the make.
|
|
@ -1 +0,0 @@
|
|||
TEXTMPS
|
|
@ -1 +0,0 @@
|
|||
FNDRMACS
|
|
@ -1,60 +0,0 @@
|
|||
data 'vers' (1) {
|
||||
$"0111 8000 0000 0531 2E31 2E31 1C31 2E31" /* .......1.1.1.1.1 */
|
||||
$"2E31 2C20 A920 3230 3132 2050 6175 6C20" /* .1, . 2012 Paul */
|
||||
$"432E 2050 7261 7474 2E" /* C. Pratt. */
|
||||
};
|
||||
|
||||
data 'SIZE' (-1) {
|
||||
$"58F8 0001 0000 0001 0000" /* X......... */
|
||||
};
|
||||
|
||||
data 'CODE' (0, purgeable) {
|
||||
$"0000 0028 0000 00D0 0000 0008 0000 0020" /* ...(........... */
|
||||
$"0000 3F3C 0001 A9F0" /* ..?<.... */
|
||||
};
|
||||
|
||||
data 'CODE' (1, locked, preload) {
|
||||
$"0000 0001 4EFA 00B8 4E56 0000 302E 0008" /* ....N...NV..0... */
|
||||
$"0240 0800 6704 7001 6002 4200 4E5E 4E75" /* .@..g.p.`.B.N^Nu */
|
||||
$"48E7 1020 594F 3F3C A86E 7601 1F03 4EBA" /* H.. YO?<.nv...N. */
|
||||
$"025C 205F 2448 594F 3F3C AA6E 1F03 4EBA" /* .\ _$HYO?<.n..N. */
|
||||
$"024C 225F 204A B1C9 6606 303C 0200 6004" /* .L"_ J..f.0<..`. */
|
||||
$"303C 0400 4CDF 0408 4E75 4E56 FFFC 48E7" /* 0<..L...NuNV..H. */
|
||||
$"1020 362E 0008 3F03 4EBA FF9E 544F 1D40" /* . 6...?.N...TO.@ */
|
||||
$"FFFC 7201 B001 6604 0243 07FF 4EBA FFA2" /* ..r...f..C..N... */
|
||||
$"B043 6C04 4200 602E 594F 3F03 1F2E FFFC" /* .Cl.B.`.YO?..... */
|
||||
$"4EBA 01FA 205F 2448 594F 3F3C A89F 7001" /* N... _$HYO?<..p. */
|
||||
$"1F00 4EBA 01E8 225F 204A B1C9 6604 7000" /* ..N..."_ J..f.p. */
|
||||
$"6002 7001 2000 4CDF 0408 4E5E 4E75 4E56" /* `.p. .L...N^NuNV */
|
||||
$"FF6C 48E7 1C38 486D FFFC A86E A8FE A912" /* .lH..8Hm...n.... */
|
||||
$"A930 A9CC 42A7 A97B 486E FF6C A976 102E" /* .0..B..{Hn.l.v.. */
|
||||
$"FF73 7201 C001 6600 00E4 207C 0000 0134" /* .sr...f... |...4 */
|
||||
$"2010 2D40 FF7C 4A80 6700 00D2 322E FF7E" /* .-@.|J.g...2..~ */
|
||||
$"7401 C242 6600 00C6 2040 4A90 6600 00BE" /* t..Bf... @J.f... */
|
||||
$"4AA8 0004 6600 00B6 4AA8 0008 6600 00AE" /* J...f...J...f... */
|
||||
$"2040 2828 0014 2028 0010 0C80 8413 39E2" /* @((.. (......9. */
|
||||
$"6644 4A84 6740 363C 5B17 3D43 FF80 4240" /* fDJ.g@6<[.=C..B@ */
|
||||
$"3D40 FF82 7001 3D40 FF84 2D7C 4C92 19E6" /* =@..p.=@..-|L... */
|
||||
$"FF88 45EE FF80 2644 268A 302E FF80 666C" /* ..E...&D&.0...fl */
|
||||
$"3A2E FF8C 3D43 FF80 3D45 FF82 7008 3D40" /* :...=C..=E..p.=@ */
|
||||
$"FF84 268A 6056 207C 0000 02AE 2450 200A" /* ..&.`V |....$P . */
|
||||
$"0C80 0040 0000 2440 6642 2612 0C83 4D1E" /* ...@..$@fB&...M. */
|
||||
$"EEE1 6710 0C83 4D1E EAE1 6708 0C83 4D1F" /* ..g...M...g...M. */
|
||||
$"8172 6628 302A 0D7A 0C40 6022 661E 302A" /* .rf(0*.z.@`"f.0* */
|
||||
$"0EA8 383C 4E71 B044 6612 302A 0E90 B044" /* ..8<Nq.Df.0*...D */
|
||||
$"660A 7001 207C 00F4 0006 3080 3F3C A895" /* f.p. |....0.?<.. */
|
||||
$"4EBA FE88 544F 4A00 6600 00A4 207C 0000" /* N...TOJ.f... |.. */
|
||||
$"011C 2650 207C 0000 01D2 3A10 7600 3005" /* ..&P |....:.v.0. */
|
||||
$"7800 3800 603E 2003 E580 D08B 2040 2450" /* x.8.`> ..... @$P */
|
||||
$"200A 672E 2052 3028 0004 7210 C041 6722" /* .g. R0(..r..Ag" */
|
||||
$"7000 2D40 FFAC 4240 3D40 FFB6 2052 3028" /* p.-@..B@=@.. R0( */
|
||||
$"0018 3D40 FFB8 70FF 3D40 FFBA 41EE FFA0" /* ..=@..p.=@..A... */
|
||||
$"A004 5283 B883 6EBE 594F A9FA 584F 207C" /* ..R...n.YO..XO | */
|
||||
$"0000 0358 2650 6022 2853 7600 2D43 FFAC" /* ...X&P`"(Sv.-C.. */
|
||||
$"2D43 FFB2 302B 004E 3D40 FFB6 41EE FFA0" /* -C..0+.N=@..A... */
|
||||
$"A017 41EE FFA0 A00E 264C 200B 66DA 554F" /* ..A.....&L .f.UO */
|
||||
$"3F3C FFFF 486E FFF0 A970 544F 60F0 3F3C" /* ?<..Hn...pTO`.?< */
|
||||
$"0001 A895 4CDF 1C38 4E5E 4E75 225F 121F" /* ....L..8N^Nu"_.. */
|
||||
$"301F 4A01 6704 A746 6002 A346 2E88 4ED1" /* 0.J.g..F`..F..N. */
|
||||
};
|
||||
|
|
@ -1 +1 @@
|
|||
APPLMPS
|
||||
FNDRMACS
|
|
@ -15543,7 +15543,7 @@ data 'CODE' (6, "Commands", purgeable, preload) {
|
|||
$"DD2E 6022 4AAE FFF8 6708 3B7C 0001 DD2E" /* ..`"J...g.;|.... */
|
||||
$"6014 4AAE FFFC 6708 3B7C 0002 DD2E 6006" /* `.J...g.;|....`. */
|
||||
$"3B7C FFFF DD2E 3B7C 0001 DD30 3B7C 0001" /* ;|....;|...0;|.. */
|
||||
$"DD2C 7000 4E5E 4E75 8471 7569 7400 0000" /* .,p.N^Nu.quit... */
|
||||
$"DD2C 7000 4E5E 3F3C 0001 A895 7400 0000" // ShutDwnPower() appended to quit()
|
||||
$"4E56 0000 48E7 0318 47ED D556 286E 000C" /* NV..H...G..V(n.. */
|
||||
$"2E2E 0008 7C01 6036 486D CFE2 584C 2F14" /* ....|.`6Hm..XL/. */
|
||||
$"4EAD 0D0A 4A00 504F 6704 7C00 6020 2F14" /* N...J.POg.|.` /. */
|
||||
|
|
Loading…
Reference in New Issue