Вобщем снова идём по режимам и переосмысливаем (жирным выделены старые режимы Спринтера):
#01 - Mixed Mode 640x350 (???);
#02 - Text 40x32 with 16 colors and characters 8x8 - emulated by #01 (640x350) with offset;
#03 - Text 80x32 with 16 colors and characters 8x8 - emulated by #01 (640x350) with offset;
#04 - Text Mode 80x50 with 16 colors and characters 8x8 (640x400 - no scrolling);
#05 - High-Quality Text Mode 80x35 with 16 colors and characters 8x10 (640x350 - no scrolling); \
#06 - High-Quality Text Mode 80x40 with 16 colors and characters 8x10 (640x400 - no scrolling); - Future
#07 - High-Quality Text Mode 80x48 with 16 colors and characters 8x10 (640x480 - no scrolling); /
#80 - Graphics 368x288 with 256-color palette and compatible with mode #81 page 0 (???);
#81 - Graphics 320x256 with 256-color palette (over 640x350 - emulated by mode #C1 with offset 48);
#82 - Graphics 640x256 with 16 colors (over 640x350 - emulated by mode #C2 with offset 48);
#83 - Graphics 352x280 with 256-color palette and 4 pages (no scrolling);
#84 - Graphics 704x280 with 16-color palette and 4 pages (no scrolling);
#85 - Graphics 384x512 with 256-color palette and 2 pages (over 800x600 with border???); - Future
#86 - Graphics 768x512 with 16-color palette and 2 pages (over 800x600 with border???); - Future#C1 - Graphics 320x350 with 256-color palette, horizontal and vertical scrolling;
#C2 - Graphics 640x350 with 16 colors with horizontal and vertical scrolling;
#C3 - Graphics 320x400 with 256-color palette, horizontal and vertical scrolling; - Future
#C4 - Graphics 640x400 with 16 colors, horizontal and vertical scrolling; - Future
#C5 - Graphics 640x480 with 16 colors, horizontal and vertical scrolling. - FutureДля новых режимов надо предусмотреть возможность копирования 16 строк через одну банку памяти вместо одной строки как в оригинальном Спринтере...
P.S. Вот ещё один пример экрана 640x256 показанного в 640x350 с чёрными полосами сверху-снизу и растянутого к соотношению сторон 16:9:
Тут чёрный квадрат был квадратным когда 640x256 были растянуты в 16:9, а белый квадрат - реально квадратный в нативном разрешении...
P.P.S. А вот как могло бы выглядеть полное занимание 640x350 в соотношении сторон 16:9 (пропорции иконок также поправлены):
P.P.P.S. Возможные порты для работы с экраном (жирным выделен старый функционал):
#89 - порт куда пишем номер текущей строки с номером от 0 до 255 (как и раньше)
#8A - порт куда пишем номер текущей строки с номером от 256 до 511 (пишем туда Y-256)
#8B - порт куда пишем номер 16-строчного блока для работы через окно (0...31)
#C9 - порт где можно быстро переключить экран в 256-строчном режиме (
0,1,2,3)
#CA - младший байт горизонтального смещения экрана (сохраняется в буферном регистре)
#CB - старший байт горизонтального смещения экрана (запись обоих байтов в 10-битный регистр горизонтального смещения)
#CC - младший байт вертикального смещения экрана (сохраняется в буферном регистре)
#CD - старший байт вертикального смещения экрана (запись обоих байтов в 9-битный регистр вертикального смещения)
#CE - высота чёрной зоны сверху
#CF - высота чёрной зоны снизу
P.P.P.P.S. Наверное номера режимов со скролом надо будет убрать в новую область - скажем в #Cx т.к. они будут совсем другие (никаких клеточек-квадратиков и микса с текстовыми режимами) -
убрал