2020-04-13 20:49:38 -04:00

1602 lines
51 KiB

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<title> Options in Mini vMac </title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="canonical" href="options.html">
<h1> Mini vMac - Options </h1>
<p>Not applicable to µvMac</p>
<a href="index.html">Back</a>
<p><a href="options.html#option_t">Target</a></p>
<p><a href="options.html#option_lang">Language</a></p>
<p><a href="options.html#option_m">Model</a></p>
<p><a href="options.html#option_xres">Screen Size</a></p>
<p><a href="options.html#option_depth">Screen Depth</a></p>
<p><a href="options.html#option_fullscreen">Full Screen Mode</a></p>
<p><a href="options.html#option_magnify">Magnify</a></p>
<p><a href="options.html#option_sound">Sound</a></p>
<p><a href="options.html#option_sss">Sound Sample Size</a></p>
<p><a href="options.html#option_drives">Number of disk images</a></p>
<p><a href="options.html#option_ndp"><i>{Alpha} Non Disk Image Protection</i></a></p>
<p><a href="options.html#option_sony_sum">Checksum disk images</a></p>
<p><a href="options.html#option_sony_tag">Disk images file tags</a></p>
<p><a href="options.html#option_sony_dc42">Disk Copy 4.2 format</a></p>
<p><a href="options.html#option_svd">Enable Save Dialog</a></p>
<p><a href="options.html#option_iid">Insert Ith Disk Image</a></p>
<p><a href="options.html#option_ccs">Command Control Swap</a></p>
<p><a href="options.html#option_km">Keyboard Remap</a></p>
<p><a href="options.html#option_ekt">Emulated Key Toggle</a></p>
<p><a href="options.html#option_akm">Alternate Keyboard Mode</a></p>
<p><a href="options.html#option_ikb">International Keyboard fix</a></p>
<p><a href="options.html#option_speed">Speed</a></p>
<p><a href="options.html#option_ta">Timing Accuracy</a></p>
<p><a href="options.html#option_em_cpu">Emulated CPU</a></p>
<p><a href="options.html#option_mem">Memory</a></p>
<p><a href="options.html#option_cbt">Caret Blink Time</a></p>
<p><a href="options.html#option_dct">Double Click Time</a></p>
<p><a href="options.html#option_mnb">Menu Blinks</a></p>
<p><a href="options.html#option_kyt">Keyboard Repeat Threshold</a></p>
<p><a href="options.html#option_kyr">Keyboard Repeat Rate</a></p>
<p><a href="options.html#option_svl">Sound Volume</a></p>
<p><a href="options.html#option_hc">Highlight Color</a></p>
<p><a href="options.html#option_alc">Location</a></p>
<p><a href="options.html#option_atz">Time Zone</a></p>
<p><a href="options.html#option_min_extn">Minimum Extensions</a></p>
<p><a href="options.html#option_emm">Mouse Emulation Accuracy</a></p>
<p><a href="options.html#option_gkf">Grab Keys in Full Screen</a></p>
<p><a href="options.html#option_eci">Enable Control Interrupt</a></p>
<p><a href="options.html#option_ecr">Enable Control Reset</a></p>
<p><a href="options.html#option_eck">Enable Emulated Control Toggle</a></p>
<p><a href="options.html#option_ci">32 bit drawing</a></p>
<p><a href="options.html#option_gse">Graphics Switching Enable</a></p>
<p><a href="options.html#option_sgn">Code Signing Disable</a></p>
<p><a href="options.html#option_sbx">Sandboxing Enable</a></p>
<p><a href="options.html#option_ahm">Alternate Happy Mac Icon</a></p>
<p><a href="options.html#option_rsz"><ROM Size</a></p>
<p><a href="options.html#option_chr">Check ROM Checksum</a></p>
<p><a href="options.html#option_drc">Disable Rom Check</a></p>
<p><a href="options.html#option_drt">Disable Ram Test</a></p>
<p><a href="options.html#option_lt">LocalTalk</a></p>
<p><a href="options.html#option_lto"><i>{Alpha} LocalTalk Over</i></a></p>
<p><a href="options.html#option_im">Icon Master</a></p>
<p><a href="options.html#option_abr">Abnormal Situation Reports</a></p>
<p><a href="options.html#option_cte">Test Compile Error</a></p>
<p><a href="options.html#option_bte">Test Build System Error</a></p>
<p><a href="options.html#option_xclm">Override</a></p>
<p><a href="options.html#option_br">Branch</a></p>
<hr />
<p> <a name="option_t"> <b> Target </b> </a> </p>
<p> What kind of computer do you want to run Mini vMac on? Choose
one of these lines: </p>
-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 }
<p> <a name="option_lang"> <b> Language </b> </a> </p>
<p> By default, the user interface of Mini vMac is in English.
Other languages can be chosen with one of these lines: </p>
-lang eng { (default) English }
-lang fre {<!-- (<a href="var/mnvm0060.html">mnvm0060</a>) --> French }
-lang ita {<!-- (<a href="var/mnvm0061.html">mnvm0061</a>) --> Italian }
-lang ger {<!-- (<a href="var/mnvm0062.html">mnvm0062</a>) --> German }
-lang dut {<!-- (<a href="var/mnvm0063.html">mnvm0063</a>) --> Dutch }
-lang spa {<!-- (<a href="var/mnvm0064.html">mnvm0064</a>) --> Spanish }
-lang pol { Polish }
-lang ptb { Brazilian Portuguese }
-lang cat { Catalan }
-lang cze { Czech }
-lang srl { Serbian Latin }
<p> If you would be interested in translating the user interface into
some other language, see the
<a href="local/index.html">Localization</a>
page for more details. </p>
<p> <a name="option_m"> <b> Model </b> </a> </p>
<p> 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: </p>
-m 128K {<!-- (<a href="var/mnvm0020.html">mnvm0020</a>) --> Macintosh 128K }
-m 512Ke {<!-- (<a href="var/mnvm0022.html">mnvm0022</a>) --> Macintosh 512Ke }
-m Plus { (default) Macintosh Plus }
-m SE {<!-- (<a href="var/mnvm0023.html">mnvm0023</a>) --> Macintosh SE }
-m Classic {<!-- (<a href="var/mnvm0025.html">mnvm0025</a>) --> Macintosh Classic }
-m SEFDHD {<!-- (<a href="var/mnvm0024.html">mnvm0024</a>) --> Macintosh SE FDHD }
-m II { Macintosh II * }
<p> * 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. </p>
<p> The Macintosh II emulation is not available on a Macintosh 680x0 target
(&ldquo;-t m68k&rdquo;), because the compiler used doesn&rsquo;t support
64 bit integers currently needed for FPU emulation.
<p> 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. </p>
<p> <a name="option_xres"> <b> Screen Size </b> </a> </p>
<p> You can choose the emulated screen size with lines such as: </p>
-hres 640 { horizontal resolution }
-vres 512 { vertical resolution }
<p> Mini vMac requires that the horizontal resolution
be a multiple of 32. </p>
<p> 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. </p>
<p> 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. </p>
<p> Some example screen sizes: </p>
<p> common old Macintosh screen sizes </p>
-hres 512 -vres 384 <!-- { (<a href="var/mnvm0100.html">mnvm0100</a>) } -->
-hres 640 -vres 480 <!-- { (<a href="var/mnvm0101.html">mnvm0101</a>) } -->
-hres 800 -vres 600 <!-- { (<a href="var/mnvm0102.html">mnvm0102</a>) } -->
-hres 1024 -vres 768 <!-- { (<a href="var/mnvm0103.html">mnvm0103</a>) } -->
<p> common current screen sizes, but divided by two, so can use Magnify in full screen </p>
-hres 512 -vres 384 {<!-- (<a href="var/mnvm0100.html">mnvm0100</a>) --> half 1024 x 768 }
-hres 640 -vres 400 {<!-- (<a href="var/mnvm0110.html">mnvm0110</a>) --> half 1280 x 800 }
-hres 640 -vres 512 {<!-- (<a href="var/mnvm0111.html">mnvm0111</a>) --> half 1280 x 1024 }
-hres 704 -vres 450 {<!-- (<a href="var/mnvm0112.html">mnvm0112</a>) --> half 1440 x 900, width constrained }
-hres 832 -vres 525 {<!-- (<a href="var/mnvm0113.html">mnvm0113</a>) --> half 1680 x 1050, width constrained }
-hres 960 -vres 540 {<!-- (<a href="var/mnvm0114.html">mnvm0114</a>) --> half 1920 x 1080 }
-hres 960 -vres 600 {<!-- (<a href="var/mnvm0115.html">mnvm0115</a>) --> half 1920 x 1200 }
<p> 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. </p>
<p> <a name="option_depth"> <b> Screen Depth </b> </a> </p>
<p> You can choose the emulated screen color depth with lines such as: </p>
-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.
<p> 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.) </p>
<p> <a name="option_fullscreen"> <b> Full Screen Mode </b> </a> </p>
-fullscreen 0 { (default) start with Full Screen Mode off }
-fullscreen 1 {<!-- (<a href="var/mnvm0162.html">mnvm0162</a>) --> start with Full Screen Mode on }
-var-fullscreen 0 { Full Screen Mode is constant }
-var-fullscreen 1 { (default) Full Screen Mode is variable }
<p> "-var-fullscreen 0" combines with -fullscreen like so: <p>
-var-fullscreen 0 -fullscreen 0 {<!-- (<a href="var/mnvm0163.html">mnvm0163</a>) --> Never run in Full Screen Mode }
-var-fullscreen 0 -fullscreen 1 {<!-- (<a href="var/mnvm0164.html">mnvm0164</a>) --> Always run in Full Screen Mode }
<p> In both cases, the "F" control mode command disappears. </p>
<p> <a name="option_magnify"> <b> Magnify </b> </a> </p>
-magnify 0 { (default) start with Magnify Mode off }
-magnify 1 {<!-- (<a href="var/mnvm0165.html">mnvm0165</a>) --> start with Magnify Mode on }
<p> The magnification factor can be changed: </p>
-mf 1 { disable magnification }
-mf 2 { (default) 2x }
-mf 3 { 3x }
-mf 4 { 4x }
<p> Disabling magnification with "-mf 1" removes the Control-M command. </p>
<p> <a name="option_sound"> <b> Sound </b> </a> </p>
<p> 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 {<!-- (<a href="var/mnvm0150.html">mnvm0150</a>) --> No sound emulation }
<p> One reason to disable sound is to avoid the Macintosh start up beep. Another
reason is to get a few percent better performance. </p>
<p> <a name="option_sss"> <b> Sound Sample Size </b> </a> </p>
-sss 3 { (default) 8 bit sound }
-sss 4 { 16 bit sound }
<p> 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.
<p> <a name="option_drives"> <b> Number of disk images </b> </a> </p>
<p> 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: </p>
-drives 1
-drives 2
-drives 3
-drives 6 { (default) }
-drives 16 <!-- { (<a href="var/mnvm0153.html">mnvm0153</a>) } -->
-drives 32
<p> According to Apple&rsquo;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. </p>
<p> One reason for using the &ldquo;-drives&rdquo; 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. </p>
<p> <a name="option_ndp"> <b> <i>{Alpha} Non Disk Image Protection </i> </b> </a> </p>
-npd 0 <i>{ turn off Non Disk Image Protection }</i>
<p> <i>
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
</i> </p>
<p> <i>
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
&ldquo;-npd 0&rdquo; option to turn off this protection.
</i> </p>
<p> <i>
If a <a href="options.html#option_br">Branch</a> option prior to 37
is chosen for compatibility with an earlier version,
the default is &ldquo;-npd 0&rdquo;, and you can
use &ldquo;-npd 1&rdquo; to turn on this protection.
</i> </p>
<p> <a name="option_sony_sum"> <b> Checksum disk images </b> </a> </p>
-sony-sum 1
<p> 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.) </p>
<p> <a name="option_sony_tag"> <b> Disk images file tags </b> </a> </p>
-sony-tag 1
<p> 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
<a href="extras/blanks/index.html">Blanks</a>, does not.) </p>
<p> For full support of Disk Copy 4.2 format, enable both checksums and tags: </p>
-sony-sum 1 -sony-tag 1 <!-- { (<a href="var/mnvm0155.html">mnvm0155</a>) } -->
<p> <a name="option_sony_dc42"> <b> Disk Copy 4.2 format </b> </a> </p>
-sony-dc42 0 <!-- { (<a href="var/mnvm0156.html">mnvm0156</a>) } -->
<p> 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). </p>
<p> <a name="option_svd"> <b> Enable Save Dialog </b> </a> </p>
-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 &ldquo;out&rdquo; 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 &ldquo;out&rdquo; folder in the same fashion as the Linux version.
This is helpful when using Mini vMac in automated scripts.
<p> <a name="option_iid"> <b> Insert Ith Disk Image </b> </a> </p>
-iid 1 { enable Insert Ith Disk Image }
When this feature is enabled, if the Control key is held down
and a number key from &lsquo;1&rsquo; to &lsquo;9&rsquo; 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.
<p> <a name="option_ccs"> <b> Command Control Swap </b> </a> </p>
<p> You can swap the emulated Command and Control keys with: </p>
-ccs {<!-- (<a href="var/mnvm0158.html">mnvm0158</a>) --> Command Control Swap }
<p> 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). </p>
<p> 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. </p>
<p> Linux is the same as Windows in this way, as far
as I have seen. </p>
<p> The '-ccs' option does not affect F1 and F2, but
should affect any other keys that get mapped to
Control and Command. </p>
<p> <a name="option_km"> <b> Keyboard Remap </b> </a> </p>
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 &ldquo;-km &lt;src&gt; &lt;dst&gt;&rdquo;,
where &lt;src&gt; and &lt;dst&gt; can be one of:
In addition &lt;dst&gt; can be &ldquo;CM&rdquo;, which means
the key for the Mini vMac Control Mode.
Also in addition, &lt;src&gt; can be one of:
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.
<p> <a name="option_ekt"> <b> Emulated Key Toggle </b> </a> </p>
-ekt &lt;dst&gt;
Where &lt;dst&gt; can be any of the values allowed for
the <a href="options.html#option_km">-km</a> option, except &ldquo;CM&rdquo;.
Chooses which emulated key is toggled by
the &lsquo;K&rsquo; command of the Mini vMac
<a href="control.html#control_mode">Control Mode</a>.
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 &ldquo;-km&rdquo; options are used.
<p> <a name="option_akm"> <b> Alternate Keyboard Mode </b> </a> </p>
-akm {<!-- (<a href="var/mnvm0152.html">mnvm0152</a>) --> enable Alternate Keyboard Mode }
<p> 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. </p>
<p> 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. </p>
<p> In the Alternate Keyboard Mode, the letter keys
are remapped as follows (non letter keys are
unchanged): </p>
<p> j - Left arrow
<br> l - Right arrow
<br> i - Up arrow
<br> k - Down arrow
<p> s - Shift
<br> d - Option
<br> f - Command
<p> z - F1 (often means Undo)
<br> x - F2 (often means Cut)
<br> c - F3 (often means Copy)
<br> v - F4 (often means Paste)
<p> e - BackSpace
<br> r - Return
<br> t - Tab
<br> g - Enter
<br> y - Escape
<p> a - SemiColon
<br> u - [
<br> o - ]
<br> b - BackSlash
<br> h - Equal
<br> n - Minus
<br> q - Grave
<p> 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. </p>
<p> 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. </p>
<p> <a name="option_ikb"> <b> International Keyboard fix </b> </a> </p>
<p> 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: </p>
-ikb 0 { International Keyboard fix off }
<p> 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?
<p> This option is only for Microsoft Windows. </p>
<p> <a name="option_speed"> <b> Speed </b> </a> </p>
<p> You can use one of these lines to set initial speed: </p>
-speed z { 1x }
-speed 1 { 2x }
-speed 2 { 4x }
-speed 3 { 8x }
-speed 4 { 16x }
-speed 5 { 32x }
-speed a {<!-- (<a href="var/mnvm0151.html">mnvm0151</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&rsquo;t account for that yet.)
<p> You can use one of these lines to set initial value
of the Run in Background option: </p>
-bg 0 { (default) start with Run in Background off }
-bg 1 {<!-- (<a href="var/mnvm0166.html">mnvm0166</a>) --> start with Run in Background on }
<p> You can use one of these lines to set initial value
of the AutoSlow option: </p>
-as 0 {<!-- (<a href="var/mnvm0169.html">mnvm0169</a>) --> start with AutoSlow disabled }
-as 1 { (default) start with AutoSlow enabled }
<p> For Macintosh II emulation, AutoSlow is disabled by default.
AutoSlow may need some further tuning to work well with
Mac II emulation. </p>
<p> <a name="option_ta"> <b> Timing Accuracy </b> </a> </p>
<p> Mini vMac estimates the number of clock cycles used
by each instruction excuted. There are three levels
of accuracy. <p>
-ta 0 {<!-- (<a href="var/mnvm0160.html">mnvm0160</a>) --> least accurate timing }
-ta 1 { (default) }
-ta 2 {<!-- (<a href="var/mnvm0161.html">mnvm0161</a>) --> most accurate timing }
<p> In "-ta 0" all instructions are assumed to take
the same number of cycles. This closely matches Mini vMac 3.1.3
and earlier. </p>
<p> 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. </p>
<p> 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. </p>
<p> 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. </p>
<p> <a name="option_em_cpu"> <b> Emulated CPU </b> </a> </p>
<p> Most computers emulated by Mini vMac have
a 68000 processor. But you can force Mini
vMac to emulate a 68020 processor with: </p>
-em-cpu 2 {<!-- (<a href="var/mnvm0154.html">mnvm0154</a>) --> 68020 }
<p> <a name="option_mem"> <b> Memory </b> </a> </p>
<p> 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: </p>
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 {<!-- (<a href="var/mnvm0130.html">mnvm0130</a>) --> 1 Megabyte }
-mem 2M {<!-- (<a href="var/mnvm0131.html">mnvm0131</a>) --> 2 Megabytes }
-mem 2.5M {<!-- (<a href="var/mnvm0132.html">mnvm0132</a>) --> 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 }
<p> The build system checks that the memory size you specify is
supported by the Macintosh model you have chosen to emulate. </p>
<p> <a name="option_cbt"> <b> Caret Blink Time </b> </a> </p>
-cbt 3 { Fast }
-cbt 8 { Medium }
-cbt 15 { Slow }
<p> The &ldquo;Rate of Insertion Point Blinking&rdquo; 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.
<p> <a name="option_dct"> <b> Double Click Time </b> </a> </p>
-dct 5 { Fast }
-dct 8 { Medium }
-dct 12 { Slow }
<p> The &ldquo;Double Click Time&rdquo; (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.
<p> <a name="option_mnb"> <b> Menu Blinks </b> </a> </p>
-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.
<p> <a name="option_kyt"> <b> Keyboard Repeat Threshold </b> </a> </p>
-kyt 0 { Off }
-kyt 10 { Long }
-kyt 6 { (default) }
-kyt 4
-kyt 3 { Short }
<p> 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.
<p> <a name="option_kyr"> <b> Keyboard Repeat Rate </b> </a> </p>
-kyr 0 { Slow }
-kyr 6
-kyr 4
-kyr 3 { (default) }
-kyr 1 { Fast }
<p> 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.
<p> <a name="option_svl"> <b> Sound Volume </b> </a> </p>
-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.
<p> <a name="option_hc"> <b> Highlight Color </b> </a> </p>
-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.
&ldquo;<a href="extras/getpram/index.html">GetPRAM</a>&rdquo;
tool can be used to get values for these options. That is, first set
the desired highlight color in the &ldquo;Color&rdquo;
Macintosh Control Panel, and then run GetPRAM.
<p> <a name="option_alc"> <b> Location </b> </a> </p>
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
-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.
&ldquo;<a href="extras/getpram/index.html">GetPRAM</a>&rdquo;
tool can be used to get values for these options. That is, first set
the desired highlight location in the &ldquo;Map&rdquo;
Macintosh Control Panel, and then run GetPRAM.
If &lsquo;-alc 0&rsquo; is not used, then the &lsquo;-lcy&rsquo; and
&lsquo;-lcx&rsquo; 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.
<p> <a name="option_atz"> <b> Time Zone </b> </a> </p>
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
-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 }
&ldquo;<a href="extras/getpram/index.html">GetPRAM</a>&rdquo;
tool can be used to get values for these options. That is, first set
the desired highlight location in the &ldquo;Map&rdquo;
Macintosh Control Panel, and if desired set the Daylight Savings flag
in the &ldquo;Data and Time&rdquo;
Macintosh Control Panel, and then run GetPRAM.
If &lsquo;-alc 0&rsquo; is not used, then the &lsquo;-lcd&rsquo;,
&lsquo;-lczs&rsquo;, and
&lsquo;-lcz&rsquo; 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.
<p> <a name="option_min_extn"> <b> Minimum Extensions </b> </a> </p>
-min-extn {<!-- (<a href="var/mnvm0157.html">mnvm0157</a>) --> Minimum Extensions }
<p> 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. </p>
<p> 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. </p>
<p> <a name="option_emm"> <b> Mouse Emulation Accuracy </b> </a> </p>
-emm 0 {<!-- (<a href="var/mnvm0167.html">mnvm0167</a>) --> less accurate emulation in Full Screen Mode }
<p> 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. </p>
<p> <a name="option_gkf"> <b> Grab Keys in Full Screen </b> </a> </p>
-gkf 0 { don't grab keys in Full Screen Mode }
Normally, when in Full Screen Mode, Mini vMac
will try to &ldquo;grab&rdquo; the keyboard, preventing the operating
system from intercepting keys. So in the Windows version,
the &lsquo;windows&rsquo; key can be used as an &lsquo;option&rsquo; key, instead
of popping up the &ldquo;Start&rdquo; 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.
<p> <a name="option_eci"> <b> Enable Control Interrupt </b> </a> </p>
-eci 0 { disable Control-I command }
The &lsquo;I&rsquo; command of the Mini vMac
<a href="control.html#control_mode">Control Mode</a>,
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
&ldquo;Programmer&rsquo;s Switch&rdquo; to use it.)
<p> <a name="option_ecr"> <b> Enable Control Reset </b> </a> </p>
-ecr 0 { disable Control-R command }
The &lsquo;R&rsquo; command of the Mini vMac
<a href="control.html#control_mode">Control Mode</a>,
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
&ldquo;Programmer&rsquo;s Switch&rdquo; to use it.)
<p> <a name="option_eck"> <b> Enable Emulated Control Toggle </b> </a> </p>
-eck 0 { disable Control-K command }
The &lsquo;K&rsquo; command of the Mini vMac
<a href="control.html#control_mode">Control Mode</a>,
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.)
<p> <a name="option_ci"> <b> 32 bit drawing </b> </a> </p>
-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).
<p> <a name="option_gse"> <b> Graphics Switching Enable </b> </a> </p>
-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,
<a href="https://www.gryphel.com/c/mail/v8.html#m86">it is reported</a> 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.
<p> <a name="option_sgn"> <b> Code Signing Disable </b> </a> </p>
-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&rsquo;t use Apple&rsquo;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.)
<p> <a name="option_sbx"> <b> Sandboxing Enable </b> </a> </p>
-sbx 1 { enable Sandboxing }
This option is only for the Cocoa version for OS X. It enables
&ldquo;Sandboxing&rdquo;, 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
&ldquo;entitlement&rdquo; 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&rsquo;s ability to automatically find files by name
in special locations is severely restricted.
It is prevented from finding &ldquo;vMac.ROM&rdquo;,
&ldquo;disk1.dsk&rdquo;, &ldquo;disk2.dsk&rdquo;, etc. in the folder
containing the application.
It can find such files in a &ldquo;mnvm_dat&rdquo; folder created
<a href="hardware.html#rom">inside the application</a>,
but only read only. It does not have access to
&ldquo;~/Library/Preferences&rdquo; to find &ldquo;vMac.ROM&rdquo; (but it
does get access to the corresponding folder inside its
container folder, which is obscure).
It does have read only acces to
&ldquo;/Library/Application Support/&rdquo;.
Furthermore, if these named files are links, that
won&rsquo;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.
<p> <a name="option_ahm"> <b> Alternate Happy Mac Icon </b> </a> </p>
-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 &ldquo;Happy Mac&rdquo; icon displayed
on boot when a disk is inserted, with one of the images designed
by Steve Chamberlin for his
<a href="http://www.bigmessowires.com/mac-rom-inator/">Mac ROM-inator</a>
(used with permission).
<p> <a name="option_rsz"> <b> ROM Size </b> </a> </p>
-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&rsquo;s
<a href="http://www.bigmessowires.com/mac-rom-inator/">Mac ROM-inator</a>.
If you use this option, you will also need &ldquo;-chr 0&rdquo;
as described below.
(You may also want
&ldquo;-drc 0 -drt 0 -speed z -ta 2 -sony-sum 1 -sony-tag 1&rdquo;
to test the image with maximum accuracy.)
<p> <a name="option_chr"> <b> Check ROM Checksum </b> </a> </p>
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
<p> <a name="option_drc"> <b> Disable Rom Check </b> </a> </p>
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&rsquo;s
<a href="http://www.bigmessowires.com/mac-rom-inator/">Mac ROM-inator</a>
), 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&rsquo;t Disable Rom Check }
<p> <a name="option_drt"> <b> Disable Ram Test </b> </a> </p>
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&rsquo;t Disable Ram Test }
<p> <a name="option_lt"> <b> LocalTalk </b> </a> </p>
-lt { LocalTalk emulation }
<p> This enables
<a href="http://mfort.net/Mini_vMac_LT/Mini_vMac_LT.html">Mike Fort's</a>
LocalTalk emulation.
There are currently some limitations. It is only implemented
for OS X. It requires running the command
&ldquo;sudo chmod ugo+rw /dev/bpf*&rdquo; to allow Mini vMac
(and everyone else) access to all network traffic.
The &ldquo;-lt&rdquo; 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. </p>
<p> <a name="option_lto"> <b> <i>{Alpha} LocalTalk Over </i> </b> </a> </p>
<p> <i>
There is a now a second option for transporting
LocalTalk packets, using UPD,
<a href="https://www.gryphel.com/c/mail/v10.html#m182">by Rob Mitchelmore</a>.
It does not
require setup or administrative privileges
(no &ldquo;sudo chmod ugo+rw /dev/bpf*&rdquo; needed).
The options are:
</i> </p>
-lto udp <i>{ LocalTalk over User Datagram Protocol (default) }</i>
-lto bpf <i>{ LocalTalk over Berkeley Packet Filter }</i>
<p> <i> The new UPD option is the default as of Mini vMac
branch 37. But if a prior <a href="options.html#option_br">Branch</a> option
is chosen for compatibility with an earlier version,
the default is BPF.
</i> </p>
<p> <a name="option_im"> <b> Icon Master </b> </a> </p>
-im 1 {<!-- (<a href="var/mnvm0168.html">mnvm0168</a>) --> Icon Master }
<p> 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. </p>
<p> 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. </p>
<p> In Mac OS 9, and early versions of OS X,
Disk Image files should have the creator type set to
&ldquo;MnvM&rdquo; for double clicking to work
&ldquo;<a href="extras/setftype/index.html">SetFType</a>&rdquo;).
Also, the file type should be &ldquo;MvIm&rdquo;
to see the Mini vMac Disk Image icon.
ROM Image files should have the creator type &ldquo;MnvM&rdquo;
and the file type &ldquo;ROM!&rdquo; to see the Mini vMac
ROM Image icon. </p>
<p> In Windows and later versions of Mac OS X,
Disk Images files should have a name that ends in
&ldquo;.dsk&rdquo; for double clicking to work
and to see the Mini vMac Disk Image icon.
ROM Images files should have a name that ends in
&ldquo;.ROM&rdquo; to see the Mini vMac Disk Image icon. </p>
<p> 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.
<p> This setting currently has no effect in the Linux
and other X versions. </p>
<p> <a name="option_abr"> <b> Abnormal Situation Reports </b> </a> </p>
-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&rsquo;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&rsquo;t
been implemented yet.
<p> <a name="option_cte"> <b> Test Compile Error </b> </a> </p>
-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.
<p> <a name="option_bte"> <b> Test Build System Error </b> </a> </p>
-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.
<p> <a name="option_xclm"> <b> Override </b> </a> </p>
! { 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 &lsquo;!&rsquo;.
<p> <a name="option_br"> <b> Branch </b> </a> </p>
-br 36 { Options were from Mini vMac 36 }
This option is for future use. It currently has no effect.
<i>{Alpha} It is now used in Mini vMac 37.</i>
It tells the build system that the requested options were from a
specific branch (version) of Mini vMac.
The &lsquo;P&rsquo; command of the Mini vMac
<a href="control.html#control_mode">Control Mode</a>
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
The &lsquo;P&rsquo; command retrieves the options in a
canonical form. It always generates a &ldquo;-br&rdquo;
option for the current version, rather than copying
any &ldquo;-br&rdquo; option passed to the build system.
<p> See also - <b><a href="develop.html">Options for developers</a></b> </p>