2020-03-14 15:28:01 -04:00

1 line
20 KiB

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<title> Mini vMac FAQ </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="canonical" href="faq.html">
<i> <a href="https://www.gryphel.com/index.html">www.gryphel.com</a>/c/<a href="index.html">minivmac</a>/faq
- <a href="https://www.gryphel.com/c/feedback.html">feedback</a> </i>
<h4 align=center>
Mini vMac
<h2 align=center>
Frequently Asked Questions
<p> <b> I have a question that isn&rsquo;t answered in this FAQ or
in the <a href="index.html">documentation</a>. What do
I do? </b> </p>
<p> Ask on one of the various internet
<a href="https://www.gryphel.com/c/forums/index.html">forums related to Mini vMac</a>.
<h2> Support requests </h2>
<p> <b> How do I get my Macintosh programs and other files
into Mini vMac?</b> </p>
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
<a href="extras/importfl/index.html">ImportFl</a>
<p> <b> How can I read a floppy disk that was written
on a Mac Plus? </b> </p>
<p> Modern machines can&rsquo;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&rsquo;t know any reason why some company couldn&rsquo;t now manufacture
a floppy drive that reads the old disks, but I&rsquo;m not aware of
anyone doing so. </p>
<p> So the only way to read such disks is to
<a href="https://www.gryphel.com/c/buymac/index.html">get an old Mac</a>.
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. </p>
<p> An alternative is to hire someone to do this for you. See the
<a href="https://www.gryphel.com/c/convert/index.html">Old Macintosh Disk Conversion Services</a>
page for some possibilities. </p>
<p> <b> How can I print from Mini vMac? </b> </p>
<p> 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. </p>
<p> 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 <a href="extras/exportfl/index.html">ExportFl</a>.
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. </p>
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.)
<p> <a href="extras/exportps/index.html">ExportPS</a> is a
specialized variation of ExportFl that saves a few
steps when printing. </p>
<p> 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.
<p> <a name="rom"> <b>
Can you send me a ROM image? </b> </a> </p>
<p> No. </p>
<p> 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
<a href="https://www.gryphel.com/c/buymac/index.html">Buy Mac</a> page)
and extract the ROM image (see
<a href="extras/copyroms/index.html">CopyRoms</a>)
for your own private use. (Some people think
that this isn&rsquo;t legal either, but that
isn&rsquo;t my understanding of U.S. copyright
law, though I am not a lawyer, and laws could
differ in other countries.) </p>
<p> <b> I own an old Macintosh that I can&rsquo;t extract
the ROM image from (because it is broken,
or because I don&rsquo;t have the means to make it
communicate with newer machines).
Can you send me the ROM image? </b> </p>
<p> Sorry, no. </p>
<p> 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&rsquo;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. </p>
<p> <b> Will you tell me where to find an illegal
ROM image? </b> </p>
<p> Of course not. </p>
<p> <b> Why do I get a message that the ROM image may be corrupted? </b> </p>
<p> Some of the illegal ROM images floating around the web
are in fact corrupted. </p>
<p> <b> Can you provide a bootable disk image? </b> </p>
<p> No. This would require Apple System Software, involving issues
similar to those mentioned above for ROM images. Except that
<a href="https://www.gryphel.com/c/sw/system/index.html">System Software</a>
may be downloaded freely from Apple. </p>
<p> <b> What System Software versions can be used with Mini vMac? </b> </p>
<p> 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. </p>
<p> <b> Which emulation should I use (Mac Plus, Mac 128K, Mac SE)? </b> </p>
<p> 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&rsquo;s
not as well tested. The Mac 128K emulation can run some very early
software that won&rsquo;t run on a Mac Plus, but a lot of software that
works on the Mac Plus won&rsquo;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. </p>
<p> <b> Why doesn&rsquo;t the ROM from a Mac SE/30 or Mac SE FDHD work in the
Mac SE version of Mini vMac? </b> </p>
<p> As described on the
<a href="https://www.gryphel.com/c/mac68k/index.html">Mac 68k page</a>, 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. </p>
<p> <b> How is Mini vMac different from Basilisk II? </b> </p>
<p> The biggest current difference is that Mini vMac emulates
the earliest Macs, while
<a href="http://basilisk.cebix.net/">Basilisk II</a>
emulates later 680x0 Macs. The fundamental technical difference
is that Basilisk II doesn&rsquo;t emulate hardware, but patches the drivers in ROM, while
Mini vMac emulates the hardware (with the exception of the floppy drive). </p>
<p> 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). </p>
<p> 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. </p>
<h2> Feature requests </h2>
<p> <b> Color?</b> </p>
<p> Maybe someday. The next computer that I plan to emulate is
the Mac II, which has color.
Meanwhile, you could try Basilisk II. </p>
<p> <b> Larger screen? </b> </p>
<p> 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. </p>
<p> update: This is now implemented in the
stable version. </p>
<p> <b> More memory? </b> </p>
<p> 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). </p>
<p> 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. </p>
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
"<a href="https://www.gryphel.com/c/mail/v2.html#m27">report</a>"
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.
<p> <b> Networking? </b> </p>
<p> 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&rsquo;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. </p>
<p> <b> Save PRAM? </b> </p>
<p> 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. </p>
<p> 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. </p>
<p> 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. </p>
<p> <b> Preference dialog? </b> </p>
<p> (For options such as which machine to emulate and how much RAM) </p>
<p> Since the goal is to keep Mini vMac small and simple, easily portable and maintainable,
I don&rsquo;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. </p>
<p> 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. </p>
<p> 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. </p>
<p> <b> Port to Syllable, SkyOS, Palm, BeOS, Amiga, or ...? </b> </p>
<p> 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. </p>
<p> 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). </p>
<p> <b> Port to Apple II, TRS-80, Atari XL, Commodore 64, or ...? </b> </p>
<p> In theory, Mini vMac can be ported to anything vaguely
resembling a computer, so long as it has enough storage.
So if you&rsquo;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.) </p>
<p> 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. </p>
<p> 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.) </p>
<p> <b> Emulation of a Mac LC475 or Quadra650 or IIci or ...? </b> </p>
<p> Maybe someday. I&rsquo;d like to eventually add emulation of other Macs, starting
with the Mac II. I can&rsquo;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&rsquo;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. </p>
<p> <b> Emulation of a PowerPC Macintosh? </b> </p>
<p> No. PowerPC emulation will never be in Mini vMac, no matter how long I
maintain it. It is &ldquo;Mini&rdquo; 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.) </p>
<p> Instead, see
&ldquo;<a href="http://en.wikipedia.org/wiki/SheepShaver">SheepShaver</a>&rdquo;
&ldquo;<a href="http://pearpc.sourceforge.net/">PearPC</a>&rdquo;.
<p> <b> Emulation of a Lisa? </b> </p>
<p> 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&rsquo;s
&ldquo;<a href="http://lisa.sunder.net/">Lisa Emulator Project</a>&rdquo;.
<p> <b> Emulation of an Apple II? </b> </p>
<p> No. An Apple II has no real similarity to a Macintosh.
This is &ldquo;Mini&rdquo; v&ldquo;Mac&rdquo;, if you want one emulator
for everything, see
&ldquo;<a href="https://www.mamedev.org/">MAME</a>&rdquo;.
<p> <b> Open source ROM replacement? </b> </p>
<p> 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. </p>
<p> It has been done though. See
&ldquo;<a href="http://en.wikipedia.org/wiki/Executor_(software)">Executor</a>&rdquo;.
<h2> Other </h2>
<p> <b> What format is the Mini vMac source code in,
and why don't you use something more standard? </b> </p>
<p> It is a zipped hfs disk image. The
"<a href="build.html">Building Mini vMac</a>"
page describes how to use it. </p>
<p> 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. </p>
<p> 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. </p>
<p> <b> What should I do with my old 680x0 Macintosh? </b> </p>
<p> 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. </p>
<p> If you really can't keep it, then some of the places listed
on the <a href="https://www.gryphel.com/c/buymac/index.html">Buy Mac</a>
page could also be used to sell one. </p>
<p> : </p>
<p> Back up to - <b><a href="index.html">Mini vMac</a></b> </p>
<i> <a href="https://www.gryphel.com/index.html">www.gryphel.com</a>/c/<a href="index.html">minivmac</a>/faq
- <a href="https://www.gryphel.com/c/feedback.html">feedback</a> </i>
copyright (c) 2020 Paul C. Pratt - last update 2/29/2020