Эмуляция 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
Other articles: