Info Guide
#11
05 июля 2015 |
|
Металлолом - Эмуляция контроллера дисковода 1818ВГ93.
Эмуляция 1818ВГ93 Alone Coder Есть целых 5 способов остановить вращение диска в дисководе: 1. Подать на вход СБРОС микросхе─ мы 1818ВГ93 логический ноль. 2. Записать в регистр команд мик─ росхемы 1818ВГ93 команду. 3. Сгенерировать на входе IP мик─ росхемы 1818ВГ93 несколько импуль─ сов. 4. Вытащить диск из дисковода. 5. Выключить питание. Все способы, кроме последних двух, работают на всех контроллерах Beta Disk интерфейса. fkO Компьютер Pentagon 2.666 (автор King of Evil )- довольно необычное устройство. Да─ же если не обращать внимание соседство со─ ветской микросхемы К561ЛН2 с периферийным контроллером на архитектуре ARM или на на─ дпись"DEATH TO NATO", которая может поме─ шать его экспорту в некоторые страны :) С одной стороны, Pentagon 2.666 похож по организации на девборду, поскольку пос─ троен на ПЛИС. С другой - это не девборда, поскольку никаких других прошивок, кроме спектрумовской, не планируется. С одной стороны, Pentagon 2.666 существует давно. С другой - многие о нём узнают только сей─ час. Сейчас, как и ZX Evolution , Pentagon 2.666 совместим с классическими клонами Pentagon и ATM Turbo 2+, с поддержкой рас─ ширенной памяти по стандарту "АТМЗ" (порты #x7F7 и#BF )и как бонус - ещё с расширен─ ной палитрой от DDp. К сожалению,поддержки фирменных таймингов нет,но со временем это тоже может появиться. Особенно если кто-то решится производить компьютер серийно... История была такая. Разработка аппарат─ ной части началась в 2007 году по следам Pentagon 102ЧSL v2.2 (одно время компо─ машина на DiHalt и Chaos Constructions ) и устройства Z-Controller от того же автора. Целью было существенно ускорить компьютер и перейти на доступную периферию (PS/2 клавиатура и мышь, SD-карта),не теряя сов─ местимость с устройствами под ZX-BUS. Было задумано два варианта: 4-слойный с реаль─ ным процессором Z80 (2.666) и 2-слойный с процессором внутри ПЛИС (2.6ббLE). Версия 2.666 появилась летом 2008 года, 2.6ббLE - летом 2009 года.Обе платы были показаны на DiHalt 2009. На 28 MHz демонстрировалась игра Wolfenstein 2004. Изначально было неясно,получится ли до─ стичь полной совместимости, имея процессор в ПЛИС. Оказалось,что это реально. Специа─ льно доработанное ядро Т80 не показало от─ личий ни на одной программе. Нетехнологич─ ная 4-слойная версия была отброшена в по─ льзу 2-слойной. Казалось бы,успех.Но перед превращением платы в продукт стояло большое препятствие - как загружать программы,не имея реально─ го дисковода, с SD-карты. Плата имеет 2 МБ ОЗУ (рассматривается вопрос расширения до4 МБ ), но не имеет ПЗУ, доступного для процессора (то есть для ПЛИС). Между ПЛИС и ARM тонкий одноби─ тный интерфейс, через который передаются и данные для начальной загрузки, и команды- данные для периферии, и даже текстовый эк─ ран отладчика (который крутится в ARM). В итоге ПЗУ реализовано через ОЗУ. Из 2 МБ ОЗУ, а точнее, из верхнего мегабайта -64К (в перспективе и больше) выделено под ПЗУ и защищено от записи. Остаток этого верх─ него мегабайта занимает рамдиск. Что в этих64К ? 48K, 128K, TR-DOS 6.xx (с рамдиском) - это понятно. Сброс произ─ водится в Mr Gluk Reset Service - это ещё 16K. Для загрузки образов в рамдиск в Mr Gluk Reset Service добавлена ещё одна строчка - вызов копировщика Fatall (автор - Savelij13 ).Он перебрасывается в опреде─ лённую страницу ОЗУ при старте. Далеко не все программы работают с рам─ диска. Для этого надо использовать вызов #3D13. Никаких турболоадеров или загрузчи─ ков с музыкой. Или всё-таки можно? Существуют прошивки ПЗУ, которые в той или иной мере перехватывают вызовы, испо─ льзуемые в турболоадерах. Какие-то из них имеют дополнительные ветки в #2A53 или других процедурах (так делают vTR-DOS и Evo DOS ), какие-то с помощью дополнитель─ ного железа при попытке доступа к портам передают управление теневому ПЗУ (схема от JtN ). И там, и там недостаток один - про─ цессор выполняет дополнительные команды, то есть совместимость с экзотическим соф─ том не полная. Полная совместимость получается, если эмулировать железом связку 1818ВГ93 (конт─ роллер дисковода, "ВГшка" ) + дисковод. И это тоже было сделано. Работает это так. С помощью прямого доступа к памяти реа─ лизуется доступ на чтение-запись ячеек ОЗУ,минуя процессор. В определённом режиме схема может читать данные из ячейки,делать их доступными через порт#7F и переходить к следующему адресу. В другом режиме нао─ борот - писать данные в ячейку при записи в порт#7F и тоже переходить к следующему адресу. Это основная часть интерфейса про─ цессор - 1818ВГ93 - дисковод. Под другие порты контроллера дисковода выделены соответствующие регистры,их можно читать и писать. Это регистры сектора, до─ рожки, команды и статуса. Также реализован системный регистр бетадиска (главное его назначение - он управляет стороной "диске─ ты", то есть номером головки дисковода). Содержимое всех этих регистров, а также регистров модели дисковода, можно посмот─ реть во встроенном отладчике. Как должна вести себя ВГшка? ВГшка при─ нимает команды и возвращает статус. ВГшка общается с дисководом (точнее, с его моде─ лью), двигая его "голову". ВГшка имеет оп─ ределённые задержки при позиционировании. C дисковода (точнее,его модели) ВГшка при─ нимает сигналы"tpekO" и "индексный импу─ льс" и возвращает их в статусе. Дальше вопрос касается дисковода.Треки- секторы диска спроецированы на память в соответствии с расположением в ней рам─ диска. Когда дисковод "спозиционирован" на такую-то дорожку, выбрана такая-то "голов─ ка" и дана команда читать такой-то сектор, адрес чтения формируется из этих трёх эле─ мектов. Конечно,реальный дисковод имеет опреде─ лённую скорость вращения и доступа к дан─ ным. Реальная дискета имеет определённое расположение секторов (то или иное). Нужны какие-то задержки, которые ещё предстоит подобрать. Но софт уже работает. Шаг сделан. Дело за поддержкой со стороны комьюнити. Доку─ ментация для производства платы свободно доступна. Пишите:KingOfEvil<dog>yandex/ru
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября