diff --git a/docs/a_var.html b/docs/a_var.html new file mode 100644 index 0000000..968da55 --- /dev/null +++ b/docs/a_var.html @@ -0,0 +1 @@ +
How to use this page.
Alpha! Variations for the current stable version are available from the main Mini vMac Variations Service page. For more information about the Alpha, see the Mini vMac 37 download page.
Mini vMac has no preference settings, which helps to keep it small, simple, and reliable. Instead, options can be chosen at compile time. You can compile a variation of Mini vMac with options you desire following the instructions on the Build page.
Or, I can compile variations for you.
With a donation to the Gryphel Project of ten dollars or more, you will receive a “Sponsor Code” that can be used to request custom variations, as many as you could reasonably want for a period of a year. You can make as many copies of these variations as you want, and give them to anyone, under the GNU General Public License (GPL).
Without a Sponsor Code, you can request Demo versions, that are identical to the regular version, except that the word “Demo” floats around the emulated screen.
Select the options you desire from the Mini vMac *Alpha* Variations Service (Basic) page, including your Sponsor Code if you have one, then press the “Make custom variation” button at top. (The link in each option’s name leads to documentation for that option.)
In around 5 seconds, a page will appear with a download link. Click on the link to download your compiled variation. (You should probably also save the page, to record the options chosen and other details.) You can also verify md5 checksum and message signature displayed on the page.
Meanwhile, the Variation Server has been double checking, by compiling the variation a second time. If you reload the page with your web browser (another 5 seconds or so after the page first appears), a line at the bottom that said “Preliminary Result” should change to “Final Result (both compiles match)”. Otherwise, an error will be displayed.
To prevent taking too much space on my hosting provider’s computers, older custom variations will eventually be removed. So please download your variation promptly.
After you download the variation, extract the application from the archive, and place the appropriate ROM image file into the same folder, just as is done for the standard compile of Mini vMac. Mini vMac does not create preference files or change registry settings or make any other changes to your computer. So there is no problem in having multiple variations of Mini vMac installed.
The Basic Variations Service offers only a few options. Many more options can be accessed through the Advanced Variations Service. For updating an existing variation, either to change some options or to use the same options in a newer version of Mini vMac, there is also the Text Based Variations Service.The Variations Service only promises to build variations accurately from the public Mini vMac source. No guarantee is made that the built variations are suitable for any purpose. (Please report any bugs.) It is possible that some variations can not be built at all due to bugs in the Mini vMac source. Otherwise, requested variations will be built eventually, but there is no guarantee of how long it will take, due to hardware failures and such issues.
The Variations Service is reproducible. That is, if you ask for the same options twice, you will get the exact same application archive. (The file name will be different, but the contents are the same.) The Sponsor Code used does not effect the resulting Variation, so two sponsors requesting the same variation will get the same result. (With no Sponsor Code, a demo is created, which is different from the sponsored variation.)
:
Back to - Mini vMac *Alpha* Variations Service (Basic)
How to use this page.
Alpha! Variations for the current stable version are available from the main Mini vMac Variations Service page. For more information about the Alpha, see the Mini vMac 37 download page.
The Advanced Variations Service works in pretty much the same way as the Basic Variations Service, but with many more options.
One difference is that a link in each option’s name leads to documentation for that option.
:
Back to - Mini vMac *Alpha* Variations Service (Advanced)
The Mini vMac emulator collection allows modern computers to run software made for early Macintosh computers, the computers that Apple sold from 1984 to 1996 based upon Motorola's 680x0 microprocessors. The first member of this collection emulates the Macintosh Plus.
Mini vMac began in 2001 as a spin off of the program vMac. It was originally intended to be of limited interest, a simpler version to serve as a programmers introduction to vMac. But vMac hasn’t been updated in many years, so Mini vMac may now be considered its continuation.
The “Mini” in the name now means that each emulator in the collection is as small and simple as possible. The meta program and data that generate the emulators (the Mini vMac build system) are rather bigger. Besides the Macintosh Plus, there are also emulations of the Macintosh 128K, 512K, 512Ke, SE, Classic, and SE FDHD. Work is in progress on Macintosh II emulation. There are also numerous other options.
Mini vMac requires a ROM image file to run, and so can be legally used only by those who own a 680x0 based Macintosh. This leads to the question, if you need to own the real computer to use it, what is the use of the emulator? First, a real Macintosh won’t last forever. It is common for the power supply to fail. It is still legal to use the emulation after the real computer breaks. And second, the emulation is more convenient than the real thing. It is much faster (on modern computers) and you can use a better screen, keyboard, and mouse. And it is easier to transfer files between the modern computer and the emulator.
Mini vMac is part of the Gryphel Project, about helping to preserve software made for early Macintosh computers. Another component of the Gryphel Project is a list of Alternatives to Mini vMac.
:
If you find Mini vMac useful, please consider helping the Gryphel Project.
Next - Screenshots
Or skip to - Download Mini vMac
:
Source Code (info) Version 200301 in compressed archive file.
:
Alpha! The current stable version is available from the main Mini vMac Download page. For more information about the Alpha, see the Mini vMac 37 changes page, and the general Gryphel Project News.
While Mini vMac 37 is in Alpha (and therefore frequently changing), the set of compiled standard variations is not provided. You can either compile Mini vMac yourself, or the Variations Service can compile it for you.
Mini vMac Variations Service . . . try it out!
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
How to compile Macintosh 680x0 applications belonging to the Gryphel Project, including many of the Mini vMac extras.
Each of these applications is released as a disk image, all of them in the same format. At the top level of the image is the compiled application and a folder named "source". The source folder contains a file named "app.c", and also other files, with names ending in ".i", that are used by "app.c". All of the source code is written in the C language, except for the Macintosh style "resources". The resources are contained only in the compiled application, there is no other original copy in the disk image.
The Symantec C compiler is included in the Macintosh Programmer's Workshop 3.5 Golden Master that is still available from Apple.
To compile the Mini vMac build system, mount its disk image, and then execute these commands:
Set TheApp MnvM_bld SC -opt space -proto strict -w 17 -b2 -mbg off "{TheApp}:source:app.c" -o "{TheApp}:app.o" Link -rn "{TheApp}:app.o" "{Libraries}Interface.o" "{Libraries}MacRuntime.o" -o "{TheApp}:{TheApp}" Delete "{TheApp}:app.o"
To compile other applications, replace 'MnvM_bld' in the first line.
To execute commands in MPW, enter them into the Worksheet, select them, and then press the “Enter” key. The compile is done when the cursor stops spinning.
MPW 3.5 requires a Macintosh II or later. The Mini vMac Macintosh II emulation in development works well enough to run this version of MPW.
The MPW C compiler is included in MPW 3.0 (other versions might or might not also work).
To compile the Mini vMac build system, mount its disk image, and then execute these commands:
Set TheApp MnvM_bld C -r -b2 -mbg off "{TheApp}:source:app.c" -i "{TheApp}:source:" -o "{TheApp}:app.o" Link -rn "{TheApp}:app.o" "{clibraries}CRuntime.o" "{clibraries}CInterface.o" "{libraries}Interface.o" -o "{TheApp}:{TheApp}" Delete "{TheApp}:app.o"
To compile other applications, replace 'MnvM_bld' in the first line.
... to be documented ...
... to be documented ...
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Next - Mini vMac compile time options
Downloads of each major branch of Mini vMac:
: : (see also Lists of Changes
for these branches)
Mini vMac 37.xx is in alpha
Mini vMac 36.xx is the current stable version
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Next - Getting Started
How to build the Mini vMac program from the source code.
Warning : This is not recommended unless you are a programmer familiar with the C language and your chosen development environment. First, the versions I provide (the standard Variations and the Variations Service), which are compiled using a specific version of GCC, are much better tested. Compiling with other development environments may encounter compiler bugs and Mini vMac bugs that only some compilers trigger. I try ensure that Mini vMac can compile with other development environments at the time of final release of a branch, but the results are not tested too thoroughly. Further, new versions of development environments released later may cause further problems, which won’t be corrected before the next branch of Mini vMac. So, when you compile your own copy of Mini vMac, you will need to test it thoroughly, and find a fix for any problems yourself. Second, for all development environments besides the set of GCC cross compilers that I use, the build system just tries to configure it for maximum chance of working correctly, and not for performance. If you want good performance, you will need to try out various compiler options, see what is fastest, and then thoroughly test to make sure that it works correctly. Third, if you are not familiar with your chosen development environment, I can not teach everyone in that position. For lack of time, and that I’m no expert in all development environments either.
:
First download the source code archive from the download page, a file with the name like “minivmac-3x.xx.src.tgz”. Extract from this file to get a folder. (Whose contents are described in the Contents of the source distribution page.)
The source for the configuration tool is in “setup”folder. In a unix like system, such as Linux on x86-64, it can be compiled using something like “gcc setup/tool.c -o setup_t”, then run with something like “./setup_t -t lx64 > setup.sh”, and the output run with “. setup.sh”, and then Mini vMac can be compiled with “make”.
Besides “-t”, the configuration tool accepts many more options, listed on the Mini vMac Options page. The Develop page has more options useful to developers and maintainers.
Before compiling the configuration tool, you can insert definitions into “setup/CONFIGUR.i”, such as to specify what development environment you are using. The Setup Tool Configuration page lists such choices.
:
If you find Mini vMac useful, please consider helping the Gryphel Project.
Next - Compiling Build System
What has changed in each major branch of Mini vMac:
: : (see also Downloads
for these branches)
Mini vMac 37.xx is in alpha
Mini vMac 36.xx is the current stable version
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Next - Contents of Mini vMac source
What has changed in Mini vMac 3.0.4, compared to Mini vMac 2.8.2. This only lists changes that affect behavior, and so doesn't include cleanups of the source code.
:
default compile:
not in default compile:
:
New features in default compile
* Mini vMac now provides certain new capabilities for software running within the emulated machine, including getting and setting the host clipboard, using raw files on the host computer (disabling any interpretation as a disk image), creating new files (disk images or raw files), deleting files mounted with write permission, and getting the names of files.
Software using these capabilities include:
ClipOut - exports the clipboard
ClipIn - imports the clipboard
ExportFl - exports files from Mini vMac
ImportFl - imports files into Mini vMac
The new capabilities were carefully designed to avoid allowing software running in the virtual machine to do any serious harm. But if this is a concern, all the new capabilities can be disabled with the compile time option -min-extn.
Changed behavior in default compile
* By default, the Macintosh versions of Mini vMac will now not claim ownership to disk image and ROM image files. So double clicking on disk images will not launch Mini vMac. This is because when you have lots of copies of Mini vMac around, all of which claim ownership of disk images, it is unpredictable what happens when you double click on one, making the feature useless. Instead there is a compile time option, -im 1, to make Mini vMac claim ownership as has been done previously. You can then make sure to have only one copy of Mini vMac compiled this way on your computer.
* The stopped mode toggle is now Control-S-D instead of Control-S-S. Before I had wanted to make it quick to type, but now I think it is more important to prevent hitting it accidentally.
* When switching back to the Mini vMac application, previous versions would always ignore keys that were already held down. There is now a special case such that immediately after a drag and drop on to the Mini vMac window, it will not ignore keys already held down. This makes it easier to rebuild the desktop of disk images by holding down command and option. However, the keys that map to command and option can have special meanings in other operating systems. (For example, in OS X, clicking on the window of another application with command and option down will hide all other applications.) So it usually works better to press command-option right before dropping, instead of before dragging. (Thanks to a complaint by David Sibley for this feature.)
* An obscure change is that when entering the control mode, or the open dialog, or switching to another application, all the emulated keys (except for caps lock) are released immediately, instead of waiting until normal emulation resumes.
* An even more obscure change is that in the control mode, changes to the caps lock key take effect immediately, instead of waiting until leaving the control mode.
* The variation name displayed in the about message, and used for program binary archive names, no longer includes the development environment used to compile it or the debug status, but only has the program name abbreviation, the version number, and the target. Such as minivmac-3.0.4-imch, for the Intel Macintosh version of Mini vMac 3.0.4.
* Mini vMac for PowerPC Macintosh OS X was not compatible with OS X 10.5, due to a bug in the PowerPC assembly code used for 680x0 emulation. (It's surprising that it worked previously.)
* A call to XFlush was missing in the X version (such as the Linux port), and the most noticeable effect was the lack of drawing when Mini vMac was in the background with the run in background option on.
* In OS X, and also earlier Mac OS, dragging and dropping onto the open file dialog would also immediately try to mount that file in Mini vMac.
* The Windows and X versions now support the PageUp, PageDown, Home, End, Help/Ins, and ForwardDelete keys.
* The mouse position could shift slightly when leaving full screen mode (or entering the open dialog in full screen mode).
* In the Macintosh versions {mouse down, control-o, mouse up, type escape key} would leave the emulated mouse stuck down.
* In Ubuntu Linux, drag and drop on to the Mini vMac window would not activate Mini vMac. This is fixed by sending a _NET_ACTIVE_WINDOW message in the X version when it is claimed to be supported. So forcing the Mini vMac window to activate will probably now work with more Linux distributions (and other X), but there are undoubtedly still distributions where it won't work.
* If buggy or malicious low level software running in the emulated computer wrote past the end of a disk image, it would make the disk image larger. Mini vMac will now do explicit range checking for both read and write, and not just pass it directly to the platform specific calls.
* The Macintosh OS X version wouldn't work with a disk image on a CD.
* In the Macintosh OS X version, magnify toggle wasn't smooth. Now just create a new window, rather than moving then resizing the existing window.
* The build system is now a Macintosh program that runs in Mini vMac (it would also work on a real 680x0 Macintosh). After you specify the options, the program generates an archive containing all the files needed to compile Mini vMac with those options in the selected development environment. If the build system is running in Mini vMac 3.0.0 (or later), then this archive will then automatically be exported to the real computer, where you can extract the files and compile the program. The Building Mini vMac page gives more details.
New features not in default compile
* A Dutch translation from Luc Pauwels (option “-lang dut”), and a Spanish translation by “Chir” (option “-lang spa”).
* In the Windows version, the -im 1 option will cause Mini vMac to install itself on launch into the Microsoft Windows registry, so that double clicking on a disk image file with the extension '.dsk' will open it with Mini vMac, and so that such disk image files and also '.rom' files will be displayed with custom icons. This make the separate utility MnvMreg obsolete.
* An option to swap the emulated Control and Command keys (“-ccs”).
* An experimental option for making some keys more convenient to use. (“-akm”).
* An initial speed setting (“-speed”).
* An initial Run in Background setting (“-bg”).
* A new alternate implementation of the 680x0 processor (option “-alt-cpu”). It is a bit faster, cleaner, and makes it possible to be more accurate about illegal instructions without speed penalty. However, this code is too new for me to trust it yet, so it is not used by default.
Changed behavior not in default compile
* There are a number of refinements to playing sound using ALSA in the Linux version, which is enabled with “-sound 1”. It may work more smoothly now.
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Back up to - Changes in Mini vMac versions
What has changed in Mini vMac 3.1.3, compared to Mini vMac 3.0.4. This only lists changes that affect behavior, and so doesn't include cleanups of the source code.
:
default compile:
not in default compile:
:
New features in default compile
* If Mini vMac, on Mac OS X or Windows, doesn't find the ROM file in the folder containing the application, it will now also look in a specific central location. In OS X it checks in "/Users/[your_UserName]/Library/Preferences/Gryphel/mnvm_rom/". In Windows XP, "C:\Documents and Settings\[your_UserName]\Application Data\Gryphel\mnvm_rom\". Windows 98, "C:\WINDOWS\Application Data\Gryphel\mnvm_rom\". And in Vista, I think "C:\Users\[your_UserName]\AppData\Roaming\Gryphel\mnvm_rom\". Usually "mnvm_rom" would be an alias (on OS X, on Windows this is called a short cut) to where ever you keep your ROM collection. This avoids having to create an alias to the ROM image for each emulated Mac you use.
Changed behavior in default compile
* The alternate CPU emulation of Mini vMac 3.0.4 is now the main and only emulation. (The “-alt-cpu” build option is gone.) This makes Mini vMac slightly faster, and allows more accurate detection of illegal instructions without speed penalty. It also reduces the amount of code to be optimized in assembly language (Currently only done for PowerPC). The PowerPC assembly code version has been revised to match the new emulation, and is now used for the PowerPC Linux version.
* More accurate mouse and keyboard event handling, by using an event queue to communicate between the platform dependent code and the platform independent code. Previously, the platform dependent code would tell the platform independent code every emulated sixtieth of a second the current mouse position and up/down state of the mouse button and keys. If the host computer was very busy, or just slow, then a down and up pair could end up being processed in the same emulated sixtieth, and they would cancel each other out and be lost entirely. Also a mouse button state change might not be processed until well after it happened, and the mouse position might be different by then. (Though if Mini vMac is not getting time every sixtieth of a second, so that these problems can be observed, then sound emulation isn't likely to work either, emitting horrible noises. But it is possible to compile Mini vMac without sound. And also if the host computer is a device without a keyboard, such as using handwriting recognition, then there might not be separate key down and key up.)
* The Macintosh and Windows versions now match the X version in not initially filling the sound buffer with silence, but instead waiting to accumulate real sound samples before starting to play sound. This may reduce the tendency to stutter as the program starts, mostly by giving the emulation more time to get settled into a regular rhythm before attempting sound. I also changed the X version to match the Macintosh and Windows version in only skipping a single sound block on underrun, rather than stop playing sound until the buffer is refilled.
* Includes code sent by Jesús A. Álvarez ("zydeco") from his iPhone/iPod Touch port that improves support for the Disk Copy 4.2 disk image format, using information found in the Lisa Emulator Project by Ray A. Arachelian. Mini vMac will now get the correct size of the data in a Disk Copy 4.2 disk image, and will identify such an image even if it is not in HFS or MFS format.
* When Mini vMac is in full screen mode, it tries to send all key events to the emulated computer, instead of any normal meanings they would have in the host operating system. But I've decided that it went too far with this. So now in OS X, in full screen mode, it will no longer disable force quit (command-option-escape). This was just too dangerous, especially during development of Mini vMac. You can still send command-option-escape to the emulated computer, using the F1 and F2 keys, which are mapped to 'option' and 'command'.
* The X version now uses mouse motion events when possible instead of XQueryPointer, which is alleged to be inefficient. (Especially if the program is using the display on another computer, so that XQueryPointer requires a round trip over the network. I've never tried this. I don't know if anyone has.)
* Thanks to a tip from William Nolan, Mini vMac now has, when accessing the emulated computer's memory, a special case for little endian processors that allow unaligned access (such Intel), similar to the existing special case for big endian (such as PowerPC). This makes it a bit faster.
* I've made a number of small changes to the replacement disk driver that I think make it act closer to original Apple versions. (But which don't make any known observable difference.)
* None Yet.
New features not in default compile
* Support for the new Mini vMac Variations service.
* You can choose the emulated screen size (“-hres and -vres”).
* There is an initial port to GTK+. However, this port isn't complete yet. It will allow the Linux version to better match the other ports, with menus and an open file dialog. It also will make possible a port to Maemo, which is based on Gtk. The build option is “-t lx86 -api gtk”. (The build system now optionally allows you to choose what API to use, instead of automatically setting it from the selected target.)
* Can now use a Macintosh Classic ROM, thanks to assistance from David Sibley and "Gord". The build option is -m Classic”. Though it runs, it is not necessarily an accurate emulation of a Mac Classic. A Mac Classic is supposed to be nearly identical to a Mac SE, but there are a few minor differences. There may be more differences that I don't know about. I can't really work on this much further until I own a Mac Classic. Getting the Mac Classic emulation to work to this extent involved fixing some issues in the emulation of the VIA chip.
One thing to be aware of is that the Mac Classic ROM should be 512K. Apparently some ROM acquisition programs only save the first 256K. The CopyRoms program should save the correct size.
* Can now use a Macintosh SE FDHD ROM, thanks to assistance from Steve Secker and David Sibley. The build option is -m SEFDHD”. It is currently identical to the Macintosh SE emulation, except for expecting a different ROM (which should be named 'SEFDHD.ROM').
* Have begun emulation of the Macintosh II. The build option is -m II”. It doesn't yet emulate the FPU or ASC, but some software will still run. Since a Macintosh II can be hard to find there is also a build option -m IIx” which accepts the ROM from a IIx, but otherwise currently is identical to the Mac II emulation. The Macintosh IIcx, the Macintosh II FDHD, and the Macintosh SE/30 all have the same ROM as the Macintosh IIx.
* You can choose the emulated screen color depth (“-depth”) in the Macintosh II emulation.
* With the build system option “-sony-sum 1”, Mini vMac will update the checksum in a Disk Copy 4.2 disk image when it is unmounted. This prevents other programs that deal with such images from complaining about an invalid checksum. (I didn't include this by default, because it makes Mini vMac slightly bigger and slower.)
* With the build system option “-sony-tag 1”, Mini vMac tries to support file tags. There are an additional 12 bytes for each 512 byte block on a 400K or 800K floppy disk, containing some additional information that was supposed to aid in recovering damaged disks, but was never actually used much. The Disk Copy 4.2 disk image format can support these tags. (The more usual raw format, such as found in Blanks, does not.)
* The build system option “-sony-dc42 0” completely disables support for disk images in disk copy 4.2 format. This could be useful when trying to compile the smallest and simplest version of Mini vMac possible for some specific purpose. It should not be used when compiling a version of Mini vMac for general distribution, because a primary goal of Mini vMac is that disk images that work with any past version of the program should also work with the current and any future version (at least when default compile options are used).
* There is now a build system option “-vsync 1” for OS X only, which turns on OpenGL double buffering and sets AGL_SWAP_INTERVAL to 1. This eliminates the "tearing" issues noted Manuel Alfayate. Unfortunately it isn't yet a real solution. Beside using much more memory, it also reduces the maximum speed of emulation unpredictably and erratically, because it makes aglSwapBuffers block until the vertical retrace, when Mini vMac is expecting to give the emulation extra time, for above "1x" speed. Anyway it helps to illustrate the issue. Now that I've seen what it looks like with vsync, I can see the difference in certain games.
Changed behavior not in default compile
* There are some refinements to the “Alternate Keyboard Mode”. Typing ';' now locks the mode on, there is no temporary state. (I found holding ';' while typing other keys too much strain.) Typing 'm' now leaves the mode. (I find 'm' slightly easier to hit than 'u', and it is no longer needed for entering the mode.) The 'shift' and 'option' keys now override the mode like the 'command' key does. (So anything except lowercase letters can be typed without leaving the mode.) When compiled with the Alternate Keyboard Mode, Mini vMac now starts up with the mode on rather than off. (I think I've reinvented what I've read about the vi editor. You are normally in command mode, and only use insert mode temporarily.) A number of the mappings are changed: 'a' - semicolon, 'b' - backslash, 'e' - backspace, 'h' - equal, 'n' - minus, 'o' - ], 'r' - return, 't' - tab, 'u' - [, and 'p' and 'w' are now not used.
* The “Alternate Keyboard Mode” option now gives a visual indication of the current keyboard mode, intended to be easy to see in peripheral vision, without covering up where text is normally typed.
* The Macintosh SE emulation, in full screen mode, will now emulate the ADB protocol for mouse movement, instead of just poking the changes into emulated low memory. This turned up a bug where apparently emulated ADB devices were responding to commands too quickly, before the emulated Mac was ready. I increased the constant that specifies the delay.
Bug fixes not in default compile
* Two bug fixes in the 68020 emulation, in distinguishing between long DIV and MUL, and in bit field operations with width of 32.
* The build system now has a separate argument for the memory size of the emulated machine (“-mem”), instead of including this in the model (“-m”).
* The build system now supports Xcode 3.1, using the option “-ev 3100”. Mini vMac compiles without warnings, which wasn't possible with the SDK that comes with Xcode 2.4.1.
* The build system now supports Microsoft Visual Studio 2008 Express, using “-t wx86 -ev 9000”.
* The build system supports compiling the Pocket PC version with Microsoft Embedded Visual C++ 4 for ARM and the emulator (“-t wcar” and “-t wc86”).
* The build system supports using the command line tools of the LCC compiler (“-e lcc -cl”).
* The build system supports the Sun c compiler (“-e snc”).
* The build system now has an “-an” option, for changing the programs abbreviated name, from the default "minivmac". So the Mini vMac variations are compiled with say "-an mnvm0001", instead of "-n mnvm0001-3.1.0-umch". The abbreviated name must be 8 characters or less, and should only include lowercase letters, numbers, and underscores.
* The build system will now check if the folder "System Folder:Preferences:Gryphel:Build:output" exists, and if so direct output there, instead of "minivmac:output:". This is useful if you keep the minivmac source disk image on a flash drive, avoiding excessive wear.
* The build system can now resolve aliases of folders, such as the output preference folder. So the output can be directed anywhere, such as to another disk.
* The build system can now handle multiple sets of options at once, separated by ";". I use this in the process of compiling the set of Mini vMac Variations. To allow this to work, the build system no longer replaces the entire output folder on each run, but just replaces folders within the output folder.
* I've removed the "-pk" option of the build system to restrict the program to a more manageable scope. And anyway I find it more convenient to handle post processing in external scripts.
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Back up to - Changes in Mini vMac versions
What has changed in Mini vMac 3.2.3, compared to Mini vMac 3.1.3. This only lists changes that affect behavior, and so doesn't include cleanups of the source code.
:
default compile:
not in default compile:
:
New features in default compile
* Auto scrolling: If the emulated screen is larger than the real screen while in full screen mode, the emulated screen will be scrolled to keep the mouse pointer in view. (Previously only the top left corner would ever be displayed, and even that didn't work quite right.)
* "AutoSlow": Mini vMac will automatically shift down to 1x speed if there is no activity for a while. This helps to preserve the battery on portable computers.
If the user types, or clicks or moves the mouse, or the emulated computer draws to the screen, or reads or writes to an emulated disk, that counts as activity that prevents AutoSlow.
AutoSlow takes effect after either 0.5 seconds of emulated computer time, or 16 seconds worth of emulated instructions executed (usually about 2 seconds at the default 8x speed), which ever is longer.
It is possible that some software will not draw anything to the screen for longer than that while doing real work, so the AutoSlow feature can be disabled with Control-S-W. Also, the compile time option '-as 0' causes Mini vMac to start with AutoSlow disabled.
A blinking insertion point will not prevent AutoSlow. This required improving the code for detecting how much of the emulated screen was changed. This makes Mini vMac more efficient in general, since transfering images to the real screen tends to be expensive. Previously it would detect that areas at the top and bottom of the emulated screen hadn't changed, to limit the amount of drawing to the real screen. Now it can detect that areas at the left and right of the emulated screen haven't changed. If the remaining area that has changed is only a single pixel wide and less than 32 pixels tall, it is assumed to be only a blinking insertion point, that doesn't prevent AutoSlow.
Changed behavior in default compile
* Have begun making tweaked assembly version of 68000 emulation for Intel x86 computers (starting from assembly language generated by gcc). This makes Mini vMac faster, as well as giving more consistent results when Mini vMac is compiled with different development environments. (Had previously only made tweaked assembly language for PowerPC computers.)
* Improved accuracy of timing. Mini vMac now measures time in cycles rather than instructions executed. In the simplest form, all instructions are assumed to take the same number of cycles, and this closely matches the results of previous versions of Mini vMac. (Mini vMac actually counts sixty fourth cycles, not just integer number of cycles, so that average times of instructions can be more accurate.) But by default, Mini vMac now assigns an average number of cycles for each of the 65536 primary opcodes.
As a compile time option, in addition to using the table, Mini vMac can try to compute more accurate cycles for certain instructions, depending on the current data. This is slower, and only implemented in the C version of the 68000 emulation, making it slower still.
The build system option "-ta 0" selects the least accurate of these three methods, the default is "-ta 1", and "-ta 2" selects the most accurate.
The most accurate option is still not completely accurate. Completely accurate timing would be exceedingly difficult. For example, the CPU and video output conflict for accesses to RAM, and that would seem very complex to model.
The greater accuracy is so far mostly theoretical. The timings were entered from Motorola documentation. It needs to be tested and calibrated by comparing to real hardware. Currently 68000 timings are used even in the 68020 emulation. More accurate timing for 68020 should be added in a future version. Truly accurate timing for 68020 would be much more difficult than for the 68000 because of pipelining and caching, probably to the point of being unfeasible for Mini vMac. But more accurate averages should be possible.
* Mini vMac will now by default mount disk images in Disk Copy 4.2 format as read only. This is because by default Mini vMac ignores the checksum and tags of this format, so writing to the image makes it invalid. Mini vMac can be compiled with full support for this format, in which case the images will be writable.
The new utility CnvtDC42 converts Disk Copy 4.2 format images to a new image without the tags and checksums, that the default version of Mini vMac can write to.
* The Windows and Linux versions now match a previous feature of the Macintosh versions. When switching from full screen to normal mode, or toggling magnification in normal mode, it will preserve the emulated cursor position, by moving the host computer's cursor.
* As an additional safety feature, the control mode confirmation for the reset, interrupt, and quit commands will now treat anything other than 'y' as meaning no, rather than ignoring it. (With exception that a repeated key is ignored - so 'q' is ignored for quit, 'r' for reset, and 'i' for interrupt.) This is because I once managed to accidentally reset Mini vMac by typing unintentionally into control mode.
* The power button can now be used in the OS X version when in full screen mode, to put the (real) computer to sleep.
* I've rearranged the Mini vMac about page (Control-A) a bit to make room for another idea I have for the variations. It no longer displays which computer is being emulated. That can be inferred from the variation number.
* In OS X, changing the screen configuration, such as switching between using the internal screen of a MacBook Air and an external screen, would tend to make Mini vMac stop drawing.
* In OS X, if the screen configuration changes when in full screen mode, Mini vMac will turn off full screen mode, instead of just leaving the emulator window at a size that is now wrong.
* In OS X, may now have a viable work around for misbehavior of the operating system calls to hide and show the cursor. The most easily reproducible such situation was when the computer went to sleep and then wakes up, the real cursor would end up visible.
* In OS X, the operating system can sometimes bring up a dialog, such as for force quit (upon command-option-escape), and Mini vMac wouldn't notice, leaving the real cursor hidden, making the dialog hard to use.
New features not in default compile
* The build system option, "-emm 0", disables the more accurate mouse emulation normally used in full screen mode. This allows Mini vMac to work somewhat better on tablet computers without a mouse. But such computers are still not really supported.
* The build system option, "-var-fullscreen 0", makes the full screen mode option a constant rather than a variable. So "-var-fullscreen 0 -fullscreen 1" will make Mini vMac always run in full screen mode, and "-var-fullscreen 0 -fullscreen 0" will make Mini vMac never run in full screen mode. The "F" control mode command disappears.
* The build system option "-log" enables improved logging infrastructure for debugging in Mini vMac. It can now write out megabytes of information per second to a log file without bogging down the emulation too much. (On a modern machine.) But nothing much will happen without further enabling or creating code to log various events that you are currently interested in. This is for developers only.
* The build system option "-dis" enables a disassembler built into the emulator. Besides disassembling a number of instructions executed after an event of interest, it can disassemble instructions prior to the event, as the emulator can save the addresses of instruction executed to a circular buffer. Requires the "-log" option. Nothing much will happen without further enabling or creating code to log various events that you are currently interested in. This is for developers only.
* The build system option "-intl" forces Mini vMac to support international characters in the user interface, even when using the default English. This is useful if the maintainer name needs the extra characters. (It would be nicer for the build system to figure out for itself what character set is needed. But this will do for now.)
Changed behavior not in default compile
* None Yet.
Bug fixes not in default compile
* Improved FPU emulation, originally written for Mini vMac by Ross Martin. This code was modified to use SoftFloat, by John Hauser (as found used in the Bochs emulator), plus some extensions to SoftFloat by Stanislav Shwartsman (also found in Bochs). Though using SoftFloat is slower than using native floating point, it ensures consistent results on different computers, and makes it easier to compile with different development environments. There's still a lot of work to do on the FPU emulation, but it already allows much more software for the Mac II to run without crashing.
* In many cases the Macintosh II emulation can now emit sound that is recognizably related to how it is supposed to. It's not perfect yet, and due to the nature of sound that means it not really yet usable at all. But it is significant progress.
* The Macintosh II emulation supports more than 1M of video ram in 24 bit addressing. (One noticable effect is that allows identify displays button in monitors control panel to work.)
* The build system and the extras are easier to compile with different Macintosh 680x0 C compilers.
* The build system now supports the Digital Mars Compiler (with "-t wx86 -e dmc") and the Pelles C Compiler (with "-t wx86 -e plc" and "-t wx86 -e plc -cl").
* The build system now supports XCode 4.0.2 (with "-ev 4000").
* There is better support in general for different versions of Microsoft Visual Studio. Specifically, support has been added for Visual Studio 2010 (with "-ev 10000"), Visual Studio .NET 2003 (with "-ev 7100"), and Visual Studio .NET 2002 (with "-ev 7000").
* There is a new build system option, "-t lx64", to target for 64 bit Linux. And there is a new option, "-t wx64", to target for 64 bit Windows. Both would currently be slower than the 32 bit versions, because those versions now have some assembly language tweaking.
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Back up to - Changes in Mini vMac versions
What has changed in Mini vMac 3.3.3, compared to Mini vMac 3.2.3. This only lists changes that affect behavior, and so doesn't include cleanups of the source code.
:
default compile:
not in default compile:
:
New features in default compile
* More operating systems are officially supported by Mini vMac:
FreeBSD on x86-32 (Using “-t fbsd” in the build system)
FreeBSD on x86-64 (“-t fb64”)
OpenBSD on x86-32 (“-t obsd”)
OpenBSD on x86-64 (“-t ob64”)
NetBSD on x86-32 (“-t nbsd”)
NetBSD on x86-64 (“-t nb64”)
Dragonfly BSD on x86-32 (“-t dbsd”)
Dragonfly BSD on x86-64 (“-t db64”)
OpenIndiana on x86-32 (“-t oind”)
OpenIndiana on x86-64 (“-t oi64”)
Linux on ARM (“-t larm”)
Linux on SPARC (“-t lspr”)
Minix 3.2 ("-t minx")
These ports adapt the same X Window code as the Linux port, and should have the same functionality, except currently not sound for some. The x86-64 versions are currently slower, for lack of assembly language tweaking, and should not be used if the x86-32 versions will work.
* The X versions can now play sound using the Open Sound System (OSS) API. (Usually using compatible implementations on each operating system, rather than the official OSS itself.) Sound is now enabled by default on FreeBSD and NetBSD. Sound compiles without problems (using “-sound 1”) on Dragonfly BSD and OpenIndiana, but I have not been able to test on these yet. Getting sound on Dragonfly BSD seems to require some manual setting up. OpenIndiana doesn't seem to produce any sound at all in VMware Fusion. Sound also compiles without problems on OpenBSD, but it doesn't work - setting the desired sample rate fails. Minix doesn't really seem to support sound yet. It is also possible to use the OSS API on Linux, using the new “-snd-api” build system option.
* The X versions now will try to look in the folder contain the application for the ROM image, like the Macintosh and Windows version do. (And also for disk1.dsk and so on files.) If the application directory can not be determined, the current directory is used as before. This is implemented for Linux, FreeBSD, NetBSD, Dragonfly BSD, and OpenIndiana, but not OpenBSD and Minix.
* The X versions now have a new command line option “-d [directory_path]”, in which [directory_path] is used instead of the application directory when looking for the ROM image, and disk1.dsk and so on files.
* The X versions now have a new command line option “-n [app_name]”, in which [app_name] is used instead of the application name for the title of the Mini vMac window.
* The X versions now supports a central ROM folder like the Macintosh and Windows versions have. If “~/.gryphel/mnvm_rom” exists, Mini vMac will look there for the ROM image. If it isn't there, it will look in the application directory. (And the -r command line option will override both.)
Changed behavior in default compile
* Drawing the emulated screen to the real screen is more efficient. When the color depth is 4 bits or less, rather than converting each pixel, there is a table with 256 entries for converting one byte at a time. It is also more careful about only converting pixels in the rectangle bounding the changed area, rather than the entire screen.
* The Linux version dynamically loads the ALSA library to play sound, so that Mini vMac will still run, without sound, even if ALSA is not installed. (This technique was seen in SDL.) So by default the Linux version is now compiled with sound, matching the Mac and Windows versions.
* In the Linux version, when playing sound with ALSA, snd_pcm_delay is no longer called. The delay until a sample is played is not really relevant. What Mini vMac needs to know is time to buffer underrun. So Mini vMac now looks at buffer size minus the available space in the buffer, which may be more useful, for the purpose of preventing buffer underrun while minimizing latency.
* The X versions now use advisory locking to refuse to open for writing a disk image that has been opened for writing by another copy of Mini vMac. Previously, the X versions of Mini vMac could open an already opened disk image, likely corrupting the image. If Mini vMac can only open a disk image read only, such as because the user has locked the file, then the advisory lock is not used, and multiple copies of Mini vMac can use it.
* The X versions now try to use the application name to set the title of its window, like the Macintosh and Windows versions have. (If the application name can not be determined, “Mini vMac” is used as before.) This is found at the same time as the application directory, and is implemented for the same operating systems.
* Command line arguments are now scanned before looking for disk1.dsk and so on files. This is necessary for the new “-d” option to work, and has the side effect that if disk images are specified on the command line, they will be opened first. If there are images on the command line, Mini vMac will now not bother to look for disk1.dsk at all.
* The “-l” (or “/l” on Windows) command line option is removed. The “-speed z” option to the build system should be used instead. The command line option was from before the build system existed, and the decision made to favor build time options over run time options.
* The Windows version now maps the Enter key on the numeric keypad to the Macintosh Enter key. It can now distinguish that key from the Enter key on the main keyboard, which is mapped to the Macintosh Return Key. There was previously no way to type the Macintosh Enter key. Thanks to “Alex” for pointing out this issue.
* In the Windows version, in Full Screen Mode, the check for whether a key down event is an autorepeated key is incorrect. So potentially keys could have been ignored when they shouldn't have been. I've removed the check, since it isn't clear how to do so correctly (when using a "low level keyboard hook"). This doesn't affect Macintosh emulation, since there is an additional check for redundant events. It can affect the Control mode, such as when holding down Control-M.
* The Windows version now responds to the WM_QUERYENDSESSION message, so that if you try to shut down your computer with Mini vMac running (with mounted disk images), then Mini vMac will complain and stop the shut down.
* In the Linux version, using ALSA to play sound, snd_pcm_start was called before putting any sound samples in the ALSA buffer. This could cause stuttering at the beginning, or according to one report, prevent sound from working at all. Mini vMac now waits until its private buffer is full, then transfers as much as will fit into the ALSA buffer, and then starts sound playing.
* When the Linux version is compiled for ARM, it includes a check that the result of snd_pcm_avail_update looks reasonable, and if not calls snd_pcm_status_get_avail instead. This works around what appears to be a bug in Raspbian for the Raspberry Pi.
* The emulated clock was not properly initialized, and was only correct after the first “second” interrupt.
* If the emulated screen is too big to fit on the real screen (when autoscroll is available), if the area of the emulated screen that has changed doesn't intersect the visible area of the emulated screen, then an invalid rectangle was used for drawing. I discovered this when trying out Vector Linux 7, which seems to have some extra debugging checks.
* In unlikely circumstances, in Full Screen Mode, autoscroll may not scroll to show the last row of pixels at the bottom or the last column of pixels on the right.
* If the host computer is not fast enough for Mini vMac to run at 1x speeds, then Mini vMac would not run smoothly, pausing for a few seconds periodically. The test for this situation was incorrect, and a one byte counter would overflow. (Have such counters as small as possible makes it easier to detect bugs like this.)
* In X Window versions of Mini vMac, when using the Mini vMac extension to create a file on the host system, such as with ExportFl, a save dialog is not implemented. Previously the file would simply be created in the application directory with the asked for name. This was not safe, at worst it allows a program running in Mini vMac to replace the Mini vMac application. So now files will instead be created in a folder named "output" in the directory containing the application. This folder will be created if it does not exist.
* In the Microsoft Windows version, if a path to a disk image is passed to Mini vMac on the command line that is longer than is legal for a path, a buffer overflow results.
* The Windows CE version suffered bit rot. It now compiles and at least works on the Microsoft Device Emulator with Windows Mobile Version 5.0. I have no idea if it works on real hardware. Does anyone care? (Windows Mobile was discontinued and replaced by Windows Phone.) This port was starting to interfere with maintaining the main Windows version, and the choice was to remove it entirely or make it maintainable.
New features not in default compile
* The new build system option “-lt” enables Mike Fort's LocalTalk emulation. The are currently some limitations. It is only implemented for OS X. It requires running the command “sudo chmod ugo+rw /dev/bpf*” to allow Mini vMac (and everyone else) access to all network traffic. The “-lt” option also cause Mini vMac to run in the background by default, because Mini vMac can't be a proper LocalTalk node if it isn't running. And you need to manually turn on AppleTalk in the chooser - I can set the PRAM flags to boot with AppleTalk already on, but it doesn't work properly.
* A new build system option “-lang pol” selects a Polish translation of the user interface by Przemysław Buczkowski.
* The X versions have initial support for color (for Mac II emulation). The X Version so far only supports 24 bit “TrueColor”, and has a few other limitations on format. I doubt that anything besides TrueColor is used on modern machines, and so probably won't support the other options. Other depths such as 15, 16, and 32 bits may be used, and so probably should be supported, if I can find a way to test them.
* A new build system option “-mf” allows changing magnification from the default 2. For example, “-mf 3” sets the magnification to 3. The option “-mf 1” disables magnification (removing the Control-M command). The magnification factor must be an integer.
Changed behavior not in default compile
* The default color depth for Mac II emulation is “-depth 3” instead of “-depth 0”.
* For Macintosh II emulation, AutoSlow is now disabled by default “-as 0”. AutoSlow may need some further tuning to work well with Mac II emulation.
* In the X versions, the results of fwrite and fread on disk images are now checked for errors, which stops compiler warnings in recent Ubuntu.
Bug fixes not in default compile
* Fixed a bug in the DIVS.L instruction reported by “AP”. (A 68020 instruction used in Mac II emulation.)
* Fixed the BFFFO instruction, which was completely broken, as reported by “AP”. (Another 68020 instruction used in Mac II emulation.)
* Bit field operations on a register now use rotate rather than shift. The selected bits can be non contiguous, as pointed out by “AP”, and confirmed by the documentation. (Bit operations fields were added in the 68020.)
* Bit field operations on memory now try to only operate on as many bytes as needed. Previously it always operated on 5 bytes, which could have undesirable effects if operating on a memory mapped device, as pointed out by “AP”.
* The “MoveP.L <ea>, Dn” instruction mixed up the order of shifting and masking, and so was completely broken, as reported by “AP”.
* The hack that allows extra large amounts of Video RAM in the Macintosh II emulation wasn't working properly because an array used for address space translation in the CPU emulation wasn't allocated large enough. Now the build system chooses the allocation size. (This problem was observed for 1024x768 with millions of colors.) Further detail: Each NuBus card gets only 1M of address space when the computer is in 24 bit mode. And a Mac II seems to usually draw in 24 bit mode. When more Video RAM is needed for the requested compile time options, Mini vMac uses address space from adjacent NuBus slots.
* Fixed “-min-extn” build option in the Linux version.
* Added build system option “-api cco” to use Apple's Cocoa API for OS X rather than the deprecated Carbon API. But the Cocoa port of Mini vMac is not yet considered quite ready to be officially supported, and so the Carbon version is still used.
* Added build system option “-api sdl” to use the Simple DirectMedia Layer 1.2 API. This was added as a stepping stone to the Cocoa port - by combining the source code for SDL with the source code for an SDL port of Mini vMac, and then removing everything not needed, and then a lot of cleaning up until an initial native Cocoa port emerged. However the SDL port can be used as is to port to other platforms supported by SDL. But this is not (yet) officially supported.
* Added build system option “-t mx64” for Apple's X11 implementation on x86-64. (Previously x86-32 and PowerPC were supported.)
* Added build system option “-t cygw” for Cygwin/X for Microsoft Windows. Cygwin can also be used to compile the regular Microsoft Windows version with “-t wx86 -e cyg”.
* Added build system option “-t irix” for IRIX by Silicon Graphics, Inc., thanks to John Perkins.
* MinGW can be used to compile Mini vMac with build system option “-t wx86 -e mgw”. Since Bloodshed Dev-C++ is based on MinGW, “-t wx86 -e dvc -cl” would previously give similar results.
* Changed order of arguments to the link command when building the Linux version. It turns out there is a conventional order for how libraries should be specified, which I didn't know since I hadn't come a across a linker that cared until Ubuntu 11.10.
* The build system should now work properly in other emulators such as SheepShaver. It was anonymously reported that the build system would crash emulators. The test for whether the build system was running in Mini vMac (so that the resulting archive may be exported to the host) was not good enough.
* The build system now suppresses warning messages that were generated when compiling the Macintosh II emulation with Microsoft Visual C++, thanks to a report from William Grana.
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Back up to - Changes in Mini vMac versions
What has changed in Mini vMac 3.4.1, compared to Mini vMac 3.3.3. This only lists changes that affect behavior, and so doesn't include cleanups of the source code.
:
default compile:
not in default compile:
:
New features in default compile
* None Yet.
Changed behavior in default compile
* Changed URL displayed in about screen to "http://www.gryphel.com/c/minivmac/".
* To make Mini vMac simpler and more maintainable, the interaction between platform dependent code and platform independent code has been changed a bit. Instead of the platform dependent code calling a routine to emulate one tick (sixtieth of a second) whenever appropriate, the main loop of the program is now in platform independent code, which periodically calls platform dependent code to check for events. A visible consequence of this is that the emulation will now stop running in certain circumstances when it used to continue running, such as during the open disk image dialog. The exact situations this happens varies for each platform.
* To minimize glitches in sound output when emulation starts, stops, or just isn't running fast enough, the sound call back functions in the various Macintosh versions and the SDL version will now try to play an appropriate transition in each of these circumstances.
* In the Cocoa port, when the platform dependent code checks for events, rather than using a time out value, it turns out there is a bit less overhead to check for events, sleep, and then check for events again. This allows matching the performance of the Carbon version, making the Cocoa version more ready for prime time. (Apple has declared Carbon very, very deprecated.)
The same fix actually also applies to Carbon. Mini vMac used to use a standard Carbon event loop with a complicated system of timer events only because a manual event loop didn't get quite as good performance. With this change, all ports can use the same platform independent event loop, as described above.
* The Virtual-Key Codes of Microsoft Windows, that are independent of differences in keyboard hardware, turn out not to be independent of the choice of Keyboard Layout. Changing the Keyboard Layout to something other than "US" may scramble the Virtual-Key Codes, strangely enough. Mini vMac will now check the current Keyboard Layout, and attempt to unscramble the codes, so that the Keyboard Layout chosen in Macintosh operating system running within Mini vMac will work properly. There is a new build option to disable this fix, -ikb 0”, because this is fairly large amount of code and US only users don't need it. But also because I'm not sure I really understand this. Why has no one complained about this issue in the last decade?
* Mini vMac on Microsoft Windows will now recognize the Virtual-Key code of VK_OEM_102, and translate it to the Macintosh key code of 0x0A. This key is used for angle brackets in the German keyboard layout, for example.
* Mini vMac on Microsoft Windows passed an invalid Window Style to CreateWindowEx (when not in full screen mode). When compiled with certain development tools this could result in the window being the wrong size, and other odd behavior. Before finding and fixing this, I also made Mini vMac more robust in adjusting for window border sizes by using AdjustWindowRectEx and MapWindowPoints, rather than various results from GetSystemMetrics. (Thanks to the anonymous user who reported this issue.)
* The OS X version of Mini vMac was using the wrong syntax for the value of the LSRequiresCarbon key in the Info.plist file in the application bundle, as reported by Ryan Schmidt.
* The Linux, and other X, versions of Mini vMac would crash when exporting a file, if the “out” folder in the application directory didn't exist, and Mini vMac lacked permission to create it, due to not properly handling errors in the routine “FindOrMakeChild” in the source file “MYOSGLUE.c”, as reported by Éric of Montréal.
* The Linux, and other X, versions of Mini vMac can crash if the HOME environment variable is not set, due to missing error checking (which in turn was due to incorrectly disabling an alternate implementation), as reported by fzn.
* The Linux, and other X, versions of Mini vMac will now look for the ROM image in the application directory before looking in the “~/.gryphel/mnvm_rom”, instead of after, to match the behavior of the other ports. This makes it easier to have a ROM image for general use, and still be able try out another ROM image.
* The autoscroll feature (used in full screen mode when the emulated screen size is larger than the real screen) would not work when the emulation was stopped (using the “Stopped toggle” in the “S” command of the Control Mode).
* In the Cocoa port, Mini vMac would fail to mount a disk image located on a file system that doesn't support locking. It now checks the result from the flock call, and only prevents mounting if the file is already locked, and doesn't prevent mounting for other errors.
New features not in default compile
* The hack allowing the emulated Mac Plus (and other models without Color Quickdraw) to have a larger screen always allocated enough memory for a screen with up to 1048576 pixels. It now allocates more closely to just the memory needed, and can handle screens up to 2097152 pixels (the size of the unused area in the address space that is used by this hack). I believe the previous limitation was mostly consequence of how earlier versions handled memory access in the CPU emulator. The build system will now give an error when the requested screen size contains more than 2097152 pixels (before it would compile fine and just not work right).
* A new build system option “-sss” selects the output Sound Sample Size.
* A new build system option “-cbt” selects the initial value of Caret Blink Time (Rate of Insertion Point Blinking) in the Parameter RAM.
* A new build system option “-dct” selects the initial value of Double Click Time in the Parameter RAM.
* A new build system option “-mnb” selects the initial value of Menu Blinks in the Parameter RAM.
* A new build system option “-kyt” selects the initial value of Keyboard Repeat Threshold in the Parameter RAM.
* A new build system option “-kyr” selects the initial value of Keyboard Repeat Rate in the Parameter RAM.
* A new build system option “-svl” selects the initial value of the Sound Volume in the Parameter RAM.
Changed behavior not in default compile
* None Yet.
Bug fixes not in default compile
* Sound in the Macintosh II emulation is much improved. The build system now enables it by default.
* The Windows version wouldn't compile with magnification disabled (-mf 1) and screen depth (-depth) of thousands, millions, or 4 colors.
* The Classic Mac versions (“-t m68k” and “-t mppc”) didn't always request a large enough memory allocation in the SIZE resource, particulary for large screen sizes and color depths. The build system now tries to compute the memory requirements more exactly.
* The Pocket PC version wouldn't compile with "-im 1". Removing the call to GetShortPathName for Pocket PC allows it to compile, but then registration won't work if the path of the application contains spaces. Upon further investigation, it seems all that is needed is to put the application path in quotes when setting registry entries, so GetShortPathName isn't needed. So have made this change for both Pocket PC and the regular Windows version.
* The build system now supports Xcode 6.3.2 (with “-ev 6320”), and also Xcode 6.4 Beta (“-ev 6400”), Xcode 6.2 (“-ev 6200”), and Xcode 4.6.3 (“-ev 4630”). Though not tested, other versions of Xcode in between should also work, by constructing the “-ev” option in the same way.
* The build system now supports Microsoft Visual Studio 2013 (with “-ev 12000”), and also Microsoft Visual Studio 2012 (“-ev 11000”), and Microsoft Visual Studio 2015 RC (“-ev 14000”).
* Added build system option “-api sd2” to use the Simple DirectMedia Layer 2.0 API (the older 1.2 API was previously supported), based upon a port by Manuel Alfayate, after this discussion.
* Files can now be dropped onto the build system application icon. This is equivalent to copying the contents of the file, and pasting it into the build system window after removing any existing text (such as by the ‘Select All’ and ‘Clear’ commands), and then choosing the ‘Go’ command. Multiple files can be dropped, and they will be all be processed. (Though if there is an error, that error is reported, and all remaining files are forgotten.) If the build system application was not yet running when icons are dropped on it, then the application automatically quits after processing all the files. Other ways of generating kAEOpenDocuments apple events, besides dropping files on the application icon, should also work, such as AppleScript.
* The Build System now supports drag and drop (when the drag and drop operating system software is present) onto its window, which has equivalent function to dropping a file on the application icon as described above.
* The Build System has a new “Import” command in the File menu, which has equivalent function to dropping a file on the application icon as described above.
* The Build System has a new “Export” command in the File menu, which saves the window’s contents to a new file, that the “Import” command can read. The new file has the creator set to the Build System, so double clicking on the file will work. The Build System application defines an icon for the files it saves.
* The Build System now has a progress indicator at the bottom of the window. It can display information about what is going on. Clicking on the progress indicator is equivalent to choosing the “Go” command from the File menu. The Build System can now potentially allow the user interface to remain functional while processing. But calls have to be added to the processing code to allow this, calls that report progress and can yield time to the user interface code.
* Renamed the Build System application to include branch information - "MnvM_b34". This makes it easier to deal with the Stable and Development branches at the same time.
* Prevent warning about unused code when using options "-var-fullscreen 0 -fullscreen 1 -mf 1".
* Added build system option “-t fbpc” for FreeBSD on PowerPC.
* Added build system option “-t cpu”, to provide a starting point for compiling a combination of operating system and CPU that is not yet supported.
* The Build System now generates a compile time check in a configuration file when compiling with gcc for x86-64 or x86-32, to make sure the 64 bit configuration is not compiled with a 32 bit compiler, or vice versa. This can result (especially when used with "-no-asm"), in a binary that almost but doesn't quite work correctly. The check is for the wrong predefine being present, rather than checking that the correct predefine exists, to reduce the chance of incorrectly giving an error on an unusual compiler version.
* It does not make sense to combine the build options “-magnify 1” (to start with magnification on) and “-mf 1” (to disable magnification), and the Build System now prevents this.
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Back up to - Changes in Mini vMac versions
What has changed in Mini vMac 3.5.8, compared to Mini vMac 3.4.1. This only lists changes that affect behavior, and so doesn't include cleanups of the source code.
:
default compile:
not in default compile:
:
New features in default compile
* None Yet.
Changed behavior in default compile
* Mini vMac should be faster on machines that aren’t PowerPC or x86-32. (And also Macintosh II emulation should be faster.) The C version of the 680x0 CPU emulation was optimized to be about as fast as the previous assembly code (that was only implemented for 68000 emulation on PowerPC and x86-32), and then the assembly code was removed. So Mini vMac should be much faster for variations where the old assembly code could not be used. Also, the x86-64 version is now faster than the old x86-32 assembly, and so is now preferred on machines that can run both x86-64 and x86-32. (On OS X, various bug fixes should make the Cocoa port now work as well as Carbon port, which wasn’t available on x86-64.) The C code is tweaked for a specific version of the GCC compiler. While other compilers are still supported, they can result in significantly slower emulation.
* If Mini vMac reports an “Abnormal Situation”, it now also displays a 4 digit hexadecimal number. The original idea was that if something unexpected happens, you should first figure out how to reproduce the problem. Then the same thing can be done on a copy of Mini vMac with debugging stuff enabled. But this idea doesn’t work out so well if the problem can’t be reproduced, and seems to happen randomly and rarely. So now the non debug version of Mini vMac will display a number, which doesn’t take much code, so at least something can be learned.
* A badly behaved program could cause Mini vMac to crash, attempting to fetch an emulated instruction from random memory, which memory protection on a modern computer prevents. Since this is only a bad read, I don’t think any further harm was possible besides crashing Mini vMac. Most kinds of memory access emulated by Mini vMac have for a quite while been designed to always be accurate and safe. But for speed, fetching the next instruction would simply increment a pointer to where the instruction is in real memory, and relative branches would just offset this pointer. Only for certain long branches would Mini vMac work out from scratch where the instruction is in real memory. This is good enough for all known correctly working software. But it is in theory possible to write code so that the pointer to the next instruction gets set to arbitrary memory that the operating system may not allow Mini vMac to access, resulting in a crash. And not just in theory, I have seen this happen in programs running in Mini vMac that were malfunctioning. This bug is fixed by keeping low and high limits for the instruction pointer, and checking against them as the pointer is changed.
* There is now some testing code that scrambles the mapping between emulated memory (for RAM and ROM) and real memory, splitting it into two sets of interleaved blocks (in effect toggling one bit of the address). Which exercises all the new boundary checking code. With a number of bug fixes it all worked.
* In the Cocoa port, entering Full Screen should now work in recent versions of OS X, instead of immediately exiting. For safety Mini vMac automatically leaves full screen mode if it notices the screen size has changed, implemented in the Cocoa port by looking for the notification applicationDidChangeScreenParameters. But recent OS X gives this notification on entering Full Screen mode, when it didn’t used to. So the Cocoa now records the main screent Rect, and only exits full screen mode if it has changed. This problem was reported by Tim.
* The Cocoa port would draw incorrectly in full screen mode if the emulated screen is larger than real screen.
* There is a fix for drag and drop in the Cocoa port. When Mini vMac becomes the active application, all emulated key are usually considered to be up, even if the actual keys are still being held down. But there is an exception for modifier keys held down on drag and drop (after which Mini vMac makes itself the active application), so that holding down command and option can be used to rebuild the desktop files of emulated disks. This exception worked in Carbon, but not previously in Cocoa. I’ve now figured out how to get the modifier keys, by using [NSEvent modifierFlags]. This only work in OS X 10.6 and later, so Mini vMac checks that this method is available before using it.
* In the Cocoa port, when Mini vMac is launched by dragging a disk onto the application icon, but there is also a disk1.dsk image, it now matches the behavior of other ports in mounting the dragged image after disk1.dsk instead of before.
* In the Cocoa port, when importing and exporting the text clipboard, Mini vMac was not translating the end of line format.
* In the Cocoa port, when importing the text clipboard, if there were any characters that could not be translated (because they are not in MacRoman), nothing would be translated. Now, such characters will translate to “?”.
* In the Cocoa port, when dragging the Mini vMac window around by its title bar, the emulated cursor position was incorrect. (The emulation continues running during the drag in this port.)
* In the Cocoa port, if the mouse is moved over the dock, the cursor is made visible by the operating system, but if the mouse was then moved directly back into the Mini vMac window (and there was nothing in between), the system cursor was not made invisible again, so the system cursor and the cursor of the emulated Macintosh were drawn on top of each other.
* In the Windows version of Mini vMac 3.4, the Mini vMac window is resizable. This happened when fixing a call to CreateWindowEx to stop using an invalid window style. The fix is now fixed by not including WS_THICKFRAME in the style.
* There have been reports of graphics problems in the Linux version, which is suspected to result from drawing images with one bit per pixel to the screen not being properly implemented in at least some versions of Linux, with at least some hardware. So Mini vMac will now always pass 32 bit per pixel images to the operating system (for Linux and other X versions), even for black and white images. This could potentially be much less efficient, so there is a new compile time option to behave as before, “-ci 0”.
* A C compiler is allowed to assume that two pointers of different types don’t point to the same memory location. But this assumption could break Mini vMac. So now for GCC 4.7.4 the option "-fno-strict-aliasing" is used to prevent this assumption, which appears to make no significant difference in speed. But for other compilers, Mini vMac will now try to work correctly even with this assumption (basically by taking out optimizations for big/little endian), which will slow it down a bit.
* The emulation of the CMPI instruction was considering pc relative addressing to be illegal, when it is actually fine (though odd). As reported by Adam, this broke Dynamix adventure games. This was in Macintosh II emulation, but the bug was also present in the default Macintosh Plus emulation.
* The emulation of the Move to SR instruction now checks for Privilege Violation.
New features not in default compile
* A new build system option “-lang ptb” selects a Brazilian Portuguese translation of the user interface by Mauricio.
* Normally, when in Full Screen Mode, Mini vMac will try to “grab” the keyboard, preventing the operating system from intercepting keys. So in the Windows version, the ‘windows’ key can be used as an ‘option’ key, instead of popping up the “Start” menu. And in the OS X version, Command-Tab won’t switch away from Mini vMac. This is also implemented in the X version. There is a new build option, -gkf 0”, that disables grabbing the keyboard, allowing the operating system to intercept keys when Mini vMac is in Full Screen Mode. This was requested by a maintainer for “Rocket Launcher”.
* Can now use a “Twiggy” Macintosh prototype ROM, after merging in work by Matěj Hybler. (There are two known disk images that will work with it.) The build option is -m Twiggy”. (This is not an officially supported option, advanced users can compile this version if they want to try it.)
* Can now also use an even earlier “Twiggy” Macintosh prototype ROM, merging in further work by Matěj Hybler. (The same two disk images will work with it.) The build option is -m Twig43”. (This is not an officially supported option, advanced users can compile this version if they want to try it.)
* The new option “-ahm” patches the ROM to replace the “Happy Mac” icon displayed on boot when a disk is inserted, with one of the images designed by Steve Chamberlin for his Mac ROM-inator (used with permission).
* The new option “-rsz” allows you to set the size that Mini vMac expects the ROM image to be. The build system will normally select the correct ROM Size for the Macintosh model you have chosen to emulate. But you can now override this, such as to use a ROM image for Steve Chamberlin’s Mac ROM-inator.
* The new option “-chr 0” prevents Mini vMac from checking the ROM checksum. The first 4 bytes of a Macintosh ROM contain a checksum of the remaining bytes, and there is code in the ROM to check the checksum on boot. Mini vMac patches the ROM image, so it disables this checking code. Mini vMac does the check itself before patching the ROM. It also checks that the 4 byte checksum matches one of the known ROM images for the model you have chosen to emulate. This option disables these checks, which is useful if you want to use Mini vMac with a modified ROM image, such as for Steve Chamberlin’s Mac ROM-inator.
* The new option “-drc 0” prevents Mini vMac from disabling code in ROM that checks the ROM checksum on boot. Since Mini vMac patches the ROM, it also patches out this check. If you are using a ROM image with Mini vMac that is already patched (such as for Steve Chamberlin’s Mac ROM-inator ), this check may already be patched out. In that case Mini vMac doesn’t need to, and probably shouldn’t, to avoid interference in case a different method of patching out is used.
* The new option “-drt 0” prevents Mini vMac from disabling code in ROM that tests proper operation of RAM at boot. Mini vMac normally patches the ROM to disable this test, to speed up booting. For greater realism, you can leave this test in.
* The port to SDL 2 now supports importing and exporting the host clipboard (like most other ports). It also supports the same “-d” and “-r” command line options as the X ports. And it now uses the function SDL_GetBasePath for the directory to look for the ROM image and the disk1.dsk, disk2.dsk, etc. images (and also the debug log file, when enabled). In the OS X version, in the "Info.plist" file it uses the key "SDL_FILESYSTEM_BASE_DIR_TYPE" with value "parent", so that Mini vMac will looking for these images in the folder containing Mini vMac, like in most other ports. It also now ignores command line arguments starting with “-psn”, which on OS X allows it to be launched by double clicking without getting an error message. (Previously it had to be launched with the command line.) Like other ports, there are now separate magnify states for when in full screen mode and when not. And when first entering full screen mode, the magnify state is set automatically depending on the screen size. A new feature only in the SDL port so far is that using the scroll wheel of the mouse acts as if arrow keys are pressed, giving roughly the expected behavior of a scroll wheel.
Changed behavior not in default compile
* In the Macintosh II emulation, when compiled with 256 colors or 16 colors or 4 colors, the initial value in the Parameter RAM is now set to boot in color. So the initial picture is in color. (Soon after, the color mode is changed to the value saved on disk.) This didn’t use to work, which is why it was previously set to boot in black and white. It seems to work now, for reasons not investigated yet (probably one of various fixes to video emulation). It still doesn’t work for thousands or millions of colors.
Bug fixes not in default compile
* The video driver in the Macintosh II emulation now implements indexed SetEntries. This is used by the game Crystal Quest (which by the way requires color depth to be 16 colors). Also for non-indexed SetEntries, the driver now returns the no error code. (Apparently this error code is not usually paid attention to.)
* Tara Keeling reported a bug in the Macintosh II emulation, where if the emulation was running slow enough (such as 1x speed), and there is a “disk1.disk” and “disk2.disk”, then the second disk image won’t get mounted. There is code to delay mounting the second disk one second after the first disk, which is good enough for Macintosh Plus emulation, but apparently not for the Macintosh II. So the delay has been increased to four seconds, but also now when a kDriveStatus call is made to the replacement disk driver, the delay is reduced (to about a fifteenth second). The emulated computer appears to be ready for a new disk after this call. (Not reducing the delay to zero is just being conservative.) So even for the default Macintosh Plus emulation, when inserting multiple disks there is now usually much less delay.
* In the built in disassembler ("-dis" option), the shift instructions L and R were reversed (such as for ASR and ASL).
* A problem may be fixed in the Macintosh II emulation, reported by Stephen Barbieri, caused by the FPU emulation not coping with invalid inputs.
* In the Macintosh II emulation, an “Abnormal Situation” report seen when using the Restart command of the Finder has been removed, since this actually seems to work fine now.
* The emulation of the Move from SR instruction now checks for Privilege Violation on 68020 (it is not a Privilege Violation on 68000).
* The build system has a new Development Environment option, Mini vMac C (“-e mvc”), which is really just a particular version of GCC and supporting projects, compiled into a set of cross compilers, that is used for official binaries. The advantage of using a single compiler version is in getting consistent performance across different operating systems. Also it easier to tweak C code to get good performance for a single compiler, than to try to make code that is optimum for all C compilers.
* The build system normally selects the source files needed to compile the requested variation. There is now an option to include all source files: -all-src 1”. To make this work, all source files now have unique names, rather than have multiple files with the same name in different folders in the source archive, for choices of API, sound API, language, icons.
* Support for assembly language is removed, including the option “-no-asm”.
* There is now an option to put generated configuration files into a separate directory from the source files: “-cfg 1”. This is only supported for “-e mvc”.
* The Export command would not overwrite an existing file (after the Standard Put File dialog asks if you want to replace it).
* The build system now supports Xcode 7.3.1 (with “-ev 7310”), and also 8.2.1 (“-ev 8210”). Though not tested, other versions of Xcode in between should also work, by constructing the “-ev” option in the same way.
* The build system now supports Microsoft Visual Studio 2017 (with “-ev 15000”).
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Back up to - Changes in Mini vMac versions
What has changed in Mini vMac 36.04, compared to Mini vMac 3.5.8. This only lists changes that affect behavior, and so doesn't include cleanups of the source code.
:
default compile:
not in default compile:
:
New features in default compile
* The new ‘P’ command of the Mini vMac Control Mode copies to the clipboard (of the real computer, not the emulated computer) a string containing the options describing this variation of Mini vMac.
* If the ROM image is not found in any of the locations that Mini vMac looks, the error can now be recovered from. You can drag the ROM image onto Mini vMac, and booting will resume. (Any of the methods that would normally mount a disk image will work to get the ROM, such as the Open dialog.)
* The Cocoa version for OS X now looks for the ROM image in one additional place, “/Library/Application Support/Gryphel/mnvm_rom/”, which can be read by a Sandboxed application. To change “/Library/”, an administrative account is needed. (Sandboxing is off by default, there is a new build system option “-sbx 1”, to enable Sandboxing.)
Changed behavior in default compile
* The version numbering scheme has changed. Instead of “3.6.4”, it is “36.04”. The distinction between major and minor version numbers has not been useful. Instead there is now a single branch number. This allows more bug fix releases (up to 99 instead of up to 9) without taking more space in the version string.
* The Cocoa version for OS X is now normally signed with a certificate from Apple, so that the Gatekeeper feature of OS X will permit it to run by default. This was not done before because of some issues, and because those issues are still there, there is a new build system option “-sgn 0” to disable code signing.
* The URL in the Mini vMac about message is now the main Gryphel Project page, rather than the Mini vMac page, mostly since it is shorter, in case anyone tries to type it in from here.
* In the help screen (Control-H), and also the speed control screen (Control-S), there is now a single space after the letters on the left instead of two.
* Mini vMac will no longer display “Abnormal Situation” reports, by default. There is a new build system option “-abr 1” to enable them.
* Using Macsbug to step through code (with Command-S or Command-T) did not work properly in Mini vMac 3.5.x. An optimization to the main cpu emulation loop was not valid when the trace flag gets set, so the interrupt could happen one instruction later. I found a way to fix it which doesn’t change the optimized main loop, but just the code before and after. But it can change the timing of other kinds of interrupts by one instruction, potentially causing subtle differences in behavior anywhere.
* On a Retina screen in OS X, the window frame of Mini vMac would be drawn in low resolution. The Cocoa port now adds the key NSHighResolutionCapable to the Info.plist file, which seems to fix this. Thanks to Ryan for this fix.
* A memory leak is fixed in the Cocoa port for OS X, when exporting the clipboard. This was found by the Xcode Analyze feature.
* On Windows, if Num Lock is on, the operating passes virtual key codes like VK_NUMPAD0 through VK_NUMPAD9, but if Num Lock is off, it passes virtual key codes like VK_LEFT, VK_RIGHT, VK_UP, and VK_DOWN. A flag bit indicates whether VK_LEFT means the left arrow key or the 4 key on the keypad. So now Mini vMac will check that flag, and map the keys on the keypad to the emulated Macintosh keypad, regardless of whether Num Lock is on. (But this doesn’t fully explain the reported issue.)
New features not in default compile
* A new build system option “-lang cat” selects a Catalan translation of the user interface by ArduinoXino.
* A new build system option “-lang cze” selects a Czech translation of the user interface by Anonymous.
* A new build system option “-lang srl” selects a Serbian translation of the user interface by SerbXenomorph.
* A new build system option “-sgn 0”, for the Cocoa version for OS X, to disable code signing.
* A new build system option “-sbx 1”, for the Cocoa version for OS X, to enable Sandboxing.
* A new build system option “-gse 1”, for the Cocoa version for OS X, which on computers with more than one GPU allows the operating system to change which one is used. Otherwise on a MacBook pro, it is reported that the higher power discrete GPU is always used instead of the lower power integrated GPU, and that besides wasting power for no noticable benefit, it also takes time to switch on the discrete GPU when Mini vMac starts. “-gse 1” should probably become the default in the future. But I don’t have a MacBook pro to test it on, and I have a few questions about it.
* New build system options “-hcr, -hcg, and -hcb” select the initial value of red, green, and blue components of the highlight color in the Parameter RAM. The “GetPRAM” tool can be used to get values for these options. This was requested by Karl.
* New build system options “-alc, -lcy, and -lcx” allow manually setting the location fields in the Parameter RAM. The “GetPRAM” tool can be used to get values for these options.
* New build system options “-atz, -lcd, -lczs, and -lcz” allow manually setting the time zone fields in the Parameter RAM. The “GetPRAM” tool can be used to get values for these options.
* The new build system option “-km” changes the mapping between keys on the real Keyboard and keys on the emulated Keyboard, or the Mini vMac Control Mode.
* The new build system option “-ekt <dst>” chooses which emulated key is toggled by the ‘K’ command of the Mini vMac Control Mode.
* The new build system option “-svd 0” disables the save dialog for OS X and Windows when exporting a file (as used by the Mini vMac extra ExportFl and other tools). Instead the exported file is saved in a folder named “out” without a dialog, as was previously done in the Linux version. This makes it easier to run Mini vMac in an automated script and get results out.
* The new build system option “-iid 1” enables an Insert Ith Disk Image feature. When this feature is enabled, if the Control key is held down and a number key from ‘1’ to ‘9’ is pressed, then Mini vMac will try to mount a disk image named from "disk1.dsk" to "disk9.dsk" in the folder containing the application.
This is the same series of disk image names that are automatically mounted when Mini vMac is launched. But it stops at the first image not found. So if you leave a name unused, then you can use a control-number key to mount disks after launch. Or, you can use a control-number key to remount a disk that was automatically mounted at launch and then later ejected.
One example use is if you have one copy of Mini vMac running a development environment (such as MPW) that is used to compile a program to a disk image. The disk image is then unmounted and mounted on another copy of Mini vMac running a testing environment. If the compiled program crashes badly, the development environment is not disturbed. The control-number key feature makes it easier to move the disk image back and forth between the two copies of Mini vMac.
* The new option “-eci 0” disables the ‘I’ command of the Mini vMac Control Mode, which presses the emulated Interrupt Button. In a future version, it may be disabled by default. (In the original Macintosh, the Interrupt Button was disabled by default. You needed to install the “Programmer’s Switch” to use it.)
* The new option “-ecr 0” disables the ‘R’ command of the Mini vMac Control Mode, which presses the emulated Reset Button. In a future version, it may be disabled by default. (In the original Macintosh, the Reset Button was disabled by default. You needed to install the “Programmer’s Switch” to use it.)
* The new option “-eck 0” disables the ‘K’ command of the Mini vMac Control Mode, which toggles the emulated control key. In a future version, it may be disabled by default. (The original Macintosh did not have a control key. And, using this command accidently would be confusing.)
Changed behavior not in default compile
* None Yet.
Bug fixes not in default compile
* The game PowerMonger was reported not to work in Mini vMac 3.5.8, though it worked in 3.4.1. This was due to a bug in emulating the TRAPcc instruction in the Macintosh II emulation.
* If debug logging was turned on for the classic Macintosh port, and the log already existed when Mini vMac started, the log wasn’t cleared.
* The build system is now a cross platform standard C command line tool to generate a script to write configuration files, as was done prior to Mini vMac 3, instead of a 68k Macintosh program to generate files to compile. This should allow the Variations Service to be more efficient, and is also more convenient for experienced programmers. The trade off is in making it harder for others to compile their own variations.
* The default version of XCode chosen by the build system is now 9.4.1, the latest version supported. Since XCode is no longer used for official Mini vMac builds, there is no reason to default to the specific antique version previously used. Similarly, Microsoft Visual Studio 2017 is now the default version chosen for that development environment.
* Due to a compiler bug in Microsoft Visual Studio 2017, optimizations are turned off for this development environment.
* The new option “-br” is for future use and currently has no effect. It tells the build system that the requested options were from a specific branch (version) of Mini vMac. The new ‘P’ command of the Mini vMac Control Mode gets the options from an existing variation, and includes this Branch setting. If the default settings have changed from since that older version, then the build system will use defaults of the old version, rather than the current defaults. So the newly generated variation behaves as close as possible to the earlier variation.
The ‘P’ command retrieves the options in a canonical form. It always generates a “-br” option for the current version, rather than copying any “-br” option passed to the build system.
* If the new option “@” is used, no developer options are permitted to the right of it. This will allow the Variations Service to allow the user to specify options as text without the chance of breaking the service.
* If the new option “!” is used, options to the right of it will override options to the left of it. Normally it would be an error for the same option to be used twice. It is still an error for an option to be used twice on the same side of ‘!’.
* The new option “-cte 1” causes the build system to generate source code that causes the compiler to generate an error. This is for testing the variation service.
* If the new option “-bte” is used, the build system will treat it as an error. This is for testing the variation service.
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Back up to - Changes in Mini vMac versions
What has changed in Mini vMac 37.00, compared to Mini vMac 36.04. This only lists changes that affect behavior, and so doesn't include cleanups of the source code.
:
default compile:
not in default compile:
:
New features in default compile
* None Yet.
Changed behavior in default compile
* Mini vMac will now check if a disk image that is being mounted looks like a Macintosh disk image format (HFS or MFS), and if not decline to mount it, showing an error message. This helps prevent accidentally corrupting other files, especially when using ImportFl.
But there are some other disk image formats that you might want to mount, such as Fat16 and ISO (which can be used by the emulated Macintosh with additional software). Or, you may be trying to create your own new disk image and want the emulated Macintosh to initialize it. In these cases you can use a version of Mini vMac compiled with the new “-ndp 0” option to turn off this protection.
If a Branch option prior to 37 is chosen for compatibility with an earlier version, the default is “-npd 0”, and you can use “-npd 1” to turn on this protection.
* None Yet.
New features not in default compile
* None Yet.
Changed behavior not in default compile
* The new “-lto” option provides alternative transport for LocalTalk emulation. In addition to Mike Fort’s original code for LocalTalk over BPF (Berkeley Packet Filter), there is new code from Rob Mitchelmore for LocalTalk over UPD (User Datagram Protocol), that does not require setup or administrative privileges. The new UPD option is now the default for branch 37. If a prior “-br” (Branch) option is chosen for compatibility with an earlier version, the default is BPF.
Bug fixes not in default compile
* The built in disassembler (enabled with “-dis 1”) incorrectly handled the BCHG/BCLR/BSET/BTST instructions. Thanks to Ryan for this fix.
* None Yet.
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Back up to - Changes in Mini vMac versions
See the Build page to learn how to compile Mini vMac. The source archive contains:
src
Source code files for Mini vMac, most in C.
setup
Source code for the tool that configures Mini vMac source code for compiling.
extras
mydriver
Source code for a replacement disk driver that is patched into the emulated rom, and for the video driver of the Macintosh II emulation.
tran
Some source files are simple transformations of other source files. This is some MPW scripts to help keep them in sync.
README
Has link to Mini vMac home page, and some license information.
COPYING
The GNU General Public License (GPL)
:
If you find Mini vMac useful, please consider helping the Gryphel Project.
Next - Building Mini vMac
Contents
All the functions of the emulator can be controlled with the Mini vMac Control Mode, which works the same in the Macintosh, Windows, and Linux versions. To enter the Control Mode, press and hold down the ‘control’ key. You will remain in the Control Mode until you release the ‘control’ key. While in Control Mode, visual feedback is displayed on top of the emulated screen. Type ‘H’ in Control Mode to display available commands. The commands are:
‘A’ - About
Displays version and copyright information.
‘O’ - Open Disk Image
(Only in the Macintosh and Windows versions.) See the “Floppy Drive” section of the Hardware Reference.
‘Q’ - Quit
See the “Power Switch” section of the Hardware Reference.
‘S’ - Speed Control
See the “Processor” section of the Hardware Reference.
‘M’ - Magnify Toggle
See the “Screen” section of the Hardware Reference.
‘F’ - Full Screen Toggle
See the “Screen” section of the Hardware Reference.
‘K’ - emulated ‘control’ key toggle
See the “Keyboard” section of the Hardware Reference.
‘R’ - Reset
See the “Reset Button” section of the Hardware Reference.
‘I’ - Interrupt
See the “Interrupt Button” section of the Hardware Reference.
‘P’ - copy variation options
Copies to the clipboard (of the real computer, not the emulated computer) a string containing the options describing this variation of Mini vMac. (See the “Options” documentation.)
The menu commands are so far only available in the Macintosh and Windows versions, when not in full screen mode.
“Quit”
In the “Mini vMac” menu in Mac OS X. In the “File” menu in Windows and Mac OS 9. See the “Power Switch” section of the Hardware Reference.
“Open Disk Image...”
In the “File” menu. See the “Floppy Drive” section of the Hardware Reference.
“More Commands...”
In the “Special” menu. Displays information about the Control Mode.
“About Mini vMac...”
In the “Mini vMac” menu in Mac OS X. In the “Apple” menu in Mac OS 9. In the “Help” menu in Windows. Displays dialog suggesting the ‘A’ command of the Mini vMac Control Mode.
X Window System (Linux, BSDs, etc.)
If there are any arguments that don't begin with ‘-’, Mini vMac will try to mount them as disk image files. See the “Floppy Drive” section of the Hardware Reference.
If there are any unrecognized arguments beginning with ‘-’, Mini vMac will print out copyright and usage information and quit.
“-r [rom_file_path]” or “--rom [rom_file_path]”: Mini vMac will try to load the ROM file from [rom_file_path]. See the “ROM” section of the Hardware Reference.
“-d [directory_path]”: Mini vMac will use [directory_path] instead of the directory containing the application when looking for things such as the ROM or disk images named disk1.dsk, disk2.dsk and so on. (See the “ROM” and “Floppy Drive” sections of the Hardware Reference.)
“-n [app_name]”: Mini vMac will use [app_name] instead of the name of the application file for things such as the title of the Mini vMac window. See the “ROM” section of the Hardware Reference.
“-display [display_name]” or “--display [display_name]”: XOpenDisplay will be called with [display_name] as the argument. See the “Screen” section of the Hardware Reference.
Windows
Mini vMac expects that the command line string passed to it is a list of arguments separated by spaces.
If there are any arguments that don’t begin with ‘/’ or ‘-’, Mini vMac will try to mount them as disk image files. If an argument begins with a double quote (‘"’), then all characters, including spaces, until the next double quote are part of the argument. See the “Floppy Drive” section of the Hardware Reference.
A disk image file can be mounted by dragging its icon onto the Mini vMac window. See the “Floppy Drive” section of the Hardware Reference.
:
If you find Mini vMac useful, please consider helping the Gryphel Project.
Next - Emulated Hardware Reference
Mini vMac is based upon Richard F. Bannister’s Macintosh port of vMac. See:
http://www.bannister.org/software/
(vMac for Macintosh no longer seems to be available here.)
vMac was written by Philip Cummins and others. Please see this credits page:
The vMac home page is:
If that page looks blank with your browser, try
The downloads area for vMac currently seems to be broken.
The port to Microsoft Windows used as a starting point the Windows port of vMac, by Weston Pawlowski, Bill Miller, Ryan Hill, and Mike Voellinger. Additional contributors to the Windows port of vMac include Andre Masella, Lauri Pesonen, Hoshi Takanori, Jose Urena and Darek Michocka. vMac for Windows can be found at the vMac home page.
The port to PocketPC is by Fabio Concas. See:
The port to the X Window System used as a starting point the X port of vMac, by Michael Hanni. Additional contributors to the X port of vMac include Ian Stephenson, Matt, Frederic Roussel, and Sam Strohl. vMac for X can be found at the vMac home page.
Initial sound support in the Linux version using ALSA is by Stephan Kochen. The technique to dynamically load the ALSA library, so that Mini vMac can still run if it is not present, was seen in Simple DirectMedia Layer source code.
The port to the Simple DirectMedia Layer 2.0 API is based upon a port by Manuel Alfayate (based on the existing port to SDL 1.2).
John Perkins made sure Mini vMac can be compiled for IRIX.
The French translation of the program strings is by Pierre Lemieux, with some proofreading assistance by Gaël Coupé. Pierre Lemieux also made many suggestions for the English strings.
The Italian translation of the program strings was originally by Fabio Concas, with later updates by Gianluca Abbiati.
The German translation of the program strings is by Detlef Kahner.
The Dutch translation of the program strings is by Luc Pauwels.
The Spanish translation of the program strings is by Chir.
The Polish translation of the program strings is by Przemysław Buczkowski.
The Brazilian Portuguese translation of the program strings is by Mauricio.
The Catalan translation of the program strings is by ArduinoXino.
The Czech translation of the program strings is by Anonymous.
The Serbian translation of the program strings is by SerbXenomorph.
Since I have never done any X programming before, I learned more by looking at other programs, such as Basilisk II, the UAE Amiga Emulator, Bochs, QuakeForge, DooM Legacy, and the FLTK. A few snippets from them are used in Mini vMac.
The core cpu emulation code of vMac was adapted from the UAE Amiga Emulator by Bernd Schmidt.
The FPU (Floating Point Unit) emulation was originally written for Mini vMac by Ross Martin. This code was modified to use SoftFloat, by John Hauser (as found in the Bochs emulator), plus some extensions to SoftFloat by Stanislav Shwartsman (also found in Bochs). Though using SoftFloat is slower than using native floating point, it ensures consistent results on different computers, and makes it easier to compile with different development environments.
Basilisk II source code was a useful reference when implementing video card emulation (used for Macintosh II emulation).
MESS source code (now merged into MAME), had useful hints for emulating the Apple Sound Chip (for Macintosh II emulation).
Improvements to the support of Disk Copy 4.2 format disk images are from Jesús A. Álvarez's ("zydeco") iPhone/iPod Touch port, using information found in the Lisa Emulator Project by Ray A. Arachelian.
LocalTalk emulation was written for Mini vMac by Mike Fort.
LocalTalk over UDP was written by Rob Mitchelmore.
Support for emulation of the “Twiggy” Macintosh prototype is by Matěj Hybler.
The alternate “Happy Mac” icons are by Steve Chamberlin.
The code for moving the mouse in Mac OS 9 and earlier is adapted from MoveMouse.c by Dan Sears, which says that it is “Based on code from Jon Wtte, Denis Pelli, Apple, and a timely suggestion from Bo Lindbergh.” It also says that ‘For documentation of the CDM, see Apple Tech Note “HW 01 - ADB (The Untold Story: Space Aliens ate my mouse)”’.
The trick to moving the mouse in Mac OS X without the mouse freezing for a moment was found in “SDL_QuartzWM.m” of the “Simple DirectMedia Layer”, Copyright (C) 1997-2003 Sam Lantinga. See:
Advice from Toni Willen (of WinUAE), obtained by "easymode", was a helpful starting point in figuring out how to not monopolize the processor in the Windows version.
Drag and Drop support in the X version is based on the specification “XDND: Drag-and-Drop Protocol for the X Window System” developed by John Lindal at New Planet Software, and the included examples, one by Paul Sheer. See:
Code for hiding the cursor in the X version is adapted from X11_CreateNullCursor in context.x11.c in quakeforge 0.5.5, copyright Id Software, Inc. Zephaniah E. Hull, and Jeff Teunissen. See:
The jdate function used in the Windows and X version of Mini vMac is from “Webalizer - a web server log analysis program” by Bradford L. Barrett. See:
The GNU General Public License is from the Free Software Foundation. See:
Mini vMac is extensively modified from vMac, so I should take blame for any bugs I’ve introduced.
:
Next - Download Mini vMac
This page lists compile time options useful to people who wish to develop or maintain Mini vMac. The main Options page has options of interest to everyone else.
First see the Build page to learn how to compile Mini vMac.
:
If you compile a custom version of Mini vMac, you can label it with a line such as:
-n "minivmac-3.0.0-custom"
This string is displayed by the About command of Mini vMac, and is also used as the name of the archive exported by the build system.
Instead of specifying the whole variation name, you can just specify the abbreviated name, with a line such as:
-an mnvm0001
The version number and platform parts of the variation name are automatically generated. The abbreviated name must be 8 characters or less, and should only include lowercase letters, numbers, and underscores.
-intl
This option forces Mini vMac to support international characters in the user interface, even when using the default English. This is useful if the maintainer name needs the extra characters. (It would be nicer for the build system to figure out for itself what character set is needed. But this will do for now.)
Some additional options for target that are not officially supported:
-t xgen { Generic X11 } -t mppc { Macintosh OS 9 and earlier - PowerPC } -t m68k { Macintosh - 680x0 } -t mx11 { X11 for Macintosh OS X - PowerPC } -t mi11 { X11 for Macintosh OS X - Intel } -t mx64 { X11 for Macintosh OS X - x86-64 } -t cygw { Cygwin/X for Microsoft Windows } -t fbpc { FreeBSD on PowerPC } -t slrs { Solaris - SPARC } -t sl86 { Solaris - Intel } -t wc86 { Pocket PC - Intel (Emulator) } -t irix { IRIX - MIPS } -t minx { Minix 3.2 }
Some additional options for model that are not officially supported:
-m Twiggy { Macintosh prototype } -m Twig43 { Macintosh prototype } -m PB100 { Macintosh PowerBook 100 }
The Twiggy emulation (by Matěj Hybler) allows use of the ROM from a Macintosh prototype that has a Twiggy floppy drive (used in the original Lisa computer), instead of the Sony drive that the Macintosh 128K ended up shipping with. Except for the disk driver, the ROMs are nearly identical, except most everything is shifted to somewhat different addresses. Probably because the trap patching technique used in Macintosh System Software tends to depend on exact locations of routines in ROM, no System Software that shipped will run with the Twiggy ROM. There are two known disk images that will work with it, one with an early version of MacWrite and one with an early version of MacPaint. However these image don't currently work as is in the Twiggy Mac emulation. Matěj Hybler figured out a small patch to their boot block code to make them work, that disables some sort of check for the disk being bootable. This might be needed because the emulation is still using a replacement disk driver that is trying to imitate the data structures in memory used by the Sony disk driver, while the Twiggy disk driver has significantly different data structures. (With this patch, these two disk images will also work fine in the Macintosh 128K emulation.)
The Twig43 emulation (also by Matěj Hybler) allows use of an even earlier ROM (which near the end of the ROM contains the string “ROM4.3T 07/04/83”). This ROM is more significantly different. Oddy though, it can use the early MacPaint and MacWrite images without modification.
There is some code for PowerBook 100 emulation, but it does not yet get very far in booting.
The build system normally determines the CPU and operating system from the target (-t) you have specified. If a target doesn't yet exist for the combination of CPU and operating system you desire, you can select a target for that operating system and a different CPU, and then override the CPU with a line such as:
-cpu 68k { 680x0 } -cpu ppc { PowerPC } -cpu x86 { Intel 32 bit } -cpu x64 { Intel 64 bit } -cpu spr { sparc } -cpu arm { ARM } -cpu mip { MIPS } -cpu gen { generic }
It might or might not compile correctly, but it at least provides a starting point.
The build system normally determines the appropriate API (Application Programming Interface) from the target (-t) you have specified. You can override this choice with lines such as:
-api mac { Macintosh OS } -api osx { Carbon for Macintosh OS X } -api cco { Cocoa for Macintosh OS X } -api win { Microsoft Windows 32 } -api xwn { X Window System } -api gtk { GTK+ (GIMP Toolkit) } -api sdl { Simple DirectMedia Layer 1.2 } -api sd2 { Simple DirectMedia Layer 2.0 }
One useful use of this option is to specify '-api gtk' for a linux target (overriding the default '-api xwn'). This gets a menu bar and file dialogs, but loses other features since this port is incomplete.
The build system normally determines the appropriate Sound API from the target (-t) you have specified. You can override this choice with lines such as:
-snd-api alsa { Advanced Linux Sound Architecture } -snd-api ddsp { Open Sound System and compatible }
Currently the only useful use of this option is to specify '-snd-api ddsp' for a linux target (overriding the default '-snd-api alsa').
-d d { debug } -d t { test } -d s { ship }
-log 1 { enable logging infrastructure }
Logging won't do much without further enabling or creating code to log various events that you are currently interested in. This is for developers only.
-dis 1 { enable disassembler }
Besides disassembling a number of instructions executed after an event of interest, it can disassemble instructions prior to the event, as the emulator can save the addresses of instruction executed to a circular buffer. Requires the "-log" option. Nothing much will happen without further enabling or creating code to log various events that you are currently interested in.
bug : This isn't working correctly in Full Screen Mode, at least in OS X 10.6.8, and so is not supported for this version, at least.
-vsync 1 (mnvm0159)
Currently for OS X only, this option turns on OpenGL double buffering and sets AGL_SWAP_INTERVAL to 1. This eliminates the "tearing" issues noted by Manuel Alfayate. Unfortunately it isn't yet a real solution, it is more to help illustrate the issue before coming up with a better implementation. (See testsync.) Besides using much more memory, it also reduces the maximum speed of emulation unpredictably and erratically, because it makes aglSwapBuffers block until the vertical retrace, when Mini vMac is expecting to give the emulation extra time, for above "1x" speed.
@ { no more developer options }
If this option is present, then no developer options are permitted to the right of this option.
:
If you find Mini vMac useful, please consider helping the Gryphel Project.
Next - Setup Tool Configuration
These variations emulate a Macintosh 128K (using the “-m 128K” build option). The main Download page has many more options.
:
Macintosh OS
x86-64 (58K)
for any Mac made after 2012
(and some earlier ones)x86-32 (43K)
for any Mac made after 2006for earlier Macs:
PowerPC (50K)
Microsoft Windows
x86-32 (65K)
for any PCx86-64 (73K)
Linux
x86-32 (45K)
FreeBSD
x86-32 (44K)
x86-64 (49K)
NetBSD
x86-32 (43K)
x86-64 (49K)
OpenIndiana
x86-32 (43K)
x86-64 (48K)
Microsoft Windows Mobile 5.0
ARM (47K)
...
More Ports, for running upon other computers, by other people
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
These variations emulate a Macintosh II with a 640x480 display with 256 colors (using the “-m II” build option). The main Download page has many more options.
Warning : Macintosh II emulation in Mini vMac is incomplete, and should not be relied on to give accurate results, particularly numeric results. (Emulation of the Floating Point Unit is the main incomplete part.) It does seem suitable for games, many of which appear to work perfectly well.
:
Macintosh OS X
x86-64 (91K)
for any Mac made after 2012
(and some earlier ones)x86-32 (84K)
for any Mac made after 2006for earlier Macs:
PowerPC (92K)
Microsoft Windows
x86-32 (105K)
for any PCx86-64 (108K)
Linux
x86-32 (86K)
FreeBSD
x86-32 (84K)
x86-64 (81K)
NetBSD
x86-32 (84K)
x86-64 (81K)
OpenIndiana
x86-32 (83K)
x86-64 (80K)
Microsoft Windows Mobile 5.0
ARM (88K)
...
More Ports, for running upon other computers, by other people
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
To get started with Mini vMac, download one of the following compiled applications, and then go to the Getting Started page. (If you have not already seen it, check the about page to learn more about Mini vMac.)
These “standard variations” emulate a Macintosh Plus. The main Download page has many more options.
:
Macintosh OS X
x86-64 (58K)
for any Mac made after 2012
(and some earlier ones)x86-32 (44K)
for any Mac made after 2006for earlier Macs:
PowerPC (50K)
Microsoft Windows
x86-32 (65K)
for any PCx86-64 (74K)
Linux
x86-32 (45K)
FreeBSD
x86-32 (44K)
x86-64 (49K)
NetBSD
x86-32 (44K)
x86-64 (50K)
OpenIndiana
x86-32 (43K)
x86-64 (48K)
Microsoft Windows Mobile 5.0
ARM (47K)
...
More Ports, for running upon other computers, by other people
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Next - Getting Started
This is the stable branch. Downloads are also available for other branches of Mini vMac.
For emulating a Macintosh Plus, with an English user interface, for various platforms.
There are many other possible variations, emulating other Macintosh models, other screen sizes, using other languages for the user interface, and much more. The Variations Service can compile the variations you desire.
Or, you can compile variations yourself from the source, following instructions in the Building Mini vMac page.
The most popular nonstandard variation, using the “-m II” build option.
Emulate the original Macintosh, using the “-m 128K” build option.
You can use these checksums to verify that files downloaded correctly. They are signed with Gryphel Key 5.
I provide versions of Mini vMac compiled for various platforms. There are also ports by other people to additional platforms.
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Next - Getting Started
Download
aspack-1.0.0.zip (70K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
asPack is an application to convert a file you select into AppleSingle format.
AppleSingle format saves all the parts of a Macintosh file (including the data fork, the resource fork, file type and creator, the creation/modification dates, and other meta data) into a single simple sequence of bytes that can be transferred to non Macintosh file systems without losing any information. But that is not what asPack is intended for. asPack is intended for use with FDisasm. It is an alternative to GetRsFrk, so you can look at the entire file, not just the resource fork.
asPack saves its result in a file named “bin” in the same folder as the asPack application (creating “bin” if it doesn't already exist, and overwriting if it does). After running asPack, you should next use FindRes.
The related program asUnpack is the inverse of asPack, unpacking an AppleSingle file named “bin”.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 9b7974a354af4d16efdbc301dad9ba04 aspack-1.0.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/As7mdU0T+fUrlzjNvM8AOjHVb7a8JVQJT/pv9x63ottjWaD I6HeyE+1OPchD8V4GG2c9BekfMDrDLiw1wwqWJuMnrLGRNR8Z2CWzVtbXPBcX3ky lVDzkITRkU0V0uv64fEorqGj/ZkMx2/w4fmsqHleQF7eC6xYpbKwy9i+987JeHn6 -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling asPack from the source code.
You can redistribute asPack 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.
asPack 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.
:
If you find asPack useful, please consider helping the Gryphel Project, of which it is a part.
Download
asunpack-1.0.0.zip (74K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
asUnpack is an application to unpack a file in AppleSingle format, as created by asPack. It may not be able to unpack AppleSingle files created by other programs; in particular, it only deals with version 2 of the format.
The program operates on a file named “bin” in the same folder as the asUnpack application, and puts the output file in that same folder, with the name specified inside the AppleSingle file. If “bin” is not found, the program prompts you to select the input file. If the output file already exists, it is overwritten with no further prompting.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 3fc9071e23f2759971b2b8b84e6924e4 asunpack-1.0.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/ClWc16AUANsSmkn/QbUo+ZY2obHQFvtxRSXl8TjYCPO6/Ob bxPS7TEBh5U8RV+BTUh9GPAtboOpCQuBAFMfBkmFdXI9NHkxiQ+W3SVmWNNMO2ji Ia5QWXJrztQE7wC5XBIHRKIcyOgkKjcORUD9s0+hgewD9DWhe0eVD6uPVTRNWRlX -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling asUnpack from the source code.
You can redistribute asUnpack 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.
asUnpack 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.
:
If you find asUnpack useful, please consider helping the Gryphel Project, of which it is a part.
Download
autoquit-1.1.1.zip (16K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
AutoQuit assists in 'wrapping' an application for the Mac Plus, so that you can use it with Mini vMac more as you would a native application for your machine. AutoQuit will work with all systems prior to System 7, when not using MultiFinder. For applications that require System 7, you can use AutQuit7.
Discussion and Example
The basic way to use Mini vMac is to open a boot disk image, which brings up the Finder. From there you can launch an application, such as the game 'Continuum'. When you're done, you quit from 'Continuum'. This brings you back to the Finder, where you can choose the 'Shut Down' command, and then you can safely quit Mini vMac.
You can save one step if you prepare a boot disk image that contains 'Continuum', and set the 'Start Up' application to the game. Now booting from this disk image will launch the program 'Continuum' directly, skipping the Finder.
But when you quit from 'Continuum', you still end up back in the Finder, where you have to 'Shut Down' and quit Mini vMac.
You can save these extra steps by replacing the Finder on the boot disk image with the file 'AutoQuit'. Now quitting from 'Continuum' will automatically 'Shut Down' and quit Mini vMac.
AutoQuit is just a simple program that immediately shuts down a Macintosh, and, when running inside Mini vMac, tells Mini vMac to quit. You use it by setting an application to be the Start Up application of a bootable disk, and then replacing the Finder with AutoQuit, so that AutoQuit is run when the application quits. In more detail:
Instructions
* Download and unzip AutoQuit, to get the AutoQuit disk image.
* Create a bootable system disk image containing System 6.0.8 or earlier.
* Install an application on this disk image, and verify that it works properly.
* In the Finder, select the icon of the application, and choose the "Set Startup..." command from the Special menu.
* Boot from a different disk image.
* Mount the original disk image with the application, and open the System Folder on it.
* Drag the file 'Finder' into the Trash.
* Choose 'Empty Trash' from the Special menu.
* Mount the AutoQuit disk image, and copy the file 'AutoQuit' into the System Folder.
* Rename the copy of 'AutoQuit' to 'Finder'.
* Close the System Folder.
* Choose 'Shut Down' from the Special menu.
More details
If the shift key is held down, AutoQuit will shut down the emulated machine, but won't quit from Mini vMac. This makes it a bit easier to immediately use another disk image.
AutoQuit will check to make sure that it is running inside of Mini vMac before trying to make Mini vMac quit. This means it is safe to use in other emulators. So you can prepare a disk image with a wrapped application for Mini vMac, and still use it with another emulator.
It is also safe to use it on a real machine. This is useful with "CopyRoms". You can set the CopyRoms program as the Start Up application on a floppy disk, and replace the Finder with AutoQuit. You can then use this floppy to acquire the ROM image from a Macintosh, even if the keyboard, mouse, and/or screen don't work.
Some programs will not work as the Start Up application. DoLaunch provides a fix for this.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- e453d11903c7e902a0a9fcc1d17fef21 autoquit-1.1.1.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/NqIMVEZoHnPxUl4g9aa0nnWxh4GrRl8yABRTRZQy610GdBI 65vibPgpUJTUSf0rdJJ1fPpUzxJS84STMSyGdvykRa2Ei+CEMc85RNSkqoB2Po2L +7GqeT188xxmGTfgVNJiyHCzwWj0HrDuykCbEoNj+RYaXniScYxQTLgKjaoZ5c1+ -------- END GRY SIGNATURE --------
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.
News:
October 6, 2012
As reported by "David", it didn't work in the Basilisk II emulator. Copied fix from the Mini vMac build system for the code intended to detect when running in Mini vMac.
:
If you find AutoQuit useful, please consider helping the Gryphel Project, of which it is a part.
Download
autquit7-1.4.1.zip (53K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
AutQuit7 assists in “wrapping” an application for the Mac Plus that requires System 7.0 or later, so that you can use it with Mini vMac more as you would a native application for your machine. For applications that can run in System 6 or earlier, “AutoQuit” may be preferred.
To use AutQuit7, copy the application to a new folder on your System 7 disk. Then make an alias of the application and move the alias to the “Startup Items” folder within the “System Folder”. Do not place the AutQuit7 application directly in the “Startup Items” folder, because items in the same folder as AutQuit7 modify its behavior, and you don’t want to mix up these items with the “Startup Items”.
In the simplest case of using AutQuit7, when there are no other items in the folder containing it, then (after the next restart) Mini vMac will automatically quit when you shut down the emulated machine. The way it works is that AutQuit7 is a background only application, and on shut down the system tells all background applications to quit. At this time AutQuit7 sets a flag within Mini vMac, which causes Mini vMac to quit when the last disk is ejected. (This flag isn’t just always set, because it is possible to eject all disks even when not shutting down.) This behavior is basically the same as using “EjctQuit”, but doesn’t require System 7.5. (It requires System 7 or later.) Like EjctQuit, AutQuit7 will not quit Mini vMac if the shift key is down.
If you make an alias of an application, and place the alias in the same folder as AutQuit7, and then rename the alias to “app”, then AutQuit7 will launch the application at startup. Furthermore, when this application quits, the system notifies AutQuit7, and AutQuit7 then tells the system to shut down. (And then, as in the previous case, Mini vMac quits.)
If you make an alias of a document, and place the alias in the same folder as AutQuit7, and then rename the alias to “doc”, then AutQuit7 will tell the application “app” to open the document at launch.
If either “app” or “doc” are an alias pointing onto a disk that is not currently mounted, then AutQuit7 will wait up to 15 seconds for the disk to mount. However, the Macintosh system software can mistakenly decide that an already mounted disk is the disk it is looking for, particularly if it has the same creation date as the correct disk. So if you use one of the “Blanks” set of pre-made disk images, you may want to erase the disk image before using it (with the “Erase Disk...” command in the Special menu of the Finder) to make sure it has a unique creation date.
If you create a new folder in the same folder as AutQuit7, and rename the new folder to “cf”, then AutQuit7 will include all the functionality of “ClockFix”. This feature is included because there is some minimum overhead to a background application, and so it is less expensive to have one combined background application instead of needing both AutQuit7 and ClockFix. If the ClockFix functionality is enabled, then AutQuit7 will take a small amount of processor time about once a second, otherwise essentially no processor time is used. That may be a reason for not enabling this functionality when it isn’t needed.
Warning: according to Apple’s Technical Note TN1126, “All applications and Background Only Applications should have a memory partition set to at least 64K. This ensures there is always enough room for the system and extensions to work in the application’s heap.” The memory partition for AutQuit7 is set to 15K, and it seems to work, but it is possible there could be a problem depending on what extensions are installed. If so you can increase the memory partition of AutQuit7.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 296954b3b99ad2ab2e453a28ae63e42a autquit7-1.4.1.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/EyNno/Sn5mPjC8LQB1pknjYuRkBcLNVieK0ZWYPCVVMCJuA 2imn0ywGa4Y9Svkg4xVjVOcd45zelH9Jj84LylqsqKp4im/Y0KQu5olnOtx6ZIST AMDze2bgfm/84zWENQem2uEwqwo0MWvm3q0DFYI+Qe7MtPq77lXM3cSULwatY+oL -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling AutQuit7 from the source code.
You can redistribute AutQuit7 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.
AutQuit7 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.
News:
September 5, 2018
Thanks to this report, now use launchUseMinimum in launchControlFlags, so that AutQuit7 can launch “app” even if the preferred memory size is greater than the largest unused block.
October 6, 2012
As reported by "David", it didn't work in the Basilisk II emulator. Copied fix from the Mini vMac build system for the code intended to detect when running in Mini vMac.
:
If you find AutQuit7 useful, please consider helping the Gryphel Project, of which it is a part.
Download
binunpk-1.2.0.zip (64K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
binUnpk is an application to unpack files in MacBinary format. It is mostly useful for unpacking the Stuffit Expander 4.0.1 archive. It can also unpack other MacBinary files, but there isn't much need for it once you have Stuffit Expander. (Update - now that I'm hosting StuffIt Expander in disk image format, there is even less need for binUnpk.)
Since binUnpk comes as a zipped disk image, you don't need any other unpacking software running on the emulated Macintosh to unpack it. You just need to unpack the zip file on the real computer.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 641511e06df0fce5d072f07624d97085 binunpk-1.2.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/LcRL3XK6XGT/MGCuWsdGJ99B5C83pb4vTleblATQuWdfcZJ pJMJG0Q4ZgYmpfsvVEk4A2QcaTOqesnl5JF/cWnitw3mq7VYeTW5tKokO4SpWYd7 ZWIWOaHof+SR011OOjB5e3fIFkN9d5LPJ7v8PAs6c/6u+oWn2dd64qp2gKy/NtCH -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling binUnpk from the source code.
You can redistribute binUnpk 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.
binUnpk 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.
:
If you find binUnpk useful, please consider helping the Gryphel Project, of which it is a part.
Download
blanks-1.0.0.zip (52K)
“blanks-1.0.0.zip” is a zip archive containing a folder of zipped empty Macintosh disk image files of various sizes and formats.
First unzip “blanks-1.0.0.zip” to get the folder “blanks”. Then when you need a blank disk image, unzip one of the files in this folder. For example, unzip “800K.zip” to get “800K.dsk”, an 800K blank disk image, the size of a floppy disk normally used by a real Macintosh Plus.
For information about using disk images in Mini vMac, see the 'Floppy Drive' section of the Hardware Reference. To transfer files from your real computer into and out of disk image files, see the utilities ImportFl and ExportFl.
The top level of the blanks folder contains 2 other disk images in the sizes of standard Macintosh floppy disks: 400K and 1440K. A real Macintosh Plus floppy drive could use 400K disks, but not 1440K, which came later. But Mini vMac doesn't emulate the real floppy drive, replacing the disk driver in ROM, and so can use any size disk image, not just 400K and 800K.
The “K” folder contains disk images smaller than 1 megabyte, in powers of 2 starting at 128K (the smallest that works), and also multiples 1.25, 1.50, and 1.75 of those powers.
The “M” folder contains disk images larger or equal to 1 megabyte, up to 224M. In general, it may not a good idea to use the largest sizes, for reasons described below.
The “mfs” folder contains disk images in the MFS format (Macintosh File System). All the other disk images in Blanks are in “HFS” format (Hierarchical File System), the standard for a Macintosh Plus. MFS preceded HFS. The original Macintosh 128K and 512K can only use MFS and not HFS. A Macintosh Plus can use either.
The “dc42” folder contains disk images with the Disk Copy 4.2 header, and having file tags and checksums. (All the other disk images in Blanks are “raw”, containing just image data with no header or trailer.) Mini vMac can support file tags with the build system option “-sony-tag 1”, and can support checksums with the build system option “-sony-sum 1”.
If you're thinking of using large disk images, keep in mind that it is not a good idea to create one giant disk image for all your work. One reason is that the HFS file system is limited to a maximum of 65535 allocation blocks. So the minimum block size increases for larger disks, meaning more wasted space. (HFS Plus fixed this problem, but isn't supported on a Macintosh Plus.) Another reason it is bad idea is that a Macintosh Plus doesn't have the memory protection of modern computers, so that a bug in any program can potentially corrupt mounted disks. It is safer to have separate disk images for separate purposes. This way Mini vMac gives the same benefits of memory protection, and more. No matter what program you run in the emulated machine, nothing can be harmed except the disk images that are mounted at the time. (Unless there was a major bug in Mini vMac, of course.)
If you're using Mini vMac on a Macintosh, you might want to set the file type and creator of your new disk image file, using “SetFType”.
It is a good idea to rename the disks inside the emulated machine, instead of leaving the default name “untitled”. Because if two different mounted disks have the same name, some programs can become confused. (The name of the disk which you see in the emulated machine is completely separate from the name of the disk image file).
Another issue is that when you make multiple copies of these blank disk images, they will have the same creation date. This can make a difference if you use “Aliases” in System 7. The Macintosh system software can mistakenly decide that an already mounted disk is the disk it is looking for, particularly if it has the same creation date as the correct disk. If you might encounter this problem, before using one of the blank disk images you can erase it (with the “Erase Disk...” command in the Special menu of the Finder) to make sure it has a unique creation date.
You can also create your own blank disk images of any size. If you try to mount a file in Mini vMac which isn't a disk image (preferably all zeroes) the operating system of the emulated machine will ask if you want to initialize it. Choosing 'Initialize' will make a perfectly good disk image. You can create zeroed files in the terminal of Mac OS X, or Linux, with commands such as:
dd if=/dev/zero of=my_image.dsk count=14336
This creates a 7 Megabyte file, named 'my_image.dsk', in the current directory. 'count' is the number of 512 byte blocks.
For Microsoft Windows, it is reported that the command line utility MAKEDSK will make zero-filled files. The same archive also contains MAKEIMG which generates formatted disk images. However, according to Disk First Aid and Norton Utilities, the disk images it generates are not quite in standard HFS format, so it may be safer just to use MAKEDSK, and let Mac OS in the emulated computer do the formatting.
If you create a zeroed disk image file on a Macintosh, and wish to set the file type and creator with SetFType, you should first mount the zeroed file in Mini vMac to initialize it, unmount it, and then use SetFType. If you use SetFType before initializing the file, it won't know that the file is supposed to be a disk image.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- f78c53f9e86c6061873fd98adcd241b8 blanks-1.0.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/IB38d7nDSuDT9lxjw08hoB+Vz6ZqMoP/ZlCYeD9dnz7LJ0x vD0hYY5XP1vl3XIM/uaAeduoT3vTTIC4mdf7NDZ3YYCgXUrhR9dH8qeetY0KTjxI E+4K/mOQN6/4I0noT+edEnsebC0hZTYzOAesFwohb2hYyZDS2oCffisVJ4YQXCU0 -------- END GRY SIGNATURE --------
:
If you find Blanks useful, please consider helping the Gryphel Project, of which it is a part.
Download
clipin-1.1.0.zip (20K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
ClipIn is a Desk Accessory to use in Mini vMac 3.0.0 or later to import the clipboard of the real computer into the clipboard of the emulated computer.
When ClipIn is opened, a small window very briefly appears. After it disappears the clipboard has been imported.
ClipIn in provided in two formats. The file 'ClipIn' is a Font/DA Mover suitcase for use in System 6 and earlier, containing a desk accessory named '6-ClipIn'. (Use Font/DA Mover to install DAs in System 6 and earlier.) The file '6-ClipIn' is a System 7 style desk accessory, with icon and version resources. The actual desk accessory code in both versions is identical.
ClipIn is intended to be used with DAFKEY, to provide a keyboard shortcut. That is why the name of the desk accessory starts with '6-'.
If you would like to export the clipboard, see ClipOut, the opposite of ClipIn.
If you would like to import entire files, see ImportFl.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- e094de97d1c6c214a80fb74895124c3e clipin-1.1.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/JPGCqMBv2wRwXvPf45SY/F4gMP04qsY36FmnBBOwfngkQ07 ojxmHG0TPIAc8JEiU6giXZX28U5RDXN9vMdnnTcJUKsF2rAQF1xHVJzEDRGTin15 Rpuznv0dQCMUKdkWa9gPd8v61YvS/GpOBr9DvwNuRwLoJeBNKgfnzQgvF9Kunnsi -------- END GRY SIGNATURE --------
You can redistribute ClipIn 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.
ClipIn 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.
:
If you find ClipIn useful, please consider helping the Gryphel Project, of which it is a part.
Download
clipout-1.1.0.zip (info) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
(There is also an Alpha version in development, see below.)
ClipOut is a Desk Accessory to use in Mini vMac 3.0.0 or later to export the clipboard of the emulated computer to the clipboard of the real computer.
When ClipOut is opened, a small window very briefly appears. After it disappears the clipboard has been exported. (So be sure to wait until after the window has appeared and disappeared before switching to another application from Mini vMac, or the clipboard will not be exported.)
ClipOut in provided in two formats. The file 'ClipOut' is a Font/DA Mover suitcase for use in System 6 and earlier, containing a desk accessory named '5-ClipOut'. (Use Font/DA Mover to install DAs in System 6 and earlier.) The file '5-ClipOut' is a System 7 style desk accessory, with icon and version resources. The actual desk accessory code in both versions is identical.
ClipOut is intended to be used with DAFKEY, to provide a keyboard shortcut. That is why the name of the desk accessory starts with '5-'.
If you would like to import the clipboard, see ClipIn, the opposite of ClipOut.
If you would like to export entire files, see ExportFl.
The binary of the Alpha version is so far identical to the stable version above, but the source code is different, being ported to ReAsm.
Download Alpha
clipout-200105.zip (info) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
You can redistribute ClipOut 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.
ClipOut 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.
:
If you find ClipOut useful, please consider helping the Gryphel Project, of which it is a part.
Download
clockfix-1.2.0.zip (40K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
ClockFix is a background-only application for System 7 or later to use in Mini vMac to keep the emulated clock accurate. As described in the Real Time Clock documentation, the clock of the emulated computer may become inaccurate when the emulation is paused, such as when switching to another application and then back to Mini vMac. One work around is to open the Alarm Clock desk accessory. ClockFix is an alternative that may use less time and space. It also has the advantage of not appearing in the list of running applications in the Application menu, and the “Hide Others” command of that menu won’t disable it.
To use ClockFix, place it in the “Startup Items” folder inside the “System Folder” and restart.
About once a second (by the emulated computer’s time), ClockFix calls “ReadDateTime” which reloads the copy of time kept in memory from the Real Time Clock.
ClockFix does use some time and space, so it should not be used if an inaccurate clock doesn’t matter. You can use it if you want the modification dates of files you are editing to be accurate. You would not generally need to use it for games.
Warning: according to Apple’s Technical Note TN1126, “All applications and Background Only Applications should have a memory partition set to at least 64K. This ensures there is always enough room for the system and extensions to work in the application’s heap.” The memory partition for ClockFix is set to 10K, and it seems to work, but it is possible there could be a problem depending on what extensions are installed. If so you can increase the memory partition of ClockFix.
ClockFix should not be used on a real Macintosh. For one thing, it would be pointless. For another, a part of the Macintosh Family Hardware Reference seems to raise the possibility that ClockFix might drain the clock’s battery faster.
If you use AutQuit7, then ClockFix is not needed, since AutQuit7 optionally includes all the functionality of ClockFix.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- b9d735c1c3ff5240b7df3bfe53e71c51 clockfix-1.2.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/DVckcyqXQP5qU3E3Si+1WNxhZ3lG1wnNir+uUhuxyEDBhVe ObcWxiwi2LgXhOB+EF+KvCkOVYe6pOd9GkktxU6PbhxQtK2vFcRM0IvWzj5GMC9t JuH8oAo6EgqwMKQJyrgMn/YKrh+4rI1uAg3UwI/g7tMjys3ncac/N1m3y4R9Lhxl -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling ClockFix from the source code.
You can redistribute ClockFix 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.
ClockFix 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.
:
If you find ClockFix useful, please consider helping the Gryphel Project, of which it is a part.
Download
cnvtdc42-1.0.0.zip (64K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
CnvtDC42 is an application to use in Mini vMac (version 3.0.0 or later) to convert disk image files created by Disk Copy 4.2 into the simpler format preferred by Mini vMac (discarding tags, checksums, and header, leaving just the raw image data).
This is useful because, as of version 3.2.2, Mini vMac by default only allows read access to Disk Copy 4.2 images. CnvtDC42 can be used to convert a Disk Copy 4.2 image into a format that Mini vMac can both read and write. (Previous versions of Mini vMac allowed write access, but didn't support the tags and checksums, resulting in an invalid image. Full read/write support, with tags and checksums, is now a compile time option.)
A new image file is created, and the old one is not changed. The old and new images are on the host computer, not the emulated one. So CnvtDC42 combines characteristics of both ImportFl and ExportFl.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- d5e40d113d2222ed25448cdd690987a3 cnvtdc42-1.0.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/L3qp9KbSqUsBvWGcdyaBzRdXIOhQidnAluhEjkR31Q8WwtP Em4O0G4MLYzy1g2e3DpQzOp/wjPG0Sazzn+jsfNbOqIWSp1AL0zwLGHkLpL2/wFl imI7GRL6FEKXNEOFUlgSeIzdme//V8j05dELRWlbvgSRwAXoDDhIFRijN6FOO8MN -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling CnvtDC42 from the source code.
You can redistribute CnvtDC42 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.
CnvtDC42 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.
:
If you find CnvtDC42 useful, please consider helping the Gryphel Project, of which it is a part.
Download
copyroms-1.1.0.zip (info) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
copyroms-1.1.0-sit.zip (info) The same contents, repackaged as zipped Stuffit archive.(There is also an Alpha version in development, see below.)
CopyRoms is a very simple program to write out a copy of the ROM from a 680x0 Macintosh to an image file. It should work on a Macintosh 128K through to a Macintosh IIcx. It should also work on many other 680x0 Macintosh models, but most haven't been tested. CopyRoms should be able run without crashing on any Macintosh, even if it doesn't succeed in saving a ROM image.
To use, just launch the CopyRoms application. It should write out a file (to the folder containing the application) and then immediately quit. On a Macintosh Plus, or Macintosh 512Ke, it should write out a 128K file called "vMac.ROM". For the name and size of the file written out on some other machines see this list of Macintosh 680x0 models. CopyRoms only works on computers with a ROM whose checksum is included in this list.
If CopyRoms doesn't recognize the ROM, it will write out a 4 byte file called 'Unknown.ROM', containing just the checksum from the start of the ROM. Please send me this 4 byte file, along with a description of your computer, so that I can support it in a future version of CopyRoms. (But only if you are using a 680x0 Macintosh, not PowerPC or Intel.) (And don't send me actual ROM image files.)
CopyRoms has no user interface, and so can be used even on a machine without a working keyboard, mouse, and/or screen. This can be done by preparing a floppy disk with CopyRoms set to be the startup application (in System 6 or earlier, not System 7), and replacing the finder with the "AutoQuit" application. Make sure there is enough free disk space for the ROM image file.
The main difficulty in using CopyRoms is transferring the program to the old Macintosh, and transferring the acquired ROM image to another machine. Modern Macintoshes can't use the 800K floppy disks used by the Mac Plus. The easiest solution is to use a slightly less old Macintosh that can use 800k disks, and that has ethernet or other communication options to talk to more recent machines. Some other possibilities are an AppleTalk/Ethernet converter, an external SCSI drive (though modern Macs can't use external SCSI drives without 3rd party hardware), a null modem cable, or connecting to the internet with a modem. The Macintosh 128K and 512K are even more difficult, since they only understand 400k MFS floppies, and don't have a SCSI port. It is easiest if you also have a Mac Plus.
The ROM image files that CopyRoms saves are copyright Apple Computer, and may not be redistributed.
See the Compiling page for instructions on compiling CopyRoms from the source code.
The binary of the Alpha version is so far identical to the stable version above, but the source code is different, being ported to ReAsm.
Download Alpha
copyroms-191201.zip (info) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
You can redistribute CopyRoms 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.
CopyRoms 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.
News:
April 4, 2010 version 0.3.0 adds support for PowerBook 190 (this change must have gotten lost). Also saves 2 megabytes, not 1, for PowerBook 520 and PowerBook 540, thanks to a bug report from "Andrew H.". For a Macintosh SE FDHD, saves file named "SEFDHD.ROM", not "SEHDFD.ROM". Supports additional ROM versions 0x4957EB49 for Macintosh IIvx/IIvi and 0x96CA3846 for Macintosh Portable/PowerBook 100.
April 12, 2005 version 0.2.0 adds support for more Macintosh models.
:
If you find CopyRoms useful, please consider helping the Gryphel Project, of which it is a part.
Download
dafkey-1.0.0b.zip (info) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
(There is also an Alpha version in development, see below.)
DAFKEY is a set of simple FKEYs to open items in the Apple menu.
It includes 5 FKEY resources. If they are installed in a Macintosh system, then Command-Shift-5 will open the first Desk Accessory item from the Apple menu (not including the initial "About" item or other items provided by the application), Command-Shift-6 will open the second item, and so on up to Command-Shift-9 which opens the fifth item. (Command-Shift-1 through Command-Shift-4 are already used by Apple.)
You can rename the Desk Accessories you wish to use with DAFKEY, so that they start with '5-', '6-', and so on. This puts them in order in front of all the Desk Accessories whose names start with letters, and provides a reminder of how to open them with DAFKEY.
ClipOut and ClipIn are provided already named this way, as '5-ClipOut' and '6-ClipIn'. I normally use Command-Shift-5 for ClipOut, and Command-Shift-6 for ClipIn, and so have those as items one and two in the Apple menu.
DAFKEY works in System 6 and earlier, and also works fine in System 7, where it can be used to open things in the "Apple Menu Items" folder besides Desk Accessories.
DAFKEY may be installed using ResEdit (listed on my "Programming Tools" page). Open the DAFKEY file with ResEdit, then select the FKEYs and choose "Copy". Next, while still in ResEdit, open the "System" file in the "System Folder" of a bootable disk. Then choose "Paste". (If the "System" file is on the disk you are currently booted from, ResEdit will give a warning, but the above still seems to work.)
You don't need to install all five of the FKEYs, just install as many as you want to use.
You can also renumber them if you want. For example, if I want to use DAOpener, which launches the first item, and still have ClipOut and ClipIn available with the usual keys, but as items two and three, then I could discard FKEY-5, renumber FKEY 6 to FKEY 5, and FKEY 7 to FKEY 6.
DAFKEY works by creating a private copy of the Apple menu with AddResMenu, then getting the name of the appropriate menu item, and using that to call OpenDeskAcc (which normally is called by the application in response to the user choosing an item in the Apple menu).
Warning: DAFKEY is not compatible with all applications. Some applications may get confused when Desk Accessories open in this unexpected fashion, and not properly copy their private clipboard to or from the global clipboard, for example.
Warning: you should only invoke DAFKEY in situations where Desk Accessories can be chosen from the Apple menu, otherwise unpleasant things might happen.
The binary of the Alpha version is so far identical to the stable version above, but the source code is different, being ported to ReAsm.
Download Alpha
dafkey-191201.zip (info) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
Here is the md5 checksum for the Alpha download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 49a0ba9e3048d20e2652b97c4a9b43a1 dafkey-191201.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/MZPM3u/F1kgVYy3qI6rMzDAbDV9hUNjgwPFeCbZFx6nmKTV ZzQiXyIXdmBkHbudLYEx8UaVkkiPvgdqgPXkHoVi9BxpwuihIcCPDuuzI5q+lPSP ANf1RSxxHIGryYGJypCqgw6TiJ8JV5qNh5ydyrdKQDJtZC5dLgDmklGiuEO5kz0j -------- END GRY SIGNATURE --------
You can redistribute DAFKEY 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.
DAFKEY 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.
:
If you find DAFKEY useful, please consider helping the Gryphel Project, of which it is a part.
Download
daopener-1.1.0.zip (40K) a zipped hfs disk image. The disk image can be mounted with Mini vMac. Includes source code.
DAOpener is intended to be used with AutoQuit. AutoQuit is used to assist in 'wrapping' an application so that you can use it much as you would a native application for your machine. DAOpener allows you to wrap a Desk Accessory within an application, which can then be wrapped using AutoQuit, so that you can use it much as you would a native application.
DAOpener is a simple application for Macintosh system version 6.0.8 and earlier, that just opens the first Desk Accessory from the Apple Menu. You can then use that Desk Accessory as normal. When all windows are closed, the program quits.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 8334f153c6392a390078db2ea703b19b daopener-1.1.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/ODrPE2EKdyfztQaqqO+fDEu6SG2tLjvTUN2zJ87dMPu/nbv EaxdWv9/WUB6cUwUiJb+gevFT6b5/EPSSKIMVjFWgVqkflWRF1nqRQkcSHioDHhW gOIh2yflxijGa1LtaAENIBc0mXcl/qcSSimbmWnqw8sIH2D2FcIZMfC3WU0zxjCm -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling DAOpener from the source code.
You can redistribute DAOpener 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.
DAOpener 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.
:
If you find DAOpener useful, please consider helping the Gryphel Project, of which it is a part.
Download
dc42chk-1.0.0.zip (66K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
DC42Chk is an application to use in Mini vMac (version 3.0.0 or later) to check that disk image files in the format used by Disk Copy 4.2 have correct checksums.
Mini vMac versions before 3.2.2 by default will mount and write to Disk Copy 4.2 images without updating the checksums, resulting in an invalid image. Mini vMac 3.2.2 and later by default will mount such images read only, but can be compiled to be able to write to such images, in which case the checksums will be updated when the image is unmounted. It does not verify the checksums before mounting. Hence this utility.
DC42Chk works similar to ImportFl. The image to check is on the host computer, not the emulated one. Upon scanning a valid image, DC42Chk will display the message : "Good - I think that is a valid Disk Copy 4.2 disk image." Otherwise some other message will be displayed indicating the problem.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- f8d7617bb52894c834768d5f53e3fb62 dc42chk-1.0.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/A+bwP10hKMZYHEimltz1knBtJ9h56jezDcmeqETrzYmgec2 0XWeeWVA0uV/s2E+BUbfWVfNwHVqaC0NOQo5ttvqZQg6qRq8PNi/WUmgm8xFiF7H 7QP14nVdgJYGyDHoxhTBygjVV77iwYOsYMQzsZBy9KyFpN9bwYf0oCdhaUhtlRH4 -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling DC42Chk from the source code.
You can redistribute DC42Chk 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.
DC42Chk 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.
:
If you find DC42Chk useful, please consider helping the Gryphel Project, of which it is a part.
Download
dolaunch-1.2.0.zip (info) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
(There is also an Alpha version in development, see below.)
DoLaunch launches an application named “app” in the same folder in System 6 or earlier.
DoLaunch is intended to be used with AutoQuit. AutoQuit is used to assist in “wrapping” an application so that you can use it much as you would a native application for your machine. As described on the AutoQuit page, wrapping an application involves setting it to be the Start Up application on a System 6 or earlier boot disk. However, some applications can not be set to be the Start Up application, presumably due to the bug of not initializing everything that needs to be. (For example, Alice, the first Macintosh game. Or at least the version I’ve seen, which might be an early version as it lacks features described in the article.)
To use DoLaunch, rename the problem application to “app”, copy the DoLaunch application to the same folder, and set DoLaunch to be the Start Up application. Then you can use the rest of the instructions on the AutoQuit page.
See the Compiling page for instructions on compiling DoLaunch from the source code.
The binary of the Alpha version is so far identical to the stable version above, but the source code is different, being ported to ReAsm.
Download Alpha
dolaunch191208.zip (info) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
Here is the md5 checksum for the Alpha download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 1cd0757f75de96e1ca7ff6c560db534d dolaunch191208.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/IOIc2R/hlrlbHq2zycyQtG87ueUbM6kQosj3szjVzqiegKV 1sKjWupTmwa6cDdhhT5JM69gQw84R1hLTJfcR2EVYbOOPyw8z15yCrb+e2XoOEoS 3wcTA3+KdUd6wRynUE+z3IJJerANgxWFfJ3L371FhJJUQ9GMZGxz+OyvdwRODadM -------- END GRY SIGNATURE --------
You can redistribute DoLaunch 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.
DoLaunch 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.
:
If you find DoLaunch useful, please consider helping the Gryphel Project, of which it is a part.
Download
egretrom-1.0.1.zip (60K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
egretrom-1.0.1.sit.zip (48K) The same contents, repackaged as zipped Stuffit archive.
EgretRom is a utility to write out to an image file a copy of the ROM of the Egret microcontroller used to manage power in some Macintosh models. It was made at the request of Arbee (AKA R. Belmont), to assist the MESS emulator project.
It was made from Arbee's specification, and he reports that the "second version works fine and has been used to dump Egret/Cuda/Caboose ROMs on everything from '030s to G3s". (I don't have the hardware to test it myself.)
The MESS "Mac Technical Notes" document some Macintosh models that contain Egret and Cuda.
To use, just launch the EgretRom application. It should write out a file named "Egret.ROM" (to the folder containing the application) and then immediately quit.
On a machine without an Egret microcontroller, EgretRom may or may not detect that, and give an error message. (If it doesn't, a crash is likely.)
EgretRom can be used even on a machine without a working keyboard, mouse, and/or screen. This can be done by preparing a floppy disk with EgretRom set to be the startup application (in System 6 or earlier, not System 7), and replacing the finder with the "AutoQuit" application. Make sure there is enough free disk space for the ROM image file.
The ROM image files that EgretRom saves are copyright Apple Computer, and may not be redistributed.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 598aaa555e2be473947fb4afe4526aea egretrom-1.0.1.zip 6def3b825f960ad2da4d465daf1d8f80 egretrom-1.0.1.sit.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/PbWD+HnJGO1gB2h4R4zKWwjnrmzl49GwYoX4rEeRR4LsadK ddzHDGzGDwzREeHalgjQdtkdwxR4qdRA/0Jzfh0Mh9AT/JOdaj3jcRPvIHdCje9X 5YsZAaGc0eYe0umJl+5++nTvA7Gg4FMA7d24ya+8E8HAjhU1BnmxOZbDqPchCZze -------- END GRY SIGNATURE --------
new alpha
egretrom-1.0.3.zip (60K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
egretrom-1.0.3.sit.zip (48K) The same contents, repackaged as zipped Stuffit archive.--------- GRY SIGNED TEXT --------- f92391d72c073fc7f6f45dce1addbe11 egretrom-1.0.3.zip a80766ed0038e20bcb39d6a016721d61 egretrom-1.0.3.sit.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/FOSqELyZdXcDx5ZJUB6BquRv5/lUklbo5GrzouOsvf/37P/ 0MepqiWaS67JBWhHUrEzdOg98d42iZGbxRl1GSnCIUaJUzVCvbBH02yU5rxGsWAj tIMhMhNQwTBfC4QMsztO4o/gVUvW0ZVT+zs7UjncF9md9C5kYqwp1VeJltlGIlFm -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling EgretRom from the source code.
You can redistribute EgretRom 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.
EgretRom 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.
News:
January 7, 2012 version 1.0.3 - Arbee reports that the Egret ROM is even larger on some more machines.
December 19, 2011 version 1.0.2 - Arbee reports that the Egret ROM is larger on some machines.
October 24, 2010 version 1.0.1 - Arbee reports that 6805 address argument to _EgretDispatch should be 16 bits, not 32 bits.
October 23, 2010 version 1.0.0 - initial release.
:
If you find EgretRom useful, please consider helping the Gryphel Project, of which it is a part.
Download
ejctquit-1.0.1.zip (45K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
If you place the "EjctQuit" application in the "Shutdown Items" folder within the 7.5.x "System Folder", then Mini vMac will automatically quit when you shut down the emulated machine.
AutQuit7 can accomplish pretty much the same thing. However, if you don’t require the extra features of AutQuit7, and do require System 7.5, EjctQuit may still be useful. Since EjctQuit doesn’t run until shut down, it doesn’t have the (small) memory usage of AutQuit7, or the (slight) chance of incompatibilities.
All the application does is to set a flag within Mini vMac, which causes Mini vMac to quit when the last disk is ejected. So it will also work to place it in the "Startup Items" folder of earlier System 7 versions (which don’t have a "Shutdown Items") folder, but the disadvantage is that Mini vMac will quit if you eject the startup disk, and no other disks are mounted.
EjctQuit is a variation of AutoQuit, with the code for shutting down the machine taken out, since the "Shut Down" command already takes care of that. It is also an ordinary application, rather than a file with the same type as the Finder.
If the shift key is held down, EjctQuit will have no effect. (Mini vMac won’t quit, so you can reset the emulated machine and mount another boot disk image.)
EjctQuit will check to make sure that it is running inside of Mini vMac, and do nothing if it isn’t. This means it is safe to use a disk image with EjctQuit installed in other emulators.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 87c4e268fe3fd23954e6d64ae39b6b9b ejctquit-1.0.1.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/KClaSypl0shmZMa6pMVL+oqUvXCKU8GuVDxFMMA+lPI3vLG vbTGZFpoiEWF2Qowqi9ExIbb6/7QIjyn6ahn9d2IjXPXR9+HUSL8LDG+ja+W7H5E tLfOsQee7afh2nkuvCzUrDNQjrjenqZUEB8LwiczqKLOLGOSYE29RUDcUyOb9U8r -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling EjctQuit from the source code.
You can redistribute EjctQuit 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.
EjctQuit 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.
News:
October 6, 2012
As reported by "David", it didn't work in the Basilisk II emulator. Copied fix from the Mini vMac build system for the code intended to detect when running in Mini vMac.
:
If you find EjctQuit useful, please consider helping the Gryphel Project, of which it is a part.
Download
exportfl-1.3.1.zip (70K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
ExportFl is an application to use in Mini vMac (version 3.0.0 or later) to export files from the emulated computer to the real computer.
It only exports the data fork of a file, not Macintosh specific information such as the resource fork, the file type, the file creator, and comments.
ExportFl opens a small status window to show what it is doing. Initially it displays "Ready to export file". While exporting a file it displays "Running, type command-period to abort", superimposed with a progress bar that shows percent completed. When done it displays "Done, ready for another file".
important : You should avoid switching away from Mini vMac to another application until ExportFl says it is "Done". If you switch away while ExportFl is still "Running", the exported file will not be valid yet. By default, Mini vMac pauses emulation when it is not the active application. (Even in this case, once you switch back to Mini vMac then ExportFl should complete successfully.)
If you would like to export plain text, ClipOut may be more convenient.
If you would like to import files, see ImportFl, the opposite of Exportfl.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- b5c1850382462d474c4075a206fdc572 exportfl-1.3.1.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/IwXGzbemDNukCzniGptFVUjhJuvKaqfvhldsP9lDTElZ46d /8H8PvAXRjepRPQlwceRCNqEFBnFpPgJFZfCJN50DyXvIUE0u1Z3M+ZD6Qag6GNw H1hOKau0loX+rmk2AXamc18asNltY+RsX+onfGEJhSygdsIxMG7ZcucLuNchOg9K -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling ExportFl from the source code.
You can redistribute ExportFl 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.
ExportFl 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.
News:
August 31, 2016 version 1.3.1 updates the URL in the about dialog. Also, source shared with other Mini vMac extras has been updated, which fixes one bug: ExportFl should now not crash in other emulators such as SheepShaver (though it still won't do anything useful).
:
If you find ExportFl useful, please consider helping the Gryphel Project, of which it is a part.
Download
exportps-1.0.0.zip (66K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
ExportPS an application to use in Mini vMac (version 3.0.0 or later) to assist in the process of printing. There is no direct support for printing in Mini vMac, but you can use the ability built into System 6.0.8 and later to print to a Postscript file. You can then export this file to the host computer, and print it from there. See the "How can I print from Mini vMac?" question in the FAQ.
ExportPS is specialized variation of ExportFl that saves a few steps. The differences from ExportFl are that:
* It does not ask which file to export, but instead looks for a file named "PostScript" in the folder containing the ExportPS application. ("PostScript" is the default name saved by the printing dialog.)
* The default name in the save dialog on the host computer is "PostScript.ps". (The ".ps" extension allows operating systems such as OS X to recognize that it is a PostScript file.)
* When finished exporting, it deletes the "PostScript" file. (So that the next time you try to print you won't need to confirm replacing the previous "PostScript" file.)
* It then automatically quits. (It can't export anything else, so it might as well quit, so that you can get back to the application you printed from quicker.)
important : You should avoid switching away from Mini vMac to another application until ExportPS quits. If you switch away while ExportPS is still running, the exported file will not be valid yet. By default, Mini vMac pauses emulation when it is not the active application. (Even in this case, once you switch back to Mini vMac then ExportPS should complete successfully.)
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- e0d852075cba0de61a93c4121664fd50 exportps-1.0.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/Ag+C+RzTmh5utxpnQpIPCytVGTGm5S78y65hXIxCvNhwNG3 73C8i7e4nvRw8rtgWajuVaizqIeLukcV6fw/jR8mF04lHkdDtzcvrUYYmyeMgKxu AE2gGcYMb6WqH3hAwsuGIkuLCrp9wen7ymt9quWs2sj+F80nZ5w6C2uE5TLWSa2I -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling ExportPS from the source code.
You can redistribute ExportPS 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.
ExportPS 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.
:
If you find ExportPS useful, please consider helping the Gryphel Project, of which it is a part.
Download
fdisasm200105.zip (info) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
fdplusv3-191208.zip (info) a disk image containing all the formatting information needed to disassemble a Macintosh Plus ROM image (version 3, final - checksum 4D1F8172).
ROM Formatting Information - more images to disassemble other Macintosh ROMs.
FDisasm is a formatting disassembler for Motorola 680x0 code. It makes it possible to distribute the means to create an annotated disassembly of copyrighted code (such as Macintosh ROM images), without distributing that code or files derived from it.
To use FDisasm to disassemble the Macintosh Plus ROM, launch Mini vMac and boot from a disk image containing a system folder. Mount the fdplusv3-191208 disk image, and import a copy of the Macintosh Plus ROM onto it. (Such as by using ImportFl.) Mount the fdisasm200105 disk image, copy the FDisasm application to the fdplus disk image, and then eject the fdisasm image. Rename the ROM image to “bin”, and then launch the FDisasm application. The program displays a progress indicator, and quits when it is finished. (It could take five minutes at 1x speed, so set speed to “all out”. At “all out” speed it takes under 10 seconds to finish on my Mac Mini.) When the program finishes, the output is in a file named “listing”.
This listing file is over 2 megabytes. The program MPW Shell 3.2.3 works in Mini vMac and can work with such large text files. But probably almost nobody else has an old copy of MPW. (The final version of MPW still available for free download requires a Mac II or later.) Instead you can export the listing file to the host computer (such as by using ExportFl), and find some program there that can view it. (For OS X, TextWrangler would work, for example.)
Warning : Not enough people are paying enough attention to FDisasm (especially me) for it to be relied upon. If you notice something odd in the output, double check it, and if it is wrong, please report it to me.
This listing file is derived (in terms of copyright law) from the Macintosh Plus ROM, and so may not be redistributed.
To disassemble the Macintosh 128/512 ROM, follow the above instructions, except use the fdmac128-0.3.0 disk image, and of course use a ROM image from a Macintosh 128 or 512. And similarly for the Macintosh SE, Macintosh II, and PowerBook 100 ROMs.
Here are some details about the formatting information files used by FDisasm:
The only file required by FDisasm is “bin”. But if this is all it finds, it will just create a hexadecimal dump of the file. To disassemble code, it needs to know where the code is. It looks for a file named “bin_map” for this information. It also looks for a file named “bin_names” for names of locations within “bin”, and for a file named “abs_names” for names of absolute memory locations, and for a file named “trap_names” for names of A-line instructions. A file named “format” can give additional formatting information, and comments to include in the listing.
The FindCode tool can help to create the files “bin_map” and “bin_names”.
The FindRes tool will create an initial “format” file for Macintosh resources, and also “bin_map” and a set of entry points to feed to FindCode.
Besides ROM images, FDisasm can also disassemble Macintosh 680x0 applications. But the code and other resources are located in the “resource fork” of such appplications, while FDisasm only operates on the “data fork” of the file “bin”. The GetRsFrk tool gets the resource fork of a file you select, and saves it into the data fork of “bin”. An alternative is asPack, which also saves the data fork and the meta data into “bin”, in AppleSingle format.
FDisasm has some compile time options. The default values are defined in “source/CNFGDLFT.i”, and these defaults can be changed in “source/CONFIGUR.i”. For example, the following variation outputs address and hex fields, resulting in output that is not suitable for passing to an assembler, but is more useful when working on the format file.
Download
fdis0003-200105.zip (info) variation of FDisasm.
The software that has become FDisasm, FindCode, and FindRes was my first serious programming project, started in 1985 in Basic, and later converted to Pascal, and now converted to C when I got back to it recently. I wonder if 23 years to first public release is any kind of record.
See the Compiling page for instructions on compiling FDisasm from the source code.
You can redistribute FDisasm 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.
FDisasm 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.
The following disk images contain all the formatting information needed to disassemble specific Macintosh ROM images with FDisasm:
Macintosh Plus
Name for Mini vMac: vMac.ROM
Size: 128kfdplusv1-190630.zip (info)
version 1
Checksum: 4D1EEEE1
md5 Checksum: 4d8d1e81fa606f57c7ed7188b8b5f410fdplusv2-190630.zip (info)
version 2
Checksum: 4D1EEAE1
md5 Checksum: 16b516e13918a439cf9031ec24353610fdplusv3-191208.zip (info)
version 3
Checksum: 4D1F8172
md5 Checksum: 8a41e0754ffd1bb00d8183875c55164c
Macintosh 128/512
Name for Mini vMac: Mac128K.ROM
Size: 64kfdmac128v1-190630.zip (info)
version 1
Checksum: 28BA61CE
md5 Checksum: 1d7f52d2d490524954f6afce083d9593fdmac128v2-190630.zip (info)
version 2
Checksum: 28BA4E50
md5 Checksum: db7e6d3205a2b48023fba5aa867ac6d6
Macintosh SE
Name for Mini vMac: MacSE.ROM
Size: 256kfdmacse-190630.zip (info)
Checksum: B2E362A8
md5 Checksum: 9fb38bdcc0d53d9d380897ee53dc1322
Macintosh SE FDHD
Name for Mini vMac: SEFDHD.ROM
Size: 256kfdsefdhd-190630.zip (info)
Checksum: B306E171
md5 Checksum: 886444d7abc1185112391b8656c7e448
Macintosh II
Name for Mini vMac: MacII.ROM
Size: 256kfdmaciiv1-190901.zip (info)
version 1
Checksum: 97851DB6
md5 Checksum: 74f4095f7d245a9fb099a6f4a9943572fdmaciiv2-190901.zip (info)
version 2
Checksum: 9779D2C4
md5 Checksum: 66223be1497460f1e60885eeb35e03cc
Macintosh IIx
Name for Mini vMac: MacIIx.ROM
Size: 256kfdmaciix-190901.zip (info)
Checksum: 97221136
md5 Checksum: 2a8a4c7f2a38e0ab0771f59a9a0f1ee4
PowerBook 100
Name for Mini vMac: PB100.ROM
Size: 256kfdpb100-190714.zip (info)
Checksum: 96645F9C
md5 Checksum: dd390f7c86a730caac46fd522f8b2665
Macintosh IIci
Name for Mini vMac: MacIIci.ROM
Size: 512kfdmaciici-190915.zip (info)
Checksum: 368CADFE
md5 Checksum: aaca403bed2b3870b2327b42d298b5a3
“Twiggy” Macintosh prototype
Name for Mini vMac: Twiggy.ROM
Size: 64kfdtwiggy-190630.zip (info)
Checksum: 2884371D
md5 Checksum: 4f28b54a2c6d699b596a1e6072a57f58
:
If you find this information useful, please consider helping the Gryphel Project, of which it is a part.
Download
fdisasm-1.2.8.zip (98K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
fdplusv3-0.4.3.zip (25K) a disk image containing all the formatting information needed to disassemble a Macintosh Plus ROM image (version 3, final - checksum 4D1F8172).
ROM Formatting Information - more images to disassemble other Macintosh ROMs.
FDisasm is a formatting disassembler for Motorola 680x0 code. It makes it possible to distribute the means to create an annotated disassembly of copyrighted code (such as Macintosh ROM images), without distributing that code or files derived from it.
To use FDisasm to disassemble the Macintosh Plus ROM, launch Mini vMac and boot from a disk image containing a system folder. Mount the fdplusv3-0.4.3 disk image, and import a copy of the Macintosh Plus ROM onto it. (Such as by using ImportFl.) Mount the fdisasm-1.2.8 disk image, copy the FDisasm application to the fdplus disk image, and then eject the fdisasm image. Rename the ROM image to “bin”, and then launch the FDisasm application. The program displays a progress indicator, and quits when it is finished. (It could take five minutes at 1x speed, so set speed to “all out”. At “all out” speed it takes under 10 seconds to finish on my Mac Mini.) When the program finishes, the output is in a file named “listing”.
This listing file is over 2 megabytes. The program MPW Shell 3.2.3 works in Mini vMac and can work with such large text files. But probably almost nobody else has an old copy of MPW. (The final version of MPW still available for free download requires a Mac II or later.) Instead you can export the listing file to the host computer (such as by using ExportFl), and find some program there that can view it. (For OS X, TextWrangler would work, for example.)
Warning : Not enough people are paying enough attention to FDisasm (especially me) for it to be relied upon. If you notice something odd in the output, double check it, and if it is wrong, please report it to me.
This listing file is derived (in terms of copyright law) from the Macintosh Plus ROM, and so may not be redistributed.
To disassemble the Macintosh 128/512 ROM, follow the above instructions, except use the fdmac128-0.3.0 disk image, and of course use a ROM image from a Macintosh 128 or 512. And similarly for the Macintosh SE, Macintosh II, and PowerBook 100 ROMs.
Here are some details about the formatting information files used by FDisasm:
The only file required by FDisasm is “bin”. But if this is all it finds, it will just create a hexadecimal dump of the file. To disassemble code, it needs to know where the code is. It looks for a file named “bin_map” for this information. It also looks for a file named “bin_names” for names of locations within “bin”, and for a file named “abs_names” for names of absolute memory locations, and for a file named “trap_names” for names of A-line instructions. A file named “format” can give additional formatting information, and comments to include in the listing.
The FindCode tool can help to create the files “bin_map” and “bin_names”.
The FindRes tool will create an initial “format” file for Macintosh resources, and also “bin_map” and a set of entry points to feed to FindCode.
Besides ROM images, FDisasm can also disassemble Macintosh 680x0 applications. But the code and other resources are located in the “resource fork” of such appplications, while FDisasm only operates on the “data fork” of the file “bin”. The GetRsFrk tool gets the resource fork of a file you select, and saves it into the data fork of “bin”. An alternative is asPack, which also saves the data fork and the meta data into “bin”, in AppleSingle format.
FDisasm has some compile time options. The default values are defined in “source/CNFGDLFT.i”, and these defaults can be changed in “source/CONFIGUR.i”. For example, the following variation does not output the address and hex fields, resulting in output that is suitable for passing to an assembler:
Download
fdis0002-1.2.8.zip (25K) variation of FDisasm.
The software that has become FDisasm, FindCode, and FindRes was my first serious programming project, started in 1985 in Basic, and later converted to Pascal, and now converted to C when I got back to it recently. I wonder if 23 years to first public release is any kind of record.
Here are the md5 checksums for the downloads, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 68588698451c803723c539422ff9ae5e fdisasm-1.2.8.zip bc264523ff71300fa386adf0ff0b3038 fdis0002-1.2.8.zip 90a7acb8a693b6fdfefbc65902c2fc7a fdplusv2-0.4.3.zip 1eca6ffb1343b52f86776d144c850fb1 fdplusv3-0.4.3.zip 645909aae4ffbe62f30ab29bd8f8a59a fdmac128v1-0.4.4.zip 508d5d06c0a2bd4c6626cb48a69abe1d fdmac128v2-0.4.4.zip 47aec46ed23a55952e09e93fb3ced1b6 fdmacse-0.5.1.zip 9bb504a156f11531fc763dac3df0f7b7 fdmacii-0.2.2.zip 5497d5df84b048c67a75e68f97cbe63d fdpb100-0.2.1.zip 4e9d5774471acae4eb08b575a297552c fdtwiggy-0.1.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/DrrEloS+5SFpDl6cgKjSxE0F1WdkN2+pizBTEiuBLgcFR8m tJf5SWEhy57hEAF+aPvJCkDoLMfA7OIH3gDI98hCSYjQMq0t90fkGkD1MbEiP88V HpzJ3bsqDyECExvNTXO8tXyl4mNVnwMg6w3vi4hBl/8mgq2HOcLunvRuhwkyjJal -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling FDisasm from the source code.
You can redistribute FDisasm 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.
FDisasm 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.
News:
April 7, 2019 version 1.2.8 will now output “.W” for word sized operations, rather than relying on the default being word. I feel this is better style. ReAsm currently requires this. There are also some new compile time options for improving compatibility with ReAsm, such as forcing labels to be on a separate line, and using tab to indent instructions. These options are used in the fdis0002 variation.
February 17, 2019 version 1.2.7 fixes a bug reported by Ryan that affected disassembling floating point conditional long branches. It also partially reverts for now a change made in 1.2.6. If an instruction (or data) that is about to be output is longer than the space left to be disassembled, it will now not abort outputting the instruction, and just give a warning. This version also starts to provide ways to avoid the situations that lead to this problem. Disassembly of PC relative addressing modes can now use the AC and SC options for adding or subtracting a constant. There is a new ‘,’ option to indicate which argument options like AC and SC apply to. It also now checks that such one time options are actually used by the current instruction, and prints a warning if not.
January 6, 2019 version 1.2.6 adds a “BN” option to modify “B”, “W” or “L” options to output binary instead of hex. Also, if an instruction (or data) that is about to be output is longer than the space left to be disassembled, then the output is aborted, and the remaining space is output as data of unknown format. Also, the AM option (which modifies the D option) now can take an address as well as a name, and checks the address is correct. Similarly the J option can now take a name, making the JM option obsolete. The “A”, “H”, and “Z” options have been changed to compile time options, which can be specified in the new file “CONFIGUR.i” with the default values specified in “CNFGDLFT.i”.
December 30, 2018 version 1.2.5 properly limits the size of the hex field. Previously the hex field would be incorrect for very long lines, such as can be generated with the new “C” option. (For the future, it would be good to limit the length of lines generated by this option.)
December 23, 2018 version 1.2.4 adds an “AL” option in the format file for aligment relative to a base address.
December 16, 2018 version 1.2.3 adds a “C” option in the format file for text fields. Also, for the “D” option (offset fields), there are three new modifiers: “AC” for an added constant, “SC” for a subtracted constant, and “DC” for a constant devided by.
December 9, 2018 version 1.2.2 adds the ability to specify labels in the format file (in addition to the “bin_names” file), so that a single address can have multiple labels. Also in the format file, you can now specify a one time name to use in an address field argument (overriding the “bin_names” file). Similarly, in the format file, can you specify a name to use for the current base address used by the D option. The FindRes tool has been updated to begin to take advantage.
July 13, 2016 version 1.2.1 adds the ability to format jump table offsets as the difference between two symbolic labels (instead of only listing the numeric value). Mac Plus and Mac 128K formatting information has been updated to take advantage.
July 1, 2016 version 1.2.0 adds initial support for FPU instructions, and works well enough to correctly disassemble the Floating-Point Arithmetic Package (PACK 4) of the Macintosh II ROM (verified with the MPW Assembler). The disk image with the Mac II formatting information has also been updated.
June 24, 2016 version 1.1.9 now works well enough that feeding the output to the MPW Assembler gets back the original binary for the Macintosh II ROM. Except that the Floating-Point Arithmetic Package (PACK 4) is not disassembled because FPU instructions are not yet handled. The disk image with the Mac II formatting information has also been updated.
The specific changes include: The 68020 forms of Mul and Div instructions are now supported. Also the ExtB.L instruction. A bug in MoveC is fixed. A bug in Bitfield register width argument is fixed. And also the code is restructured a bit to better match the code in Mini vMac CPU emulation, for easier comparison.
June 15, 2016 version 1.1.8 now works well enough that feeding the output to the MPW Assembler gets back the original binary for the Macintosh PowerBook 100 ROM. Even though the PowerBook 100 has a 68000 CPU, this ROM has some 68020 code. FDisasm can now better handle the full extension word format of addressing mode 6, the absolute long addressing mode, and the Bitfield instructions. The disk image with the PowerBook 100 formatting information has also been updated.
January 1, 2015 version 1.1.7 now works well enough that feeding the output to the MPW Assembler gets back the original binary for the Macintosh Plus ROM, the Macintosh 128/512 ROM, and the Macintosh SE ROM.
This involved figuring out what syntax the MPW Assembler accepts for PC relative address mode, when not using a symbolic label. (It is expecting an address, not the offset.) The MoveC instruction is now better supported. And there is a fix for the MoveP instruction.
The disk images with formatting information have been updated for Macintosh Plus ROM, the Macintosh 128/512 ROM, and the Macintosh SE ROM. The '.' character in labels is not accepted by the MPW Assembler, and so replaced with '_'. Also, in a few cases, two addresses were labeled with the same name. But only one of the two are used by the ROM, and so the other label was removed.
December 30, 2014 version 1.1.6 fixes incorrect size field for BTST instruction as reported by Steve Chamberlin. There are also a number of other changes to better allow the MPW Assembler to assemble the output of FDisasm and get back the original binary.
December 28, 2014 version 1.1.5 changes format of negative hex numbers from “$-A” to “-$A”, so as to work with the Easy 68K assembler, as requested by Steve Chamberlin.
December 26, 2014 version 1.1.4 fixes a number of bugs reported by Steve Chamberlin.
May 17, 2014 fdmac128-0.4.1 includes information reported by Tom Frikker about initials at the end of the Mac 128k ROM. This lead to finding a report by ‘Dog Cow’ about more initials in the Twiggy Mac ROM (for an early prototype). So there may only be two initials in the Mac 128k ROM because the rest got overwritten, like happened in later versions of the Macintosh Plus ROM.
September 12, 2012 version 1.1.3 includes code from Rob Braun for the "pmove, pload, and pflush family of instructions for the 68851 and 68030".
September 7, 2012 version 1.1.2 includes a bug fix from Rob Braun. A 32 bit offset for the Bsr or Bra instruction was not decoded correctly.
October 6, 2011 fdplus-0.4.0 merges in changes from Steve Chamberlin, that "added many more comments of my own, and many new meaningful names for previously-unamed routine entry points, especially in areas related to the boot sequence and Sony disk driver".
September 25, 2011 new versions of all the formatting information disk images, removing the FDisasm application. The version of the application on them was out of date.
June 5, 2011 version 1.1.1 fixes a bug reported by "Ben". The size field was not correct for AddQ and SubQ.
:
If you find FDisasm useful, please consider helping the Gryphel Project, of which it is a part.
The following disk images contain all the formatting information needed to disassemble specific Macintosh ROM images with FDisasm:
Macintosh Plus
Name for Mini vMac: vMac.ROM
Size: 128kfdplusv2-0.4.3.zip (72K)
version 2
Checksum: 4D1EEAE1
md5 Checksum: 16b516e13918a439cf9031ec24353610fdplusv3-0.4.3.zip (72K)
version 3
Checksum: 4D1F8172
md5 Checksum: 8a41e0754ffd1bb00d8183875c55164c
Macintosh 128/512
Name for Mini vMac: Mac128K.ROM
Size: 64kfdmac128v1-0.4.4.zip (53K)
version 1
Checksum: 28BA61CE
md5 Checksum: 1d7f52d2d490524954f6afce083d9593fdmac128v2-0.4.4.zip (53K)
version 2
Checksum: 28BA4E50
md5 Checksum: db7e6d3205a2b48023fba5aa867ac6d6
Macintosh SE
Name for Mini vMac: MacSE.ROM
Size: 256kfdmacse-0.5.1.zip (85K)
Checksum: B2E362A8
md5 Checksum: 9fb38bdcc0d53d9d380897ee53dc1322
Macintosh II
Name for Mini vMac: MacII.ROM
Size: 256kfdmacii-0.2.2.zip (102K)
Checksum: 9779D2C4
md5 Checksum: 66223be1497460f1e60885eeb35e03cc
PowerBook 100
Name for Mini vMac: MacII.ROM
Size: 256kfdpb100-0.2.1.zip (101K)
Checksum: 96645F9C
md5 Checksum: dd390f7c86a730caac46fd522f8b2665
“Twiggy” Macintosh prototype
Name for Mini vMac: Twiggy.ROM
Size: 64kfdtwiggy-0.1.0.zip (49K)
Checksum: 2884371D
md5 Checksum: 4f28b54a2c6d699b596a1e6072a57f58
:
If you find this information useful, please consider helping the Gryphel Project, of which it is a part.
major branches:
Download
findcode-1.1.0.zip (84K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
FindCode helps to create "bin_map" and "bin_names" files used by FDisasm.
To use FindCode, place it in the same folder as a file named "bin" that you are trying to disassemble. Launch FindCode and you will see a simple text editing window. Type a location within the "bin" file that you believe contains code, in hexadecimal notation. For example, "2A" (without the quotes), for an offset of 42 (decimal) from the beginning of "bin". Then choose the "Go" command from the "File" menu.
Assuming there is code at offset 42, FindCode will find every instruction that it thinks can definitely be reached from there, and add this to the file "bin_map". (The file is created if it doesn't already exist.) It will also create labels for the targets of branches and other memory accesses within "bin" that it can identify, and add them to the file "bin_names". (This file also is created if it doesn't already exist.) It will not change labels that already exist in "bin_names".
If FindCode thinks that an invalid instruction can definitely be reached from the starting offset you specified, it will give an error message and make no changes to "bin_map" and "bin_names".
When FindCode is done, it will automatically launch FDisasm if it is located in the same folder. You can then enter other locations into FindCode and choose the "Go" command. FindCode will open and close the "bin_map" and "bin_names" files every time the "Go" command is chosen, so you can manually edit these files and still leave FindCode running.
You can specify more than one starting offset, separated by spaces or returns.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- efba08018ae7cdd01e6e68066f3a2cf9 findcode-1.1.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/IdOitw2A0Gu6IdLW0B7pR/2qxh/z3pM7Yi9eUbH7RRk7BPL QlryT1lAmu2mUZ7//uKz7G5YoTEzvE0Sv0T66P8RtAn8AUbWmONO78CXcxeTJRNR tz2s8Q9rUavz8MSK5klD7piqze/9T7tCQ8QvYMk33cwzrHd3h8UKMVYkJsZbz5XV -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling FindCode from the source code.
You can redistribute FindCode 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.
FindCode 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.
:
If you find FindCode useful, please consider helping the Gryphel Project, of which it is a part.
Download
findres-1.2.5.zip (info) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
This is the stable version. There is also Branch 13 in Development.
FindRes creates an initial "format" file used by FDisasm for Macintosh resources, and also "bin_map" file and a set of entry points for some types of resources containing code to feed to FindCode. FindRes can work on a Macintosh resource fork that has been copied into a data file (such as by using GetRsFrk), or on an AppleSingle file (such as created by asPack), or on certain ROM images that contain resources (such as a ROM for the Macintosh Plus and a few later models.)
To use FindRes, place it in the same folder as a file named "bin" that you are trying to disassemble. Launch FindRes and when it is finished files named "format", "entries", and "bin_map" willl be created.
If "bin_map" already exists it will be updated. FindRes will mark in the "bin_map" file areas of "bin" that are definitely not code, and leave the rest untouched. (The "format" and "entries" files will be completely replaced if they already exist.)
The contents of the "entries" file can be passed to the FindCode tool. You need to open it in a text editor and copy it all, and then paste in FindCode. FindCode as yet has no way to read the file directly.
See the Compiling page for instructions on compiling FindRes from the source code.
You can redistribute FindRes 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.
FindRes 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.
Download
findres-191222.zip (info) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
:
If you find FindRes useful, please consider helping the Gryphel Project, of which it is a part.
Download
getpram-1.0.0.zip (82K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
GetPRAM is a tool for getting Parameter RAM settings in a text format, a list of options for the Mini vMac build system or the Variations Service (Advanced).
To use, first use the Macintosh Control Panels to select the desired settings, then launch the GetPRAM application, and the output appears in a window, selected. You can choose the “Copy” command in the Edit Menu to save the output.
Alternatively, when GetPRAM is run inside Mini vMac, you can get text out of the emulated Macintosh using the “Host Copy” command in the Edit Menu. It is like the “Copy” command, except that it uses the clipboard of the real computer instead of the clipboard of the emulated computer. The keyboard shortcut is Command-Option-C. (The “Host Copy” command has similar effect to using the normal “Copy” command and then ClipOut.)
If you change settings with the Macintosh Control Panels, you can tell GetPRAM to fetch the current settings by clicking on the status bar, at the bottom of the window below the editing area. (Choosing the ‘Go’ command from the File menu, will also work.) Quitting GetPRAM and relaunching also has the same effect.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- b3370fc8570f9afb145d14fa1ec051d7 getpram-1.0.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/N/jrQMxna8gr7KZ60cSA5BX792PPg7IcyEjt7C8I/PFOmW8 lxiCpJ7J1NQA/xNxFfXBw2GQADkA6azITkEiHcBX861AJ8MQGNbTWJADpLNnO7xr ED5rpbQsWUzuGPFDlAy9QYlazswZfSphZZnxigzvvxIaGmOobCAEy4qBOJkEWZwx -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling GetPRAM from the source code.
You can redistribute GetPRAM 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.
GetPRAM 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.
:
If you find GetPRAM useful, please consider helping the Gryphel Project, of which it is a part.
Download
getrsfrk-1.1.0.zip (60K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
GetRsFrk is an application that gets the "resource fork" of a file you select, and saves it to the "data fork" of a file named "bin" in the same folder as the GetRsFrk application (creating "bin" if it doesn't already exist).
This allows you to use the FDisasm tool (which disassembles the data fork of a file) on a Macintosh 680x0 application (which has the code in the resource fork).
After running GetRsFrk, you should next use FindRes.
An alternative to GetRsFrk is asPack, which also saves the data fork and the meta data into “bin”, in AppleSingle format.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- f40b497c3469464cd0aca2aab22f08ff getrsfrk-1.1.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/P6eKnoCzqDfoLRAWwg5qmuvx/KuCC7pdzOQM74eEEOFuBrj 9HeHIdGIGj1VZ5HBaEJGUt/kMW8qDoN1FZ8GlXVwzdqwArjIiEfoG9AaROZHxrqo 2hKXfk47oyFcfBv1ld4qzyOouYJ5TdPIJvAaoR9XzjuvLRO8MqaxZRvbP3gPq3YN -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling GetRsFrk from the source code.
You can redistribute GetRsFrk 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.
GetRsFrk 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.
:
If you find GetRsFrk useful, please consider helping the Gryphel Project, of which it is a part.
Download
vMac_Retro_Icon.zip (37K) zipped files.
Joseph V. Barrile created this replacement icon for Mini vMac in Macintosh OS X. It is too big to be appropriate as the default icon for “Mini” vMac (as any true OS X style icons must be), but this is not a real problem for actual use.
To install this icon into a copy of the Mini vMac application, download vMac_Retro_Icon.zip and expand the archive to get the folder “vMac_Retro_Icon”, which contains the files “AppIcon.icns” and “README.txt”. Control click on the Mini vMac application (or right click with a two button mouse), and from the pop up menu, choose "Show Package Contents". Open the folder "Contents", which among other things contains the folder "Resources". Move the file "AppIcon.icns" into the "Resources" folder, replacing the existing file with the same name.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 2f6209e62ac4cbb0dfc5f340d2402f1f vMac_Retro_Icon.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/FTXvT15ORUTnuACxYZrB4UJ99YXQC9vRh6nPJxa/0c3nuTE BVywIQs3cLwK7Ib75afAL+2is8goYZbq4S2SetFt5TCFiShd1Z/4uE6vCYpY7rMj 5QNnINqpZRb71uZAIE2+t4R2uaLJ/BI7Y9PRctiiSCY3J1IWUF0FfqkjSkA22h9r -------- END GRY SIGNATURE --------
“Copying/License:
I’m offering this as free software to be used as an
application icon for Paul C. Pratt and his Mini vMac software project
(http://minivmac.sourceforge.net) only and may not be sold or
repackaged in any other manner. Joseph V. Barrile must be identified
as the author of this work.”
Download
icnsosx-1.0.0.zip (60K) zipped files.
David Sibley created this nice set of replacement icons for Mini vMac in Macintosh OS X. They are too big to be appropriate as the default set of icons for “Mini” vMac, larger than the entire rest of the program (as any true OS X style icons must be), but this is not a real problem for actual use.
To install these icons into a copy of the Mini vMac application, download icnsosx-1.0.0.zip and expand the archive to get the folder 'icnsosx-1.0.0', which contains the folder "icons". The folder "icons" contains the files "AppIcon.icns", "DskIcon.icns", and "RomIcon.icns". Control click on the Mini vMac application (or right click with a two button mouse), and from the pop up menu, choose "Show Package Contents". Open the folder "Contents", which among other things contains the folder "Resources". Move the files "AppIcon.icns", "DskIcon.icns", and "RomIcon.icns" into the "Resources" folder, replacing the existing files with the same names.
In Mini vMac 3.0.3 or later, the ROM and Disk icons are not used unless Mini vMac is compiled with the option '-im 1'. (So if you don't use '-im 1', you only need "AppIcon.icns".)
Here are the md5 checksums for the downloads, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 2af006506de7549be14f94317918d59a icnsosx-1.0.0.zip e6586af918c0cf75823739ad9c8b01b3 minivmim-3.0.4-umch.bin.tgz ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/C6M+dsOn5yKjfwAaH185UcA0S1bkGkqzhs69JQdmlmRWcu7 1+hD07g74d2cAZaQJlOvO+oDT0pdON0uvIqtY+Vi8odz0qn2M+1YZMOghrvBnLIM OuRSX7zC12kEdA3qJLOX5BVmvOUt9bkbNJpC1cHRoGWsmmKsyTKdGcOfeHi7xWOG -------- END GRY SIGNATURE --------
IcnsOSX is copyright (C) 2007 David Sibley.
You can redistribute IcnsOSX and/or modify it under them terms of version 2 of the GNU General Public License as published by the Free Software Foundation. See the included file COPYING.
IcnsOSX 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.
Download
importfl-1.2.2.zip (info) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
ImportFl is an application to use in Mini vMac (version 3.0.0 or later) to import files into the emulated computer from the real computer.
When ImportFl is the active application running in the emulated computer, then any of the methods normally used to mount a disk image will instead import a file. For example, dragging the icon of the file to be imported into the Mini vMac window.
warning: When attempting to use ImportFl, if you see a dialog asking if you want to initialize the disk, choose “Eject”, not “Initialize”! This will happen if ImportFl is not actually the active application, in which case the file you are attempting to import is treated as a disk image. Choosing “Initialize” will turn it into a valid disk image, destroying parts of the previous content.
ImportFl is mostly useful for importing archives, since it only imports the data fork of a file, not Macintosh specific information such as the resource fork, the file type, the file creator, and comments. (In particular, applications are mostly contained in the resource fork, and so can not be imported with ImportFl. And aside from OS X, most other modern operating systems don't support resource forks, and so can not correctly store an old Macintosh application, and so there is nothing that ImportFl could import anyway.)
Since ImportFl doesn’t receive Macintosh file type and creator information from the real computer, it sets the file type of the imported file to “BINA” and the creator type to “SITx”. That creator type belongs to Stuffit Expander, which can deal with most archive types you would want to import. So double clicking on the imported file will launch Stuffit Expander, if it is available. If it is not available, double clicking on the imported file will result in an error message. In System 6: ‘The file “<file_name>” could not be opened/printed (the application is busy or missing).’ In System 7: ‘The document “<file_name>” could not be opened, because the application program that created it could not be found.’
Many old archives can be unpacked with Stuffit Expander 4.0.1. However, it is common to encounter a Stuffit file that requires a more recent version of Stuffit Expander than will run on a Macintosh Plus. In that case, it will often work with Stuffit Expander 5.5, available from the same page, running on the Macintosh II emulation of Mini vMac. If an even later version of Stuffit Expander is required, you could uncompress it on a different Macintosh emulator, such as Basilisk II, or a real Macintosh.
If what you are importing is not an archive, you can fix the file type and file creator with utilities like Finder Info or Creator Changer. This can be fine for text files (type “TEXT”) and some others, but again, many other file types have information in the resource fork, which is not imported by ImportFl, and most operating systems besides OS X cannot store in the first place.
If you do have files on OS X that you want to import, the Finder application has the built in ability to create an archive that preserves most Macintosh specific information. Right click (or click with the Control key down) on the icon of a file or folder, and choose the "Compress" command. The archive is created in the same folder with a name ending in ".zip". Once you import the file into Mini vMac with ImportFl, StuffIt Expander won’t really properly deal with it. Such archives can be unpacked in Mini vMac with the MiniUnZp application, or using the more advanced miniunz from Adam P.
Another alternative is that recent versions of OS X include a macbinary command, which can be used from the Terminal to convert a file into into MacBinary format, which can be unpacked with binUnpk or Stuffit Expander. (Thanks to Ryan Schmidt and Samir Namer for pointing out this command.)
If you would like to import plain text, ClipIn may be more convenient.
If you would like to export files, see ExportFl, the opposite of ImportFl.
See the Compiling page for instructions on compiling ImportFl from the source code.
You can redistribute ImportFl 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.
ImportFl 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.
News:
February 29, 2020 version 1.2.2 now sets the creator type to “SITx” instead of “MvEx”.
July 13, 2016 version 1.2.1 fixes a bug where ImportFl would not overwrite an existing file (after the Standard Put File dialog asks if you want to replace it). And the URL in the about dialog has been updated. Also, source shared with other Mini vMac extras has been updated, fixing a couple other bugs: ImportFl should now not crash in other emulators such as SheepShaver (though it still won't do anything useful), and it can save to MFS volumes, when the computer supports HFS (previously it had the wrong test, and would support MFS only on computers that didn't support HFS).
:
If you find ImportFl useful, please consider helping the Gryphel Project, of which it is a part.
Extra software to be used with Mini vMac:
CopyRoms - save a ROM image file
Blanks - empty disk image files of various sizes
AutoQuit - assists in “wrapping” a Macintosh Plus application
AutQuit7 - assists in “wrapping” an application for System 7
DAOpener - assists in “wrapping” a Desk Accessory
DoLaunch - for wrapping an application than can’t be Start Up
EjctQuit - variation of AutoQuit for System 7.5.x
ClipOut - exports the clipboard
ClipIn - imports the clipboard
DAFKEY - FKEYs to open Desk Accessories
ExportFl - exports files from Mini vMac
ImportFl - imports files into Mini vMac
MPWextns - tools for Macintosh Programmer’s Workshop
binUnpk - unpacks MacBinary files
sitPack - pack into uncompressed ".sit" format
CnvtDC42 - convert Disk Copy 4.2 image
DC42Chk - check Disk Copy 4.2 image
Md5Fl - md5 checksum of file
Md5Im - md5 checksum of imported file
SigCheck - tool to check digital signatures
SigWrite - tool to write digital signatures
MakeKeys - tool to make keys for digital signatures
MakeRand - tool to make random hexadecimal data
PSgCheck - tool to check PGP digital signatures
PSgWrite - tool to write PGP digital signatures
PMakKeys - tool to make keys for PGP digital signatures
SigChkTl - MPW tool to check digital signatures
SigWrtTl - MPW tool to write digital signatures
MkKeysTl - MPW tool to make keys for digital signatures
PsgChkTl - MPW tool to check PGP digital signatures
ExportPS - assists in printing from Mini vMac
ClockFix - keeps clock accurate
TestMnvM - tests Mini vMac
GetPRAM - get Parameter RAM settings
TestSync - tests video emulation
EgretRom - save ROM image file of Egret microcontroller
PMURom - save ROM image file of Power Management Unit
SlotRom - save declaration ROMs of Nubus Cards
FDisasm - formatting disassembler
FindCode - helps create information used by FDisasm
FindRes - helps create information used by FDisasm
GetRsFrk - get resource fork for FDisasm
asPack - convert file to AppleSingle format
asUnpack - convert file from AppleSingle format
ReAsm - reassemble the output of FDisasm
SetFType - Mac OS utilities to set disk image file type
MnvMreg - install Mini vMac in the Microsoft Windows registry
Icons - alternate Mini vMac icons
Icon2 - second alternate Mini vMac icon
:
If you find these extras useful, please consider helping the Gryphel Project, of which it is a part.
Next - Changes in Mini vMac versions
Download
makekeys-1.1.0.zip (123K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
MakeKeys is a tool to make secret and public key pairs for use in writing and verifying digital signatures, such as with the SigWrite and SigCheck tools.
To use MakeKeys, launch the application, and in the editing window that appears, paste in some truly random (not psuedo-random) hexadecimal data, which can be generated with MakeRand. For example:
42D8A22109876964FEA9CF70F6DDDC54 D0DBA11B7066D7249369E381872CB523 2E55796E50ACFFE979D43196F041B660 DEB1A6139AFBCD333CE4282CDDE043FF CD84A6A9307AF6B6EC2ED05D1238D3E6 C30F03EF59E75009CB67CB5D43177831 BE31F973FF8DDA36E1F0AC42AC1C0994 899CBC583E7AA20EC72BBEFEC06BBC84
Copy all of the indented text above. Then paste it into MakeKeys, which requires getting the clipboard into the emulated Macintosh, if MakeKeys is run inside Mini vMac. You can get text into the emulated Macintosh using the “Host Paste” command in the Edit Menu of MakeKeys. It is like the “Paste” command, except that it uses the clipboard of the real computer instead of the clipboard of the emulated computer. The keyboard shortcut is Command-Option-V. (The “Host Paste” command has similar effect to using ClipIn and then the normal “Paste” command.)
MakeKeys only uses multiples of 128 bits, which equals 32 hexadecimal digits, as on the lines above. Any excess digits are discarded. The above 8 lines add up to 1024 bits.
Before continuing, it would be a good idea to set Mini vMac to All Out speed. Then, on a modern computer, MakeKeys should take less than 5 minutes to run (for a 1024 bit key, as in this example). At 1x speed, or on a real Macintosh Plus, it takes much longer. (Up to a day.) The code of MakeKeys is intended to be simple to understand and maintain, as opposed to fast.
Now, click on the status bar, at the bottom of the window below the editing area. (Choosing the ‘Go’ command from the File menu, of the emulated Macintosh, will also work.)
After a long while, if all is well, the edit area is replaced with a new secret key:
----- BEGIN GRY SECRET KEY ----- Gry+SKAIAAA/AXuKqWsF8Rh5Ie4/vORBnTxYf8FPpRl/n6hpgDgfJ5MAOsAEyePE nSfjmL3I9emNTuW/iCIHlCl/WkaWyMQZ+NDb1ZsnSLyOKwOycVkR3JwJbUamM4wy jUuoWV6jzuhqWZobpGPMSN4B3ivHXtcNVm5SVmnAL13T4FCLnx+TxaYRAQAB9n9N yEapaUzZs3Pdv2zNzs77wWHev2/i0qAIFxBLWI5VvPd6NuXEefADAtAJHhzm9koz gWrLZ9pVF+D537ewv3/mZJPGS0u7Ino5F3AQ20NhDvX3JwovUSgUkmy59PbJgZ2M 0zNCvKuephFJbT4Pgi2oc7ZT/qZagkNNDErbyLb7NvBAU6+Ezbb2ejBd0C7s5tM4 Eu8DD8MJUOdZXctnyzF4F0Nz+TG+NtqN/0Ks8OGUCRysWLyciQ6iej7+vivHhLxr wPBA26XYQmRphwlwz6n+VNzd9huh29Ak12ZwgeNpkyO1LIdueVUu6f+sUJYx1Hlg tkHwE6ax3jPN+5osKOQ8/0Pg3fY/8CwOIpqLB6QDLCtY2ZrfM69mWkw/QTyGNSDU FIkI5corJbgms5mGMGQ2CyEZZ3RjzDtP5YwVAdzd4oNdKLHsK+k4nA== ------ END GRY SECRET KEY ------
The above secret key is only an example. Normally, a secret key should never be given to anyone else. The random hexadecimal data used to create the secret key should of course also be kept secret.
Again, click on the status bar. The edit area is then replaced with the corresponding public key:
----- BEGIN GRY PUBLIC KEY ----- Gry+PKAIAAA/AXuKqWsF8Rh5Ie4/vORBnTxYf8FPpRl/n6hpgDgfJ5MAOsAEyePE nSfjmL3I9emNTuW/iCIHlCl/WkaWyMQZ+NDb1ZsnSLyOKwOycVkR3JwJbUamM4wy jUuoWV6jzuhqWZobpGPMSN4B3ivHXtcNVm5SVmnAL13T4FCLnx+TxaYRAQABwA54 ------ END GRY PUBLIC KEY ------
When MakeKeys is run inside Mini vMac, you can get text out of the emulated Macintosh using the “Host Copy” command in the Edit Menu. It is like the “Copy” command, except that it uses the clipboard of the real computer instead of the clipboard of the emulated computer. The keyboard shortcut is Command-Option-C. (The “Host Copy” command has similar effect to using the normal “Copy” command and then ClipOut.)
MakeKeys is in part descended from MacPGP source code, which, as far as I can tell, allows derived works for noncommercial use.
MacPGP has various code to try to protect secrets from other software running on the computer. MakeKeys does not, instead you should try to secure the entire virtual machine that it is run in. Such as by putting the Mini vMac disk image on an encrypted volume of the host computer, for a start.
MkKeysTl is a command line version of MakeKeys.
MakeKeys is a successor to PMakKeys, which uses a different format that is more or less compatible with MacPGP.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 92e878f7a80ff7d89d61c5a36db27d00 makekeys-1.1.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/HjXdzoGq3PR347yuAykIJEVfJOMAerU/3vCWD+0NphsDqzO 7hb/RLJ8f/+bcPfp4wkOgK9JA/uL/G5UwSYxoMWlPbLK5WDgZINrFIgWxACZdO9f ipXPlHirzjjUnB6mi7ZMmX+H7HgTkppxAzCNGGbsvxzcOeC56qI+NCwtf5sQjp/V -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling MakeKeys from the source code.
:
If you find MakeKeys useful, please consider helping the Gryphel Project, of which it is a part.
Download
makerand-1.0.0.zip (90K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
MakeRand is a tool for making random hexadecimal data, such as for use with the MakeKeys tool.
To use MakeRand, launch the application, and start typing random text. Random data is gathered from the timing of your key presses. The text you type is also mixed in.
MakeRand counts 2 to 7 bits of randomness per key press. When it thinks it has gathered at least 1024 bits of randomness, it “stirs” the pool of bits with a strong psuedo-randomizing function, and then takes 1024 bits and appends them in hexadecimal (base 16) to the output window.
You can copy this text to the clipboard to use in MakeKeys or elsewhere. When MakeRand is run inside Mini vMac, you can get text out of the emulated Macintosh using the “Host Copy” command in the Edit Menu. It is like the “Copy” command, except that it uses the clipboard of the real computer instead of the clipboard of the emulated computer. The keyboard shortcut is Command-Option-C. (The “Host Copy” command has similar effect to using the normal “Copy” command and then ClipOut.)
If you want more than 1024 bits, you can keep typing to generate another block. If you want fewer bits, at any time you can click on the status bar (at the bottom of the window below the editing area) to save the bits collected so far. The status bar displays a count of how many bits have been collected.
MakeRand does use the text you type, so how random it is does affect how random the output is. Perfectly typing in a passage from a book adds very little true randomness. Making lots of typos adds more randomness. Typing in gibberish is better. Mashing keys randomly might be better yet, except that people aren't very good at truly being random. Also, if you try to press keys randomly, you might easily fall into a simple rhythm, which would reduce the randomness of the timing, which is more important than the keys pressed.
MakeRand is in part descended from MacPGP source code, which, as far as I can tell, allows derived works for noncommercial use.
MacPGP has various code to try to protect secrets from other software running on the computer. MakeRand does not. If you are using the random data for something sensitive, such as with MakeKeys, you should instead try to secure the entire virtual machine that it is run in. Such as by putting the Mini vMac disk image on an encrypted volume of the host computer, for a start.
MacPGP uses the time manager to try to determine more precisely when keys are pressed. But in Mini vMac, the emulated keyboard can only generate presses at each sixtieth of a second. So MakeRand only uses the “ticks” value for key presses (time in sixtieths of a second), so it won’t think it has more randomness than it really has when run in Mini vMac. How much randomness MakeRand counts for each keypress depends on how long it has been since the last key press: 0 ticks = 2 bits, 1 tick = 3 bits, 2 - 3 ticks = 4 bits, 4 - 7 ticks = 5 bits, 8 - 15 ticks = 6 bits, 16 or more ticks = 7 bits.
The Abort command in the File menu (shortcut: Command-Period) resets the count of randomness to zero, but it does not clear the pool of random bits. So if you worry that MakeRand is too optimistic in its estimate of randomness, you can use the Abort command to accumulate more, before the count reaches 1024 bits and output produced.
Here is the md5 checksum for the download:
--------- GRY SIGNED TEXT --------- 9131c13685ba2a4dda508056a3f1cf9c makerand-1.0.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/DgElsQZEmjD6rWMMbDSL3ETqDoT8AiBeb2crMwkQAOmPeql NHdW0Wf93T0GMap2oo2KefpBBKd7+7Pqg43jqHmmnaZ0culMqDWlOyfJvJgv707S d0EVW0DbcuSySgjc0vstyb1Ds2XwjObrBMEn0D86OJA3pYwOtTXw/cj0TaMCrIyD -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling MakeRand from the source code.
:
If you find MakeRand useful, please consider helping the Gryphel Project, of which it is a part.
Download
md5fl-1.2.0.zip (68K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
Md5Fl is an application for 680x0 Macintosh to calculate or verify an md5 checksum of a file.
(The related application Md5Im combines the functionality of Md5Fl and the ImportFl application, so as to conveniently checksum files on the real computer.)
The calculated md5 checksum will be displayed in Md5Fl's window. The checksum will also be placed on the clipboard. Before replacing the contents of the clipboard it will examine the old contents and see if matches the new value. If it matches, an "equals" sign is displayed on the right side of Md5Fl's window. If it doesn't match, but the old content looks like an md5 checksum, then a "not equals" sign is displayed. Otherwise, if the old content doesn't look like an md5 checksum, no extra symbol is displayed.
Md5Fl was created using md5 code from glibc-2.3.4, copyright the Free Software Foundation, and written by Ulrich Drepper.
The name "Md5Fl" stands for "MD5 of FiLe".
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 2a66cfc85f7dc26d570b17d09a17f0e1 md5fl-1.2.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/KSrN+dhysxRZ3CJUzWmSDnhry+g6TTVHu5Tl3rCnwpVaSTi eDqvqLtxNCM4vV285GreNdxsEisPwTyOC0NfdnLv6eisnUVpkTEDTanAtIXAvycj 7xiO90AkNJSesQHNVaBY5mi8Ys+iOcQDpzjBcNPfKLZXQ6ijfkIU+lI1A9Y35HmR -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling Md5Fl from the source code.
You can redistribute Md5Fl 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.
Md5Fl 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.
:
If you find Md5Fl useful, please consider helping the Gryphel Project, of which it is a part.
Download
md5im-1.2.0.zip (68K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
Md5Im is an application to use in Mini vMac (version 3.0.0 or later) to calculate or verify an md5 checksum of a file located on the real computer. (It combines the functionality of the Md5Fl and ImportFl applications.)
Note that there are numerous programs for various operating systems that will compute an md5 checksum, way faster than Md5Im can run in emulation. However, because there are so many, I'm not going to support any of them. (That is, I won't document using them, or answer questions about using them.) Md5Im will work identically on all computers that can run Mini vMac.
When Md5Im is the active application running in the emulated computer, then any of the methods normally used to mount a disk image will instead checksum a file. For example, dragging the icon of the file to be checksummed into the Mini vMac window.
warning: When attempting to use Md5Im, if you see a dialog asking if you want to initialize the disk, choose “Eject”, not “Initialize”! This will happen if Md5Im is not actually the active application, in which case the file you are attempting to checksum is treated as a disk image. Choosing “Initialize” will turn it into a valid disk image, destroying parts of the previous content.
The calculated md5 checksum will be displayed in Md5Im's window. The checksum will also be placed on the clipboard of the real computer (not the clipboard of the emulated computer). Before replacing the contents of the clipboard it will examine the old contents and see if matches the new value. If it matches, an "equals" sign is displayed on the right side of Md5Im's window. If it doesn't match, but the old content looks like an md5 checksum, then a "not equals" sign is displayed. Otherwise, if the old content doesn't look like an md5 checksum, no extra symbol is displayed.
For example, to verify the Md5Im zip archive, copy "4346163700a994edca6ac1588ed6d2e8" (not including the quotes) onto the clipboard of your real computer, run the Md5Im application in Mini vMac, and then drag the icon of the file "md5im-1.2.0.zip" onto the Mini vMac window. The Md5Im window should display "4346163700a994edca6ac1588ed6d2e8" followed by an "equals" sign.
Md5Im was created using md5 code from glibc-2.3.4, copyright the Free Software Foundation, and written by Ulrich Drepper.
The name "Md5Im" stands for "MD5 of IMported file".
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 4346163700a994edca6ac1588ed6d2e8 md5im-1.2.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/I+ejYx5W5j3dUal7Pxdy1NocLnwLZ1gdY3HsaH8tw6KmEey vDqHxUDaFOmi5jOtJc9fdEU2DiTPwYk8jCD7sAXAVxVSBTtaFy58+zn33VumX0fR z6GKnetf/6/mq1p+p/AOonniJaJEXVNurSLA+lFrKu3OEiBih79WV+QM5tWvWkTp -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling Md5Im from the source code.
You can redistribute Md5Im 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.
Md5Im 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.
:
If you find Md5Im useful, please consider helping the Gryphel Project, of which it is a part.
Download
MkKeysTl-1.01.zip (74K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
MkKeysTl is a command line version of MakeKeys. It can be used in Macintosh Programmer’s Workshop to automate generating secret and public key pairs. It is written to be platform independent, using the C standard library, and would probably be easy to port to other platforms (but that is not supported).
It takes three arguments: First, a path to a text file containing truly random bytes in hexadecimal (not psuedo-random). Second, a path to a new output file in which to put the secret key. And third, a path to a new output file in which to put the public key.
MkKeysTl is in part descended from MacPGP source code, which, as far as I can tell, allows derived works for noncommercial use.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 5e24c49d468815be31f8c03dcb571c6a MkKeysTl-1.01.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/MHhkmj0G2/yrT2Hn2Rx6UQwG3cZRA0BKusTm89ylU0rnot5 U9dJjYCxGEsGiqzfsMWha1pJbBOcEmzUB4kl7qDdZpwKXqRQe+DAoEoRr+WoMF98 q1rVfHEX2jWmMWVU2wmtNJIuM9of8MMW3vzff+mMgIXUGjLJbEFGw26qDfu8S5KF -------- END GRY SIGNATURE --------
:
If you find MkKeysTl useful, please consider helping the Gryphel Project, of which it is a part.
Download
mnvmreg-1.0.0.zip (20K) zip archive. Includes source code.
update - MnvMreg is obsolete as of Mini vMac 3.0.3 and later. Instead, use the '-im 1' compile time option.
MnvMreg is a utility to install Mini vMac into the Microsoft Windows registry, so that double clicking on a disk image file with the extension '.dsk' will open it with Mini vMac, and so that such disk image files and also '.rom' files will be displayed with custom icons.
Prior to version 1.0.0 of Mini vMac, every launch of the Mini vMac application would reinstall it in the registry. But since this could conflict with other applications that want to use the '.dsk' and '.rom' extensions, this feature was removed. MnvMreg brings this back as a 'use at your own risk' optional feature.
To use MnvMreg, move 'MnvMreg.exe' application into the same folder as the 'minivmac.exe' that you want to use. Then double click on it to launch it. It should give a confirmation dialog to indicate it succeeded, and then quit. If it fails, it should display a dialog with a brief error message.
If you move the Mini vMac application, you will need to run MnvMreg again.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 8ce24f4a9ea518bc563f68218b496988 mnvmreg-1.0.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/N/In8YSWZpg29ecgjEwjYSn4ggzacdVVztLfiTbd26d/tSy Px8vLvzUewks/1y5r0OY4TSvyaUMscf/Hf0oyN4J8BTZsoZ0pt5ignOmt35dEk1X 0gvSAqha2e6y+y1ddxJRebMs4smFlmQaVCFO58+rqtxm8OikHbr/Zv90DxFlgD9w -------- END GRY SIGNATURE --------
You can redistribute MnvMreg 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.
MnvMreg 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.
:
If you find MnvMreg useful, please consider helping the Gryphel Project, of which it is a part.
Download
filein-0.1.0.zip (41K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
fileout-0.1.0.zip (37K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
cathtc-0.1.0.zip (29K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
sethtc-0.1.0.zip (29K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
MPWextns is a collection of tools that can be used in Macintosh Programmer’s Workshop to access Mini vMac extensions. It includes :
FileIn : like ImportFl, except as an MPW tool instead of an application. It takes one argument, the path where the imported file will be written to, and it writes the name of the imported file to standard output.
FileOut : like ExportFl, except as an MPW tool instead of an application. It takes one argument, the path to the file to export.
CatHTC (Catenate Host Text Clipboard): like ClipIn, except as an MPW tool instead of an application, and also it writes the clipboard of the real computer to standard output, rather than the clipboard of the emulated computer. To implement paste from host, with the shortcut command-option-v, run:
AddMenu Edit 'Paste HTC/√' 'CatHTC > "{Active}".§ && Find §∆ "{Active}"'
SetHTC (Set Host Text Clipboard): like ClipOut, except as an MPW tool instead of an application, and also it sets the clipboard of the real computer from standard input, rather than the clipboard of the emulated computer. To implement copy from host, with the shortcut command-option-c, run:
AddMenu Edit 'Copy HTC/ç' 'SetHTC < "{Active}".§'
Here are the md5 checksums for the downloads, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 6a59f9afbdc660c4c90ddba8e63009f6 filein-0.1.0.zip 191d1b5fbc2a4933134c61ca75b8b8fa fileout-0.1.0.zip 4eadc3c469699fa8cc660af38615a9f5 cathtc-0.1.0.zip c17e791c0e1396122d3979e471f4b5b4 sethtc-0.1.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/OykxCQOunKlMsdDspc5tfXJq9Kx/HpxkyRdWjBhKBg+NHeg UcEoWenlHVHrx86oNjz4RXOOF9BbY0XJUrdtMs8jZv9qcUtCanpFwpJEu8eHr3v0 E07IwywiV4AkiBjs5BDxDRvRyHZLGqoWkmGGlmjg98rIvy+54kT4U9oZcLVD6iNH -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling MPWextns from the source code.
You can redistribute MPWextns 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.
MPWextns 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.
:
If you find MPWextns useful, please consider helping the Gryphel Project, of which it is a part.
Download
pmakkeys-1.1.0.zip (131K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
PMakKeys is a tool to make secret and public key pairs for use in writing and verifying digital signatures, just like MakeKeys, except that it uses a different format that is more or less compatible with the program MacPGP.
The tools PSgWrite and PSgCheck use the keys generated by PMakKeys.
PMakKeys is in part descended from MacPGP source code, which, as far as I can tell, allows derived works for noncommercial use. PMakKeys is generally compatible with MacPGP, but it is easier to legally distribute, since it doesn’t do cryptography. Since it only does one thing it should also be easier to use.
PMakKeys generates keys compatibile with MacPGP, but it does not encrypt the secret key. Another difference with MacPGP is that PMakKeys sets the user name field to "anon", rather than asking for one.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 6318e745d955ac70113a6a753ad7d164 pmakkeys-1.1.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/JVgrzW5vjrPsNUQZyOWjePPTd5P+eWvhzDon3PnGsqVZ1hm 7h+mr3hloz+sND7zxIEgXONJnNUYfwON1Syw7Gw4+dEyDNVSzM3XqmiSgtnxeFfn Q+oHCQnLIIZKqRk5ucLoiRnoYTfwM7cyNQSjUB0hEzVSFCna6mScBMcuDieoi5tH -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling PMakKeys from the source code.
:
If you find PMakKeys useful, please consider helping the Gryphel Project, of which it is a part.
Download
pmurom-1.0.0.zip (60K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
pmurom-1.0.0.sit.zip (48K) The same contents, repackaged as zipped Stuffit archive.
PMURom is a utility to write out to an image file a copy of the ROM of the Power Management Unit (PMU) used in some Macintosh models. It may work on the Macintosh Portable, and PowerBooks 100, 140, 170, 160, and 180. It was made at the request of Arbee (AKA R. Belmont), to assist the MESS emulator project.
It was made from Arbee's specification, but it is not yet tested. (I don't have the hardware to test it myself. My PowerBook 100 is dead.)
To use, just launch the PMURom application. It should write out a file named "PMU.ROM" (to the folder containing the application) and then immediately quit.
On a machine without the right kind of PMU, PMURom may or may not detect that, and give an error message. (If it doesn't, a crash is likely.)
PMURom can be used even on a machine without a working keyboard, mouse, and/or screen. This can be done by preparing a floppy disk with PMURom set to be the startup application (in System 6 or earlier, not System 7), and replacing the finder with the "AutoQuit" application. Make sure there is enough free disk space for the ROM image file.
The ROM image files that PMURom saves are copyright Apple Computer, and may not be redistributed.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 9344ec7c701ecdc25ffdcbe70bcf721b pmurom-1.0.0.zip 2be82fef4de2f711d9baf59da1a600bc pmurom-1.0.0.sit.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/Pb+JM6v7O+/jlAREBussiBYfBvR2gPHaNxitff7YNQjXA6o RFDUfZtFnZaH7iWvM4tYpCRyFhROK8lotCv1GWNa0XFJr0JYYoHWd5Xj9jzj3k/P bNKspzOcIu26Fofhfag7baICGACOfvkUdAk4ZL76kyWZAkEMsTyMLPYPCoYrv9kU -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling PMURom from the source code.
You can redistribute PMURom 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.
PMURom 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.
News:
November 14, 2011 version 1.0.0 - initial release.
:
If you find PMURom useful, please consider helping the Gryphel Project, of which it is a part.
Download
psgcheck-1.1.0.zip (131K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
PSgCheck is a tool for checking digital signatures, just like SigCheck, except that it uses a different format that is more or less compatible with the program MacPGP.
The related tool PSgWrite creates digital signatures that can be checked by PSgCheck. Public and secret key pairs for these tools can be created with PMakKeys.
PSgCheck is in part descended from MacPGP source code, which, as far as I can tell, allows derived works for noncommercial use. PSgCheck is generally compatible with MacPGP, but it is easier to legally distribute, since it doesn’t do cryptography. Since it only does one thing it should also be easier to use. PSgCheck only handles a subset of signed messages that MacPGP does.
PSgCheck has been replaced by SigCheck, which uses a different format, “GRY”. The “GRY” format is much simpler, and therefore shorter.
To attempt to mitigate weaknesses of md5, the GRY signature format uses two different md5 checksums, the normal one, and the md5 checksum of the input bytes in reverse order. It also includes 3 byte CRC checksums in normal and reverse order, and 2 bytes of version info to make a 40 byte digest (320 bits). 384 bits is the minimum key size supported by SigCheck, which means the maximum digest size which can be encoded in the signature is 384 bits. It is hopefully harder to construct two files where these 40 byte digests match than it is to make the 16 byte md5 checksums match.
The signature format used by PSgCheck only uses the 16 byte md5 checksum as a digest. Currently md5 is generally considered hopelessly weakened, and unsuitable for any purpose. However, as far as I know, there is still no publicly known practical “Preimage” attack, which is what is most important for signing. That is, if I create a file that has a certain md5 checksum, there is no practical way known yet for someone else to construct a different file with the same checksum. But it is possible to create two files with the same md5 checksum. So you have to be careful about signing a statement that you have looked at a file created by someone else, with a given md5 checksum, and it is good. Because they might have another file with the same checksum that isn’t good. And you have to be careful about signing a statement that contains a significant amount of text from someone else, especially if your text that precedes their text is predictable. Which seems to be what happened to Microsoft with the “Flame” malware.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 0c0c7595afb4c5f80eed669c9579697a psgcheck-1.1.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/FGldTdJwYKeOhZAQlL95gcFYC0GhlGNfIPVF7R535S78Dh2 8abQczZlQjk4P4hVOPLAyTkiADAF6AExOXhANcQEK4qeD0vdTHmKQ4URIGZVq6lY wHfV21nkoPVCOKMGvWOnBM4vK3H/IhUam2OZY5qaeFD7zLipNHDu3f17+aa1sQoP -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling PSgCheck from the source code.
:
If you find PSgCheck useful, please consider helping the Gryphel Project, of which it is a part.
Download
PSgChkTl-1.01.zip (70K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
PSgChkTl is a command line version of PSgCheck. It can be used in Macintosh Programmer’s Workshop to automate checking digital signatures in MacPGP format. It is written to be platform independent, using the C standard library, and would probably be easy to port to other platforms (but that is not supported).
It takes two arguments: First, a path to a file containing a signed message. And second, a path to a file containing a public key, in ascii armored format.
If the signature is correctly signed, PSgChkTl will return a zero result ("{status}" in MPW). Otherwise the result will be non-zero.
PSgChkTl is in part descended from MacPGP source code, which, as far as I can tell, allows derived works for noncommercial use.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 619f66c2e6aa20bc1a996b35e3c662ab PSgChkTl-1.01.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/C144FRwrUWDsAm4foX3HOd4Fs4BF8uyzDksfn7dO3RPvk3T PB8u5Z0hJkUQQYA4Pdg7G69amjF4oMtjK+1XPspxlSg8aa+8Gbww00SeFwbJDvnH f6k2UEr7Ulet1iEelRmPkedX8K/zoiSzoENpUA76C+ii92JNym9UH+MU4xQNVDnI -------- END GRY SIGNATURE --------
:
If you find PSgChkTl useful, please consider helping the Gryphel Project, of which it is a part.
Download
psgwrite-1.2.0.zip (131K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
PSgWrite is a tool for creating digital signatures, just like SigWrite, except that it uses a different format that is more or less compatible with the program MacPGP.
The related tool PSgCheck can check digital signatures created with PSgWrite.
PSgWrite is in part descended from MacPGP source code, which, as far as I can tell, allows derived works for noncommercial use. PSgWrite is generally compatible with MacPGP, but it is easier to legally distribute, since it doesn’t do cryptography. Since it only does one thing it should also be easier to use.
PSgWrite only handles a subset of secret keys that MacPGP does. For one thing, it does not handle encrypted keys, which is what MacPGP would normally generate.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- b66c8c36d27247975de97b233ae45273 psgwrite-1.2.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/Os4hAUa0bhgqJjPpyUXzATV8DG/5EDaTK4lPqoAbuuRG7/X iekeQnXQuEI5+pW78BMjRA51JkCxwDDIA5CvhevVlo4olDjHh3z0+kPqA9CBmm2w IdScDaenBObgQxwc2GFi1EcxXQqJicUuQYr5cVHSouLofjUTI+msWdxyLmOzt5vC -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling PSgWrite from the source code.
:
If you find PSgWrite useful, please consider helping the Gryphel Project, of which it is a part.
Download
reasm-200105.zip (info) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
ReAsm is for reassembling the output of FDisasm.
Unlike other Macintosh Assemblers, ReAsm has no awareness of the structure of a Macintosh application, or even the structure of a Macintosh resource fork. Instead it can be used to produce any arbitrary flat data file. This makes it better suited for reassembling output of FDisasm, especially ROM images. A Macintosh application (with resource fork, file type, and file creator) can be produced by assembling an AppleSingle format file and then using asUnpack.
Example source files are included. To assemble them, move the ReAsm application into the “example” folder and run it, which creates the output file “bin”.
Nothing about ReAsm should be relied on yet. In particular, the syntax for the source file will change.
See the Compiling page for instructions on compiling ReAsm from the source code.
You can redistribute ReAsm 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.
ReAsm 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.
:
If you find ReAsm useful, please consider helping the Gryphel Project, of which it is a part.
Download
setftype-0.1.0.sit.zip (16K) Stuffit archive. Includes source code.
latest update : obsolete !! - It is now recommended to use ImportFl and ExportFl for transfering files to and from the real computer, instead of trying to do so by mounting a disk image on the real computer.
update - SetFType may not be effective on modern versions of OS X, particularly on an Intel Macintosh. It also may not be needed. Instead, rename a disk image so that the name ends with '.dmg' to be able to mount it on the real computer. Make the name end with '.dsk' to make the disk image belong to Mini vMac. (But as of version 3.0.4, only a copy of Mini vMac compiled with the '-im 1' option.)
SetFType has two variations. Both are utilities for Mac OS X and OS 9 that set the file type and creator of disk image files.
"SetFType.dimg" makes the file belong to Disk Copy, which makes it possible to mount the disk image on the real machine (such as by double clicking on it). Mounting a disk image on the real machine allows you to transfer files to and from the emulated machine, as described in more detail on the Disk Image page.
"SetFType.MvIm" makes the file belong to Mini vMac, so that double clicking on the file will mount the disk image within the emulator. This can be convenient, but it is not required, since Mini vMac can open a disk image file of any type, using the open command, or drag and drop onto the application window or icon.
To use SetFType, drag the icon of a disk image file onto one of the two applications ("SetFType.MvIm" or "SetFType.dimg"). The program will set the file type and creator of the disk image, put up a dialog to tell you it worked, and then quit. The program does a simple check to see if the file is really a disk image (of the kinds that Mini vMac can mount), and displays an error message if it isn't. You can drag more than one file onto the application icon. The program will process all of them.
If you are using Mac OS 9 and SetFType will not accept a drag and drop (doesn't highlight), try rebuilding the desktop. That is, restart the computer and hold down the option and command (apple) keys.
Note: you should avoid mounting a bootable disk on your real machine, since this may make it unbootable, for some combinations of operating systems on the real machine and the disk image.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- ca1f77aab468de4f1cbadde3a9379313 setftype-0.1.0.sit.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/Pjbw0qd6dLFkuW8TmHTsk4GlGScwfxeH987oSaVERi96nJt efNUzdcMjP5IqPXSXNXq4lzsITVGIOrt80GJ4SyMtozqycHPwqhd56trP1bZppfN gJ2preStCz8P/4wXIgaCb9di9APlhlrCJ552lRwRc8dwhikMfExh5+0HT8yhPHpH -------- END GRY SIGNATURE --------
You can redistribute SetFType and/or modify it under them terms of version 2 of the GNU General Public License as published by the Free Software Foundation. See the included file COPYING.
SetFType 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.
News:
June 15, 2005 Changed archive to format that should work with any version of Stuffit. Thanks to Donald Swope for pointing out the problem.
:
If you find SetFType useful, please consider helping the Gryphel Project, of which it is a part.
Download
sigcheck-1.1.0.zip (111K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
SigCheck is a tool for checking the digital signatures found throughout this website, to verify the integrity of downloads. Also, anyone can create their own signed message for SigCheck using the SigWrite tool.
To use SigCheck, launch the application, and in the editing window that appears, paste in a signed message. For example:
--------- GRY SIGNED TEXT --------- Twas brillig, and the slithy toves did gyre and gimble in the wabe: All mimsy were the borogoves, and the mome raths outgrabe. ------- BEGIN GRY SIGNATURE ------- Gry/AXuKqWsF8Rh5/Bb045yIowANlvp/V/ymKoDa55Wb7dW/xGfPmca8oLw+Rv9d cSQpcL+XpzESnWqpK/uNg7lTIe4wdOzo1/s6bHU0u27J+A5EngkYQiAMHeETq6Nx DM8viQbkNx2UZrDxyOLCGXW1N4txMktyjC3DYzRMH/oKBVHxgP6B2j8sipEgp3Zf -------- END GRY SIGNATURE --------
Copy all of the indented text above, which includes the message body, the signature, and headers and footers. Then paste it into SigCheck, which requires getting the clipboard into the emulated Macintosh, if SigCheck is run inside Mini vMac. You can get text into the emulated Macintosh using the “Host Paste” command in the Edit Menu of SigCheck. It is like the “Paste” command, except that it uses the clipboard of the real computer instead of the clipboard of the emulated computer. The keyboard shortcut is Command-Option-V. (The “Host Paste” command has similar effect to using ClipIn and then the normal “Paste” command.)
Then click on the status bar, at the bottom of the window below the editing area. (Choosing the ‘Go’ command from the File menu, of the emulated Macintosh, will also work. The keyboard shortcut is Command-G.)
The editing area is cleared. Next paste in the public key for the signed message. For this example:
----- BEGIN GRY PUBLIC KEY ----- Gry+PKAIAAA/AXuKqWsF8Rh5Ie4/vORBnTxYf8FPpRl/n6hpgDgfJ5MAOsAEyePE nSfjmL3I9emNTuW/iCIHlCl/WkaWyMQZ+NDb1ZsnSLyOKwOycVkR3JwJbUamM4wy jUuoWV6jzuhqWZobpGPMSN4B3ivHXtcNVm5SVmnAL13T4FCLnx+TxaYRAQABwA54 ------ END GRY PUBLIC KEY ------
Before continuing, it would be a good idea to set Mini vMac to All Out speed. Then, on a modern computer, SigCheck should take less than a second to run. At 1x speed, or on a real Macintosh Plus, it takes much longer. The code of SigCheck is intended to be simple to understand and maintain, as opposed to fast.
Now, click on the status bar again. If all is well, the status bar should say “Good Signature.” Otherwise you should get an alert with some error message.
If SigCheck says the signature is good, that is strong evidence that the message was signed by the owner of the public key (the person who has the corresponding secret key). But you should be aware of a number of weaknesses:
First, the key might not belong to who you think it does. If someone has hacked the Gryphel Project website, or is intercepting all traffic between you and the website, then they can replace the public keys displayed on this website as well. So you shouldn’t just get the key from the website whenever you need it, you should save your own copy. That still doesn’t protect you when you first get the key. One possible protection is to find other copies of the key on the web and compare them.
Second, the key might have been stolen. Once anyone else knows the secret key, it is pretty much useless. Securing information on a computer is a difficult problem. Actually, it is impossible to prove that a computer is completely secure. A computer not connected to the internet is much more likely to be secure, but that is usually impractical.
Third, the key might have been broken. The security of a key depends on the difficulty of factoring a large number into two primes. In 2009, a 768 bit key was broken. As of this writing (2018), no one has publicly broken a 1024 bit key, however there have been predictions that it would be possible around now. It is quite possible that some large government organization now has that capability. Even if that is so, for most uses a 1024 bit key is probably still safe for signing. The capability would most likely be quietly used for decrypting. Forging signatures would make that capability publicly known, and so less useful.
Forth, the digest algorithm might have been broken. SigCheck computes a 40 byte digest from the message to compare with the decoded signature. I believe it to be impractical to construct another message that results in the same digest. But if someone figures out how, that would make SigCheck useless.
SigCheck is in part descended from MacPGP source code, which, as far as I can tell, allows derived works for noncommercial use.
If a file named “pub_key.txt” exists in the same folder as the application, then SigCheck will not ask for the public key, but instead get it from that file. So you can save time for a frequently used key by setting up a copy of SigCheck this way. You can save even more time by “wrapping” this copy of SigCheck with AutoQuit.
The first 12 characters in a signature after the “Gry/” (after the “BEGIN GRY SIGNATURE” line), should match the first 12 characters in the public key after the first “/”. In the above example, “AXuKqWsF8Rh5”. So if you have a text file with many public keys, you can easily search for the right key for a signature.
SigChkTl is a command line version of SigCheck.
SigCheck is a successor to PSgCheck, which uses a different format that is more or less compatible with MacPGP.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 46757c0a10d20e1d52927bdc6f2325f5 sigcheck-1.1.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/NC5C7bO9uPNVmJPZvd31PACtsQToj77XzzrikfELiUwjDzv xFD4GrylqGqMLc863DgDlnno920kTkdIWXoLGo4zBe96kwvu8UU8puOXuB/7JnFY BDhfT7tzljE0pXd+8Sld/bsSMptWliotg4mMbbbKJ5ItijZFRybi4KZ+jg0Xw+lA -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling SigCheck from the source code.
:
If you find SigCheck useful, please consider helping the Gryphel Project, of which it is a part.
Download
SigChkTl-1.01.zip (58K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
SigChkTl is a command line version of SigCheck. It can be used in Macintosh Programmer’s Workshop to automate checking digital signatures through out this website. It is written to be platform independent, using the C standard library, and would probably be easy to port to other platforms (but that is not supported).
It takes two arguments: First, a path to a file containing a signed message. And second, a path to a file containing a public key, in ascii armored format.
If the signature is correctly signed, SigChkTl will return a zero result ("{status}" in MPW). Otherwise the result will be non-zero.
SigChkTl is in part descended from MacPGP source code, which, as far as I can tell, allows derived works for noncommercial use.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- ff5ae9d24788cbe4ed821d3ab52c9cfd SigChkTl-1.01.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/H9iEmRVaYKIOk5+LVbSgVo/cGdjvjs7CiPbr/q6A4BuDvQe 1JWNhIWY9F2EOGlGwoCIi2JwSrWNtFENSEfBHP1bNKGUTZt5iGq+NtxwlECFc99G JX7hkSrHKXZtwf12qpXym9KOfSnhBHbhMcoZKYk31DuRwgPoMhn3TKwNWisd/i0G -------- END GRY SIGNATURE --------
:
If you find SigChkTl useful, please consider helping the Gryphel Project, of which it is a part.
Download
sigwrite-1.2.0.zip (111K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
SigWrite is a tool for creating digital signatures that can be checked with the SigCheck tool. Public and secret key pairs for these tools can be created with MakeKeys.
To use SigWrite, launch the application, and in the editing window that appears, paste in a message to be signed. For example:
Twas brillig, and the slithy toves did gyre and gimble in the wabe: All mimsy were the borogoves, and the mome raths outgrabe.
Copy all of the indented text above. Then paste it into SigWrite, which requires getting the clipboard into the emulated Macintosh, if SigWrite is run inside Mini vMac. You can get text into the emulated Macintosh using the “Host Paste” command in the Edit Menu of SigWrite. It is like the “Paste” command, except that it uses the clipboard of the real computer instead of the clipboard of the emulated computer. The keyboard shortcut is Command-Option-V. (The “Host Paste” command has similar effect to using ClipIn and then the normal “Paste” command.)
Then click on the status bar, at the bottom of the window below the editing area. (Choosing the ‘Go’ command from the File menu, of the emulated Macintosh, will also work. The keyboard shortcut is Command-G.)
The editing area is cleared. Next paste in a secret key to sign the message with. (One can be created with MakeKeys). For example (and only as example, normally a secret key should never be given to anyone else):
----- BEGIN GRY SECRET KEY ----- Gry+SKAIAAA/AXuKqWsF8Rh5Ie4/vORBnTxYf8FPpRl/n6hpgDgfJ5MAOsAEyePE nSfjmL3I9emNTuW/iCIHlCl/WkaWyMQZ+NDb1ZsnSLyOKwOycVkR3JwJbUamM4wy jUuoWV6jzuhqWZobpGPMSN4B3ivHXtcNVm5SVmnAL13T4FCLnx+TxaYRAQAB9n9N yEapaUzZs3Pdv2zNzs77wWHev2/i0qAIFxBLWI5VvPd6NuXEefADAtAJHhzm9koz gWrLZ9pVF+D537ewv3/mZJPGS0u7Ino5F3AQ20NhDvX3JwovUSgUkmy59PbJgZ2M 0zNCvKuephFJbT4Pgi2oc7ZT/qZagkNNDErbyLb7NvBAU6+Ezbb2ejBd0C7s5tM4 Eu8DD8MJUOdZXctnyzF4F0Nz+TG+NtqN/0Ks8OGUCRysWLyciQ6iej7+vivHhLxr wPBA26XYQmRphwlwz6n+VNzd9huh29Ak12ZwgeNpkyO1LIdueVUu6f+sUJYx1Hlg tkHwE6ax3jPN+5osKOQ8/0Pg3fY/8CwOIpqLB6QDLCtY2ZrfM69mWkw/QTyGNSDU FIkI5corJbgms5mGMGQ2CyEZZ3RjzDtP5YwVAdzd4oNdKLHsK+k4nA== ------ END GRY SECRET KEY ------
Before continuing, it would be a good idea to set Mini vMac to All Out speed. Then, on a modern computer, SigWrite should take less than ten seconds to run (for a 1024 bit key, as in this example). At 1x speed, or on a real Macintosh Plus, it takes much longer. The code of SigWrite is intended to be simple to understand and maintain, as opposed to fast.
Again, click on the status bar. After a while, if all is well, the edit area is replaced with the signed text:
--------- GRY SIGNED TEXT --------- Twas brillig, and the slithy toves did gyre and gimble in the wabe: All mimsy were the borogoves, and the mome raths outgrabe. ------- BEGIN GRY SIGNATURE ------- Gry/AXuKqWsF8Rh5/Bb045yIowANlvp/V/ymKoDa55Wb7dW/xGfPmca8oLw+Rv9d cSQpcL+XpzESnWqpK/uNg7lTIe4wdOzo1/s6bHU0u27J+A5EngkYQiAMHeETq6Nx DM8viQbkNx2UZrDxyOLCGXW1N4txMktyjC3DYzRMH/oKBVHxgP6B2j8sipEgp3Zf -------- END GRY SIGNATURE --------
When SigWrite is run inside Mini vMac, you can get text out of the emulated Macintosh using the “Host Copy” command in the Edit Menu. It is like the “Copy” command, except that it uses the clipboard of the real computer instead of the clipboard of the emulated computer. The keyboard shortcut is Command-Option-C. (The “Host Copy” command has similar effect to using the normal “Copy” command and then ClipOut.)
SigWrite is in part descended from MacPGP source code, which, as far as I can tell, allows derived works for noncommercial use.
MacPGP has various code to try to protect secrets from other software running on the computer. SigWrite does not, instead you should try to secure the entire virtual machine that it is run in. Such as by putting the Mini vMac disk image on an encrypted volume of the host computer, for a start.
If a file named “sec_key.txt” exists in the same folder as the application, then SigWrite will not ask for the secret key, but instead get it from that file. So you can save time for a frequently used key by setting up a copy of SigWrite this way. You can save even more time by “wrapping” this copy of SigWrite with AutoQuit.
SigWrtTl is a command line version of SigWrite.
SigWrite is a successor to PSgWrite, which uses a different format that is more or less compatible with MacPGP.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 88431b1a988637870f706027db02cbf4 sigwrite-1.2.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/Oj+k7MxmYKs7dr4k5oFxKGZTyzmGkgonzXfMUQv+CJbAI9i 0bTxRjTKDrYI2M6jpTkkUFlBr2yIK1sf0ot5w6swikh1SB9mHrn4xB6ziYFjfdNz YZlrucKZnfznk87kVEuWiMQz7v+xltMEIHKa5cy+9UH0VOcimAfT46lFmZFQMDoX -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling SigWrite from the source code.
:
If you find SigWrite useful, please consider helping the Gryphel Project, of which it is a part.
Download
SigWrtTl-1.01.zip (57K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
SigWrtTl is a command line version of SigWrite. It can be used in Macintosh Programmer’s Workshop to automate creating digital signatures. It is written to be platform independent, using the C standard library, and would probably be easy to port to other platforms (but that is not supported).
It takes three arguments: First, a path to a file contained a message to be signed. Second, a path to a file containing a secret key, in ascii armored format. And third, a path to a new output file in which to put the signed message.
SigWrtTl is in part descended from MacPGP source code, which, as far as I can tell, allows derived works for noncommercial use.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 757a695fde185fceb6131d5e65276282 SigWrtTl-1.01.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/NR+XtA5N7yDydifGmerpis7tA3FX2zcFzrUee9aUXkb17ja iWhLoLm9u7k5V9s74ebYnRO8U/Yck+C6BXvqH4nP37ceffA/YodO1I+h9HfrjsF4 BAs8mjOD45JvfwpB67ol4smVWzyV00QBaVmPlPLv3MyybSVpaQZ3jNSEcp06wV5M -------- END GRY SIGNATURE --------
:
If you find SigWrtTl useful, please consider helping the Gryphel Project, of which it is a part.
Download
sitpack-1.0.0.zip (64K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
sitPack is an application to pack files and folders into uncompressed ".sit" format.
The main thing gained by implementing this was to learn how to customize the open file dialog to allow selecting folders. (With help from Apple sample code and sample code from Disinfectant.)
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- b49f7a412037622ab3121da1e7e8a500 sitpack-1.0.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/AWWrSW4IQcZtgwF8f6IDIMc7ctgkmUza/3rLlpiblpktgRk T1l8TQkJBj0DpjtVricSX11pZMK4Ya8BnBBWFZWb7sS13xk4vLrkhMxLpjKaOy2/ OS8p3mDLl+axDUQ47ZkfKBMMNUemnYWMN8k5JLCto539dunXb/J7XWqxRIbRRH9T -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling sitPack from the source code.
You can redistribute sitPack 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.
sitPack 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.
:
If you find sitPack useful, please consider helping the Gryphel Project, of which it is a part.
Download
slotrom-1.0.4.zip (66K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
slotrom-1.0.4.sit.zip (53K) The same contents, repackaged as zipped Stuffit archive.
SlotRom is a utility to write out to an image file the declaration ROM of each Nubus Card in some Macintosh models. It was made at the request of Arbee (AKA R. Belmont), to assist the MESS emulator project, and debugged in collaboration with him.
It is still in development. This alpha version writes out debugging information to a file named "dbglog".
To use, just launch the SlotRom application. It should write out a file for each NuBus card named such as "Slot9.ROM" (to the folder containing the application) and then immediately quit.
SlotRom can be used even on a machine without a working keyboard, mouse, and/or screen. This can be done by preparing a floppy disk with SlotRom set to be the startup application (in System 6 or earlier, not System 7), and replacing the finder with the "AutoQuit" application. Make sure there is enough free disk space for the ROM image file.
The ROM image files that SlotRom saves are copyright Apple Computer, and may not be redistributed.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- 85bd18946512c165c342842f7ed886e6 slotrom-1.0.4.zip 2427ecbc0a443cffcb86a01fc2c1def7 slotrom-1.0.4.sit.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/JSKVdvgf0CV1bwkiRh3T4yicOZ/sSjyr3qkt2fQlF6zGnOI PtR0sUV4MJINlVz4EPe/PYl6RradPWPhGKLnCMw0iH0oYS1VQIHUf14+On5v3uQ7 dHZo1WdxKrZa6p7UFDvtjVg9EOLmXP48VYD+TUW3lyXTTW3gMKV2PToXEq+tlFmP -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling SlotRom from the source code.
You can redistribute SlotRom 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.
SlotRom 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.
News:
April 30, 2015 version 1.0.4 - increase preferred memory allocation from 128K to 2M, due to a bug report.
December 1, 2011 version 1.0.0 - initial release.
:
If you find SlotRom useful, please consider helping the Gryphel Project, of which it is a part.
Download
testmnvm-0.1.0.zip (44K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
TestMnvM is the start of a utility for testing Mini vMac that I've been meaning to do more work on for years. I'm making it public since even what there is of it so far can be useful to give some assurance when you have compiled your own copy of Mini vMac that it has compiled correctly.
TestMnvM is simply an application that when run inside Mini vMac puts up an alert saying either "Seems Ok", or else a brief description of where it found a problem.
TestMnvM is not useful if the emulation is too broken, so that it can't boot at all. (Gwenole Beauchesne's M68K Emulator Testsuite looks better for that. Sometime I will have to try to get it to work with Mini vMac code.) It is more useful for giving some reassurance that a program that seems to work doesn't have obscure bugs.
Currently TestMnvM is mostly focused on testing the results of a few 68000 instructions on selected example parameters, with special attention to making sure the condition codes are set correctly. (If condition codes aren't handled correctly, the emulator may seem to mostly work, except for occasional odd behavior, which is worse than not working at all.) This checks out the part of the emulation that does the computations, but since it uses only one form of each instruction, rather than all the possible addressing modes, it is not testing the decoding of instructions.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- fb24133897ad170dd04d67780b4285ea testmnvm-0.1.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/HBkWQDNYVbJxhsZwwKMuftiOi6x4nxh7WV1GSCDPhF7XI5H RYvNB3KDuRl5VUz+MQ2weDvGQwDQRhGCyljEA+4gdGMdu7igwLBQ5fkw3wedIRBs 3OkOH2RVL7iND+qSwMtbAJ4TUOR4JOJSuqBKVRaIAa+7/7Zz8mJRVb24uOqGzNk1 -------- END GRY SIGNATURE --------
You can redistribute TestMnvM 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.
TestMnvM 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.
:
If you find TestMnvM useful, please consider helping the Gryphel Project, of which it is a part.
Download
testsync-1.2.0.zip (36K) a zipped hfs disk image and checksum file. The disk image can be mounted with Mini vMac. Includes source code.
TestSync is a simple application for testing Macintosh video emulation. On a real Macintosh Plus it should fill the screen with vertical bars that move smoothly to the left. (More specifically, one pixel wide bars with 7 pixels of space between bars, moving to the left at one pixel per tick, with about 60.15 ticks per second.)
For an emulator, this is about the worst possible case. It makes clearly visible any "tearing" effects cased by different screen refresh rates between the real and emulated computer. Also, if the operating system doesn't give the emulator time to run very regularly, it is very noticeable. And also, the entire screen changes with every tick, preventing the optimization where Mini vMac redraws only the part of the emulated screen that has changed, making clear just how much processing power is needed for video. Old machines such as a 400 MHz G3 iMac running OS X don't have enough, and can't run TestSync at even 1x speed.
TestSync continues running until you click the mouse or press a key. TestSync will not work on a Macintosh with Color Quickdraw, and should refuse to run.
TestSync exists thanks to Manuel Alfayate, who complained about graphics tearing in Mini vMac. I didn't see anything like that, and I thought Apple documentation implied it shouldn't happen in OS X 10.4 and later. Eventually I had the theory that it was just the software he was running, which perhaps would also tear on a real Mac Plus, or perhaps some inaccuracy of the emulation caused it to happen with this particular software. So I created TestSync to prove this theory, but instead it conclusively disproved it. The tearing was clearly visible, even though I had never noticed it before.
I haven't decided what to do about this yet, if anything. It would not generally be practical to sync the emulation and the real monitor. A Macintosh Plus screen has a specific refresh rate (about 60.15 times per second), and even modern monitors that allow changing the refresh rate probably mostly can't match that exact value. And even if it could be done, it would only make sense to do so in full screen mode, and changing the refresh rate would probably take a noticeable amount of time, and I like the current ability of Mini vMac to enter and leave full screen mode instantaneously. To prevent tearing without syncing would necessarily lose a bit of smoothness, since a real or emulated frame must occasionally be skipped. This can be done in OS X using the AGL_DOUBLEBUFFER and AGL_SWAP_INTERVAL options of OpenGL, but it is very expensive, and there might be more efficient alternatives.
By the way, redrawing the entire screen 60.15 times a second pushes the limits of what a Macintosh Plus can do. 21,888 bytes need to be changed in about 10,000 instructions. Which is why TestSync is written the way it is, with assembly language code writing directly to the screen memory.
Here is the md5 checksum for the download, signed with Gryphel Key 5:
--------- GRY SIGNED TEXT --------- abca0065eb3634606b83439edbcf85da testsync-1.2.0.zip ------- BEGIN GRY SIGNATURE ------- Gry/4Xa8CFcUzxdN/Pzwr3AiyObHHSd/DgzkHg73e1sHDdzf5O4v8/5k/SrUmVW2 kgJ0A/WwVES+pbdy77lySLj0cYo4fAGDx4fGT7t1P6/3b/juXmtqEd7sS9YXDGob p2K7LGrZ4hE5fbxi6S4X0c9YCjbsWfyYoXjAx/X15ho5R6Hwdl0qBhzt7ivAlTsH -------- END GRY SIGNATURE --------
See the Compiling page for instructions on compiling TestSync from the source code.
You can redistribute TestSync 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.
TestSync 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.
:
If you find TestSync useful, please consider helping the Gryphel Project, of which it is a part.
I have a question that isn’t answered in this FAQ or in the documentation. What do I do?
Ask on one of the various internet forums related to Mini vMac.
How do I get my Macintosh programs and other files into Mini vMac?
To use a program or other file with Mini vMac, you need to get it into a disk image. The recommended way to do this is with the ImportFl utility.
How can I read a floppy disk that was written on a Mac Plus?
Modern machines can’t read the 400k and 800k floppy disks used by the Mac Plus. This a hardware problem, not solvable in software - they lack the variable speed motor of the old drives. I don’t know any reason why some company couldn’t now manufacture a floppy drive that reads the old disks, but I’m not aware of anyone doing so.
So the only way to read such disks is to get an old Mac. A somewhat later Mac than the Mac Plus would be useful, one that can read 400/800k floppies, but has some options for talking to modern machines, such as 1.4M floppies or ethernet.
An alternative is to hire someone to do this for you. See the Old Macintosh Disk Conversion Services page for some possibilities.
How can I print from Mini vMac?
There is no direct support for printing, but you can use the ability built into System 6.0.8 and later to print to a Postscript file. You can then export this file to the host computer, and print it from there.
To print to a Postscript file, select LaserWriter in the Chooser, then print from your application as normal, except that in the print dialog, choose PostScript File as the destination. To transfer the resulting file to the host computer you can use ExportFl. The Preview application in Macintosh OS X 10.4 or later can open and print PostScript files. (The name of the file should end with ".ps" to allow Preview to recognize it as PostScript.) Other operating systems may require additional software to print PostScript files.
When selecting LaserWriter in the Chooser, you can ignore the warning about requiring AppleTalk. The print to file feature of this driver will work without AppleTalk. Choosing Cancel is fine, which leaves AppleTalk off. Choosing OK, which turns AppleTalk on, is also fine. The standard Mini vMac variation without LocalTalk emulation still tries to correctly emulate the serial port, with no LocalTalk network attached, which is sufficient for turning on AppleTalk. (AppleTalk is the protocols that are used to talk over the LocalTalk network hardware.)
ExportPS is a specialized variation of ExportFl that saves a few steps when printing.
Warning : printing to a Postscript file in System 6.0.8 has sometimes been observed to generate invalid Postscript. This problem may be fixed in later System versions. I've not had trouble with my preferred version: System 7.1 with System Update 3.0.
No.
That would be a violation of copyright law. I am not a lawyer, but my understanding is that it is ok to produce a product that might be used for illegal purposes, so long as there sufficient legal use for it. Therefore I try to emphasize that Mini vMac can be used legally. The legal method is to own an old Macintosh (see the Buy Mac page) and extract the ROM image (see CopyRoms) for your own private use. (Some people think that this isn’t legal either, but that isn’t my understanding of U.S. copyright law, though I am not a lawyer, and laws could differ in other countries.)
I own an old Macintosh that I can’t extract the ROM image from (because it is broken, or because I don’t have the means to make it communicate with newer machines). Can you send me the ROM image?
Sorry, no.
That would still be a copyright violation. It only reduces the chance that anyone would care. (I think, I am not a lawyer.) Speaking of caring, as far as I know Apple doesn’t seem to have bothered lately to stop the various illegal copies of Macintosh 68k ROMs floating around the web. But I expect there would be limits to their tolerance.
Will you tell me where to find an illegal ROM image?
Of course not.
Why do I get a message that the ROM image may be corrupted?
Some of the illegal ROM images floating around the web are in fact corrupted.
Can you provide a bootable disk image?
No. This would require Apple System Software, involving issues similar to those mentioned above for ROM images. Except that System Software may be downloaded freely from Apple.
What System Software versions can be used with Mini vMac?
Mini vMac can currently be used with up to System Software 7.5.5, and any earlier version back to the earliest known prereleases. In theory some (distant) future version of Mini vMac may be able to work with up to Mac OS 8.1, the last version to work on a 680x0 Macintosh. Later system software, starting with 8.5, runs only on a PowerPC Macintosh.
Which emulation should I use (Mac Plus, Mac 128K, Mac SE)?
Which version to use depends on what ROM image you have. If you have all of them then the Mac Plus emulation is probably preferable. There are few detectable differences in the Mac SE emulation, and it’s not as well tested. The Mac 128K emulation can run some very early software that won’t run on a Mac Plus, but a lot of software that works on the Mac Plus won’t work on a Mac 128K (and only 128K of memory is very limiting). The Mac Plus was sold for the longest period of any Macintosh model, and so software written over a long period of time works well on it.
Why doesn’t the ROM from a Mac SE/30 or Mac SE FDHD work in the Mac SE version of Mini vMac?
As described on the Mac 68k page, the Mac SE/30 and the Mac SE FDHD are different machines from the Mac SE, and use different ROMs. I believe the Mac SE FDHD is quite similar to the Macintosh SE, but it has been reported that it is not close enough for the Macintosh SE FDHD ROM to work in the Macintosh SE emulator. The Mac SE/30 is much more different.
How is Mini vMac different from Basilisk II?
The biggest current difference is that Mini vMac emulates the earliest Macs, while Basilisk II emulates later 680x0 Macs. The fundamental technical difference is that Basilisk II doesn’t emulate hardware, but patches the drivers in ROM, while Mini vMac emulates the hardware (with the exception of the floppy drive).
The consequences are that some of the earliest Mac software will run in Mini vMac and not Basilisk II, while much of the later software will run in Basilisk II and not Mini vMac. For software that will run in either, the emulation in Mini vMac can be more accurate, while Basilisk II offers many more features (including color, larger screen, more memory, network access, and more host integration).
Mini vMac aims to stay simple and maintainable. So Mini vMac only has compile time preferences, where as Basilisk II has many run time preferences. And Mini vMac uses a rather simple emulation of the processor, compared to Basilisk II, which could make Mini vMac slower.
Color?
Maybe someday. The next computer that I plan to emulate is the Mac II, which has color. Meanwhile, you could try Basilisk II.
Larger screen?
It might be possible to hack the ROM of the Mac Plus to support larger screen sizes. (Actually, the original vMac for Macintosh supported larger screen sizes, though in a way that doesn't work for Mini vMac.) But since it would not be emulating any Mac that ever existed, there definitely would be compatibility problems. It would work except when it didn't, which is not very satisfactory. If I implemented this, it would mostly be as a stepping stone to emulating later Macs, which is the preferred solution.
update: This is now implemented in the stable version.
More memory?
The Mac Plus (and Mac SE) can support no more than 4MB of memory, since the RAM starts at address 0 and the ROM is at address 0x00400000 (4MB).
After figuring out how to patch the ROM to support a different size screen, I investigated whether it would be possible to patch the ROM so that it could function elsewhere in the address space. The answer was no. The Macintosh System software, in particular the part that installs bug fixes for traps that otherwise would be implemented ROM, assumes and depends on the exact address of the ROM. It would not be enough to patch the ROM, any System Software version that might be used would have to be patched as well.
The (incomplete) Macintosh II emulation currently supports up 8MB. The Macintosh II ROM is not "32-bit clean", and so has problems with more memory. But there is a later software update that is supposed to make a Mac II 32-bit clean (I assume by providing replacements for many of the ROM routines.) Unfortunately this doesn't work in Mini vMac yet, for unknown reasons. Maybe in the future. Meanwhile, you could try Basilisk II.
I've received a "report" that there was a third party upgrade for the original Mac that allowed it to support more than 512K of memory. So presumably it is possible for Mini vMac to do the same. I have not investigated this yet.
Networking?
Mini vMac does not currently support networking. A real Mac Plus can use TCP/IP over a modem. All that software will work in Mini vMac, but there is no modem emulation. Mini vMac emulates the serial ports with nothing attached. In the future, I’m thinking there could be a replacement of the Mac Plus TCP/IP software to run inside Mini vMac, that could use the Mini vMac extension mechanism to talk to the TCP/IP API of the host operating system. But that is likely quite some way away. Meanwhile, you could try Basilisk II.
Save PRAM?
A real Macintosh has a small amount of memory that is preserved when the computer is turned off. This memory, the PRAM, is used to hold settings such as sound volume, start-up system drive, and printer connection.
vMac saves this information to a file upon quit, and loads this file on launch. Very early versions of Mini vMac also did this, until one day Mini vMac stopped working for me. I eventually realized that it was because the saved PRAM was corrupted. (This was a problem on real Macs too.) To prevent support headaches, I stopped saving the PRAM state.
If you compile your own version of Mini vMac, you can change the initial settings of the PRAM in the source code. A possible future feature for the Mini vMac build system is to make this easier, by providing build options for the more useful PRAM settings.
Preference dialog?
(For options such as which machine to emulate and how much RAM)
Since the goal is to keep Mini vMac small and simple, easily portable and maintainable, I don’t plan to implement any run time preferences, only compile time preferences. Run time options are more complex to implement than compile time options, and would make the program larger. If implemented in a simple way, having to constantly check what machine is being emulated at run time would make the program slower.
Another major concern is that preference files can get corrupted. (Similar to the PRAM issue mentioned above.) This is a very common problem with a lot of software. Not having a preference file prevents this problem.
I would prefer to continue trying to make it easier to use compile time options. Mini vMac is small enough that you can keep multiple copies of it, each customized to a different use.
Port to Syllable, SkyOS, Palm, BeOS, Amiga, or ...?
Porting to other operating systems is fun, and central to the goals of Mini vMac. However, it takes a while for me to learn enough about programming for an operating system as different as these to port Mini vMac, and relatively few people benefit, so that is not too high a priority for me.
On the other hand, if someone who is already familiar with an operating system would like to port Mini vMac to it, I'd be happy to assist, such as by answering questions about how Mini vMac works. Mini vMac is intended to be portable, has been ported a number of times already, and is relatively simple, so I think it should be relatively simple to learn enough about Mini vMac to be able to port it to a new operating system (compared to me learning enough to program for a new operating system).
Port to Apple II, TRS-80, Atari XL, Commodore 64, or ...?
In theory, Mini vMac can be ported to anything vaguely resembling a computer, so long as it has enough storage. So if you’re willing to do enough swapping of floppy disks, cassettes, or whatever, then it should be possible. However, it would be very difficult to create such ports, and impractical in the extreme. (As in, boot times measured in days, months, or years.)
For a practical Mini vMac port to be possible, a computer should have enough fast memory (RAM) to hold the emulated machine's RAM (minimum 128K for Macintosh) plus the emulated machine's ROM (minimum 64K), plus enough to hold the code of the emulator. A 16 bit computer like those mentioned above can only directly access 64K of RAM total. Some workarounds are possible, but they are complex, and it is hard to imagine anyone would ever bother.
Also, the host computer should preferably be at least 50 times faster than the original Macintosh to allow the emulation to run at a useable speed. The computers mentioned above are slower than the original Macintosh. (Modern computers are thousands of times faster.)
Emulation of a Mac LC475 or Quadra650 or IIci or ...?
Maybe someday. I’d like to eventually add emulation of other Macs, starting with the Mac II. I can’t work on emulating the machines in any order; each is a stepping stone to the next. For example the Mac SE was much like a Plus except for having to figure out ADB. The Mac II will be a much bigger step, having a 68020, a 68881 FPU, graphics card, and a new sound chip. But at least I have good documentation for it; I don’t have as much for later machines. Later machines also tend to use a 68030 or higher, which means having to deal with virtual memory.
Emulation of a PowerPC Macintosh?
No. PowerPC emulation will never be in Mini vMac, no matter how long I maintain it. It is “Mini” vMac, so one has to draw the line somewhere. Mini vMac is about preserving early Macintosh software. Such software, when written properly, will run efficiently on any 680x0 Macintosh. A PowerPC Macintosh runs this software by emulation. Emulating an emulator is much slower than just one level of emulation. (A PowerPC processor is faster than a 680x0 processor, but an emulation of a PowerPC processor is no faster than the emulation of a 680x0 processor.)
Instead, see “SheepShaver” or “PearPC”.
Emulation of a Lisa?
In theory, emulation of a Lisa running MacWorks is within the scope of Mini vMac. But it is not a high priority, since a Lisa is complex to emulate, and emulating it would not greatly advance the primary goal of preserving early Macintosh software. Instead see Ray Arachelian’s “Lisa Emulator Project”.
Emulation of an Apple II?
No. An Apple II has no real similarity to a Macintosh. This is “Mini” v“Mac”, if you want one emulator for everything, see “MAME”.
Open source ROM replacement?
No. While on some computers the ROM is relatively simple and just used to load the operating system, on an early Macintosh the ROM contains all the core software that makes it a Macintosh. The earliest system software doesn't have much more than a few bug fixes. (Which, by the way, is possible because the code in ROM is accessed through a dispatch table in RAM.) A replacement for the ROM would be much more complex than the whole of Mini vMac, and there would always be compatibility issues, so long as it wasn't identical to Apple's ROM.
It has been done though. See “Executor”.
What format is the Mini vMac source code in, and why don't you use something more standard?
It is a zipped hfs disk image. The "Building Mini vMac" page describes how to use it.
The "real" Mini vMac is not an emulator, but a program that generates source code for various Macintosh 680x0 emulators for various development tools. This is the Mini vMac build system. The build system is a program that runs on a Macintosh 680x0, which allows it be used by anyone who has Mini vMac (or any other real or emulated 680x0 Macintosh). The source code for the build system is in a format suitable for using with a Macintosh 680x0 C compiler. The build system is not made to be portable to other kinds of computers, as that would add much more complexity.
Even if the build system were not needed for generating all the various variations of Mini vMac, it would still be needed for supporting the various development tools. There are no standard source formats that are directly usable on all computers and development tools that Mini vMac is ported to.
What should I do with my old 680x0 Macintosh?
Keep it, of course. Owning an old Macintosh allows you to use Mini vMac legally. Even if Mini vMac doesn't emulate your specific 680x0 Macintosh model, it may at some future date, or a different emulator may.
If you really can't keep it, then some of the places listed on the Buy Mac page could also be used to sell one.
:
Back up to - Mini vMac
Contents
The ROM (“Read Only Memory”) contains information needed for the Macintosh Plus to function, and the emulation of the Macintosh Plus also needs this information. A program such as “CopyRoms”, when run on a real Macintosh Plus, will save this information to a file, which can then be transferred to the computer on which you want to run Mini vMac. Note that the ROM image file is copyright Apple Computer, and may not be redistributed. So to legally use Mini vMac, you need to own a real Macintosh Plus. If you don’t have a Macintosh Plus, you could check the “Where to buy an old Macintosh” page.
When Mini vMac launches, it will look for a ROM image file in a number of possible locations. If it does not find the ROM image, it will wait for you to tell it where it is. You can drag the icon of the file onto to the Mini vMac window. Or, in the Macintosh or Windows versions, you can choose the “Open Disk Image...” command from the “File” menu, or the ‘O’ command from the Control Mode to bring up the bring up the standard dialog. Once you have told Mini vMac where the ROM image is, booting will resume.
Before giving up and asking you where the ROM image file is, the first location Mini vMac will look for it is in the folder containing the Mini vMac application, with the name “vMac.ROM”. In recent versions of OS X, this will not work by default, because of “Path Randomization” misfeature added in macOS Sierra (10.12), and also because of Sandboxing, when that is enabled.
The ROM image file may also be placed elsewhere, with an alias (named “vMac.ROM”) to it placed in Mini vMac’s folder. "Alias" is the term used for Macintosh. On Windows you use a "“Shortcut”" file. (It must be “vMac.ROM”, not “Shortcut to vMac.ROM”. Actually, the file is really named “vMac.ROM.lnk” internally, but what you see is “vMac.ROM”.) And in the X versions you use a symlink, or "symbolic link".
An exception to the above is that in the Mac OS X version, if you create a folder called “mnvm_dat” inside the “Contents” folder within the application bundle (control click on the application and choose “Show Package Contents”), then Mini vMac will look for the “vMac.ROM” file, and the disk1.dsk, disk2.dsk, etc files, within the “mnvm_dat” folder. This allows you to make a self contained Mac OS X application that runs an application for the Mac Plus (especially when used with the “AutoQuit” software.)
In the X version, if the folder containing the application can not be determined, Mini vMac looks for the ROM image file in the current directory. For example, finding the application directory is not implemented in OpenBSD and Minix.
Also in the X version, if an argument of the form “-r [rom_file]” is used on the command line, that is used instead of the application directory or current directory. Or, if there is an argument of the form “-d [directory_path]”, Mini vMac looks for the ROM image in [directory_path].
If Mini vMac doesn't find the ROM image in the locations described above, it will also look in a specific central location. In OS X it checks in "/Users/[your_UserName]/Library/Preferences/Gryphel/mnvm_rom/", and then also in "/Library/Application Support/Gryphel/mnvm_rom/". In Windows 7 and Vista, "C:\Users\[your_UserName]\AppData\Roaming\Gryphel\mnvm_rom\". In Windows XP, "C:\Documents and Settings\[your_UserName]\Application Data\Gryphel\mnvm_rom\". In Windows 98, "C:\WINDOWS\Application Data\Gryphel\mnvm_rom\". In the X Versions, "~/.gryphel/mnvm_rom". And in Macintosh Classic "System Folder:Preferences:Gryphel:mnvm_rom". The "mnvm_rom" folder may be an alias to where ever you keep your ROM collection.
Mini vMac will verify the checksum of the ROM on launch. There is code in the ROM to do this when the Macintosh Plus boots, but since Mini vMac patches the ROM to replace the disk driver, it also patches the ROM to disable the checksum verification. So Mini vMac does the check itself, before patching the ROM, and gives a warning message if the checksum is incorrect. Since no harm can be done no matter what is in the ROM, this is only a warning, and Mini vMac will keep running. Mini vMac does not check if the ROM image file is too long (it should be 128K = 131072 bytes).
There are three different versions of the Macintosh Plus ROM. Versions 2 and 3 work with Mini vMac. The original (and rare) version 1 ROM was recently reported not to work, presumably because of problems with SCSI emulation. There are only a few bytes different in version 2 from version 1, to fix a bug where the Macintosh Plus wouldn't boot if an attached SCSI devices was not turned on.
On: Launching the Mini vMac application turns on the power switch of the emulated computer. Double click on the applications icon to launch Mini vMac in Macintosh or Windows. The application can be launched from the command line in Linux and Windows. There are also many other ways of launching applications for each operating system, such as by installing it into the dock of Macintosh OS X, the Apple menu of Macintosh OS 9, or the start Menu of Windows.
Off: Quitting the Mini vMac application is like turning off the power switch of the emulated computer. Just like with the real computer, you should shut down the operating system running within the emulated computer first. Mini vMac can’t tell if the emulated operating system has been properly shut down, but it can tell whether any disk images are currently mounted, and so uses that as the test for warnings.
If no disk images are mounted, Mini vMac can be quit with Control-Q, or by clicking in the close box of the Mini vMac window, or with the quit command in the menu (Macintosh/Windows).
If a disk image is mounted, clicking in the close box or choosing the quit command in the menu will bring up a warning dialog. Choosing Control-Q will display a warning, with the option of typing ‘Y’ to force quit.
It is also possible for software running within the emulation to cause Mini vMac to quit automatically. See “AutoQuit”.
The Macintosh Plus has one internal floppy disk drive, that can use 3.5 inch 800K double sided disks or 400K single sided disks. In addition, an external floppy drive can be attached. Mini vMac does not emulate the floppy drive hardware but instead patches the ROM with a replacement disk driver, which can mount up to 6 “disk image” files. The information on a floppy disk can be transferred to a disk image file. The preferred disk image format for Mini vMac is a file containing just the image data, with no header, trailer, or resource fork (and therefore without checksums or tag data). Mini vMac will accept disk images in formats with trailing information and no header, except that it will pass an incorrect disk size to the emulated computer, which affects programs such as Disk First Aid.
Mini vMac also supports disk images in “Disk Copy 4.2” format, which has an 84 byte header, and usually contains checksums and tag data. These images are mounted read only. The utility CnvtDC42 converts Disk Copy 4.2 format images to a new image without the tags and checksums and header, that Mini vMac can write to. Alternatively, Mini vMac can be compiled with full read/write support for this format.
Compressed disk images are not supported.
Besides 400K or 800K, the replacement disk driver of Mini vMac will also work with disk images of any other size less than 2G. It will pretend to have something more like a hard disk, though not exactly. This is not too authentic, but it is very useful. Mini vMac defines its own icon for these disks (with a ‘v’), which can be seen in the Finder on the emulated computer.
Bootable disk images should use the “Hierarchal Filing System” (HFS, now called HFS standard). The Macintosh Plus doesn’t understand the newer “HFS extended”. The older “Macintosh Filing System” (MFS) will also work, but this mostly is useful only for communicating with the emulation of the Macintosh 128K. Once the Macintosh Plus is booted, some Macintosh system versions will support additional kinds of disks, such as DOS.
Mini vMac can boot with any system version that works on a real Macintosh Plus, that is, up to “7.5.5”.
There are many ways to “mount” a disk image in Mini vMac. (That is, to insert an emulated disk into an emulated floppy drive.) The icon of the disk image file can be dragged on to the Mini vMac window (Then, if the Mini vMac window isn’t in front, it will be automatically activated). In the Macintosh or Windows versions, the icon of the disk image file can be dragged on to the Mini vMac application icon (If Mini vMac is already running, in the Macintosh version the disk image will be opened in the existing process, while in the Windows version a new instance of Mini vMac will be launched). Also in the Macintosh or Windows versions, choosing the “Open Disk Image...” command from the “File” menu, or the ‘O’ command from the Control Mode, will bring up the standard dialog to select a disk image file. In the X and Windows version, disk images can be specified in the command line.
When Mini vMac is launched, it can automatically mount disk images named “disk1.dsk”, “disk2.dsk”, up to “disk6.dsk”. Mini vMac will normally look for them in the folder containing the application. In the Mac OS X version, if the “mnvm_dat” folder exists it will look there, in the same way it looks for the ROM image. In the X version, if an argument of the form “-d [directory_path]” is used on the command line, Mini vMac will look in [directory_path] instead.
In the Macintosh version, disk1.dsk and so on files may be aliases. In the Windows version, they may be shortcut files. Mini vMac stops at the first image not found, i.e. if there is no “disk2.dsk”, it won’t open “disk3.dsk”, even if it exists.
A disk image file may be locked. The emulated computer sees this as a disk with the lock tab set. This allows you to use a disk image and be certain the image file won’t be modified. You can also share a single locked image file among multiple running copies of the emulator.
Never mount an unlocked disk image simultaneously in two running copies of the emulator. And never mount a disk image in an emulator and at the same time mount it on the real computer. Such double mounting will usually corrupt the disk image irreparably. Double mounting is not actually possible in Mac OS 9 or in Windows. Very old versions of OS X would allow double mounting, but modern versions of OS X only allow one copy of Mini vMac to get write access to a disk image, and then allow other copies to get read access. The X versions use advisory locking to refuse to open for writing a disk image that has been opened for writing by another copy of Mini vMac.
You can get a new blank disk image from the “Blanks” archive. To transfer files from your real computer into and out of disk image files, see the utilities ImportFl and ExportFl.
The save operation of a program for the Macintosh Plus would normally force changes to be written out to disk (and not just left in RAM caches). When running in Mini vMac the changes will be written to the disk image, but the changes to the disk image may not be written out immediately to the real disk. So if the real computer crashes or loses power, saved changes may be lost. In the Macintosh and Windows versions, changes to a disk image are forced to be saved to the real disk when the image is unmounted.
If you try to mount more than six disk images mounted at once, Mini vMac will display an error alert. This limit can be raised up to 32 disk images, with some memory and time overhead, by recompiling.
The floppy disk drives of the Macintosh Plus have a small hole into which a straightened paper clip can be inserted, which will force the floppy disk to be ejected. Mini vMac doesn’t implement this feature. You can always force Mini vMac to quit, or reset, either of which will unmount all disk image files.
All Mini vMac disk access is currently synchronous, so, for example, mouse movement stops, and sound can be interrupted. This might be changed in some future version.
The Macintosh Plus has a Motorola MC68000 processor, running at 7.8336 MHz. The emulated processor of Mini vMac can run at approximately that speed (1x), but a number of other settings are also available: 2x, 4x, 8x, 16x, 32x, and All out.
The speed setting can be controlled by the ‘S’ command of the Control Mode, that leads to another screen with more options. There is also a command line option for the Windows and X versions to start Mini vMac at 1x speed.
The maximum speed depends on the speed of the real computer on which it is running. Setting Mini vMac to run faster than this maximum is equivalent to setting it to “All out”. Otherwise the percentage of CPU time taken by Mini vMac depends on the speed setting. On some computers the fans will start running very loudly if a high percentage of the CPU time is in use.
So by default Mini vMac is set to run at 8x, instead of “All out”, so as not to stress current modern computers, but still feel reasonably snappy. Setting the speed to 1x makes some older games more playable, which weren’t written with faster computers in mind, and would otherwise play much too fast.
Also a few programs may break in other ways at faster than 1x. When running faster, the emulated computer thinks time is running normally for each sixtieth of a second, but at the end of each sixtieth, a lot of instructions get executed instantaneously. This gives quite good, but not perfect, compatibility. The minimum emulation speed is 1x. If the real computer isn’t fast enough to do 1x, the emulated computer will still think it is running at the normal number of instructions per time, but its sense of time will not match the real time.
The speed setting is only an approximation. Mini vMac estimates execution time using a table of average number of cycles for each of the 65536 primary opcodes. Less or more accurate timing can be selected at compile time.
Mini vMac will automatically shift down to 1x speed if there is no activity for a while. This is called the "AutoSlow" feature. It helps to preserve the battery on portable computers.
If the user types, or clicks or moves the mouse, or the emulated computer draws to the screen, or reads or writes to an emulated disk, that counts as activity that prevents AutoSlow. AutoSlow takes effect after either 0.5 seconds of emulated computer time, or 16 seconds worth of emulated instructions executed (usually about 2 seconds at the default 8x speed), which ever is longer.
It is possible that some software will not draw anything to the screen for longer than that while doing real work, so the AutoSlow feature can be disabled with the “autosloW toggle” in the ‘S’ command of the Control Mode.
Mini vMac finds the smallest rectangle enclosing the area of the screen that has changed every sixtieth of a second. This makes Mini vMac more efficient, since transfering images to the real screen tends to be expensive. If this rectangle is only a single pixel wide and less than 32 pixels tall, it is assumed to be only a blinking insertion point, that doesn't prevent AutoSlow.
By default, the emulation stops when the Mini vMac window is not front most. But the ‘S’ command of the Control Mode includes a “run in Background toggle”. So you can set some computation going in Mini vMac and then use other programs on your computer. You can set Mini vMac to run in the background with the speed set to “All out”, but this isn’t recommended, except on a dual processor computer (Mini vMac can only use one processor).
The emulation can also be stopped even when the Mini vMac window is front most, by using the “Stopped toggle” in the ‘S’ command of the Control Mode. This can be useful, for example, to pause a game.
When in Full Screen Mode, with speed set to “All out”, some versions of Mini vMac will try to prevent other programs from running as much as possible, for the smoothest possible emulation. This is so far implemented in the Mac OS 9 and Windows versions.
A Macintosh Plus can have 1M, 2M, 2.5M, or 4M of “RAM” (Random Access Memory). Mini vMac normally emulates a computer with 4M of RAM, but this can be changed to one of the other 3 values by recompiling.
The Macintosh Plus has a 512 by 342 pixel black and white screen, redrawn 60.15 times per second from one of two “screen buffers” in RAM. Mini vMac examines the current screen buffer 60.15 times per second, and compares it to the previous contents. If something has changed, the current buffer is drawn to the real screen, minus any unchanged lines at the top and bottom. If emulation is lagging (below the speed of a real Mac Plus), it will only redraw a part of the screen each time.
When Mini vMac launches, it creates a 512 by 342 window to display the emulated screen. This window is given the same name as the Application. (So if you rename the Mini vMac application, when you launch it the window will have that new name.) In the X version, if an argument of the form “-n [app_name]” is used on the command line, Mini vMac will use that name instead.
There is an option to double the size of the display. This can be easier to read, since modern screens often have smaller pixels than in the original Mac Plus (about 1/74th inch). Magnify Mode can be toggled with the ‘M’ command of the Control Mode.
Some computer monitors have trouble displaying the 50 percent gray pattern commonly used on old Macintoshes. Magnify Mode helps to alleviate this problem.
Magnify Mode can have performance problems on some computers with some operating systems. While a modern computer has no trouble emulating the processor at ten times the speed of the original if the screen doesn’t need to be redrawn, drawing full screen video at 60.15 frames a second can be a problem.
Mini vMac has a Full Screen Mode, where the menus and other programs are hidden, leaving only the emulated screen. The Magnify option is turned on automatically if your screen has high enough resolution (1024 pixels across or greater). Full Screen Mode can be toggled with the ‘F’ command of the Control Mode.
If the emulated screen is larger than the real screen while in Full Screen Mode, the emulated screen will be scrolled to keep the mouse pointer in view. This may not work well if the software running on the emulated computer hides the mouse pointer.
Toggling Full Screen Mode affects more than just the display. The design idea is that when in the regular mode, Mini vMac should try to behave as much like a normal cooperative application as possible, while in Full Screen mode it will try to take over the entire computer as much as possible. In Full Screen Mode, Mini vMac will try to monopolize the processor, and grab the keyboard. Also, the mouse is emulated differently in Full Screen Mode.
There is not supposed to be any way to leave Full Screen mode except for the ‘F’ command of the control Mode. However, sometimes there is no way to prevent the operating system from bringing up some other program. Mini vMac will detect if it is no longer the active application, and turn off Full Screen mode.
The X version has a command line option, “-display [display_name]” or “--display [display_name]”. XOpenDisplay will be called with [display_name] as the argument. This apparently allows you to choose what screen the Mini vMac window will open onto, even onto a screen of another computer. This has never been tested.
The Macintosh Plus has an external keyboard with its own processor. Mini vMac emulates the protocol used to talk to this keyboard. This protocol deals with keys being pressed and released, so Mini vMac looks at the keys being pressed and released on the real computer, instead of the characters that the real computer would normally translate them into. So Mini vMac may not be affected if the real computer is set to use the Dvorak layout, for example. But you can make the operating system running within Mini vMac use a Dvorak layout if you want it. This low level keyboard emulation has the advantage that all the Macintosh special characters can be typed in the Windows and X versions, and that software such as the debuggers MacsBug and TMON will work.
The keyboard communication protocol will support keys not present on Macintosh Plus keyboard (“Page Down” for example). So Mini vMac goes ahead and transmits the modern keys. One modern key not present on the Mac Plus is the ‘control’ key. Mini vMac provides a way to press the control key of the emulated computer, even though the control key is being used for the Control Mode. “Control-K” presses the emulated control key, and “Control-K” again releases it.
In the Windows or X versions, the ‘alt’ key is used for the emulated command key, and the ‘windows’ key (or the ‘application’ key) is used for the emulated option key.
In all versions, the F1 key can be used as the emulated option key and the F2 key can be used as the emulated command key. This provides a way to type some key combinations that are intercepted by the OS of the real computer. For example, F2-Shift-3 will take a screen shot in the emulated computer, whereas on a Macintosh, Command-Shift-3 takes a screen shot of the real computer at the same time.
When you switch away from Mini vMac, all emulated keys are released (except for the emulated caps lock and control keys). (You can not see the change then unless “run in Background” is on.) When you switch back to Mini vMac, the emulated keys remain released, and the real keys held down at that moment are ignored.
There is an exception to this when you drag a file onto the Mini vMac window, so that Command-Option will work to rebuild the desktop of a disk image. However, the keys that map to command and option can have special meanings in other operating systems. (For example, in OS X, clicking on the window of another application with command and option down will hide all other applications.) So it usually works better to press command-option right before dropping, instead of before dragging.
When in Full Screen Mode, Mini vMac will try to “grab” the keyboard, preventing the operating system from intercepting keys. So in the Windows version, the ‘windows’ key can be used as an ‘option’ key, instead of popping up the “Start” menu. And in the OS X version, Command-Tab won't switch away from Mini vMac. This is also implemented in the X version.
The Macintosh Plus mouse has a ball that turns two rollers as it moves, one for horizontal and one for vertical. The rollers are each connected to a disk with a series of small holes. As the holes pass by a sensor, the Macintosh gets interrupted. There is a second sensor to allow the Macintosh to tell which edge of the hole, and so which direction the mouse is moving. The interrupt handler keeps count of how the mouse is moved. Then 60.15 times a second, it sees how far the mouse has moved and updates the cursor on the screen.
Mini vMac does not emulate the mouse hardware. Instead, it has two different behaviors depending on whether Full Screen Mode is on.
If not in Full Screen Mode, then 60.15 times a second Mini vMac translates the coordinates of the mouse on the real computer to coordinates on the emulated screen, and directly pokes this location into low memory of the emulated computer. This not very authentic mouse emulation is convenient in that you can easily move the mouse from the Mini vMac window, to click in the menu bar or to activate another program. But this emulation is not good enough for some programs (such as Crystal Quest, HeartQuest, Slime Invaders, Arkenoid, MacLanding, Apache Strike, Stepping Out, and Microsoft Flight Simulator), and for other programs (such as Dark Castle) it is preferable to constrain the mouse to the emulated screen, so you don’t deactivate Mini vMac by accident.
When in Full Screen Mode, 60.15 times a second Mini vMac checks how far the mouse has moved, and pokes this into low memory of the emulated computer in the same fashion as the real mouse movement interrupt would do. I don’t know of any program for which this emulation isn’t good enough, so there are no plans for an even lower level emulation of the mouse movement interrupts. The emulated Macintosh Plus is initialized to use “very slow” mouse movement, and the velocity of the real computer’s mouse is passed directly to the emulated computer. So the mouse in the emulated computer behaves like the mouse of the real computer. For a more authentic experience, you can set the real computer’s mouse to slow, and then increase the speed of the emulated computer’s mouse.
The method used to get the velocity (not just absolute location) of the mouse of the real computer may not work on all computers. Mini vMac has code that attempts to detect when this doesn’t work, and then switches to the absolute position mouse emulation. However this check fails to detect problems when running the Windows version of Mini vMac within Microsoft Virtual PC with Pointer Integration turned on, and when running the Mac OS 9 version of Mini vMac in classic environment of OS X.
Because Mini vMac translates the real mouse coordinates to the emulated screen, when in Magnify Mode the mouse moves half as fast.
The Macintosh Plus mouse has a single button. In the Windows version of Mini vMac, if either the left or right mouse buttons are pressed, the emulated mouse button is pressed. In the X version mouse buttons 1, 2, and 3 are equivalent.
The Macintosh Plus can play 8 bit sound at 22255 samples per second from one of two “sound buffers” in RAM. It can also toggle sound output at multiples of 1.2766 microseconds to generate square waves. The sound volume can be set to one of eight levels.
Sound is so far implemented in the Macintosh, Windows, and Linux versions. (Emulating sound in Linux requires ALSA; it is not part of the standard X11 protocol. Mini vMac loads ALSA dynamically, and so will still run if ALSA is not installed.) The volume is initially set to maximum. Square wave sounds are approximated, being forced to fit into the same 22255 samples per second as other sounds.
Sound in the Windows version will only work on computers that can play sound at 22255 samples per second, rather than a more standard value like 22050. If this turns out to a serious problem, perhaps a future version of Mini vMac could be made to just play the sound at 22050 samples per second, on computers that don’t support 22255, making all the pitches off.
If the sound from Mini vMac sounds choppy, you could try to quit other programs running on the real computer. And in Mac OS 9 and in Windows, turning on Full Screen Mode will make Mini vMac try to take more of the real computer’s time. To emulate sound properly, Mini vMac needs to get time each and every sixtieth of a second. If Mini vMac gets interrupted now and then for a few sixtieths of a second, then the generated sound will have gaps, and sound absolutely horrible. A program that simply plays music doesn’t have the same problem as Mini vMac, because it can generate the sound well in advance of when it needs to be played. Mini vMac has to play the sound as soon as possible after generating it, or the sound will lag behind the rest of the action on the emulated computer.
The Macintosh Plus has something called the “vertical retrace interrupt”, which occurs once per screen refresh, 60.15 times per second. Each time it increments a low memory variable called Ticks. This provides the main way the Macintosh controls the speed of user interface elements, such as caret blink time, scrolling speed, and window open/close zooming speed.
Mini vMac tries to maintain the correct value of 60.15 times per second, but it enforces a minimum number of instructions executed per tick. If it notices that the emulation is lagging, it will try to sacrifice the smoothness of video.
The Macintosh Plus has a clock (the RTC, for “Real Time Clock”) that counts seconds since midnight January 1, 1904. This count is a four byte value, so it wraps around after February 6, 2040 6:28:15 AM. The RTC keeps this count even when the computer is off, using battery power. The count is loaded from the RTC into low memory after the computer is turned on, and most of the time this copy is used and updated (by incrementing it every second) without referring to the RTC.
Mini vMac sets the emulated RTC from the real computer’s clock 60.15 times a second. This may not affect the count of seconds kept in low memory, so the time displayed on the emulated computer can become inaccurate if its once a second interrupt is missed, such as if the emulation is paused.
One workaround for this problem is to have the Alarm Clock desk accessory open. This apparently forces the count in low memory to be reloaded from the RTC. (I don’t know why. Maybe this is a bug in the desk accessory rather than its intended behavior.) Another alternative is “ClockFix”.
You can set the time of the emulated computer in Mini vMac, such as by using the control panel or the alarm clock desk accessory. This doesn’t change the time of the real computer; the emulated RTC is changed, which then keeps a constant offset from the time of the real computer.
The Macintosh Plus stores various preference settings, such as sound volume, in “Parameter RAM”. This small area of memory is preserved even when the power is off.
Mini vMac emulates the Parameter RAM, but it does not preserve the contents. Every time Mini vMac launches, the Parameter RAM is reset to default values.
These default values are not the same as the default values of a Macintosh Plus. The sound volume is set to 7, instead of 3, if sound is emulated, otherwise it is set to 0. Mouse movement is set to very slow, so that mouse emulation scheme used in Full Screen mode will work nicely, with the cursor moving at the same speed as it does on the real computer. AppleTalk is set to off, since there is nobody to talk to. The Macintosh version will initialize the time zone, latitude, and longitude from the real computer’s information. The Windows version only initializes the time zone. I have some code that can find the time zone for the X version, but I’m not sure how portable it is, so it is disabled.
The Macintosh Plus has a SCSI (Small Computer Standard Interface) port for connecting to peripherals such as hard drives and scanners.
Mini vMac tries to correctly emulate the behavior of the SCSI port with no peripherals attached.
The Macintosh Plus has two serial ports for connecting to peripherals such as modems and printers, and also for connecting to an AppleTalk network.
Mini vMac tries to correctly emulate the behavior of the serial ports with no peripherals attached.
The Macintosh Plus can optionally have installed a “Programmers Switch”, which has two buttons. The Interrupt button will invoke any installed debugger.
The ‘I’ command of the Mini vMac Control Mode presses the Interrupt button of the emulated computer. This action must be confirmed by typing ‘Y’.
The optional “Programmers Switch” for the Macintosh Plus also has a Reset button.
The ‘R’ command of the Mini vMac Control Mode presses the Reset button of the emulated computer. If any disk images are mounted, this action must be confirmed by typing ‘Y’. All unsaved changes are lost.
:
If you find Mini vMac useful, please consider helping the Gryphel Project.
Next - Extras for Mini vMac
:
For a quick start, Download a standard variation, to emulate a Macintosh Plus on OS X, Windows, Linux, and many others.
:
Summary : The Mini vMac emulator collection allows modern computers to run software made for early Macintosh computers, the computers that Apple sold from 1984 to 1996 based upon Motorola's 680x0 microprocessors. Mini vMac is part of the Gryphel Project.
What it looks like. For example, a Macintosh Plus running System 7.5.5:
What users say
Free and Open Source - GPL
Who helped make it
Compiled applications, source code, checksums, and the Variations Service.
How to get started with Mini vMac
Using Mini vMac
Beyond the Getting Started Guide
How to control the user interface
Emulated Hardware Reference
Compile time options
Extra software to be used with Mini vMac
What's new
What's in the source distribution
How to build Mini vMac from the source
Options for developers
By other people
How to compile the Mini vMac extras
About translations of the user interface
Frequently Asked Questions
Check the Gryphel Project News for the latest information.
As you read this documentation, if you notice any mistakes, even as trivial as a misspelled word, please let me know about it. There is a link to the feedback form at the top of every page. You can just say which page and give before and after text - telling me your name or email address is optional.
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Back up to - Gryphel Project
Mini vMac is distributed under the terms of the GNU General Public License, version 2. For more information, see the file COPYING, included with the Mini vMac source distribution.
Mini vMac 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.
vMac is not GPL’d. Mini vMac is distributed under the GPL with the gracious permission of the authors of vMac.
:
Next - Credits
Or skip to - Download Mini vMac
/* STRCNCAT.h Copyright (C) 2017 ArduinoXino, Paul C. 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. */ /* STRing CoNstants for CATalan These strings were translated by ArduinoXino. */ #define kStrAboutTitle "Sobre" #define kStrAboutMessage "Per mostrar informació sobre aquest programa, utilitzeu el comandament ‘A’ del ^p Mode Control. Per coneixer més sobre el Mode Control, vegi “Més Comandaments…” en el menu “Especial” ." #define kStrMoreCommandsTitle "Més comandaments estàn disponibles en el mode de control de ^p ." #define kStrMoreCommandsMessage "Per entrar en el mode de control, mantingueu premut la tecla ‘^c’ . Seguirà en el mode control fins que deixeu anar la tecla ‘^c’ . Polsi ‘H’ en el mode control per llistar els comandaments disponibles." #define kStrTooManyImagesTitle "Massa imatges de disc" #define kStrTooManyImagesMessage "No es poden muntar tantes imatges de disc. Proveu treure alguna." #define kStrImageInUseTitle "Imatge de disc en ús" #define kStrImageInUseMessage "No es pot muntar la imatge disc perquè ja està en ús per una altra aplicació, o ja està oberta a ^p." #define kStrOutOfMemTitle "Memòria insuficient" #define kStrOutOfMemMessage "No hi ha prou memòria disponible per a llançar ^p." #define kStrNoROMTitle "Impossible localitzar la imatge ROM" #define kStrNoROMMessage "No es troba la imatge del fitxer ROM “^r”. Per a més informació, veure: “^w”." #define kStrCorruptedROMTitle "El control checksum de la ROM ha fracassat" #define kStrCorruptedROMMessage "El fitxer d'imatge ROM “^r” pot estar corromput." #define kStrUnsupportedROMTitle "ROM no suportada" #define kStrUnsupportedROMMessage "Fitxer d'imatge ROM “^r” carregat amb èxit, però aquesta versió no està suportada." #define kStrQuitWarningTitle "Si us plau, apagueu l'ordinador emulat abans de sortir." #define kStrQuitWarningMessage "Per forçar ^p sortir, amb risc de corrupció en les imatges de discos muntades, utilitzeu la ordre ‘Q’ del ^p Mode Control. Per coneixer més sobre el Mode Control, vegi “Més Comandaments…” al menu “Especial” ." #define kStrReportAbnormalTitle "Situació anormal" #define kStrReportAbnormalMessage "L'ordinador emulat intenta fer una operació no esperada en un ús normal." #define kStrBadArgTitle "Argument desconegut" #define kStrBadArgMessage "No es va comprendre algun dels arguments de la línia d'ordres, i es va ignorar." #define kStrOpenFailTitle "Obertura fracassada" #define kStrOpenFailMessage "No s'ha pogut obrir la imatge disc." #define kStrNoReadROMTitle "No es pot obrir la imatge ROM" #define kStrNoReadROMMessage "Es va trobar el fitxer d'imatge ROM “^r”, però no es va poder llegir." #define kStrShortROMTitle "Imatge ROM massa curta" #define kStrShortROMMessage "El fitxer d'imatge ROM “^r” és més curt del que hauria de ser." /* state of a boolean option */ #define kStrOn "activat" #define kStrOff "desactivat" /* state of a key */ #define kStrPressed "polsada" #define kStrReleased "deixada anar" /* state of Stopped */ #define kStrStoppedOn kStrOn #define kStrStoppedOff kStrOff /* About Screen */ #define kStrProgramInfo "^v" #define kStrSponsorIs "^v. Aquesta variació està patrocinada per:" #define kStrWorkOfMany "Copyright ^y. ^p conté el treball de moltes persones. Aquesta versió és mantinguda per:" #define kStrForMoreInfo "Per més informació, vegeu:" #define kStrLicense "^p es distribueix sota els termes de la llicència pública GNU, versió 2." #define kStrDisclaimer " ^p es distribueix amb l'esperança de ser útil, però SENSE CAP GARANTIA; fins i tot sense la garantia implícita de MERCANTIBILITAT O ADECUACIÓ PER A UN ÚS PARTICULAR." /* Help Screen */ #define kStrHowToLeaveControl "Per sortir del Mode Control, deixeu anar la tecla ‘^c’ ." #define kStrHowToPickACommand "Sinó, polsi una lletra. Els comandaments disponibles són:" #define kStrCmdAbout "Sobre (informació sobre versió)" #define kStrCmdOpenDiskImage "Obrir imatge de disc..." #define kStrCmdQuit "Sortir" #define kStrCmdSpeedControl "Control de velocitat… (^s)" #define kStrCmdMagnifyToggle "Magnificació (^g)" #define kStrCmdFullScrnToggle "Pantalla completa (^f)" #define kStrCmdCtrlKeyToggle "Toggle emulació tecla ‘^m’ (^k)" #define kStrCmdReset "Restablir" #define kStrCmdInterrupt "Interrompre" #define kStrCmdHelp "Ajuda (mostra aquesta pàgina)" /* Speed Control Screen */ #define kStrCurrentSpeed "Velocitat actual: ^s" #define kStrSpeedAllOut "Màxima velocitat" #define kStrSpeedStopped "Aturar (^h)" #define kStrSpeedBackToggle "Executar en segon pla (^b)" #define kStrSpeedAutoSlowToggle "AutoSlow (^l)" #define kStrSpeedExit "Sortir del control de velocitat" #define kStrNewSpeed "Velocitat: ^s" #define kStrSpeedValueAllOut kStrSpeedAllOut #define kStrNewStopped "Aturar está ^h." #define kStrNewRunInBack "Executar en segon pla està ^b." #define kStrNewAutoSlow "AutoSlow està ^l." #define kStrNewMagnify "Magnificació està ^g." #define kStrNewFullScreen "Pantalla completa està ^f." #define kStrNewCntrlKey "Emulat tecla ‘^m’ ^k." #define kStrCmdCancel "cancel·lar" #define kStrConfirmReset "Està segur de voler reiniciar l'ordinador emulat? Els canvis no salvats es perdran, i hi ha risc de corrupció en les imatges de discos muntades. Premeu una tecla:" #define kStrResetDo "restablir" #define kStrResetNo kStrCmdCancel #define kStrHaveReset "S'ha reiniciat l'ordinador emulat" #define kStrCancelledReset "Reset cancel·lat" #define kStrConfirmInterrupt "Està segur de voler interrompre l'ordinador emulat? Això invocarà qualsevol debugger instal·lat. Premeu una tecla:" #define kStrInterruptDo "interrompre" #define kStrInterruptNo kStrCmdCancel #define kStrHaveInterrupted "S'ha interromput l'ordinador emulat" #define kStrCancelledInterrupt "Interrupció cancel·lada" #define kStrConfirmQuit "Està segur de desitjar sortir de ^p? Hauria apagar l'ordinador emulat abans de sortir, per evitar corrupcions en les imatges de discos muntades. Premeu una tecla:" #define kStrQuitDo "sortir" #define kStrQuitNo kStrCmdCancel #define kStrCancelledQuit "Sortida cancel·lada" #define kStrModeConfirmReset "Mode Control : Confirma reset" #define kStrModeConfirmInterrupt "Mode Control : Confirma Interrupció" #define kStrModeConfirmQuit "Mode Control : Confirma sortida" #define kStrModeSpeedControl "Mode Control : Control de velocitat" #define kStrModeControlBase "Mode Control (Premi 'H' per a l'ajuda)" #define kStrModeControlHelp "Mode Control" #define kStrModeMessage "Missatge (Premi ‘C’ per continuar)" #define kStrMenuFile "Fitxer" #define kStrMenuSpecial "Especial" #define kStrMenuHelp "Ajuda" #define kStrMenuItemAbout "Sobre ^p" #define kStrMenuItemOpen "Obrir imatge de disc" #define kStrMenuItemQuit "Sortir" #define kStrMenuItemMore "Méss comandaments" #define kStrAppMenuItemHide "Ocultar ^p" #define kStrAppMenuItemHideOthers "Ocultar la resta" #define kStrAppMenuItemShowAll "Mostrar-ho tot" #define kStrAppMenuItemQuit "Sortir de ^p" #define kStrCmdCopyOptions "Copiar variation options" #define kStrHaveCopiedOptions "Variation options copiat"
/* STRCNCZE.h Copyright (C) 2017 Anonymous, Paul C. 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. */ /* STRing CoNstants for CZEch These strings were translated by Anonymous. */ #define kStrAboutTitle "O programu" #define kStrAboutMessage "Pro zobrazení informací o programu, použijte příkaz ‘A’ v ovládacím módu ^p. Pro informace o ovládacím módu, podívejte se do “Více příkazů…” v menu “Další možnosti”." #define kStrMoreCommandsTitle "V kontrolním módu ^p jsou dostupné další příkazy." #define kStrMoreCommandsMessage "pro použití ovládacího módu stiskněte a držte ‘^c’. V ovládacím módu zůstanete, dokud nepustíte ‘^c’. stiskněte ‘H’ v ovládacím módu pro zobrazení dostupných příkazů." #define kStrTooManyImagesTitle "Příliš mnoho obrazů disků" #define kStrTooManyImagesMessage "Tolik obrazů disků připojit nezvládnu. zkuste jeden odpojit." #define kStrImageInUseTitle "Obraz disku je používán" #define kStrImageInUseMessage "Nemohu připojit obraz disku, protože je používán jinou aplikací nebo otevřen v ^p." #define kStrOutOfMemTitle "Nedostatek paměti" #define kStrOutOfMemMessage "Pro suštění ^p není dostatek paměti." #define kStrNoROMTitle "ROM nenalezen" #define kStrNoROMMessage "Nemohu najít soubor ROM “^r”. Pro více informací se podívejte na: “^w”." #define kStrCorruptedROMTitle "Kontrolní součet ROMu selhal" #define kStrCorruptedROMMessage "ROM “^r” může být poškozen." #define kStrUnsupportedROMTitle "Nepodporovaný ROM" #define kStrUnsupportedROMMessage "ROM “^r” se úspěšně načetl, ale s touto verzí ROMu neumím pracovat." #define kStrQuitWarningTitle "Prosím vypněte emulovaný počítač před zavřením." #define kStrQuitWarningMessage "Pro vynucení zavření ^p (riskujete poškození připojených disků),použijte příkaz ‘Q’ ovládacího módu ^p. Pro informace o ovládacím módu, podívejte se do “Více příkazů…” v menu “Další možnosti”." #define kStrReportAbnormalTitle "Abnormální situace" #define kStrReportAbnormalMessage "Emulovaný počíteč se pokouší o operaci, která nebyla očekávána při běžném používání." #define kStrBadArgTitle "Neznámý argument" #define kStrBadArgMessage "Nerozumím jednomu z příkazových argumentů, budu ho ignorovat." #define kStrOpenFailTitle "Otevření selhalo" #define kStrOpenFailMessage "Neopdařilo se mi otevřít obraz disku." #define kStrNoReadROMTitle "Nečitelný ROM" #define kStrNoReadROMMessage "Našel jsem ROM “^r”, ale nemohu ho přečíst." #define kStrShortROMTitle "Příliš krátký ROM" #define kStrShortROMMessage "ROM “^r” je kratší než obvykle." /* state of a boolean option */ #define kStrOn "on" #define kStrOff "off" /* state of a key */ #define kStrPressed "stisknuto" #define kStrReleased "puštěno" /* state of Stopped */ #define kStrStoppedOn kStrOn #define kStrStoppedOff kStrOff /* About Screen */ #define kStrProgramInfo "^v" #define kStrSponsorIs "^v. Tuto variaci sponzoruje:" #define kStrWorkOfMany "Copyright ^y. ^p Obsahuje práci mnoha lidí. Tuto verzi udržuje:" #define kStrForMoreInfo "Pro více informací jděte na:" #define kStrLicense "^p je distribuován poj licencí GNU GPL, verze 2." #define kStrDisclaimer " ^p je distribuován s nadějí, že ude používán, ale BEZ JAKÉKOLIV ZÁRUKY; též bez implikované záruky OBCHODOVATELNOSTI nebo VHODNOSTI PRO URČITÝ ÚČEL." /* Help Screen */ #define kStrHowToLeaveControl "Pro opuštění ovládácího módu pusťte ‘^c’." #define kStrHowToPickACommand "jinak stiskněte písmeno. Dostupné příkazy jsou:" #define kStrCmdAbout "O programu (informace o verzi)" #define kStrCmdOpenDiskImage "Otevřít obraz disku" #define kStrCmdQuit "Zavřít" #define kStrCmdSpeedControl "Ovládání rychlosti… (^s)" #define kStrCmdMagnifyToggle "Přiblížení (^g)" #define kStrCmdFullScrnToggle "Celá obrazovka (^f)" #define kStrCmdCtrlKeyToggle "Přepínání emulovaného ‘^m’ (^k)" #define kStrCmdReset "Reset" #define kStrCmdInterrupt "Vyrušit" #define kStrCmdHelp "Pomoc (ukázát tuto stránku)" /* Speed Control Screen */ #define kStrCurrentSpeed "Současná rychlost: ^s" #define kStrSpeedAllOut "Maximum" #define kStrSpeedStopped "zastavit (^h)" #define kStrSpeedBackToggle "běžět v pozadí (^b)" #define kStrSpeedAutoSlowToggle "automatické zpomalení (^l)" #define kStrSpeedExit "Zavřít ovládání rychlosti" #define kStrNewSpeed "Rychlost: ^s" #define kStrSpeedValueAllOut kStrSpeedAllOut #define kStrNewStopped "Je zastaven: ^h." #define kStrNewRunInBack "Běží na pozadí: ^b." #define kStrNewAutoSlow "Je automaticky zpomalen: ^l." #define kStrNewMagnify "Přiblížení: ^g." #define kStrNewFullScreen "Na celou obrazovku: ^f." #define kStrNewCntrlKey "Emulovaný ‘^m’: ^k." #define kStrCmdCancel "Storno" #define kStrConfirmReset "Opravdu chcete resetovat emulovaný počítač? Ztratíte neuložené změny a riskujete poškození připojených obrazů disků. Stiskněte písmeno:" #define kStrResetDo "resetovat" #define kStrResetNo kStrCmdCancel #define kStrHaveReset "Resetoval jsem emulovaný počítač" #define kStrCancelledReset "Resetování zrušeno" #define kStrConfirmInterrupt "Opravdu chcete vyrušit emulovaný počítač? Spustí se nainstalovaný debugger. Stiskněte písmeno:" #define kStrInterruptDo "vyrušit" #define kStrInterruptNo kStrCmdCancel #define kStrHaveInterrupted "Vyrušil jsem emulovaný počítač" #define kStrCancelledInterrupt "Vyrušení zrušeno" #define kStrConfirmQuit "Opravdu chcete zavřít ^p? Měli byste vypnout emulovaný počítač před vypnutím pro zabránění poškození připojených obrazů disků. Stiskněte písmeno:" #define kStrQuitDo "odejít" #define kStrQuitNo kStrCmdCancel #define kStrCancelledQuit "Zavření zrušeno" #define kStrModeConfirmReset " : Confirm Reset" #define kStrModeConfirmInterrupt "ovládácí mód : Potvrdit vyrušení" #define kStrModeConfirmQuit "ovládácí mód : Potvrdit zavření" #define kStrModeSpeedControl "ovládácí mód : Ovládání rychlosti" #define kStrModeControlBase "ovládácí mód (stiskněte ‘H’ pro pomoc) " #define kStrModeControlHelp "ovládácí mód" #define kStrModeMessage "Zpráva (Stiskněte ‘C’ pro pokračování)" #define kStrMenuFile "Soubor" #define kStrMenuSpecial "Další možnosti" #define kStrMenuHelp "Pomoc" #define kStrMenuItemAbout "O ^p" #define kStrMenuItemOpen "Otevřít obraz disku" #define kStrMenuItemQuit "Odejít" #define kStrMenuItemMore "Více příkazů" #define kStrAppMenuItemHide "Skrýt ^p" #define kStrAppMenuItemHideOthers "Skrýt ostatní" #define kStrAppMenuItemShowAll "Zobrazit vše" #define kStrAppMenuItemQuit "Ukončit ^p" #define kStrCmdCopyOptions "Kopírovat variation options" #define kStrHaveCopiedOptions "Variation options zkopírovány"
/* STRCNDUT.h Copyright (C) 2006 Luc Pauwels, Paul C. 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. */ /* STRing CoNstants for DUTch These strings were translated by Luc Pauwels. */ #define kStrAboutTitle "Over ^p" #define kStrAboutMessage "Gebruik het ‘A’-commando van de ^p controlemodus om meer informatie over deze applicatie te tonen. Om meer te weten te komen over de controlemodus, zie “Meer Commando’s…” in het “Speciaal” menu." #define kStrMoreCommandsTitle "Meer commando’s zijn beschikbaar in de ^p controlemodus." #define kStrMoreCommandsMessage "Om naar de controlemodus te gaan, hou de ‘^c’ toets ingedrukt. Je blijft in de controlemodus zolang je de ‘^c’ toets ingedrukt houdt. Type ‘H’ in de controlemodus om een lijst van beschikbare commando’s te zien." #define kStrTooManyImagesTitle "Teveel schijfkopiebestanden" #define kStrTooManyImagesMessage "Het maximaal aantal schijfkopiebestanden is in gebruik. Probeer er één te verwijderen." #define kStrImageInUseTitle "Schijfkopiebestand in gebruik" #define kStrImageInUseMessage "Ik kan het schijfkopiebestand niet openen omdat het al in gebruik is door een andere applicatie of omdat het al geopend is in ^p." #define kStrOutOfMemTitle "Niet genoeg geheugen" #define kStrOutOfMemMessage "Er is niet genoeg geheugen beschikbaar om ^p te openen." #define kStrNoROMTitle "ROM bestand niet gevonden" #define kStrNoROMMessage "Ik kan het ROM bestand “^r” niet vinden. Voor meer informatie, zie “^w”." #define kStrCorruptedROMTitle "ROM controlegetal verkeerd" #define kStrCorruptedROMMessage "Het ROM bestand “^r” is mogelijk beschadigd." #define kStrUnsupportedROMTitle "Niet ondersteunde ROM" #define kStrUnsupportedROMMessage "Het ROM bestand “^r” werd succesvol ingeladen, maar ik ondersteun deze ROM versie niet." #define kStrQuitWarningTitle "Zet de geëmuleerde computer uit vooraleer de applicatie te stoppen." #define kStrQuitWarningMessage "Om ^p geforceerd te stoppen, met het risico dat het gebruikte schijfkopiebestand beschadigd geraakt, gebruik het ‘Q’ commando van de ^p controlemodus. Om meer te weten te komen over de controlemodus, zie “Meer Commando’s” in het “Speciaal” menu." #define kStrReportAbnormalTitle "Abnormale situatie" #define kStrReportAbnormalMessage "De geëmuleerde computer probeert een operatie uit te voeren die onder normale omstandigheden niet kan voorkomen." #define kStrBadArgTitle "Onbekend argument" #define kStrBadArgMessage "Ik herkende één van de commandolijn-argumenten niet en heb het genegeerd." #define kStrOpenFailTitle "Open operatie gefaald" #define kStrOpenFailMessage "Ik kon het schijfkopiebestand niet openen." #define kStrNoReadROMTitle "Het ROM bestand kan niet gelezen worden" #define kStrNoReadROMMessage "Ik kon het ROM bestand “^r”vinden, maar ik kon het niet lezen." #define kStrShortROMTitle "ROM bestand te kort" #define kStrShortROMMessage "Het ROM bestand “^r” is korter dan verwacht." /* state of a boolean option */ #define kStrOn "aan" #define kStrOff "uit" /* state of a key */ #define kStrPressed "ingedrukt" #define kStrReleased "losgelaten" /* state of Stopped */ #define kStrStoppedOn kStrOn #define kStrStoppedOff kStrOff /* About Screen */ #define kStrProgramInfo "^v" #define kStrSponsorIs "^v. This variation is made for:" #define kStrWorkOfMany "Copyright ^y. ^p is het werk van velen. Deze versie wordt onderhouden door:" #define kStrForMoreInfo "Voor meer informatie, zie:" #define kStrLicense "^p wordt verspreid onder de voorwaarden van de GNU Public License, versie 2." #define kStrDisclaimer " ^p wordt verspreid in de hoop dat het bruikbaar is, maar ZONDER ENIGE GARANTIE, zelfs zonder impliciete garanties van VERKOOPBAARHEID noch BRUIKBAARHEID VOOR EEN BEPAALD DOELEINDE." /* Help Screen */ #define kStrHowToLeaveControl "Laat de ‘^c’ toets los om de controlemodus te verlaten." #define kStrHowToPickACommand "Zoniet, typ een letter. De beschikbare commando’s zijn:" #define kStrCmdAbout "Over ^p (informatie over deze versie)" #define kStrCmdOpenDiskImage "Open schijfkopiebstand…" #define kStrCmdQuit "Stop" #define kStrCmdSpeedControl "Snelheidscontrole… (^s)" #define kStrCmdMagnifyToggle "Schermvergroting (^g)" #define kStrCmdFullScrnToggle "Gebruik het volledig scherm (^f)" #define kStrCmdCtrlKeyToggle "Geëmuleerde ‘^m’ toets (^k)" #define kStrCmdReset "Herstart" #define kStrCmdInterrupt "Onderbreek" #define kStrCmdHelp "Hulp (toon deze pagina)" /* Speed Control Screen */ #define kStrCurrentSpeed "Huidige snelheid: ^s" #define kStrSpeedAllOut "Zo snel mogelijk" #define kStrSpeedStopped "Stopschakelaar (^h)" #define kStrSpeedBackToggle "Schakelaar om in de achtergrond te draaien (^b)" #define kStrSpeedAutoSlowToggle "AutoSlow (^l)" #define kStrSpeedExit "Verlaat Snelheidscontrole" #define kStrNewSpeed "Snelheid: ^s" #define kStrSpeedValueAllOut kStrSpeedAllOut #define kStrNewStopped "Stopschakelaar is ^h." #define kStrNewRunInBack "In de achtergrond draaien is ^b." #define kStrNewAutoSlow "AutoSlow is ^l." #define kStrNewMagnify "Schermvergroting is ^g." #define kStrNewFullScreen "Volledig scherm gebruiken is ^f." #define kStrNewCntrlKey "Geëmuleerde ‘^m’ toets ^k." #define kStrCmdCancel "annuleer" #define kStrConfirmReset "Bent u er zeker van dat u de geëmuleerde computer wilt herstarten? Werk dat niet bewaard werd zal verloren gaan, en er bestaat een kans dat het gebruikte schijfkopiebestand beschadigd geraakt. Typ een letter:" #define kStrResetDo "herstart" #define kStrResetNo kStrCmdCancel #define kStrHaveReset "De geëmuleerde computer werd herstart" #define kStrCancelledReset "Herstart werd geannuleerd" #define kStrConfirmInterrupt "Bent u er zeker van dat u de geëmuleerde computer wilt onderbreken? Dit zal de eventueel geïnstalleerde debugger activeren. Typ een letter:" #define kStrInterruptDo "onderbreken" #define kStrInterruptNo kStrCmdCancel #define kStrHaveInterrupted "De geëmuleerde computer werd onderbroken" #define kStrCancelledInterrupt "Onderbreking geannuleerd" #define kStrConfirmQuit "Bent u er zeker van dat u wilt ^p wilt stoppen? U zou eerst de geëmuleerde computer moeten uitzetten alvorens te stoppen om beschadiging van het gebruikte schijfkopiebestand te vermijden. Typ een letter:" #define kStrQuitDo "stop" #define kStrQuitNo kStrCmdCancel #define kStrCancelledQuit "Stoppen geannuleerd" #define kStrModeConfirmReset "Controlemodus : Bevesting herstarten" #define kStrModeConfirmInterrupt "Controlemodus : Bevesting onderbreking" #define kStrModeConfirmQuit "Controlemodus : Bevesting stoppen" #define kStrModeSpeedControl "Controlemodus : Snelheidscontrole" #define kStrModeControlBase "Controlemodus (Typ ‘H’ voor meer hulp)" #define kStrModeControlHelp "Controlemodus" #define kStrModeMessage "Boodschap (Typ ‘C’ om verder te gaan)" #define kStrMenuFile "Archief" #define kStrMenuSpecial "Speciaal" #define kStrMenuHelp "Hulp" #define kStrMenuItemAbout "Over ^p" #define kStrMenuItemOpen "Open schijfkopiebestand" #define kStrMenuItemQuit "Stop" #define kStrMenuItemMore "Meer Commando’s" #define kStrAppMenuItemHide "Verberg ^p" #define kStrAppMenuItemHideOthers "Verberg andere" #define kStrAppMenuItemShowAll "Toon alles" #define kStrAppMenuItemQuit "Stop ^p" #define kStrCmdCopyOptions "Kopieer variation options" #define kStrHaveCopiedOptions "Variation options gekopieerd"
/* STRCNENG.h Copyright (C) 2006 Paul C. Pratt, Pierre Lemieux 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. */ /* STRing CoNstants for ENGlish Pierre Lemieux provided some corrections and suggestions. */ #define kStrAboutTitle "About" #define kStrAboutMessage "To display information about this program, use the ‘A’ command of the ^p Control Mode. To learn about the Control Mode, see the “More Commands…” item in the “Special” menu." #define kStrMoreCommandsTitle "More commands are available in the ^p Control Mode." #define kStrMoreCommandsMessage "To enter the Control Mode, press and hold down the ‘^c’ key. You will remain in the Control Mode until you release the ‘^c’ key. Type ‘H’ in the Control Mode to list available commands." #define kStrTooManyImagesTitle "Too many Disk Images" #define kStrTooManyImagesMessage "I can not mount that many Disk Images. Try ejecting one." #define kStrImageInUseTitle "Disk Image in use" #define kStrImageInUseMessage "I can not mount the Disk Image because it is already in use by another application or already open in ^p." #define kStrOutOfMemTitle "Not enough Memory" #define kStrOutOfMemMessage "There is not enough memory available to launch ^p." #define kStrNoROMTitle "Unable to locate ROM image" #define kStrNoROMMessage "I can not find the ROM image file “^r”. For more information, see: “^w”." #define kStrCorruptedROMTitle "ROM checksum failed" #define kStrCorruptedROMMessage "The ROM image file “^r” may be corrupted." #define kStrUnsupportedROMTitle "Unsupported ROM" #define kStrUnsupportedROMMessage "The ROM image file “^r” loaded successfully, but I don’t support this ROM version." #define kStrQuitWarningTitle "Please shut down the emulated computer before quitting." #define kStrQuitWarningMessage "To force ^p to quit, at the risk of corrupting the mounted disk image files, use the ‘Q’ command of the ^p Control Mode. To learn about the Control Mode, see the “More Commands…” item in the “Special” menu." #define kStrReportAbnormalTitle "Abnormal Situation" #define kStrReportAbnormalMessage "The emulated computer is attempting an operation that wasn’t expected to happen in normal use." #define kStrBadArgTitle "Unknown argument" #define kStrBadArgMessage "I did not understand one of the command line arguments, and ignored it." #define kStrOpenFailTitle "Open failed" #define kStrOpenFailMessage "I could not open the disk image." #define kStrNoReadROMTitle "Unable to read ROM image" #define kStrNoReadROMMessage "I found the ROM image file “^r”, but I can not read it." #define kStrShortROMTitle "ROM image too short" #define kStrShortROMMessage "The ROM image file “^r” is shorter than it should be." /* state of a boolean option */ #define kStrOn "on" #define kStrOff "off" /* state of a key */ #define kStrPressed "pressed" #define kStrReleased "released" /* state of Stopped */ #define kStrStoppedOn kStrOn #define kStrStoppedOff kStrOff /* About Screen */ #define kStrProgramInfo "^v" #define kStrSponsorIs "^v. This variation is made for:" #define kStrWorkOfMany "Copyright ^y. ^p contains the work of many people. This version is maintained by:" #define kStrForMoreInfo "For more information, see:" #define kStrLicense "^p is distributed under the terms of the GNU Public License, version 2." #define kStrDisclaimer " ^p 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." /* Help Screen */ #define kStrHowToLeaveControl "To leave the Control Mode, release the ‘^c’ key." #define kStrHowToPickACommand "Otherwise, type a letter. Available commands are:" #define kStrCmdAbout "About (version information)" #define kStrCmdOpenDiskImage "Open disk image…" #define kStrCmdQuit "Quit" #define kStrCmdSpeedControl "Speed control… (^s)" #define kStrCmdMagnifyToggle "Magnify toggle (^g)" #define kStrCmdFullScrnToggle "Full screen toggle (^f)" #define kStrCmdCtrlKeyToggle "emulated ‘^m’ Key toggle (^k)" #define kStrCmdReset "Reset" #define kStrCmdInterrupt "Interrupt" #define kStrCmdHelp "Help (show this page)" /* Speed Control Screen */ #define kStrCurrentSpeed "Current speed: ^s" #define kStrSpeedAllOut "All out" #define kStrSpeedStopped "stopped toggle (^h)" #define kStrSpeedBackToggle "run in Background toggle (^b)" #define kStrSpeedAutoSlowToggle "autosloW toggle (^l)" #define kStrSpeedExit "Exit speed control" #define kStrNewSpeed "Speed: ^s" #define kStrSpeedValueAllOut kStrSpeedAllOut #define kStrNewStopped "Stopped is ^h." #define kStrNewRunInBack "Run in background is ^b." #define kStrNewAutoSlow "AutoSlow is ^l." #define kStrNewMagnify "Magnify is ^g." #define kStrNewFullScreen "Full Screen is ^f." #define kStrNewCntrlKey "Emulated ‘^m’ key ^k." #define kStrCmdCancel "cancel" #define kStrConfirmReset "Are you sure you want to reset the emulated computer? Unsaved changes will be lost, and there is a risk of corrupting the mounted disk image files. Type a letter:" #define kStrResetDo "reset" #define kStrResetNo kStrCmdCancel #define kStrHaveReset "Have reset the emulated computer" #define kStrCancelledReset "Reset cancelled" #define kStrConfirmInterrupt "Are you sure you want to interrupt the emulated computer? This will invoke any installed debugger. Type a letter:" #define kStrInterruptDo "interrupt" #define kStrInterruptNo kStrCmdCancel #define kStrHaveInterrupted "Have interrupted the emulated computer" #define kStrCancelledInterrupt "Interrupt cancelled" #define kStrConfirmQuit "Are you sure you want to quit ^p? You should shut down the emulated computer before quitting to prevent corrupting the mounted disk image files. Type a letter:" #define kStrQuitDo "quit" #define kStrQuitNo kStrCmdCancel #define kStrCancelledQuit "Quit cancelled" #define kStrModeConfirmReset "Control Mode : Confirm Reset" #define kStrModeConfirmInterrupt "Control Mode : Confirm Interrupt" #define kStrModeConfirmQuit "Control Mode : Confirm Quit" #define kStrModeSpeedControl "Control Mode : Speed Control" #define kStrModeControlBase "Control Mode (Type ‘H’ for help)" #define kStrModeControlHelp "Control Mode" #define kStrModeMessage "Message (Type ‘C’ to continue)" #define kStrMenuFile "File" #define kStrMenuSpecial "Special" #define kStrMenuHelp "Help" #define kStrMenuItemAbout "About ^p" #define kStrMenuItemOpen "Open Disk Image" #define kStrMenuItemQuit "Quit" #define kStrMenuItemMore "More Commands" #define kStrAppMenuItemHide "Hide ^p" #define kStrAppMenuItemHideOthers "Hide Others" #define kStrAppMenuItemShowAll "Show All" #define kStrAppMenuItemQuit "Quit ^p" #define kStrCmdCopyOptions "copy variation options" #define kStrHaveCopiedOptions "Variation options copied"
/* STRCNFRE.h Copyright (C) 2006 Pierre Lemieux, Gaël Coupé, Paul C. 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. */ /* STRing CoNstants for FREnch These strings were translated by Pierre Lemieux, and an earlier version of them was proofread by Gaël Coupé. */ #define kStrAboutTitle "À propos" #define kStrAboutMessage "Pour afficher des informations sur ce programme, utilisez la commande A du mode commande de ^p. Pour en savoir plus sur le mode commande, sélectionnez l’article Autres commandes… du menu Spécial." #define kStrMoreCommandsTitle "D’autres commandes sont disponibles dans le mode commande de ^p." #define kStrMoreCommandsMessage "Pour accéder au mode commande, maintenez la touche ^c enfoncée. Vous allez demeurer en mode commande jusqu’à ce que vous relâchiez la touche ^c. Tapez H en mode commande pour afficher la liste des commandes disponibles." #define kStrTooManyImagesTitle "Images disques trop nombreuses." #define kStrTooManyImagesMessage "Je ne peux pas ouvrir un aussi grand nombre d’images disques. Veuillez en éjecter une." #define kStrImageInUseTitle "Image disque déjà utilisée." #define kStrImageInUseMessage "Je ne peux pas ouvrir l’image disque, car elle est déjà utilisée par une autre application ou déjà ouverte dans ^p." #define kStrOutOfMemTitle "Mémoire insuffisante." #define kStrOutOfMemMessage "Il n’y a plus assez de mémoire disponible pour lancer ^p" #define kStrNoROMTitle "ROM introuvable." #define kStrNoROMMessage "Je n’arrive pas à trouver le fichier image de la ROM intitulé “^r”. Pour plus d’information, voir : “^w”." #define kStrCorruptedROMTitle "Somme de contrôle incorrecte." #define kStrCorruptedROMMessage "Le fichier image de la ROM intitulé “^r” est peut-être endommagé." #define kStrUnsupportedROMTitle "ROM non supportée." #define kStrUnsupportedROMMessage "Le chargement du fichier image de la ROM intitulé “^r” a réussi, mais je ne supporte pas cette version de la ROM." #define kStrQuitWarningTitle "Veuillez éteindre l’ordinateur virtuel avant de quitter." #define kStrQuitWarningMessage "Pour forcer ^p à quitter, au risque d’endommager les images disques ouvertes, tapez Q en mode commande. Pour en savoir plus sur le mode commande de ^p, sélectionnez l’article Autres commandes… du menu Spécial." #define kStrReportAbnormalTitle "Situation anormale." #define kStrReportAbnormalMessage "L’ordinateur virtuel tente d’effectuer une opération qui n’était pas prévue dans le cadre d’un usage normal." #define kStrBadArgTitle "Argument inconnu." #define kStrBadArgMessage "J’ai ignoré l’un des arguments de la ligne de commande, que je ne comprenais pas." #define kStrOpenFailTitle "Tentative d’ouverture infructueuse." #define kStrOpenFailMessage "Je n’ai pas réussi à ouvrir l’image disque." #define kStrNoReadROMTitle "ROM illisible." #define kStrNoReadROMMessage "J’ai bien trouvé le fichier image de la ROM intitulé “^r”, mais je n’arrive pas à le lire." #define kStrShortROMTitle "ROM trop courte." #define kStrShortROMMessage "Le fichier image de la ROM intitulé “^r” est plus court qu’il ne le devrait." /* state of a boolean option */ #define kStrOn "activé" #define kStrOff "désactivé" /* state of a key */ #define kStrPressed "enfoncée" #define kStrReleased "relâchée" /* state of Stopped */ #define kStrStoppedOn "activée" #define kStrStoppedOff "désactivée" /* About Screen */ #define kStrProgramInfo "^v" #define kStrSponsorIs "^v. This variation is made for:" #define kStrWorkOfMany "copyright ^y. ^p est le fruit du travail de nombreuses personnes. La maintenance de cette version est assurée par :" #define kStrForMoreInfo "Pour de plus amples informations, voir :" #define kStrLicense "^p est distribué au titre des clauses de la Licence publique générale GNU, version 2." #define kStrDisclaimer " ^p est distribué dans l’espoir qu’il sera utile, mais SANS AUCUNE GARANTIE, sans même une garantie implicite de COMMERCIABILITÉ ou DE CONFORMITÉ À UNE UTILISATION PARTICULIÈRE." /* Help Screen */ #define kStrHowToLeaveControl "Pour quitter le mode commande, relâchez la touche ^c." #define kStrHowToPickACommand "Sinon, choisissez l’une des commandes ci-dessous en tapant la lettre correspondante :" #define kStrCmdAbout "À propos (de cette version du logiciel)" #define kStrCmdOpenDiskImage "Ouvrir une image disque…" #define kStrCmdQuit "Quitter" #define kStrCmdSpeedControl "Réglage de la vitesse… (^s)" #define kStrCmdMagnifyToggle "Agrandissement (^g)" #define kStrCmdFullScrnToggle "Plein écran (^f)" #define kStrCmdCtrlKeyToggle "Touche ^m virtuelle (^k)" #define kStrCmdReset "Réinitialisation" #define kStrCmdInterrupt "Interruption" #define kStrCmdHelp "Aide (affiche cette page)" /* Speed Control Screen */ #define kStrCurrentSpeed "Vitesse courante : ^s" #define kStrSpeedAllOut "Vitesse maximale" #define kStrSpeedStopped "Pause (^h)" #define kStrSpeedBackToggle "Fonctionnement en arrière-plan (^b)" #define kStrSpeedAutoSlowToggle "AutoSlow (^l)" #define kStrSpeedExit "Quitter cette page" #define kStrNewSpeed "Vitesse : ^s" #define kStrSpeedValueAllOut "maximale" #define kStrNewStopped "Pause ^h." #define kStrNewRunInBack "Fonctionnement en arrière-plan ^b." #define kStrNewAutoSlow "AutoSlow ^l." #define kStrNewMagnify "Agrandissement ^g." #define kStrNewFullScreen "Mode plein écran ^f." #define kStrNewCntrlKey "Touche ^m virtuelle ^k." #define kStrCmdCancel "Annuler" #define kStrConfirmReset "Souhaitez-vous vraiment réinitialiser l’ordinateur virtuel ? Vous allez perdre les modifications non enregistrées et vous risquez d’endommager les images disques ouvertes." #define kStrResetDo "Réinitialiser" #define kStrResetNo kStrCmdCancel #define kStrHaveReset "Vous avez réinitialisé l’ordinateur virtuel." #define kStrCancelledReset "Réinitialisation annulée." #define kStrConfirmInterrupt "Souhaitez-vous vraiment interrompre l’ordinateur virtuel ? Cela va déclencher le débogueur (s’il y en a un d’installé)." #define kStrInterruptDo "Interrompre" #define kStrInterruptNo kStrCmdCancel #define kStrHaveInterrupted "Vous avez interrompu l’ordinateur virtuel." #define kStrCancelledInterrupt "Interruption annulée." #define kStrConfirmQuit "Souhaitez-vous vraiment quitter ^p ? Vous devriez éteindre l’ordinateur virtuel avant de quitter, pour éviter d’endommager les images disques ouvertes." #define kStrQuitDo kStrCmdQuit #define kStrQuitNo kStrCmdCancel #define kStrCancelledQuit "Commande Quitter annulée." #define kStrModeConfirmReset "Mode commande : confirmation de la réinitialisation" #define kStrModeConfirmInterrupt "Mode commande : confirmation de l’interruption" #define kStrModeConfirmQuit "Mode commande : confirmation de la commande Quitter" #define kStrModeSpeedControl "Mode commande : réglage de la vitesse" #define kStrModeControlBase "Mode commande (Tapez H pour afficher l’aide.)" #define kStrModeControlHelp "Mode commande" #define kStrModeMessage "Message (Tapez C pour continuer.)" #define kStrMenuFile "Fichier" #define kStrMenuSpecial "Spécial" #define kStrMenuHelp "Aide" #define kStrMenuItemAbout "À propos de ^p" #define kStrMenuItemOpen "Ouvrir une image disque" #define kStrMenuItemQuit "Quitter" #define kStrMenuItemMore "Autres commandes" #define kStrAppMenuItemHide "Masquer ^p" #define kStrAppMenuItemHideOthers "Masquer les autres" #define kStrAppMenuItemShowAll "Tout afficher" #define kStrAppMenuItemQuit "Quitter ^p" #define kStrCntrlKyName "Contrôle" #define kStrCmdCopyOptions "Copier variation options" #define kStrHaveCopiedOptions "Variation options copiées"
/* STRCNGER.h Copyright (C) 2006 Paul C. Pratt, Detlef Kahner 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. */ /* STRing CoNstants for GERman Translated by Detlef Kahner */ #define kStrAboutTitle "Über ^p" #define kStrAboutMessage "Mehr Informationen zu ^p erhalten Sie über die Taste ‘A’ im Kontrollmodus. Informationen zum Kontrollmodus erhalten Sie über den Menübefehl “Mehr Befehle…” im Spezialmenü." #define kStrMoreCommandsTitle "Mehr Befehle sind im Kontrollmodus abrufbar." #define kStrMoreCommandsMessage "Um den Kontrollmodus von ^p aufzurufen, drücken Sie die ‘^c’-Taste und lassen diese gedrückt. Sie verbleiben im Kontrollmodus, solange Sie diese Taste gedrückt halten. Eine Liste verfügbarer Befehle erhalten Sie währenddessen durch Drücken der Taste ‘H’." #define kStrTooManyImagesTitle "Zuviele Disketten-Images." #define kStrTooManyImagesMessage "Soviele Images können nicht gemountet sein. Bitte werfen Sie einige aus." #define kStrImageInUseTitle "Disketten-Image bereits in Gebrauch." #define kStrImageInUseMessage "Disketten-Image kann nicht gemountet werden, weil es entweder bereits in ^p gemountet ist oder von einem anderen Programm (z. B. dem Finder) verwendet wird." #define kStrOutOfMemTitle "Zuwenig Arbeitsspeicher." #define kStrOutOfMemMessage "Es ist nicht genügend Arbeitsspeicher vorhanden, um ^p zu starten." #define kStrNoROMTitle "ROM nicht gefunden." #define kStrNoROMMessage "Das ROM namens “^r” kann nicht gefunden werden. Mehr Informationen hier: “^w”" #define kStrCorruptedROMTitle "ROM-Prüfsumme fehlgeschlagen." #define kStrCorruptedROMMessage "Das ROM “^r” ist möglicherweise beschädigt." #define kStrUnsupportedROMTitle "ROM wird nicht unterstützt." #define kStrUnsupportedROMMessage "Das ROM “^r” wurde erfolgreich geladen, aber diese Version von ^p unterstützt es nicht." #define kStrQuitWarningTitle "Bitte fahren Sie das emulierte MacOS herunter, bevor Sie ^p beenden." #define kStrQuitWarningMessage "Um ^p sofort zu beenden, aber Beschädigungen an den gemounteten Disketten-Images in Kauf zu nehmen, drücken Sie die Taste ‘Q’ innerhalb des Kontrollmodus. Zugriff zum Kontrollmodus von ^p erhalten Sie, indem Sie die ‘^c’-Taste gedrückt halten." #define kStrReportAbnormalTitle "Unerwartete Situation" #define kStrReportAbnormalMessage "Der emulierte Rechner hat versucht, eine Operation durchzuführen, die im Rahmen eines normalen Gebrauches nicht vorgesehen war." #define kStrBadArgTitle "Unbekannter Befehl." #define kStrBadArgMessage "Befehlseingabe nicht verstanden und deshalb ignoriert." #define kStrOpenFailTitle "Öffnen fehlgeschlagen." #define kStrOpenFailMessage "Das Disk-Image konnte nicht geöffnet werden." #define kStrNoReadROMTitle "ROM nicht lesbar." #define kStrNoReadROMMessage "Das ROM namens “^r” wurde gefunden, kann aber von dieser Version von ^p nicht verwendet werden." #define kStrShortROMTitle "ROM-Image zu klein." #define kStrShortROMMessage "Das ROM “^r” ist kleiner als erwartet." /* state of a boolean option */ #define kStrOn "an" #define kStrOff "aus" /* state of a key */ #define kStrPressed "gedrückt" #define kStrReleased "losgelassen" /* state of Stopped */ #define kStrStoppedOn kStrOn #define kStrStoppedOff kStrOff /* About Screen */ #define kStrProgramInfo "^v" #define kStrSponsorIs "^v. This variation is made for:" #define kStrWorkOfMany "Copyright ^y. ^p enthält die Arbeit mehrerer Personen. Diese Version wird gepflegt von:" #define kStrForMoreInfo "Mehr Informationen:" #define kStrLicense "^p wird unter den Bestimmungen der GNU Public License, Version 2, verbreitet." #define kStrDisclaimer " ^p wird angeboten in der Hoffnung, brauchbar zu sein, aber OHNE JEDE GARANTIE; gleichfalls ohne garantierte EIGNUNG ZU EINEM BESTIMMTEN ZWECK." /* Help Screen */ #define kStrHowToLeaveControl "Um den Kontrollmodus zu verlassen, lassen Sie ‘^c’ los." #define kStrHowToPickACommand "Anderenfalls drücken Sie einen dieser Buchstaben:" #define kStrCmdAbout "Informationen zu dieser Version" #define kStrCmdOpenDiskImage "Disketten-Image öffnen…" #define kStrCmdQuit "Beenden" #define kStrCmdSpeedControl "Geschwindigkeitskontrolle… (^s)" #define kStrCmdMagnifyToggle "Vergrösserung (^g)" #define kStrCmdFullScrnToggle "Vollbild (^f)" #define kStrCmdCtrlKeyToggle "Emulierte ‘^m’-Taste (^k)" #define kStrCmdReset "Neustarten (Reset durchführen)" #define kStrCmdInterrupt "Interrupt" #define kStrCmdHelp "Hilfe (zeigt diese Befehlsliste)" /* Speed Control Screen */ #define kStrCurrentSpeed "Momentane Geschwindigkeit: ^s" #define kStrSpeedAllOut "Höchstgeschwindigkeit" #define kStrSpeedStopped "^p jetzt anhalten (^h)" #define kStrSpeedBackToggle "^p im Hintergrund anhalten (^b)" #define kStrSpeedAutoSlowToggle "AutoSlow (^l)" #define kStrSpeedExit "Geschwindigkeits-Einstellungen verlassen" #define kStrNewSpeed "Neue Geschwindigkeit: ^s" #define kStrSpeedValueAllOut kStrSpeedAllOut #define kStrNewStopped "^p ist jetzt angehalten (^h)" #define kStrNewRunInBack "^p anhalten, wenn nicht aktiv (^b)" #define kStrNewAutoSlow "AutoSlow (^l)" #define kStrNewMagnify "Vergrößerung ist ^g" #define kStrNewFullScreen "Vollbildmodus ist ^f" #define kStrNewCntrlKey "Emulierte ‘^m’-Taste ^k" #define kStrCmdCancel "Abbrechen" #define kStrConfirmReset "Wollen Sie den emulierten Rechner wirklich neustarten? Ungesicherte Änderungen werden verlorengehen und gemountete Disketten-Images können beschädigt werden. Drücken Sie einen dieser Buchstaben:" #define kStrResetDo "^p neustarten" #define kStrResetNo "Nicht neustarten" #define kStrHaveReset "Emulierter Rechner wurde zurückgesetzt." #define kStrCancelledReset "Neustart wird nicht durchgeführt" #define kStrConfirmInterrupt "Interrupt für diesen emulierten Rechner ausführen? Dies ruft alle implementierten Debugger auf. Drücken Sie einen dieser Buchstaben:" #define kStrInterruptDo "Interrupt ausführen" #define kStrInterruptNo "Interrupt nicht ausführen" #define kStrHaveInterrupted "Interrupt wurde durchgeführt" #define kStrCancelledInterrupt "Interrupt wird nicht ausgeführt" #define kStrConfirmQuit "Wollen Sie ^p wirklich beenden? Sie sollten zuvor den emulierten Rechner herunterfahren, um Beschädigungen an gemounteten Disketten-Images zu vermeiden. Drücken Sie einen dieser Buchstaben:" #define kStrQuitDo kStrCmdQuit #define kStrQuitNo "Nicht beenden" #define kStrCancelledQuit "^p wird nicht beendet" #define kStrModeConfirmReset "Kontrollmodus : Neustarten von ^p bestätigen" #define kStrModeConfirmInterrupt "Kontrollmodus : Interrupt bestätigen" #define kStrModeConfirmQuit "Kontrollmodus : Beenden von ^p bestätigen" #define kStrModeSpeedControl "Kontrollmodus : Geschwindigkeitskontrolle" #define kStrModeControlBase "Kontrollmodus (Tippen Sie ‘H’, um Hilfe zu erhalten)" #define kStrModeControlHelp "Kontrollmodus" #define kStrModeMessage "Mitteilung (Tippen Sie ‘C’, um fortzusetzen)" #define kStrMenuFile "Ablage" #define kStrMenuFile_win "Datei" #define kStrMenuSpecial "Spezial" #define kStrMenuHelp "Hilfe" #define kStrMenuItemAbout "Über ^p" #define kStrMenuItemOpen "Disketten-Image öffnen" #define kStrMenuItemQuit "Beenden" #define kStrMenuItemMore "Mehr Befehle" #define kStrAppMenuItemHide "^p ausblenden" #define kStrAppMenuItemHideOthers "Andere ausblenden" #define kStrAppMenuItemShowAll "Alle einblenden" #define kStrAppMenuItemQuit "^p beenden" #define kStrCntrlKyName "Control" #define kStrCmdCopyOptions "Variation options kopieren" #define kStrHaveCopiedOptions "Variation options kopiert"
Mini vMac can use other languages besides English for the user interface, as a compile time option (-lang). For each language there is one file that defines the strings used. Here are the current versions:
French (Pierre Lemieux, Gaël Coupé)
Italian (Fabio Concas, Gianluca Abbiati)
German (Detlef Kahner)
Dutch (Luc Pauwels)
Spanish (Chir)
Polish (Przemysław Buczkowski)
Brazilian Portuguese (Mauricio)
Catalan (ArduinoXino)
Czech (Anonymous)
Serbian Latin (SerbXenomorph)
(These pages are actually the result of an automatic conversion. The original source code uses an encoding scheme for the non ascii characters.)
If you would like to translate the Mini vMac user interface to a new language, or comment on an existing translation, tell me.
Mini vMac localizations could be made for other languages that use only the following set of characters, without changing any existing source code:
A a Á á À à  â à ã Ä ä Å å Ą ą Æ æ B b C c Ć ć Č č Ç ç D d Đ đ E e É é È è Ê ê Ë ë ě Ę ę F f G g H h I i Í í Ì ì Î î Ï ï J j K k L l Ł ł M m N n Ń ń Ñ ñ O o Ó ó Ò ò Ô ô Õ õ Ö ö Ø ø Œ œ P p Q q R r ř S s Ś ś š ß T t ť U u Ú ú Ù ù Û û Ü ü ů V v W w X x Y y Ý ý Ÿ ÿ Z z Ź ź Ż ż ž 0 1 2 3 4 5 6 7 8 9 . ? ! … ¿ ¡ · , : ; & ' “ ” ‘ ’ © ( ) - /
It wouldn't be too hard to add a couple more characters if needed for other languages. Languages that use a completely different character set might eventually be possible, as long as less than 128 characters are needed. Languages that use thousands of characters are not feasible with the current implementation.
For example, if Cyrillic were added, then this Serbian Cyrillic translation by SerbXenomorph could be implemented.
Though there are better localization solutions for each platform, Mini vMac has the challenge of needing a solution that will work on any platform, implemented in plain C. (That is, the strings for each language should be defined only once, in a representation that can be used on all platforms.)
:
Next - Frequently Asked Questions (GPL)
/* STRCNITA.h Copyright (C) 2006 Paul C. Pratt, Fabio Concas, Gianluca Abbiati 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. */ /* STRing CoNstants for ITAlian These strings were originally translated by Fabio Concas, who hasn't been heard from lately, and modifications were needed for version 2.8.1. Gianluca Abbiati agreed to look at it, and made numerous changes for version 2.8.2. */ #define kStrAboutTitle "Informazioni" #define kStrAboutMessage "Per visualizzare le informazioni su questo programma usa il comando ‘A’ dalla Modalità Controllo di ^p. Per informazioni sulla Modalità Controllo, vedi “Ulteriori Comandi…” nel menù “Speciale”." #define kStrMoreCommandsTitle "Ulteriori comandi sono disponibili nella Modalità Controllo di ^p." #define kStrMoreCommandsMessage "Per entrare nella Modalità Controllo, premi e tieni premuto il tasto ‘^c’. La Modalità Controllo resterà attiva fino a che il tasto ‘^c’ non verrà rilasciato. Digita ‘H’ nella Modalità Controllo per avere la lista dei comandi disponibili." #define kStrTooManyImagesTitle "Troppe Immagini Disco." #define kStrTooManyImagesMessage "Non posso montare altre Immagini Disco. Prova ad espellerne una." #define kStrImageInUseTitle "Immagine Disco in uso." #define kStrImageInUseMessage "Non posso montare l’Immagine Disco perché è utilizzata da un’altra applicazione." #define kStrOutOfMemTitle "Memoria insufficiente." #define kStrOutOfMemMessage "Non c’è abbastanza memoria per avviare ^p." #define kStrNoROMTitle "Impossibile trovare l’immagine della ROM." #define kStrNoROMMessage "Non trovo il file immagine della ROM “^r”. Per maggiori informazioni, vedi: “^w”" #define kStrCorruptedROMTitle "Checksum della ROM fallita." #define kStrCorruptedROMMessage "L’immagine della ROM “^r” potrebbe essere danneggiata." #define kStrUnsupportedROMTitle "ROM non supportata." #define kStrUnsupportedROMMessage "Il file immagine della ROM “^r” è stato caricato, ma ^p non supporta ancora questa ROM." #define kStrQuitWarningTitle "Dovresti spegnere la macchina emulata prima di uscire." #define kStrQuitWarningMessage "Per forzare l’uscita da ^p (col rischio di danneggiare le immagini disco montate), usa il comando ‘Q’ dalla Modalità Controllo di ^p. Per informazioni sulla Modalità Controllo, vedi “Ulteriori Comandi…” nel menù “Speciale”." #define kStrReportAbnormalTitle "Situazione Anomala" #define kStrReportAbnormalMessage "La macchina emulata sta tentando un’operazione inaspettata nell’uso normale." #define kStrBadArgTitle "Argomento sconosciuto." #define kStrBadArgMessage "Non comprendo uno dei parametri della riga di comando, lo ignoro." #define kStrOpenFailTitle "Apertura fallita." #define kStrOpenFailMessage "Non posso aprire l’immagine disco." #define kStrNoReadROMTitle "Non posso leggere l’immagine della ROM." #define kStrNoReadROMMessage "Ho trovato l’immagine della ROM “^r”, ma non posso leggerla." #define kStrShortROMTitle "L’immagine della ROM è troppo piccola." #define kStrShortROMMessage "Il file immagine della ROM “^r” è più piccolo di quanto dovrebbe essere." /* state of a boolean option */ #define kStrOn "attivo" #define kStrOff "inattivo" /* state of a key */ #define kStrPressed "premuto" #define kStrReleased "rilasciato" /* state of Stopped */ #define kStrStoppedOn kStrOn #define kStrStoppedOff kStrOff /* About Screen */ #define kStrProgramInfo "^v" #define kStrSponsorIs "^v. This variation is made for:" #define kStrWorkOfMany "Copyright ^y. ^p contiene il lavoro di molte persone. Questa versione è mantenuta da:" #define kStrForMoreInfo "Per maggiori informazioni, vedi:" #define kStrLicense "^p è distribuito secondo i termini della Licenza Pubblica GNU, versione 2." #define kStrDisclaimer " ^p è distribuito con la speranza che sia utile, ma SENZA ALCUNA GARANZIA; compresa la garanzia implicita di COMMERCIABILITÀ o IDONEITÀ PER UN QUALSIASI SCOPO." /* Help Screen */ #define kStrHowToLeaveControl "Per uscire dalla Modalità Controllo, rilascia il tasto ‘^c’." #define kStrHowToPickACommand "Altrimenti premi una lettera. I comandi disponibili sono:" #define kStrCmdAbout "Informazioni (informazioni sulla versione)" #define kStrCmdOpenDiskImage "Apri immagine disco…" #define kStrCmdQuit "Esci" #define kStrCmdSpeedControl "Controllo velocità… (^s)" #define kStrCmdMagnifyToggle "Ingrandimento (^g)" #define kStrCmdFullScrnToggle "Schermo intero (^f)" #define kStrCmdCtrlKeyToggle "Tasto ‘^m’ emulato (^k)" #define kStrCmdReset "Reset" #define kStrCmdInterrupt "Interrupt" #define kStrCmdHelp "Aiuto (mostra questo messaggio)" /* Speed Control Screen */ #define kStrCurrentSpeed "Velocità attuale: ^s" #define kStrSpeedAllOut "Massima velocità" #define kStrSpeedStopped "Stop (^h)" #define kStrSpeedBackToggle "Funzionamento in background (^b)" #define kStrSpeedAutoSlowToggle "AutoSlow (^l)" #define kStrSpeedExit "Esci da Controllo Velocità" #define kStrNewSpeed "Velocità: ^s" #define kStrSpeedValueAllOut "Massima" #define kStrNewStopped "Lo stop è ^h" #define kStrNewRunInBack "Il funzionamento in background è ^b" #define kStrNewAutoSlow "AutoSlow è ^l." #define kStrNewMagnify "L'ingrandimento è ^g" #define kStrNewFullScreen "Lo schermo intero è ^f" #define kStrNewCntrlKey "Il tasto ‘^m’ emulato è ^k" #define kStrCmdCancel "Annulla" #define kStrConfirmReset "Sei sicuro di voler resettare la macchina emulata? Le modifiche non salvate andranno perse e le immagini disco montate potrebbero venire danneggiate. Premi una lettera:" #define kStrResetDo kStrCmdReset #define kStrResetNo kStrCmdCancel #define kStrHaveReset "La macchina emulata è stata resettata" #define kStrCancelledReset "Reset annullato" #define kStrConfirmInterrupt "Sei sicuro di voler eseguire l'Interrupt della macchina emulata? Questo avvierà il debugger installato nel tuo sistema. Premi una lettera:" #define kStrInterruptDo kStrCmdInterrupt #define kStrInterruptNo kStrCmdCancel #define kStrHaveInterrupted "Interrupt della macchina emulata eseguito" #define kStrCancelledInterrupt "Interrupt annullato" #define kStrConfirmQuit "Sei sicuro di voler uscire? Dovresti spegnere la macchina emulata prima di uscire da ^p per prevenire potenziali danni alle immagini disco montate. Premi una lettera:" #define kStrQuitDo kStrCmdQuit #define kStrQuitNo kStrCmdCancel #define kStrCancelledQuit "Uscita annullata" #define kStrModeConfirmReset "Modalità Controllo : Conferma Riavviare" #define kStrModeConfirmInterrupt "Modalità Controllo : Conferma l’Interrupt" #define kStrModeConfirmQuit "Modalità Controllo : Conferma Uscire" #define kStrModeSpeedControl "Modalità Controllo : Controllo Velocità" #define kStrModeControlBase "Modalità Controllo (Digita ‘H’ per l’aiuto)" #define kStrModeControlHelp "Modalità Controllo" #define kStrModeMessage "Messaggio (Digita ‘C’ per continuare)" #define kStrMenuFile "Archivio" #define kStrMenuSpecial "Speciale" #define kStrMenuHelp "Aiuto" #define kStrMenuItemAbout "Informazioni su ^p" #define kStrMenuItemOpen "Apri Immagine Disco" #define kStrMenuItemQuit "Esci" #define kStrMenuItemMore "Altri Comandi" #define kStrAppMenuItemHide "Nascondi ^p" #define kStrAppMenuItemHideOthers "Nascondi altre" #define kStrAppMenuItemShowAll "Mostra tutte" #define kStrAppMenuItemQuit "Esci da ^p" #define kStrCmdCopyOptions "Copia variation options" #define kStrHaveCopiedOptions "Variation options copiate"
/* STRCNPOL.h Copyright (C) 2012 Przemysław Buczkowski, Paul C. 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. */ /* STRing CoNstants for POLish These strings were translated by Przemysław Buczkowski. */ #define kStrAboutTitle "O programie…" #define kStrAboutMessage "Aby obejrzeć informacje o tym programie użyj komendy ‘A’ w ^p Trybie Kontroli. Aby dowiedzieć się więcej o tym trybie kliknij przycisk “Więcej komend…” w menu “Specjalne”." #define kStrMoreCommandsTitle "Więcej komend jest dostępnych w ^p Trybie Kontroli." #define kStrMoreCommandsMessage "Aby wejść w Tryb Kontroli przytrzymaj przycisk ^c. Pozostaniesz w Trybie Kontroli dopóki nie puścisz tego klawisza. Kliknij H aby wyświetlić Pomoc." #define kStrTooManyImagesTitle "Za dużo obrazów dysków" #define kStrTooManyImagesMessage "Nie mogę zamontować tylu dysków. Odmontowywanie jednego." #define kStrImageInUseTitle "Obraz w użyciu" #define kStrImageInUseMessage "Nie mogę zamontować tego dysku ponieważ jest on używany przez inną aplikację lub uruchomiony w ^p." #define kStrOutOfMemTitle "Za mało pamięci" #define kStrOutOfMemMessage "Mam za mało pamięci aby uruchomić ^p." #define kStrNoROMTitle "Nie udało się zlokalizować ROMu" #define kStrNoROMMessage "Nie mogę znaleźć ROMu “^r”. Aby dowiedzieć się więcej, zobacz: “^w”." #define kStrCorruptedROMTitle "ROM uszkodzony" #define kStrCorruptedROMMessage "Plik ROMu “^r” może być uszkodzony." #define kStrUnsupportedROMTitle "Niewspierany ROM" #define kStrUnsupportedROMMessage "ROM “^r” został załadowany, ale nie obsługuję tej wersji." #define kStrQuitWarningTitle "Proszę wyłączyć emulowany komputer przed wyjściem." #define kStrQuitWarningMessage "Aby wymusić wyjście ryzykując uszkodzenie obrazów dysków użyj komendy ‘Q’ w Trybie Kontroli. Aby dowiedzieć się więcej o tym trybie kliknij przycisk “Więcej komend…” w menu “Specjalne”." #define kStrReportAbnormalTitle "Nienormalne polecenie" #define kStrReportAbnormalMessage "Emulowany komputer próbował zrobić coś, co nie powinno się zdarzyć." #define kStrBadArgTitle "Zły argument" #define kStrBadArgMessage "Nie zrozumiałem podanego argumentu." #define kStrOpenFailTitle "Błąd otwierania" #define kStrOpenFailMessage "Nie mogę otworzyć obrazu dysku." #define kStrNoReadROMTitle "Nieudane otwarcie ROMu" #define kStrNoReadROMMessage "Znalazłem plik ROMu “^r”, ale nie mogę go otworzyć." #define kStrShortROMTitle "Za mały ROM" #define kStrShortROMMessage "Plik ROMu “^r” jest mniejszy niż powinien być." /* state of a boolean option */ #define kStrOn "włączone" #define kStrOff "wyłączone" /* state of a key */ #define kStrPressed "wciśnięty" #define kStrReleased "puszczony" /* state of Stopped */ #define kStrStoppedOn kStrOn #define kStrStoppedOff kStrOff /* About Screen */ #define kStrProgramInfo "^v" #define kStrSponsorIs "^v. This variation is made for:" #define kStrWorkOfMany "Copyright ^y. ^p jest wynikiem pracy wielu osób. Ta wersja jest zarządzana przez:" #define kStrForMoreInfo "Po więcej informacji zobacz:" #define kStrLicense "^p jest dystrybuowany na licencji GNU General Public License 2." #define kStrDisclaimer " ^p 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." /* Help Screen */ #define kStrHowToLeaveControl "Aby opuścić Tryb Kontroli puść klawisz ^c." #define kStrHowToPickACommand "Naciśnij literę. Dostępne komendy to:" #define kStrCmdAbout "O programie (szczegóły wersji)…" #define kStrCmdOpenDiskImage "Otwórz obraz dysku…" #define kStrCmdQuit "Wyjdź" #define kStrCmdSpeedControl "Kontrola szybkości… (^s)" #define kStrCmdMagnifyToggle "Skalowanie (^g)" #define kStrCmdFullScrnToggle "Pełny ekran (^f)" #define kStrCmdCtrlKeyToggle "Emulowany klawisz ^m (^k)" #define kStrCmdReset "Reset" #define kStrCmdInterrupt "Przerwanie" #define kStrCmdHelp "Pomoc (ta strona)" /* Speed Control Screen */ #define kStrCurrentSpeed "Obecna prędkość: ^s" #define kStrSpeedAllOut "Cała naprzód!" #define kStrSpeedStopped "Zatrzymanie (^h)" #define kStrSpeedBackToggle "Uruchamianie w tle (^b)" #define kStrSpeedAutoSlowToggle "AutoSlow (^l)" #define kStrSpeedExit "Wyjście z kontroli prędkości" #define kStrNewSpeed "Prędkość: ^s" #define kStrSpeedValueAllOut kStrSpeedAllOut #define kStrNewStopped "Zatrzymanie jest ^h." #define kStrNewRunInBack "Uruchomienie w tle ^b." #define kStrNewAutoSlow "AutoSlow jest ^g." #define kStrNewMagnify "Powiększenie jest ^g." #define kStrNewFullScreen "Pełny ekran jest ^f." #define kStrNewCntrlKey "Emulowany klawiszem ^m jest ^k." #define kStrCmdCancel "anuluj" #define kStrConfirmReset "Czy na pewno chcesz zresetować emulator? Zmiany nie zostaną zapisane, istnieje ryzyko uszkodzenia obrazów dysków. Podaj literę:" #define kStrResetDo "reset" #define kStrResetNo kStrCmdCancel #define kStrHaveReset "Zresetowano komputer." #define kStrCancelledReset "Reset anulowany." #define kStrConfirmInterrupt "Czy jesteś pewny aby wywołać przerwanie emulatora? Podaj literę:" #define kStrInterruptDo "przerwanie" #define kStrInterruptNo kStrCmdCancel #define kStrHaveInterrupted "Wywołano przerwanie komputera." #define kStrCancelledInterrupt "Przerwanie anulowane." #define kStrConfirmQuit "Czy na pewno chcesz wyłączyć komputer ^p? Zmiany nie zostaną zapisane, istnieje ryzyko uszkodzenia obrazów dysków. Podaj literę:" #define kStrQuitDo "wyjdź" #define kStrQuitNo kStrCmdCancel #define kStrCancelledQuit "Wyjście anulowane" #define kStrModeConfirmReset "Tryb Kontroli : Potwierdź reset" #define kStrModeConfirmInterrupt "Tryb Kontroli : Potwierdź przerwanie" #define kStrModeConfirmQuit "Tryb Kontroli : Potwierdź wyjście" #define kStrModeSpeedControl "Tryb Kontroli : Kontrola prędkości" #define kStrModeControlBase "Tryb Kontroli (wciśnij ‘H’ po pomoc)" #define kStrModeControlHelp "Tryb Kontroli" #define kStrModeMessage "Wiadomość (kliknij ‘C’ aby kontynuować)" #define kStrMenuFile "Plik" #define kStrMenuSpecial "Specjalne" #define kStrMenuHelp "Pomoc" #define kStrMenuItemAbout "O… ^p" #define kStrMenuItemOpen "Otwórz obraz dysku" #define kStrMenuItemQuit "Pomoc" #define kStrMenuItemMore "Więcej komend" #define kStrAppMenuItemHide "Ukryj ^p" #define kStrAppMenuItemHideOthers "Ukryj pozostałe" #define kStrAppMenuItemShowAll "Pokaż wszystkie" #define kStrAppMenuItemQuit "Zakończ ^p" #define kStrCntrlKyName "Control" #define kStrCmdCopyOptions "Kopiuj variation options" #define kStrHaveCopiedOptions "Variation options kopiowane"
/* STRCNPTB.h Copyright (C) 2017 Mauricio, Paul C. 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. */ /* STRing CoNstants for PorTuguese-Brazilian These strings were translated by Mauricio. */ #define kStrAboutTitle "Sobre" #define kStrAboutMessage "Para exibir informações sobre este programa, use o comando ‘A’ do Modo de Controle ^p. Para saber mais sobre o Modo de Controle, consulte o item “Mais Comandos…” no menu “Especial”." #define kStrMoreCommandsTitle "Mais comandos estão disponíveis no Modo de Controle ^p." #define kStrMoreCommandsMessage "Para entrar no Modo de Controle, pressione e mantenha pressionada a tecla ‘^c’, você permanecerá no Modo de Controle até que você solte a tecla ‘^c’. Digite 'H' no Modo de Controle para listar os comandos disponíveis." #define kStrTooManyImagesTitle "Imagens de Disco excedidas" #define kStrTooManyImagesMessage "Não consigo montar tantas Imagens de Disco. Tente ejetar alguma." #define kStrImageInUseTitle "Imagem de Disco em uso" #define kStrImageInUseMessage "Não consigo montar a imagem de disco porque ela já está em uso por outro aplicativo ou já está aberta em ^p." #define kStrOutOfMemTitle "Memória insuficiente" #define kStrOutOfMemMessage "Não há memória suficiente disponível para iniciar ^p." #define kStrNoROMTitle "Não é possível localizar a imagem ROM" #define kStrNoROMMessage "Não consigo encontrar o arquivo de imagem ROM “^r”. Para obter mais informações, consulte: “^w”." #define kStrCorruptedROMTitle "Falha no checksum da ROM" #define kStrCorruptedROMMessage "O arquivo de imagem ROM “^r” pode estar corrompido." #define kStrUnsupportedROMTitle "ROM não suportada" #define kStrUnsupportedROMMessage "O arquivo de imagem ROM “^r” foi carregado com êxito, mas não suportamos esta versão ROM." #define kStrQuitWarningTitle "Por favor, desligue o computador emulado antes de fechar." #define kStrQuitWarningMessage "To force ^p to quit, at the risk of corrupting the mounted disk image files, use the ‘Q’ command of the ^p Control Mode. To learn about the Control Mode, see the “More Commands…” item in the “Special” menu." #define kStrReportAbnormalTitle "Situação Anormal" #define kStrReportAbnormalMessage "O computador emulado está tentando uma operação que não era esperada para acontecer em uso normal." #define kStrBadArgTitle "Argumento desconhecido" #define kStrBadArgMessage "Eu não entendi um dos argumentos da linha de comando e ignorei-o." #define kStrOpenFailTitle "Falha ao abrir" #define kStrOpenFailMessage "Não consegui abrir a imagem do disco." #define kStrNoReadROMTitle "Não é possível ler a imagem ROM" #define kStrNoReadROMMessage "Eu encontrei o arquivo de imagem ROM “^r”, mas não consigo lê-lo." #define kStrShortROMTitle "Imagem da ROM muito pequena" #define kStrShortROMMessage "O arquivo de imagem ROM “^r” é menor do que deveria ser." /* state of a boolean option */ #define kStrOn "Ligado" #define kStrOff "Desligado" /* state of a key */ #define kStrPressed "Ligada" #define kStrReleased "Desligada" /* state of Stopped */ #define kStrStoppedOn kStrOn #define kStrStoppedOff kStrOff /* About Screen */ #define kStrProgramInfo "^v" #define kStrSponsorIs "^v. Esta variação é patrocinada por:" #define kStrWorkOfMany "Copyright ^y. ^p contém o trabalho de muitas pessoas. Esta versão é mantida por:" #define kStrForMoreInfo "Para obter mais informações, consulte:" #define kStrLicense "^p é distribuído sob os termos da Licença Pública GNU, versão 2." #define kStrDisclaimer " ^p é distribuído com a esperança de que será útil, mas SEM NENHUMA GARANTIA, sem sequer a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO PROPÓSITO." /* Help Screen */ #define kStrHowToLeaveControl "Para sair do modo de controle, solte a tecla ‘^c’." #define kStrHowToPickACommand "Caso contrário, digite uma letra. Comandos disponíveis:" #define kStrCmdAbout "Sobre (informações sobre a versão)" #define kStrCmdOpenDiskImage "Abrir imagem de disco…" #define kStrCmdQuit "Sair" #define kStrCmdSpeedControl "Controle de velocidade… (^s)" #define kStrCmdMagnifyToggle "Zoom (^g)" #define kStrCmdFullScrnToggle "Tela Cheia (^f)" #define kStrCmdCtrlKeyToggle "Alternar Tecla ‘^m’ emulada (^k)" #define kStrCmdReset "Reiniciar" #define kStrCmdInterrupt "Interromper" #define kStrCmdHelp "Ajuda (mostrar esta página)" /* Speed Control Screen */ #define kStrCurrentSpeed "Velocidade atual: ^s" #define kStrSpeedAllOut "Toda a velocidade" #define kStrSpeedStopped "parado (^h)" #define kStrSpeedBackToggle "Rodar em Segundo Plano (^b)" #define kStrSpeedAutoSlowToggle "Lentidão Automática (^l)" #define kStrSpeedExit "Sair do controle de velocidade" #define kStrNewSpeed "Velocidade: ^s" #define kStrSpeedValueAllOut kStrSpeedAllOut #define kStrNewStopped "Parado está ^h." #define kStrNewRunInBack "Rodar em segundo plano está ^b." #define kStrNewAutoSlow "Lentidão Automática está ^l." #define kStrNewMagnify "Zoom está ^g." #define kStrNewFullScreen "Tela Cheia está ^f." #define kStrNewCntrlKey "Emulação da tecla ‘^m’ ^k." #define kStrCmdCancel "cancelar" #define kStrConfirmReset "Tem certeza de que deseja reiniciar o computador emulado? As alterações não salvas serão perdidas e há o risco de corromper os arquivos de imagem de disco montados. Digite uma letra:" #define kStrResetDo "reiniciar" #define kStrResetNo kStrCmdCancel #define kStrHaveReset "Reiniciar o computador emulado" #define kStrCancelledReset "Reinicialização cancelada" #define kStrConfirmInterrupt "Tem certeza de que deseja interromper o computador emulado? Isso invocará qualquer depurador instalado. Digite uma letra:" #define kStrInterruptDo "Interromper" #define kStrInterruptNo kStrCmdCancel #define kStrHaveInterrupted "Interrompeu o computador emulado" #define kStrCancelledInterrupt "Interrupção cancelada" #define kStrConfirmQuit "Tem certeza de que deseja sair ^p? Você deve desligar o computador emulado antes de sair para evitar corromper os arquivos de imagem de disco montados. Digite uma letra:" #define kStrQuitDo "sair" #define kStrQuitNo kStrCmdCancel #define kStrCancelledQuit "Operação cancelada" #define kStrModeConfirmReset "Modo de Controle : Confirmar Reinicialização" #define kStrModeConfirmInterrupt "Modo de Controle : Confirmar Interrupção" #define kStrModeConfirmQuit "Modo de Controle : Confirmar Sair" #define kStrModeSpeedControl "Modo de Controle : Controle de Velocidade" #define kStrModeControlBase "Modo de Controle (Digite ‘H’ para obter ajuda)" #define kStrModeControlHelp "Modo de Controle" #define kStrModeMessage "Message (Digite ‘C’ para continuar)" #define kStrMenuFile "Arquivo" #define kStrMenuSpecial "Especial" #define kStrMenuHelp "Ajuda" #define kStrMenuItemAbout "Sobre ^p" #define kStrMenuItemOpen "Open Disk Image" #define kStrMenuItemQuit "Sair" #define kStrMenuItemMore "Mais Comandos" #define kStrAppMenuItemHide "Esconder ^p" #define kStrAppMenuItemHideOthers "Esconder Outras" #define kStrAppMenuItemShowAll "Mostrar Todas" #define kStrAppMenuItemQuit "Sair ^p" #define kStrCmdCopyOptions "Copiar variation options" #define kStrHaveCopiedOptions "Variation options copiadas"
/* STRCNSPA.h Copyright (C) 2006 Chir, Paul C. 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. */ /* STRing CoNstants for SPAnish These strings were translated by Chir. */ #define kStrAboutTitle "Acerca de" #define kStrAboutMessage "Para mostrar información acerca de este programa, use el comando ‘A’ del ^p Modo Control. Para saber más acerca del Modo Control, vea “Mas Comandos…” en el menu “Especial” ." #define kStrMoreCommandsTitle "Más comandos están disponibles en el modo de control de ^p ." #define kStrMoreCommandsMessage "Para entrar en el modo de control, mantenga pulsada la tecla ‘^c’ . Seguirá en el modo control hasta que suelte la tecla ‘^c’ . Pulse ‘H’ en el modo control para listar los comandos disponibles." #define kStrTooManyImagesTitle "Demasiadas imágenes de disco" #define kStrTooManyImagesMessage "No se pueden montar tantas imágenes de disco. Intente sacar alguna." #define kStrImageInUseTitle "Imagen disco en uso" #define kStrImageInUseMessage "No se puede montar la imagen disco porque ya está en uso por otra aplicación, o ya abierta en ^p." #define kStrOutOfMemTitle "Memoria insuficiente" #define kStrOutOfMemMessage "No hay suficiente memoria disponible para lanzar ^p." #define kStrNoROMTitle "Imposible localizar la imagen ROM" #define kStrNoROMMessage "No se encuentra la imagen del fichero ROM “^r”. Para más información, ver: “^w”." #define kStrCorruptedROMTitle "El control checksum de la ROM ha fracasado" #define kStrCorruptedROMMessage "El fichero de imagen ROM “^r” puede estar corrompido." #define kStrUnsupportedROMTitle "ROM no soportada" #define kStrUnsupportedROMMessage "Fichero de imagen ROM “^r” cargado con éxito, pero esa versión no está soportada." #define kStrQuitWarningTitle "Por favor, apague el ordenador emulado antes de salir." #define kStrQuitWarningMessage "Para forzar ^p salir, con riesgo de corrupción en las imágenes de discos montadas, use el comando ‘Q’ del ^p Modo Control. Para saber más acerca del Modo Control, vea “Mas Comandos…” en el menu “Especial” ." #define kStrReportAbnormalTitle "Situación anormal" #define kStrReportAbnormalMessage "El ordenador emulado intenta hacer una operación no esperada en un uso normal." #define kStrBadArgTitle "Argumento desconocido" #define kStrBadArgMessage "No se comprendió alguno de los argumentos de la linea de comandos, y se ignoró." #define kStrOpenFailTitle "Apertura fracasada" #define kStrOpenFailMessage "No se pudo abrir la imagen disco." #define kStrNoReadROMTitle "No se puede abrir la imagen ROM" #define kStrNoReadROMMessage "Se encontró el fichero de imagen ROM “^r”, pero no se pudo leer." #define kStrShortROMTitle "Imagen ROM demasiado corta" #define kStrShortROMMessage "El fichero de imagen ROM “^r” es más corto de lo que debería." /* state of a boolean option */ #define kStrOn "activado" #define kStrOff "desactivado" /* state of a key */ #define kStrPressed "pulsada" #define kStrReleased "soltada" /* state of Stopped */ #define kStrStoppedOn kStrOn #define kStrStoppedOff kStrOff /* About Screen */ #define kStrProgramInfo "^v" #define kStrSponsorIs "^v. This variation is made for:" #define kStrWorkOfMany "Copyright ^y. ^p contiene el trabajo de muchas personas. Esta versión es mantenida por:" #define kStrForMoreInfo "Para más información, vea:" #define kStrLicense "^p es distribuido bajo los términos de la licencia pública GNU, versión 2." #define kStrDisclaimer " ^p es distribuido con la esperanza de ser útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía implícita de MERCANTIBILIDAD O ADECUACION PARA UN USO PARTICULAR." /* Help Screen */ #define kStrHowToLeaveControl "Para salir del Modo Control, suelte la tecla ‘^c’ ." #define kStrHowToPickACommand "Sinó, pulse una letra. Los comandos disponibles son:" #define kStrCmdAbout "Acerca de (información sobre versión)" #define kStrCmdOpenDiskImage "Abrir imagen disco…" #define kStrCmdQuit "Salir" #define kStrCmdSpeedControl "Control de velocidad… (^s)" #define kStrCmdMagnifyToggle "Magnificación (^g)" #define kStrCmdFullScrnToggle "Pantalla completa (^f)" #define kStrCmdCtrlKeyToggle "Toggle emulación tecla ‘^m’ (^k)" #define kStrCmdReset "Reset" #define kStrCmdInterrupt "Interrumpir" #define kStrCmdHelp "Ayuda (mostrar esta página)" /* Speed Control Screen */ #define kStrCurrentSpeed "Velocidad actual: ^s" #define kStrSpeedAllOut "Máxima velocidad" #define kStrSpeedStopped "Stop (^h)" #define kStrSpeedBackToggle "Ejecutar en segundo plano (^b)" #define kStrSpeedAutoSlowToggle "AutoSlow (^l)" #define kStrSpeedExit "Salir del control de velocidad" #define kStrNewSpeed "Velocidad: ^s" #define kStrSpeedValueAllOut kStrSpeedAllOut #define kStrNewStopped "Stop está ^h." #define kStrNewRunInBack "Ejecutar en segundo plano está ^b." #define kStrNewAutoSlow "AutoSlow está ^l." #define kStrNewMagnify "Magnificación está ^g." #define kStrNewFullScreen "Pantalla completa está ^f." #define kStrNewCntrlKey "Emulado tecla ‘^m’ ^k." #define kStrCmdCancel "cancelar" #define kStrConfirmReset "Está seguro de desear reiniciar el ordenador emulado? Los cambios no salvados se perderan, y existe riesgo de corrupción en las imágenes de discos montadas. Pulse una tecla:" #define kStrResetDo "reset" #define kStrResetNo kStrCmdCancel #define kStrHaveReset "Se ha reiniciado el ordenador emulado" #define kStrCancelledReset "Reset cancelado" #define kStrConfirmInterrupt "Está seguro de desear interrumpir el ordenador emulado? Esto invocará cualquier debugger instalado. Pulse una tecla:" #define kStrInterruptDo "interrumpir" #define kStrInterruptNo kStrCmdCancel #define kStrHaveInterrupted "Se ha interrumpido el ordenador emulado" #define kStrCancelledInterrupt "Interrupción cancelada" #define kStrConfirmQuit "Está seguro de desear salir de ^p? Debería apagar el ordenador emulado antes de salir, para evitar corrupciones en las imágenes de discos montadas. Pulse una tecla:" #define kStrQuitDo "salir" #define kStrQuitNo kStrCmdCancel #define kStrCancelledQuit "Salida cancelada" #define kStrModeConfirmReset "Modo Control : Confirmar reset" #define kStrModeConfirmInterrupt "Modo Control : Confirmar Interrupción" #define kStrModeConfirmQuit "Modo Control : Confirmar salida" #define kStrModeSpeedControl "Modo Control : Control de velocidad" #define kStrModeControlBase "Modo Control (Pulse ‘H’ para la ayuda)" #define kStrModeControlHelp "Modo Control" #define kStrModeMessage "Mensaje (Pulse ‘C’ para continuar)" #define kStrMenuFile "Fichero" #define kStrMenuSpecial "Especial" #define kStrMenuHelp "Ayuda" #define kStrMenuItemAbout "Acerca de ^p" #define kStrMenuItemOpen "Abrir imagen disco" #define kStrMenuItemQuit "Salir" #define kStrMenuItemMore "Más comandos" #define kStrAppMenuItemHide "Ocultar ^p" #define kStrAppMenuItemHideOthers "Ocultar otros" #define kStrAppMenuItemShowAll "Mostrar todo" #define kStrAppMenuItemQuit "Salir de ^p" #define kStrCmdCopyOptions "Copiar variation options" #define kStrHaveCopiedOptions "Variation options copiadas"
/* STRCNSRC.h Copyright (C) 2018 SerbXenomorph, Paul C. 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. */ /* STRing CoNstants for SeRbian Cyrillic Translated by SerbXenomorph - If no support Unicode/UTF-8, etc. support, online cyrillic to latin convertor will be enough. - I have made some suggestions in the comments to avoid string repetition. */ #define kStrAboutTitle "О програму" #define kStrAboutMessage "Да би се показале информације о програму, користите ‘A’ команду мода контроле ^p . Да сазнате више о контролном моду, видите “Још команди…” у “Special” менију." #define kStrMoreCommandsTitle "Више команда је доступно у моду контроле ^p." #define kStrMoreCommandsMessage "Да би сте ушли у контролни мод, претисните тастер ‘^c’. остаћете у њему док га не пустите. Претисните ‘H’ да прикажете листу доступних команди." #define kStrTooManyImagesTitle "Превише дисковних датотека" #define kStrTooManyImagesMessage "Не могу монтирати толико дисковних датотека. Избаците једну." #define kStrImageInUseTitle "Дисковна датотека се користи" #define kStrImageInUseMessage "Не могу монтирати дисковну датотеку ^p како се већ користи у другом програму." #define kStrOutOfMemTitle "Нема довољно меморије" #define kStrOutOfMemMessage "Нема довољно меморије да би се покренуо ^p." /* This can possibly be defined as ("%s да би се покренуо ^p.", kStrOutOfMemTitle) to avoid duplicated string, if used in a printf() like function. */ #define kStrNoROMTitle "Не могу наћи ROM датотеку" #define kStrNoROMMessage "Не могу наћи ROM датотеку “^r”. За више информација, видите: “^w”." /* Same for this */ #define kStrCorruptedROMTitle "ROM провера неуспешна" #define kStrCorruptedROMMessage "ROM датотека “^r” је можда оштећена." #define kStrUnsupportedROMTitle "Неподржани ROM" #define kStrUnsupportedROMMessage "ROM датотека “^r” се учитала успешно, али не подржавам ROM верзију." #define kStrQuitWarningTitle "Молимо угасите емулисани компјутер пре него што изађете из програма." #define kStrQuitWarningMessage "Да бисте присилили ^p да изађе, са ризиком да се дисковни фајлови оштете, користи ‘Q’ команду контролног мода ^p. Да сазнате више о контролном моду, видите “Још команди…” у “Special” менију." #define kStrReportAbnormalTitle "Абнормална ситуација" #define kStrReportAbnormalMessage "Емулисани рачунар је покушао операцију која не би требало де се изврши при нормалном коришћењу." #define kStrBadArgTitle "Непознати аргумент" #define kStrBadArgMessage "Нисам разумео један од аргумената командне линије, и игнорисао га." #define kStrOpenFailTitle "Отварање неуспешно" #define kStrOpenFailMessage "Нисам могао отворити дисковну датотеку." #define kStrNoReadROMTitle "ROM датотека нечитљива" #define kStrNoReadROMMessage "Пронашао сам ROM датотеку “^r”, али је не могу прочитати." #define kStrShortROMTitle "ROM датотека прекратка" #define kStrShortROMMessage "ROM датотека “^r” је краћа него што би требала да буде." /* state of a boolean option */ #define kStrOn "Вкључен" #define kStrOff "Искључен" /* state of a key */ #define kStrPressed "притиснут" #define kStrReleased "пуштен" /* state of Stopped */ #define kStrStoppedOn kStrOn #define kStrStoppedOff kStrOff /* About Screen */ #define kStrProgramInfo "^v" #define kStrSponsorIs "^v. Ова варијација је направљена за:" #define kStrWorkOfMany "Заштићено ауторским правима ^y. ^p садржи рад много људи. Ову верзију одржава:" #define kStrForMoreInfo "За више информација, видите:" #define kStrLicense "^p је дистрибуиран под налозима GNU јавне лиценце, верзије 2." #define kStrDisclaimer " ^p је дистрибуиран у нади да ће бити користан, али БеЗ ГаРаНцИјЕ.; чак и БеЗ УтРжИвОсТи или ПрИкЛаДнОсТи За ОдРеЂеНу СвРхУ." /* Help Screen */ #define kStrHowToLeaveControl "да бисте изашли из контролног мода, пустите тастер ‘^c’." #define kStrHowToPickACommand "У другом случају, откуцајте слово. Доступне команде су:" #define kStrCmdAbout "О програму (информације о верзији)" #define kStrCmdOpenDiskImage "Отвори дисковну датотеку…" #define kStrCmdQuit "Изађи" #define kStrCmdSpeedControl "Контрола брзине… (^s)" #define kStrCmdMagnifyToggle "Прекидач лупе (^g)" #define kStrCmdFullScrnToggle "Прекидач режима целог екрана (^f)" #define kStrCmdCtrlKeyToggle "Прекидач емулисаног тастера ‘^m’ (^k)" #define kStrCmdReset "Ресетуј" #define kStrCmdInterrupt "Прекид" #define kStrCmdHelp "Помоћ (покажи ову страну)" /* Speed Control Screen */ #define kStrCurrentSpeed "Тренутна брзина: ^s" #define kStrSpeedAllOut "Потпуна" #define kStrSpeedStopped "Прекидач заустављања (^h)" #define kStrSpeedBackToggle "Прекидач рада у позадини (^b)" #define kStrSpeedAutoSlowToggle "Прекидач аутоматског успоравања емулације (^l)" /*Remove the "емулације" if not enough space to display*/ #define kStrSpeedExit "Изађи из контроле брзине" #define kStrNewSpeed "Брзина: ^s" #define kStrSpeedValueAllOut kStrSpeedAllOut #define kStrNewStopped "Заустављено јест ^h." #define kStrNewRunInBack "Пусти у позадини јест ^b." #define kStrNewAutoSlow "аутоматско успоравање јест ^l." #define kStrNewMagnify "Приближи је ^g." #define kStrNewFullScreen "Цео екран је ^f." #define kStrNewCntrlKey "Емулисани тастер ‘^m’ је ^k." #define kStrCmdCancel "одбиј" #define kStrConfirmReset "Да ли сте сигурни да желите ресетовати емулирани компјутер? несачуване измене ће бити изгубљене, и постоји ризик оштећивања дисковних датотека. Откуцај слово:" #define kStrResetDo "ресетуј" #define kStrResetNo kStrCmdCancel #define kStrHaveReset "Емулисани компјутер ресетован" #define kStrCancelledReset "Ресетовање одбијено" #define kStrConfirmInterrupt "Да ли сте сигурни да желите прекинути емулисани рачунар? Ово ће покренути рад било ког инсталираног дебагера. Откуцајте слово:" #define kStrInterruptDo "прекини" #define kStrInterruptNo kStrCmdCancel #define kStrHaveInterrupted "Емулисани компјутер прекинут" #define kStrCancelledInterrupt "Прекид одбијен" #define kStrConfirmQuit "Да ли сте сигурни да желите изаћи ^p? Требали бисте угасити емулисани рачунар пре изласка да бисте превентисали корупцију монтираних дисковних фајлова. Откуцајте слово:" #define kStrQuitDo "изађи" #define kStrQuitNo kStrCmdCancel #define kStrCancelledQuit "Излазак одбијен" #define kStrModeConfirmReset "Контролни мод : Потврди ресетовање" #define kStrModeConfirmInterrupt "Контролни мод : Потврди прекид" #define kStrModeConfirmQuit "Контролни мод : Потврди излазак" #define kStrModeSpeedControl "Контролни мод : Контрола брзине" #define kStrModeControlBase "Контролни мод (Откуцај ‘H’ за помоћ)" #define kStrModeControlHelp "Контролни мод" /* Same suggestion above for "Контролни мод". This may be used in other languages. */ #define kStrModeMessage "Порука (Откуцај ‘C’ да наставиш)" #define kStrMenuFile "Фајл" #define kStrMenuSpecial "Special" #define kStrMenuHelp "Помоћ" #define kStrMenuItemAbout "О ^p" #define kStrMenuItemOpen "Отвори дисковну датотеку" #define kStrMenuItemQuit "Изађи" #define kStrMenuItemMore "Више команди" #define kStrAppMenuItemHide "Сакриј ^p" #define kStrAppMenuItemHideOthers "Сакриј остале" #define kStrAppMenuItemShowAll "Прикажи све" #define kStrAppMenuItemQuit "Изађи ^p" #define kStrCmdCopyOptions "Копирај variation options" #define kStrHaveCopiedOptions "Variation options копиране"
/* STRCNSRL.h Copyright (C) 2018 SerbXenomorph, Paul C. 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. */ /* STRing CoNstants for SeRbian Latin Converted from Serbian Cyrillic by 3 different online converters, which all gave identical results. comment from Serbian Cyrillic source follows: */ /* STRing CoNstants for SeRbian Cyrillic Translated by SerbXenomorph - If no support Unicode/UTF-8, etc. support, online cyrillic to latin convertor will be enough. - I have made some suggestions in the comments to avoid string repetition. */ #define kStrAboutTitle "O programu" #define kStrAboutMessage "Da bi se pokazale informacije o programu, koristite ‘A’ komandu moda kontrole ^p . Da saznate više o kontrolnom modu, vidite “Još komandi…” u “Special” meniju." #define kStrMoreCommandsTitle "Više komanda je dostupno u modu kontrole ^p." #define kStrMoreCommandsMessage "Da bi ste ušli u kontrolni mod, pretisnite taster ‘^c’. ostaćete u njemu dok ga ne pustite. Pretisnite ‘H’ da prikažete listu dostupnih komandi." #define kStrTooManyImagesTitle "Previše diskovnih datoteka" #define kStrTooManyImagesMessage "Ne mogu montirati toliko diskovnih datoteka. Izbacite jednu." #define kStrImageInUseTitle "Diskovna datoteka se koristi" #define kStrImageInUseMessage "Ne mogu montirati diskovnu datoteku ^p kako se već koristi u drugom programu." #define kStrOutOfMemTitle "Nema dovoljno memorije" #define kStrOutOfMemMessage "Nema dovoljno memorije da bi se pokrenuo ^p." /* This can possibly be defined as ("%s da bi se pokrenuo ^p.", kStrOutOfMemTitle) to avoid duplicated string, if used in a printf() like function. */ #define kStrNoROMTitle "Ne mogu naći ROM datoteku" #define kStrNoROMMessage "Ne mogu naći ROM datoteku “^r”. Za više informacija, vidite: “^w”." /* Same for this */ #define kStrCorruptedROMTitle "ROM provera neuspešna" #define kStrCorruptedROMMessage "ROM datoteka “^r” je možda oštećena." #define kStrUnsupportedROMTitle "Nepodržani ROM" #define kStrUnsupportedROMMessage "ROM datoteka “^r” se učitala uspešno, ali ne podržavam ROM verziju." #define kStrQuitWarningTitle "Molimo ugasite emulisani kompjuter pre nego što izađete iz programa." #define kStrQuitWarningMessage "Da biste prisilili ^p da izađe, sa rizikom da se diskovni fajlovi oštete, koristi ‘Q’ komandu kontrolnog moda ^p. Da saznate više o kontrolnom modu, vidite “Još komandi…” u “Special” meniju." #define kStrReportAbnormalTitle "Abnormalna situacija" #define kStrReportAbnormalMessage "Emulisani računar je pokušao operaciju koja ne bi trebalo de se izvrši pri normalnom korišćenju." #define kStrBadArgTitle "Nepoznati argument" #define kStrBadArgMessage "Nisam razumeo jedan od argumenata komandne linije, i ignorisao ga." #define kStrOpenFailTitle "Otvaranje neuspešno" #define kStrOpenFailMessage "Nisam mogao otvoriti diskovnu datoteku." #define kStrNoReadROMTitle "ROM datoteka nečitljiva" #define kStrNoReadROMMessage "Pronašao sam ROM datoteku “^r”, ali je ne mogu pročitati." #define kStrShortROMTitle "ROM datoteka prekratka" #define kStrShortROMMessage "ROM datoteka “^r” je kraća nego što bi trebala da bude." /* state of a boolean option */ #define kStrOn "Vključen" #define kStrOff "Isključen" /* state of a key */ #define kStrPressed "pritisnut" #define kStrReleased "pušten" /* state of Stopped */ #define kStrStoppedOn kStrOn #define kStrStoppedOff kStrOff /* About Screen */ #define kStrProgramInfo "^v" #define kStrSponsorIs "^v. Ova varijacija je napravljena za:" #define kStrWorkOfMany "Zaštićeno autorskim pravima ^y. ^p sadrži rad mnogo ljudi. Ovu verziju održava:" #define kStrForMoreInfo "Za više informacija, vidite:" #define kStrLicense "^p je distribuiran pod nalozima GNU javne licence, verzije 2." #define kStrDisclaimer " ^p je distribuiran u nadi da će biti koristan, ali BeZ GaRaNcIjE.; čak i BeZ UtRžIvOsTi ili PrIkLaDnOsTi Za OdReĐeNu SvRhU." /* Help Screen */ #define kStrHowToLeaveControl "da biste izašli iz kontrolnog moda, pustite taster ‘^c’." #define kStrHowToPickACommand "U drugom slučaju, otkucajte slovo. Dostupne komande su:" #define kStrCmdAbout "O programu (informacije o verziji)" #define kStrCmdOpenDiskImage "Otvori diskovnu datoteku…" #define kStrCmdQuit "Izađi" #define kStrCmdSpeedControl "Kontrola brzine… (^s)" #define kStrCmdMagnifyToggle "Prekidač lupe (^g)" #define kStrCmdFullScrnToggle "Prekidač režima celog ekrana (^f)" #define kStrCmdCtrlKeyToggle "Prekidač emulisanog tastera ‘^m’ (^k)" #define kStrCmdReset "Resetuj" #define kStrCmdInterrupt "Prekid" #define kStrCmdHelp "Pomoć (pokaži ovu stranu)" /* Speed Control Screen */ #define kStrCurrentSpeed "Trenutna brzina: ^s" #define kStrSpeedAllOut "Potpuna" #define kStrSpeedStopped "Prekidač zaustavljanja (^h)" #define kStrSpeedBackToggle "Prekidač rada u pozadini (^b)" #define kStrSpeedAutoSlowToggle "Prekidač automatskog usporavanja emulacije (^l)" /*Remove the "emulacije" if not enough space to display*/ #define kStrSpeedExit "Izađi iz kontrole brzine" #define kStrNewSpeed "Brzina: ^s" #define kStrSpeedValueAllOut kStrSpeedAllOut #define kStrNewStopped "Zaustavljeno jest ^h." #define kStrNewRunInBack "Pusti u pozadini jest ^b." #define kStrNewAutoSlow "automatsko usporavanje jest ^l." #define kStrNewMagnify "Približi je ^g." #define kStrNewFullScreen "Ceo ekran je ^f." #define kStrNewCntrlKey "Emulisani taster ‘^m’ je ^k." #define kStrCmdCancel "odbij" #define kStrConfirmReset "Da li ste sigurni da želite resetovati emulirani kompjuter? nesačuvane izmene će biti izgubljene, i postoji rizik oštećivanja diskovnih datoteka. Otkucaj slovo:" #define kStrResetDo "resetuj" #define kStrResetNo kStrCmdCancel #define kStrHaveReset "Emulisani kompjuter resetovan" #define kStrCancelledReset "Resetovanje odbijeno" #define kStrConfirmInterrupt "Da li ste sigurni da želite prekinuti emulisani računar? Ovo će pokrenuti rad bilo kog instaliranog debagera. Otkucajte slovo:" #define kStrInterruptDo "prekini" #define kStrInterruptNo kStrCmdCancel #define kStrHaveInterrupted "Emulisani kompjuter prekinut" #define kStrCancelledInterrupt "Prekid odbijen" #define kStrConfirmQuit "Da li ste sigurni da želite izaći ^p? Trebali biste ugasiti emulisani računar pre izlaska da biste preventisali korupciju montiranih diskovnih fajlova. Otkucajte slovo:" #define kStrQuitDo "izađi" #define kStrQuitNo kStrCmdCancel #define kStrCancelledQuit "Izlazak odbijen" #define kStrModeConfirmReset "Kontrolni mod : Potvrdi resetovanje" #define kStrModeConfirmInterrupt "Kontrolni mod : Potvrdi prekid" #define kStrModeConfirmQuit "Kontrolni mod : Potvrdi izlazak" #define kStrModeSpeedControl "Kontrolni mod : Kontrola brzine" #define kStrModeControlBase "Kontrolni mod (Otkucaj ‘H’ za pomoć)" #define kStrModeControlHelp "Kontrolni mod" /* Same suggestion above for "Kontrolni mod". This may be used in other languages. */ #define kStrModeMessage "Poruka (Otkucaj ‘C’ da nastaviš)" #define kStrMenuFile "Fajl" #define kStrMenuSpecial "Special" #define kStrMenuHelp "Pomoć" #define kStrMenuItemAbout "O ^p" #define kStrMenuItemOpen "Otvori diskovnu datoteku" #define kStrMenuItemQuit "Izađi" #define kStrMenuItemMore "Više komandi" #define kStrAppMenuItemHide "Sakrij ^p" #define kStrAppMenuItemHideOthers "Sakrij ostale" #define kStrAppMenuItemShowAll "Prikaži sve" #define kStrAppMenuItemQuit "Izađi ^p" #define kStrCmdCopyOptions "Kopiraj variation options" #define kStrHaveCopiedOptions "Variation options kopirane"
Old! Current stable versions are available from the main Download Mini vMac 36 Macintosh 128K Variations page.
These variations emulate a Macintosh 128K (using the “-m 128K” build option). The main Download page has many more options.
:
Macintosh OS X (important: see notes)
x86-32 (44K)
for any Mac made after 2006x86-64 (53K)
for any Mac made after 2012
(and some earlier ones)for earlier Macs:
PowerPC (51K)
Microsoft Windows
x86-32 (66K)
for any PCx86-64 (74K)
Linux
x86-32 (46K)
FreeBSD
x86-32 (44K)
x86-64 (50K)
NetBSD
x86-32 (44K)
x86-64 (50K)
OpenIndiana
x86-32 (43K)
x86-64 (49K)
Microsoft Windows Mobile 5.0
ARM (48K)
...
More Ports, for running upon other computers, by other people
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Old! Current stable versions are available from the main Download Mini vMac 36 Macintosh II Variations page.
These variations emulate a Macintosh II with a 640x480 display with 256 colors (using the “-m II” build option). The main Download Old page has many more options.
Warning : Macintosh II emulation in Mini vMac is incomplete, and should not be relied on to give accurate results, particularly numeric results. (Emulation of the Floating Point Unit is the main incomplete part.) It does seem suitable for games, many of which appear to work perfectly well.
:
Macintosh OS X (important: see notes)
x86-32 (86K)
for any Mac made after 2006x86-64 (86K)
for any Mac made after 2012
(and some earlier ones)for earlier Macs:
PowerPC (94K)
Microsoft Windows
x86-32 (107K)
for any PCx86-64 (109K)
Linux
x86-32 (87K)
FreeBSD
x86-32 (85K)
x86-64 (82K)
NetBSD
x86-32 (85K)
x86-64 (83K)
OpenIndiana
x86-32 (85K)
x86-64 (81K)
Microsoft Windows Mobile 5.0
ARM (90K)
...
More Ports, for running upon other computers, by other people
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Old! Current stable versions are available from the main Download Mini vMac 36 Standard Variations page.
These “standard variations” emulate a Macintosh Plus. The main Download Old page has many more options.
:
Macintosh OS X (important: see notes)
x86-32 (44K)
for any Mac made after 2006x86-64 (53K)
for any Mac made after 2012
(and some earlier ones)for earlier Macs:
PowerPC (51K)
Microsoft Windows
x86-32 (66K)
for any PCx86-64 (74K)
Linux
x86-32 (46K)
FreeBSD
x86-32 (44K)
x86-64 (50K)
NetBSD
x86-32 (44K)
x86-64 (50K)
OpenIndiana
x86-32 (43K)
x86-64 (49K)
Microsoft Windows Mobile 5.0
ARM (48K)
...
More Ports, for running upon other computers, by other people
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Old! Current stable versions are available from the main Download Mini vMac page.
For emulating a Macintosh Plus, with an English user interface, for various platforms.
Or, you can compile variations yourself from the source, following instructions in the Building Mini vMac page.
The most popular nonstandard variation, using the “-m II” build option.
Emulate the original Macintosh, using the “-m 128K” build option.
You can use these checksums to verify that files downloaded correctly. They are signed with Gryphel Key 5.
I provide versions of Mini vMac compiled for various platforms. There are also ports by other people to additional platforms.
This page has an older version of Mini vMac. For current stable version, see the main Mini vMac Download page.
:
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Next - Getting Started
The main Download page provides the standard variation of Mini vMac. But much of the power of Mini vMac comes from the many other possible variations.
Mini vMac has no preference settings that persist across quitting and relaunching. This helps to keep the program small and fast, and the source code simple. But Mini vMac does have options that can be chosen at compile time. You can compile your own variations with precisely the combinations of options you want, following the instructions on the Build page.
Or, I can compile custom variations for you. See:
Mini vMac Variations Service . . . try it out!
Mini vMac does not create preference files or change registry settings or make any other changes to your computer. So there is no problem in having multiple variations of Mini vMac installed.
{Alpha} Non Disk Image Protection
Enable Emulated Control Toggle
What kind of computer do you want to run Mini vMac on? Choose one of these lines:
-t mc64 { Macintosh OS X - x86-64 } -t imch { Macintosh OS X - x86-32 } -t mach { Macintosh OS X - PowerPC } -t wx64 { Microsoft Windows - x86-64 } -t wx86 { Microsoft Windows - x86-32 } -t lx64 { Linux - x86-64 } -t lx86 { Linux - x86-32 } -t lppc { Linux - PowerPC } -t larm { Linux - ARM } -t lspr { Linux - SPARC } -t fb64 { FreeBSD on x86-64 } -t fbsd { FreeBSD on x86-32 } -t ob64 { OpenBSD on x86-64 } -t obsd { OpenBSD on x86-32 } -t nb64 { NetBSD on x86-64 } -t nbsd { NetBSD on x86-32 } -t db64 { Dragonfly BSD on x86-64 } -t dbsd { Dragonfly BSD on x86-32 } -t oi64 { OpenIndiana on x86-64 } -t oind { OpenIndiana on x86-32 } -t wcar { Pocket PC - ARM }
By default, the user interface of Mini vMac is in English. Other languages can be chosen with one of these lines:
-lang eng { (default) English } -lang fre { French } -lang ita { Italian } -lang ger { German } -lang dut { Dutch } -lang spa { Spanish } -lang pol { Polish } -lang ptb { Brazilian Portuguese } -lang cat { Catalan } -lang cze { Czech } -lang srl { Serbian Latin }
If you would be interested in translating the user interface into some other language, see the Localization page for more details.
By default, Mini vMac emulates a Macintosh Plus. But it also can be compiled to emulate a few other computers, with one of these lines:
-m 128K { Macintosh 128K } -m 512Ke { Macintosh 512Ke } -m Plus { (default) Macintosh Plus } -m SE { Macintosh SE } -m Classic { Macintosh Classic } -m SEFDHD { Macintosh SE FDHD } -m II { Macintosh II * }
* The Macintosh II emulation is incomplete, and should not be relied on to give accurate results, particularly numeric results. (Emulation of the Floating Point Unit is the main incomplete part.) It does seem suitable for games, many of which appear to work perfectly well.
The Macintosh II emulation is not available on a Macintosh 680x0 target (“-t m68k”), because the compiler used doesn’t support 64 bit integers currently needed for FPU emulation.
Since a Macintosh II can be hard to find, the Macintosh II emulator will accept the ROM from Macintosh IIx. The Macintosh IIx ROM appears to work with Macintosh II hardware. The Macintosh IIcx, the Macintosh II FDHD, and the Macintosh SE/30 all have the same ROM as the Macintosh IIx.
You can choose the emulated screen size with lines such as:
-hres 640 { horizontal resolution } -vres 512 { vertical resolution }
Mini vMac requires that the horizontal resolution be a multiple of 32.
For the Macintosh Plus, and other Macintosh computers without Color Quickdraw, this is a hack implemented with numerous ROM patches. It emulates a computer that never existed, so there will definitely be compatibility issues with some software. Also keep in mind that most games that will work on the Macintosh Plus are designed for 512x342, and don't benefit from a larger screen. You can also set the emulated screen smaller than 512x342, which could be useful on portable devices, but that will really cause compatibility issues.
For the Macintosh II emulation, these options specify the resolution of the external monitor, and shouldn't cause compatibility problems, at least if you choose values that were common on real monitors of the era. On the other hand, the Macintosh II emulation is unfinished, and not really usable yet.
Some example screen sizes:
common old Macintosh screen sizes
-hres 512 -vres 384 -hres 640 -vres 480 -hres 800 -vres 600 -hres 1024 -vres 768
common current screen sizes, but divided by two, so can use Magnify in full screen
-hres 512 -vres 384 { half 1024 x 768 } -hres 640 -vres 400 { half 1280 x 800 } -hres 640 -vres 512 { half 1280 x 1024 } -hres 704 -vres 450 { half 1440 x 900, width constrained } -hres 832 -vres 525 { half 1680 x 1050, width constrained } -hres 960 -vres 540 { half 1920 x 1080 } -hres 960 -vres 600 { half 1920 x 1200 }
Mini vMac allows up to 4 Megabytes of Video RAM in the Macintosh II emulation. Anything over 1 Megabyte requires a hack, since each NuBus slot only gets 1 Megabyte of the address space in 24 bit mode. Space from adjacent NuBus slots is given to the emulated video card.
You can choose the emulated screen color depth with lines such as:
-depth 0 { black and white } -depth 1 { 2 bit color (4 colors) } -depth 2 { 4 bit color (16 colors) } -depth 3 { 8 bit color (256 colors) (default for Mac II emulation) } -depth 4 { 16 bit color (thousands) } -depth 5 { 32 bit color (millions) }
These options only work for Macintosh models that support Color Quickdraw, which currently means Mac II emulation only.
To use thousands or millions of colors in System 6, you need to have 32-Bit QuickDraw, which is available from the System 6.0.8 installer, under Customize.
Color depth is a compile time option, instead of run time option, to help keep Mini vMac simple and small. However, regardless of the chosen color depth, Black and White is also available, and can be selected from the "Monitors" control panel. (In fact, you may not see color until selecting it from the "Monitors" control panel.)
-fullscreen 0 { (default) start with Full Screen Mode off } -fullscreen 1 { start with Full Screen Mode on }
-var-fullscreen 0 { Full Screen Mode is constant } -var-fullscreen 1 { (default) Full Screen Mode is variable }
"-var-fullscreen 0" combines with -fullscreen like so:
-var-fullscreen 0 -fullscreen 0 { Never run in Full Screen Mode } -var-fullscreen 0 -fullscreen 1 { Always run in Full Screen Mode }
In both cases, the "F" control mode command disappears.
-magnify 0 { (default) start with Magnify Mode off } -magnify 1 { start with Magnify Mode on }
The magnification factor can be changed:
-mf 1 { disable magnification } -mf 2 { (default) 2x } -mf 3 { 3x } -mf 4 { 4x } ...
Disabling magnification with "-mf 1" removes the Control-M command.
The Macintosh, Windows, Linux, FreeBSD, and NetBSD versions have sound emulation on by default. The Dragonfly BSD and OpenIndiana version can be compiled with sound, but this hasn't been tested. The OpenBSD version can be compiled with sound, but it doesn't work. (Other versions don't implement sound.)
-sound 1 { Emulate sound } -sound 0 { No sound emulation }
One reason to disable sound is to avoid the Macintosh start up beep. Another reason is to get a few percent better performance.
-sss 3 { (default) 8 bit sound } -sss 4 { 16 bit sound }
A Macintosh Plus outputs 8 bit sound (256 possible levels), which is then modulated by the sound volume setting (8 possible levels), and also by the square wave generator. By default Mini vMac currently outputs 8 bit sound, but there is an option to output 16 bit sound, which allows more accurate output when the sound volume setting is less than maximum, and when the square wave generator is used.
By default, Mini vMac can mount up to 6 disk images (but for the Mac 128K/512K emulation the default is 2). This is because the replacement disk driver is trying to match the size of a data structure used by the real disk driver (on the Macintosh 128K/512K this structure is smaller). You can at compile time choose to support more disk images, up to 32, which makes this data structure larger, at some slight decrease in authenticity, and some slight memory and time overhead. Use a line such as:
-drives 1 -drives 2 -drives 3 ... -drives 6 { (default) } ... -drives 16 ... -drives 32
According to Apple’s Technical Note FL530, some versions of the System Software will not work correctly with more than 20 mounted volumes. The Standard File dialogs will corrupt the stack and may crash.
One reason for using the “-drives” option is that the installer programs for some Macintosh applications don't cope very well with multiple floppy drives, and insist on constantly ejecting the boot or destination disks rather than the install disks it has finished with. Some installers with this problem work much better if all installation disks can be mounted at once before starting.
{Alpha} Non Disk Image Protection
-npd 0 { turn off Non Disk Image Protection }
As of branch 37, Mini vMac will check if a disk image that is being mounted looks like a Macintosh disk image format (HFS or MFS), and if not decline to mount it, showing an error message. This helps prevents accidentally corrupting other files, especially when using ImportFl.
But there are some other disk image formats that you might want to mount, such as Fat16 and ISO (which can be used by the emulated Macintosh with additional software). Or, you may be trying to create your own new disk image and want the emulated Macintosh to initialize it. In these cases you can use a version of Mini vMac compiled with the “-npd 0” option to turn off this protection.
If a Branch option prior to 37 is chosen for compatibility with an earlier version, the default is “-npd 0”, and you can use “-npd 1” to turn on this protection.
-sony-sum 1
With the above line, Mini vMac will update the checksum in a Disk Copy 4.2 disk image when it is unmounted. This prevents other programs that deal with such images from complaining about an invalid checksum. (I didn't include this by default, because it makes Mini vMac slightly bigger and slower.)
-sony-tag 1
With the above line, Mini vMac tries to support file tags, for disk image formats that support them. There are an additional 12 bytes for each 512 byte block on a 400K or 800K floppy disk, containing some additional information that was supposed to aid in recovering damaged disks, but was never actually used much. The Disk Copy 4.2 disk image format can support these tags. (The more usual raw format, such as found in Blanks, does not.)
For full support of Disk Copy 4.2 format, enable both checksums and tags:
-sony-sum 1 -sony-tag 1
-sony-dc42 0
The above line completely disables support for disk images in disk copy 4.2 format. This could be useful when trying to compile the smallest and simplest version of Mini vMac possible for some specific purpose. It should not be used when compiling a version of Mini vMac for general distribution, because a primary goal of Mini vMac is that disk images that work with any past version of the program should also work with the current and any future version (at least when default compile options are used).
-svd 0 { disable save dialog }
Normally the OS X and Windows versions will display a save dialog when the Mini vMac extension to create a file is used. A save dialog is not implemented in the Linux version, instead it will create the file in a folder named “out” in the application directory. When this option is used to disable the save dialog, the OS X and Windows version will also save to an “out” folder in the same fashion as the Linux version. This is helpful when using Mini vMac in automated scripts.
-iid 1 { enable Insert Ith Disk Image }
When this feature is enabled, if the Control key is held down and a number key from ‘1’ to ‘9’ is pressed, then Mini vMac will try to mount a disk image named from "disk1.dsk" to "disk9.dsk" in the folder containing the application.
This is the same series of disk image names that are automatically mounted when Mini vMac is launched. But it stops at the first image not found. So if you leave a name unused, then you can use a control-number key to mount disks after launch. Or, you can use a control-number key to remount a disk that was automatically mounted at launch and then later ejected.
One example use is if you have one copy of Mini vMac running a development environment (such as MPW) that is used to compile a program to a disk image. The disk image is then unmounted and mounted on another copy of Mini vMac running a testing environment. If the compiled program crashes badly, the development environment is not disturbed. The control-number key feature makes it easier to move the disk image back and forth between the two copies of Mini vMac.
You can swap the emulated Command and Control keys with:
-ccs { Command Control Swap }
This could be useful for people who are used to Windows, so that you can use Control-C to copy instead of Command-C (or actually Alt-C, as Alt is located where the Command key is on a Macintosh keyboard).
It can also be useful for people used to Macintosh who have remapped the keys on their Windows machine to swap Control and Alt. Using '-ccs' will swap them back for Mini vMac.
Linux is the same as Windows in this way, as far as I have seen.
The '-ccs' option does not affect F1 and F2, but should affect any other keys that get mapped to Control and Command.
Change the mapping between keys on the real Keyboard and keys on the emulated Keyboard, or the Mini vMac Control Mode. For example:
-km Escape CM -km Control Control
The first -km above allows using the Escape Key for the Mini vMac Control Mode. The second -km allows using the Control Key to mean Control Key instead of the Mini vMac Control mode.
The general format is “-km <src> <dst>”, where <src> and <dst> can be one of:
Control Command Option Shift CapsLock Escape BackSlash Slash Grave Enter PageUp PageDown Home End Help ForwardDel F1 F2 F3 F4 F5
In addition <dst> can be “CM”, which means the key for the Mini vMac Control Mode.
Also in addition, <src> can be one of:
RControl RCommand ROption RShift
Which means the keys on the right hand side of the keyboard, when both the operating system and the keyboard hardware permit distinguishing them from the left hand keys.
It is an error to have no key mapped to the control mode.
-ekt <dst>
Where <dst> can be any of the values allowed for the -km option, except “CM”.
Chooses which emulated key is toggled by the ‘K’ command of the Mini vMac Control Mode.
When this option is not used, the build system will pick an emulated key that is not mapped to any real key. That will be the control key if no “-km” options are used.
-akm { enable Alternate Keyboard Mode }
Some commonly used keys, such as the arrow keys, are a bit of a stretch to reach, and more importantly, their positions can be different on different keyboards. The Alternate Keyboard Mode provides an alternate way to type some of these keys.
The program starts with the mode on. Pressing the 'm' key leaves the mode. The intent is that you only leave the mode temporarily to type text. (I believe this is a similar idea to how the vi text editor works.) The alternate keyboard mode is entered by pressing the ';' key. Pressing ';' has no effect when in the alternate keyboard mode, so it can be used at any time to bring the program to a known state.
In the Alternate Keyboard Mode, the letter keys are remapped as follows (non letter keys are unchanged):
j - Left arrow
l - Right arrow
i - Up arrow
k - Down arrows - Shift
d - Option
f - Commandz - F1 (often means Undo)
x - F2 (often means Cut)
c - F3 (often means Copy)
v - F4 (often means Paste)e - BackSpace
r - Return
t - Tab
g - Enter
y - Escapea - SemiColon
u - [
o - ]
b - BackSlash
h - Equal
n - Minus
q - Grave
There is a visual indication when the mode is off, intended to be easy to see in peripheral vision, without covering up where text is normally typed.
Holding down the command, option, or shift keys will temporarily turn off the Alternate Keyboard Mode. So if you have the mode on, commands like Command-S will still work, and anything except lowercase letters can be typed without leaving the mode.
The Virtual-Key Codes of Microsoft Windows, that are independent of differences in keyboard hardware, turn out not to be independent of the choice of Keyboard Layout. Changing the Keyboard Layout to something other than "US" may scramble the Virtual-Key Codes, strangely enough. Mini vMac will check the current Keyboard Layout, and attempt to unscramble the codes, so that the Keyboard Layout chosen in Macintosh operating system running within Mini vMac will work properly. You can disable this fix with:
-ikb 0 { International Keyboard fix off }
One reason for disabling it is because this is fairly large amount of code and US only users don't need it. But also it can be disabled because I'm not sure I really understand this. Why did no one complain about this issue in a decade?
This option is only for Microsoft Windows.
You can use one of these lines to set initial speed:
-speed z { 1x } -speed 1 { 2x } -speed 2 { 4x } -speed 3 { 8x } -speed 4 { 16x } -speed 5 { 32x } -speed a { All out }
The default speed is usually 8x. For the Macintosh II the default speed is 4x. (A Macintosh II has twice the clock rate, so the actual number of instructions per second executed by default is the same. Actually, a real Macintosh II has a 68020 which executes more instructions per clock cycle than a 68000, but Mini vMac doesn’t account for that yet.)
You can use one of these lines to set initial value of the Run in Background option:
-bg 0 { (default) start with Run in Background off } -bg 1 { start with Run in Background on }
You can use one of these lines to set initial value of the AutoSlow option:
-as 0 { start with AutoSlow disabled } -as 1 { (default) start with AutoSlow enabled }
For Macintosh II emulation, AutoSlow is disabled by default. AutoSlow may need some further tuning to work well with Mac II emulation.
Mini vMac estimates the number of clock cycles used by each instruction excuted. There are three levels of accuracy.
-ta 0 { least accurate timing } -ta 1 { (default) } -ta 2 { most accurate timing }
In "-ta 0" all instructions are assumed to take the same number of cycles. This closely matches Mini vMac 3.1.3 and earlier.
For "-ta 1", Mini vMac assigns an average number of cycles for each of the 65536 primary opcodes. This table is generated using timings from Motorola documentation. When a range of timings are possible for a primary opcode, an average was just guessed. In some future version of Mini vMac, this table should be tested and calibrated by comparing to real hardware.
For "-ta 2", Mini vMac supplements the cycles table by computing more accurate estimates for certain instructions depending on the current data. It is still not completely accurate. Completely accurate timing would be exceedingly difficult. For example, the CPU and video output conflict for accesses to RAM, and that would seem very complex to model.
Currently 68000 timings are used even in the 68020 emulation. More accurate timing for 68020 should be added in a future version. Truly accurate timing for 68020 would be much more difficult than for the 68000 because of pipelining and caching, probably to the point of being unfeasible for Mini vMac. But more accurate averages should be possible.
Most computers emulated by Mini vMac have a 68000 processor. But you can force Mini vMac to emulate a 68020 processor with:
-em-cpu 2 { 68020 }
By default, Mini vMac emulates a Macintosh Plus with 4M of memory. But it also can be compiled to emulate other memory sizes, depending on model:
Macintosh 128K and Macintosh 512Ke : -mem 128K { 128 Kilobytes } -mem 512K { 512 Kilobytes } Macintosh Plus : -mem 128K { 128 Kilobytes } -mem 512K { 512 Kilobytes } -mem 1M { 1 Megabyte } -mem 2M { 2 Megabytes } -mem 2.5M { 2.5 Megabytes } -mem 4M { (default) 4 Megabytes } Macintosh SE, Classic, and SE FDHD : -mem 512K { 512 Kilobytes } -mem 1M { 1 Megabyte } -mem 2M { 2 Megabytes } -mem 2.5M { 2.5 Megabytes } -mem 4M { (default) 4 Megabytes } Macintosh II : -mem 1M { 1 Megabyte } -mem 2M { 2 Megabytes } -mem 4M { 4 Megabytes } -mem 5M { 5 Megabytes } -mem 8M { (default) 8 Megabytes }
The build system checks that the memory size you specify is supported by the Macintosh model you have chosen to emulate.
-cbt 3 { Fast } -cbt 8 { Medium } -cbt 15 { Slow }
The “Rate of Insertion Point Blinking” is stored in the Parameter RAM. The default is 3 (Fast), except for Macintosh II emulation where it is 8 (Medium). Must be between 1 and 15.
-dct 5 { Fast } -dct 8 { Medium } -dct 12 { Slow }
The “Double Click Time” (the maximum time between mouse button clicks which will be treated as a double click) is stored in the Parameter RAM. The default is 5 (Fast), except for Macintosh II emulation where it is 8 (Medium). Must be between 1 and 15.
-mnb 0 { None } -mnb 1 { once } -mnb 2 { twice } -mnb 3 { (default) thrice }
The number of times the selected menu item blinks when when the mouse button is released, which is stored in the Parameter RAM.
-kyt 0 { Off } -kyt 10 { Long } -kyt 6 { (default) } -kyt 4 -kyt 3 { Short }
The delay after a key is held down until it begins to automatically repeat, which is stored in the Parameter RAM. Must be between 0 and 15.
-kyr 0 { Slow } -kyr 6 -kyr 4 -kyr 3 { (default) } -kyr 1 { Fast }
The rate at which a key automatically repeats when it is held down, which is stored in the Parameter RAM. Must be between 0 and 15.
-svl 0 { Minimum } ... -svl 7 { Maximum }
The Sound Volume is stored in the Parameter RAM. The default is 7 (Maximum) when sound is enabled, otherwise it is 0.
-hcr 39321 { red component } -hcg 52428 { green component } -hcb 65535 { blue component }
The color that is used for selected text, for example. It is stored in the Parameter RAM. There are three separate options for the red, green, and blue components. Each component value must be betwen 0 and 65535. If its option is not present, the value of the component is 0. These options are only allowed for Macintosh II (or IIx) emulation.
The “GetPRAM” tool can be used to get values for these options. That is, first set the desired highlight color in the “Color” Macintosh Control Panel, and then run GetPRAM.
The Parameter RAM has fields for Latitude and Longitude, which can be set with the Map control panel, and are only used by a few programs. Mini vMac tries to automatically set these fields by asking the host operating system. This is currently implemented only for older Macintosh, not including the latest port for Cocoa. When not implemented, both fields are set to zero. The automatic setting of these fields can be disabled by:
-alc 0 { Disable Automatic Location }
With the above option, the Latitude and Longitude can be set manually:
-lcy 485768755 { Latitude } -lcx -883053230 { Longitude }
The above example is for New York city. The Latitude and Longitude in degrees is devided by 90 and then multiplied by 2 to the 30th power. The “GetPRAM” tool can be used to get values for these options. That is, first set the desired highlight location in the “Map” Macintosh Control Panel, and then run GetPRAM.
If ‘-alc 0’ is not used, then the ‘-lcy’ and ‘-lcx’ options will be ignored without warning. This is so the output of GetPRAM can be used directly without always disabling Automatic Location.
These options may not be used when emulating a Mac 128K, 512K, or 512Ke, which do not have Extended Parameter RAM.
The Parameter RAM has fields for Time Zone, which include an offset in seconds from Greenwich mean time, and a flag for whether daylight saving time is in effect. The offset can be set with the Map control panel, and the flag can be set with the Data and Time control panel in System 7.5. These fields are only used by a few programs. (The system clock is kept in local time, and most programs use only local time.) Mini vMac tries to automatically set these fields by asking the host operating system. This is implemented for Macintosh, Windows, Linux. When not implemented, both fields are set to zero. The automatic setting of these fields can be disabled by:
-atz 0 { Disable Automatic Time Zone }
With the above option, the Time Zone field can be set manually:
-lcd 1 { Daylight Saving Time in effect } -lczs -18000 { offset from GMT in seconds }
When the offset is even multiple of 3600, as is almost always the case, you can use:
-lcz -5 { offset from GMT in hours }
The “GetPRAM” tool can be used to get values for these options. That is, first set the desired highlight location in the “Map” Macintosh Control Panel, and if desired set the Daylight Savings flag in the “Data and Time” Macintosh Control Panel, and then run GetPRAM.
If ‘-alc 0’ is not used, then the ‘-lcd’, ‘-lczs’, and ‘-lcz’ options will be ignored without warning. This is so the output of GetPRAM can be used directly without always disabling Automatic Time Zone.
These options may not be used when emulating a Mac 128K, 512K, or 512Ke, which do not have Extended Parameter RAM.
-min-extn { Minimum Extensions }
This option turns off all but the minimum Mini vMac extensions, such as importing and exporting the clipboard, and creating new disk images and files, leaving just what is needed for the replacement disk driver to operate.
This makes the program smaller, and perhaps reduces potential security concerns. So it could be worth doing for when the extensions aren't needed, such as for most games.
-emm 0 { less accurate emulation in Full Screen Mode }
This option disables the more accurate mouse emulation normally used in Full Screen Mode, which looks at the motion of the real mouse rather than its absolute position. This allows Mini vMac to work somewhat better on tablet computers without a mouse. But such computers are still not really supported.
-gkf 0 { don't grab keys in Full Screen Mode }
Normally, when in Full Screen Mode, Mini vMac will try to “grab” the keyboard, preventing the operating system from intercepting keys. So in the Windows version, the ‘windows’ key can be used as an ‘option’ key, instead of popping up the “Start” menu. And in the OS X version, Command-Tab won't switch away from Mini vMac. This is also implemented in the X version.
This option disables grabbing the keyboard, allowing the operating system to intercept keys when Mini vMac is in Full Screen Mode.
-eci 0 { disable Control-I command }
The ‘I’ command of the Mini vMac Control Mode, which presses the emulated Interrupt Button, can be disabled.
In a future version, it may be disabled by default. (In the original Macintosh, the Interrupt Button was disabled by default. You needed to install the “Programmer’s Switch” to use it.)
-ecr 0 { disable Control-R command }
The ‘R’ command of the Mini vMac Control Mode, which presses the emulated Reset Button, can be disabled.
In a future version, it may be disabled by default. (In the original Macintosh, the Reset Button was disabled by default. You needed to install the “Programmer’s Switch” to use it.)
Enable Emulated Control Toggle
-eck 0 { disable Control-K command }
The ‘K’ command of the Mini vMac Control Mode, which toggles the emulated control key, can be disabled.
In a future version, it may be disabled by default. (The original Macintosh did not have a control key. And, using this command accidentally would be confusing.)
-ci 0 { do not use 32 bit drawing }
This option is only for Linux and other X versions, when color depth is zero. Passing single bit per pixel images to the operating system is suspected to be unreliable, so Mini vMac now always passes 32 bit images. This option forces it to use single bit images, which may be more efficient, when you know that it works (i.e. there weren't problems in Mini vMac 3.4 and earlier).
-gse 1 { allow switching GPU }
This option is only for the Cocoa version for OS X. On computers with more than one GPU, it allows the operating system to choose which one is used. Otherwise on a MacBook pro, it is reported that the higher power discrete GPU is always used instead of the lower power integrated GPU, and that besides wasting power for no noticable benefit, it also takes time to switch on the discrete GPU when Mini vMac starts.
This will probably become the default in a future version.
-sgn 0 { disable code signing }
This option is only for the Cocoa version for OS X which, as of Mini vMac 36, is normally signed with a certificate from Apple, so that the Gatekeeper feature of OS X will permit it to run.
Gatekeeper was added in OS X Mountain Lion (10.8). By default, the operating system will refuse to run applications downloaded from the internet, unless Apple considers it trustworthy (because it is digitally signed by a developer registered with Apple). Gatekeeper is in some ways a good idea, but some people consider it as one step along the way to making OS X like iOS, where no software can be installed without Apple's permission, and emulators are forbidden, including Mini vMac.
When Mini vMac is signed, Apple can at any time choose to revoke the certificate, and Mini vMac will stop working.
Another issue is that, since Mini vMac doesn’t use Apple’s time stamp server (because that would break reproducible builds, among other problems), Mini vMac will probably stop working when the certificate expires, 5 years after being issued. (The plan is to renew the certificate every year, so that a compile of Mini vMac should work for at least 4 years.)
To avoid these issues, you can disable code signing. The disadvantage is that OS X will by default refuse to run it. One way to override Gatekeeper, giving an application permission to run, is to hold down the control key and click on its icon (or right click) to get a contextual menu, then choose the Open item, and in the warning dialog that comes up click on the Open button. (This only needs to be done the first time Mini vMac is run.)
-sbx 1 { enable Sandboxing }
This option is only for the Cocoa version for OS X. It enables “Sandboxing”, an Apple security mechanism, so that any bugs, or even maliciousness, in Mini vMac can only do limited harm. However, it does remove some capabilities. The single requested “entitlement” allows Mini vMac to read and write files that the user has selected, with the Open File dialog, or by dragging into the Mini vMac window or icon.
But Mini vMac’s ability to automatically find files by name in special locations is severely restricted. It is prevented from finding “vMac.ROM”, “disk1.dsk”, “disk2.dsk”, etc. in the folder containing the application. It can find such files in a “mnvm_dat” folder created inside the application, but only read only. It does not have access to “~/Library/Preferences” to find “vMac.ROM” (but it does get access to the corresponding folder inside its container folder, which is obscure). It does have read only acces to “/Library/Application Support/”. Furthermore, if these named files are links, that won’t work unless the file linked to is in one of the few places that a Sandboxed application has access to.
This may become the default in a future version.
-ahm none { (default) } -ahm aside -ahm cheese -ahm evil -ahm horror -ahm lady_mac -ahm moustache -ahm nerdy -ahm pirate -ahm sleepy -ahm sly -ahm sunglasses -ahm surprise -ahm tongue -ahm yuck -ahm zombie
Patch the ROM to replace the “Happy Mac” icon displayed on boot when a disk is inserted, with one of the images designed by Steve Chamberlin for his Mac ROM-inator (used with permission).
-rsz 16 { 64K } -rsz 17 { 128K } -rsz 18 { 256K } -rsz 19 { 512K } -rsz 20 { 1024K }
The build system will normally select the correct ROM Size for the Macintosh model you have chosen to emulate. But you can override this, such as to use a ROM image for Steve Chamberlin’s Mac ROM-inator. If you use this option, you will also need “-chr 0” as described below. (You may also want “-drc 0 -drt 0 -speed z -ta 2 -sony-sum 1 -sony-tag 1” to test the image with maximum accuracy.)
The first 4 bytes of a Macintosh ROM contain a checksum of the remaining bytes, and there is code in the ROM to check the checksum on boot. Mini vMac patches the ROM image, so it disables this checking code. Mini vMac does the check itself before patching the ROM. It also checks that the 4 byte checksum matches one of the known ROM images for the model you have chosen to emulate. If you want to have Mini vMac use a ROM image that has been modified you can disable these checks with:
-chr 0
There is code in the Macintosh ROM to checksum the ROM at boot. Since Mini vMac patches the ROM, it also patches out this check. If you are using a ROM image with Mini vMac that is already patched (such as for Steve Chamberlin’s Mac ROM-inator ), this check may already be patched out. In that case Mini vMac doesn't need to, and probably shouldn't, to avoid interference in case a different method of patching out is used.
-drc 0 { Don’t Disable Rom Check }
There is code in the Macintosh ROM to test proper operation of RAM at boot. Mini vMac normally patches the ROM to disable this test, to speed up booting. For greater realism, you can leave this test in.
-drt 0 { Don’t Disable Ram Test }
-lt { LocalTalk emulation }
This enables Mike Fort's LocalTalk emulation. There are currently some limitations. It is only implemented for OS X. It requires running the command “sudo chmod ugo+rw /dev/bpf*” to allow Mini vMac (and everyone else) access to all network traffic. The “-lt” option also causes Mini vMac to run in the background by default, because Mini vMac can't be a proper LocalTalk node if it isn't running. And you need to manually turn on AppleTalk in the chooser - I can set the PRAM flags to boot with AppleTalk already on, but it doesn't work properly.
There is a now a second option for transporting LocalTalk packets, using UPD, by Rob Mitchelmore. It does not require setup or administrative privileges (no “sudo chmod ugo+rw /dev/bpf*” needed). The options are:
-lto udp { LocalTalk over User Datagram Protocol (default) } -lto bpf { LocalTalk over Berkeley Packet Filter }
The new UPD option is the default as of Mini vMac branch 37. But if a prior Branch option is chosen for compatibility with an earlier version, the default is BPF.
-im 1 { Icon Master }
When compiled with the "Icon Master" setting turned on, Mini vMac will try to take ownership of Disk Image files and ROM Image files. It is better to have at most one copy of Mini vMac compiled with '-im 1' on a single computer. It may be preferred to have no copies of Mini vMac compiled with '-im 1', to avoid possible conflicts with other programs.
In Mac OS X, Windows, and Mac OS 9 and earlier, double clicking on a Disk Image icon will open it with a copy of Mini vMac compiled with '-im 1'. Also, Disk Image and ROM Image files will be given Mini vMac icons.
In Mac OS 9, and early versions of OS X, Disk Image files should have the creator type set to “MnvM” for double clicking to work (see “SetFType”). Also, the file type should be “MvIm” to see the Mini vMac Disk Image icon. ROM Image files should have the creator type “MnvM” and the file type “ROM!” to see the Mini vMac ROM Image icon.
In Windows and later versions of Mac OS X, Disk Images files should have a name that ends in “.dsk” for double clicking to work and to see the Mini vMac Disk Image icon. ROM Images files should have a name that ends in “.ROM” to see the Mini vMac Disk Image icon.
In Windows, a copy of Mini vMac compiled with '-im 1' will install itself in the registry when it is launched. So it will not take ownership of Disk Image and ROM Image files until after the first launch. (And the Mini vMac document icons may not appear until the computer is rebooted.) Mini vMac can only install itself in the registry if it is launched from an administrator account.
This setting currently has no effect in the Linux and other X versions.
-abr 1 { enable Abnormal Situation Reports }
When enabled, Mini vMac will display a warning message when it encounters an unexpected situation. The warning will include a 4 digit hexadecimal number that indicates the particular situation. A warning is displayed only after the first abnormal situation Mini vMac encounters, thereafter it is suppressed.
This is not enabled by default, because in the final stable version, it mostly reports about harmless bugs in Macintosh 680x0 software. Enabling it can be useful for programmers working on Mini vMac, and perhaps also for programmers writing Macintosh 680x0 software.
When trying to emulate some aspect of Macintosh hardware, my current strategy is not to try to figure it all out and then implement the entire emulation as best I can. Because if I did that, inevitably there would be a mistake somewhere, and when that causes some software to malfunction, I won’t have any clue of where to look for the mistake. Instead I would start with a place holder Abnormal Situation report. Then I find some Macintosh software that reaches that report, and look at that area of its code, and try to figure out what it is trying to do. Then I try to implement just enough emulation for it to work correctly, and give an Abnormal Situation report for code that does something else. If the Macintosh software still doesn't work, the problem is probably in the code I just wrote. If it does work, then I next try find some other Macintosh software that hits one of the new Abnormal Situation reports. And iterate. The result is code that is usually correct for what it does, and will tell you exactly where to look when it reaches something that hasn’t been implemented yet.
-cte 1 { Compile Error }
If this option is present, the build system will generate source code that causes the compiler to generate an error. This is for testing the variation service.
-bte { Build System Error }
If this option is present, the build system will treat it as an error. This is for testing the variation service.
! { Override }
Normally it is an error for the same option to be used twice. If this option is present, then options to the right of it will override options to the left of it. It is still an error for an option to be used twice on the same side of ‘!’.
-br 36 { Options were from Mini vMac 36 }
This option is for future use. It currently has no effect. {Alpha} It is now used in Mini vMac 37.
It tells the build system that the requested options were from a specific branch (version) of Mini vMac. The ‘P’ command of the Mini vMac Control Mode gets the options from an existing variation, and includes this Branch setting. If the default settings have changed from since that older version, then the build system will use defaults of the old version, rather than the current defaults. So the newly generated variation behaves as close as possible to the earlier variation.
The ‘P’ command retrieves the options in a canonical form. It always generates a “-br” option for the current version, rather than copying any “-br” option passed to the build system.
:
If you find Mini vMac useful, please consider helping the Gryphel Project.
Next - Options for developers
There are two issues in recent versions of OS X that cause problems for Mini vMac.
Quick Fix : run “xattr -cr <Path to Mini vMac>” in the terminal.
(step by step instructions below)
Further explanation:
One issue is caused by Path Randomization, added in macOS Sierra (10.12). If an application that Apple thinks is trustworthy is bundled together with malicious library code in the same folder, the malicious code may be run by the application. The silly way that Apple has chosen to prevent this is to in effect move the application somewhere else before running it, so it can’t find the library code. It can’t find anything else in the application’s folder either, which is a problem for Mini vMac, which looks for things in its folder, such as the ROM image file. One work around is to put the image in one of the other places that Mini vMac looks, as described in the ROM section of the Emulated Hardware Reference. Another option is to tell macOS not to do Path Randomization for Mini vMac, using the xattr command, as described in more detail below.
The other issue is caused by Gatekeeper, added in OS X Mountain Lion (10.8). By default, the operating system will refuse to run applications downloaded from the internet, unless Apple considers it trustworthy (because it is digitally signed by a developer registered with Apple). Gatekeeper is in some ways a good idea, but some people consider it as one step along the way to making OS X like iOS, where no software can be installed without Apple's permission, and emulators are forbidden, including Mini vMac. So I decline to participate, and Mini vMac is not signed with an Apple Developer ID. One way to override Gatekeeper, giving an application permission to run, is to hold down the control key and click on its icon (or right click) to get a contextual menu, then choose the Open item, and in the warning dialog that comes up click on the Open button. (This only needs to be done the first time Mini vMac is run.) Another option is to use the xattr command.
* From the Finder, choose the “Utilities” from the “Go” menu.
* Find the “Terminal” application (in the “Utilities” folder just opened), and launch it.
* Type “xattr -cr ” (not including the quotes, but including the trailing space), into the Terminal window that has just opened.
* Drag the icon of the Mini vMac application into the terminal window. (This should paste in the path string). The result should look something like:
xattr -cr /Volumes/rd/Mini\ vMac.app
* Press the return key to execute the command. (This clears all extended attributes of all files in the application bundle.)
* You should now be able to launch Mini vMac without interference from Gatekeeper and Path Randomization.
warning: You should only do this for applications that you have reason to trust. Please only download Mini vMac from pages on “www.gryphel.com”. It would also be to good to check the md5 checksum and the signature.
On the main Mini vMac download page I provide versions of Mini vMac compiled for several platforms. Other people have ported Mini vMac to other platforms. I've listed the ports that I know of on this page below. Note that I don't maintain these ports, and can not help you with them. If you port Mini vMac to another platform, please let me know.
port by Gil Osher
port by “zydeco”
port by Tara Keeling
compiled by maintainer of “Windows ARM” website
port by Fabio Concas
(SPARC and x86)
packages by Luc Pauwels
:
Next - Localization
Quick Summary
Use the System 6 utility disk image to convert the 7 archive files of British System 7.0.1 into disk image files that Mini vMac can use.
British System 7.0.1 is useful for converting images in ".smi.bin" format (Self Mounting Images encoded in Macbinary) into disk images that can be used by Mini vMac.
Ingredients
The "Sys6Util.dsk" disk image file, from the "System 6 utility disk recipe".
The "Blanks" collection.
The 7 archive files of the British System 7.0.1 from Apple:
Start
Launch Mini vMac
Mount the image file "Sys6Util", such as by dragging the icon of the image onto the Mini vMac window.
Unzip the file "005M.zip" (in the "M" folder) from the Blanks collection.
Mount the resulting "005M.dsk" image in Mini vMac.
Open the "Untitled" disk, such as by double clicking on its icon.
Drag the "Untitled" window lower.
...
...
Make the "Untitled" window larger.
...
...
:
:
Launch the "ImportFl" application, such as by double clicking on its icon.
...
Import the file "Disk_Tools.image.sea.bin", such as by dragging the icon of the file onto the Mini vMac window.
Click the "Drive" button to switch to the "Untitled" disk.
...
Click the "Save" button to save the imported archive to the "Untitled" disk.
...
Choose "Quit" from the "File" menu.
...
:
:
Click in "Page Up" area to scroll to the top of the "Untitled" window.
...
Launch the "binUnpk" application, such as by double clicking on its icon.
...
Choose "Open" from the "File" menu.
Click the "Drive" button to switch to the "Untitled" disk.
...
Select the archive file.
Click the "Open" button.
...
:
:
Click the "Save" button.
...
Choose "Quit" from the "File" menu.
...
Launch the Self Extracting Image (".sea) application, such as by double clicking on its icon.
...
Click the "Continue" button.
...
Click the "Save" button.
...
...
:
Quick Summary
Install British Macintosh System 7.0.1 on a blank disk image, and then add the utilities ImportFl, binUnpk, and ExportFl.
This is useful for opening images in ".smi.bin" format (Self Mounting Images encoded in Macbinary). For some reason these images work in British 7.0.1, but not in North American 7.0.1, at least on a Macintosh Plus.
Ingredients
The 7 images from the "British System 7.0.1 install images recipe". (Actually only four are used: Install 1, Install 2, Tidbits, and Fonts.)
The "Blanks" collection.
The "Sys6Util.dsk" disk image file, from the "System 6 utility disk recipe". (For a quick way to get a copy of ImportFl, binUnpk, and ExportFl.)
Start
Launch Mini vMac
Mount the image file "Install 1", such as by dragging the icon of the image onto the Mini vMac window.
...
Click the "OK" button.
...
Mount the image file "Install 2", such as by dragging the icon of the image onto the Mini vMac window.
Mount the image file "Tidbits".
Mount the image file "Fonts".
Unzip the file "004M.zip" (in the "M" folder) from the Blanks collection.
Mount the resulting "004M.dsk" image in Mini vMac.
Click the "Customize" button.
...
:
:
Click to select "System Software for any Macintosh".
Click the "Install" button.
...
...
...
...
Click the "Quit" button.
...
Choose "Restart" from the "Special" menu.
...
:
:
Mount again the "004M.dsk" image in Mini vMac.
Double click on the "Untitled" icon to open it.
...
Click in the zoom box in the upper right of the "Untitled" window to resize it.
...
Select the icons "Teach Text" and "Read Me", by dragging a rectangle around them.
...
...
Drag the selected icons to the "Wastebasket" (What the "Trash" is called in the British version).
...
...
:
:
Choose "Empty Wastebasket..." from the "Special" menu.
...
Click the "OK" button.
...
Resize the "Untitled" window.
...
Mount the image file "Sys6Util", such as by dragging the icon of the image onto the Mini vMac window.
Drag "Sys6Util" window lower.
...
...
:
These recipes assume you have read the Getting started with Mini vMac page, and have the Mini vMac application (the standard variation version that is appropriate for your operating system), a ROM image from a Macintosh Plus, and System 6.0.8 install disk images.
British System 7.0.1 install images
British System 7.0.1 utility disk
System 7 Tune-Up install image
:
If you find these recipes useful, please consider helping the Gryphel Project, of which it is a part.
Next - Mini vMac User Interface
Quick Summary
Install the game "Lunar Phantom" into a bootable disk image with "AutoQuit". This "wraps" the application, so that it can be used more as you would a native application.
Ingredients
The "Sys6Util.dsk" disk image file, from the "System 6 utility disk recipe".
The "Blanks" collection.
The "AutoQuit" disk image.
The "Lunar Phantom" disk image.
Start
Launch Mini vMac
Mount the image file "Sys6Util"
Unzip the file "1440K.zip" from the Blanks collection.
Mount the resulting "1440K.dsk" image in Mini vMac.
Open the "Untitled" disk, such as by double clicking on its icon.
...
Make the "Untitled" window larger.
...
...
Drag the "Untitled" window lower.
...
...
:
:
Drag the "System Folder" icon onto the "Untitled" disk icon.
(This copies the "System Folder" to the "Untitled" disk image, and automatically places the icon in a good place in the "Untitled" window.)
...
...
...
Mount "AutoQuit" disk image.
Drag the "AutoQuit" application icon onto the Untitled disk icon.
...
...
Start renaming the duplicate "AutoQuit" application by clicking on the icon name.
...
:
:
Type the new name exactly - "Finder". (Six characters, don't type the quotes.)
Type the "return" key to finish renaming.
Drag this "Finder" icon onto the "System Folder" icon.
This will replace the "Finder" that is already in the "System Folder". You will be asked if you really want to do this. (If you are not asked, then you didn't name the replacement exactly to "Finder".)
...
...
Click the "OK" button.
...
Drag the "AutoQuit" disk icon to the trash to eject the disk image.
...
...
:
:
Mount "Lunar Phantom" disk image.
Drag the "Lunar Phantom 1.0" application icon onto the Untitled disk icon.
...
...
Drag the "Lunar_Phantom" disk icon to the trash to eject the disk image.
...
...
Click in "Page Left" area.
...
...
:
Quick Summary
Install Macintosh System 6.0.8 on a blank disk image, and then add the utilities ImportFl, binUnpk, and ExportFl.
This is useful for converting images in ".sea.bin" format (Self Extracting Archives encoded in Macbinary) into disk images that can be used by Mini vMac.
Ingredients
Follow the "Getting started with Mini vMac" page to get the Mini vMac application, a ROM image file (named "vMac.ROM"), the disk image "System Startup" (extracted from "SSW_6.0.8-1.4MB_Disk1of2.sea.bin"), and the file "SSW_6.0.8-1.4MB_Disk2of2.sea.bin".
The "Blanks" collection.
The "ImportFl" disk image. (Download the zipped hfs disk image from the ImportFl page, and unzip it.)
The "binUnpk" disk image.
The "ExportFl" disk image.
Start
Launch Mini vMac
Mount the image file "System Startup", such as by dragging the icon of the image onto the Mini vMac window.
Extract the disk image file "System Additions" from "SSW_6.0.8-1.4MB_Disk2of2.sea.bin".
Mount the image file "System Additions" in Mini vMac.
Unzip the file "1440K.zip" from the Blanks collection. Rename the resulting "1440K.dsk" file to "Sys6Util.dsk".
Mount the "Sys6Util.dsk" image in Mini vMac.
Rename the blank disk from "Untitled" to "Sys6Util", by clicking on the icon and typing.
(The name of a disk image file is independent of the name of the emulated disk it contains, that is shown when the image is mounted in Mini vMac.)
Open the "System Startup" disk, such as by double clicking on its icon.
Launch the installer application, such as by double clicking on its icon.
Click the "OK" button.
Click the "Customize" button.
Click to select "System software for any Macintosh".
:
:
Hold down the shift key, and click to add "32-Bit QuickDraw".
(Without this, color won't work in System 6, in the current state of Mini vMac Mac II emulation).
Click the "Install" button.
...
...
Click the "Quit" button.
...
Choose "Restart" from the "Special" menu.
...
Mount the "Sys6Util" disk image.
Double click on the "Sys6Util" icon to open it.
:
:
Make the "Sys6Util" window larger.
...
...
Choose "Clean Up Window" from the "Special" menu.
...
Click in "Page Up" area to scroll to top.
...
Click in "Page Left" area.
...
:
:
Drag "Sys6Util" window to bottom half of screen.
...
...
Mount "ImportFl" disk image.
Drag "ImportFl" application icon on Sys6Util disk icon.
(This copies the "ImportFl" application to the "Sys6Util" disk image, and automatically places the icon in a good place in the "Sys6Util" window.)
...
...
...
Drag "ImportFl" disk icon to the trash to eject the disk image.
...
...
...
:
Quick Summary
Use the British System 7.0.1 utility disk image to convert the North American Macintosh System 7.0.1 Self Mounting Image into image files that Mini vMac can use.
(Self Mounting Images require System 7 or later, and the System 7 installer from Apple is a Self Mounting Image, which makes things difficult. So the trick here is to use the British System 7, which is available from Apple as Self Extracting Archives that work in System 6.)
Ingredients
The "BrSys7Ut.dsk" disk image file, from the "British System 7.0.1 utility disk recipe".
The "Blanks" collection.
The System_7.0.1.smi.bin archive file from Apple.
Start
Launch Mini vMac
Mount the image file "BrSys7Ut.dsk", such as by dragging the icon of the image onto the Mini vMac window.
Unzip the file "012M.zip" (in the "M" folder) from the Blanks collection.
Mount the resulting "012M.dsk" image in Mini vMac.
Launch the "ImportFl" application, such as by double clicking on its icon.
...
Import the file "System_7.0.1.smi.bin", such as by dragging the icon of the file onto the Mini vMac window.
Click the "Desktop" button.
...
Double click on "Untitled".
...
:
:
Click the "Save" button.
...
Choose "Quit" from the "File" menu.
...
Open the "Untitled" disk, such as by double clicking on its icon.
...
Drag the "System_7.0.1.smi.bin" icon onto the "binUnpk" application icon.
...
...
Click the "Desktop" button.
...
:
:
Double click on "Untitled".
...
Click the "Save" button.
...
Click in the zoom box in the upper right of the "Untitled" window to resize it.
...
Launch the "System_7.0.1.smi" application, such as by double clicking on its icon.
...
:
:
Click the "Agree" button.
...
...
Open the "7.0.1 (1440k.images)" disk, such as by double clicking on its icon.
...
Drag the "7.0.1 (1440k.images)" window lower.
...
...
Choose "Select All" from the "Edit" menu.
...
:
Quick Summary
Use the System 6 utility disk image to convert the (North American) System 7 Tune-Up archive into a disk image file that Mini vMac can use.
(This is nearly identical to the British System 7.0.1 install images recipe. One minor difference is that it is a DiskDoubler self extracting archive instead of StuffIt.)
Ingredients
The "Sys6Util.dsk" disk image file, from the "System 6 utility disk recipe".
The "Blanks" collection.
The System 7 Tune-Up archive from Apple:
Start
Launch Mini vMac
Mount the image file "Sys6Util", such as by dragging the icon of the image onto the Mini vMac window.
Unzip the file "005M.zip" (in the "M" folder) from the Blanks collection.
Mount the resulting "005M.dsk" image in Mini vMac.
Open the "Untitled" disk, such as by double clicking on its icon.
...
Drag the "Untitled" window lower.
...
...
Make the "Untitled" window larger.
...
...
:
:
Launch the "ImportFl" application, such as by double clicking on its icon.
...
Import the file "System7_Tune-Up_1.1.1.sea.bin", such as by dragging the icon of the file onto the Mini vMac window.
Click the "Drive" button to switch to the "Untitled" disk.
...
Click the "Save" button to save the imported archive to the "Untitled" disk.
...
Choose "Quit" from the "File" menu.
...
:
:
Click in "Page Up" area to scroll to the top of the "Untitled" window.
...
Launch the "binUnpk" application, such as by double clicking on its icon.
...
Choose "Open" from the "File" menu.
...
Click the "Drive" button to switch to the "Untitled" disk.
...
Select the archive file.
Click the "Open" button.
...
:
:
Click the "Save" button.
...
Choose "Quit" from the "File" menu.
...
Launch the Self Extracting Image (".sea) application, such as by double clicking on its icon.
...
Click the "Save" button.
...
...
Launch the "ExportFl" application, such as by double clicking on its icon.
...
:
What people have said about Mini vMac - a selection from recent mail ...
Fri, Sep 16 2016
I'm a Linux user, and Mini vMac works great. Thanks for all your amazing work!
Mon, Apr 18 2016
[...] Anyway, thanks a lot for your work, it was really fun to be able to play with my children to Lode Runner in all its glory!
Wed, Apr 6 2016
Hi, I’ve been a user of Mini vMac for about 9-10 years now, and enjoyed every moment of using it. [...]
Tue, 14 May 2013
mini vMac is really amazing. I am one of the original developers of After Dark, and I was able to run After Dark, and THINK C 5.0 inside Mini vMac on a modern Retina MBP with very little fuss. It's fast!
Wed, 22 Feb 2012
I can't express enough to you how nice it has been to be able to take a step into the past and relive the old Mac operating system. There's a staggering level of nostalgia hitting me that I can't describe every time I use your emulator, so I just wanted to thank you for taking care of such an important part of my past. :-)
Tim R.
Tue, 7 Feb 2012
[...] a word of thanks to you for your continued work on Mini vMac. It is without question the best emulator I have ever seen.
John
Sat, 19 Nov 2011
I was so amazed to find that mini vmac ran under Lion and so does (apparently) my Mac program that I wrote in 1991!!
Thanks so much for allowing me to retain this part of my life (and useful functionality).
Todd Katz
Sun, 8 Aug 2010
I was touched when, accompanied by the well known ~SBeep~T, the old familiar screen of my Fat Mac appeared on my PC. It works beautifully. Even the scientific programmes I wrote in the programming language Basic on the Fat Mac perform very well in the mini Vmac. The Mini VMac is fast, reliable and good.
Christ Schreurs
Sat, 12 Dec 2009
I just wanted to say thanks for keeping the fires burning on this project. These days, since I have moved to 64-bit Windows 7 as my primary OS, Mini vMac is the ONLY Mac emulator I've been to run at any level of stability on my Win7 systems. So, your effort is much appreciated, because I have to have my Mac fix now and then!
James
Sat, 10 Dec 2009
[...] love the program ... it has been INVALUABLE to me ... have been able to update edit & update files I've had stored for 20+ years
Jon
Fri, 6 Nov 2009
I tried Mini vMac on Windows 7 64bit Ultimate, it works well and it's so cute! I can show my kids how my first ever computer, a Mac Plus of course, looked like with its 9 inches black and white screen... memories!
Thanks for this great job,Laurent
Fri, 30 Oct 2009
This emulator is incredible. I had reduced expectations from prior experience with emulators, but this one is amazing. I was up and running and playing games I haven't seen in decades in no time at all. Great job!
Thu, 11 Jun 2009
I wanted to let you know that I've submitted a payment at Kagi. I've been doing custom builds of Mini vMac for some time, so I am not really in need of keys for your builds. However, I am incredibly pleased with how nicely Mini vMac works. Most impressive is the video/audio/mouse. Generally, emulators tend to feel a bit laggy/sluggish when it comes to input and they tend to not scale very well to the host screen resolution (not all, but a good portion). Mini vMac, however, is superbly done and full screen is just awesome.
Thank you for the work on this, I am enjoying using an SE again :)
Cheers,
John
Sun, 10 May 2009
[...] And thanks again for the great program. I spent a lot of time messing around with those little black and white computers when I was little, and it means a lot to be able to go back and relive some of that again. :)
-Jacob
Tue, 26 May 2009
MiniVMAC is great! Playing Dark Castle is just awesome, and it's a nive, light and fast emulator, ver well optimized too. [...]
Manuel
Sun, 2 Mar 2008
haven't even tried out the mac emulator yet, but wanted you to know clicking around on your site is a pleasure. no crap. just quality content. thanks.
Sun, 25 Nov 2007
Your program is a miracle! I thought I was never going to see my MindWrite word processor ever again. My 1992 PowerBook 180 has just expired, and I doubt I will be able to revive it.
I have donated $25 to keep your spirits up! MiniVMac really has been a miracle for me. I am now able to look at all my old correspondence again, back to 1984. Wonderful.
I would very much like to 'break faith' with the 512 x 342 screen size, though. The last time I did any serious work with my old software I had a Mac II, with a 1620 x 1260 black and white screen, plus a colour monitor, at times. I could fit a 100 lines of code, top to bottom, and have 8 or 9 different windows open in Think Pascal. Do you have any intention of extending the interface of the MacPlus? [A hack for larger screen sizes is now a compile time option.]
Once again, thank you very much indeed -- I have gone all around my college where I am studying computer software, showing off my old Mac, running on my new Mac! It really is wonderful.
[...]
Duncan
Fri, 20 Jul 2007
What a great discovery. I run it on my Windows XP notebook. Some of the old classic games and apps, back again! And I have rediscovered many of my old documents. Very cool.
Thanks a bunch!
:
Next - License (GPL)
Or skip to - Download Mini vMac
All screenshots are of windowed mode. Full Screen mode looks the same in all versions.
Some computer monitors have trouble displaying the 50 percent gray pattern commonly used on old Macintosh computers and seen in these screenshots. The Magnify mode of Mini vMac helps to alleviate this problem.
Host OS: Macintosh OS X v10.6 Snow Leopard
Emulated: Macintosh System Software 6.0.8
(This copy of Snow Leopard for Mini vMac development was sponsored by ClockWise of E-Maculation.)
Emulated: HeartQuest 1.1 by Ingemar Ragnemalm, listed on the arcade games page
(This copy of Windows 7 for Mini vMac development was sponsored by Andrew Johnstone. It is running in VMware Fusion 3, sponsored by Pedro Maciel, Greg Lee, and ClockWise.)
Host OS: Linux - Ubuntu 8.04 LTS (Hardy Heron)
Emulated: Lunar Phantom 1.0 by Rolf Staflin, listed on the arcade games page
:
Next - Testimonials
Or skip to - Download Mini vMac
Here are some additional Mini vMac screenshots. The latest screenshots are back on the main Mini vMac screenshots page.
Host OS: Macintosh OS X, 10.3.4
Emulated: System Software 7.5.5 is the last version that will run on the Macintosh Plus.
Host OS: Microsoft Windows XP
Emulated: Continuum by Randall H. Wilson and Brian Wilson is listed on the arcade games page.
Host OS: Red Hat Linux 9
Emulated: MacAstro by Nicolas Mercouroff is listed on the Astronomy page. This screenshot was edited, since that was easier than figuring out how to set the screen resolution to 640 by 480.
Host OS: Macintosh OS 9.2.2
Emulated: "The Fool's Errand" by Cliff Johnson is listed on the other games page.
Host OS: Microsoft Windows 98 Second Edition
Emulated: Space Station Pheta 2.7 by T&T Software, listed on the other games page
Host OS: Macintosh System 7.5.5
Emulated: Macintosh System Software 1.1 (System 3.2 / Finder 5.3).
This page lists compile time options for the setup tool that can be inserted into the file “setup/CONFIGUR.i”, useful to people who wish to develop or maintain Mini vMac. Also see the Options for Developers page for options that can be passed to the compiled setup tool.
First see the Build page to learn how to compile Mini vMac.
Development Environment Version
:
#define cur_ide gbk_ide_xcd /* Apple XCode */ #define cur_ide gbk_ide_msv /* Microsoft Visual C++ */ #define cur_ide gbk_ide_mpw /* Macintosh Programmers Workshop */ #define cur_ide gbk_ide_mw8 /* Metrowerks CodeWarrior */ #define cur_ide gbk_ide_bgc /* Gnu tools */ #define cur_ide gbk_ide_lcc /* lcc-win32 - Jacob Navia */ #define cur_ide gbk_ide_dvc /* Bloodshed Dev-C++ */ #define cur_ide gbk_ide_mgw /* MinGW */ #define cur_ide gbk_ide_cyg /* Cygwin */ #define cur_ide gbk_ide_snc /* Sun tools */ #define cur_ide gbk_ide_dmc /* Digital Mars Compiler */ #define cur_ide gbk_ide_plc /* Pelles C Compiler */ #define cur_ide gbk_ide_dkp /* devkitpro */ #define cur_ide gbk_ide_ccc /* Generic command line c compiler */ #define cur_ide gbk_ide_mvc /* Mini vMac C (a specific version of gcc) */
Mini vMac C is just the set of compilers that is used to build official binaries. Currently it is a set of GCC cross compilers and supporting files built with gcc-4.7.4, gmp-4.3.2, mpfr-2.4.2, mpc-0.8.1, and mingw-w64-v4.0.6.
Development Environment Version
#define ide_vers 1000 /* Apple Xcode 1.0 */ #define ide_vers 1500 /* Apple Xcode 1.5 */ #define ide_vers 2100 /* Apple Xcode 2.1 */ #define ide_vers 2200 /* Apple Xcode 2.2 */ #define ide_vers 2210 /* Apple Xcode 2.2.1 */ #define ide_vers 2300 /* Apple Xcode 2.3 */ #define ide_vers 2400 /* Apple Xcode 2.4 */ #define ide_vers 2410 /* Apple Xcode 2.4.1 */ #define ide_vers 3100 /* Apple Xcode 3.1 */ #define ide_vers 4000 /* Apple Xcode 4.0 */ #define ide_vers 4630 /* Apple Xcode 4.6.3 */ #define ide_vers 6200 /* Apple Xcode 6.2 */ #define ide_vers 6320 /* Apple Xcode 6.3.2 */ #define ide_vers 6400 /* Apple Xcode 6.4 */ #define ide_vers 7310 /* Apple Xcode 7.3.1 */ #define ide_vers 8210 /* Apple Xcode 8.2.1 */ #define ide_vers 9410 /* Apple Xcode 9.4.1 */ #define ide_vers 6000 /* Microsoft Visual C++ 6.0 */ #define ide_vers 7000 /* Microsoft Visual Studio .NET 2002 */ #define ide_vers 7100 /* Microsoft Visual Studio .NET 2003 */ #define ide_vers 8000 /* Microsoft Visual Studio 2005 */ #define ide_vers 9000 /* Microsoft Visual Studio 2008 */ #define ide_vers 10000 /* Microsoft Visual Studio 2010 */ #define ide_vers 11000 /* Microsoft Visual Studio 2012 */ #define ide_vers 12000 /* Microsoft Visual Studio 2013 */ #define ide_vers 14000 /* Microsoft Visual Studio 2015 */ #define ide_vers 15000 /* Microsoft Visual Studio 2017 */
#define UseCmndLine 1 /* use command line tools */
For Apple Xcode, Microsoft Visual C++, and lcc-win32, this option generates a makefile for use with the command line tools, instead of project file for the IDE.
If you are going to distribute the version of Mini vMac that you compile to other people, you should specify the maintainer name with a line like this:
#define kMaintainerName "Your name here"
If you don't specify this option, the maintainer name defaults to “unknown”.
If you are going to distribute the version of Mini vMac that you compile to other people, and you have a webpage for it, you should specify the webpage with:
#define kStrHomePage "Your webpage here"
This string is displayed by the About command of Mini vMac. If you don't specify this option, the homepage defaults to “http://minivmac.sourceforge.net/” or, “http://www.gryphel.com/c/minivmac/”.
:
If you find Mini vMac useful, please consider helping the Gryphel Project.
Next - Ports by other people
Alternatives if you can't use Stuffit Expander on your computer (or don't wish to install it), when following the Getting started with Mini vMac instructions:
The simplest alternative is to use the computer of a friend that has it installed.
You can use an old Macintosh to expand it (i.e. such as your Macintosh Plus.) The file “SSW_6.0.8-1.4MB_Disk1of2.sea.bin” contains a Macintosh file encoded in MacBinary format, preserving Macintosh specific information. You can use a program such as "binUnpk" to extract the program “SSW 6.0.8-1.4MB Disk1of2.sea”. This program is a Stuffit Self Extracting Archive. Running it on an old Macintosh will get a disk image file named “System Startup”.
Instead of a real Macintosh, you can use the program Executor, which can run some 680x0 Macintosh software without requiring any software from Apple. Though it is no longer developed or supported, it currently may be downloaded for free. It comes with StuffIt Expander 4.0.1 which can extract the program “SSW 6.0.8-1.4MB Disk1of2.sea” from “SSW_6.0.8-1.4MB_Disk1of2.sea.bin”, and then “SSW 6.0.8-1.4MB Disk1of2.sea” can be run to get the disk image “System Startup”.
If you happen to have any sort of disk image that can boot Mini vMac (i.e. containing system 7.5.5 or earlier), then you can use Mini vMac to extract the archive, to get a clean copy of official Apple system software. You will need a large enough blank disk image (see “Blanks”), ImportFl to import the '.bin' file, binUnpk to decode the '.bin' file (to get the '.sea' file that you run), and ExportFl to get the extracted disk image back to the host computer.
“Samir” points out that The Unarchiver, a free and open source utility for OS X, “can extract .sea files as well as .bin files and a lot of other archive formats”.
“Bjoern” points out another alternative for Intel Macs. System 7.0.1 is available from Apple in '.smi.bin' format. '.bin' can be decoded by any Mac version of StuffIt Expander, and probably other programs as well. This results in an '.smi' file that can be opened in OS X, mounting a disk image that contains 6 disk images that can be used in Mini vMac.
Previous versions of the getting started page recommended using “SSW_6.0.8-800k_Disk1of4.sea.bin” through “SSW_6.0.8-800k_Disk4of4.sea.bin”, which have the same system 6.0.8 software, and which are also available from the Apple. Thanks to Ryan Schmidt for pointing out that these 800k disk images are packaged as DiskDoubler Self Extracting Archives, which can not be expanded with Stuffit Expander, while the 1.4MB disk images are packaged as Stuffit Self Extracting Archives, and can be. The 1.4MB images can not be used with a real Mac Plus, but the emulated Mac Plus of Mini vMac can use them, because of the replacement disk driver.
With a donation to the Gryphel Project of ten dollars or more, you will receive a “Sponsor Code” that can be used to request custom variations, as many as you could reasonably want* for a period of a year.
To use this code, paste it into the Sponsor Code field near the top of the Mini vMac Variations Service form, and a regular variation will be created instead of a demo. A regular version is identical to a demo, except for not having the word “Demo” float around the emulated screen. You can make as many copies as you want, and give them to anyone, under the GNU General Public License (GPL).
I will email the code to you. Unfortunately, email is not always reliable. If you don’t receive it within a couple days, first check your spam folder. If it is not there, then contact me using the feedback form, giving your name, the email address on your donation, and a different email address (and/or street address to mail a letter).
* A Sponsor Code code can be used to request up to 25 variations each day, every day for a year.
The Variations Service only promises to build variations accurately from the public Mini vMac source. No guarantee is made that the built variations are suitable for any purpose. (Please report any bugs.) It is possible that some variations can not be built at all due to bugs in the Mini vMac source. Otherwise, requested variations will be built eventually, but there is no guarantee of how long it will take, due to hardware failures and such issues.
:
Next - Donation Page
First, if you have not already done so, download a standard variation, choosing the appropriate version of Mini vMac for your operating system. If your web browser doesn’t automatically expand it, do so manually.
Next you will need a ROM image file from a Macintosh Plus. This file should be named “vMac.ROM”. A utility such as “CopyRoms” can be used to obtain this file from your Macintosh Plus. (If you don’t have a Macintosh Plus, you could check the “Where to buy an old Macintosh” page.) (And before you ask, the FAQ page has a section about ROM images.)
Next, you will need a bootable disk image for the Macintosh Plus. You can download the two System 6.0.8 install disks from Apple: “SSW_6.0.8-1.4MB_Disk1of2.sea.bin” and “SSW_6.0.8-1.4MB_Disk2of2.sea.bin”.
Use any modern version of the program Stuffit Expander (now from Smith Micro Inc.) to get the disk image “System Startup” from “SSW_6.0.8-1.4MB_Disk1of2.sea.bin”. (If you can't use Stuffit Expander, or don't wish to install it, see the Alternatives page.)
Now launch Mini vMac. For most operating systems, you can double click on the application’s icon.
Unless Mini vMac finds the ROM image file in one of the places it looks, it will display this message in the new window it opens:
To get past this, drag the icon of your ROM image file, “vMac.ROM”, onto the Mini vMac window.
The Mini vMac window should fill with a gray pattern, with a picture of a floppy disk in the center, with a blinking question mark on it:
Drag the icon of your bootable disk image, “System Startup”, onto the Mini vMac window. The emulated computer should boot from this image, starting up the Finder, with a menu bar at the top of the emulated screen:
When you’re done looking at this, choose the “Shut Down” command from the “Special” menu on the emulated screen:
Then click on the close box of the Mini vMac window to quit the application.
:
Next - Using Mini vMac
How-To guides, Documentation, Macintosh Software, and more.
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
What next, after reading the Getting Started with Mini vMac page :
ROM location
You can avoid having to tell Mini vMac where the ROM image file is on every launch by putting the file in one of the places that Mini vMac looks for it. The simplest place is in the folder containing the Mini vMac application. The ROM image file needs to be named “vMac.ROM”. See the ROM section of the Emulated Hardware Reference for the full list of places.
In recent versions of OS X, putting the ROM image in the application folder does not work due to the “Path Randomization” misfeature. See the OS X notes for a way to turn this off. Otherwise, use one of the other locations.
Try the Recipes for Mini vMac
These are How-To guides that go beyond the Getting Started guide.
Read the documentation
The Control page, about the user interface, and the emulated Hardware reference are rather dense, but have a lot of useful information.
Get Macintosh Software
The Software pages have hundreds of programs that will run on a Macintosh Plus, repackaged into the zipped disk image format that is convenient for use with Mini vMac.
The Mini vMac Extras are a collection of software made to be used with Mini vMac.
To use your own programs from other sources with Mini vMac, you will first need to get it into a disk image. This can be done with the ImportFl utility.
Learn about Macintosh
One source of general Macintosh information is old books. They usually can be found used quite cheaply. My Books about Macintosh 680x0 index lists many, including Amazon links.
Getting Help
If you have a question about using Mini vMac, it is usually quickest to check the Mini vMac documentation and the Mini vMac FAQ (Frequently Asked Questions). If that doesn't help you can ask on one of the various internet forums related to Mini vMac, or ask me directly using the feedback form.
Give Help
If you find Mini vMac useful, please consider helping the Gryphel Project, of which it is a part.
Next - Recipes for Mini vMac
How to use this page.
Mini vMac has no preference settings, which helps to keep it small, simple, and reliable. Instead, options can be chosen at compile time. You can compile a variation of Mini vMac with options you desire following the instructions on the Build page.
Or, I can compile variations for you.
With a donation to the Gryphel Project of ten dollars or more, you will receive a “Sponsor Code” that can be used to request custom variations, as many as you could reasonably want for a period of a year. You can make as many copies of these variations as you want, and give them to anyone, under the GNU General Public License (GPL).
Without a Sponsor Code, you can request Demo versions, that are identical to the regular version, except that the word “Demo” floats around the emulated screen.
Select the options you desire from the Mini vMac Variations Service (Basic) page, including your Sponsor Code if you have one, then press the “Make custom variation” button at top.
In around 5 seconds, a page will appear with a download link. Click on the link to download your compiled variation. (You should probably also save the page, to record the options chosen and other details.) You can also verify md5 checksum and message signature displayed on the page.
Meanwhile, the Variation Server has been double checking, by compiling the variation a second time. If you reload the page with your web browser (another 5 seconds or so after the page first appears), a line at the bottom that said “Preliminary Result” should change to “Final Result (both compiles match)”. Otherwise, an error will be displayed.
To prevent taking too much space on my hosting provider’s computers, older custom variations will eventually be removed. So please download your variation promptly.
After you download the variation, extract the application from the archive, and place the appropriate ROM image file into the same folder, just as is done for the standard compile of Mini vMac. Mini vMac does not create preference files or change registry settings or make any other changes to your computer. So there is no problem in having multiple variations of Mini vMac installed.
The Basic Variations Service offers only a few options. Many more options can be accessed through the Advanced Variations Service. For updating an existing variation, either to change some options or to use the same options in a newer version of Mini vMac, there is also the Text Based Variations Service.The Variations Service only promises to build variations accurately from the public Mini vMac source. No guarantee is made that the built variations are suitable for any purpose. (Please report any bugs.) It is possible that some variations can not be built at all due to bugs in the Mini vMac source. Otherwise, requested variations will be built eventually, but there is no guarantee of how long it will take, due to hardware failures and such issues.
The Variations Service is reproducible. That is, if you ask for the same options twice, you will get the exact same application archive. (The file name will be different, but the contents are the same.) The Sponsor Code used does not effect the resulting Variation, so two sponsors requesting the same variation will get the same result. (With no Sponsor Code, a demo is created, which is different from the sponsored variation.)
:
Back to - Mini vMac Variations Service (Basic)
How to use this page.
The Advanced Variations Service works in pretty much the same way as the Basic Variations Service, but with many more options.
One difference is that a link in each option’s name leads to documentation for that option.
:
Back to - Mini vMac Variations Service (Advanced)
How to use this page.