Автор: Robert Young
Год: 1984
Издатели: Your Computer
Языки:
Английский
Формат:
TZX лента
Требования:
ZX Spectrum 16K
Ссылки:
Страница на ZXArt
Страница на World Of Spectrum
Страница на Spectrum Computing
Год: 1984
Издатели: Your Computer
Языки:
Формат:
Требования:
Ссылки:
Function Keys
Robert Young,
Chichester,
Sussex.
The Spectrum does not have a function key facility, and so
I have written a machine-code program which allows any
number of keys to be programmed very easily. This includes
all the legends on the keys, the graphic symbols and the
used-defined graphics, so that, for instance, the PRINT
token can be programmed separately to the P and TAB. Of
course, you will only wish to define keys you are unlikely
to use for their normal purpose.
The definitions of keys should be put in separate REM
statements at the very beginning of the program. You should
follow the line number and REM by the symbol you wish to
program, a colon, and then the definition. The definition
can be any combination of characters, graphics and legends.
If you want it to execute automatically then end it with
the hash - # - character. If a syntax error is found when
the line is executed, the line will be displayed at the
bottom of the screen with a question mark as normal. Note
that a key whose definition is just a hash will act as an
ENTER key.
The colon that must be put between the key to be defined
and the definition not only conveniently separates the two
but also puts the computer into K mode. If, however, you
wish to start the definition with a letter of the alphabet
which cannot be accessed in this mode, it is necessary to
type any token or symbol that puts the computer into L
mode, such as a keyword, then to type the character you
want, and finally to go back and delete whatever you used.
[Or, of course, you can omit the colon at first, and only
go back to put it in once you've typed the desired letter.]
Rather than search through the whole program for key
definitions, the program stops looking as soon as it finds
the first proper program line. Therefore, all the defini-
tions must be put before the main program. This can be
quite useful if you want a key which has been programmed
to revert to its normal purpose temporarily.
Rather than deleting the definition, all you need to do
is change its line number so that it is, for instance, at
the end of the program. Then at a later date you can change
it back again. Lastly, if a key is defined twice it is the
definition nearest the beginning of the program that will
be taken. Note that a programmed key will repeat if held
down.
The machine code is included in the data statements of
the Basic program. The ninth figure of each statement is,
however, the sum of the first eight and this is used by the
program to check for errors in the data. Enter the Basic
program, save it just to be on the safe side, and then run
it. If an error is found the program will display the
message Error In Line, followed by the line in which the
error occurred. Note that the Basic program automatically
alters the machine code if you have a 48K Spectrum, so that
it is located at the top of memory - the actual data given
is for the 16K model.
The program will then display Prepare To Save and the
normal message will appear at the bottom of the screen. You
may then save the machine code. After this it will print
Prepare To Verify. Rewind the tape to the point where you
started saving the code and the program will verify it
automatically. If this is completed successfully, the Basic
program will NEW itself, leaving the machine code located
at address 32348 for 16K machines or 65129 for 48K. In
future, to load the machine code, type
CLEAR 32347
for the 16K or
CLEAR 65128
for the 48K, followed by
LOAD ""CODE
The program must be turned on before it will work. This
is done by
RANDOMIZE USR 32479 (16K)
or
RANDOMIZE USR 65260 (48K)
To turn it off type:
RANDOMIZE USR 32486 (16K)
or
RANDOMIZE USR 65267 (48K)
Here are a few examples of key definitions:
1 REM !: PAPER 7: INK 0: CLS : BORDER 7#
2 REM .: PRINT 65536-USR 7962#
3 REM NEW: INPUT a$: IF a$="Y" THEN NEW#
4 REM :,
REM 1 will reset all the colours - white paper and
border, black ink - at a press of symbol shift-1. This is
useful if you are developing a program using a strange
combination of colours. Often, after stopping such a
program, the listing is almost unreadable.
REM 2 will print out how much free memory you have left
on typing a full stop.
REM 3 is a safeguard against NEWing a program acciden-
tally. On pressing NEW, you must input a string. If you
enter Y the program will NEW. Anything else will mean that
the key press is ignored. Enter the NEW after the REM by
typing a colon followed by the NEW, then deleting the
colon.
Finally, REM 4 allows you to type in quantities of data
far quicker. It makes the space key act as a comma,
avoiding the need for using the shift key.
Robert Young,
Chichester,
Sussex.
The Spectrum does not have a function key facility, and so
I have written a machine-code program which allows any
number of keys to be programmed very easily. This includes
all the legends on the keys, the graphic symbols and the
used-defined graphics, so that, for instance, the PRINT
token can be programmed separately to the P and TAB. Of
course, you will only wish to define keys you are unlikely
to use for their normal purpose.
The definitions of keys should be put in separate REM
statements at the very beginning of the program. You should
follow the line number and REM by the symbol you wish to
program, a colon, and then the definition. The definition
can be any combination of characters, graphics and legends.
If you want it to execute automatically then end it with
the hash - # - character. If a syntax error is found when
the line is executed, the line will be displayed at the
bottom of the screen with a question mark as normal. Note
that a key whose definition is just a hash will act as an
ENTER key.
The colon that must be put between the key to be defined
and the definition not only conveniently separates the two
but also puts the computer into K mode. If, however, you
wish to start the definition with a letter of the alphabet
which cannot be accessed in this mode, it is necessary to
type any token or symbol that puts the computer into L
mode, such as a keyword, then to type the character you
want, and finally to go back and delete whatever you used.
[Or, of course, you can omit the colon at first, and only
go back to put it in once you've typed the desired letter.]
Rather than search through the whole program for key
definitions, the program stops looking as soon as it finds
the first proper program line. Therefore, all the defini-
tions must be put before the main program. This can be
quite useful if you want a key which has been programmed
to revert to its normal purpose temporarily.
Rather than deleting the definition, all you need to do
is change its line number so that it is, for instance, at
the end of the program. Then at a later date you can change
it back again. Lastly, if a key is defined twice it is the
definition nearest the beginning of the program that will
be taken. Note that a programmed key will repeat if held
down.
The machine code is included in the data statements of
the Basic program. The ninth figure of each statement is,
however, the sum of the first eight and this is used by the
program to check for errors in the data. Enter the Basic
program, save it just to be on the safe side, and then run
it. If an error is found the program will display the
message Error In Line, followed by the line in which the
error occurred. Note that the Basic program automatically
alters the machine code if you have a 48K Spectrum, so that
it is located at the top of memory - the actual data given
is for the 16K model.
The program will then display Prepare To Save and the
normal message will appear at the bottom of the screen. You
may then save the machine code. After this it will print
Prepare To Verify. Rewind the tape to the point where you
started saving the code and the program will verify it
automatically. If this is completed successfully, the Basic
program will NEW itself, leaving the machine code located
at address 32348 for 16K machines or 65129 for 48K. In
future, to load the machine code, type
CLEAR 32347
for the 16K or
CLEAR 65128
for the 48K, followed by
LOAD ""CODE
The program must be turned on before it will work. This
is done by
RANDOMIZE USR 32479 (16K)
or
RANDOMIZE USR 65260 (48K)
To turn it off type:
RANDOMIZE USR 32486 (16K)
or
RANDOMIZE USR 65267 (48K)
Here are a few examples of key definitions:
1 REM !: PAPER 7: INK 0: CLS : BORDER 7#
2 REM .: PRINT 65536-USR 7962#
3 REM NEW: INPUT a$: IF a$="Y" THEN NEW#
4 REM :,
REM 1 will reset all the colours - white paper and
border, black ink - at a press of symbol shift-1. This is
useful if you are developing a program using a strange
combination of colours. Often, after stopping such a
program, the listing is almost unreadable.
REM 2 will print out how much free memory you have left
on typing a full stop.
REM 3 is a safeguard against NEWing a program acciden-
tally. On pressing NEW, you must input a string. If you
enter Y the program will NEW. Anything else will mean that
the key press is ignored. Enter the NEW after the REM by
typing a colon followed by the NEW, then deleting the
colon.
Finally, REM 4 allows you to type in quantities of data
far quicker. It makes the space key act as a comma,
avoiding the need for using the shift key.