Цитата Сообщение от form Посмотреть сообщение
Скорее всего так и есть. Поначалу видно, что CPS охреневает просто, рисует какие-то ужасы, а потом устаканивается.
По поводу рисует ужасы - к сожалению есть в подпрограммах обработки текстового терминала и п/п приема информации по К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 еще увеличивается на единицу. При отрисовке символов может еще чего нибудь прийти, быстро обрабатываются только некоторые управляющие коды. Ну и т.д. и т.п.