So I'm reverse-engineering part of the Microsoft Booster now

Hardware questions and modifications

So I'm reverse-engineering part of the Microsoft Booster now

Postby jmetal88 » Thu Mar 12, 2015 9:57 am

As some of you may know already from one or more of my other posts, I have a Microsoft Booster that I ruined the PCB for by removing the sidecar connector to use on my jrIDE. Since the jrIDE duplicates all functionality of the Booster except for the mouse, I've been getting by with a serial mouse and haven't missed the Booster all that much, except when I see that 1983 Microsoft Mouse sitting there without a use. So I finally decided that, since the PCB seems to be so difficult to repair, I'm just going to reverse-engineer the mouse circuit and try to build it on a new card, perhaps simplifying any existing circuitry that just seems to be there for the parts I don't need (like DRAM and the clock/calendar chip). Wish me luck!
jmetal88
 
Posts: 794
Joined: Sun Jul 25, 2010 10:22 am

Re: So I'm reverse-engineering part of the Microsoft Booster

Postby jmetal88 » Thu Mar 12, 2015 12:51 pm

Alright, ran into my first major problem.

There's a 555 circuit on board that seems to generate the interrupts for the mouse (IRQ 1, IRQ 2, or IRQ 7), and it's missing a capacitor, specifically the one that should go from Trigger and Threshold to GND. I don't remember removing that capacitor, and it was clearly either clipped or broken rather than desoldered. I have no idea what value it was supposed to be.

It's labeled C26 on the board. Does anyone have a Booster they can open up and check for me? Alternatively, does anyone know about how often this circuit should be generating an interrupt?

EDIT: May be worth noting that while playing around with the circuit in a simulator, I can't get a full 5V output out of the 555 unless I use a capacitor in the pF range in that spot. Depending on what values I use, the period of the waveform is above or below 100uS.

EDIT 2: Looks like anything under 1000pF will output the full 5V. I can get the period up to about 1.7mS max, this way.
jmetal88
 
Posts: 794
Joined: Sun Jul 25, 2010 10:22 am

Re: So I'm reverse-engineering part of the Microsoft Booster

Postby jmetal88 » Fri Mar 13, 2015 3:08 pm

More interrupt stuff: The interrupts are gated by a signal on bit 4 of Port C on the Booster's 8255 chip (which I'm assuming means they are intended to be turned on and off via software). Bits 5, 6, and 7 of Port C are connected to the mouse decoder, but bits 0, 1, 2, and 3 are connected to the clock/calendar chip. I doubt very much that a 555 would be used to generate RTC interrupts, which is why I'm assuming it's for the mouse, and I'm guessing one of the things the mouse driver would do would be to set bit 4 on port C low to generate mouse interrupts.

The addresses used for this card appear to be (if I've documented the circuit correctly so far) 0x230 to 0x23F. It actually only uses four addresses (three 8255 ports plus the 8255 control port), but address lines A3 and A2 don't seem to be connected to anything except the DRAM controller, meaning the device is duplicated on 0x230-0x233, 0x234-0x237, 0x238-0x23B, and 0x23C-0x23F.

All I have left to figure out at this point is the data direction circuitry (shouldn't be too much more to deal with) and what value C26 was supposed to have been. I almost want to say C26 was missing when I got the Booster, so maybe it works without it? I mean, that's not really a 555 configuration that's supposed to work, but maybe in practice it's still unstable enough to generate regular interrupts.
jmetal88
 
Posts: 794
Joined: Sun Jul 25, 2010 10:22 am

Re: So I'm reverse-engineering part of the Microsoft Booster

Postby jmetal88 » Fri Mar 13, 2015 8:19 pm

Dang, I wish I could see what's on page 244 and 245 of this book:

https://books.google.com/books?id=vzQb4 ... &q&f=false

From the text, it looks like the example schematic for the mouse decoder used on the Booster would be in there.
jmetal88
 
Posts: 794
Joined: Sun Jul 25, 2010 10:22 am

Re: So I'm reverse-engineering part of the Microsoft Booster

Postby Brutman » Fri Mar 13, 2015 9:31 pm

http://www.amazon.com/Input-Devices-Sol ... 012433332X

For about $12 (shipping included) that can be arranged.
Brutman
Site Admin
 
Posts: 931
Joined: Sat Jun 21, 2008 5:03 pm

Re: So I'm reverse-engineering part of the Microsoft Booster

Postby jmetal88 » Fri Mar 13, 2015 10:56 pm

I'm going to want to exhaust every free of charge possibility on this first, haha.

I e-mailed the closest university library that has a copy and asked if they could scan or take a picture of just that figure for me. We'll see if that works out.

In other news, I did just find some address decoding logic to eliminate. The 74ls245 buffer apparently buffers the DRAM data lines in addition to the 8255 data lines (come to think of it, I already knew this from back when I was originally messing around with upgrading the RAM in this sidecar to 512k), so the address decode logic going to it is a little more complicated than it needs to be for just decoding the I/O addresses. In fact, I should be able to use the same address decode logic for the 74ls245 as that which goes to the 8255 if all I'm worried about is the mouse circuit, which is simply one output from a 1-of-8 decoder ORed with the inversion of the IO/#MEM line (for an active LOW chip select).

EDIT: Yup, after some thought, by eliminating the memory address decoding, I can condense part of the I/O address decoding that consisted of a NAND chip, an AND chip, and an OR chip down to a single NAND chip.
jmetal88
 
Posts: 794
Joined: Sun Jul 25, 2010 10:22 am

Re: So I'm reverse-engineering part of the Microsoft Booster

Postby jmetal88 » Sat Mar 14, 2015 8:34 am

Huh, they actually got the diagram for me. It's a little bit of a disappointing diagram, though, because it doesn't have any pin numbers, so even though I know what the signals to the chip are now, I still don't know which pins are which signals, except by taking an educated guess. Well, I do know exactly where the quadrature inputs are, I guess, and I would guess that the data lines are on Port A of the 8255 along with the mouse button signals, which would leave the control lines as an output on the most significant nibble of Port C, along with the gate signal for the interrupt generator. One thing that is actually helpful about the schematic, though, is that it mentions an oscillator input, which must be on pins 1 and 2 because all I could find connected to those was a single resistor and a capacitor. Since there's only one crystal on board and it's for the date/time circuit, I likely missed a couple of other connections to an R/C oscillator circuit.

EDIT: Actually, no, the single resistor and capacitor might actually be what it uses. Some chips have built in circuitry that only needs one external resistor and one external capacitor to oscillate.

EDIT 2: Okay, so pins 3, 6, and 7 are what I have left to figure out. The diagram shows inputs for "X/Y" "Select" and "Enable/Reset Counter". I guess I don't really need to know which is which since I already know where they are connected on the 8255, but it'd be nice to have a full pinout of the chip anyway.

EDIT 3: I wonder if Enable/Reset is actually the pin that's tied HIGH? I kind of feel like Select, assuming that means nibble select since the chip only has a 4-bit output, would actually have to be two lines or you'd only get an 8-bit resolution on each axis, which doesn't seem like it'd be very good for a mouse. If that's the case, the Select lines are probably the two that are together on pins 5 and 6, which would leave X/Y on pin 3.
jmetal88
 
Posts: 794
Joined: Sun Jul 25, 2010 10:22 am


Return to PCjr Hardware

Who is online

Users browsing this forum: alanh, Brutman and 1 guest