Mice, everywhere!
A computer mouse is nothing special anymore, but of course, that was not always the case. In the earlier days of home computing everything was done using a keyboard. Then there was this company called Apple with a computer named Lisa that wanted to change the world with a device called a mouse. However, they did not invent the mouse, but I am sure everyone reading this already knows that. What they did was that they completely eliminated the need to have use a keyboard (except for text input, of course). Suddenly, well not so suddenly, because the Lisa failed and the Macintosh did not change the world instantly, either, the user grew accustomed to using the mouse and used it ever since. Even today with all the touch screens and stuff, mouse and keyboard are the primary input device for desktop computers.
Today, almost every platform uses USB or Bluetooth, but earlier, PCs usually were equipped with mice that connected to either the serial port, the PS/2 port and Macs used ADB. One thing that is common to all of these connection types is that the mice need to be intelligent devices, meaning that the movement is is calculated inside the mouse and the computer gets actual numbers that can be used instantly. Prior to that, the mice connected to computers only delivered the raw signals of the quadrature encoders and buttons. The computers were responsible to decode these signals themselves, like the first Mac, the Amiga, the Atari ST or the Apple IIc. Alternatively some kind of additional card was used that had it's own processing unit, like the Apple II Mouse Card or the Microsoft InPort (aka. Bus mouse) card. In other words, not every mouse that has a DB-9 connector is real serial mouse!
The extremely interesting site folklore.org about the making of the original Macintosh states that the Apple II department originally thought that it wasn't possible to run a GUI on the Apple II, but the designers of the Mac proved them wrong when they designed a mouse interface and working software. For fun! Later, after the introduction of the Mac, Apple offered the Mouse Card and a mouse for the IIc.
The card contains a 6805 microcontroller, a 6521 PIA, a 16R4 PAL and a 2k ROM. The ROM is obviously for the firmware that provides routines to initialize the mouse, read location and button values and so on. The 6805 µC decodes the pulses from the mouse's quadrature encoders and buttons and may request an interrupt on mouse move, button pressed or screen refresh. The PIA provides some kind of buffer or latch for the µC data, because it is not fast enough to read or write data from the Apple's bus. I think it has a timer that generates a mock-screen refresh interrupt, but I'll have to look into that. The PAL does some decoding logic, although the schematic and the jed-file don't seem to match exactly.
Today, almost every platform uses USB or Bluetooth, but earlier, PCs usually were equipped with mice that connected to either the serial port, the PS/2 port and Macs used ADB. One thing that is common to all of these connection types is that the mice need to be intelligent devices, meaning that the movement is is calculated inside the mouse and the computer gets actual numbers that can be used instantly. Prior to that, the mice connected to computers only delivered the raw signals of the quadrature encoders and buttons. The computers were responsible to decode these signals themselves, like the first Mac, the Amiga, the Atari ST or the Apple IIc. Alternatively some kind of additional card was used that had it's own processing unit, like the Apple II Mouse Card or the Microsoft InPort (aka. Bus mouse) card. In other words, not every mouse that has a DB-9 connector is real serial mouse!
The extremely interesting site folklore.org about the making of the original Macintosh states that the Apple II department originally thought that it wasn't possible to run a GUI on the Apple II, but the designers of the Mac proved them wrong when they designed a mouse interface and working software. For fun! Later, after the introduction of the Mac, Apple offered the Mouse Card and a mouse for the IIc.
The card contains a 6805 microcontroller, a 6521 PIA, a 16R4 PAL and a 2k ROM. The ROM is obviously for the firmware that provides routines to initialize the mouse, read location and button values and so on. The 6805 µC decodes the pulses from the mouse's quadrature encoders and buttons and may request an interrupt on mouse move, button pressed or screen refresh. The PIA provides some kind of buffer or latch for the µC data, because it is not fast enough to read or write data from the Apple's bus. I think it has a timer that generates a mock-screen refresh interrupt, but I'll have to look into that. The PAL does some decoding logic, although the schematic and the jed-file don't seem to match exactly.
Comments
Post a Comment