City #12
14 мая 1999

Ликбез - полное описание + полный дизассемблер ПЗУ (часть 8).

---------------------------------------------------
                       ЛИКБЕЗ
---------------------------------------------------

(c) П.Ю.Федин

╔═════════════════════════════════════════════════╗
║                                                 ║
║    ПОЛHОЕ ОПИСАHИЕ + ПОЛHЫЙ ДИЗАССЕМБЛЕP ПЗУ    ║
║                                                 ║
║              TR-DOS 5.04T (5.03)                ║
║                                                 ║
║              ДЛЯ ПРОФЕССИОНАЛОВ,                ║
║                                                 ║
║               А ТАКЖЕ ДЛЯ ТЕХ,                  ║
║                                                 ║
║             КТО ХОЧЕТ ИМИ СТАТЬ.                ║
║                                                 ║    
╚═════════════════════════════════════════════════╝

                    пpодолжение


             Регистр состояния 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.
  К сожалению, порты TR-DOS доступны только  тогда,
когда включено ПЗУ TR-DOS, что очень затрудняет до-
ступ к ним. Но для записи  в порты  можно использо-
вать следующие подпрограммы:
12227 OUT (31),A
      RET
7738  OUT (63),A
      RET
8179  OUT (255),A
      RET
12044 OUT (255),A
      RET
10835 OUT (C),A
      RET
  Для чтения из портов подобных подпрограмм нет.
                    Коды ошибок:
  В TR-DOS обработка ошибок  реализована весьма не-
корректно, но  все же  можно различить ошибки, если
воспользоваться двумя переменными: 23610 и 23823.
╔══════════════╤══════════════════════╤═════╤═════╗
║Сообщение об  │Значение              │23610│23823║
║ошибке        │                      │     │     ║
╟──────────────┼──────────────────────┼─────┼─────╢
║O.K.          │Нормальное завершение │ 255 │  0  ║
║No file(s)    │Требуемый файл не най-│ 255 │  1  ║
║              │ден                   │     │     ║
║File exists   │Файл уже существует   │ 255 │  2  ║
║No space      │Нет места на диске    │ 255 │  3  ║
║Directory full│Нет места в каталоге  │ 255 │  4  ║
║              │диска                 │     │     ║
║Rec OF       │Обращение к несущест- │ 255 │  5  ║
║              │вующему сектору файла │     │     ║
║No disc       │Нет диска в дисководе │  26 │  6  ║
║Disc error    │Дисковая ошибка. Есть │  26 │  7  ║
║Trk XX sec XX │3 варианта:R - еще раз│     │     ║
║Retry,Abort,  │попробовать,I - продо-│     │     ║
║Ignore?       │лжить со  дующего сек-│     │     ║
║              │тора, А- отказаться от│     │     ║
║              │операции              │     │     ║
║Read only     │Диск защищен от записи│  26 │  7  ║
║Trk XX sec XX │Есть 3 варианта ( смо-│     │     ║
║Retry,Abort,  │трите выше)           │     │     ║
║Ignore?       │                      │     │     ║
║Stream opened │Открываемый поток уже │  25 │ 10  ║
║              │занят                 │     │     ║
║Not disk file │Закрываемый  канал не │ 255 │ 11  ║
║              │принадлежит TR-DOS    │     │     ║
║Array not     │Требуемая переменная  │ 255 │ 14  ║
║found         │не найдена            │   1 │  1  ║
║*BREAK*       │Нажата клавиша BREAK  │  20 │ 20  ║
║              │                      │  12 │ 12  ║
║Out of RAM    │Не хватает оперативной│   3 │  3  ║
║              │памяти                │     │     ║
║Disc error    │Диск не принадлежит   │ 255 │  0  ║
║              │TR-DOS                │     │     ║
║Read only     │Попытка записи на 40- │ 255 │  *  ║
║              │дорожечный диск на 80-│     │     ║
║              │дорожечном дисководе  │     │     ║
║*ERROR*       │Прочие ошибки,  в  ос-│  11 │ 12  ║
║              │новном синтаксические │   X │X+1  ║
╚══════════════╧══════════════════════╧═════╧═════╝
* - копия переменной с типом дисковода,
X - любое число.
В случае вывода сообщения  Retry,Abort,Ignore? коды
ошибки устанавливаются при ответе A.

               продолжение следует...



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

От редактора - я сделал несколько заказов по почте. Это во-пеpвых GENERAL SOUND у NEMO.

Железо - как подключить второй дисководо к Спектруму.

Смайлик - подборка компьютерных анекдотов.

Ликбез - полное описание + полный дизассемблер ПЗУ (часть 8).

Бук - Похождения Штиpлица и дpугие пpиключения Боpмана.

Музыка - Песня ALL MY LOVING (П.Маккаpтни) отpажает уже влияние бpитанского фольклоpа на твоpчество БИТЛЗ.

Реклама - Пpиобpету или сниму копии с жуpналов "Pадиолюбитель".


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

Похожие статьи:
Humor - ЛЕСОРУБ.
Scene news - Вышла новая версия Pro Sound Creator v1.07, В планах создание: X-Files game, работа над Chip'n'Dale приостановлена, Steelzer Усредно кодит, вышла долгожданная игра от Triumph - ~4x4 PuZzLe~.
Блиц-опрос - интервью с музыкантом C-jeff.

В этот день...   16 июля