С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
По поводу рисует ужасы - к сожалению есть в подпрограммах обработки текстового терминала и п/п приема информации по К0 два очень слабых места.
Ячейка 7064 служит в качестве индикатора вызова п/п управления текстовым терминалом в диспетчере процессов и одновременно счетчиком принятых по каналу K0 символов. Так вот в п/п управления текстовым есть два забавных пируэта: по адресам 110756 и 111122: там делается сначала INC @#7064, а затем DEC @#7064. На команды DEC есть переходы, туда переходят после обработки очередного символа, а INC делается в самом начале программы обработки, соответственно потом DEC, чтобы не нарушать отчетность. INC делается из-за того, что п/п написана так, что DEC не избежать, сначала увеличили, потом уменьшили и в итоге осталось тоже самое, т.к. еще ничего не обработали.
В п/п обработки приема информации по каналу K0 по адресу 175706 командой CMP @#7064,#177 проверяется переполнение буфера. Нет бы дальше задействовать команду BHIS, но проверяется командой BEQ.
А теперь представим себе, что буфер заполнен, 0177 символов, работает п/п обработки текстового терминала, делается INC @#7064, а после этого производится прерывание по каналу K0. В ячейке соответственно 0200, сравнение не проходит и далее в буфер пишется информация, принятая по каналу K0, @#7064 еще увеличивается на единицу. При отрисовке символов может еще чего нибудь прийти, быстро обрабатываются только некоторые управляющие коды. Ну и т.д. и т.п.
Новая версия программы тестирования скорости портов CPS.SAV ( v1.5 )
Добавлены следующие параметры запуска:
1. В слове по адресу 01020 - байт (младший) для вывода. Если в этом слове установлен знаковый бит - байт не используется и тестирование осуществляется в обычном режиме.
2. В слове по адресу 01022 - длина строки для вывода тестового байта ( строка создаётся в памяти "позади" программы, если затрёт систему - тест не пострадает ).
3. В слове по адресу 01024 - кратность усреднения при "спецрежиме". Допустимые значения: 1, 2, 4.
Если тестирование выводом байта производится для выходного порта с той же базой, что и у входного порта - тогда тестирование проводится в спецрежиме: сначала молча накапливаются данные 2, 3 или 5 секунд (в зависимости от кратности усреднения ) - потом тест сам завершается и выводится результат.
При тестировании "постороннего" порта выводом байта - тестирование идёт непрерывно с непрерывным выводом измеренных значений CPS на "контрольный" терминал. После завершения теста - значение CPS выводится также и в тестировавшийся порт .Код:.GET CPS .E 1000-1024 177560 000060 177564 000064 000000 000000 000062 000100 177400 000116 000002 .D 1020=43 .ST CPS - CHECK TERMINAL OUTPUT SPEED - V1.5 PRESS ANY KEY TO EXIT WAIT SECONDS: 3 CPS: 5738 ############################################################## PROGRAM COMPLETED
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)