предложеный Patronom вариант
Код:
VAR	SIMB	:INTEGER;

PROCEDURE READSIM;
BEGIN
	(*$C
		EMT	^O340
		BCS	SKIP
		MOV	%0,SIMB(%5)
	SKIP:
	*)
END;
не работает и даже не пытается, процедура просто проскакивает как пустая при выполнении программы (что я не так делаю?)!!!
Да и почему вместо (SP) %5, a вместо R0 %0 ???

Цитата Сообщение от Patron
Надо доверить опрос клавиатуры операционной системе, а в программе для проверки готовности символа использовать ассемблерную вставку с вызовом .TTINR

А чтобы этот вызов не подвешивал программу в старших релизах RT-11 - добавить ассемблерную вставку, которая будет устанавливать нужные биты JSW.
.TTINR так же просто игнорируется при выполнении программы


И вот этот вариант сбоит - то есть пропускает ожидание через раз,
может реагирует и на отжатие???
Код:
var
        INKEY ORIGIN 177560B:			INTEGER;
	KEY ORIGIN 177562B:			INTEGER;

<...>
repeat
         INKEY:=0;
until   (INKEY AND 128)<>0;
Я в шоке!!!

Ребята подскажите как
1 - мне получить 100% гарантию ожидания нажатия клавиатуры в любом месте программы и в регистре данных клавиатуры или какой-нибудь переменной сохранить нажатую кнопку в виде кода или символа
2 - мне считать нажатие с клавиатуры без ожидания нажатия внутри
цикла например и опять таки иметь этот код или в регистре или в переменной (но тут обычно хватает тупо обнулить РА и потом уже
в цикле проверять что нажато было последний раз)
Буфер - про буфер и как его почистить я вообще не буду спрашивать, мне бы просто выяснить 1 и 2 пункты )

В чём моя ошибка? Что я не так делаю? Должен же быть человеческий и рабочий способ !!! Печаль! А главное последний
вариант работает, но хитро!!! Манипулировать с регистрами клавиатуры получается, но непредсказуемо как-то. Печаль два раза.