From 23e5c144d23e97886f993359174678703b7a342f Mon Sep 17 00:00:00 2001 From: Elliot Nunn Date: Tue, 6 Nov 2018 07:49:16 +0800 Subject: [PATCH] AutoQuit --- AutoQuit Info/AutoQuit.a | 25 +++ AutoQuit Info/AutoQuit.a.idump | 1 + AutoQuit Info/AutoQuit.c | 278 +++++++++++++++++++++++++ AutoQuit Info/AutoQuit.c.idump | 1 + AutoQuit Info/AutoQuit.r | 62 ++++++ AutoQuit Info/AutoQuit.r.idump | 1 + AutoQuit Info/COPYING.txt | 345 ++++++++++++++++++++++++++++++++ AutoQuit Info/COPYING.txt.idump | 1 + AutoQuit Info/Makefile | 36 ++++ AutoQuit Info/Makefile.idump | 1 + AutoQuit Info/README.txt | 28 +++ AutoQuit Info/README.txt.idump | 1 + BootableMPW/AutoQuit.idump | 1 + BootableMPW/AutoQuit.rdump | 60 ++++++ BootableMPW/MPW Shell.idump | 2 +- all.sh | 2 +- 16 files changed, 843 insertions(+), 2 deletions(-) create mode 100644 AutoQuit Info/AutoQuit.a create mode 100644 AutoQuit Info/AutoQuit.a.idump create mode 100644 AutoQuit Info/AutoQuit.c create mode 100644 AutoQuit Info/AutoQuit.c.idump create mode 100644 AutoQuit Info/AutoQuit.r create mode 100644 AutoQuit Info/AutoQuit.r.idump create mode 100644 AutoQuit Info/COPYING.txt create mode 100644 AutoQuit Info/COPYING.txt.idump create mode 100644 AutoQuit Info/Makefile create mode 100644 AutoQuit Info/Makefile.idump create mode 100644 AutoQuit Info/README.txt create mode 100644 AutoQuit Info/README.txt.idump create mode 100644 BootableMPW/AutoQuit.idump create mode 100644 BootableMPW/AutoQuit.rdump diff --git a/AutoQuit Info/AutoQuit.a b/AutoQuit Info/AutoQuit.a new file mode 100644 index 0000000..3965b8b --- /dev/null +++ b/AutoQuit Info/AutoQuit.a @@ -0,0 +1,25 @@ +; 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 diff --git a/AutoQuit Info/AutoQuit.a.idump b/AutoQuit Info/AutoQuit.a.idump new file mode 100644 index 0000000..124c75a --- /dev/null +++ b/AutoQuit Info/AutoQuit.a.idump @@ -0,0 +1 @@ +TEXTMPS \ No newline at end of file diff --git a/AutoQuit Info/AutoQuit.c b/AutoQuit Info/AutoQuit.c new file mode 100644 index 0000000..95912bb --- /dev/null +++ b/AutoQuit Info/AutoQuit.c @@ -0,0 +1,278 @@ +/* + 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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); + } + } +} diff --git a/AutoQuit Info/AutoQuit.c.idump b/AutoQuit Info/AutoQuit.c.idump new file mode 100644 index 0000000..124c75a --- /dev/null +++ b/AutoQuit Info/AutoQuit.c.idump @@ -0,0 +1 @@ +TEXTMPS \ No newline at end of file diff --git a/AutoQuit Info/AutoQuit.r b/AutoQuit Info/AutoQuit.r new file mode 100644 index 0000000..ca65b3d --- /dev/null +++ b/AutoQuit Info/AutoQuit.r @@ -0,0 +1,62 @@ +/* + 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 +}; diff --git a/AutoQuit Info/AutoQuit.r.idump b/AutoQuit Info/AutoQuit.r.idump new file mode 100644 index 0000000..124c75a --- /dev/null +++ b/AutoQuit Info/AutoQuit.r.idump @@ -0,0 +1 @@ +TEXTMPS \ No newline at end of file diff --git a/AutoQuit Info/COPYING.txt b/AutoQuit Info/COPYING.txt new file mode 100644 index 0000000..edc10f9 --- /dev/null +++ b/AutoQuit Info/COPYING.txt @@ -0,0 +1,345 @@ + 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. + + + Copyright (C) 19yy + + 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. + + , 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. diff --git a/AutoQuit Info/COPYING.txt.idump b/AutoQuit Info/COPYING.txt.idump new file mode 100644 index 0000000..124c75a --- /dev/null +++ b/AutoQuit Info/COPYING.txt.idump @@ -0,0 +1 @@ +TEXTMPS \ No newline at end of file diff --git a/AutoQuit Info/Makefile b/AutoQuit Info/Makefile new file mode 100644 index 0000000..324c113 --- /dev/null +++ b/AutoQuit Info/Makefile @@ -0,0 +1,36 @@ +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}" diff --git a/AutoQuit Info/Makefile.idump b/AutoQuit Info/Makefile.idump new file mode 100644 index 0000000..124c75a --- /dev/null +++ b/AutoQuit Info/Makefile.idump @@ -0,0 +1 @@ +TEXTMPS \ No newline at end of file diff --git a/AutoQuit Info/README.txt b/AutoQuit Info/README.txt new file mode 100644 index 0000000..09812de --- /dev/null +++ b/AutoQuit Info/README.txt @@ -0,0 +1,28 @@ +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. diff --git a/AutoQuit Info/README.txt.idump b/AutoQuit Info/README.txt.idump new file mode 100644 index 0000000..124c75a --- /dev/null +++ b/AutoQuit Info/README.txt.idump @@ -0,0 +1 @@ +TEXTMPS \ No newline at end of file diff --git a/BootableMPW/AutoQuit.idump b/BootableMPW/AutoQuit.idump new file mode 100644 index 0000000..76fe662 --- /dev/null +++ b/BootableMPW/AutoQuit.idump @@ -0,0 +1 @@ +FNDRMACS \ No newline at end of file diff --git a/BootableMPW/AutoQuit.rdump b/BootableMPW/AutoQuit.rdump new file mode 100644 index 0000000..1afa14b --- /dev/null +++ b/BootableMPW/AutoQuit.rdump @@ -0,0 +1,60 @@ +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 ..... @$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. */ +}; + diff --git a/BootableMPW/MPW Shell.idump b/BootableMPW/MPW Shell.idump index 76fe662..95e205b 100644 --- a/BootableMPW/MPW Shell.idump +++ b/BootableMPW/MPW Shell.idump @@ -1 +1 @@ -FNDRMACS \ No newline at end of file +APPLMPS \ No newline at end of file diff --git a/all.sh b/all.sh index 3c86492..245f98b 100755 --- a/all.sh +++ b/all.sh @@ -1,2 +1,2 @@ #!/bin/sh -./FillGaps -o /tmp/ms && MakeHFS -s 256M -n MacStoopid -i /tmp/ms --mpw-dates /tmp/ms.dmg && ~/empw/M*.app/Contents/MacOS/* /tmp/ms.dmg && DumpHFS /tmp/ms.dmg . +./FillGaps -o /tmp/ms && MakeHFS -s 256M -n MacStoopid -i /tmp/ms -a 'BootableMPW:MPW Shell' --mpw-dates /tmp/ms.dmg && ~/empw/M*.app/Contents/MacOS/* /tmp/ms.dmg && DumpHFS /tmp/ms.dmg .