Info Guide #11
05 июля 2015

Металлолом - Эмуляция контроллера дисковода 1818ВГ93.

      Эмуляция 1818ВГ93
Alone Coder 

         Есть целых 5 способов остановить
      вpащение диска в дисководе:
        1. Подать на вход СБРОС микpосхе─
      мы 1818ВГ93 логический ноль.
        2. Записать в pегистp команд мик─
      pосхемы 1818ВГ93 команду.
        3. Сгенеpиpовать на входе IP мик─
      pосхемы  1818ВГ93 несколько импуль─
      сов.
        4. Вытащить диск из дисковода.
        5. Выключить питание.
         Все   способы,  кpоме  последних
      двух, pаботают на всех контpоллеpах
      Beta Disk интеpфейса.
                                       fk0

   Компьютер 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+, с поддержкой рас─ 
ширенной памяти по стандарту "АТМ3" (порты
#x7F7 и#BF )и как бонус - ещё с расширен─ 
ной палитрой от DDp. К сожалению,поддержки
фирменных таймингов нет,но со временем это
тоже может появиться. Особенно если кто-то
решится производить компьютер серийно...

   История была такая. Разработка аппарат─
ной  части  началась в 2007 году по следам
Pentagon 1024SL v2.2  (одно  время  компо─ 
машина на DiHalt и Chaos Constructions ) и
устройства Z-Controller от того же автора.
Целью  было существенно ускорить компьютер
и  перейти  на  доступную  периферию (PS/2
клавиатура и мышь, SD-карта),не теряя сов─
местимость с устройствами под ZX-BUS. Было
задумано  два варианта: 4-слойный с реаль─
ным процессором  Z80 (2.666) и 2-слойный с
процессором  внутри ПЛИС (2.666LE). Версия
2.666 появилась летом 2008 года, 2.666LE - 
летом 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 дисковода (точнее,его модели) ВГшка при─
нимает  сигналы"трек0" и "индексный импу─
льс" и возвращает их в статусе.
   Дальше вопрос касается дисковода.Треки-
секторы  диска  спроецированы на  память в
соответствии  с расположением  в ней  рам─
диска. Когда дисковод "спозиционирован" на
такую-то дорожку, выбрана такая-то "голов─
ка" и дана команда читать такой-то сектор,
адрес чтения формируется из этих трёх эле─
мектов.

  Конечно,реальный дисковод имеет опреде─
лённую  скорость вращения и доступа к дан─
ным. Реальная  дискета  имеет определённое
расположение секторов (то или иное). Нужны
какие-то  задержки, которые  ещё предстоит
подобрать.
  Но  софт уже работает. Шаг сделан. Дело
за поддержкой  со стороны комьюнити. Доку─
ментация  для производства  платы свободно
доступна.
  Пишите:KingOfEvil<dog>yandex/ru 



Другие статьи номера:

Об оболочке - журнал состоит из разделов, а разделы из статей.

От авторов - предисловие: Прошло 8 лет с момента выхода прошлого номера Info Guide. Что изменилось на Спектруме за это время?

Комьюнити - Spectrum в глубинке: в городе, население которого не превышает 15 тысяч человек, появление компьютера было сравнимо с изготовлением атомной бомбы в гараже.

Комьюнити - Forever 2015: отчет с демопати для всех 8-битных компьютеров.

Комьюнити - DiHalt 2015: отзывы от Lilka и Louisa.

Комьюнити - Как это было в Бразилии: история развития Спектрума в Бразилии от Paulo Silva.

Комьюнити - Беседа с Tiboh/Debris - программистом из Красноярска, долгие годы занимавшимся обработкой архивов спектрумовских программ.

Комьюнити - интервью с Raver/Phantasy взятое на irc.forestnet.org

Code - Этюды: Вызов функции по номеру, Поиск текста по номеру, Определение наличия музыкального сопроцессора, Установка пикселя на ATM Turbo 2, Библиотеки процедур в ALASM, Короткий генератор случайных чисел, Ускорение LD:PUSH.

Code - точка зрения: проекция пространства на экран из одной точки.

Code - чанковый эффект: Magnets stretching

Code - О мерцающем бордере: использование мерцание для повышения разрешения на бордере.

Code - Скриптование в демо: синхронизация эффектов под музыку и не только.

Графика - режиссура в демо: палитра изобразительных средств в Демомейкинге.

Графика - Мини-опрос художников: Dimidrol, Einar Saukas, Sand, Rion, riskej.

Графика - интервью с художником RayNoa/MAYhEM.

Музыка - Синхронизация музыки: nq рассказывает о создании треков под таймлайн.

Музыка - Беседа с MmcM/Sage group, известным AY-музыкантом, о его знаменитой технике.

Музыка - Беседа с Manwe/SandS - известным композитором, одним из старейших демосценеров России.

Музыка - Однобитная музыка: почему бипер ZX Spectrum продолжает вызывать восхищение?

Музыка - Горизонты турбосаунда: Cj Splinter делится опытом работы с TurboSound.

Музыка - Снова о плейерах Pro Tracker 3.x

Музыка - Музыкальный движок Muse 128b.

Системки - Как приручить IAR C Compiler.

Системки - Оберон для ZX Spectrum: Тонкости при разработке на Обероне в среде ZXDev (часть 1).

Системки - Оберон и ассемблер: Сопряжение с ассемблером (часть 2).

Системки - ZX-Basic Compiler: расширяемый кросс-компилятор.

Системки - Программы с поддержкой HDD, или "Linux" для Спектрума с винтом (или SD-картой).

Системки - iS-DOS/TASiS: о базовых принципах программирования под ОС iS-DOS/TASiS (часть 1).

Системки - iS-DOS/TASiS: как писать игры под iS-DOS/TASiS (часть 2).

Системки - iS-DOS/TASiS: Работа с палитрой и переключение графических режимов в TASiS (часть 3).

Металлолом - о строении экрана 6912 с аппаратной точки зрения.

Металлолом - Палитра для ZX Spectrum в различных графических режимах.

Металлолом - Эмуляция контроллера дисковода 1818ВГ93.

Дикий ум - Генерация и оптимизация кода в компилятора (часть 1)

Дикий ум - Генерация и оптимизация кода в компилятора (часть 2).

Дикий ум - ловля багов: самые типичные ошибки, при разработке на ассемблере Z80 (часть 1).

Дикий ум - ловля багов: самые типичные ошибки, при разработке на ассемблере Z80 (часть 2).

Дикий ум - алгоритм сжатия видео - 16 цветов на точку.

Игрушки - Разработка игр на Evo SDK (часть 1).

Игрушки - Разработка игр на Evo SDK (часть 2).

Игрушки - секрет успеха игры Jet Set Willy выпущенной в 1984 году.

Игрушки - Metal Man Reloaded: История создания от Oleg Origin.

Игрушки - Строение скриптового движка игры на примере L7 script engine.

Мыльница - Секретные кнопки в играх: Project ROBO, Ninjajar!, Uwol, Quest for Money, Zooming Secretary, Game About Squares.

Мыльница - письма: Kq, elfh, mig'95, wbr^NOT-Soft.

Мыльница - errata: Работа над ошибками.

Мыльница - об авторах журнала.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Об авторах - о тех, кто трудился над созданием этого номера.
Chaos Constructions '999 - отчёт (продолжение).
Видео - фильм "CЛОМАННАЯ CТРEЛА".

В этот день...   19 февраля