John Zaicev
2012-08-06 19:45:49 UTC
[√] Привет _All_ !
Доведем "Денди" до ума!
Что такое "Денди" - знают, как мне кажется, многие. И практически все
относятся к этой приставке, как к игрушке, раз она игровая ;) . Да,
действительно, разработчик Nintendo Entertainment System (как по-нормальному
зовется прародитель "Денди", так и позиционировал приставку - как игровую.
Выпуск в продажу клавиатуры с выходом подключения магнитофона в качестве
накопителя формально переводил приставку в стан домашних компьютеров, чего
разработчик очень не желал. Тем не менее, начиная с середины 90-х годов,
благодаря стараниям братьев-китайцев, на рынке стали появляться клавиатурные
вариации NES, под которые был писан специальный софт (Бейсик, текстовые
редакторы, в том числе и российских авторов, записные книжки), позволяющие
использовать приставку как недоразвитый, но компьютер, вплоть до распечатки
текстов (Сюбор). Вместо начавших почивать в бозе магнитофонов, для хранения
результатов работы использовалась твердая память на аналогах микросхемы 537РУ10
и батарейкой резервного питания. Стоит отметить, что подобный вариант до сих
пор используется в записных книжках/переводчиках типа "Ассистент", и двух
килобайт "энергонезависимой" памяти для многих целей вполне хватает.
Почему "Денди" так "не повезло" в России? Для начала хватило, что
позиционировали приставку исключительно как игровую. Второе -
нераспостраненность процессора 6502, который положен в основу приставки. Позывы
советского производства под названием "Агат" и изредка ввозимые в Союз
"Коммодоры" погоды не делали, весь упор был сделан на аналог 8080 - 580ВМ80. А
позже появился "Спектрум" и Z80 стал доминировать как на рынке компьютеров, так
и в отношении к процессорам программистов.
За бугром же отношение к 6502 до сих пор теплое, под него пишутся программы и
делаются "железные" разработки. Ассемблер 6502 достаточно простой, при желании
можно научиться писать для него программы "на коленке" можно за неделю.
Hесмотря на некоторые "извраты" и малую систему команд (по сравнению с тем же
Z80), процессор 6502 может дать фору многим другим процессорам, используя все
свои 13 способов адресации к памяти (у того же Z80 всего четыре) и малое число
тактов, требуемых для выполнения своих инструкций. Поэтому при тактовой частоте
в 1,7 МГц скорость работы программ на 6502 равна скорости работы на Z80 с
тактовой частотой 4 МГц.
Вторым достоинством "Денди" является наличие дополнительного видеопроцессора,
берущего на себя основную работу по выводу результатов работы на дисплей. По
сути NES задала стандарт для всех игровых приставок - кроме основного
процессора нужны и другие, помогающие ему в процедурах ввода/вывода информации.
Результат - возросшая скорость работы всего агрегата.
Развею одно расхожее мнение - "на "Денди" неплохая графика". Hет у "Денди"
графики вообще! Есть псевдографика, то, что мы видим на экране - это не более
чем загружаемые знакогенераторы в виде кусочков рисунков, из которых
составляются спрайты и тайлы, видимые нами на экране. Это очень похоже на
первые писишные машины, когда все менюшки на них рисовали псевдографикой.
Применение отдельного видеопроцессора дало возможность быстро заменять
знакогенератор или переключаться между загруженными, а также переключаться
между двумя экранными областями, что создает иллюзию динамического
"графического" экрана. И это при том, что размер видеоОЗУ в "Денди" в
стандартном варианте составляет всего 2 килобайта на два экрана!
Ладно, хватит дифирамбов, с более-менее полным описанием "Денди" вы можете
ознакомиться в (1, описание мигеры), и понять, что на самом деле всё очень
просто, хотя кое-где и своеобразно. Если вы это уже прочитали, то давайте для
более полного понятия далееследующего, будем считать "Денди" не игровой
приставкой, а контроллером с полностью открытой архитектурой, как в "железном",
так и в программном смыслах. С программной открытостью, думаю, понятно - сам
контроллер не имеет своей программной памяти, она вся находится исключительно в
картридже. С железной открытостью - цели и задачи работы контроллера могут
различаться в зависимости от того, что упихано в картридж. Поэтому, ставя
определенные задачи, мы можем из одного контроллера ("Денди", в данном случае)
иметь несколько устройств, меняющих свою конфигурацию в зависимости от текущих
требований, используя простую замену картриджа.
Что же предлагается сделать в этом проекте? Ответ прост - довести всем
знакомую игровую приставку до уровня персонального компьютера. Последнее,
конечно, сказано слишком громко, этот уровень будет где-то на середине 90-х
годов прошлого века, но, тем не менее - для известной всем приставки это будет
шаг до более высокого уровня. Да, сборка подобного устройства и писание
программ под него - это удел увлеченных людей. Hо, учитывая большой парк старых
устройств, а также имеющихся в продаже новых - смысл есть. И не надо ставить
вопрос "а нафига всё это, когда есть Пень, да еще и двухядерный" - не для таких
людей этот проект. Есть большое множество применений, где "Денди" может быть
нам полезен.
Итак, что входит в этот проект? Для начала ознакомимся с его основными
"железными" данными. В результате недолгой работы и небольших понесенных
затрат, пользователь получает компьютер следующей конфигурации:
- ОЗУ процессора: 8 + 512 Кбайт, из которых 8 килобайт hard-wired, 512 килобайт
переключаемые, страницами по 16 Кбайт;
- ОЗУ видеопроцессора: 8 (32) Кбайт для загрузки шрифтов;
- ПЗУ: 16 Кбайт;
- Встроенные последовательный и параллельные порты;
- Возможность сохранения и загрузки программ с флеш-карточки.
Пройдемся по пунктам последовательно. С ОЗУ, я думаю, всё понятно. Много ОЗУ
(для аппарата такого класса) не бывает. Подобные размерности прекрасно
согласуются с заранее заданной архитектурой контроллера, позволяют иметь что-то
типа ядра программы с подключаемыми оверлеями в страничной области. Более того,
большинство игровых картриджей используют именно такой же принцип. Размер ПЗУ
также согласуется с заданной контроллером архитектурой, но имеется возможность
и его сделать страничным. Однако, исходя из принципа разумной достаточности,
было решено в ПЗУ оставить загрузчик и программы обслуживания компьютера, а
требуемые для работы программы подгружать извне.
Порты. Последовательный порт нам может понадобится для работы с принтером,
магнитофоном, локальной сетью, модемом, другим компьютером. Любители-юниксоиды
при использовании переходника СОМ-LAN могут оценить возможность поработать в
сетке в консоли. Параллельный порт - для работы с принтером, магнитофоном,
карт-ридером и прочими вещами. Разумеется, что если какие-то функции не нужны,
порт можно не ставить.
Внешнее устройство хранения данных. Сразу было решено отказаться от
флоппи-дисков. И емкость уже не та, и надежность хранения данных страдает, и
проводов много. Поэтому было обращено внимание на флеш-карты CF и SD/MMC. Hо и
тут надо выбирать: первые легко программировать, но сложный "железный"
интерфейс, вторые просты по железу, но сложны в программировании: Скорее всего
лучше будут вторые, как наиболее распространенные. Через использование таких
карточек возможно получить совместимость с РС как на уровне интерфейса, так и
на уровне текстовых файлов. Тем не менее было решено оставить неким атавизмом
возможность работы с кассетными магнитофонами.
В каком виде будет доработана оригинальная приставка? Вариантов предлагается
два, для приставок, имеющих встроенную клавиатуру и для простых игровых. Во
втором случае будет возможность использования стандартной АТ-клавиатуры. При
дальнейшем развитии обязательна возможность использования стандартной
Денди-мыши. Про мышь PS/2 пока заикаться не будем. Естественно, что база для
картриджа расширения одна, только для первого варианта на нем не будут
устанавливаться элементы для внешней АТ-клавиатуры. Загрузчик же будет
автоматически определять, какая клавиатура используется.
:тут могут обнаружиться подводные камни. Дело в том, что существующие
одночиповые контроллеры имеют очень неудачный видеопроцессор, не совпадающий с
оригинальным 6538 по временным характеристикам, что может отразиться на
качественном видеовыводе. Далее, нам неизвестны нагрузочные характеристики
одночиповок в части подключения к шинам расширения. Для упрощения можно считать
их не более, чем один ТТЛ-вход. Поэтому, для успокоения жизни,
предусматривается сборка третьего варианта - новодела на "рассыпухе", с
использованием оригинальных процессоров, имеющих все описанные выше
характеристики, но имеющие стандартный порт для картриджа, при установке
которого аппарат становится обычным "Денди", полностью совместимым с
оригиналом:
И последнее по железу. Hе стоит при разработке такой схемы делать её полностью
универсальной. Гораздо проще при необходимости сделать отдельный картридж.
Будем руководствоваться принципом разумной достаточности.
Следующий вопрос - софт для получившегося агрегата. Встроенное ПЗУ не должно
иметь большого количества функций, вполне достаточно, чтобы оно имело
необходимые программы, обеспечивающие функциональность "железа", и первичный
загрузчик с флешки. Если таковой не подключено, то списываем со Спектрума -
загружается встроенный Бейсик. Если внешний накопитель подключен - загружается
список файлов или простейшая операционная система, суть которой - дальнейшая
работа с дисками. Пользовательский же софт нам придется писать с нуля,
руководствуясь либо требованиями и пожеланиями пользователей, либо адаптируя и
портируя наработанное, из тех же образов картриджей, тем более, что описанная
выше конфигурация практически аналогична мапперу UNROM, только потребуется
заменить адресацию страниц.
Hу я вроде все сказал... Может еще что добавлю потом...
[√] Пока _All_ !
▌║▐║│║▌║││║║ DreamLand laboratory. P2Pirates<dog>Mail.ru ICQ 638-547-576
2║5080▌244║0 FTP://87.224.224.182
... Hе пойман - не призывник.
Доведем "Денди" до ума!
Что такое "Денди" - знают, как мне кажется, многие. И практически все
относятся к этой приставке, как к игрушке, раз она игровая ;) . Да,
действительно, разработчик Nintendo Entertainment System (как по-нормальному
зовется прародитель "Денди", так и позиционировал приставку - как игровую.
Выпуск в продажу клавиатуры с выходом подключения магнитофона в качестве
накопителя формально переводил приставку в стан домашних компьютеров, чего
разработчик очень не желал. Тем не менее, начиная с середины 90-х годов,
благодаря стараниям братьев-китайцев, на рынке стали появляться клавиатурные
вариации NES, под которые был писан специальный софт (Бейсик, текстовые
редакторы, в том числе и российских авторов, записные книжки), позволяющие
использовать приставку как недоразвитый, но компьютер, вплоть до распечатки
текстов (Сюбор). Вместо начавших почивать в бозе магнитофонов, для хранения
результатов работы использовалась твердая память на аналогах микросхемы 537РУ10
и батарейкой резервного питания. Стоит отметить, что подобный вариант до сих
пор используется в записных книжках/переводчиках типа "Ассистент", и двух
килобайт "энергонезависимой" памяти для многих целей вполне хватает.
Почему "Денди" так "не повезло" в России? Для начала хватило, что
позиционировали приставку исключительно как игровую. Второе -
нераспостраненность процессора 6502, который положен в основу приставки. Позывы
советского производства под названием "Агат" и изредка ввозимые в Союз
"Коммодоры" погоды не делали, весь упор был сделан на аналог 8080 - 580ВМ80. А
позже появился "Спектрум" и Z80 стал доминировать как на рынке компьютеров, так
и в отношении к процессорам программистов.
За бугром же отношение к 6502 до сих пор теплое, под него пишутся программы и
делаются "железные" разработки. Ассемблер 6502 достаточно простой, при желании
можно научиться писать для него программы "на коленке" можно за неделю.
Hесмотря на некоторые "извраты" и малую систему команд (по сравнению с тем же
Z80), процессор 6502 может дать фору многим другим процессорам, используя все
свои 13 способов адресации к памяти (у того же Z80 всего четыре) и малое число
тактов, требуемых для выполнения своих инструкций. Поэтому при тактовой частоте
в 1,7 МГц скорость работы программ на 6502 равна скорости работы на Z80 с
тактовой частотой 4 МГц.
Вторым достоинством "Денди" является наличие дополнительного видеопроцессора,
берущего на себя основную работу по выводу результатов работы на дисплей. По
сути NES задала стандарт для всех игровых приставок - кроме основного
процессора нужны и другие, помогающие ему в процедурах ввода/вывода информации.
Результат - возросшая скорость работы всего агрегата.
Развею одно расхожее мнение - "на "Денди" неплохая графика". Hет у "Денди"
графики вообще! Есть псевдографика, то, что мы видим на экране - это не более
чем загружаемые знакогенераторы в виде кусочков рисунков, из которых
составляются спрайты и тайлы, видимые нами на экране. Это очень похоже на
первые писишные машины, когда все менюшки на них рисовали псевдографикой.
Применение отдельного видеопроцессора дало возможность быстро заменять
знакогенератор или переключаться между загруженными, а также переключаться
между двумя экранными областями, что создает иллюзию динамического
"графического" экрана. И это при том, что размер видеоОЗУ в "Денди" в
стандартном варианте составляет всего 2 килобайта на два экрана!
Ладно, хватит дифирамбов, с более-менее полным описанием "Денди" вы можете
ознакомиться в (1, описание мигеры), и понять, что на самом деле всё очень
просто, хотя кое-где и своеобразно. Если вы это уже прочитали, то давайте для
более полного понятия далееследующего, будем считать "Денди" не игровой
приставкой, а контроллером с полностью открытой архитектурой, как в "железном",
так и в программном смыслах. С программной открытостью, думаю, понятно - сам
контроллер не имеет своей программной памяти, она вся находится исключительно в
картридже. С железной открытостью - цели и задачи работы контроллера могут
различаться в зависимости от того, что упихано в картридж. Поэтому, ставя
определенные задачи, мы можем из одного контроллера ("Денди", в данном случае)
иметь несколько устройств, меняющих свою конфигурацию в зависимости от текущих
требований, используя простую замену картриджа.
Что же предлагается сделать в этом проекте? Ответ прост - довести всем
знакомую игровую приставку до уровня персонального компьютера. Последнее,
конечно, сказано слишком громко, этот уровень будет где-то на середине 90-х
годов прошлого века, но, тем не менее - для известной всем приставки это будет
шаг до более высокого уровня. Да, сборка подобного устройства и писание
программ под него - это удел увлеченных людей. Hо, учитывая большой парк старых
устройств, а также имеющихся в продаже новых - смысл есть. И не надо ставить
вопрос "а нафига всё это, когда есть Пень, да еще и двухядерный" - не для таких
людей этот проект. Есть большое множество применений, где "Денди" может быть
нам полезен.
Итак, что входит в этот проект? Для начала ознакомимся с его основными
"железными" данными. В результате недолгой работы и небольших понесенных
затрат, пользователь получает компьютер следующей конфигурации:
- ОЗУ процессора: 8 + 512 Кбайт, из которых 8 килобайт hard-wired, 512 килобайт
переключаемые, страницами по 16 Кбайт;
- ОЗУ видеопроцессора: 8 (32) Кбайт для загрузки шрифтов;
- ПЗУ: 16 Кбайт;
- Встроенные последовательный и параллельные порты;
- Возможность сохранения и загрузки программ с флеш-карточки.
Пройдемся по пунктам последовательно. С ОЗУ, я думаю, всё понятно. Много ОЗУ
(для аппарата такого класса) не бывает. Подобные размерности прекрасно
согласуются с заранее заданной архитектурой контроллера, позволяют иметь что-то
типа ядра программы с подключаемыми оверлеями в страничной области. Более того,
большинство игровых картриджей используют именно такой же принцип. Размер ПЗУ
также согласуется с заданной контроллером архитектурой, но имеется возможность
и его сделать страничным. Однако, исходя из принципа разумной достаточности,
было решено в ПЗУ оставить загрузчик и программы обслуживания компьютера, а
требуемые для работы программы подгружать извне.
Порты. Последовательный порт нам может понадобится для работы с принтером,
магнитофоном, локальной сетью, модемом, другим компьютером. Любители-юниксоиды
при использовании переходника СОМ-LAN могут оценить возможность поработать в
сетке в консоли. Параллельный порт - для работы с принтером, магнитофоном,
карт-ридером и прочими вещами. Разумеется, что если какие-то функции не нужны,
порт можно не ставить.
Внешнее устройство хранения данных. Сразу было решено отказаться от
флоппи-дисков. И емкость уже не та, и надежность хранения данных страдает, и
проводов много. Поэтому было обращено внимание на флеш-карты CF и SD/MMC. Hо и
тут надо выбирать: первые легко программировать, но сложный "железный"
интерфейс, вторые просты по железу, но сложны в программировании: Скорее всего
лучше будут вторые, как наиболее распространенные. Через использование таких
карточек возможно получить совместимость с РС как на уровне интерфейса, так и
на уровне текстовых файлов. Тем не менее было решено оставить неким атавизмом
возможность работы с кассетными магнитофонами.
В каком виде будет доработана оригинальная приставка? Вариантов предлагается
два, для приставок, имеющих встроенную клавиатуру и для простых игровых. Во
втором случае будет возможность использования стандартной АТ-клавиатуры. При
дальнейшем развитии обязательна возможность использования стандартной
Денди-мыши. Про мышь PS/2 пока заикаться не будем. Естественно, что база для
картриджа расширения одна, только для первого варианта на нем не будут
устанавливаться элементы для внешней АТ-клавиатуры. Загрузчик же будет
автоматически определять, какая клавиатура используется.
:тут могут обнаружиться подводные камни. Дело в том, что существующие
одночиповые контроллеры имеют очень неудачный видеопроцессор, не совпадающий с
оригинальным 6538 по временным характеристикам, что может отразиться на
качественном видеовыводе. Далее, нам неизвестны нагрузочные характеристики
одночиповок в части подключения к шинам расширения. Для упрощения можно считать
их не более, чем один ТТЛ-вход. Поэтому, для успокоения жизни,
предусматривается сборка третьего варианта - новодела на "рассыпухе", с
использованием оригинальных процессоров, имеющих все описанные выше
характеристики, но имеющие стандартный порт для картриджа, при установке
которого аппарат становится обычным "Денди", полностью совместимым с
оригиналом:
И последнее по железу. Hе стоит при разработке такой схемы делать её полностью
универсальной. Гораздо проще при необходимости сделать отдельный картридж.
Будем руководствоваться принципом разумной достаточности.
Следующий вопрос - софт для получившегося агрегата. Встроенное ПЗУ не должно
иметь большого количества функций, вполне достаточно, чтобы оно имело
необходимые программы, обеспечивающие функциональность "железа", и первичный
загрузчик с флешки. Если таковой не подключено, то списываем со Спектрума -
загружается встроенный Бейсик. Если внешний накопитель подключен - загружается
список файлов или простейшая операционная система, суть которой - дальнейшая
работа с дисками. Пользовательский же софт нам придется писать с нуля,
руководствуясь либо требованиями и пожеланиями пользователей, либо адаптируя и
портируя наработанное, из тех же образов картриджей, тем более, что описанная
выше конфигурация практически аналогична мапперу UNROM, только потребуется
заменить адресацию страниц.
Hу я вроде все сказал... Может еще что добавлю потом...
[√] Пока _All_ !
▌║▐║│║▌║││║║ DreamLand laboratory. P2Pirates<dog>Mail.ru ICQ 638-547-576
2║5080▌244║0 FTP://87.224.224.182
... Hе пойман - не призывник.