Цитата Сообщение от zst Посмотреть сообщение
Когда Диззи переходит в другое место надо нарисовать картинку/фон, а потом Диззи. На приведенной картинке видно, что она рисуется из нескольких типов маленьких картинок-квадратиков размером 8х8 точек.
Из картинки это не очевидно. Не скажу именно за Диззи, но часто и прямоугольники разного размера сразу печатают.

Цитата Сообщение от zst Посмотреть сообщение
Нарисуем на черновике область размером 32х24 клетки и пронумеруем каждую клетку номером тайла. Теперь нам надо изобразить эти тайлы на экране...
Ну зачем такое, не понимаю. Почему ты упорно хочешь блиттер кастрировать? Зачем жёстко сетка и мелкотайлы зафиксированного размера? Зачем делать неуниверсально и явно то, что само получается неявно по общей схеме?

Цитата Сообщение от zst Посмотреть сообщение
Нужно определиться с количеством байтов на каждый параметр. LY, LX, К - по одному байту, Y, X, N - по два (YH, YL, XH, XL, NH, NL). Тут все понятно.
Блиттеру простому для переброски произвольного прямоугольного блока нужны только следующие параметры:
- способ наложения (или код прозрачного в простом случае)
- длина общая перебрасываемого блока
- длина "строки" блока
- приращение в конце строки для источника
- приращение в конце строки для приёмника
- адрес источника
- адрес назначения
Все параметры прошлой операции запоминаются, все записи параметров идут в буфер, а переброска может запускаться автоматически при получении полного адреса приёмника (или проще - только старшего байта). Так что если захотелось всё-таки порисовать мелкотайлами одинакового размера, после первого (с полным описанием всех параметров) можно только адреса-параметры изменять. В том числе, возможно, и процедурой, номера преобразующей в адреса. Но, по-моему, экран в формате списка пар "параметр, значение" в общем случае места занимать будет меньше и отрисовываться быстрее. И само собою, лучше смотреться.

Цитата Сообщение от zst Посмотреть сообщение
Но нужно проработать эффективную систему для записи команд в видеокарту. Мы можем выделить 256 разных адресов для разных команд или подавать их все через один адрес, чередую КОМАНДУ и ДАННЫЕ или передавать КОМАНДЫ и ДАННЫЕ с помощью команды LDIR через область 256/512 байт. Какой способ лучше ?
Чередуя, ты "командой" выбираешь адрес порта фактически. То же самое, как записью в разные адреса, только медленней и не запоминаешь в обычной памяти. Лдиры, кстати, не нужны при правильной организации отрисовки, часто шевелить необходимо только несколько байт.

И повторю, для простой и быстрой переделки существующих игрушек нужно, чтоб стандартный спектрумовский экран незаметно и "прозрачно" для оригинального кода отображался в новый цветной экран (что позволит переделывать игры постепенно до любой степени). А не разные видеорежимы несовместимые с обязательной полной перекраской-перерисовкой.