В.В. Попов (г. Кемерово)
БЫСТРЫЙ ВВОД ОПЕРАТОРОВ
В БЕЙСИКе БК-0010.01 для набора десяти наиболее часто употребляемых команд предусмотрены специальные функциональные клавиши (F0 - F9), обеспечивающие быстрый ввод этих команд. При необходимости функциональные клавиши можно перепрограммировать по своему усмотрению. Однако при написании программ на БЕЙСИКе десяти команд быстрого ввода явно недостаточно и остальные команды и операторы приходится вводить с клавиатуры посимвольно.
Предлагаемая подпрограмма - драйвер позволяет значительно расширить набор операторов БЕЙСИКа для быстрого ввода. Подпрограмма - драйвер работает совместно с БЕЙСИКом "Вильнюс, 1986.07.24", зашитым в ПЗУ компьютера, так как в подпрограмме есть обращения к ПЗУ БЕЙСИКа.
10 DATA 5599,266,48,119,188,2335,-28448,4454,2527,-31718, -24553,3,525,-30714,5570,26,4227,26051,64,-24573,775,26051, 32,-24573 20 DATA 771,32394,95,-32152,24706,7351,400,80,5599,336,24, -24640,70,-30025,66,498,5599,-32694,24,5047,22,2807,18,2807, 14,8183 30 DATA 10,8,9719,-30714,2,773,0,5599,336,24,2,-24640,18, -30025,14,-23104,32,757,5599,-32694,24,2,0,-12664,-12624, -18758,-18704 40 DATA -14630,-18951,-14646,-12616,-18933,-18829,-18806, -18824,-12643,-18910,-18923,-18899,-18736,-18884,-18856, -14635,-14587 50 DATA -12660,-18710,-18961,-12649,-18977,5569,468,5570,14, -30704,95,-24442,-28404,-27821,28789,29285,19345,26003,-28295 60 FOR A% = 256 TO 480 STEP 2 70 READ D% 80 POKE A%,D% 90 NEXT A%
После запуска программы в стековой области формируется подпрограмма в машинных кодах. Её необходимо записать на магнитофон командой:
BSAVE "SKEY",256,482
Для загрузки драйвера с магнитофона наберите команду:
BLOAD "SKEY",R
Теперь для быстрого ввода оператора необходимо нажать "префикс" (клавиша "КТ"), а затем одну из 26 букв латинского алфавита.
Соответствие букв и "приклеенных" к ним операторов приведено в таблице 1. Там же приведены адреса букв в драйвере.
A,402 - ASC |
Н,416 - HEX |
O,430 - OPEN |
V,444 - VAL |
B,404 - BIN |
I,418 - INPUT |
P,432 - PRINT |
W,446 - RENUM |
C,406 - CSAVE |
J,420 - DATA |
Q,434 - NEW |
X,448 - DEF |
D,408 - DELETE |
K,422 - KEY |
R,436 - RETURN |
Y,450 - INKEY |
E,410 - ELSE |
L,424 - LOCATE |
S,438 - STOP |
Z,452 - DIM |
F,412 - FOR |
M,426 - MID |
T,440 - THEN |
G,414 - GOSUB |
N,428 - NEXT |
U,442 - USR |
|
|
В качестве примера вызовем команду RENUM: нажимаем и отпускаем клавишу "КТ"-, а затем нажимаем клавишу "W" (или "w") - на экране появляется полное слово команды, если теперь нажать клавишу "ВВОД", то выполнится команда перенумирования строк. Другой пример: необходимо ввести строку программы вида:
10 IF I = 1 THEN 20 ELSE PRINT A.
Для этого необходимо выполнить следующую последовательность:
10 IF I = 1 "КТ" Т 20 "КТ" Е "КТ" Р А.
Для тех читателей, которых не удовлетворят "приклеенные" операторы, автор советует выбрать из предлагаемых 108 операторов, функций и команд языка БЕЙСИК необходимые, "приклеить" их к выбранной клавише и записать полученную конфигурацию подпрограммы - драйвера на магнитофон. Так можно создать несколько версий драйвера и загружать нужную при работе в БЕЙСИКе.
Для этого необходимо: оператором БЕЙСИКа РОКЕ по адресу буквы (взятому из табл. 1) записать адрес начала оператора (из табл. 2). Например "приклеим" к букве О оператор RESTORE;
РОКЕ 430,-14654
ABS |
-12715 |
DATA |
-18829 |
LET |
-18927 |
PRESET |
-18782 |
AND |
-12777 |
DEF |
-18961 |
LINE |
-18973 |
|
-18899 |
AS |
-14590 |
DELETE |
-18704 |
LIST |
-18727 |
PSET |
-18787 |
ASC |
-12664 |
DIM |
-18977 |
LOAD |
-18746 |
READ |
-18870 |
AT |
-14618 |
DRAW |
-18893 |
LOCATE |
-18824 |
REM |
-14670 |
ATN |
-14622 |
EL |
-14625 |
LOG |
-12727 |
RENUM |
-18710 |
AUTO |
-18732 |
ELSE |
-14630 |
LLIST |
-18716 |
RESTORE |
-14654 |
BEEP |
-18802 |
END |
-18833 |
LPOS |
-12677 |
RETURN |
-14666 |
BF |
-14578 |
EOF |
-12692 |
LPRINT |
-18851 |
RND |
-12755 |
BIN |
-12624 |
EQV |
-12788 |
MID |
-12643 |
RUN |
-18692 |
BLOAD |
-18769 |
EXP |
-12731 |
MONIT |
-18722 |
SAVE |
-18741 |
BSAVE |
-18752 |
FIND |
-18763 |
MOD |
-12800 |
SGN |
-12711 |
CALL |
-18875 |
FIX |
-12719 |
NEXT |
-14659 |
SIN |
-12747 |
CDBL |
-12702 |
FN |
-14583 |
NEW |
-18736 |
SQR |
-12751 |
CYR |
-12628 |
FOR |
-18951 |
NOT |
-12796 |
STEP |
-14608 |
CINT |
-12707 |
FRE |
-12672 |
OCT |
-12620 |
STOP |
-18856 |
CIRCLE |
-18968 |
GOSUB |
-14646 |
ON |
-18844 |
STR |
-12632 |
CLEAR |
-18817 |
GOTO |
-14640 |
OPEN |
-18923 |
STRING |
-12639 |
CLOAD |
-18775 |
HEX |
-12616 |
OR |
-12780 |
TAB |
-14615 |
CLOSE |
-18916 |
IF |
-18936 |
OUT |
-18860 |
TAN |
-12739 |
CLS |
-18797 |
INKEY |
-12649 |
OUTPUT |
-14603 |
THEN |
-14635 |
COLOR |
-18793 |
IMP |
-12792 |
PAINT |
-18907 |
TO |
-14611 |
CONT |
-18697 |
INP |
-12764 |
PEEK |
-12760 |
TROFF |
-18957 |
COS |
-12743 |
INPUT |
-14596 |
PI |
-12773 |
TRON |
-18811 |
CSAVE |
-18758 |
INT |
-12723 |
POINT |
-12770 |
ISR |
-14587 |
CSNG |
-12697 |
KEY |
-18806 |
POS |
-12681 |
VAL |
-12660 |
CSRLIN |
-12688 |
LEN |
-12668 |
POKE |
-18865 |
XOR |
-12784 |
В качестве префиксной клавиши можно выбрать любую другую клавишу, записав по адресу - 278 код этой клавиши. Определим в качестве префиксной - клавишу "ВС" (десятичный код - 19):
РОКЕ 278,19
В заключение следует отметить, что выключается драйвер командой
РОКЕ 48,-32162
Заключение рецензента
Набор программы (особенно большой) на клавиатуре БК0010 - достаточно утомительное занятие. Программа-драйвер, предлагаемая автором, позволяет несколько облегчить этот нелёгкий труд. Большой выгоды от такого новшества нет, но клавиатура БК работает в более щадящем режиме. Экономится время ввода команд.
Л.Н. Жариков