
Сообщение от
NEO SPECTRUMAN
А можно ткнуть носом в тот набор микросхем, которые отвечают за регенерацию ОЗУ? И в адрес процедуры загрузки с магнитофона, где якобы используется программная регенерация ОЗУ (при отключенном ПДП).
В схеме РК нет узла регенерации памяти, т.к она происходит сама по себе, в ходе считывания ПДП последовательных адресов памяти. Ради этого (чтобы не тратиться на схему регенерации ОЗУ) и "городится весь огород" с программным формированием КСИ, ССИ, бордюров и сдвижкой POSX и POSY на 8 и на 3. Хотя в схеме РК, благодаря наличию межстрочных линий, легко сделать схему регенерации, используя сигнал LC3.
Подпрограммы RDBYTE и WRBYTE первым делом отключают работу ПДП. Далее, каким-то образом ОЗУ не разрушается, пока что-то грузится с ленты и экран погашен. За счёт чего это достигается, я не знаю (не то вся программа занимает не менее 128 ячеек, отчего при её прогоне считываются все адреса или ещё как-то).
Код:
RDBYTE: PUSH HL
PUSH BC
PUSH DE
LD D,A
AFB9C: LD A,80H
LD (VT_57+8),A
А вот я не понимаю, почему ВГ75 работает так глупо. У неё есть внутренний буфер объёмом 80 байт. Т.е теоретически ВГ75 может загрузить целиком всю строку длиной до 80 байт. И тогда на время вывода всей строки, всех 10-ти линий растра входящих в строку, ей не придётся запрашивать ПДП и закачивать новые символы для вывода.
Тогда время простоя процессора сократится в 10 раз и быстродействие из-за ПДП будет падать не на 25%, а всего на чуть-чуть. А сейчас ВГ75 запрашивает данные у ПДП крошечными порциями по 8 байт, отчего, чтобы закачать всю строку в 78 символов, рвёт программу 8 раз за время вывода строки (64 МКСЕК). Старое содержимое строки теряется из-за того, что выведенные символы удаляются из буфера, освобождая место для новых.
Понятно, что при закачке строки по кусочкам, прогон программы прерывается на более короткий промежуток времени (хотя какая нам разница, если общее время простоя КР580 - то же самое).
По поводу пользы в играх от ПДП. К сожалению, ВТ57 не умеет качать "память-память". А вот ВТ37 умеет это делать. Поэтому для тех кому нужно мгновенное панорамирование экрана во все стороны, надо ставить ВТ37. Тратится 1 маш.такт на байт. Тогда на пересылку всего экрана размером в 2340 байт будет тратиться 2340:1.77= 1.322 МСЕК. Что позволяет успеть сделать панорамирование во время бордюра по кадрам, что длится в РК86 1*64*10 + 5*64*10= 3.660 МСЕК. Т.е за кадровый бланк можно сдвинуть экран почти 3 раза.