VG93 info [2:2]

ZXNet echo conference «zx.spectrum»

From Pavel Fedin To All 15 December 1997


Команда "чтение адреса" считывает 6 байтов первого попавшегося
идентификатора сектора, включая контрольную сумму. Если кон- трольная сумма не
совпадает, то устанавливается флаг "ошибка в контрольной сумме" и чтение
продолжается. При выполнении этой команды байт из регистра дорожки помещается в
регистр сектора.
По окончании как обычно вырабатывается сигнал INTRQ и в регистре состояния
сбрасывается бит "занято".
Команда "чтение дорожки" читает всю информацию с дорожки, вклю- чая служебную.
При этом не выдается строб чтения и не проверя- ются контрольные суммы.
Команда "запись дорожки" предназначена для форматирования дис- ков. Вся
информация, включая пробелы и поля индексов и данных со всеми метками.
Записываются все байты кроме #F5 - #FE, которые
интерпретируются как управляющие адресные метки. Таким образом
при форматировании эти байты не могут быть записаны. Список этих
байтов вы видите в таблице:
╔═════════І════════════════════════════════════════════════════╗
║ │ Hазначение. ║ ║ Байт
├──────────────────────────┬─────────────────────────Є ║ │ В
режиме FM. │ В режиме MFM. ║
╟─────────┼──────────────────────────┼─────────────────────────Є ║ #F5│ е
допускается. │Запись метки #A1 в MFM. ║ ║ │
│Вычис- ║ ║ │ │ляется
контрольная сумма.║ ║ #F6│ е допускается. │Запись метки #C2 в
MFM. ║ ║ #F7│Записывается вычисленная контрольная сумма. ║ ║#F8 -
#FB│Запись #F8 - #FB с CLK=#C7│Запись #F8 - #FB в MFM. ║ ║ #FC│Запись #FC
с CLK=#D7 │Запись #FC в MFM. ║ ║ │(индексная метка перед
первым индексным массивом). ║ ║ #FD│Запись #FD с CLK=#FF. │Запись #FD
в MFM. ║ ║ #FE│Запись #FE с CLK=#C7. Вы- │Запись #FE в MFM. ║
║ │числяется контрольная сум-│ ║ ║ │ма
(индексная метка в начале индексного массива). ║ ║ #FF│Запись #FF с
CLK=#FF. │Запись #FF в MFM. ║
╚═════════╧══════════════════════════╧═════════════════════════ў
Команда "принудительное прерывание" задается для завершения лю-
бой выполняемой команды. В отличие от других команд она может выдаваться в
любой момент времени. Условие прерывания зависит от
младших битов команды. Если они равны 0, то команда прерывается
и INTRQ не вырабатывается. При I0=1 прерывание выполняется пос-
ле перехода сигнала CPRDY из 0 в 1; при I1=1 - из 1 в 0. При I2= =1 - по
поступлению индексного импульса. При I3=1 происходит не-
медленное прерывание команды. После выполнения этих условий вы-
дается сигнал INTRQ.

Регистр состояния 1818ВГ-93.

После выполнения в регистре состояния будут находится флаги,
показывающие результат выполнения команды: ╔═══════════════І═══════════════╗
║ │Разряд регистра║
║ Команда ├─┬─┬─┬─┬─┬─┬─┬─Є
║ │7│6│5│4│3│2│1│0║
╟───────────────┼─┼─┼─┼─┼─┼─┼─┼─Є
║Вспомогательная│R│P│H│F│C│T│I│Q║
║Чтение адреса │R│0│0│N│C│W│D│Q║
║Чтение сектора │R│0│A│N│C│W│D│Q║
║Чтение дорожки │R│0│0│0│0│W│D│Q║
║Запись сектора │R│P│E│N│C│W│D│Q║
║Запись дорожки │R│P│E│0│0│W│D│Q║
╚═══════════════╧═╧═╧═╧═╧═╧═╧═╧═ў
Значения флагов:
R - готовность дисковода (1 - не готов).
P - защита от записи.
H - загрузка головки.
E - ошибка записи.
A - тип адресной метки.
F - ошибка поиска.
N - массив не найден.
C - ошибка в контрольной сумме.
T - головка на дорожке 0 (сигнал TR00 от дисковода). W - потеря данных.
I - индексный импульс.
D - запрос данных.
Q - занято (идет выполнение команды).

Порт 255.

Системный регистр служит для выбора дисководов и выполнения дру- гих
вспомогательных действий. Его структура:

7 6 5 4 3 2 1 0
│ │ │ │ └─┴─ омер дисковода (0 - 3).
│ │ │ └─────Сброс ВГ-93, если 0.
│ │ └───────Загрузка головки.
│ └─────────Сторона диска (0 - нижняя).
└─────────────Метод записи (0 - FM, 1 - MFM).

При вводе из этого порта читаются сигналы:

бит 7 - INTRQ;
бит 6 - DRQ.

Пока, с пачкой вишезов, Pavel Fedin.