Subject: ADB driver: ROM vectors needed
To: None <macbsd-general@netbsd.org, macbsd-development@netbsd.org>
From: grantham <grantham@amalthea.tenon.com>
List: macbsd-general
Date: 09/14/1994 14:09:21
I've been working recently on a scheme to hook into the Mac ROMs under
MacBSD for ADB service, basically implementing the entire ADB Manager
as described in Inside Macintosh.  I've got the setup working pretty
well on my MacII, and I've tested the code on a IIcx with success as well.
This means that MacBSD may soon have full support for ADB devices,
including three-button mice, extended keyboards, trackballs, etc...
In addition, this driver fixes the "infinitely repeating #" problem
with seems inherent in the driver I wrote for the Beta kernels.

This may pretty much solve the problem we've been having with ADB
on the Macs, but even more exciting to me is the possibility to
hook into other drivers, like floppy, sound, NuBus card drivers,
or even AppleTalk.

One problem with this driver is that it's not smart enough to find
the necessary ROM vectors by itself, although it uses the Booter
to read certain low memory globals automatically.  Therefore, I
need help from the MacBSD community to fill in the vector tables
for any Macs.  Once I've got our suffering IIsi and IIvx users
logged in on their keyboards, I'll give some more thought to
finding these vectors automatically.  (Please don't send me ideas
on this subject unless you have a definitive answer on where
to find symbols in the ROMs.)

Before you get all excited about this, I have to explain that this
driver isn't even in the alpha stage yet.  It still may be beyond me
to integrate the Mac ROM Glue with the ROMs on other machines (although
someone else may yet be clever enough).  In addition, even a working
ADB driver will still not help you if you have
	A) no Floating Point Unit
	B) a Mac with a "96" SCSI controller instead of a 5380 (most
		Quadras and many '040 machines)
	C) a Quadra 630 or any other Mac with an IDE drive
	D) a IIfx or MacTV or other REALLY weird architecture
	E) a Newton, even if it has a PCMCIA hard disk.
(and, of course, MacBSD would never run on an MMU-less Mac.)

I am willing to take *all* submissions of ROM vectors, mostly because
repetition reduces typing errors, so if you're interested in providing
vectors for your machine, please follow these instructions:

Install MacsBug.  Start your Mac with the CTRL key down.  This will
kick the system into MacsBug before loading any extensions, like
ROM patches.  Run these commands:

log adb.vectors
dm 19a
adbop
adbreinit
getindadb
getadbinfo
setadbinfo
countadbs
log

Mail the log file (in UNIX text format; no MIME attachments, please)
to "grantham@netcom.com" with a brief description of your machine.
I'll respond with a thank-you mail if I'm not swamped.  I'll try
to get those vectors incorporated into my kernel with the new ADB
driver as soon as possible.  I believe MacBSD 1.0beta may make its
way to public release around this weekend, so I'll do my best to
have at least a II/IIx/IIcx/SE30/IIci/IIvx/IIsi kernel available
before then so that all the working machines can be tested.

I'm fairly certain this is completely legal, since this is not actual
ROM disassembly, MacsBug is a well-supported tool from Apple, and this
driver will only work on Macs, which contain fully legal copies of
the ROMs purchased from Apple.  However, if you have questions,
please speak to me at grantham@netcom.com.

In other exciting news, I've almost got X11R6 ported (again).  I just
have to work out some cpp cruft.  I think it would be
really exciting to have Duo 270 ADB working, running X11R6 compiled
with "soft-float" on a non-FPCOPROC kernel.  (I can always wish.)

		-Brad
-- 
Brad Grantham, grantham@netcom.com >+------+< Happily slaved to NetBSD/Mac68k!
MacBSD : II, IIx, IIcx, IIci, SE/30, IIsi, IIvx -- The list is growing fast...