This Instructable explains how to add a Windows style mouse to an Atari 800.
Do you have paws instead of opposable digits? Are you finding pushing arrow keys to move the cursor around the screen hard work? Do you want to move into the 21st century? Bobbs just might have the answer.
An Atari 8 bit computer
Some means of storing the code, such as an Atari disk drive (do these still exist?), or SIO2BT, or SIO2SD
Atari Assembler Editor
for option 3 parts list
Step 1: Option 1 - Low Tech
First off, this is from Compute's Third Book of Atari. It uses a VBlank routine to move the cursor around the screen with a joystick.
Certainly worthy of mention. The code's nice and compact, it works and doesn't hog as much memory as option 2. However, I reckon we can do better.
Step 2: Option 2 - Mouse Driver
Following on from step 1, leave the joystick plugged in and take a look at the attached three files. An ATR file for those with the technology, and text files of the source code - it's all in 6502 assembly code.
The mouse driver is in two parts;
1) An autorun.sys file which boots on power up, sets the PMG and imports the VBlank routine. The source code is in the mouseloader2.txt file. I reckon there might be room for improvement in the addressing.
2) The VBlank routine (M.BIN) which handles the movement and button click.
There are a few limiting factors.
The Atari joystick is the first as it only has movement and a fire button, so unlike modern mice, we can't have too many tricks
Secondly, the autorun.sys file sits in page 6 so we're restricted to 256 bytes. This isn't really a problem as it works and can be deleted after loading.
The driver can't be too long as it runs in the VBlank, and needs to finish quickly or else bad things will happen.
Just over 2k is used, along with PMG player 0 and the VBlank routine.
After all this, we're left with up, down, left, right, and click / fire to move the text cursor to the new position. Still better than using the arrow keys though.
Pressing System Reset kills the mouse and changing graphics modes causes bad things to happen. Best stick to text editing in mode 0.
Step 3: Option 3 - Welcome to the 21st Century
Unplug that joystick and take a look at this;