A neat little utility from Gavin Jones that will give you
instant information on your keyboard status
SEE23 is basically an extension of the Atari's
already powerful E: device. The name means 'Screen Editor Extension
version 2.3' and the program will add information to the normal
Graphics 0 screen to let you know the status of various keys and in
addition will allow you to use a joystick for quick movement of the
cursor, including a 'home' facility similar to that found on many
other machines.
The status line at the top of the screen will tell
you whether the machine is in Caps, Control or lower case, whether
the text is in inverse and whether the start/stop flag (CONTROL-1)
is on. The joystick will enable the cursor to be moved anywhere and
the fire button will return it to the top of the left most column on
screen.
GET IT RUNNING
So how do you get it running? Firstly you should
type in the BASIC listing using TYPO 3 to check it as you go, and
then SAVE this listing to disk. Get a fresh disk with DOS written to
it, put it in drive 1, and run the SEE23 listing. This will write an
AUTORUN.SYS file to your disk and this disk can then be used to
re-boot. You will see the screen change colour and SEE23 will be up
and running.
SOME TECHNICAL NOTES
The program reconfigures the system in four ways.
Firstly it sets up a new Graphics 0 display list which, instead of
having three 112 (8 blank scan lines) instructions at the top of the
screen, has one 112, one 96 (7 blank scan lines), one 2 (Graphics 0
line) and one 0 (1 blank scan line). Secondly, it sets up a VBI to
handle the cursor movement, the detection of upper/lower case etc.
and to update the status line. Thirdly the DOSINI pointer is altered
so that all RESETs are trapped to re-initialise SEE23. Finally LOMEM
is raised to protect the program.
SOLVING A COUPLE OF PROBLEMS
During the VBI the Display List pointers are
changed to point to the new display list which is used to create the
extra line. I believe that this is the easiest way to do it,
certainly much easier than re-writing the E: handler but, obviously,
if the user issues a graphics call, e.g. GR. 8, he will only be in
this mode until the next VBI – approx 1/50th of a second! To solve
this I thought that as location 87 contains the BASIC mode number,
all I have to do is check location 87 and if it is equal to 0,
change the Display List, otherwise leave it alone. It turns out
however that this location is always set to 0 during the VBI (either
that or my code is naff!) so it wouldn't work. The solution I came
up with was to look at the Display List and see if it contained an
Antic mode 2 two lines down the screen. If it did, I would change
the screen otherwise I would assume that the screen was not GR. 0
and so leave it alone.
There might of course be a problem with a custom
written Display List as, sometimes, the display will get corrupted
but this doesn't matter too much as, if you are using a custom
Display List, you probably won't want SEE23 running anyway and all
you have to do is press OPTION and RESET together, re-run your
program and it will work fine.
DOS is a major problem. I had two choices about
where to place SEE23. I could have placed it at the top of RAM, and
have it trashed by a GR.8 call, or I could put it at the bottom of
RAM and get it trashed by DOS! I chose that latter so my code starts
at $1F00 and changes the LOMEM pointer to point just after it. If
you call DOS however, while the program is running it will crash the
machine as DOS overwrites the VBI code but there is, fortunately, a
way round this. If you hold down OPTION and press RESET the SEE23
program will turn itself off and you can go to DOS as many times as
you like. To get back to SEE23 type X =USR(7936) and press RESET.
SUMMARY
The status line will show the effect of the Caps,
Inverse and CNTROL-1 keys. Play around with them to see the effect.
The joystick moves the cursor and the fire button
will 'home' the cursor to top left. On the 400/800 machines you will
hear an awful buzzing sound from the console speaker and the cursor
may disappear sometimes. This is not a program fault, it happens
because the K: handler is making a click using STA CONSOL and STA
WSYNCs. STA WSYNC waits for a horizontal sync, so if you move the
cursor past the line waiting to be drawn, the cursor seems to
disappear. On the XL/XE machine the problem is solved by turning off
the key click.
If you get fed up with the new screen colour,
pressing START and RESET will return the colours to the normal
default.
To go to DOS, turn off SEE23 by pressing OPTION
and RESET. If you want to boot up directly to DOS, hold the OPTION
key down until after the 'raspberry' sound and this will prevent the
program from ever being activated.
|
|
|