[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Apple Graphics Tablet



Marc S Ressl <mressl@macgui.com> wrote:
> Hello everyone:
> 
> I just managed to emulate the Apple Graphics Tablet on OpenEmulator! I am
> not releasing this yet, but I thought it would be worth to open-source my
> findings:
> 
> The tablet is based on the BitPad by Summagraphics Corp. It works by using
> the magneto-strictive effect, of which I knew nothing a week ago :-).
> 
> In short: when you open the tablet there are two overlapping arrays of
> wires, one arranged in the horizontal sense and the other in the vertical.
> It looks like this (for the X and Y axis, respectively):
> 
> (X)
> |---------------
> |---------------
> |---------------
> |---------------
> |---------------
> |---------------
> |---------------
> 
> (Y)
> ----------------
> | | | | | | | |
> | | | | | | | |
> | | | | | | | |
> | | | | | | | |
> | | | | | | | |
> | | | | | | | |
> 
> So in order to measure the X-position of the pen, a copper wire
> perpendicular to the X axis is energized, and a short electromagnetic pulse
> is produced that induces a mechanical wave in the X-axis wire array. The
> mechanical wave propagates at the speed of sound in this array, which is
> then converted back to electromagnetic energy and detected with a coil in
> the pen.
> 
> In short, you generate a pulse in the X-axis, and measure the time it takes
> to be received at the pen.
> 
> The same is done for Y-axis.
> 
> The pen also can be pressed, and this is sensed with a simple switch.
> 
> Now comes the interesting part... how does the AppleGraphics Tablet
> Interface work? Schematics are available on the Apple II Documentation
> Project, but it is not very obvious:
> 
> First, there are three 4-bit counters that are in a cascade. As expected,
> they are of two different types (here starts my irony). The first counter is
> fed with a clock signal that is derived from the 7MHz Apple II slot signal.
> Here comes a really crazy part. They implemented a digital frequency
> multiplier using an LC circuit. With my present knowledge of electronics
> this seems archaic, but I was surprised to notice it works by implementing
> an LC-tuned amplifier that seems to be tuned to the 7th harmonic of the 7
> MHz square wave. Out comes a sinusoidal wave, that is then rectified. I
> found this very creative!
> 
> Next, how are the counters reset? IMHO: this is absolutely awful. Reset is
> wired to the flip flop that enables the $C800 memory range, so you have to
> disable that range to reset the counters. And only the first and second
> counter is reset, not the third.
> 
> Also, the counters only work while $C800 memory is enabled.
> 
> The Apple Graphics Tablet I/O uses the following I/O addresses:
> 
> (X is the slot plus 8)
> $C0X0: for sending a short pulse to the X-axis
> $C0X1: for sending a short pulse to the Y-axis
> $C0X2: writes on the data bus lines D0 to D3 the least significant 4 bits of
> the count.
> $C0X3: writes on the data bus lines D0 to D7 the most significant 8 bits of
> the count.
> 
> Both $C0X0 and $C0X1 also set the third 4-bit counter to state 1111. The
> access to $C0X3 also presets the first counter, and set the state of the pen
> on the least significant bit.
> 
> So, how does everything come together?
> 
> * To reset the counters $C800 access must be disabled and enabled again. The
> code that does this in the ROM is quite awful.
> * To read the X-axis, $C0X0 must be accessed. Likewise $C0X1 for the Y-axis.
> * A delay is necessary so that the pulse arrives at the pen.
> * $C0X2 is accessed, to determine the lower 4-bits of the count.
> * $C0X3 is accessed, to determine the higher 8-bits of the count. This also
> puts the state of the pen switch on the least significant bit of the count.
> * $C0X2 is accessed, to determine the state of the pen in the least
> significant bit.
> 
> Voila. I'm tired now. And I am also sure this causes a lot of
> electromagnetic interference :-).
> 
> With the best wishes!
> 
> Marc.-

Nice job, Marc!  I'd always wondered about that tuned circuit. ;-)

-michael - NadaNet 3.1 and AppleCrate II: http://home.comcast.net/~mjmahon