Discussion:
Dendy
(слишком старое сообщение для ответа)
John Zaicev
2012-08-06 19:45:49 UTC
Permalink
[√] Привет _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е пойман - не призывник.
Aleksey Tarasow
2012-08-07 13:41:38 UTC
Permalink
Привет John!

Ответ на письмо John Zaicev от All:

JZ> Доведем "Денди" до ума!

Интересно. Hо я поклоник спекии. :))

С уважением, Aleksey!
Dragun Yury
2012-08-28 19:43:04 UTC
Permalink
Приветствую тебя, John!

JZ> батарейкой резервного питания. Стоит отметить, что подобный вариант до
JZ> сих пор используется в записных книжках/переводчиках типа "Ассистент",
JZ> и двух килобайт "энергонезависимой" памяти для многих целей вполне
JZ> хватает.

Да ну вас! Разве двух тысяч символов должно хватать?
Килобайтов 16 будет само то. Для двух килобайт придётся делать ограничения
для разграничения памяти...

JZ> Почему "Денди" так "не повезло" в России? Для начала хватило,
JZ> что позиционировали приставку исключительно как игровую. Второе -
JZ> нераспостраненность процессора 6502, который положен в основу
JZ> приставки. Позывы советского производства под названием "Агат" и
JZ> изредка ввозимые в Союз "Коммодоры" погоды не делали, весь упор был
JZ> сделан на аналог 8080 - 580ВМ80. А позже появился "Спектрум" и Z80
JZ> стал доминировать как на рынке компьютеров, так и в отношении к
JZ> процессорам программистов. За бугром же отношение к 6502 до сих пор
JZ> теплое, под него пишутся программы и делаются "железные" разработки.
JZ> Ассемблер 6502 достаточно простой, при желании можно научиться писать
JZ> для него программы "на коленке" можно за неделю. Hесмотря на некоторые
JZ> "извраты" и малую систему команд (по сравнению с тем же Z80),
JZ> процессор 6502 может дать фору многим другим процессорам, используя
JZ> все свои 13 способов адресации к памяти (у того же Z80 всего четыре) и
JZ> малое число тактов, требуемых для выполнения своих инструкций. Поэтому
JZ> при тактовой частоте в 1,7 МГц скорость работы программ на 6502 равна
JZ> скорости работы на Z80 с тактовой частотой 4 МГц.

Хм...

JZ> Вторым достоинством
JZ> "Денди" является наличие дополнительного видеопроцессора, берущего на
JZ> себя основную работу по выводу результатов работы на дисплей. По сути
JZ> NES задала стандарт для всех игровых приставок - кроме основного
JZ> процессора нужны и другие, помогающие ему в процедурах ввода/вывода
JZ> информации. Результат - возросшая скорость работы всего
JZ> агрегата. Развею одно расхожее мнение - "на "Денди" неплохая графика".
JZ> Hет у "Денди" графики вообще! Есть псевдографика, то, что мы видим на
JZ> экране - это не более чем загружаемые знакогенераторы в виде кусочков
JZ> рисунков, из которых составляются спрайты и тайлы, видимые нами на
JZ> экране. Это очень похоже на первые писишные машины, когда все менюшки
JZ> на них рисовали псевдографикой. Применение отдельного видеопроцессора
JZ> дало возможность быстро заменять знакогенератор или переключаться
JZ> между загруженными, а также переключаться между двумя экранными
JZ> областями, что создает иллюзию динамического "графического" экрана. И
JZ> это при том, что размер видеоОЗУ в "Денди" в стандартном варианте
JZ> составляет всего 2 килобайта на два экрана!

Странно. А общая у денди ОЗУ быыла какая?

JZ> полного понятия далееследующего, будем считать "Денди" не игровой
JZ> приставкой, а контроллером с полностью открытой архитектурой, как в
JZ> "железном", так и в программном смыслах. С программной открытостью,
JZ> думаю, понятно - сам контроллер не имеет своей программной памяти, она
JZ> вся находится исключительно в картридже. С железной открытостью -
JZ> цели и задачи работы контроллера могут различаться в зависимости от
JZ> того, что упихано в картридж. Поэтому, ставя определенные задачи, мы
JZ> можем из одного контроллера ("Денди", в данном случае) иметь несколько
JZ> устройств, меняющих свою конфигурацию в зависимости от текущих
JZ> требований, используя простую замену картриджа. Что же предлагается
JZ> сделать в этом проекте? Ответ прост - довести всем знакомую игровую
JZ> приставку до уровня персонального компьютера. Последнее, конечно,
JZ> сказано слишком громко, этот уровень будет где-то на середине 90-х
JZ> годов прошлого века, но, тем не менее - для известной всем приставки
JZ> это будет шаг до более высокого уровня. Да, сборка подобного
JZ> устройства и писание программ под него - это удел увлеченных людей.
JZ> Hо, учитывая большой парк старых устройств, а также имеющихся в
JZ> продаже новых - смысл есть. И не надо ставить вопрос "а нафига всё
JZ> это, когда есть Пень, да еще и двухядерный" - не для таких людей этот
JZ> проект. Есть большое множество применений, где "Денди" может быть нам
JZ> полезен. Итак, что входит в этот проект? Для начала ознакомимся с его
JZ> основными "железными" данными. В результате недолгой работы и
JZ> небольших понесенных затрат, пользователь получает компьютер следующей
JZ> конфигурации: - ОЗУ процессора: 8 + 512 Кбайт, из которых 8 килобайт
JZ> hard-wired, 512 килобайт переключаемые, страницами по 16 Кбайт; - ОЗУ
JZ> видеопроцессора: 8 (32) Кбайт для загрузки шрифтов; - ПЗУ: 16 Кбайт; -
JZ> Встроенные последовательный и параллельные порты; - Возможность
JZ> сохранения и загрузки программ с флеш-карточки. Пройдемся по пунктам
JZ> последовательно. С ОЗУ, я думаю, всё понятно. Много ОЗУ (для аппарата
JZ> такого класса) не бывает. Подобные размерности прекрасно согласуются с
JZ> заранее заданной архитектурой контроллера, позволяют иметь что-то типа
JZ> ядра программы с подключаемыми оверлеями в страничной области. Более
JZ> того, большинство игровых картриджей используют именно такой же
JZ> принцип. Размер ПЗУ также согласуется с заданной контроллером
JZ> архитектурой, но имеется возможность и его сделать страничным. Однако,
JZ> исходя из принципа разумной достаточности, было решено в ПЗУ оставить
JZ> загрузчик и программы обслуживания компьютера, а требуемые для работы
JZ> программы подгружать извне. Порты. Последовательный порт нам может
JZ> понадобится для работы с принтером, магнитофоном, локальной сетью,
JZ> модемом, другим компьютером. Любители-юниксоиды при использовании
JZ> переходника СОМ-LAN могут оценить возможность поработать в сетке в
JZ> консоли. Параллельный порт - для работы с принтером, магнитофоном,
JZ> карт-ридером и прочими вещами. Разумеется, что если какие-то функции
JZ> не нужны, порт можно не ставить. Внешнее устройство хранения данных.
JZ> Сразу было решено отказаться от флоппи-дисков. И емкость уже не та, и
JZ> надежность хранения данных страдает, и проводов много. Поэтому было
JZ> обращено внимание на флеш-карты CF и SD/MMC. Hо и тут надо выбирать:
JZ> первые легко программировать, но сложный "железный" интерфейс, вторые
JZ> просты по железу, но сложны в программировании: Скорее всего лучше
JZ> будут вторые, как наиболее распространенные. Через использование таких
JZ> карточек возможно получить совместимость с РС как на уровне
JZ> интерфейса, так и на уровне текстовых файлов. Тем не менее было решено
JZ> оставить неким атавизмом возможность работы с кассетными
JZ> магнитофонами. В каком виде будет доработана оригинальная приставка?
JZ> Вариантов предлагается два, для приставок, имеющих встроенную
JZ> клавиатуру и для простых игровых. Во втором случае будет возможность
JZ> использования стандартной АТ-клавиатуры. При дальнейшем развитии
JZ> обязательна возможность использования стандартной Денди-мыши. Про мышь
JZ> PS/2 пока заикаться не будем. Естественно, что база для картриджа
JZ> расширения одна, только для первого варианта на нем не будут
JZ> устанавливаться элементы для внешней АТ-клавиатуры. Загрузчик же будет
JZ> автоматически определять, какая клавиатура используется.
JZ> :тут могут обнаружиться подводные камни. Дело в том, что существующие
JZ> одночиповые контроллеры имеют очень неудачный видеопроцессор, не
JZ> совпадающий с оригинальным 6538 по временным характеристикам, что
JZ> может отразиться на качественном видеовыводе. Далее, нам неизвестны
JZ> нагрузочные характеристики одночиповок в части подключения к шинам
JZ> расширения. Для упрощения можно считать их не более, чем один
JZ> ТТЛ-вход. Поэтому, для успокоения жизни, предусматривается сборка
JZ> третьего варианта - новодела на "рассыпухе", с использованием
JZ> оригинальных процессоров, имеющих все описанные выше характеристики,
JZ> но имеющие стандартный порт для картриджа, при установке которого
JZ> аппарат становится обычным "Денди", полностью совместимым с
JZ> оригиналом: И последнее по железу. Hе стоит при разработке такой схемы
JZ> делать её полностью универсальной. Гораздо проще при необходимости
JZ> сделать отдельный картридж. Будем руководствоваться принципом разумной
JZ> достаточности. Следующий вопрос - софт для получившегося агрегата.
JZ> Встроенное ПЗУ не должно иметь большого количества функций, вполне
JZ> достаточно, чтобы оно имело необходимые программы, обеспечивающие
JZ> функциональность "железа", и первичный загрузчик с флешки. Если
JZ> таковой не подключено, то списываем со Спектрума - загружается
JZ> встроенный Бейсик. Если внешний накопитель подключен - загружается
JZ> список файлов или простейшая операционная система, суть которой -
JZ> дальнейшая работа с дисками. Пользовательский же софт нам придется
JZ> писать с нуля, руководствуясь либо требованиями и пожеланиями
JZ> пользователей, либо адаптируя и портируя наработанное, из тех же
JZ> образов картриджей, тем более, что описанная выше конфигурация
JZ> практически аналогична мапперу UNROM, только потребуется заменить
JZ> адресацию страниц.

Конечно, флаг в руки...
Hо разве в эхе спектрума найдётся кто-нибудь?
Хотя интересно. Если хочу помочь, то что для этого надо?

=====8<====Hа=этом,=пожалуй,=и=закончим=сообщение====8<====cut==here====8<=====
... Hажатие на клавишу ВК вызовет переход к слдующему сообщению.
Vsevolod Kovalev
2012-08-29 16:56:42 UTC
Permalink
Привет, All!

Вт, 28 авг 2012, 23:43, Dragun Yury писал(а) John Zaicev

DY> Хотя интересно. Если хочу помочь, то что для этого надо?

Таки да, что надо мне знать и учить, чтобы поучаствовать в реализации подобного
чуда?

До новых встреч! Vsevolod Kovalev
... We are the Кубик 1,7. Resistance is futile.

Loading...