О.Ю. СЕМЕНОВ
При работе с компьютером БК-0010-01 на языке MSX-BASIC иногда по каким-либо причинам бывает желательно отключить звуковой сигнал клавиатуры. Хочу предложить пользователям БК-0010-01 «драйвер бесшумной клавиатуры», позволяющий сделать это чисто программным путём.
Для записи драйвера на магнитофон необходимо набрать небольшую программу на БЕЙСИКе:
10 DATA 287, 5599, -22336, 1088, 135, 5623, -32152, 20, 259, 5623 20 DATA -32004, 12, 2335, -28448, 4454, 2551, 4, 95, 0, 3039, 148, 770 30 DATA 2527, -28322, 5599, -1, 146, 5568, 3000, 32257, 95, -31670 40 DATA 5623, -30716, -70, 5599, 266, 48, 5599, 274, 188, 5599, 256 50 DATA 1088, 95, -24448 60 FOR A% = 256 TO 346 STEP 2 70 READ D% 80 POKE A%, D% 90 NEXT A% 100 END
После запуска в стековой области формируется подпрограмма в машинных кодах, которую следует записать на магнитофон командой
BSAVE "SNDOFF", 256, 348.
Для загрузки драйвера необходимо набрать команду
BLOAD "SNDOFF", R
(обязательно с ’R'!) и включить магнитофон на воспроизведение. После получения сообщения «Ок» звук отключён . Для разгрузки драйвера (и восстановления звука) следует использовать команду
A=USR(А)
(определение функции USR выполняется автоматически при загрузке драйвера).
Дополнительная информация для тех, кто использует подпрограммы в кодах: адрес загрузки драйвера: &0400 (256), длина после загрузки: &0134 (92) После включения драйвера в систему его длина уменьшается до &0100 (64)
Кроме того, хотелось бы сделать замечание по поводу размера стековой области в компьютере БК-0010-01 (см. вып. 9, 1988, с. 25). В упомянутой статье большой размер стека объясняется предполагаемым использованием данной версии БЕЙСИКа в БК-0011. Практика показала, что не требуется 128 Кбайт ОЗУ для того, чтобы заполнить стековую область. Для этого достаточно выполнить оператор PAINT для закраски области весьма сложной формы. Следовательно, в программах, использующих этот оператор, подпрограммы в кодах, размещаемые в области стека, следует использовать с осторожностью.