Faultless #03
31 декабря 1995

  ╔══════════════════════════════════════╗
  ║Раздел:Открытие;                      ║
  ║Статья:Возможности КР1818ВГ93;        ║
  ║Музыка:Kurt   ;                       ║
  ║Текст :Ворожкин Александр.            ║
  ╚══════════════════════════════════════╝

   Статья будет полезна как тем, кто хочет
  разобраться с устройством КР1818ВГ93,так
  и тем,кто хочет самостоятельно создавать
  программы для произвольного форматирова-
  ния  дискет, чтения  необычных форматов,
  снятия и постановки защиты и т.д.

   Микросхема КР1818ВГ93  является центра-
  льным элементом НГМД "Beta disk".Она мо-
  жет записывать информацию на диск с оди-
  нарной и двойной плотностью.Максимальная
  скорость  записи и чтения  при одинарной
  плотности составляет  250Кбит/сек, а при
  удвоенной плотности - 500Кбит/сек.
  Микросхема вырабатывает  сигналы управ-
  ления  дисководом, обеспечивающие прижим
  магнитных головок к поверхности  диска и
  управление шаговым двигателем,данные для
  записи на диск в  последовательном коде,
  сигналы  предкомпенсации  данных записи,
  сигнал разрешения записи.
   С дисковода на микросхему поступают да-
  нные,из которых при помощи внешней схемы
  необходимо выделить: данные чтения и им-
  пульсы  синхронизации, а также поступает
  сигнал защиты от несанкционированной за-
  писи,который генерируется при заклеенной
  прорези на дискете,и два сигнала привяз-
  ки к диску: TROO (головка на 0-й дорожке
  и индексные импульсы,генерируемые специ-
  альным отверстием в дискете) от них идет
  нумерация секторов на дорожке.
  Остается привести примеры программ,ко-
  торые помогут вам окончательно разобрат-
  ся программированием  микросхемы и рабо-
  той контроллера "Beta disk".

   Для форматирования дискеты предназна-
  чена команда ЗАПИСЬ ДОРОЖКИ.Сразу после
  прохождения индексного импульса сигнал
  DRQ запрашивает данные для записи на до-
  рожку.При этом байты 00...F4 записывают-
  ся без изменения,а остальные воспринима-
  ются как команды:

      Байт   Одинарная       Двойная
             плотность      плотность

      F5     Не допускается Записать код и
                            начать подсчет
                            контрольного
                            кода
      F6     Не допускается Записать код
      F7     Записать два   Записать два
             байта контроль байта контроль
             ного кода      ного кода на
                            диск

      F8-FB, Записать F8-FB Записать F8-FB
      FE     и начать подс- соответственно
             чет контроль-
             ного кода

      FC,FD, Записать FC,FD Записать FC,FD
      FF     и FF соответст и FF соответст
             венно          венно

   Приведем примеры содержания массива,
  предназначенного для передачи на ВГ93
  при форматировании дискеты с одинарной
  плотностью и длиной сектора 128 байт и
  удвоенной плотностью и длиной сектора
  256 байт.В примерах будем указывать код,
  количество байт с таким кодом: в скобках
  и назначение этих байт.
  Одинарная плотность: FF или 00 (40) -
  пробел после индексного импульса ;00 (6)
  FC (1) - т.н. индексная метка;00 (6);
  FE (1) - метка заголовка;XX (1) - номер
  дорожки;XX (1) - номер стороны 00 или 01
  XX (1) - номер сектора 01...#1A;00 (1) -
  длина сектора 128 байт;F7 (1) - запись
  двух байт контрольного кода;FF или 00
  (11) - пробел после заголовка;00 (6);FB
  (1) - метка данных;XX (128) - место для
  размещения массива данных;F7 (1) - за-
  пись двух байт контрольного кода;FF или
  00 (...) - пробел перед следующим секто-
  ром.
   Удвоенная плотность;4E (80) - пробел
  после индексного импульса;00 (12);F6 (3)
  запись кода C2;FC (1) - индексная метка
  перед первым индексным массивом;4E (50)-
  пробел;00 (12);F5 (3) - запись кода A1,
  начало вычисления контрольного кода;FE
  (1) - метка заголовка;XX (1) - номер до-
  рожки 00...4C;XX (1) - номер стороны 00
  или 01;XX (1) - номер сектора 01...1A;01
  (1) - длина сектора 256 байт;F7 (1) - за
  пись двух байт контрольного кода;4E (22)
  пробел после заголовка;00 (12) - байт ну
  лей,меткам.В конце массива - контрольный
  код и один байт FF;F5 (3) - запись A1,на
  чало вычисления контрольного кода;FB (1)
  метка данных;XX (256) - место для разме-
  щения массива данных;F7 (1) - запись
  двух байт контрольного кода;4E (...) -
  пробел перед следующим сектором.
   Длину последнего пробела рассчитайте
  сами,исходя из того,что весь массив дан-
  ных для записи на дорожку должен зани-
  мать не более 6-ти Кбайт.Последующие се-
  ктора размечаются точно так же,как и пе-
  рвый.В массив данных нельзя включать ко-
  ды,которые микросхема может интерпрети-
  ровать как команды.Приведенные примеры
  не следует воспринимать как единственно
  возможные.
  Командой OUT 255,...установите необхо-
  димую конфигурацию системы перед выпол-
  нением команды.Назначение битов этого
  порта следующее:

       0-й и 1-й - выбор НГМД (0-A,1-B,2-C
                   3-D);
             2-й - сброс микросхемы ВГ93
                   (0 -сброс,1 - работа);
             3-й - имитация сигнала готов-
                   ности к работе магнит-
                   ных головок и индексных
                   импульсов (1 - готов);
             4-й - с какой стороной диска
                   работать (0 или 1);
             6-й - одинарная плотность за-
                   писи (1) или двойная -2

   Для работы с 0-й стороной диска в порт
  #FF обычно записывается #0C (12),а с 1-й
  стороной - #1C (28).
   Теперь попробуем переместить магнитную
  головку на нужную нам дорожку,например,
  восьмую.Для этого выполним команду "ВОС-
  СТАНОВЛЕНИЕ": OUT 31,8.Головка передви-
  нулась на 0-ю дорожку.Теперь поместим в
  РгДор номер текущей дорожки: OUT 63,0 ,
  а в РгДан - номер искомой дорожки:
  OUT 127,8 и выполним команду "ПОИСК":
  OUT 31,24.Как неоднократно указывалось,
  команды чтения записи информации должны
  в вашей программе непосредственно следо-
  вать за вспомогательными командами.
  Например:

           ...
           50 OUT 31,24
           60 PAUSE 50
           70 RANDOMIZE USR 30000
           ...

   По адресу 30000 при этом распологается
  программа в машинных кодах.Приведем при-
  мер такой универсальной программы для
  чтения и записи информации:
           ORG 30000    ;Адрес входа в
                         программу
           DI
           LD HL,#E800  ;Начальный адрес
                         массива данных
           LD A,#F4     ;Вместо #F4 сюда
                         можно подставить
                         код
           OUT (#1F),A  ;любой другой ко-
                         манды записи или
                         чтения
           LD C,#7F     ;Порт #7F - РгДан
                         микросхемы ВГ93
           CALL METKA
           EI
           RET
   METKA   IN A,(#FF)   ;Считываем вспомо-
                        гательный порт
           AND #C0      ;Выделяем и анали-
          зируем биты,соответствующие сиг-
           JP Z,METKA   ;налам DRQ (6-й) и
           RET M        ;INTRQ (7-й) ВГ93
           OUTI         ;Для выполнения
           JP METKA     ;команд чтения не-
             обходимо заменить OUTI на INI

   В таком виде программа выполнит форма-
  тирование дискеты,т.е.разметит дорожку,
  на которой находится магнитная головка,
  в соответствии с содержанием массива,
  размещенного в памяти с адреса 59392.
  Содержание этого массива можете найти в
  вышеуказанном тексте,посвященном команде
  "ЗАПИСЬ ДОРОЖКИ".
   Если вместо кода команды "ЗАПИСЬ ДОРОЖ-
  КИ" подставить код команды "ЗАПИСЬ СЕК-
  ТОРА" и записать предварительно номер
  нужного сектора в РгСек (например,коман-
  дой OUT 95,N),то информация,расположен-
  ная в памяти с адреса 59392,запишется в
  этот сектор на диске.Аналогично можно
  прочитать с диска и записать в память
  с адреса 59392 (или другого - по вашему
  желанию) любую информацию,доступную ко-
  мандам "ЧТЕНИЕ СЕКТОРА","ЧТЕНИЕ АДРЕСА",
  "ЧТЕНИЕ ДОРОЖКИ".
 



Other articles:


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

Similar articles:
drop of solder - Finalization of the Pentagon to work with high-density disks.
TOP TEN - dozens of games based on sales.

В этот день...   21 November