A&B Computing
1st January 1985
Author: Mark Webb
Publisher: ACP/Pres
Machine: Acorn Electron
Published in A&B Computing 2.02
The AMX mouse ingeniously provides something for everyone
Amazing Mouse
Amazing Mouse! If you have ever watched in awe as someone has demonstrated a mouse on a Mac or Apricot or If you are lucky enough to use one at work, then you will be happy to learn that AMS has come up with a rodent for the BBC which rivals the best.
For those who know only of Jerry or Danger Mouse, let me explain that a mouse is a control device which sits on a flat surface like a desk top and is connected via a cable or by infra red to the microcomputer. The AMX mouse plugs into the user port of the BBC. The mouse is moved around by resting the palm of one hand upon it and manoeuvring it with movements from the elbow and wrist. The three middle fingers of the hand rest upon three buttons on the front of the mouse, facing away from the user.
The idea of the mouse, which was invented by Apple to make using their Lisa software easy for businessmen, is closely connected with icon graphics. These graphics symbols appear on screen and represent branches within the application program. Meaningful icons can make recognition of the required task much quicker than with conventional test menus and you don't have to learn all the key presses of a command controlled program.
The mouse plays an important role, moving the pointer to the chosen icon, selecting, executing and cancelling with the three keys. Use of the keyboard is kept to an absolute minimum in a program like AMX Art.
You might think that the joystick or just the plain old cursor keys could do the same job but this is not so. The AMS mouse itself is designed so well that the user develops a "feel" for moving the pointer around the screen. The brain, it seems, finds it easy to make the connection between the mouse and hand and the eye and screen pointer. Reaction times improve and the learning curve for carrying out combinations of selections is very short.
Total Package
There is certainly no spare room going in the polystyrene box which contains the mouse. AMS have packed it with goodies. The Mouse software is on EPROM, ready go to into one of your sideways ROM sockets. There is a very comprehensive Mouse manual. An icon designer utility comes on disc or cassette as appropriate and the first piece of full blown icon graphics software, AMX Art, comes bundled, also with its own manual.
The heart of the system is the EPROM containing the Mouse commands. It is recommended that you fit this in the first priority socket on your BBC board, ie the far right socket. This will be socket 15 on a standard ROM expansion board but not on ATPL's, on which 15 is reserved. The manual states that this is for efficiency's sake. The software has been tested with a lot of other ROM software and AMS have talked to other companies about use of memory locations. I have come across no interference problems yet.
The Mouse software, written by David Elliot of Swoop fame, registers upon the screen at start up with "AMX Mouse off". Commands available are listed in table one. Of special interest is the fact that the commands are easily accessible from BASIC or Assembler. The technical guide lends a hand to those wishing to write their own software around the Mouse or to convert existing software to work with it.
The ROM software checks the position of the mouse and the state of the buttons. This entails using two vectors, the event vector and the keyboard vector. The mouse continually generates interrupts. The mouse makes use of bits two and five to eight of the user port as well as lines CB1 and CB2.
OSWORD (&FFF1) is called with the accumulator set to 64. The coordinates of the mouse (in graphics and text form) are returned, together with the state of the three mouse buttons, into seven bytes pointed to by the X and Y registers. The manual details the contents of this seven byte block and provides simple BASIC and assembly programs to plot points as the mouse moves around.
Mouse Commands
The results of the OSWORD 64 call control the on-screen pointer. For fine control of the pointer, there is a *SENSITIVITY command. *MCURSOR ON/OFF controls the use of the mouse within application software like View or Wordwise. The command actually gets the mouse to emulate the cursor keys. Using *BUTTONS, you can define the mouse buttons to get codes equivalent of oft used keypresses (DELETE, COPY, RETURN for instance).
WINDOW, ICON, i,x,y, and *DEFINE commands are available to aid the design and coding of icon based software. Windows are drawn with special borders and icons accessed by icon number(i) and planted at TAB(x,y).
This software is especially easy to use from BASIC. *DESK is the equivalent of CLS to grey background - one of the trademarks of icon software, witness Acornsoft Database (Electron), The Music System, Acorn Desk Top Manager and Apple predecessors.
The icons themselves are split into two types, those defined in the ROM (32 to 96) and those which have to be user defined (0 to 31). There are example sets in the bundled software. The ICON DESIGNER is used to build and file icon libraries and DEFINE to specify which set you wish to use. The manual describes the file structure used to store icons so they can be easily incorporated into software not designed to access the ROM commands.
The BASIC designer itself will be familiar to anyone who has used a character or "sprite" designer. The 32 byte icon is built up from individual squares on a larger grid, while the actual size appears beside it. New icons are assigned a place in the current library. Icon files can be loaded and saved and individual icons dumped in the bin or amended on the oversize grid.
Perhaps the most important family of commands are those associated with the pointer. Unlike the other, before they can be used a *POINTER ON command must be issued and the Break key pressed. This reserves 256 bytes and PAGE moves up to &1A00. This is not necessary if a second processor is being employed. To simulate Break within a program a *BREAK command is available.
Once the pointer routines are initialised *POINTER iconl icon2, sets the icon number (and its mask) which will be used as a pointer. If icon2 is not specified then the program assumes the mask to be iconl + 1. ROM held icons 80 to 91 are designed for use with this command and consist of icon and mask pairs. *POINTER 80 sets the arrow icon as pointer.
*SHOWPOINTER displays the pointer at the current mouse position. *HIDEPOINTER removes the pointer. For smooth movement *MOVEPOINTER combines the two, with a *FX19 thrown in to wait for screen refresh.
*UPDATE uses OSWORD 64 to move the text cursor to the current position of the mouse. As well as using 256 bytes workspace, these routines also make use of zero page locations &70 to &8F.
I think it is plain from this brief look at what the commands do that making use of the mouse software should not prove a problem to BASIC programmers. The commands can also encourage beginners to try their hand since results are speedy and impressive. The manual provides a technical run-down of each command and is devoted to opening doors for the would-be mouse programmer.
Bringing Out The Artist
No longer ARTWORK because of some obscure American software company having got there first, AMX Art is the first application software based on the mouse. It's an obvious choice as number one. A desk top organiser will follow shortly incorporating telephone list, desk diary and so on (watch Down to Business).
When you choose AMX from the system menu (you can *RUN it direct if you wish), the screen clears to the grey (alternate black and white pixels) of *DESK in Mode 4. Sober grey colours are now deemed appropriate for icon graphics everywhere - mainly because they take up so much memory that colour is an impossible luxury. In fact it is possible with your own icon programming to make use of colour by redefinition.
Everything is on screen. If you point to any of the choices on the top line then "pull down" menus enlarge upon your options.
"File" opens up for loading and saving pictures - shame that you can't catalogue a disc from here. Saving means typing in a filename, hitting Return and then confirming the choice. The right hand mouse button cancels at any time but there is also a cancel option on screen.
"Options" was most used by me for its Clear command but is full of miscellaneous options for control over printout, cassette/disc filing, grid lock, access to * commands and fast/slow sensitivity. Options are highlighted by moving the mouse and executed with the left hand button.
"Text" can be plain, italic, bold or very bold, and certain combinations of italic and bold. In practice some characters get a bit stunted in very bold. As in other windows, you highlight your choice, press the left hand button and a tick appears besides it.
"Line" has plotting options for black, white and dotted lines. Current selection is ticked in the window but also displayed at all times in the top right hand corner of the screen.
AMX Art lacks some of the "goodies" of a MacDraw but provides for drawing with lines, airbrush and roller (fill). Airbrush is especially easy to master and results can be impressive. Different types, sizes and shades can be employed. The artist can switch around between sixteen different patterns - the Designer can be used to create new types. Circles and rectangles can be situated, moved and drawn by pointing at the right box and making use of the left and middle mouse buttons.
The current action can always be cancelled by pressing the righthand button. Indeed with the fill, your last try can be cancelled out even after execution. Other corrections have to be made with the "rubber", a mouse controlled cursor which clears to white background. The mouse is so sensitive that it is not difficult to tidy up pictures to fine detail.
Initial experience with the package encourages me to think that children will find its simplicity appealing and will be encouraged by the quick, bold and competent results they can produce. The examples I have seen in the manual and at UMIST, where David Brader, AMS's technical director resides, reveal the possibility of some considerable detail. Children will enjoy the availability of ready made backgrounds and the absence of colour is partly made up for by the variety of shading.
Summary
The AMX mouse has won over everyone who has used it. The hardware is ingenious, works alongside all the other sideways ROMs I could find and works with a second processor. The commands in ROM are not designed for the professional programmer but for everyone and are fully documented with examples and demonstrations. The software displays great promise for use with educational packages, providing symbolic representation on screen and extremely easy access for children to computing power.
AMX Art is a worthy package in its own right. Once again simplicity of operation, a difficult thing to achieve, makes it a joy to work with especially for youngsters and those new to computing. It pushes the BBC to its limits without worrying the user. "Software ergonomics" is becoming more and more important as computers become part of everyone's lives.
The mouse and icon software means that you don't have to sit down and learn the software every time you want to use it - we don't all sit in front of a computer all day! Kids in the classroom, who perhaps get to use the computer once a week, and the executives who haven't the time to take up a new hobby just to use a computer will appreciate the mouse as well as us enthusiasts. An amazing mouse indeed!