Subject: Re: MacNosy... + ADB hacking
To: None <macbsd-general@sun-lamp.cs.berkeley.edu>
From: kr <kr@shell.portal.com>
List: macbsd-general
Date: 04/14/1994 04:03:02
At 22:31 4/13/94 -0400, Allen Briggs wrote:
>We're not reverse engineering the ROMs.  That might work, but is in a
>legal gray area, and it'd be difficult to know exactly how things really

Actually, reverse engineering is not a grey area, and a common practice
throughout industry. The shrink wrap cover on the MacOS claims that it is
supposedly illegal to disassemble their code, but shrink wrap licenses have
been found unenforcable by court decisions. (I am glad that not all
insanity is left unchecked.)

In order to figure out the driving of some peripheral, it might really help
a lot to disassemble the code to see how it is done. It could be amazingly
effective in clarifying some problems. After you know how to control the
devices, one is in the position to write genuinely original code, that in
no way infringes on Apple's copyright claims.

Can someone summarize the current state of knowledge on these ADB chips and
point out what sticky unknown areas remain ?

Also, what is the difference between the IIci and the IIsi ? It seems that
the separate RTC and ADB chips in the IIci have been combined into this
one-chip 68HC05 microcontroller deal. Is that micro then the same in all
the later Macs, like the IIvx, the PowerBooks, and the Quadras ? I only
have a IIsi, but I would be willing to open it find the exact chip-number
of this controller, and people with other machines could do the same, if
this is of any help in determining whether the newer ADB implementations
are all the same.

Are interrupts involved ? This of course makes driver software trickier. If
the interrupt vectors are known which service the ADB, it might again be of
help to disassemble some of that code to see how the information is polled.


In some IIsi Developer Note, it says "Several bits in VIA1 have been
redefined to allow the ROM to distinguish between different computers." I
suppose those are just differences between IIci and the newer ADB, or is
now every machine different ? Are the exact changes known ?

How is the ADB interface accessed anyway ? How was done it in the old
implementation ? In the IIsi DevNote it says "Access to RTC or PRAM is
different from previous Macintosh computers. It is accomplished through
modified ADB style commands." Does this affect regular ADB operation ?

I am tossing out these questions so that we can establish what knowledge we
have and where the problems are sitting, so that we can get moving on this
thorny ADB issue. If a summary of the status of the current ADB driver
development were posted here, it might inspire some people to try new
approaches in getting at the necessary data. It is a pity that no Apple
techie is helping us, because they thought up the stuff in the first place.
Are any Apple people actually listening in on this mailing list ?


Greetings
Markus Krummenacker



------------------------------------------------------------------------------