• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Requests for new software?

Dog Cow

Well-known member
I'm learning assembly language on Mac 512K. I already know 6502 assembly language for Apple II. I'm working my way through Dan Weston's book, and already I have a couple ideas in mind for what I'd like to write.

I think first I'd like to try writing a disk transfer utility that will read a 400K floppy and stream it out the serial port. And maybe a function that does the reverse too.

I'd also like to see about writing a TCP/IP for the 512K. I've already written a stack for Apple II in 6502 assembly, so this is something I've done before.

I'd also like to program for AppleTalk and would like to write a file sharing implementation like AppleShare, but that would work on a 128K too.

Any other suggestions from the community? Again, I'm only interested in programming for the Mac 512K or 512Ke, so we're talking pre-System 6 here. :p

 

nglevin

Well-known member
We do have the occasional thread about writing software for the classic Mac OS, though it's contingent on having a developer with strong classic Mac programming skills weighing in. And, I think, someone who wants to put in the work of tying together and writing up these disparate resources.

For my part, my understanding of the Mac started with OS X Leopard, part of my unreasonable nostalgia for the system. I'd have some bandwidth to do some writing work on the weekends and try stuff out on my B&W G3 and Quadra 800ish computer. That's a fair bit more advanced than THINK Pascal, TMON and early early MPW, though.

Basalgangster's The Long View blog had some nice resources on early dev tools. I believe he's a member that you could try sending a PM to? Although I think you and him share a domain. :)

 

olePigeon

Well-known member
How about something equivalent to ADTPro, but for Mac?  Serial boot your Mac 128k or 512k with a little utility to write floppies back and forth to a host computer.

 

CC_333

Well-known member
How about something equivalent to ADTPro, but for Mac?  Serial boot your Mac 128k or 512k with a little utility to write floppies back and forth to a host computer.


I think first I'd like to try writing a disk transfer utility that will read a 400K floppy and stream it out the serial port. And maybe a function that does the reverse too.
Isn't this what the Floppy Emu is for?

It works on the 128k, doesn't it?

Anyway, this is supposed to be a fun/educational "because I can" project, so it doesn't really matter. I'm just picking nits.

c

 

Gorgonops

Moderator
Staff member
Serial boot your Mac 128k or 512k with a little utility to write floppies back and forth to a host computer.
The problem is the serial booting part. ADTPro leverages mechanisms that were built into the Apple II's ROM that allow it to be directed to grab a blob of code off a serial (or cassette) port. If the Mac ROM lacks such a mechanism then there's no way to do it, you'll still need a minimal bootstrap floppy. Has anyone discovered anything in the ROM (some debugging hook of some kind, perhaps?) to work from? I haven't heard of such.

 

trag

Well-known member
There is a hook in the ROM.  I don't remember the details, but they're in a thread here somewhere by cha3lie or something like that.  He was a software developer way back when.  Doing animated pictures on the 512 was a thing he did I think.  I wish I could remember more helpful details and I hope the posts aren't some of the lost ones.

 

Gorgonops

Moderator
Staff member
Without some documentation if such a hook exists it doesn't do anyone any good. (I don't recall seeing anything about it in "Inside Macintosh" but I'm more than willing to admit I haven't read it cover to cover.)

A reason I have to be skeptical is when Apple introduced the "Techstep" debugging tool my understanding is it relied on booting the attached Mac by emulating a SCSI disk, not by triggering a IPL over serial. If there's any application that would have been well served by such a diagnostic hook it would have been that. (I know plenty of secret Apple internal service manuals have leaked out over the years, do any of them mention a unit test procedure that happens over serial?)

 

Gorgonops

Moderator
Staff member
... come to think of it, annotated disassemblies of the 64k and 128k ROMs exist, it would seem if it was there it would have been noted? Maybe I need to pull one up and get reading when I have the time.

 

CC_333

Well-known member
It was H3nry not Cha3lie.
Close enough :)

Leaky memory.
It happens to the best of us. Even my relatively young memory springs a few leaks every now and then (especially if I'm tired or stressed).

... come to think of it, annotated disassemblies of the 64k and 128k ROMs exist, it would seem if it was there it would have been noted? Maybe I need to pull one up and get reading when I have the time.
It seems logical that if it did exist, it could be found in there. Which begs the question: how come nobody's leveraged it for more interesting stuff before now? Either it doesn't exist, or if it does, it's so limited in scope that it's not super useful for much of anything.

Or, maybe, it hasn't been found yet, because the debugging code I guess gets scrutinized less often than the juicy fun stuff?

Come to think of it, didn't the Mac dev team have Macs being bootstrapped using Lisas? Of course, that was with prototype ROMs. It might be worth taking a peek at the Twiggy Mac ROMS to see if there are any vestiges of that code still contained therein.

c

 

Gorgonops

Moderator
Staff member
It was H3nry not Cha3lie.  Leaky memory.
Unless I'm missing something the "hook" described in that thread is a routine that checks a certain memory location to see if a ROM expansion device of some sort is present. If that's it then that doesn't get us to booting off serial without hacking the hardware.

 

trag

Well-known member
Unless I'm missing something the "hook" described in that thread is a routine that checks a certain memory location to see if a ROM expansion device of some sort is present. If that's it then that doesn't get us to booting off serial without hacking the hardware.


Yes, I think that is correct.  You'd probably, at the very least, need to install a carrier card under the ROMs with a ROM at the listed address to grab control.   Probably easier to just program it into a ROMinator, although I think BMOW stopped making the Compact Mac version.

I see now.  I did not clearly understand your intent.  You want a hook in the ROM execution that will take commands from the serial peripheral/let a serial device take over control of boot execution.    Yes, I know of no such routine.   I hope I did not get any hopes up too much.

 
Last edited by a moderator:

TechEdison

Well-known member
TCP/IP over PPP. Sorta like MacPPP and MacTCP. I never got it to work on my Plus and it would be super cool to have an all in one app for this type of networking. I could fit that, MacWeb1.0, and OS6 on a floppy!

 

Gorgonops

Moderator
Staff member
I hope I did not get any hopes up too much.
Hey, no worries. I was momentarily optimistic you might have remembered something great, but, well, life is full of little disappointments. :wink:

I did stumble across this little oddity that is almost certainly nothing, but it is... intriguing. Built into the Mac Plus and later ROMs is a debugger that's basically a really brain-damaged version of MacsBug called MicroBug. (It's not in the original 64k ROM.) The documentation for it is minimal and fragmentary, but there's this intriguing bit in the tech note:
 

MicroBug and the Modem


If you crash into the debugger and the system hangs, try turning off your modem.



Note:
I have no idea whether this is still useful advice, but how could I remove such a cryptic comment from the technote? -- 1998
I'm *guessing* that if there's anything to that it's probably to do with an interrupt handler getting wedged or something, but... it would be fascinating to discover if when MicroBug is triggered it had some sort of hook in it to allow it to take debug commands over serial. I mean, in theory at least, if such a thing happened and you could grab it I could imagine the possibility of using "set memory" commands to push a chunk of machine language code into RAM and jumping to it...

But, yeah, lacking any evidence that MicroBug does that it's just a dream.

(Dumb question, if someone has a Plus with a programmer switch sitting nearby: will it drop into microbug when you trigger an NMI while sitting at the "insert floppy" prompt before booting, or is MicroBug only available after an OS is loaded?)

 

Dog Cow

Well-known member
(Dumb question, if someone has a Plus with a programmer switch sitting nearby: will it drop into microbug when you trigger an NMI while sitting at the "insert floppy" prompt before booting, or is MicroBug only available after an OS is loaded?)
That gives you a sad Mac because the 68000 exception vector isn't setup for it, also MicroBug relies on the Toolbox, which isn't completely setup at the question-floppy prompt.

 

Dog Cow

Well-known member
Basalgangster's The Long View blog had some nice resources on early dev tools. I believe he's a member that you could try sending a PM to? Although I think you and him share a domain. :)
We've been in touch for several years. I host his blog, btw!  :p  Which I highly recommend reading, because the articles are of a very high quality. It's a shame he doesn't do more.

I have all the hardware, software, and documentation to program the original 64K ROM as well as the 128K ROM. I already know 6502 assembly language; all I need to do is pickup 68000, get more familiar with the Toolbox, and I'm all set.

 

Dog Cow

Well-known member
Did Quicktime have a version for System 6? If not maybe you can give that a shot. Just a friendly suggestion.
Yes, but it never ran on the 68000. QuickTime, which was released in 1991, always required a 68020 or better. It interfaced with Color QuickDraw.

I am only interested in writing software compatible with the Macintosh 512K and 512Ke.

 
Top