City #13
29 мая 1999

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

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

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

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

                    пpодолжение


              Формат описателя файла

байты 0 - 7 -   имя файла.
байт  8 -       расширение файла.
байты 9 - 10 -  для кодов и массивов- адрес загруз-
                ки, для программ на бейсике - длина
                файла, для файлов данных:
                байт 9 -  номер блока в файле,
                байт 10- любой, TR-DOS всегда уста-
                навливает 32.
байты 11 - 12 - для массивов и кодов - длина файла,
                для программ на бейсике- длина про-
                граммы, для  файлов  данных - длина
                записанной части блока.
байт  13 -      Длина файла в секторах.
байт  14 -      Номер первого сектора файла.
байт  15 -      номер первой дорожки файла.

     Формат описателя диска (сектор 8 дорожки 0)

байты 0 - 224 -   не используются.
байт  225 -       номер первого свободного сектора.
байт  226 -       номер первой свободной дорожки.
байт  227 -       тип диска:
                   22- 80-дорожечный двухсторонний,
                   23- 40-дорожечный двухсторонний,
                   24- 80-дорожечный односторонний,
                   25- 40-дорожечный односторонний.
байт  228 -       количество файлов  на диске вмес-
                  те со стертыми.
байты 229 - 230 - количество свободных секторов.
байт  231 -       всегда 16 - признак принадлежнос-
                  ти диска к TR-DOS.
байты 232 - 243 - не используются.  Байты 234 - 242
                  TR-DOS заполняет байтом 32.
байт  244 -       количество стертых файлов.
байты 245 - 252 - имя диска.
байты 253 - 255 - не используются.

             Ошибки в подпрограммах TR-DOS

 Фатальные ошибки:
Ошибки PEEK  POKE - невозможно  работать с файлами
                     с расширением B и D. Также не-
                     льзя работать с последним сек-
                     тором любого файла.
Ошибка PEEK -        после   сектора   дочитывается
                     столько  байтов из следующего,
                     сколько указано в младшем бай-
                     те длины файла. Эта ошибка об-
                     ходится при использовании под-
                     программы 15635.
Ошибки MAGIC -       портит  адреса  23552 и 23553.
                     Если  по  адресу  23304  будет
                     238, то в порт 32765 загрузит-
                     ся число  из  23388. Делает 20
                     попыток  записи на диск с зак-
                     леенной прорезью.
Ошибка RUN -         некорректно  запускает кодовые
                     файлы.
Ошибка PRINT# -      При создании нового блока фай-
                     ла  портит  буфер,  из-за чего
                     может  не  сработать  CAT# или
                     LIST#.
Ошибка RESET -       помещает  по  адресу 23746 ко-
                     манду  RET без наличия систем-
                     ных переменных TR-DOS.
Ошибка CAT -         Если номера дисководов в 23801
                     и 23798 разные, то  произойдет
                     что угодно.
Ошибка позиционирования -
                     не  учитывается скорость пере-
                     мещения головки дисковода.
 Другие ошибки:

Ошибка выбора дисковода -
                     не проверяется  тип дисковода,
                     если в  переменной 255, а если
                     ее изменить, то  тип дисковода
                     будет  все  время  переопреде-
                     ляться.
Ошибка чтения адресного маркера -
                     флаг  игнорирования ошибки бе-
                     рется из 23761, а не из 23831.
Ошибка всех COPY -   портится  переменная  23840, а
                     при COPY S - еще и 23839.
Ошибки GO TO -       цвет бордюра берется из 23624.
                     Для  сохранения   длины  имени
                     файла используется экран, хотя
                     в этом нет  необходимости. При
                     загрузке файлов  страниц нажа-
                     тие BREAK  или ответ A на воп-
                     рос Retry,Abort,Ignore? приве-
                     дет к чему угодно.
Ошибки PRINT# и INPUT# -
                     после  вопроса  Retry,  Abort,
                     Ignore? или  нажатия BREAK бу-
                     дет что угодно.
Ошибка настройки на диск - 
                     не проверяется возможность ис-
                     пользования дисковода в требу-
                     емом режиме. Совершенно непра-
                     вильно обрабатывается DISC ER-
                     ROR.
Ошибка READ ONLY -   при попытке записи на 40-доро-
                     жечный диск 80-дорожечном дис-
                     ководе сообщение выдается пра-
                     вильно, но в  переменной 23823
                     вместо кода ошибки будет копия
                     переменной с типом дисковода.
Ошибка BREAK -       при нажатии BREAK выдается со-
                     общение   BREAК  INTO  PROGRAM
                     вместо BREAK-CONT REPEATS.

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



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

От редакции - мне установили какой-то pеликтовый IBM PC, скоpее всего 286 с ОЗУ 1024 кБ.

Железо - схема Псевдо Турбо для Скорпиона (ускорение 3%).

Что-где-почем - в Центpальном Унивеpмаге на тpетьем этаже откpылась новая секция pадиотоваpов.

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

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

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

Музыка - Лиpический номеp с пластинки HARD DAYS NIGHT (солист- П.Маккаpтни).

Реклама - Пpодается пpинтеp МС 6337. Hедоpого.


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

Похожие статьи:
Paradox - Paradox 2000 глазами очевидцев.
Мнение - Scratcher из E-MAGE Group делится впечатления о демах с Enlight'97.
Тема - Новый перекресток - кое-что из сложностей игры The Castle.

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