TR-DOS 1969 г.

Программистам - Программирование машинного кода. Сообщение об ошибках. Неавтономные сообщения. Коды ошибок. Информация о TRDOS.


     14. Программирование машинного кода.
                                                                       
     Включение стандартных программ TRDOS в программы машинного  ко-
да  производится относительно просто.ля программы требуется три эле-
мента:
     1-машинный код,эквивалент BASIC TRDOS.
     2-стандартная программа машинного кода для ввода пункта 1.
     3-стандартная программа в машинных  кодах  для  восстановления
системы  до  ее первоначального состояния,до вызова и выполнения ко-
манды.
     Непосредственные ячейки  (местоположение)  памяти  зависят  от
программы  в целом.В данном примере ячейки стандартной программы бу-
дут в 49000 для SAVE,в 49500 для LOAD и в 50000 для команд их  вызо-
ва.Таким образом,элемент 1 будет на 49000 или на 495000,а элементы 2
и 3 на 50000.
                                                                       
Пример:
Адрес:   Код:    BASIC   Примечания:
49000    234      REM    Коды,как в приложении A  SPECTRUM
49001     58       :              ручной
49002    248      SAVE
49003    34        "
49004    69        E
49005    120       X
49006    97        @      Название файла "EXAMPLE"
49007    109       M
49008    112       P
49009    108       1
49010    101       E
49011    34        "
49012    13       ENTER   Всегда заканчивается указанием
                                  ENTER
                                                                       
     Код для LOAD начинается в 49500 и представляет собой то же,что
и вышеприведенный,за исключением  того  что  адрес  49502  содержит
239(LOAD) вместо 248(SAVE).
     Эти две стандартные программы,LOAD и SAVE,могут быть расположе-
ны где угодно,но инициатор,который мы помещаем на 50000,требует  из-
менения  в адресе 50007-50008 (запись адреса стандартной программы)
и  50025-50026  (адрес стандартной программы LOAD) с тем ,чтобы ука-
зать на новые адреса.
     Чтобы произвести  перераспределение,следует  переассеблировать
сам  инициатор.Это  показано  ниже в мнемонике Z80 ниже даны только
280 мнемосхем.
     CHADD     EQU   23645   Местоположение переменной SOS CHADD
     ORG      XXXXX          XXXXX-адрес этого кода.
     LD       HL,(CHADD)     Начало записи истинного CHADD
     LD       (TEMP),HL      Временное хранение истинного CHADD
     LD       HL,49000       Адрес стандартной программы SAVE
     LD       (CHADD),HL     CHADD теперь указывает на нашу
                             стандартную программу.
     CALL      15363         Ввод TRDOS SAVE через CHADD.
     JP        BACK          Переход на ту точку,с которой вызвана
                             вся эта стандартная программа.
     LD        HL,(CHADD)
     LD        (TEMP),HL      Стандартная программа для LOAD
                              повторяет вышеназванное,только с
                              измененным адресом.
     LD        HL,49500
     CALL      15363
     BACK LD HL,(TEMP)        Начало восстановления CHADD
     LD        (CHADD),HL     Повторная загрузка первоначального
                                  CHADD
     RET                      Возврат
     TEMP                     Метка распределяющая память для
     МЕТКИ                    временного хранения.

     Вся  стандартная  программауказывающая  на  программы  SAVE  и
LOAD,вместе с конечной процедурой "возврат к точке захода",занимает
только 47 байтов.


     15. Сообщения об ошибках.

     15.1. Неавтономные сообщения.

     Когда  вы вводите команду в TRDOS, команда будет выполнена при
условии,  что  она достоверна.Если эта команда не относится к числу
вызванных TRDOS,(LOAD,RUN,FORMAT и т.д.) TRDOS проигнорирует ее.Ес-
ли имеется синтаксическая ошибка или ошибка возникает привыполнении
команды,на дисплее появится сообщение об ошибке.Ниже приведены  со-
общения об ошибках и причины их вызывающие.
     1-NO DISK  (диск отсутствует)
      диск  отсутствует,или в дисководе неформатированный диск,или
      открыта заслонка диска.На  экране  возникает  команда  после
      подсказки  A>,вы можете вставить диск и/или закрыть заслонку
      дисковода и нажать ENTER для выполнения той же самой команды.
     2-NO FILE(S) (нет файла(ов))
      TRDOS не может найти файла  на  диске.Эта  ошибка  появляется
      также в случае использования любой команды,которая неправиль-
      но обозначает файл,например:
      LOAD"TEST"CODE  вместо того,чтобы LOAD"TEST"
      ERASE"DUMMY1"DATA вместо того,чтобы ERASE"DUMMY2"DATA
     3-*ERROR*
      это  сообщение появляется,если в команде,которую вы напечата-
      ли,есть синтаксическая ошибка,например:
      SAVE"CJ""
      ERASE
      ошибка в команде SAVE - это лишние кавычки,а  название  файла
      отсутствует в команде ERASE.
     4-OUT OF MEMORY (вне памяти)
      это сообщение появится при загрузке программы с диска  и  при
      отсутствии  достаточного места в памяти для нее и при исполь-
      зовании команды MOVE,если в наличии нет 4 Кбайт  необходимого
      рабочего  пространства.Эта проблема обычно решается с помощью
      сброса компьютера.
     5-FILE EXISTS (файл существует)
      файл того же названия и типа,который вы пытались записать,уже
      существует на диске.
     6-OVERWRITE EXISTING FILE ? (Y/N)
      перезапись на существующий файл?(д/н).Это сообщение появляет-
      ся при копировании всех файлов с одного диска  на  другой.Уже
      существует  файл  с таким названием и такого же типа на диске
      назначения.Вы можете ввести Y с целью перезаписи на существу-
      ющий файл или N с целью игнорированния этого файла.
     7-DISK ERROR (ошибка на диске)
      на диске имеется неисправность на дорожке XX,в секторе YY,как
      указано в сообщении.У вас есть три выбора:вы можете напечатаь
      "R",чтобы сделать повторную попытку и,в  большинстве  случаев
      успешно завершить повторную операцию; "A"-чтобы прервать опе-
      рацию и вернутся в TRDOS; "I"-чтобы проигнорировать этот сек-
      тор и продолжить работу с остальными операциями.
        DISK ERROR
        TRK XX SEC YY
        RETRY,ABORT,IGNORE ?

     8-WRITE PROTECT (защита от записи)
      диск защищен от записи.Как и вышеприведенном варианте сущест-
      вует  три  выбора.Однако  нет смысла делать повторную попытку
      если вы не изменили диск или не сделали его незащищенным.

        DISK WRITE PROTECT
        TRK 0 SEC 1
        RETRY,ABORT,IGNORE ?

     9-VERIFY ERROR (ошибка проверки)
      это  сообщение  может  появится,когда  используется   команда
      VERIFY  (проверка).Сообщение  информирует,что файл на диске -
      не тот же,что и файл в памяти.



     15.2  Коды ошибок.

     Все вышеназванные сообщения об ошибках появляются только  тог-
да,  когда  ввод0  производится с TRDOS. Если команда была выдана с
SOS или с машинного кода, либо в качестве  прямого  кода,  либо  из
программы, на экране не появится никакого сообщения. Однако они за-
писываются в виде CODE в регистровой паре Z80. Для кода используют-
ся следующие значения:

     0  - нет ошибок.
     1  - нет файла.
     2  - файл существует.
     3  - нет пространства.
     4  - указатель переполнен.
     5  - переполнение номера записи.
     6  - нет диска.
     7  - ошибка на диске.
     8  - ошибка синтаксиса.
     10 - поток уже открыт.
     11 - диск не форматирован.
     12 - поток не открыт.

     Чтобы  получить код ошибки, устанавливается переменная, равная
команде TRDOS. Эта переменная примет величину кода ошибки по завер-
шению команды TRDOS.

     Пример 1:
     LET A=USR 15619:REM:CAT

     Пример 2:
     Простая программа, иллюстрирущая использование кода ошибки 1:

     10 CLEAR 65367
     20 LET ERR=USR 15619:REM:LOAD "COPY"CODE
     25 REM ERROR CODE IS RETURNED IN THE VARIABLE ERR
            ( код ошибки возвращается в переменную ERR)
     30 IF ERR=1 THEN CLS"PRINT AT 10,1:"""COPY"CODE NOT
                ON DISK":STOP
     40 RANDOMIZE USR 32768
     50 RANDOMIZE USR 15616

     16. Информация о TRDOS.

     1 - TRDOS занимает 112 байтов памяти с произвольным доступом.
     2 - Без подсоединенной TRDOS RAM пользователя начинается C:
         (А) - адрес 23755 без подсоединенного интерфейса 1
         (Б) - адрес 23812 с подсоединенным интерфейсом 1
     При подсоединенной TRDOS RAM пользователя начинается C:

         (А) - адрес 23867 дез подсоединенного интерфейса 1
         (Б) - адрес 23925 с подсоединенным интерфейсом 1

     Чтобы записать/загрузить/прогнать программу, которая использу-
ет байты между 23759 и, допустим 23925, нужно следовать  процедуре,
описанной в разделе 11.3 (волшебная кнопка).

     3  -  TRDOS  использует сектора диска для хранения (см. Раздел
1.2) если количество байтов превышает 256, используется другой сек-
тор. Это продолжается до тех пор, пока не происходит  запись  всего
файла.  Для  записи 522 байтов потребуется 3 сектора. Третий сектор
содержит только 10 байтов. Только эти 10 байтов будут  загружены  с
диска.

     4 - В дополнение к 112 байтам RAM TRDOS также используется бу-
фер  в  256  байтов,  при осуществлении доступа к диску. Этот буфер
имеет динамеческое распределение . При выполнение большого количес-
тва команд TRDOS сначала сдвигает программу BASIC (если таковая су-
ществует) вверх с целью создания буфера. После  завершения  команды
программа  BASIC  передвигается назад к своей исходной позиции. Эта
операция происходит незаметно.
     5 - Команда MOVE требует 4К (минимум) из SPECTRUM RAM в качес-
тве рабочего пространства. Если MOVE выполняется, а программа еще в
памяти, необходимо перевести компьютер в исходное состояние и затем
выполнить команду MOVE. Перевод компьютеря в исходное состояние мо-
жет быть осуществлен с помощью возврата к SOS и ввода RANDOMIZE USR
0 или с помощью положения "сброс" на системном переключателе.

     6 - На одном диске может хранится до 128 файлов.


     17. ХХХХХХХХХХХХХ ХХХХХХХ  ХХХХХХ

     Соединения PIN соединителя дисковода.
     Соеденитель дисковода (см.  диаграмму  1)  спроэктирован  так,
чтобы  он был совместим с SHUGART, а штирьковые соединения перечис-
лены ниже.
     OV-1   2 -
     OV-3   4 -
     OV-5   6 -  Выбор дисковода "D:"
     OV-7   8 -  Индекс.
     OV-9   10 - Выбор дисковода "A:"
     OV-11  12 - Выбор дисковода "B:"
     OV-13  14 - Выбор дисковода "C:"
     OV-15  16 - Загрузка головки (LOAD HEAD)(MOTOR ON)
     OV-17  18 - Направление
     OV-19  20 - Шаг.
     OV-21  22 - Запись данных.
     OV-23  24 - С вожможностью записи.
     OV-25  26 - TRACK ZERO (нулевая дорожка).
     OV-27  28 - Защита записи.
     OV-29  30 - Считывание данных.
     OV-31  32 - Сторона 1.
     OV-33  34 -


     Распределение штырьков соеденителя, если смотреть на  дисковый
интерфейс справа, (см. диаграмму), выглядит следующим образом:

     2 4                             34
     0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     1 2                             33



СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



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

Похожие статьи:
Post... - Как будут выглядеть похороны RIP'a ?
Обозрение - Gateway выпускает остатки Amiga.
Реклама - Продается пакет для говна. Версия "Фекалии-07".
Наши новости - Последние новости от EXPERIENCE.
Новости - написал 3D-движок типа Total Eclipse, Продолжаю собирать материалы по истории Спектрума, плотно занялся компилятором собственного Си-подобного языка.

В этот день...   20 апреля