Так, товарищи, кто в курсе насчет следующего вопроса касательно Денди.
У приставки стандартно есть "окно" для подключения 8 Кб внешней ОЗУ картриджа и "окно" 32 Кб для подключения внешнего ПЗУ картриджа.
Оба "окна" могут путем внешней дешифрации на картридже "выбираться" из объема памяти картриджа.
ПЗУ ака S-ROM до 2 мегабит - 256 Кб, 8 окон по 32 Кб, это точно известно. Слышал про картридж в 4 мегабита - 512 Кб. Но есть они реально или нет - хз.
Можно-ли в "окно" S-ROM в 32 Кб подключать ОЗУ и чтобы приставка в него "писала"? Или её БИОС не даст это сделать и придется внешнее ОЗУ подключать только кусочкам по 8 кб?
Потому как если можно - внешнюю память подключать туда блоками по 16-32 Кб, а
на область "ОЗУ картриджа" в 8 Кб - посадить статику на 8 кб которая туда подключена постоянно и используется ОС для своих целей, типа таблицы адресации внешних страниц ОЗУ.
Можно-ли адресовать более 8 банков по 32 Кб используя свой дешифратор и менеджер памяти который может с ним работать?
Например 16-32 банка по 32 Кб чтобы адресовать 512-1024 Кб?
Добавлено через 1 час 39 минут
Так, "он-лайн" с одним человеком.
Он дал следущие советы.
1) Плату делать "универсальную", в которой может быть 32 микросхемы как организации 32Кх8, так и 64Кх8. По его словам по выводам они совместимы.
В первом случае при 32 микросхемах 32Кх8, например UM61256, будет 1024 Кб.
А если поставить 32 микросхемы 64Кх8, например UM61512, будет 2048 Кб.
Конечно микросхем памяти может быть от 2 до 32 штук, но конечно четное число (2-4-8-16-32) чтобы облегчить работу менеджера памяти.
Ну и конечно микросхемы должны быть одного типа, 32Кх8 или 64Кх8. И для легкой смены - в "длинных" узких DIP32 панельках.
Установка неполного числа микросхем в модуль вполне допускается и никаких мер типа шунтирования не требуется. Но дешифратор должен быть распаян полностью.
2) Поскольку максимум памяти планируется 2048 Кб, а для управления "банками" один полностью дешифруемый 8-бит порт то было выбрано 256 банок по числу состояний порта. 2048 / 256 = 8 Кб. Да и стандартная "дендяшная" банка памяти - 8 Кб судя по документации.
Итого менеджер памяти должен будет уметь работать с 256 банками по 8 Кб оперативной памяти в максимуме через один 8-битный порт.
Но надо учитывать что будут еще и банки ПЗУ... Как-бы не пришлось выделять под их дешифрацию еще один порт...
И конечно менеджер памяти должен уметь при запуске просканировать все порты дешифрации памяти на наличие банок.
И все сказанное приводит к ому что надо обсудить будущую ОС которая всем этим будет рулить.
Потому как самым простым для реализации получается следующее:
"Чистый Денди-режим" - вся переферия шинная отключена, втыкается картридж и устройство пашет как обычная Денди.
+
"Режим компа с ОС" - переферия подключена, начальный загрузчики грузится из ПЗУ и грузит из ПЗУ/с диска ОС которая всем рулит, но совершенно не совместима с обычными денди-прогами как в виде 2катриджей" в елке, так и в вид РОМ-ов на накопителях.
На первом этапе надо добиться хотябы этого.
И наконец самое сложное, возможно не реализуемое без "своего Майкрософта" силами горстки энтузиастов: (Хотя может удастся заинтересовать китайцев что Денди до сих пор клепают...)
"ОС совместимая с Денди" - когда ОС после загрузки умеет грузить и корректно исполнять как проги с картриджей в елке, так РОМ-мы с накопителей, так и свое ПО адаптированное под кучу памяти и всякую переферию.
И первым шагом к этому наверное стало-бы создание менеджера памяти который бы рулил ей через стандартные порты памяти картриджей., но с полной дешифрацией. Или если такое невозможно мог рулить банками в обоих вариантах как через "свой" порт так и через стандартные.
Вот такие вот мысли...
Последний раз редактировалось falanger; 29.05.2008 в 00:39. Причина: Добавлено сообщение
Прочитав предыдущее, задумался - а нафига? Теперь по порядку.
...думаю, что мне пора выкладывать наработанное по этой теме. Подождете недельку?
> Или её БИОС не даст это сделать
нет у денди биоса. В картридже может стоять всё, что угодно, и писаться/читаться по любым адресам. Исключение - "верхние" 16К, которые используются как загрузочные и указывают на адреса прерываний (последние 6 ячеек). Хотя и тут с первыми 8 кБ можно поиграться...
Мысль о разграничении "стандартного" режима и "нового" - правильная. Вся конфигурация машины должна меняться исключительно сменой картриджа. Или, если "елка" запаивается намертво, сигналом 0/1 на одной из средних ног, которая обычно считается "землей" (под рукой нет схемы, поэтому уточню позже). Я говорил об этом в одной из тем, когда занимался восстановлением приставки со встроенным ПЗУ. Пошерстите поиск.
ОЗУ на 512К есть в свободной продаже, покупаются без проблем. Я использую K6X4008C1F. ИМХО более памяти ставить не следует, ибо любую программу можно сотворить как оверлейную, т.е. подгружать необходимые блоки по мере их надобности с внешнего диска/карточки.
Буферизация - 100%, особенно с учетом, что в основном в использовании есть только КМОПовские одночиповки. При использовании многочиповой приставки нагрузочная способность разъема расширения чуток повыше.
Использование CF. ИМХО не стоит. Много проводов. SD/MMC проще в подключении и в программировании. И дешевле.
Дешифрация ПЗУ обязательно должна быть отдельно от ОЗУ. Плюс третий дешифратор на видеоОЗУ.
Заливка РОМов - глупость. Где найти эмуляторы большинства необходимых мапперов? Согласен, частично это уже сделано, но зачем это делать вообще? Ведь мы решили, что должно быть два независимых режима. Если хотим поиграться - ставим картридж. К сожалению, многие игры живьем нам уже не достать, но для этого есть эмули на РС. Попробуйте сэмулируйте ММС4 на базе 6502 - это какие тормоза мы получим? Забудем об этом.
"Стандартизация портов" должна быть только для "нового" режима. Привязываться к портам на картриджах (которые используют порты как им вздумется) бесмысленно. Для этого следует использовать окно 5000-5FFF, которое. в принципе. и предназначено для портов мапперов, менеджеров памяти и прочих устройств ввода/вывода
...а вообще рад, что эта идея потихоньку находит свое продолжение. В прицепе - начало еще не написанной статьи, которую и планирую предложить в качестве основы...
Последний раз редактировалось rw6hrm; 29.05.2008 в 11:21.
Аффтар жжёд И какой тогда ваще смысл заморачиваться...
Нужно обязательно делать конфигурируемый аппаратный маппер , и написать загрузчик/накрутчик_маппера хоть под какойнить носитель . Кстати - не нужно городить никаких контроллеров для девайсов умеющих и так работать в восьмибитном режимя (чисто пример - http://www.worldofspectrum.org/zxplu...ce.html#simple).
Спек128 - испанская выдумка, навязанная Сэру Клайву. © Shaos
REAL HARDWARE MUST LIVE ! - http://SBLive.narod.ru/ZX-Spectrum/
Тогда так, раз тема развивается для начал начал надо определить следующие вопросы:
1) БИОС начальной загрузки на 8Кх8 (2764 или аналогичной) которая содержит переход по Ресет, прерывания и прочие. для начальной инициализации системы.
Причем при РЕСЕТе, должна в адреса дешифратором "впечатыватся" ПЗУ, а после инициализации туда неплохо-бы втыкать 8К банк ОЗУ.
Так-же БИОС должен будет инициализировать память видео-процессора загрузив туда знакогенератор и выставив страницы памяти. Видеопамять делать только ОЗУ с внешней загрузкой знакогенераторов и прочего.
1) Адрес 8-битного порта дешифрации ОЗУ основного процессора 6502. До 2045 кб, 256 банок по 8 кб.
2) Адрес 8-битного порта дешифрации ПЗУ основного процессора 6502. До 2048 Кб, 256 банок по 8 кб.
3) Адрес 8-битного порта дешифрации видео-ОЗУ. 64 Кб на 2 микросхемах 32Кх8 или 1 микросхеме 64Кх8, 4 банки по 16 кб с внешней дешифрацией. Тогда будет 4 экрана.
Тут надо определиться как точно делать дешифрацию, по шине видеопроцессора или часть на его шине 0-16К, а старшие адреса 16К-64К на порте в памяти. Ну или можно забить и сделать 1 экран на 16К но это неспортивно.
Ну и если делаем "полностью свое" то при написании ПО надо привязываться только к тем точкам входа и областям памяти что у Денди прошиты на уровне схемотехники. А остальные порты ввода/вывода и т.д. - размещать так как удобней для программирования и работы ОС.
Статик-ОЗУ типа 32Кх8 и 64Кх8 с кеша Р1 я хочу использовать потому что они достаются на халяву и как правило уже есть, ничего нового закупать не надо нигде.
Аналогично флэшкам 128Кх8 типа 29EE010 которые тоже обычно уже есть.
И по моей просьбе друг будет разводить платы именно под эти микросхемы.
И немо-IDE + CF нравятся своей простотой, легкой повторяемостью и отсутствием сложных деталей типа AVR-ов. Которые например у меня нада заказывать и ждать месяц-два пока привезут...
Да, поскольку есть денди-эмуляторы, то их можно в принципе использовать для отладки ПО перед прошивкой в ПЗУ.
И "елка" никуда не припаивается - она как картридж вставляется в слот, на платке все буфера, а от неё идет два 40-жильных кабеля ИДЕ до "корзины" стоящей позади Денди с другими слотами расширения аналогичными слоту картриджа один в один, а может с Иса-8бит или немо-бус. Этот вопрос кстати тоже надо обдумать...
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Последний раз редактировалось fan; 29.05.2008 в 16:19.
Спек128 - испанская выдумка, навязанная Сэру Клайву. © Shaos
REAL HARDWARE MUST LIVE ! - http://SBLive.narod.ru/ZX-Spectrum/
Читаю мануал на Денди от Мигеры. "Как все замудрено" (с)
Особено меня "порадовало" что АД16 центрального процессора 6502 не выведено на разъем картриджа. И как быть тогда? Как "эмулировать" АД16?
Далее, давайте опять подумаем о памяти, как обычной так и видео.
Путем вдумчивого изучения мануала и медитации на раскладку памяти понял следующее. Минимальная страница памяти должна быть 4 Кб.
Потому что основного процессора:
Expansion ROM - 4 Кб, SRAM(WRAM) - 8 Кб (2 х 4 Кб), PRG-ROM (1) - 16 Кб (4 х 4 Кб), PRG-ROM (0) - 16 Кб (4 х 4 Кб).
А у видео процессора:
CHR-ROM (знакогенератор 0) - 4 Кб, CHR-ROM (знакогенератор 1) - 4 Кб. При максимально адресуемой самим видео процессором в 16 Кб.
Да и после здравого размышления я согласен с автором - более 512-1024К самодельному компу не надо.
1024 К / 256 состояний 8-разрядного порта = страница в 4 Кб.
Поскольку сразу делаем полную и нормальную дешифрацию страниц памяти - дешифратор на все 1024К.
Однако чтобы упростить и уменьшить плату, а так-же учитывая что она ориентирована на широко доступные статик-ОЗУ КЭШ с Р1 организации 32Кх8 и 64Кх8. Итого 1024К / 64К = 16 корпусов статик-ОЗУ.
При наличии 16 штук 64Кх8 - имеем 1024К. А если есть всего 16 штук 32Кх8 - имеем 512К.
Предлагаю такую схему для всех 3 портов дешифрации дополнительной памяти.
Как-то:
8-бит порт дешифрации ОЗУ: - 256 страниц по 4 Кб, максимум 1024К.
8-бит порт дешифрации видео-ОЗУ: - 256 страниц по 4 Кб, максимум 1024К.
8-бит порт дешифрации ПЗУ/FLASH: - 256 страниц по 4 Кб, максимум 1024К.
Менеджер памяти должен уметь все их тестировать на наличие при запуске.
Да, обмен с видео-ОЗУ оставить через ПДП и порты видео процессора. И не соединять ШД видео-ОЗУ и с ШД ОЗУ. И ША тоже, младшие адреса с видео-процессора, а старшие с дешифратора порта управления видео-ОЗУ.
Кстати, что плату обычного ОЗУ что плату видео-ОЗУ делать одинаковыми под 16 корпусов.
А плату ПЗУ/FLASH делать под стандартные 128Кх8 29ЕЕ010 со страничным дешифратором. Потому как у мня конечно есть УФ-стиралка для ПЗУ, но работать с флешками приятней и проще.проще.
И еще, я придерживаюсь мнения что нашему компу нужен шинный FLASH-диск, именно на котором "живет" ОС и наиболее важное ПО. Привет из мира промышленных контроллеров. ;-)
Добавлено через 16 часов 21 минуту
Да, всем читать прикрепленные файлы "мануалов" по Денди из вот этой темы:
http://zx.pk.ru/showthread.php?t=2846&page=3&pp=10
Спасибо за ссылку товарищу fan-у.
Итого, для начала "опытов" пока нам нам надо пока 2 вещи:
1) Мануал на видеоконтроллер 6538. Оттуда возьмем схему подключения видео-ОЗУ 16 Кб Показанный на схеме регистр в Денди уже есть и надо к соответствующим разъемам картриджа подключить толь статик-ОЗУ 32Кх8. И пофига что пока нет внешней дешифрации и всего 1 страница на 16К. Её хватит чтобы научится писать в видео-ОЗУ через ПДП и регистры процессора.
2) Надо взять мануал на схему "картриджа ГИТС" и оставить от него только ПЗУ программ, вместо ПЗУ видео мы подключаем статику.
В результате у нас будет картридж с ПЗУ программ и видео-ОЗУ. Для начала освоения кодинга под приставку этого уже достаточно.
Более сложные схемы типа большого многостраничного видео-ОЗУ и т.д. я предлагаю делать только когда будет освоено описанное выше. Хотябы на уровне загрузки в видео-ОЗУ таблицы букво-цифрового знакогенератора и вывода на экран "Видео-ОЗУ загружено".
Добавлено через 16 часов 49 минут
Схему "экспериментального картриджа" с видео-ОЗУ 16 Кб на статике 32Кх8 и ПЗУ програм нарисую и выложу вечером.
Последний раз редактировалось falanger; 30.05.2008 в 14:39. Причина: Добавлено сообщение
А вот вопрос на засыпку, а схему от этих чудо приставок где мы можно раздобыть.
Глянь тут http://zx.pk.ru/showthread.php?t=6479 не помню на какой странице rw6hrm выкладывал ряд монускриптов среди которых есть nes.djvu в котором есть так же и симпатичного вида схемка .
А так же тут - http://dendy.migera.ru/
Буржуйский флагман - http://nesdev.parodius.com/
Добавлено через 3 минуты
Вот ещё схемки мапперов (в сырках) http://ameba.lpt.fi/~hataarto/nes/ , только их можно разглядеть в Xilinx ISE %)
Последний раз редактировалось fan; 30.05.2008 в 20:23. Причина: Добавлено сообщение
Спек128 - испанская выдумка, навязанная Сэру Клайву. © Shaos
REAL HARDWARE MUST LIVE ! - http://SBLive.narod.ru/ZX-Spectrum/
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)