fan, последняя ссылка не действует - нет файла, выложи если у тебя сохранено.
Вид для печати
fan, последняя ссылка не действует - нет файла, выложи если у тебя сохранено.
Ну в общем думал-думал и решил:
надо делать и то, и другое.... от IDE отказываться неохота а в то-же время SD/MMC тоже потенциал для развития имеет.
В ПЛИС места более чем предостаточно а вот с ногами проблемы...
И пришла ко мне идейка одна... а что, если я отделю шины проца A и D от остальной части спека...
т.е. отключил буфера и делай с ОЗУ и ПЗУ что хочешь... (в пределах например полутакта проца....).
AY и ZX-BUS останутся с процом.
Таким образом около 20 ног на ПЛИС освобождается...
Но это только в теории....
Что думают по этому поводу железячники??? Будет работать???
А почему было не сделать как на UFO-2 fan'a? А то буфера у тебя всёж мягко говоря непродумано поставлены. :) Да и топология у него более компактная получается.. Попроси готовую разводку, да подрихтуй под свою ПЛИС, всё равно вручную делаешь.
Еще раз посмотрел схему DivIDE... Может и получится... Но ПЛИС должна всеравно полный доступ к ПЗУ иметь (это для идейки одной обязательно нужно ;))...
Да и 1 чип экономится (тот что в ReSpecT для видеопамяти).
Да и вообще... может ПЛИС в будущем снапшоты напрямую в ОЗУ кидать будет...
В общем нужно мне это!
Не надо её экономить. Она тебе будет компенсировать RAM, что DivIDE отъело, но не меньше 32к.
Мой тебе совет - не делай кухонный комбайн, это не профессионально. :( Я понимаю, что в ПЛИС ещё не один компьютер можно засунуть, но всёж сдержись от таких порывов. Сувать туда нужно идеологически совместимые вещи, например развитие видеоконтроллера.
:v2_devil: Это моё 666 сообщение :v2_devil: на этом форуме :)
Чтоб это аценить нужно какоенить описание всей конструкции .
А то не очень понятно чего творится с процом когда его отрубили от шин (тормозится клоком ?).
И не понятно как на данный момент работает видео система , и будет ли отдельный видео мозг .
Вместо схемы лучше нарисовать блок схему со всем что на данный момент планируется .
================================================== =======
http://www.worldofspectrum.org/ZXSpectrum128+3Manual/
http://www.worldofspectrum.org/ZXSpe...pter8pt24.html
Как ты предложишь это сделать чтоб разбежаться с раскладкой Scorpion по #1FFD? Есть какое компромиссное комплексное решение, или предлагаешь просто забить на скорпионовские переключения ПЗУ?
И ещё вопрос ко всем - насколько грамотно писались программы, работавшие с верхней памятью в скорпах и каях на предмет не будут ли они гадить в D0-2 #1FFD?
Попробовал нарисовать блок-схему, но ничего внятного, тем болле компактного, не получается :(
Попробую описать словами. Итак:
В принципе ничего особо нового пока не планируется.
Вся логика будет, конечно же, в ПЛИС.
Там же (в ПЛИС) будут:
1. видеоконтроллер
2. контроллер IDE и SD/MMC
3. контроллер PS/2 клавиатуры и мыша
4. 2 СОМ-порта
5. контроллер 1 (или 2х) джойстиков
6. Часики
7. Covox и SounDrive
Теперь обо всем поподробнее:
Вообще считаю правильным В ОБЯЗАТЕЛьНОМ ПОРЯДКЕ поддержку совместимости с существуюшими популярными клонами.
Реализовать планирую следующим образом:
При включении спека (сразу или после нажатия какой нибудь кнопки) вход в SETUP,
где и будет конфигурироваться весь спек. Например Дата и Время для часов, стандарт (пентагон, кай, атм....), контроллер IDE и т.д. Текущая конфигурация будет сохранятья.
Включение и отключение ТУРБО, кнопками на клаве. Также будет вход на джойстик. Кнопкой на клаве можно будет переключать: кемпстон/синклер 1,2/курсор джойстик. Короче вход для джойстика будет один, а тип будет выбираться.
Все изменения конфигурации по кнопкам на клаве (такие как турбо, тип джойстика) будут в течении 1-3 сек. отображаться в нижнем правом углу экрана. Для этого мне и нужен полный доступ к ПЗУ со стороны ПЛИС. В ПЗУ как раз и будут храниться эти строчки (Turbo: on/off, Joystick: Sinclair/КKempston).
По 1 пункту:
Поповоду видеоконтроллера пока ничего конкретного сказать немогу так как я еще никаких видеорежимов,
кроме стандартного, не делал. Если хватит ног на ПЛИС, то сделаю, как посоветовал fan, 4 бит на цвет.
Потом походу можно будет заняться разными видеорежимами.
Планировал подключение к VGA (с частотой 75Гц).
2. Планируется поддержка DivIDE, NemoIDE, SD/MMC-Card... Но тут, вроде, особенностей никаких нет.
3. Контроллер PS/2 клавы реализуется на ПЛИС без тормоза проца. С мышкой еще не думал, но думаю Кемпстон хватит.
4. 2 СОМ порта потому что МАХ232 для 2х как раз хватит. По какому стандарту, пока не решил. Но наверное всетаки как у caro.
5. Про джойстики вроде понятно описал сверху :)
6. Часы.... просто прикручу. Походу видно будет.
7. Covox и SounDrive будут работать через PWM. Порты тоже переключать кнопками на клаве.
Миксироваться будут программно в ПЛИС (Пока понятия не имею как это решается, но то что это возможно знаю :) )
Вот так! Процессор и AY будут реальные.
1 мег ОЗУ. 512К ПЗУ. Поначалу прицеплял ПЗУ и ОЗУ отдельно от проца напрямую к ПЛИС, но за нехваткой ног надо как-то их совмещать. Поэтому и думал о том варианте с буферами между процом и памятью.
Если, например, видеоконтроллеру надо читать из ОЗУ проц тормозить не хочу. Думал (на частоте 14МГц) отключать буферами проц от памяти, читать байт и снова включать. Для этого должно хватить 1/4 такта проца. Поэтому, думаю, должно будет работать. Память на 55мс потянет без проблем (уже запускал проц своего первого спека на 14МГц :) летает.... Кстати проц был Z84C0006... за 2 минуты работы проблем не заметил, даже проц почему-то не грелся).
то fan... поделись исходниками ПЛИС от ReSpecT128.... Очень нужно :) (dr_dmitrij[sobaka]web[to4ka]de)
А можно поподробнее?
Я делал аналогичный девайс на МК+ПЛИС. Просто на ПЛИС такое делать неоптимально.
И как часики будут сделаны в ПЛИС? Она что от батарейки будет питаться, когда комп выключен? И насколько хватит?
А мышь в только в ПЛИС по-человечески не сделать, т.к. нужно еще предусматривать настройку масштабирования и, возможно, целесообразно сделать интерполяцию координат, хотя я так не делал. Немного экспериментировал с линейной интерполяцией, но заметного улучшения не обнаружил.
Нет, батарейку на ПЛИС ставить я не собирался.... просто спек с розетки выключать не буду :v2_lol: ......шутка
Поставлю, как в ZX Multi Card - PCF8583
На ПЛИС PS/2 клава занимает, точно не помню, около 125 ячеек (только опрос, спек в клаву ничего не посылает. Да и зачем?)
Так что проблем я невижу...
На счет мыша пока ничего сказать не могу, т.к. пока не делал...
Огласите весь список клонов пожалуйста..Если только чтоб надписи на экране писать - то оно и даром не нужно..Вообще то видеопроцессор это главное - это и есть Спек, а что останется после его реализации можно уже делить между второстепенными узлами и никак не наоборот :( .
По какой схеме будешь реализовывать?Намалевал бы всёж функциональную схему, чтоб хоть шины идущие из ПЛИС представлять, а то может и смысла нет всю эту лабуду (IDE, Joystick, Covox etc.) из ПЛИС тянуть - только ножки переводить, оставить в ПЛИС только формирование сигналов управления, а данные пусть с общей шины берут. :( ножек всёж нехватает не потому, что нехватает, а потому что неправильно выбраны приоритеты их раздачи. Вон fan в 64 ноги уместил всё потому что подход правильный - второстепенное заборт!
А с масштабированием какие проблемы??? В VHDL есть все нужные математические операции. Кнопками "+" и "-" справа на клаве менять значение константы и множить ее на изменение координат мышки.
У меня по этому поводу свои задумки имеются. Рассекречу только если сам проверю на железе ;)Цитата:
Сообщение от Black_Cat
Да.... звук с ПЛИС так и так выводить надо.... это 1 нога... Covox и SounDrive смешиваются в ПЛИС,Цитата:
Сообщение от Black_Cat
к ним подмешаю BEEPер... итого через PWM 2 ноги (стерео) вместо 1.
ДЛЯ ЭТОГО МНЕ 1 НОГИ НЕ ЖАЛКО
DivIDE например отбирает ВСЕГО 5 ПИНОВ.
Зато сколько лишних корпусов и заморочек экономится!!!
Так то оно так. Только что нужно сделать чтобы, например, к ReSpecTу контроллер IDE прикрутить. Правильно! Нужен еще как минимум сам контроллер и ПАРА НОГ НА ПЛИС для соответствующих сигналов ZX(NEMO)-BUS (IORQCE например)
Ню ню.. Вон без всяких секретов лежит схема формирования на 75Hz, (при том с Gigascreen+ в придачу) см. концепция по критерию F4: Стандартизация видеовывода в ZX to VGA конверторах.
Как зачем , можно фанарями помаргать :D Типа активная активность чего то там... ;)
Мне чёто жудко интересно как именно это будет происходить .
Точно точно , нужён внедрёж :D А остальное можно выкинуть .
Они у меня под старый вариант как на блоксхеме . Я их опять ща перепахиваю (исправил один глюк , наверное есть ещё) . Когда домучию неизвестно %) (перетыкалку разрешений и цвет на точку делал на скорую руку , хотелось то же в нормальный вид привести).
Может что то конкретное интересует ?
Навсякий случий (если завтра запаздаю) - порт накручивал от балды -
-- Порт #EFF7 - Графические режимы.
PORT_EFF7[].clk=nIORQ or nWR or VA_CPU[12] or VA_CPU[3] or NOT(VA_CPU[15] and VA_CPU[14] and VA_CPU[13]);
PORT_EFF7[].clrn=nRESET;
PORT_EFF7[0].d=D[0]; -- =PORT_EFF7[0].q; bit0 - 4BIT Per Pixel OK
PORT_EFF7[1].d=D[1]; -- =PORT_EFF7[1].q; bit1 - 512x192 --
PORT_EFF7[2].d=D[2]; -- =PORT_EFF7[2].q; bit2 - disable memory above 128k --
PORT_EFF7[3].d=D[3]; -- =PORT_EFF7[3].q; bit3 - read/only cache --
PORT_EFF7[4].d=D[4]; -- =PORT_EFF7[4].q; bit4 - 256x224-\__320x200 (GIGASCREEN)OK 0-\__256x192
PORT_EFF7[5].d=D[5]; -- =PORT_EFF7[5].q; bit5 - 256x256-/ (SB)OK 0-/
PORT_EFF7[6].d=D[6]; -- =PORT_EFF7[6].q; bit6 - TURBO 7MHz (384x304)OK
PORT_EFF7[7].d=D[7]; -- =PORT_EFF7[7].q; bit7 - CMOS --
Придатков от +3 не внедрял .
Цвет на току вклинивал как по описанию (у меня) , в сырке выглядит страшновато , на блоксхеме веселей .
Смена разрешений - просто смена констант начала и конца бордюров , гашений , синхр . Вот типа пример -
-- SYNC --
-- HORIZONTAL SYNC --
CASE PORT_EFF7[5..4].q IS -- Выбираем позицию синхры по горизонтали bit5 bit4
WHEN 0 => H_SYNC_START[]=320; H_SYNC_END[]=353; -- 0 0 - 192
WHEN 1 => H_SYNC_START[]=320; H_SYNC_END[]=353; -- 0 1 - 224
WHEN 2 => H_SYNC_START[]=320; H_SYNC_END[]=353; -- 1 0 - 256
WHEN 3 => H_SYNC_START[]=352; H_SYNC_END[]=385; -- 1 1 - 320x200 ONLY!!!
END CASE ;
.......
.......
.......
-- VERTICAL SYNC -- Длительность - одна строка (кто хочет больше - флаг в руки).
CASE PORT_EFF7[5..4].q IS -- bit5 bit4 | Выбираем позицию синхры по вертикали.
WHEN 0 => V_SYNC_START[]=249; V_SYNC_END[]=249+1; -- 0 0 - 192
WHEN 1 => V_SYNC_START[]=265; V_SYNC_END[]=265+1; -- 0 1 - 224
WHEN 2 => V_SYNC_START[]=281; V_SYNC_END[]=281+1; -- 1 0 - 256
WHEN 3 => V_SYNC_START[]=249; V_SYNC_END[]=249+1; -- 1 1 - 320x200 ONLY!!! Остальные разрешени отрубаются .
END CASE ;
Добавлено через 19 минут
Да я надеялся на активное продвижение супорта карточек SD/MMC , но у нас они чёто не очень популярны . Впринципе девайс для загрузки дампов меня вполне устраивает , да даже турбо загрузка ленточных файлов то же вполне ничего .
На реале проверено????
Я чтото подобное планирую
Да и вообще - теория теорией, а где спек этот????
Ну который на концепциях твоих построен (хоть десятая доля того что ты придумал :D)???
Кстати..... размести это все в плис с 64 I/O ногами :v2_lol:
Или плата получится как 4 АТМа.....
А скорее всего этого спека..... ну в общем никогда никому в реале не видеть...
Добавлено через 3 минуты
Конечно! Как безвайтовость сделана (в ReSpecT 128K)??? :) please....
Думал Serial EEPROM какой нибудь....
А еще проще в часиках (PCF8583), там 240 байт.... Хватит с лихвой.
Это принцип. При том на примере преобразователя ZX to VGA, но по этому же принципу можно и формирование видеовыхода в видеопроцессоре сделать. Для видеопроцессора всё проще - преобразования не нужно - бери сразу из видеопамяти, и только последовательность кадров формируй по указанному алгоритму:
- для стандартного режима -> 1й кадр, усреднённый кадр, 2й кадр;
- для Gigascreen+ -> усреднённый кадр, усреднённый кадр, усреднённый кадр.
Это не занимает ни одной лишней ноги и может быть реализовано, если есть свободные ячейки даже в матрице fan'a.Цитата:
Кстати..... размести это все в плис с 64 I/O ногами :v2_lol:
Или плата получится как 4 АТМа.....
Плату доделаю и попробую...
Понимаешь, я хочу чтобы плата получилась ну вроде как универсальной.
Т.е. менять что-либо в железе чтобы минимум.
А все самое интересное будет в ПЛИС!
Вот потом можно пробовать что душе угодно.
Поэтому и вешаю все на одну плату...
Хотя план действий уже почти готов ;)
Скоро отпуск! Это значит что первый экземпляр уже не за горами!
Ну и вернусь к своему вопросу о разделении буферами проца и памяти...
Реально ли ждать от этого решения работоспособности????
Добавлено через 7 минут
Насколько мне известно, у fanа CPLD где-то на 95% заполнена.
И арифметика типа этой: RGBI=(R1+R2)/2; (G1+G2)/2; (B1+B2)/2; (I1+I2)/2
потребует как минимум еще несколько ног!
Потому что придется палитру глубже, чем 4 бита делать.
По первому взгляду на размещение буферов - оно мягко говоря странное.. Теоретически можно заставить работать через задницу всё что угодно, но нужно ли это? Не вижу обоснованности такого расположения..Я когда писал, знал о чём говорю :) . Суммирование можно сделать не параметрическое, а временное, например с частотой 14 или 28MHz, тогда дополнительных ног не понадобится. Но всёж считаю что на видеовыход надо оставить побольше ног, хотя бы на будуЮщее :) .Цитата:
И арифметика типа этой: RGBI=(R1+R2)/2; (G1+G2)/2; (B1+B2)/2; (I1+I2)/2
потребует как минимум еще несколько ног!
Потому что придется палитру глубже, чем 4 бита делать.
Мой спек, ну тот что на CPLD от Xilinx, повторяет твой процентов так на 99;)Цитата:
Сообщение от fan
Поэтому, если время позволит, надо будет тоже мегу16 прикрутить! Авось чем помочь смогу.
Но основное внимание пока сосредоточено на новой плате!
Добавлено через 3 минуты
Так чем оно так сильно отличается от того, что у fanа??? Просто буфера сдвинуты ближе к процу.
Мне нужен доступ к ROM без участия проца :v2_blush:...
Добавлено через 6 минут
Вот и я о том-же! Хоть BGA с 400 шариками дай... когда-нибудь мало будет :v2_biggr:
Тоды прицепи ПЗУ знакогенератора и/или ОЗУ ещё под это отведи, тоды и текстовый режим можно реализовать на раз.. ..боже, что я говорю.. :) Но лучше всёж знакогенератор на старте грузить в ОЗУ, (ПЗУ тормозное для видеопроцессора) ну не 32к видео ОЗУ поставишь, а 64к - какая разница.. на 1 специальную ножку больше..
Кстати, этот текстовый режим можно будет использовать в работе монитора-конфигуратора при старте компьютера, т.е. ещё до старта Спековского ПЗУ. Заодно и текстовый режим в 80 колонок автоматом прикручивается :v2_devil:.
Безвейтовость ??? Да там одна сплошная вейтовость %)
С.м. диграмму там где про цвет на точку (я её ща малость подправил чтоб было видно как в респекте фурычит). Если проц ломится в VRAM во время работы ВК то его клок отрубается (на бордюре не отрубается). Зато в RAM всегда летает как не разгоняй .
Религиозные убеждения убеждают что нужно юзать статику с батареей , или флешатину фурычащую как статика (не помню как зовётся).
Писать в часы не одабрям (необоснованные испуги пугают отсутствием оных часов в гредущем).
Как уже сказал - порт накручивал от балды .
И всеравно считаю что так называемая совместимость - лесом... (ниже объясню). Ибо раскладка порта EFF7 менялась раза три (если не больше), про другие порты и говорить страшно (особенно мозговые).
384x304 жуть кошмарная которая использует страныцы не имеющие отношение не то что к видео страницам , но даже к тормозной видео линейке (если есть такой клон). А у меня чисто физачески только видео страницы юзаются .
В скорпионе есть режимы от 3,5 до 21мгц ?
Не поверишь , но проблемма решается простым добавлением SETUP в прогу . Да даже в дёмках где есть музло под ковокс , парой дают почеловечьи выбрать свой порт .
Сделать тупоё вписывание номера порта(портов) и бита(битов) , ну ещё указать если нужно по каким битам порт дешифруется , для программёра делающего серьёзные вещи - как два байта переслать .
Ну на худой конец можно оснастить прогу какимнить бинарником в котором дедовским способом будут вписываться номера портов и биты .
И кстати , ALL . Восемь бит , это не восемь устройств/режимов , а немного побольше ;) К чему я это ??? Наверное к сетатапу :D
Так не надо лес-то дальше рассаживать, он и так уже большой и дремучий.
Интересно, а какая польза от 256x256? 384x304 может и жуть, но появился он от необходимости иметь приемлемый текстовый экран.Цитата:
384x304 жуть кошмарная которая использует страныцы не имеющие отношение не то что к видео страницам , но даже к тормозной видео линейке (если есть такой клон). А у меня чисто физачески только видео страницы юзаются .
Там всего два режима: 3.5 и 7. А у тебя разве нет? Бит-то один...Цитата:
В скорпионе есть режимы от 3,5 до 21мгц ?
Поверю, только сие некомфортно для пользователя.Цитата:
Не поверишь , но проблемма решается простым добавлением SETUP в прогу . Да даже в дёмках где есть музло под ковокс , парой дают почеловечьи выбрать свой порт .
Или придумать некий BIOS, который это делает, и найти куда его запихнуть в ПЗУ. Глядишь и для P1024 поддержка появится. У Скорпиона такое уже было, только RST 8 для этой цели штука неудобная.Цитата:
Ну на худой конец можно оснастить прогу какимнить бинарником в котором дедовским способом будут вписываться номера портов и биты .
Вот я, например, планировал проблему совместимости
с существующими клонами решить следущим образом:
Никаких портов для выбора конфигурации использоваться не будет!
Изменить конфигурацию можно будет либо в SETUP, либо online через клаву!
Выбрал нужную конфигурацию - она сохранилась например в SerialFLASH.
ПЛИС читает инфу оттуда и рулит портами как надо.
И соответствующие банки с различными прошивками в ПЗУ подключает.
С точки зрения совместимости с уже существующим софтом проблем быть недолжно,
т.к. для программ это абсолютно прозрачный процесс.
Добавлено через 5 минут
А я думал вообще без тормозов :o
Просто пин с WAIT на ПЛИС не нашел! Как я понял тормоз включается отрубанием CLOCK???
Может и мне так сделать??? Ногу для WAIT сэкономить мона!
А вообще охота совсем без тормозов :v2_walkm:
Это четырёх битные разрешения , для портирования графики с других консолей (чтоб "ценные" куски не отрезать). Как однобитные (пока) не используются .
С порта идёт восемь , что несколько развязывает руки .
Не понимаю этого прикола .
Один раз выбрать и сохранить "некомфортно" ? :v2_eek:
А выбирать управление для игры то же "некомфортно" ?
Я имел ввиду бинарник с накрутками для проги (если кому лень писать менешку для сетупа).
А такой подход с BIOS( = лес широкий и ветвистуй в одном пучке :D ) только развратит программистов , они не только сетапы не будут приделывать , но и писать под такую извраную консоль (существующую в BIOS) , что ни на каком другом реале не запустися . (шутка юмора)
================================================== =======
Собсно чего сейчайс творится ? - Есть туева хуча портов с попсовой дешифрацией , не требующей никаких немо-бас . То что и десяти процентов этого лома не используется подавляющим большинством юзверов - к годалке не ходи . Но как только кто-то что-то хочет захавать сразу протесты . И спрашивается нафига мне резервировать порты под девайсы которые никогда у меня не будут торчать , если эти порты можно пустить на что угодно .
Как пример - есть некий видео чип (или не важно что , хоть ящик шаговиков), который претендует на роль стандартного девайса , вместо того чтоб устраивать консилиум по выбору портов , нужно лишь "заставить" программёров прикрутить сэтап к проге . Я уже не говорю про выбор раскладки для мозговых портов , уж с десяток лет очевидно что нужно прикручивать сетуп ко всему что юзает больше 128к мозгов .
Добавлено через 23 минуты
Именно им .
Именно поэтому оно так и сделано :)
Эээ , думаю при разгоне всёравно придётся притормаживать , я эту проблемму решил на корню :D
Ну по крайней мере стандартный режим на 3.5 МГц безвайтовым обязательно сделаю :v2_cool:
Добавлено через 18 часов 44 минуты
Вчера ради интереса повыпаивал ВСЕ ДО ЕДИНОГО блокировочные
конденсаторысо своего спека (того, что на CPLD XC95144XL).
Он запустился нормально и я не обнаружил никаких проблем со
стабильностю. Все дорожки 0.4мм и питание идет не со стороны YA и
проца а наоборот - с другого конца.
Может быть он остался работоспособным потому, что плата маленьких
размеров (160мм х 100мм, AY проводами подпаян)????
-----------------------------------------------------------------------
Долго думал как ноги на ПЛИС сэкономитъ.
Может сделать видео на отдельной ПЛИС (XC9572)???
Тогда можно будет и глубину цвета до 4 бит на цвет увеличить! будет 4096 цветов.
Только вот как между собой нормально соеденить процессорную часть с видео???
Я имею в виду передачу каких сигналов (проц <=> видео, кроме шин А и D)
надо огранизовать и как ??? Думал сделать как в SpeccyBob
т.е. передавать в видеоадаптер 3 сигнала:
1. Увеличить значение экранного счетчика на 1
2. Читать байт пикселов
3. Читать байт аттрибутов
Из видео в процессор только 1 сигнал: INT
Может у кого нибудь есть другие идеи на этот счет???
ИМХО и частоты не великие и архитектура простая . У меня ваще такое пугало как дуэт48 (размерами больше пентагона и с убого разведённым питанием) без кандюков работало :D Только на видео сигнале дофига всякой ряби было (как на фирменном спеке).
Не одабрям , т.к. их цена в среднем 10 гринов (т.е. это эначит что в некоторых городах и больше), а это не есть гуд (ALL не любит таких подоражаний).
И я сомневаюсь что в XC9572 влезит необходимая куча регистров + мелоч , ибо - [ 3 канала * 4бит(на канал) * 16оттенков = мозг в 192 бит ] .
А вот в основной матрице такая фигня запросто уместится .
Кстати думаю стоит выдрать накрутчик из сырков V9938 (всё есть у меня на сайте в самом низу страницы). Принцип действия простой - выбираем девайс , швыряем ему по два байта на один цвет в палитре (RGB) , после этого двайс сам переключается на приём следующей пары байт и т.д. пока все 16 цветов не загрузятся .
По два байта нужно швырять потому что - в первом байте биты красного и синего - 0 R2 R1 R0 0 B2 B1 B0 , во втором только зелёного - 0 0 0 0 0 G2 G1 G0 .
Во блин , там 3бита на канал (я чёто думал что четыре , ещё удивлялся чего это в TurboGrafX16 по 3 сделали :v2_lol: ) .
Короче можно и три сделать , хотя палитра получается страшноватая (но полюбому лучше чем при 2бита на канал).
Но зато существует крутейшая конвертилка какртинок под такую палитру !
http://www5d.biglobe.ne.jp/~hra/soft...omsx/index.htm
Она кстати супортит режим похожий на Hardware Multicolor (Атрибут на байт (два цвета на каждые восемь точек по горизонтали)) , только с произвольной палитрой , картинки получаются просто супер .
Останется лишь сами байты/биты перетосавать под спековый экран .
З.Ы. В TurboGrafX16 юзается несколько палитр , но там свой резон - каждый тайл может захавать любую палитру . В спеке впринципе можно почикать экран на области действия каждой палитры , тоже не хило будет .
Если провода джойстика торчат из матрицы , то можно выкинуть порт кемпстона наружу (с переключением между джоями конечно будет облом).
И насколько я понял - если раньше спокойно умещалось два бита на цветовой канал , то остаётся освободить всего три пина (для трёх бит на канал),т.е. выкинуть какойнить COM порт ;) .
З.Ы. Делай сайт !!! И накидай там всяких описаний чего и как будет фурычит , а так же блок схемы того что будет в матрице и самого компа .
Очень даже хорошее предложение :D
Со воими рекомендациями и соображениями идем СЮДА
Прием и расшифровка последовательности скан-кодов + расшифровка кодов нажатия/отжатия + формирование матрицы ZX-клавиш + обработка дополнительных клавиш и преобразование их в параллельно нажатые ZX-клавиши + интерфейс со Спектрумом и все 125 ячеек ??? НЕ ВЕРЮ!
У меня код на чистом асме для КР1878ВЕ1, который делает все описанное, занимает около 700 байтов + буфер ОЗУ ~32 байта.
Если речь шла о Verilog-коде ps2, который лежит на opencores, то, боюсь, на Спектруме от него без серьезной переработки толку мало будет.