By Kevin Gevatosky
If you ever lost work by pressing the [CLEAR] key when you meant to press [INSERT], Butterfingers is for you. This short BASIC translation of a machine-language routine works on 8-bit Atari computers of any memory size, with disk drive.
The cursor was at the very end of the hundred-plus-character line and I was just about to press [RETURN] when I noticed that I had left out a right parenthesis. So, I moved the cursor over to the spot where I wanted to insert it and ZAP! "#&s~!," I shouted, "my slippery fingers did it again!"
Then came that all-too-familiar sinking feeling that occurs whenever hard programming work disappears right before my eyes. You see, instead of pressing the [CONTROL] and [INSERT] keys, as intended, I accidentally pressed [CONTROL] and [CLEAR] and erased the whole screen. Worse, since I had not yet pressed the [RETURN] key, the line was lost and had to be re-typed.
The Atari's full-screen editor is one of its finest and praiseworthy features, but I think it was a design oversight to allow the [CONTROL] [CLEAR] key combination to clear the screen when [SHIFT] [CLEAR] would have been sufficient. It's just too close to [CONTROL] [INSERT].
Some of you may be thinking that there is no "design oversight" and I should just be more careful. Well, in my own defense I'Il just say that I watch what's displayed on the screen and I don't like to break my concentration and look down at the keyboard. Besides, I don't have dainty little fingers.
So now, after years of tolerating this aggravating situation, I finally realized that there was something I could do about it. If you feel as I do then Butterfingers is for you.
HOW IT WORKS
Butterfingers is a small assembly language routine that loads into memory at Page 6, and uses locations 1536-1621 ($0600-$0655). Make sure your BASIC program does not use any of these locations, or else Butterfingers will not work.
Butterfingers substitutes the operating system's normal keyboard interrupt with a customized one that examines all keystrokes before they are sent to the Screen Editor. When the interrupt detects a key code for [CONTROL] [CLEAR] or [SHIFT] [CLEAR], it filters them out and prevents accidental clearing of the screen.
I did not want to eliminate the clear-screen function entirely, just make it more difficult to access. So the routine lets you clear the screen by simultaneously pressing [CONTROL] [SHIFT] [CLEAR].
LOADING THE PROGRAM
Type in Listing 1, FINGERS.BAS, check it with TYPO II and be sure to SAVE a copy before you RUN it.
When RUN, the program creates a binary file named FINGERS.EXE. This file should be copied onto another disk containing DOS.SYS, and renamed AUTORUN.SYS. Antic Disk owners will find FINGERS.EXE on the monthly disk.
FINGERS.M65 is the MAC/65 assembly language source code, and is provided mainly for study purposes. You do not need to type Listing 2 to use Butterfingers.
Once you have Butterfingers on disk as an AUTORUN.SYS file, turn off your Atari. Place your Butterfingers disk in drive 1, and turn on your Atari. The program will load and run automatically. Since the program works with Atari BASIC, XL and XE owners should not hold down the [OPTION] key when turning on the computer. Once enabled, Butterfingers will remain active until you turn off your Atari. NOTE: Butterfingers also works with many other languages, including TurboBASIC, BASIC XL, Atari Microsoft BASIC. It will not work with MAC/65, even when the code is relocated off Page 6.
Kevin Gevatoskty is a software engineer in Eugene, Oregon. His first Antice article, BASIC Tracer, appeared in the September 1986 issue. As Atari consultant for Covox, Inc. he helped develop the Voice Master speech digitizer used in this issue's Super Disk Bonus.