У меня возникла мысль а не скрестить ли этот мой гипотетический спектрум NEDOCON-48K с XORYA графикой для NTSC телевизоров?Shaos wrote:Вобщем так - сначала будет NEDOCON-48K с 48КБ ОЗУ и 16КБ ПЗУ (с бейсиком для стандартной графики). А потом будет NEDOCON-56K с 56КБ ОЗУ (лишние 8КБ это теневые атрибуты) и 32КБ ПЗУ (с полноценным SE Basic IV Anya). Машинки предполагаются быть совместимыми с Таймексом 2068 по форматам графики (для 56K еще будет графика ZX Spectrum SE с теневой второй страницей) плюс будут иметься свои "экзотические" форматы. Видеорежимы будут переключаться по таймексовски - через порт 255 (#FF):OLD MODE 0 - обычная спектрумовая графика 256x192 по адресу #4000 (на 56K можно будет еще переключаться на работу из теневой видеопамяти);Code: Select all
D0-2: Screen mode. 000=screen 0, 001=screen 1, 010= hi-colour, 110=hi-res D3-5: Sets the screen colour in hi-res mode. 000 - Black on white. 100 - Green on magenta. 001 - Blue on yellow. 101 - Cyan on red. 010 - Red on cyan. 110 - Yellow on blue. 011 - Magenta on green. 111 - White on black. D6: If set disables the generation of the timer interrupt. D7: Selects which bank the horizontal MMU should use. 0=DOCK, 1=EX. (в новом недоспектруме может участвовать в настройке кадрового прерывания 50/70 Гц?)
OLD MODE 1 - сдвинутая спектрумовская графика 256x192 по адресу #6000 (несовместимо с бейсиком, но на 56К можно будет еще переключаться на работу из теневой видеопамяти);
OLD MODE 2 - аппаратный мультиколор 256x192 с 8x1 атрибутами как в Timex 2068 (несовместимо с бейсиком, но 56К может подменять растровую графику из теневой памяти);
NEW MODE 3 - аппаратный мультиколор 256x192+ с теневыми атрибутами 8x1 (вариации переключаются дополнительными битами порта 255 и на 48K этот режим будет ч/б т.е. без атрибутов);
NEW MODE 4 - новый режим 320x200 с явными атрибутами 8x1 (несовместимо с бейсиком, но присутствует в 48К режиме, а в 56К можно будет использовать теневую видеостраницу, подцепляемую в последнюю четверть адресного пространства через #7ffd);
NEW MODE 5 - новый режим 320x200 с теневыми атрибутами 8x1 (несовместимо с бейсиком и в 48К этот режим будет ч/б т.е. без атрибутов);
OLD MODE 6 - монохромный режим высокого разрешения 512x192 по умолчанию как в Timex 2068 (цвет выбирается дополнительными битами порта 255, но 56К может подменять растровую графику из теневой памяти - см.ниже);
NEW MODE 7 - цветной режим высокого разрешения 640x200 с атрибутами в теневой странице 8x8, 8x4 или 8x2 программируемыми явно (несовместимо с бейсиком и на 48K этот режим будет ч/б т.е. без атрибутов).
В машине NEDOCON-56K добавится порт #7ffd для управления памятью (нужно для нормальной работы полноценного SE Basic IV):
D0-2: RAM bank (0-7) по адресу #c000 (5 и 7 подключают видеостраницы, а все остальные значения будут означать тот же самый кусок основного ОЗУ);
D3: переключает видеопамять откуда будет рисовать видеоконтроллер (main 0 or shadow 1);
D4: выбор ПЗУ (половинки SE Basic IV);
D5-7: не используется (в будущих моделях можно задействовать как 3 дополнительных бита для выбора страниц расширенной памяти как в Пентагоне-1024).
Вариации режимов на 56K могут выбираться дополнительными тремя битами порта #FF (D3-D5), которые в таймексовском режиме 6 выбирают цвет зада и переда, а в других режимах будут делать следующее:
D3: переключает теневые атрибуты в режим IRGB (полноценные 16 стандартных цветов EGA без мигания);
D4: разрешает регистр копирования теневых атрибутов #FC для режимов 3 и 5 (аля Специалист), а для режима 7 включает четвертичные атрибуты;
D5: включает дополнительные знакоместа для режима 3 (превращая 256x192 в 288x200) и половинчатые атрибуты для режима 7 (в данный момент D4 должен быть 0, если D5=1 для этих режимов, т.е. нельзя иметь одновременно и половинчатые, и четвертичные атрибуты).
P.S. на 56K объем теневой видеопамяти будет только 8 КБ и при ее подключении в область #C000 (через выбор банка 7) она займет только первую половину окна (#C000...#DFFF), а во вторую половину (#E000...#FFFF) будет подключена область #4000...#5FFF (т.е. основная видеопамять) - это сделано для того, чтобы была возможность сымитировать теневые видеорежимы "ZX Spectrum SE", оставаясь в рамках нашего 56-килобайтного лимита для ОЗУ
P.P.S. В июне 2021 года немного изменил описание видеорежимов для большей логичности...
viewtopic.php?p=118799#p118799
Цвета в целом похожи (тут большие цифры - нумерация EGA, а мелкие - ZX):
Единственное, что цветовое разрешение по горизонтали в XORYA всего 160 пикселов, поэтому цвета на уровне отдельных пикселей ZX не будут отображаться телевизором (или будут отображаться неправильно)...
P.S. Если в цветах EGA отображать, то тут нету тёмно-серего ( цвет EGA номер 8 ) и его придётся хитро получать либо мерцанием, либо шахматной заливкой чередуя серый с чёрным и по поводу коричневого надо что-то придумать...