• Hello MLAers! We've re-enabled auto-approval for accounts. If you are still waiting on account approval, please check this thread for more information.

Compiling scientific software

well done lgnevin, I’ve not been able to finish my computer room today and so far None online so thanks for getting this going aa I’ve not had chance to try.

 
Oh great! Currently not at home but I wanted to dedicate a little time tomorrow for Basilisk again. Might be useful anyways.

Was there source code in the archive? Might be interesting to check what changes the author of the port did to get it running...

 
There's source code for the documentation generator, sort of, but not for this particular version of gnuplot.

I imagine though that they didn't do more than take THINK C 5, leverage TCL (THINK Class Libraries) to create a new console app, and piped through input/output to files or the console as appropriate. 

You could probably do the same with CodeWarrior and PowerPlant, although later versions of THINK C and THINK PASCAL were the more favored compilers when the Classic was current. Metrowerks didn't come until later.

As for emulators, Mini vMac and Mini vMac II are probably easier for you to get up and running for this. Basilisk II is ancient, left abandoned by its creators, and not nearly as faithful to the hardware. The best reason I can think of not to use Mini vMac is if you were looking to do something that required a 68030 or a 68040.

 
There's source code for the documentation generator, sort of, but not for this particular version of gnuplot.

I imagine though that they didn't do more than take THINK C 5, leverage TCL (THINK Class Libraries) to create a new console app, and piped through input/output to files or the console as appropriate. 

You could probably do the same with CodeWarrior and PowerPlant, although later versions of THINK C and THINK PASCAL were the more favored compilers when the Classic was current. Metrowerks didn't come until later.

As for emulators, Mini vMac and Mini vMac II are probably easier for you to get up and running for this. Basilisk II is ancient, left abandoned by its creators, and not nearly as faithful to the hardware. The best reason I can think of not to use Mini vMac is if you were looking to do something that required a 68030 or a 68040.
Whys that Nglevin whats different with the 68030/40 that the emulator doesn’t like?

 
Last edited by a moderator:
Oh ok. Thats seems like an oversight as I imagine there were more 68030 & 68040 macs built than 68000 one but I could be wrong 

 
If you want to make a very faithful emulator instead of a fast but unstable emulator, instead of emulating the results of a subset of Mac Toolbox calls for BeOS as Sheepshaver and Basilisk II did and cheat to make things acceptably fast, you have to start from the simplest processor family and scale up. It's similar to the approach that BSNES and Higan took instead of SNES9x and ZSNES. Although for console emulators, they can hack around compatibility problems easier since they only have programs on ROMs to worry about and not an entire (cooperatively) multitasking operating system that can handle multiple programs in combinations that are harder to patch around.

Mini vMac started by handling 68000 software that no other emulator could on Mac Plus, and the more recent Mini vMac II has been slowly scaling up that emulation to the 68020.

Nothing comes out of a vacuum. You don't start by emulating the most faithful 68040 and ignore the rest, otherwise you miss details and make shortcuts to get things working.

Major tangent, but hopefully that puts the problem of emulation in some perspective.

 
Last edited by a moderator:
Fair enough that makes sense. I never managed to get any of the mac emulators working when i tried. For me i like the original items; the sounds (fans, hhd drives and floppys and the clicky keyboards) for me all add up to the experience. I know that isn’t always practical or wanted though and i emulate old sinclair games but thats more down to my wife not allowing me to have more old computers lol

 
Yeah, emulating an architecture really faithfully must be complex. What would be your proposal? Basilisk sounded like a good choice because you could change an image file. And emulating an actual 68030 would of course be nice.

 
I used Basilisk II quite a bit more than ten years ago, as sort of a bridge between a Q650 and my more-modern computers. It's good for fast 68k emulation, and I think that's still true today. It's not great for exact timing of those computers, and many shims have been built around it to get it out of the BeOS world and into a cross platform world. I believe the old Basilisk II GUI to set up startup settings without modifying text files was a PowerPC app written in some old cross platform GUI toolkit, and it might have even been Java based. It's a product of its time, and I think Emaculation has done a great job of patching it to keep it up to date despite its vintage.

The two Mini vMacs are made to faithfully reproduce the timings and the output of a Mac Plus and a Mac II. That's not great for fast compiles, but it's great for reliably reproducing what hardware should do to run some apps that bent the rules to run well on the hardware that was available at the time. I've been really impressed by how easy it is to drag and drop raw image files and Disk Copy 4.2 images and have them treated instantly like (at times, really high capacity) ejectable disks.

My preference, and it's probably no surprise given what I've said, is to use Mini vMac II as the emulator of choice. I have a lot of real hardware to handle the oomph of a 68040, a G3, a G4e, and other bits, and soon I'm going to have a POWER9 because I love playing with oddball hardware and getting software to run on it, even if it's incredibly expensive and not practical for the every-person. Putting that out there, it's so nice to have a classic Mac environment, System 6 capable, that's very stable on macOS Mojave. It feels like it's at home with the other apps on the platform and the Gryphel project that builds and hosts it has great documentation to get it up and running.

That same site has some other cool things like a version of MacPaint built from the source that was donated to the Computer History Museum, with tweaks to allow it to run on later versions of the original Mac OS. Just a lot of fun to experience, all around.

 
Ultimately MESS/MAME will probably emulate a greater-than-Mac Plus machine more accurately than Mini vMac II ever will, if you really need a "cycle-accurate" emulation. vMac doesn't go as whole-hog as BasiliskII does when it comes to using toolbox patches to negate the need to actually create working virtual devices but still does use that technique. (In particular that "drag and drop disk images" functionality relies on exactly the same "replace the SONY driver" code as BasiliskII uses; just like BasiliskII the SCSI hardware completely isn't emulated, which will forever rule out running any alternative operating system on it.) The stated mission of MAME is to replicate the *hardware* of every supported system as accurately as possible, performance or convenience be damned, so *when* the Mac II drivers actually work they should remain free of any toolbox hacks.

Of course, MAME development tends to move at the speed of molasses in January (small quantities of course, apparently molasses can actually move pretty fast if you have enough of it) and the documentation and UI completeness is uniformly terrible always, so whether that will ever actually count as a "mainstream" option is certainly an open question.

Honestly I don't understand the amount of hate that BasiliskII seems to get. Yes, it's not the most stable thing in the world and its inability to emulate non-32-bit clean Macs makes it a poor choice for running a lot of the most beloved black-and-white Mac games (which vMac is indeed far better at), but some of the compatibility problems it has are the same you run into on real high-end/late 68040 Macs, and in return you get things like actual working network support. (Which is a *huge* thing; I have trouble summoning interest in Mac emulators that lack that.) It's earned its place in the vintage computing toolbox; like any other tool the key to using it is knowing how and when to deploy it...

That said, I will totally agree that the code base needs some *serious* housecleaning and modernization. The ports to systems other than Linux have *always* been hacks, and Linux itself has moved on enough in the nearly 15 years it's been since it started to fossilize that it's hard to even get a working build on that. Maybe someone needs to put together a kickstarter or whatever it takes to motivate a small team to do the needed triage.

(While they're at it they can take a crack at fixing some of Sheepshaver's outstanding warts. You wanna talk about stability problems...)

 
[...] in return you get things like actual working network support. (Which is a *huge* thing; I have trouble summoning interest in Mac emulators that lack that.)
Just curious, as I've never run into this need. I lean on VMware and QEMU for anything that requires the Internet and interfacing with old hardware.

What do you need that networking support for?

Not for running old Netscape, I imagine. Bolo, maybe, but it's rare to find other players. There are better options for networked Marathon.

 
@Gorgonops is there a support thread here for those emulators? Basilisk seems to tick most of the boxes but I'm not really sure what the problem is with setting it up.

I don't think full cycle consistency with the hardware is maybe a little bit more than needed. On the other hand, if it's too far away from the metal things could go wrong without me knowing why.

 
What do you need that networking support for?


The one word answer is "Appletalk", although when I first started using the network support in BasiliskII (nearly 20 years ago) running those now laughably old web browsers was actually still a relevant use case.  (And arguably still could be, if one of the things you want a Mac emulator for is decompressing Stuffit and whatever archives with the real tools without having to worry about issues like trashed resource forks.) BasiliskII plus a Netatalk server can solve all kinds of otherwise more awkward problems. See this page of this ancient A/UX "walkthrough" that I made many years ago to see one tiny example, IE, moving screenshots from A/UX's gimpy System 7.0 environment to an 8.1 environment where I can run better converter software than works on that machine so they can then be exported to the then-modern web.

Mucking around with tools to pull files on and off of disk images is lame compared to being able to just drag the file in and out of Macworld in real-time, and BasiliskII is by far the best Mac emulator when it comes to enabling that.

 
Neat! I might look into setting that up with BII again. This is partially covered by VMware and Leopard on the AppleTalk front, but there's holes there as far as networking with really old Macs. I'd like to start with QEMU and OS 9 first, which should have some of that covered with the right extension for networking.

I'm fortunate that most of my world is Macs and x86-64 Linux machines, and someday soon a POWER9 Linux box. Resource fork issues don't show up on Mojave. If I were to use Linux more extensively, or Apple decided that resource forks weren't useful in a post-Mojave major iteration of the Mac OS, I'd have to invest more in setting up an AppleTalk world.

 
is there a support thread here for those emulators?


I'd rather go to the source. https://www.emaculation.com/doku.php/basilisk_ii has links to forums, guides, and the people who are currently patching Basilisk II are there, too.

It's been long enough since I've set up Basilisk II that I can't immediately tell you what works and how. It's the same site I used 10+ years ago, and the wiki's been updated since then. Shouldn't hurt to try it now.

 
So with a couple of 'deviations' I made Basilisk II working. I got 'some' performa.rom, I suspect it's not a Classic II but I have some space to play and simulate.

Important so far was CFM68k and NuDragLib which I got working by using the OpenDoc-Installer.

This gives me some way of testing a little and setting/modifying images, which is already ~90% of the requirements, the rest can be done on the hardware :)

I think I'll check how far I come with https://docs.python.org/release/1.5.2p2/mac/module-macconsole.html

I guess I can trigger gnuplot to display stuff with some sort of command from there.

By the way, I was looking for a FPU co-processor but wasn't really sure what to look for - if I look for M68882 and plcc, I only get the chip, not the 50-pin platine. How compatible are they? I found one for a IIc (?) and that platine looks... reasonably simple.

If I can't find one, is it possible to etch that platine by myself?

 
Back
Top