Сообщение от
Gutten
А какой будет код для ввода к примеру знака "%"? Я правильно понимаю, что будет обрабатываться код при нажатии "SHIFT", и код при нажатии "5", при этом в спектрум передаётся как бы одновременное нажатие SS+5?
И для ввода токенов в EXT.MODE будет корректно отрабатываться нажатие CS+SS, SS+кнопка?
Давайте рассмотрим наклейки от клавиатуры GOLDEN KEYBOARD:
На ней увидим, что символ "%" нарисован на кнопке с 5. Значит вместе с SS нужно нажать 5. Если мы хотим, чтобы "%" можно было ввести нажатием одной кнопки, для этой кнопки надо написать SS+KEY_5. Чтобы ввести левую скобку надо нажать SS+8. Это стандартная реакция ZX SPECTRUM.
Для перехода в EXT. MODE можно нажать CS+SS или запрограммировать кнопку Tab для имитирования нажатия этих двух кнопок при нажатии одной.
Я просто пытаюсь для себя до конца понять, насколько свободно можно задать раскладку (ту, какая мне нужна и удобна) и есть ли какие-то ограничения по ней.
.
Надеюсь вы не хотите сделать так, чтобы при нажатии SS+9 нажималась левая скобка, а не правая ? Если вам надо все символы нажимать одним касанием - надо запрограммировать свободные кнопки клавиатуры как было описано выше, а для тяжелых случаев на каждую кнопку написать последовательность нажатия с переходом в EXT. MODE. Чтобы запустилась эта последовательность, надо для этой кнопки написать EXT+номер записанной последовательности. Например, для LOAD - такая:
Код:
Command_12: ; команда 12: RESET LOAD " " ENTER (для прошивки OpenSE BASIC в LENINGRAD-2012)
rcall ClearOutBuf
ldi temp,Z80_RESET ; RESET
rcall StepKeyMacro
ldi temp,NULL
rcall StepKeyMacro
rcall Delay1S ; ожидание запуска и показ некоторое время надписи внизу экрана
ldi temp,CS+KEY_L ; L
rcall StepKeyMacro
ldi temp,CS+KEY_L
rcall StepKeyMacro
ldi temp,CS+KEY_O ; O
rcall StepKeyMacro
ldi temp,CS+KEY_A ; A
rcall StepKeyMacro
ldi temp,CS+KEY_D ; D
rcall StepKeyMacro
ldi temp,SS+KEY_P ; "
rcall StepKeyMacro
ldi temp,SS+KEY_P
rcall StepKeyMacro
ldi temp,NULL ; отпускание всех кнопок
rcall StepKeyMacro
ldi temp,SS+KEY_P ; "
rcall StepKeyMacro
ldi temp,SS+KEY_P
rcall StepKeyMacro
ldi temp,KEY_EN ; ENTER
rcall StepKeyMacro
Но это, наверно, самый сложный клавиатурный макрос, который может потребоваться.