РЕАЛИЗАЦИЯ ДИАЛОГОВОГО РЕЖИМА
Диалоговый режим реализует
взаимодействие человека с вычислительной машиной. Наиболее употребительными техническими средствами, обеспечивающими обмен информацией между человеком и машиной в процессе диалога, являются клавишные устройства и устройства визуального отображения (дисплеи). Поскольку ПМ-ЭВМ имеет, хотя и ограниченные по своим возможностям, клавиатуру и светодиодную индикацию, можно попытаться организовать на ней диалоговый режим. Введем в ПМ-ЭВМ следующую программу, предназначенную для оценки реакции оператора в диалоговом режиме:
014000041 Ml: LXI H, TAB
014001 110
014002 014
014003257 М2: XRA А
014 004 323 OUT, OOOQ
014005 000
014006323 OUT.001Q
014007 001
014010323 OUT, 003Q
014011 003
014012107 MOV В, А
014 013 117 MOVC, A
014 014 057 CMA
014015323 OUT, 002Q
014 016 002
014017176 MOV A, M
014 020 267 ORA A
014021312 JZ,M1
014 022 000
014023014
0140243-15 M3: CALL DL
014025 277
014 026 000
014027075 DCRA
014030302 JNZ, M3
014031 024
014 032014
014033323 OUT, 002Q
014034 002
014035333 M4: IN, 003Q
014 036 003
014037057 CMA
014 040 267 ORA A
014041312 JZ.M6
014042061
014 043 014
014044171 MOV А, С
014045323 OUT, OOOQ
014 046 000
014047170 MOV А, В
014050323 OUT, 001Q
014051 001
014052333 M5: IN, 003Q
014 053 003
014 054 057 CMA
014055267 ORA A
014056302 JNZ,M5
014 057 052
014 060014
014061315 M6: CALLDL
014062277
014 063 000
014064171 MOV А, С
014 065 074 INR A
014 066 047 DAA
014067117 MOVC, A
014070170 MOV А, В
014071316 ACI, OOOQ
014 072 000
014073047 DAA
014074107 MOVB.A
014075376 CPI,005Q
014076005
014077332 JC, M4
014 100035
014 101 014
014102043 INXH
014 103 303 JMP, M2
014 104 003
014 105 014
014110377 TAB:
014 111 200
014 112300
014 113 330
014 114000
После ввода программы нажмем кнопки СБРОС и П. Порт 002 высветит число 377Q (все единицы), а индикаторы портов 001 и 000 погашены. Через неизвестный оператору интервал времени индикаторы порта 002 гаснут. В этот момент оператор должен нажать любую (кроме СБРОС) кнопку клавиатуры. В портах 001 и 000 высветится выраженное в двоично-десятичном коде время задержки между погасанием индикаторов порта 002 и нажатием кнопки.
Порт 001 индицирует десятки и единицы секунд (считая слева), а порт 000 — десятые и сотые доли секунды. После отпускания кнопки через заданный интервал времени индикаторы портов 001 и 000 гаснут, а индикаторы порта 002 снова загораются, чтобы погаснуть через неизвестный интервал времени. Если ни одна кнопка не нажата после погасания индикаторов порта 002, через заданный интервал времени они снова загорятся. Если кнопка нажата до погасания индикаторов, то портами 001 и 000 индицируется нулевая задержка, т. е. не загорается ни один индикатор.
Оценки времени реакции оператора (в секундах):
0,00 — 0,09 — ошибочное значение, Вы поторопились, попробуйте снова;
0,10 — 0,14 — исключительная, почти фантастическая реакция;
0,15 — 0,19 — очень хорошая;
0,20 — 0,24 -нормальная;
0,25 — 0,29 -посредственная;
0,30 — 0,34 — плохая;
0,35 — 5,00 - Вы, вероятно, уснули.
Программа может быть использована как для оценки, так и для тренировки реакции. Время задержки гашения индикаторов порта 002 задается количеством циклов задержки, начинающихся с метки МЗ. В аккумулятор при каждом замере заносятся последовательно числа из таблицы, хранящейся в ячейках памяти, начиная с адреса, задаваемого командой LXIH. Длина таблицы практически неограниченная. Если в таблице помещено число OOOQ, то при его занесении в аккумулятор на очередном шаге происходит возврат к началу программы и, следовательно, к началу таблицы. Цена младшего разряда, задающего задержку числа, равна задержке, вырабатываемой ПП DL, т. е. 10 мс. После того как индикаторы порта 002 погашены (команда по адресу 014Q 033Q) и до нажатия кнопки с помощью счетчика, организованного на регистровой паре В, подсчитывается количество циклов обращения к ПП DL (команды, начиная с метки Мб). В счетчиках используется команда DAA, поэтому результат получается в двоично-десятичном коде. При нажатии кнопки содержимое регистровой пары В выводится в порты 001 и 000. Счетчик циклов снова задействуется после отпускания кнопки, и после достижения заданного числа циклов происходит возврат к метке М2 программы, при этом регистровая пара Н инкрементируется, в результате чего при следующем замере в качестве параметра задержки извлекается следующее число из таблицы.Параметры, определяющие работу программы, помещаются по следующим адресам: 014Q 001Q, 014Q 002Q — адрес начала таблицы; 014Q 076Q — время, в течение которого индикаторы порта 002 погашены; цена младшего разряда — около 1 с.
Обратим внимание на то, что для ввода информации с клавиатуры не использована ПП SKL, так как при обращении к ней невозможно организовать счет времени (до нажатия кнопки процессор не выходит из ПП).
10