HNHacker News
TopNewBestAskShowJobs

jjuran

83 karma · joined January 22, 2019

Developer of Advanced Mac Substitute, and other projects.

[ my public key: https://keybase.io/jjuran; my proof: https://keybase.io/jjuran/sigs/SpelchyEwQs8UYO_D3lI-RoiICqatIVK3Dk_mHJfmLk ]

submissionscomments
jjuran··on MacRelix – Unix-like features for classic Mac OS
Author of MacRelix (and system-info) here.

I'm delighted that you've noticed and appreciate this. :-)

jjuran··on MacRelix – Unix-like features for classic Mac OS
MPW was actually one of the inspirations for MacRelix, in a backhanded sort of way:

https://www.metamage.com/text/relix/origins.html

I still use MPW's ToolServer for running the Metrowerks build tools, but sadly it's no longer available as an official download from Apple.

jjuran··on C Programming on System 6 – Implementing Multi-User Chat
I have never understood the decision to abandon the name "Lightspeed C". The same folks also missed the opportunity to ship "Blaze Pascal". :-)
jjuran··on C Programming on System 6 – Implementing Multi-User Chat
MPW was certainly Unix-inspired, but its multitasking was seriously deficient compared to a real Unix. Its runtime environment couldn't run more than one binary executable ("tool") at a time — not even using `system()` — so MPW's Make couldn't actually run anything, but merely printed out the commands. Only the user and MPW Shell scripts could execute other programs.

I wrote about this at length in part two of this article on MacRelix:

https://www.metamage.com/text/relix/origins.html

jjuran··on Advanced Mac Substitute: API-level reimplementation of classic Mac OS
In that case, 10.4 and 10.5 are options. There's also a front end that works in classic Mac OS, which a G4 is fast enough to run usably. It's not in the HOWTO yet, but I can add it.
jjuran··on Advanced Mac Substitute: API-level reimplementation of classic Mac OS
That was unexpected, but great news. Did it run?
jjuran··on Advanced Mac Substitute: API-level reimplementation of classic Mac OS
Can you send me or post the build errors? As a guess, you could try commenting out includes of <Sound.h> and calls to SysBeep().
jjuran··on Advanced Mac Substitute: API-level reimplementation of classic Mac OS
Yes, but not in Advanced Mac Substitute. :-P
jjuran··on Advanced Mac Substitute: API-level reimplementation of classic Mac OS
The secret is to bang the rocks together. ;-)

In the meantime, you could run the Linux framebuffer front end, which, strictly speaking, doesn't have Carbon dependencies. :-D

jjuran··on Advanced Mac Substitute: API-level reimplementation of classic Mac OS
I would be very afraid if Apple had been acquired by Sun in the 1990s, for what should be obvious reasons.

But Apple has demonstrated zero interest even in going after ROM bootlegging — I don't expect them to build a case against API reimplementation.

jjuran··on Advanced Mac Substitute: API-level reimplementation of classic Mac OS
Executor used some fiendishly clever tricks to achieve performance on 1990s hardware at the expense of portability (e.g. the possibility of 64-bit support). Advanced Mac Substitute has different priorities and doesn't use any code from Executor.

However, ROMLib looks like a good source of unofficial system documentation, which I expect I'll be consulting in the future as I work on parts where Apple's docs become less detailed.

jjuran··on Advanced Mac Substitute: API-level reimplementation of classic Mac OS
Short answer: Yes.

Long answer: Advanced Mac Substitute is factored into back end (the emulator itself) and front end (graphics and user input terminal). Writing a new front end from scratch is actually not that much work, and the OS X front end is due for a full rewrite anyway.

This would be an excellent opportunity to contribute that doesn't require any 68K or classic Mac knowledge.

jjuran··on Advanced Mac Substitute: API-level reimplementation of classic Mac OS
Initial work on v68k itself began in 2011. Early on I added a limited system call bridge so it could run command-line tools that produced diagnostics on stdout. I reused the same infrastructure that built 68K tools (as code resources) for MacRelix.

I was able to just skip over the trap calls in the Metrowerks runtime code for very the simplest programs, but in 2012 I added a real trap dispatcher and NewPtr/DisposePtr to implement malloc(). Virtual screen hardware and basic rectangle drawing appeared in 2013. But yeah, 2014 is when things started to get interesting.

Virtually all of my major projects are involved somehow: the Mac frontends are MacRelix. Freemount is used to serve files over a socket pair (since emulated code can't access the native file system). And the launch script is V code.

jjuran··on Advanced Mac Substitute: API-level reimplementation of classic Mac OS
More so the novel, but yes — it's a reference to Hitchhiker's Guide to the Galaxy, and to Douglas Adams' fondness for the Macintosh.
jjuran··on Advanced Mac Substitute: API-level reimplementation of classic Mac OS
Thanks! It would be a real shame if the rich culture that sustained the Mac for fifteen years got lost.

My plan for Advanced Mac Substitute is roughly to start at 1984 and move forward, with a focus on getting individual applications running. What you're seeking isn't out of scope in the long run, but it is off the horizon for now.

I have a build of SheepShaver I made years ago that's pretty stable, which I rely on for developing AMS' 68K components.

jjuran··on Advanced Mac Substitute: API-level reimplementation of classic Mac OS
Hi, I'm the author of Advanced Mac Substitute. Proof: <https://github.com/jjuran>, <https://twitter.com/joshuajuran/status/1087557797200433153>

It's nice to see such interest in my humble project. :-)

← PreviousPage 2 of 2