Home » Archimedes archive » Micro User » MU 1991-04.adf » PD-Stuff » !Warfarin/!Help

!Warfarin/!Help

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Micro User » MU 1991-04.adf » PD-Stuff
Filename: !Warfarin/!Help
Read OK:
File size: 1804 bytes
Load address: 0000
Exec address: 0000
File contents
>$.!Warfarin.!ReadMe

                        Documentation for Warfarin V1.10
                        --------------------------------

Installing Warfarin
-------------------

From outside the Desktop: Type the command "*!Warfarin".
From inside  the Desktop: Double-click on the !Warfarin icon (but you need
                          a working mouse to do this...Catch-22 !).

There are no * commands supplied: Warfarin activates as soon as it has loaded.
The only way to remove it is *RMKill it (or hard reset/switch off). You can do
*Help Warfarin, but it doesn't tell you anything astounding.

Running Warfarin a second time whilst still running the first copy will simply
re-define Warfarin's environmental variables and re-initialise the Warfarin
module.

What does Warfarin do ?
-----------------------

It allows the mouse pointer to be moved by using either Alt key in combination
the cursor keys (and Insert, Home and Page Up by default) to move the mouse
(and press the left, middle and right buttons).

Why's it called Warfarin ?
--------------------------

Warfarin is a crystalline insoluble substance (C  H  O ) used as a rodenticide.
                                                19 16 4

Hence, my module is used when your mouse is dead !

I should remind readers that Warfarin is the patent name owned by
Wisconsin Alumni Research Foundation, derived from their initials and the
compound courmarin (C H O ).
                     9 6 2

How do I use it ?
-----------------

Press Alt and, whilst still holding down Alt, press one of the four
cursor keys to move the mouse pointer. It will move smoothly at the rate
that you've set for *Configure MouseStep. If you are using the default
settings, then pressing Alt-Insert will act as if you've pressed the left
mouse button. Alt-Home (middle button) and Alt-Page Up (right button) also
simulate mouse button presses.

*NEW TO V1.10*
When Alt is held down, the normal text cursor will NO LONGER MOVE when the
cursor keys are pressed. The mouse button behaviour, however, remains the
same now regardless of whether Alt is depressed or not (this is a change over
V1.00).

Changing the Default keys   *NEW TO V1.10*
-------------------------

There are now five variables defined in Warfarin's !Run file:

Name             Default value    Default Key
----             -------------    -----------
Warfarin$Fake1        &5F          Left Alt
Warfarin$Fake2        &60          Right Alt
Warfarin$Left         &1F          Insert
Warfarin$Middle       &20          Home
Warfarin$Right        &21          Page Up

These should all be defined as integers using the *SetEval (NOT *Set) command.
The values are internal keycodes as found on Page 122 (watch out - the table's
"low" and "high" labels are incorrectly switched) of the RISC OS PRMs.
So, for example, if I wanted to use Shift instead of Alt as a new modifier and
f1 to f3 for the L,M and R buttons, then the !Run lines would look like this:

*SetEval Warfarin$Fake1  &4C
*SetEval Warfarin$Fake2  &58
*SetEval Warfarin$Left   &01
*SetEval Warfarin$Middle &02
*SetEval Warfarin$Right  &03

Once you've updated the !Run file, simply re-run Warfarin (see "Installing
Warfarin" for more details) to use the new settings.

Technical Section
-----------------

Well, I had some problems getting this one to work ! I tried:

1) OS_GenerateEvent 10 to force a button pressed event...the OS ignores it.

2) Forcing nine bytes into the mouse buffer every vsync - also failed.

3) Setting the mouse position with OS_Word 21 (param 3). This worked, but
   you can't set the mouse button state with it.

4) Trapping OS_Mouse itself. This worked after I used the example in the
   manual - boy, modifying return parameters on a vector is hard work. I
   used the OS_Mouse vector to 'tweak' the mouse button states, but it's
   no good for updating the mouse position.

5) Trapping OS_ByteV or Event 2 to stop the text cursor moving - neither
   worked.

6) Finally sussed how to stop the text cursor (or Wimp caret for that matter)
   from moving - trap InsV and look for cursor keys (coded 140 to 143 decimal
   would you believe !).

The Warfarin module survives a soft reset.

Known Problems
--------------

* Computer Concepts' Impression package does some devious things once a menu
  has been opened - it must check the mouse button directly because the menu
  closes immediately if it was opened using Warfarin !

* If a program doesn't use OS_Mouse or Wimp_GetPointerInfo (or Wimp_Poll Event
  6 of course) to scan the mouse, then Warfarin can't fake the mouse button
  presses.

Revision History
----------------

Version 1.10 (September 1990)
------------

* Stopped the text cursor/caret moving whilst the Alt key is held down
  simultaneously with the cursor keys.

* Allow the mouse buttons to be used simultaneously with Insert/Home/Page Up
  when the Alt key is depressed (the former were disabled with V1.00).

* Added five new environmental variables to allow key-mapping changes
  with a simple text edit rather than having to hack and slash and re-assemble.

Version 1.00 (January 1990)
------------

* The mouse on the A440 I use at work refused to move in a sensible fashion
  and it was like trying to play a game of 'can I get the mouse to move in
  the direction I want ?'. Since the Atari ST can move the mouse via the
  keys, I simply couldn't let a vastly inferior machine get away with a
  useful feature that the Archimedes doesn't have.

Future Enhancements
-------------------

* I'll probably have a 'speedup key' to double the speed of the mouse movement
  if it has a long way to travel.

A Plea From The Author
----------------------

If you make some USEFUL changes to the source or fix any bugs, can you please
send me those changes to the following address:

Snail Mail                   JANET e-mail
----------                   ------------

Richard K. Lloyd,            rkl@uk.ac.liv.cs.and
1, Banks Road,
Lower Heswall,
Wirral,
Merseyside. L60 9JS

P.S. The mouse on new Archimedes machines is *much* better (made by Logitech)
     than the rubbishy one originally supplied a couple of years back.
00000000  3e 24 2e 21 57 61 72 66  61 72 69 6e 2e 21 52 65  |>$.!Warfarin.!Re|
00000010  61 64 4d 65 0a 0a 20 20  20 20 20 20 20 20 20 20  |adMe..          |
00000020  20 20 20 20 20 20 20 20  20 20 20 20 20 20 44 6f  |              Do|
00000030  63 75 6d 65 6e 74 61 74  69 6f 6e 20 66 6f 72 20  |cumentation for |
00000040  57 61 72 66 61 72 69 6e  20 56 31 2e 31 30 0a 20  |Warfarin V1.10. |
00000050  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000060  20 20 20 20 20 20 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |       ---------|
00000070  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000080  2d 2d 2d 2d 2d 2d 2d 0a  0a 49 6e 73 74 61 6c 6c  |-------..Install|
00000090  69 6e 67 20 57 61 72 66  61 72 69 6e 0a 2d 2d 2d  |ing Warfarin.---|
000000a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000000b0  0a 0a 46 72 6f 6d 20 6f  75 74 73 69 64 65 20 74  |..From outside t|
000000c0  68 65 20 44 65 73 6b 74  6f 70 3a 20 54 79 70 65  |he Desktop: Type|
000000d0  20 74 68 65 20 63 6f 6d  6d 61 6e 64 20 22 2a 21  | the command "*!|
000000e0  57 61 72 66 61 72 69 6e  22 2e 0a 46 72 6f 6d 20  |Warfarin"..From |
000000f0  69 6e 73 69 64 65 20 20  74 68 65 20 44 65 73 6b  |inside  the Desk|
00000100  74 6f 70 3a 20 44 6f 75  62 6c 65 2d 63 6c 69 63  |top: Double-clic|
00000110  6b 20 6f 6e 20 74 68 65  20 21 57 61 72 66 61 72  |k on the !Warfar|
00000120  69 6e 20 69 63 6f 6e 20  28 62 75 74 20 79 6f 75  |in icon (but you|
00000130  20 6e 65 65 64 0a 20 20  20 20 20 20 20 20 20 20  | need.          |
00000140  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000150  61 20 77 6f 72 6b 69 6e  67 20 6d 6f 75 73 65 20  |a working mouse |
00000160  74 6f 20 64 6f 20 74 68  69 73 2e 2e 2e 43 61 74  |to do this...Cat|
00000170  63 68 2d 32 32 20 21 29  2e 0a 0a 54 68 65 72 65  |ch-22 !)...There|
00000180  20 61 72 65 20 6e 6f 20  2a 20 63 6f 6d 6d 61 6e  | are no * comman|
00000190  64 73 20 73 75 70 70 6c  69 65 64 3a 20 57 61 72  |ds supplied: War|
000001a0  66 61 72 69 6e 20 61 63  74 69 76 61 74 65 73 20  |farin activates |
000001b0  61 73 20 73 6f 6f 6e 20  61 73 20 69 74 20 68 61  |as soon as it ha|
000001c0  73 20 6c 6f 61 64 65 64  2e 0a 54 68 65 20 6f 6e  |s loaded..The on|
000001d0  6c 79 20 77 61 79 20 74  6f 20 72 65 6d 6f 76 65  |ly way to remove|
000001e0  20 69 74 20 69 73 20 2a  52 4d 4b 69 6c 6c 20 69  | it is *RMKill i|
000001f0  74 20 28 6f 72 20 68 61  72 64 20 72 65 73 65 74  |t (or hard reset|
00000200  2f 73 77 69 74 63 68 20  6f 66 66 29 2e 20 59 6f  |/switch off). Yo|
00000210  75 20 63 61 6e 20 64 6f  0a 2a 48 65 6c 70 20 57  |u can do.*Help W|
00000220  61 72 66 61 72 69 6e 2c  20 62 75 74 20 69 74 20  |arfarin, but it |
00000230  64 6f 65 73 6e 27 74 20  74 65 6c 6c 20 79 6f 75  |doesn't tell you|
00000240  20 61 6e 79 74 68 69 6e  67 20 61 73 74 6f 75 6e  | anything astoun|
00000250  64 69 6e 67 2e 0a 0a 52  75 6e 6e 69 6e 67 20 57  |ding...Running W|
00000260  61 72 66 61 72 69 6e 20  61 20 73 65 63 6f 6e 64  |arfarin a second|
00000270  20 74 69 6d 65 20 77 68  69 6c 73 74 20 73 74 69  | time whilst sti|
00000280  6c 6c 20 72 75 6e 6e 69  6e 67 20 74 68 65 20 66  |ll running the f|
00000290  69 72 73 74 20 63 6f 70  79 20 77 69 6c 6c 20 73  |irst copy will s|
000002a0  69 6d 70 6c 79 0a 72 65  2d 64 65 66 69 6e 65 20  |imply.re-define |
000002b0  57 61 72 66 61 72 69 6e  27 73 20 65 6e 76 69 72  |Warfarin's envir|
000002c0  6f 6e 6d 65 6e 74 61 6c  20 76 61 72 69 61 62 6c  |onmental variabl|
000002d0  65 73 20 61 6e 64 20 72  65 2d 69 6e 69 74 69 61  |es and re-initia|
000002e0  6c 69 73 65 20 74 68 65  20 57 61 72 66 61 72 69  |lise the Warfari|
000002f0  6e 0a 6d 6f 64 75 6c 65  2e 0a 0a 57 68 61 74 20  |n.module...What |
00000300  64 6f 65 73 20 57 61 72  66 61 72 69 6e 20 64 6f  |does Warfarin do|
00000310  20 3f 0a 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ?.-------------|
00000320  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0a 0a 49 74 20 61  |----------..It a|
00000330  6c 6c 6f 77 73 20 74 68  65 20 6d 6f 75 73 65 20  |llows the mouse |
00000340  70 6f 69 6e 74 65 72 20  74 6f 20 62 65 20 6d 6f  |pointer to be mo|
00000350  76 65 64 20 62 79 20 75  73 69 6e 67 20 65 69 74  |ved by using eit|
00000360  68 65 72 20 41 6c 74 20  6b 65 79 20 69 6e 20 63  |her Alt key in c|
00000370  6f 6d 62 69 6e 61 74 69  6f 6e 0a 74 68 65 20 63  |ombination.the c|
00000380  75 72 73 6f 72 20 6b 65  79 73 20 28 61 6e 64 20  |ursor keys (and |
00000390  49 6e 73 65 72 74 2c 20  48 6f 6d 65 20 61 6e 64  |Insert, Home and|
000003a0  20 50 61 67 65 20 55 70  20 62 79 20 64 65 66 61  | Page Up by defa|
000003b0  75 6c 74 29 20 74 6f 20  6d 6f 76 65 20 74 68 65  |ult) to move the|
000003c0  20 6d 6f 75 73 65 0a 28  61 6e 64 20 70 72 65 73  | mouse.(and pres|
000003d0  73 20 74 68 65 20 6c 65  66 74 2c 20 6d 69 64 64  |s the left, midd|
000003e0  6c 65 20 61 6e 64 20 72  69 67 68 74 20 62 75 74  |le and right but|
000003f0  74 6f 6e 73 29 2e 0a 0a  57 68 79 27 73 20 69 74  |tons)...Why's it|
00000400  20 63 61 6c 6c 65 64 20  57 61 72 66 61 72 69 6e  | called Warfarin|
00000410  20 3f 0a 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ?.-------------|
00000420  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0a 0a 57  |-------------..W|
00000430  61 72 66 61 72 69 6e 20  69 73 20 61 20 63 72 79  |arfarin is a cry|
00000440  73 74 61 6c 6c 69 6e 65  20 69 6e 73 6f 6c 75 62  |stalline insolub|
00000450  6c 65 20 73 75 62 73 74  61 6e 63 65 20 28 43 20  |le substance (C |
00000460  20 48 20 20 4f 20 29 20  75 73 65 64 20 61 73 20  | H  O ) used as |
00000470  61 20 72 6f 64 65 6e 74  69 63 69 64 65 2e 0a 20  |a rodenticide.. |
00000480  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000004a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 31  |               1|
000004b0  39 20 31 36 20 34 0a 0a  48 65 6e 63 65 2c 20 6d  |9 16 4..Hence, m|
000004c0  79 20 6d 6f 64 75 6c 65  20 69 73 20 75 73 65 64  |y module is used|
000004d0  20 77 68 65 6e 20 79 6f  75 72 20 6d 6f 75 73 65  | when your mouse|
000004e0  20 69 73 20 64 65 61 64  20 21 0a 0a 49 20 73 68  | is dead !..I sh|
000004f0  6f 75 6c 64 20 72 65 6d  69 6e 64 20 72 65 61 64  |ould remind read|
00000500  65 72 73 20 74 68 61 74  20 57 61 72 66 61 72 69  |ers that Warfari|
00000510  6e 20 69 73 20 74 68 65  20 70 61 74 65 6e 74 20  |n is the patent |
00000520  6e 61 6d 65 20 6f 77 6e  65 64 20 62 79 0a 57 69  |name owned by.Wi|
00000530  73 63 6f 6e 73 69 6e 20  41 6c 75 6d 6e 69 20 52  |sconsin Alumni R|
00000540  65 73 65 61 72 63 68 20  46 6f 75 6e 64 61 74 69  |esearch Foundati|
00000550  6f 6e 2c 20 64 65 72 69  76 65 64 20 66 72 6f 6d  |on, derived from|
00000560  20 74 68 65 69 72 20 69  6e 69 74 69 61 6c 73 20  | their initials |
00000570  61 6e 64 20 74 68 65 0a  63 6f 6d 70 6f 75 6e 64  |and the.compound|
00000580  20 63 6f 75 72 6d 61 72  69 6e 20 28 43 20 48 20  | courmarin (C H |
00000590  4f 20 29 2e 0a 20 20 20  20 20 20 20 20 20 20 20  |O )..           |
000005a0  20 20 20 20 20 20 20 20  20 20 39 20 36 20 32 0a  |          9 6 2.|
000005b0  0a 48 6f 77 20 64 6f 20  49 20 75 73 65 20 69 74  |.How do I use it|
000005c0  20 3f 0a 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ?.-------------|
000005d0  2d 2d 2d 2d 0a 0a 50 72  65 73 73 20 41 6c 74 20  |----..Press Alt |
000005e0  61 6e 64 2c 20 77 68 69  6c 73 74 20 73 74 69 6c  |and, whilst stil|
000005f0  6c 20 68 6f 6c 64 69 6e  67 20 64 6f 77 6e 20 41  |l holding down A|
00000600  6c 74 2c 20 70 72 65 73  73 20 6f 6e 65 20 6f 66  |lt, press one of|
00000610  20 74 68 65 20 66 6f 75  72 0a 63 75 72 73 6f 72  | the four.cursor|
00000620  20 6b 65 79 73 20 74 6f  20 6d 6f 76 65 20 74 68  | keys to move th|
00000630  65 20 6d 6f 75 73 65 20  70 6f 69 6e 74 65 72 2e  |e mouse pointer.|
00000640  20 49 74 20 77 69 6c 6c  20 6d 6f 76 65 20 73 6d  | It will move sm|
00000650  6f 6f 74 68 6c 79 20 61  74 20 74 68 65 20 72 61  |oothly at the ra|
00000660  74 65 0a 74 68 61 74 20  79 6f 75 27 76 65 20 73  |te.that you've s|
00000670  65 74 20 66 6f 72 20 2a  43 6f 6e 66 69 67 75 72  |et for *Configur|
00000680  65 20 4d 6f 75 73 65 53  74 65 70 2e 20 49 66 20  |e MouseStep. If |
00000690  79 6f 75 20 61 72 65 20  75 73 69 6e 67 20 74 68  |you are using th|
000006a0  65 20 64 65 66 61 75 6c  74 0a 73 65 74 74 69 6e  |e default.settin|
000006b0  67 73 2c 20 74 68 65 6e  20 70 72 65 73 73 69 6e  |gs, then pressin|
000006c0  67 20 41 6c 74 2d 49 6e  73 65 72 74 20 77 69 6c  |g Alt-Insert wil|
000006d0  6c 20 61 63 74 20 61 73  20 69 66 20 79 6f 75 27  |l act as if you'|
000006e0  76 65 20 70 72 65 73 73  65 64 20 74 68 65 20 6c  |ve pressed the l|
000006f0  65 66 74 0a 6d 6f 75 73  65 20 62 75 74 74 6f 6e  |eft.mouse button|
00000700  2e 20 41 6c 74 2d 48 6f  6d 65 20 28 6d 69 64 64  |. Alt-Home (midd|
00000710  6c 65 20 62 75 74 74 6f  6e 29 20 61 6e 64 20 41  |le button) and A|
00000720  6c 74 2d 50 61 67 65 20  55 70 20 28 72 69 67 68  |lt-Page Up (righ|
00000730  74 20 62 75 74 74 6f 6e  29 20 61 6c 73 6f 0a 73  |t button) also.s|
00000740  69 6d 75 6c 61 74 65 20  6d 6f 75 73 65 20 62 75  |imulate mouse bu|
00000750  74 74 6f 6e 20 70 72 65  73 73 65 73 2e 0a 0a 2a  |tton presses...*|
00000760  4e 45 57 20 54 4f 20 56  31 2e 31 30 2a 0a 57 68  |NEW TO V1.10*.Wh|
00000770  65 6e 20 41 6c 74 20 69  73 20 68 65 6c 64 20 64  |en Alt is held d|
00000780  6f 77 6e 2c 20 74 68 65  20 6e 6f 72 6d 61 6c 20  |own, the normal |
00000790  74 65 78 74 20 63 75 72  73 6f 72 20 77 69 6c 6c  |text cursor will|
000007a0  20 4e 4f 20 4c 4f 4e 47  45 52 20 4d 4f 56 45 20  | NO LONGER MOVE |
000007b0  77 68 65 6e 20 74 68 65  0a 63 75 72 73 6f 72 20  |when the.cursor |
000007c0  6b 65 79 73 20 61 72 65  20 70 72 65 73 73 65 64  |keys are pressed|
000007d0  2e 20 54 68 65 20 6d 6f  75 73 65 20 62 75 74 74  |. The mouse butt|
000007e0  6f 6e 20 62 65 68 61 76  69 6f 75 72 2c 20 68 6f  |on behaviour, ho|
000007f0  77 65 76 65 72 2c 20 72  65 6d 61 69 6e 73 20 74  |wever, remains t|
00000800  68 65 0a 73 61 6d 65 20  6e 6f 77 20 72 65 67 61  |he.same now rega|
00000810  72 64 6c 65 73 73 20 6f  66 20 77 68 65 74 68 65  |rdless of whethe|
00000820  72 20 41 6c 74 20 69 73  20 64 65 70 72 65 73 73  |r Alt is depress|
00000830  65 64 20 6f 72 20 6e 6f  74 20 28 74 68 69 73 20  |ed or not (this |
00000840  69 73 20 61 20 63 68 61  6e 67 65 20 6f 76 65 72  |is a change over|
00000850  0a 56 31 2e 30 30 29 2e  0a 0a 43 68 61 6e 67 69  |.V1.00)...Changi|
00000860  6e 67 20 74 68 65 20 44  65 66 61 75 6c 74 20 6b  |ng the Default k|
00000870  65 79 73 20 20 20 2a 4e  45 57 20 54 4f 20 56 31  |eys   *NEW TO V1|
00000880  2e 31 30 2a 0a 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.10*.-----------|
00000890  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0a 0a  |--------------..|
000008a0  54 68 65 72 65 20 61 72  65 20 6e 6f 77 20 66 69  |There are now fi|
000008b0  76 65 20 76 61 72 69 61  62 6c 65 73 20 64 65 66  |ve variables def|
000008c0  69 6e 65 64 20 69 6e 20  57 61 72 66 61 72 69 6e  |ined in Warfarin|
000008d0  27 73 20 21 52 75 6e 20  66 69 6c 65 3a 0a 0a 4e  |'s !Run file:..N|
000008e0  61 6d 65 20 20 20 20 20  20 20 20 20 20 20 20 20  |ame             |
000008f0  44 65 66 61 75 6c 74 20  76 61 6c 75 65 20 20 20  |Default value   |
00000900  20 44 65 66 61 75 6c 74  20 4b 65 79 0a 2d 2d 2d  | Default Key.---|
00000910  2d 20 20 20 20 20 20 20  20 20 20 20 20 20 2d 2d  |-             --|
00000920  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 20 20 20 20 2d  |-----------    -|
00000930  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0a 57 61 72 66 61  |----------.Warfa|
00000940  72 69 6e 24 46 61 6b 65  31 20 20 20 20 20 20 20  |rin$Fake1       |
00000950  20 26 35 46 20 20 20 20  20 20 20 20 20 20 4c 65  | &5F          Le|
00000960  66 74 20 41 6c 74 0a 57  61 72 66 61 72 69 6e 24  |ft Alt.Warfarin$|
00000970  46 61 6b 65 32 20 20 20  20 20 20 20 20 26 36 30  |Fake2        &60|
00000980  20 20 20 20 20 20 20 20  20 20 52 69 67 68 74 20  |          Right |
00000990  41 6c 74 0a 57 61 72 66  61 72 69 6e 24 4c 65 66  |Alt.Warfarin$Lef|
000009a0  74 20 20 20 20 20 20 20  20 20 26 31 46 20 20 20  |t         &1F   |
000009b0  20 20 20 20 20 20 20 49  6e 73 65 72 74 0a 57 61  |       Insert.Wa|
000009c0  72 66 61 72 69 6e 24 4d  69 64 64 6c 65 20 20 20  |rfarin$Middle   |
000009d0  20 20 20 20 26 32 30 20  20 20 20 20 20 20 20 20  |    &20         |
000009e0  20 48 6f 6d 65 0a 57 61  72 66 61 72 69 6e 24 52  | Home.Warfarin$R|
000009f0  69 67 68 74 20 20 20 20  20 20 20 20 26 32 31 20  |ight        &21 |
00000a00  20 20 20 20 20 20 20 20  20 50 61 67 65 20 55 70  |         Page Up|
00000a10  0a 0a 54 68 65 73 65 20  73 68 6f 75 6c 64 20 61  |..These should a|
00000a20  6c 6c 20 62 65 20 64 65  66 69 6e 65 64 20 61 73  |ll be defined as|
00000a30  20 69 6e 74 65 67 65 72  73 20 75 73 69 6e 67 20  | integers using |
00000a40  74 68 65 20 2a 53 65 74  45 76 61 6c 20 28 4e 4f  |the *SetEval (NO|
00000a50  54 20 2a 53 65 74 29 20  63 6f 6d 6d 61 6e 64 2e  |T *Set) command.|
00000a60  0a 54 68 65 20 76 61 6c  75 65 73 20 61 72 65 20  |.The values are |
00000a70  69 6e 74 65 72 6e 61 6c  20 6b 65 79 63 6f 64 65  |internal keycode|
00000a80  73 20 61 73 20 66 6f 75  6e 64 20 6f 6e 20 50 61  |s as found on Pa|
00000a90  67 65 20 31 32 32 20 28  77 61 74 63 68 20 6f 75  |ge 122 (watch ou|
00000aa0  74 20 2d 20 74 68 65 20  74 61 62 6c 65 27 73 0a  |t - the table's.|
00000ab0  22 6c 6f 77 22 20 61 6e  64 20 22 68 69 67 68 22  |"low" and "high"|
00000ac0  20 6c 61 62 65 6c 73 20  61 72 65 20 69 6e 63 6f  | labels are inco|
00000ad0  72 72 65 63 74 6c 79 20  73 77 69 74 63 68 65 64  |rrectly switched|
00000ae0  29 20 6f 66 20 74 68 65  20 52 49 53 43 20 4f 53  |) of the RISC OS|
00000af0  20 50 52 4d 73 2e 0a 53  6f 2c 20 66 6f 72 20 65  | PRMs..So, for e|
00000b00  78 61 6d 70 6c 65 2c 20  69 66 20 49 20 77 61 6e  |xample, if I wan|
00000b10  74 65 64 20 74 6f 20 75  73 65 20 53 68 69 66 74  |ted to use Shift|
00000b20  20 69 6e 73 74 65 61 64  20 6f 66 20 41 6c 74 20  | instead of Alt |
00000b30  61 73 20 61 20 6e 65 77  20 6d 6f 64 69 66 69 65  |as a new modifie|
00000b40  72 20 61 6e 64 0a 66 31  20 74 6f 20 66 33 20 66  |r and.f1 to f3 f|
00000b50  6f 72 20 74 68 65 20 4c  2c 4d 20 61 6e 64 20 52  |or the L,M and R|
00000b60  20 62 75 74 74 6f 6e 73  2c 20 74 68 65 6e 20 74  | buttons, then t|
00000b70  68 65 20 21 52 75 6e 20  6c 69 6e 65 73 20 77 6f  |he !Run lines wo|
00000b80  75 6c 64 20 6c 6f 6f 6b  20 6c 69 6b 65 20 74 68  |uld look like th|
00000b90  69 73 3a 0a 0a 2a 53 65  74 45 76 61 6c 20 57 61  |is:..*SetEval Wa|
00000ba0  72 66 61 72 69 6e 24 46  61 6b 65 31 20 20 26 34  |rfarin$Fake1  &4|
00000bb0  43 0a 2a 53 65 74 45 76  61 6c 20 57 61 72 66 61  |C.*SetEval Warfa|
00000bc0  72 69 6e 24 46 61 6b 65  32 20 20 26 35 38 0a 2a  |rin$Fake2  &58.*|
00000bd0  53 65 74 45 76 61 6c 20  57 61 72 66 61 72 69 6e  |SetEval Warfarin|
00000be0  24 4c 65 66 74 20 20 20  26 30 31 0a 2a 53 65 74  |$Left   &01.*Set|
00000bf0  45 76 61 6c 20 57 61 72  66 61 72 69 6e 24 4d 69  |Eval Warfarin$Mi|
00000c00  64 64 6c 65 20 26 30 32  0a 2a 53 65 74 45 76 61  |ddle &02.*SetEva|
00000c10  6c 20 57 61 72 66 61 72  69 6e 24 52 69 67 68 74  |l Warfarin$Right|
00000c20  20 20 26 30 33 0a 0a 4f  6e 63 65 20 79 6f 75 27  |  &03..Once you'|
00000c30  76 65 20 75 70 64 61 74  65 64 20 74 68 65 20 21  |ve updated the !|
00000c40  52 75 6e 20 66 69 6c 65  2c 20 73 69 6d 70 6c 79  |Run file, simply|
00000c50  20 72 65 2d 72 75 6e 20  57 61 72 66 61 72 69 6e  | re-run Warfarin|
00000c60  20 28 73 65 65 20 22 49  6e 73 74 61 6c 6c 69 6e  | (see "Installin|
00000c70  67 0a 57 61 72 66 61 72  69 6e 22 20 66 6f 72 20  |g.Warfarin" for |
00000c80  6d 6f 72 65 20 64 65 74  61 69 6c 73 29 20 74 6f  |more details) to|
00000c90  20 75 73 65 20 74 68 65  20 6e 65 77 20 73 65 74  | use the new set|
00000ca0  74 69 6e 67 73 2e 0a 0a  54 65 63 68 6e 69 63 61  |tings...Technica|
00000cb0  6c 20 53 65 63 74 69 6f  6e 0a 2d 2d 2d 2d 2d 2d  |l Section.------|
00000cc0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0a 0a 57 65 6c  |-----------..Wel|
00000cd0  6c 2c 20 49 20 68 61 64  20 73 6f 6d 65 20 70 72  |l, I had some pr|
00000ce0  6f 62 6c 65 6d 73 20 67  65 74 74 69 6e 67 20 74  |oblems getting t|
00000cf0  68 69 73 20 6f 6e 65 20  74 6f 20 77 6f 72 6b 20  |his one to work |
00000d00  21 20 49 20 74 72 69 65  64 3a 0a 0a 31 29 20 4f  |! I tried:..1) O|
00000d10  53 5f 47 65 6e 65 72 61  74 65 45 76 65 6e 74 20  |S_GenerateEvent |
00000d20  31 30 20 74 6f 20 66 6f  72 63 65 20 61 20 62 75  |10 to force a bu|
00000d30  74 74 6f 6e 20 70 72 65  73 73 65 64 20 65 76 65  |tton pressed eve|
00000d40  6e 74 2e 2e 2e 74 68 65  20 4f 53 20 69 67 6e 6f  |nt...the OS igno|
00000d50  72 65 73 20 69 74 2e 0a  0a 32 29 20 46 6f 72 63  |res it...2) Forc|
00000d60  69 6e 67 20 6e 69 6e 65  20 62 79 74 65 73 20 69  |ing nine bytes i|
00000d70  6e 74 6f 20 74 68 65 20  6d 6f 75 73 65 20 62 75  |nto the mouse bu|
00000d80  66 66 65 72 20 65 76 65  72 79 20 76 73 79 6e 63  |ffer every vsync|
00000d90  20 2d 20 61 6c 73 6f 20  66 61 69 6c 65 64 2e 0a  | - also failed..|
00000da0  0a 33 29 20 53 65 74 74  69 6e 67 20 74 68 65 20  |.3) Setting the |
00000db0  6d 6f 75 73 65 20 70 6f  73 69 74 69 6f 6e 20 77  |mouse position w|
00000dc0  69 74 68 20 4f 53 5f 57  6f 72 64 20 32 31 20 28  |ith OS_Word 21 (|
00000dd0  70 61 72 61 6d 20 33 29  2e 20 54 68 69 73 20 77  |param 3). This w|
00000de0  6f 72 6b 65 64 2c 20 62  75 74 0a 20 20 20 79 6f  |orked, but.   yo|
00000df0  75 20 63 61 6e 27 74 20  73 65 74 20 74 68 65 20  |u can't set the |
00000e00  6d 6f 75 73 65 20 62 75  74 74 6f 6e 20 73 74 61  |mouse button sta|
00000e10  74 65 20 77 69 74 68 20  69 74 2e 0a 0a 34 29 20  |te with it...4) |
00000e20  54 72 61 70 70 69 6e 67  20 4f 53 5f 4d 6f 75 73  |Trapping OS_Mous|
00000e30  65 20 69 74 73 65 6c 66  2e 20 54 68 69 73 20 77  |e itself. This w|
00000e40  6f 72 6b 65 64 20 61 66  74 65 72 20 49 20 75 73  |orked after I us|
00000e50  65 64 20 74 68 65 20 65  78 61 6d 70 6c 65 20 69  |ed the example i|
00000e60  6e 20 74 68 65 0a 20 20  20 6d 61 6e 75 61 6c 20  |n the.   manual |
00000e70  2d 20 62 6f 79 2c 20 6d  6f 64 69 66 79 69 6e 67  |- boy, modifying|
00000e80  20 72 65 74 75 72 6e 20  70 61 72 61 6d 65 74 65  | return paramete|
00000e90  72 73 20 6f 6e 20 61 20  76 65 63 74 6f 72 20 69  |rs on a vector i|
00000ea0  73 20 68 61 72 64 20 77  6f 72 6b 2e 20 49 0a 20  |s hard work. I. |
00000eb0  20 20 75 73 65 64 20 74  68 65 20 4f 53 5f 4d 6f  |  used the OS_Mo|
00000ec0  75 73 65 20 76 65 63 74  6f 72 20 74 6f 20 27 74  |use vector to 't|
00000ed0  77 65 61 6b 27 20 74 68  65 20 6d 6f 75 73 65 20  |weak' the mouse |
00000ee0  62 75 74 74 6f 6e 20 73  74 61 74 65 73 2c 20 62  |button states, b|
00000ef0  75 74 20 69 74 27 73 0a  20 20 20 6e 6f 20 67 6f  |ut it's.   no go|
00000f00  6f 64 20 66 6f 72 20 75  70 64 61 74 69 6e 67 20  |od for updating |
00000f10  74 68 65 20 6d 6f 75 73  65 20 70 6f 73 69 74 69  |the mouse positi|
00000f20  6f 6e 2e 0a 0a 35 29 20  54 72 61 70 70 69 6e 67  |on...5) Trapping|
00000f30  20 4f 53 5f 42 79 74 65  56 20 6f 72 20 45 76 65  | OS_ByteV or Eve|
00000f40  6e 74 20 32 20 74 6f 20  73 74 6f 70 20 74 68 65  |nt 2 to stop the|
00000f50  20 74 65 78 74 20 63 75  72 73 6f 72 20 6d 6f 76  | text cursor mov|
00000f60  69 6e 67 20 2d 20 6e 65  69 74 68 65 72 0a 20 20  |ing - neither.  |
00000f70  20 77 6f 72 6b 65 64 2e  0a 0a 36 29 20 46 69 6e  | worked...6) Fin|
00000f80  61 6c 6c 79 20 73 75 73  73 65 64 20 68 6f 77 20  |ally sussed how |
00000f90  74 6f 20 73 74 6f 70 20  74 68 65 20 74 65 78 74  |to stop the text|
00000fa0  20 63 75 72 73 6f 72 20  28 6f 72 20 57 69 6d 70  | cursor (or Wimp|
00000fb0  20 63 61 72 65 74 20 66  6f 72 20 74 68 61 74 20  | caret for that |
00000fc0  6d 61 74 74 65 72 29 0a  20 20 20 66 72 6f 6d 20  |matter).   from |
00000fd0  6d 6f 76 69 6e 67 20 2d  20 74 72 61 70 20 49 6e  |moving - trap In|
00000fe0  73 56 20 61 6e 64 20 6c  6f 6f 6b 20 66 6f 72 20  |sV and look for |
00000ff0  63 75 72 73 6f 72 20 6b  65 79 73 20 28 63 6f 64  |cursor keys (cod|
00001000  65 64 20 31 34 30 20 74  6f 20 31 34 33 20 64 65  |ed 140 to 143 de|
00001010  63 69 6d 61 6c 0a 20 20  20 77 6f 75 6c 64 20 79  |cimal.   would y|
00001020  6f 75 20 62 65 6c 69 65  76 65 20 21 29 2e 0a 0a  |ou believe !)...|
00001030  54 68 65 20 57 61 72 66  61 72 69 6e 20 6d 6f 64  |The Warfarin mod|
00001040  75 6c 65 20 73 75 72 76  69 76 65 73 20 61 20 73  |ule survives a s|
00001050  6f 66 74 20 72 65 73 65  74 2e 0a 0a 4b 6e 6f 77  |oft reset...Know|
00001060  6e 20 50 72 6f 62 6c 65  6d 73 0a 2d 2d 2d 2d 2d  |n Problems.-----|
00001070  2d 2d 2d 2d 2d 2d 2d 2d  2d 0a 0a 2a 20 43 6f 6d  |---------..* Com|
00001080  70 75 74 65 72 20 43 6f  6e 63 65 70 74 73 27 20  |puter Concepts' |
00001090  49 6d 70 72 65 73 73 69  6f 6e 20 70 61 63 6b 61  |Impression packa|
000010a0  67 65 20 64 6f 65 73 20  73 6f 6d 65 20 64 65 76  |ge does some dev|
000010b0  69 6f 75 73 20 74 68 69  6e 67 73 20 6f 6e 63 65  |ious things once|
000010c0  20 61 20 6d 65 6e 75 0a  20 20 68 61 73 20 62 65  | a menu.  has be|
000010d0  65 6e 20 6f 70 65 6e 65  64 20 2d 20 69 74 20 6d  |en opened - it m|
000010e0  75 73 74 20 63 68 65 63  6b 20 74 68 65 20 6d 6f  |ust check the mo|
000010f0  75 73 65 20 62 75 74 74  6f 6e 20 64 69 72 65 63  |use button direc|
00001100  74 6c 79 20 62 65 63 61  75 73 65 20 74 68 65 20  |tly because the |
00001110  6d 65 6e 75 0a 20 20 63  6c 6f 73 65 73 20 69 6d  |menu.  closes im|
00001120  6d 65 64 69 61 74 65 6c  79 20 69 66 20 69 74 20  |mediately if it |
00001130  77 61 73 20 6f 70 65 6e  65 64 20 75 73 69 6e 67  |was opened using|
00001140  20 57 61 72 66 61 72 69  6e 20 21 0a 0a 2a 20 49  | Warfarin !..* I|
00001150  66 20 61 20 70 72 6f 67  72 61 6d 20 64 6f 65 73  |f a program does|
00001160  6e 27 74 20 75 73 65 20  4f 53 5f 4d 6f 75 73 65  |n't use OS_Mouse|
00001170  20 6f 72 20 57 69 6d 70  5f 47 65 74 50 6f 69 6e  | or Wimp_GetPoin|
00001180  74 65 72 49 6e 66 6f 20  28 6f 72 20 57 69 6d 70  |terInfo (or Wimp|
00001190  5f 50 6f 6c 6c 20 45 76  65 6e 74 0a 20 20 36 20  |_Poll Event.  6 |
000011a0  6f 66 20 63 6f 75 72 73  65 29 20 74 6f 20 73 63  |of course) to sc|
000011b0  61 6e 20 74 68 65 20 6d  6f 75 73 65 2c 20 74 68  |an the mouse, th|
000011c0  65 6e 20 57 61 72 66 61  72 69 6e 20 63 61 6e 27  |en Warfarin can'|
000011d0  74 20 66 61 6b 65 20 74  68 65 20 6d 6f 75 73 65  |t fake the mouse|
000011e0  20 62 75 74 74 6f 6e 0a  20 20 70 72 65 73 73 65  | button.  presse|
000011f0  73 2e 0a 0a 52 65 76 69  73 69 6f 6e 20 48 69 73  |s...Revision His|
00001200  74 6f 72 79 0a 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |tory.-----------|
00001210  2d 2d 2d 2d 2d 0a 0a 56  65 72 73 69 6f 6e 20 31  |-----..Version 1|
00001220  2e 31 30 20 28 53 65 70  74 65 6d 62 65 72 20 31  |.10 (September 1|
00001230  39 39 30 29 0a 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |990).-----------|
00001240  2d 0a 0a 2a 20 53 74 6f  70 70 65 64 20 74 68 65  |-..* Stopped the|
00001250  20 74 65 78 74 20 63 75  72 73 6f 72 2f 63 61 72  | text cursor/car|
00001260  65 74 20 6d 6f 76 69 6e  67 20 77 68 69 6c 73 74  |et moving whilst|
00001270  20 74 68 65 20 41 6c 74  20 6b 65 79 20 69 73 20  | the Alt key is |
00001280  68 65 6c 64 20 64 6f 77  6e 0a 20 20 73 69 6d 75  |held down.  simu|
00001290  6c 74 61 6e 65 6f 75 73  6c 79 20 77 69 74 68 20  |ltaneously with |
000012a0  74 68 65 20 63 75 72 73  6f 72 20 6b 65 79 73 2e  |the cursor keys.|
000012b0  0a 0a 2a 20 41 6c 6c 6f  77 20 74 68 65 20 6d 6f  |..* Allow the mo|
000012c0  75 73 65 20 62 75 74 74  6f 6e 73 20 74 6f 20 62  |use buttons to b|
000012d0  65 20 75 73 65 64 20 73  69 6d 75 6c 74 61 6e 65  |e used simultane|
000012e0  6f 75 73 6c 79 20 77 69  74 68 20 49 6e 73 65 72  |ously with Inser|
000012f0  74 2f 48 6f 6d 65 2f 50  61 67 65 20 55 70 0a 20  |t/Home/Page Up. |
00001300  20 77 68 65 6e 20 74 68  65 20 41 6c 74 20 6b 65  | when the Alt ke|
00001310  79 20 69 73 20 64 65 70  72 65 73 73 65 64 20 28  |y is depressed (|
00001320  74 68 65 20 66 6f 72 6d  65 72 20 77 65 72 65 20  |the former were |
00001330  64 69 73 61 62 6c 65 64  20 77 69 74 68 20 56 31  |disabled with V1|
00001340  2e 30 30 29 2e 0a 0a 2a  20 41 64 64 65 64 20 66  |.00)...* Added f|
00001350  69 76 65 20 6e 65 77 20  65 6e 76 69 72 6f 6e 6d  |ive new environm|
00001360  65 6e 74 61 6c 20 76 61  72 69 61 62 6c 65 73 20  |ental variables |
00001370  74 6f 20 61 6c 6c 6f 77  20 6b 65 79 2d 6d 61 70  |to allow key-map|
00001380  70 69 6e 67 20 63 68 61  6e 67 65 73 0a 20 20 77  |ping changes.  w|
00001390  69 74 68 20 61 20 73 69  6d 70 6c 65 20 74 65 78  |ith a simple tex|
000013a0  74 20 65 64 69 74 20 72  61 74 68 65 72 20 74 68  |t edit rather th|
000013b0  61 6e 20 68 61 76 69 6e  67 20 74 6f 20 68 61 63  |an having to hac|
000013c0  6b 20 61 6e 64 20 73 6c  61 73 68 20 61 6e 64 20  |k and slash and |
000013d0  72 65 2d 61 73 73 65 6d  62 6c 65 2e 0a 0a 56 65  |re-assemble...Ve|
000013e0  72 73 69 6f 6e 20 31 2e  30 30 20 28 4a 61 6e 75  |rsion 1.00 (Janu|
000013f0  61 72 79 20 31 39 39 30  29 0a 2d 2d 2d 2d 2d 2d  |ary 1990).------|
00001400  2d 2d 2d 2d 2d 2d 0a 0a  2a 20 54 68 65 20 6d 6f  |------..* The mo|
00001410  75 73 65 20 6f 6e 20 74  68 65 20 41 34 34 30 20  |use on the A440 |
00001420  49 20 75 73 65 20 61 74  20 77 6f 72 6b 20 72 65  |I use at work re|
00001430  66 75 73 65 64 20 74 6f  20 6d 6f 76 65 20 69 6e  |fused to move in|
00001440  20 61 20 73 65 6e 73 69  62 6c 65 20 66 61 73 68  | a sensible fash|
00001450  69 6f 6e 0a 20 20 61 6e  64 20 69 74 20 77 61 73  |ion.  and it was|
00001460  20 6c 69 6b 65 20 74 72  79 69 6e 67 20 74 6f 20  | like trying to |
00001470  70 6c 61 79 20 61 20 67  61 6d 65 20 6f 66 20 27  |play a game of '|
00001480  63 61 6e 20 49 20 67 65  74 20 74 68 65 20 6d 6f  |can I get the mo|
00001490  75 73 65 20 74 6f 20 6d  6f 76 65 20 69 6e 0a 20  |use to move in. |
000014a0  20 74 68 65 20 64 69 72  65 63 74 69 6f 6e 20 49  | the direction I|
000014b0  20 77 61 6e 74 20 3f 27  2e 20 53 69 6e 63 65 20  | want ?'. Since |
000014c0  74 68 65 20 41 74 61 72  69 20 53 54 20 63 61 6e  |the Atari ST can|
000014d0  20 6d 6f 76 65 20 74 68  65 20 6d 6f 75 73 65 20  | move the mouse |
000014e0  76 69 61 20 74 68 65 0a  20 20 6b 65 79 73 2c 20  |via the.  keys, |
000014f0  49 20 73 69 6d 70 6c 79  20 63 6f 75 6c 64 6e 27  |I simply couldn'|
00001500  74 20 6c 65 74 20 61 20  76 61 73 74 6c 79 20 69  |t let a vastly i|
00001510  6e 66 65 72 69 6f 72 20  6d 61 63 68 69 6e 65 20  |nferior machine |
00001520  67 65 74 20 61 77 61 79  20 77 69 74 68 20 61 0a  |get away with a.|
00001530  20 20 75 73 65 66 75 6c  20 66 65 61 74 75 72 65  |  useful feature|
00001540  20 74 68 61 74 20 74 68  65 20 41 72 63 68 69 6d  | that the Archim|
00001550  65 64 65 73 20 64 6f 65  73 6e 27 74 20 68 61 76  |edes doesn't hav|
00001560  65 2e 0a 0a 46 75 74 75  72 65 20 45 6e 68 61 6e  |e...Future Enhan|
00001570  63 65 6d 65 6e 74 73 0a  2d 2d 2d 2d 2d 2d 2d 2d  |cements.--------|
00001580  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0a 0a 2a 20 49  |-----------..* I|
00001590  27 6c 6c 20 70 72 6f 62  61 62 6c 79 20 68 61 76  |'ll probably hav|
000015a0  65 20 61 20 27 73 70 65  65 64 75 70 20 6b 65 79  |e a 'speedup key|
000015b0  27 20 74 6f 20 64 6f 75  62 6c 65 20 74 68 65 20  |' to double the |
000015c0  73 70 65 65 64 20 6f 66  20 74 68 65 20 6d 6f 75  |speed of the mou|
000015d0  73 65 20 6d 6f 76 65 6d  65 6e 74 0a 20 20 69 66  |se movement.  if|
000015e0  20 69 74 20 68 61 73 20  61 20 6c 6f 6e 67 20 77  | it has a long w|
000015f0  61 79 20 74 6f 20 74 72  61 76 65 6c 2e 0a 0a 41  |ay to travel...A|
00001600  20 50 6c 65 61 20 46 72  6f 6d 20 54 68 65 20 41  | Plea From The A|
00001610  75 74 68 6f 72 0a 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |uthor.----------|
00001620  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0a 0a 49 66  |------------..If|
00001630  20 79 6f 75 20 6d 61 6b  65 20 73 6f 6d 65 20 55  | you make some U|
00001640  53 45 46 55 4c 20 63 68  61 6e 67 65 73 20 74 6f  |SEFUL changes to|
00001650  20 74 68 65 20 73 6f 75  72 63 65 20 6f 72 20 66  | the source or f|
00001660  69 78 20 61 6e 79 20 62  75 67 73 2c 20 63 61 6e  |ix any bugs, can|
00001670  20 79 6f 75 20 70 6c 65  61 73 65 0a 73 65 6e 64  | you please.send|
00001680  20 6d 65 20 74 68 6f 73  65 20 63 68 61 6e 67 65  | me those change|
00001690  73 20 74 6f 20 74 68 65  20 66 6f 6c 6c 6f 77 69  |s to the followi|
000016a0  6e 67 20 61 64 64 72 65  73 73 3a 0a 0a 53 6e 61  |ng address:..Sna|
000016b0  69 6c 20 4d 61 69 6c 20  20 20 20 20 20 20 20 20  |il Mail         |
000016c0  20 20 20 20 20 20 20 20  20 20 4a 41 4e 45 54 20  |          JANET |
000016d0  65 2d 6d 61 69 6c 0a 2d  2d 2d 2d 2d 2d 2d 2d 2d  |e-mail.---------|
000016e0  2d 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |-               |
000016f0  20 20 20 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |    ------------|
00001700  0a 0a 52 69 63 68 61 72  64 20 4b 2e 20 4c 6c 6f  |..Richard K. Llo|
00001710  79 64 2c 20 20 20 20 20  20 20 20 20 20 20 20 72  |yd,            r|
00001720  6b 6c 40 75 6b 2e 61 63  2e 6c 69 76 2e 63 73 2e  |kl@uk.ac.liv.cs.|
00001730  61 6e 64 0a 31 2c 20 42  61 6e 6b 73 20 52 6f 61  |and.1, Banks Roa|
00001740  64 2c 0a 4c 6f 77 65 72  20 48 65 73 77 61 6c 6c  |d,.Lower Heswall|
00001750  2c 0a 57 69 72 72 61 6c  2c 0a 4d 65 72 73 65 79  |,.Wirral,.Mersey|
00001760  73 69 64 65 2e 20 4c 36  30 20 39 4a 53 0a 0a 50  |side. L60 9JS..P|
00001770  2e 53 2e 20 54 68 65 20  6d 6f 75 73 65 20 6f 6e  |.S. The mouse on|
00001780  20 6e 65 77 20 41 72 63  68 69 6d 65 64 65 73 20  | new Archimedes |
00001790  6d 61 63 68 69 6e 65 73  20 69 73 20 2a 6d 75 63  |machines is *muc|
000017a0  68 2a 20 62 65 74 74 65  72 20 28 6d 61 64 65 20  |h* better (made |
000017b0  62 79 20 4c 6f 67 69 74  65 63 68 29 0a 20 20 20  |by Logitech).   |
000017c0  20 20 74 68 61 6e 20 74  68 65 20 72 75 62 62 69  |  than the rubbi|
000017d0  73 68 79 20 6f 6e 65 20  6f 72 69 67 69 6e 61 6c  |shy one original|
000017e0  6c 79 20 73 75 70 70 6c  69 65 64 20 61 20 63 6f  |ly supplied a co|
000017f0  75 70 6c 65 20 6f 66 20  79 65 61 72 73 20 62 61  |uple of years ba|
00001800  63 6b 2e 0a                                       |ck..|
00001804