Правильно я понимаю, что прерывание возникает в момент начала обратного хода луча?
И тогда получается, что после начала прерывания есть 40 строк * 192 = 7680 такта до начала рисования первой видимой строки.
Вид для печати
nzeemin, вроде бы так, да. Если что-то вверху экрана без теринга надо нарисовать, лучше это делать за этот промежуток времени. Или уж наоборот, ближе к концу кадра.
Удобно добавлять в основной цикл чего-нибудь типа mvi a, 1 \ out 2 ... <длинный код 1> mvi a, 2 \ out 2 ... <длинный код 2> ... mvi a, 0 \ out 2 -- и по бордюру смотреть, если что-то съедает больше времени, чем планировалось.
Копался в инете и нашел книгу некого американского металурга по I8080 / z80. Понравилось что он рассматриваем оба проца и показывает какие-есть альтернативы для I8080 чтобы заменить недостающую часть.
https://worldofspectrum.net/pub/sinc...rogramming.pdf
(это не имеет даже косвенного отношения к сжатию данных, поэтому я продолжаю тут)
parallelno, видео квазидиск не видит, поэтому можно какую угодно программу исполнять прямо в квазидиске. Но в стандартном квазе отображается только 8кб на адреса 0xa000-0xbfff, если не изменяет память. Остальное доступно только через стек.
Этим пользуется "улиточный" плеер, он сидит в адресах 0xa000. Он прячется в квазидиске и именно по этой нелепой причине улитке для звука требуется кваз несмотря на то, что памяти свободной там вагон. Сейчас я его частично от этой беды вылечил, но только частично.
Посмотрел описание к квази-диску. Н-да.
Если подключать в адреса A000-DFFF - это значит, ограничить себя одной цветовой плоскостью (E000-FFFF) или двумя (плюс ещё 8000-9FFF). Но и использовать из квази-диска получится только 4 x 16K = 64K.
Так что по любому нужно писать процедуру перекидывания данных с квази-диска через стековые операции.
Плюс ещё нужно будет его как-то наполнять - видимо, чтением с диска?
Пусть меня поправят реальщики, но у меня сложилось впечатление, что у большинства сейчас квазы поддерживающие доработку Баркаря (номер журнала с описанием здесь). Он позволяет перекрывать до 4х экранных плоскостей и, соответственно, использовать до 128 Кб без стека. В эмуляторах (не помню насчет v06x) это конечно поддерживается. Ну и недавно неожиданно получило популярность подключение к реалам двух квазов. Для emu есть такой конфиг.
- - - Добавлено - - -
Есть несколько примеров, когда кваз (частично) заполняется при старте игрушки/демонстрашки. Туда или распаковываются данные или "предсдвигаются" спрайты и т.п.
v06x в Баркаря умеет, но я скептически отношусь к "реальности" этой модификации. Хотя конечно вся реальность сейчас немного размытая.
Необязательно так строго. Их можно включать для моментального использования и выключать обратно. На содержимом экрана это никак не отразится. Например, туда можно выгрузить плеер и песенку. Или держать там какие-то алгоритмы, которые нужны, но не обязательно связаны с непосредственной модификацией параллельных областей экранной памяти.