Закрыть окно         Список других документов библиотеки Серкова

9F78-9F82  Завершение команды RUN, прерванной загрузкой
           ОЗУ-версии Бейсика. Сбросить флажок "прерывания"
           RUN. Вызвать ¤A851 для восстановления системных 
           программ перехвата CSWL/KSWL. Перейти на ¤A4DC для
           завершения команды RUN.

9F83-9F94  Сканирование команд DOS при выходе в Бейсик.
           Если первый символ командной строки - УПР-D, то 
           выйти с отображением(¤9F95). В противном случае
           установить параметры так, что Бейсик не обнаружит
           команду DOS(передать ему строку нулевой длины).
           Пройти на выход с отображением.

9F95-9FB0  Отображение символа на экране (при определенных
           условиях) и выход из DOS:
  9F95  Отобразить символ, только если включен MON C, иначе
        перейти на ¤9FB3;
  9F99  Отобразить символ, только если включен MON O, иначе
        перейти на ¤9FB3;
  9F9D  Отобразить символ, только если включен MON I, иначе
        перейти на ¤9FB3;
  9FA4  Отобразить символ в любом случае.
        Вызвать ¤9FBA для восстановления регистров при входе в
        DOS. Вызвать ¤9FC5 для отображения символа на экране.
        Сохранить содержимое регистров после отображения.
        Пройти в программу выхода из DOS и восстановления
        регистров.

9FB3     Подпрограмма выхода из DOS и восстановления регтстра
         S. Обратиться к ¤A851, чтобы восстановить KSWL/CSWL
         (клавиатурный и видеоперехват USERа), восстановить 
         регистр S, чтобы после RTS не выходить в DOS

9FBA     Подпрограмма "восстановить регистры DOS". Восстано-
         вить регистры от первого входа в DOS и вернуться.

9FC5-9FC7  Прыжок JMP к подпрограмме записанной в CSWL

9FC8-9FCC  Пропустить одну строку на экране. Загрузить ¤8D и
           вывести его через 9FC5.

9FCD-A179  Общие подпрограммы анализа команды поступившей в 
           DOS. Установить индекс команды -1. Переустановить
           командный флаг соответственно с индексом ожидаемой
           команды

   9FD6    Прибавить 1 к индексу команды. Если первый символ 
           упр-D, то его пропустить. Обратиться к ¤A1A4, что-
           вы пробежать по командной строке пока не будет 
           найден символ отличный от пробела. Сравнить коман-
           ду с именем команды в таблице команд расположенной
           по адресу ¤A884 для текущего командного индекса.
           Если сравнение не дает положительного результата,
           но если остались другие входы для проверки, то 
           вернуться ¤9FD6 для получения следующего символа
           команды. Если проверка прошла успешно до конца, то
           перейти на ¤A01B для дальнейшей проверки.
           Если же команда не найдена в таблице и других вхо-
           дов для проверки нет, то проверить является ли
           первый символ упр-D. Если да, то пойти на ¤A6C4
           для печати "SYNTAX ERROR". Иначе, обратиться по
           адресу ¤A75B для переустановки флага теплого ста-
           рта DOS и перейти на ¤9F95, чтобы сделать команду
           эхом и выйти (должно быть это команда для BASICа,
           а не для DOS.

   A01B   Поместить сосчитанный индекс в таблицу для тех
          команд, которые были введены. Обратиться к ¤A65E,
          чтобы убедиться, что программа BASICа исполняется
          Если нет, и если команда не является прямой ко-
          мандой с клавиатуры (в соответстви с таблицей 
          операндов), то перейти на ¤A602 для печати ошибки
          "NOT DIRECT COMMAND" ("НЕ ПРЯМАЯ КОМАНДА").В
          противном случае, если введенная команда - RUN, то
          сделать символ-подсказку(яч.¤33) непечатаемым.
          Проверить по таблице операндов, является ли первое
          имя файла разрешенным операндом для этой команды.
          Если нет, то перейти на ¤A0A0. Если да, то очистить
          буфер имени файла (вызвать ¤A095). Продвинуться по
          строке до следующего отличного от пробела символа
          (вызвать ¤A1A4) и скопировать операнд имени файла
          в буфер первого имени файла. Пропустить все 
          остальные символы до запятой, если она еще не 
          найдена. Если для данной команды разрешено имя 
          второго файла, использовать программу, описанную
          выше, для копирования этого имени в буфер второго
          имени файла. Проверить, не являются ли пустыми оба
          имени файла. Если имя требуется для команды, а оно
          не задано, то выдать синтаксическую ошибку или
          передать ее Бейсику (как, например, в случае 
          применения команды LOAD без операндов). Если все
          было правильно, то перейти на ¤A0D1.
  A095  Подпрограмма очистки обоих буферов имен файлов;
  A0A0  Сигнализировать о том, что имя файла не анализировалось
        и проверить по таблице операндов, ожидается ли наличие
        позиционного операнда. Если нет, то перейти на ¤A0D1
        для продолжения. В противном случае вызвать ¤A1B9 для 
        преобразования числового операнда. Если число
        пропущено, то выдать SYNTAX ERROR. Если преобразованное
        число >16, то выдать RANGE ERROR. Если предполагается,
        что число должно быть номером разъема, то выдать
        RANGE ERROR, когда число >7 или =0;
  A0D1  Установить значения по умолчанию для операндов 
        ключевых слов(V=0,L=0,B=0);
  A0E8  Получить индекс смещения в строке и продвинуться до 
        следующего отличного от пробела символа, пропуская
        встречающиеся запятые. Если конец строки еще не 
        достигнут, то перейти на ¤A10C. Проверить, не заданы ли
        ключевые слова, не разрешенные для этой команды.
        Если нет, то перейти на ¤A17A для исполнения команды.
  A10C  Отыскать ключевое слово из командной строки в таблице
        действительных ключевых слов(¤A941). Если не найдено, 
        то выдать SYNTAX ERROR. Получить номер битовой позиции
        флажка, соответствующего данному ключевому слову.
        Если ключевое слово не имеет числового операнда, то 
        перейти на ¤A164. В противном случае сигнализировать 
        флажком, какое ключевое слово найдено. Преобразовать
        числовое значение, ассоциированное с этим ключевым
        словом. Если значение задано неверно, то выдать
        SYNTAX ERROR. Проверить, лежит ли число в допустимых 
        пределах согласно таблицы диапазонов значений ключевых
        слов(¤A955). Сохранить значение ключевого слова в 
        таблице значений ключевых слов(¤AA66). Перейти к
        анализу следующего ключевого слова, вернуться на ¤A0E8.
  A164  Сигнализировать о том, что были получены ключевые 
        C, I или O. Модифицировать соответствующим образом
        значение MON в таблице значений ключевых слов.
        Перейти к анализу следующего ключевого слова, вернуться
        на ¤A0E8.

A17A-A17F  Вызвать ¤A180 для исполнения команды, затем выйти
           с отображением через ¤9F83.

A180-A192  Выполнить команду.
           Сбросить сотояние видеоперехвата в 0. Очистить
           список параметров мененджера файлов. Используя
           индекс команды, получить адрес программы
           обслуживания команды из таблицы программ обработки
           команд (¤9D1E) и перейти к этой программе, которая
           по завершению выполнит возврат в вызывающую 
           программу.

A193-A1A3  Получить следующий символ из командной строки и
           проверить, является ли он возвратом каретки или
           запятой.

A1A4-A1AD  "Пробежать" по командной строке, пока не будет
           найден символ, отличный от пробела.

A1AE-A1B8  Заполнить список параметров менеджера файлов
           по адресу ¤B5BB нулями.

A1B9-A1D5  Преобразование числового операнда из командной
           строки. Вызвать либо ¤A1D6(десятичное 
           преобразование), либо ¤A203(шестнадцатиричное
           преобразование), в зависимости от того, есть ли
           в операнде знак "¤".

A1D6-A202  ПП десятичного преобразования.

A203-A228  ПП шестнадцатиричного преобразования.

A229-A22D  Программа обработки команды PR#n.
           Загрузить введенное число и выйти через ¤FE95 в
           ПЗУ Монитора.

A22E-A232  Программа обработки команды IN#n.
           Загрузить введенное число и выйти через ¤FE88 в
           ПЗУ Монитора.

A233-A23C  Программа обработки команды MON.
           Добавить новые флажки MON к старым в яч.¤AA5E и
           выйти.

A23D-A250  Программа обработки команды NOMON.
           Если было задано C, то вывести возврат каретки,
           поскольку данная строка была отбражена, а ее
           возврат каретки - нет. Сбросить необходимые биты
           в яч.¤AA5E и выйти.

A251-A262  Программа обработки команды MAXFILES=n.
           "Отключить" любой активный исполняемый файл, закрыть
           все открытае файлы, вызвав ¤A316. Установить новое
           число для MAXFILES в яч.¤AA57. Перейти на ¤A7D4 для
           перестроения буферов файлов и выйти.

A263-A270  Программа обработки команды DELETE.
           Загрузить код операции удаления файла мененджера
           файлов, вызвать открывающий драйвер (¤A2AA) 
           мененджера файлов для выполнения удаления. Найти
           буфер файла, использованный при удалении, и 
           освободить его(вызвать ¤A764). Выйти в вызывающую
           программу.

A271-A274  Программа обработки команды LOCK.
           Загрузить код операции защиты файла мененджера 
           файлов и перейти на ¤A277.

A275-A27C  Программа обработки команды UNLOCK.
           Загрузить код операции снятия защиты файла;
  A277  Вызвать открывающий драйвер (¤A2AA) мененджера файлов 
        для выполнения соответствующей функции. Вернуться в
        вызывающую программу через закрытие файла (¤A2EA).

A27D-A280  Программа обработки команды VERIFY.
           Загрузить код операции и перейти на ¤A277 для
           выполнения функции.

A281-A297  Программа обработки команды RENAME.
           Загрузить код операции и адрес второго имени файла
           в список параметров мененджера файлов. Вызвать
           драйвер мененджера файлов по адресу ¤A2C8 и выйти
           через закрытие файла (¤A2EA).

A298-A2A2  Программа обработки команды APPEND.
           Вызвать ¤A2A3 для открытия файла. Считывать файл
           байт за байтом, пока не встретится ¤00. Если флажок
           команды APPEND установлен, то прибавить еденицу к
           номеру записи и сбросить флажок. Выйти через
           вызов POSITION.

A2A3-A2A7  Программа обработки команды OPEN.
           Установить тип файла T и перейти на ¤A3D5 для
           открытия файла.

A2A8-A2E9  Обобщенная программа управления файлами при 
           обработке команд. Установить код операции OPEN.
  A2AA  Если значение L не было задано в команде, использовать
        0001 и сохранить длину записи в списке параметров
        мененджера файлов;
  A2C8  Закрыть файл, если он уже открыт. Есть свободный буфер
        файла? Если нет, то вывести NO FILE BUFFERS AVAILABLE.
        Ввести в яч.¤40-41 указатель свободного буфера.
        Скопировать имя файла в буфер(занять буфер) ¤A743.
        Скопировать указатели буфера в списке параметров
        мененджера файлов (¤A74E) и завершить заполнение
        списка параметров (¤A71A). Установить код операции и
        выйти через драйвер мененджера файлов.

A2EA-A2FB  Программа обработки команды CLOSE.
           Если имя файла не было задано как часть команды, то
           перейти на ¤A316, чтобы закрыть все файлы.
           В противном случае найти буфер открытого файла с
           данным именем(¤A764). Если такого открытого файла
           нет, то выйти в вызывающую программу. В противном
           случае закрыть файл и освободить буфер (¤A2FC).
           Вернуться назад через программу обработки команды
           CLOSE, чтобы удостовериться в том, что для данного
           файла нет больше открытых буферов.

A2FC-A315  Закрыть файл и освободить его буфер.
           Выяснить, не принадлежит ли этот буфер исполняемому
           файлу (¤A7AF). Если да, то сбросить флажок команды
           EXEC. Освободить буфер записав ¤00 в первый байт
           поля имени файла. Скопировать указатели буфера файла
           в списке параметров мененджера файлов. Установить
           код операции и выйти через программу драйвера
           мененджера файлов.

A316-A330  Закрыть все открытые файлы.
           Установить указатели первого буфера файла(¤A792).
           Перейти на ¤A320;
  A31B  Установить указатели следующего буфера файла в цепочке
        (¤A79A). Если достигнут конец цепочки, то выйти в
        вызывающую программу;
  A320  Этот буфер принадлежит исполняемому файлу ?
        Если да, то пропустить его и вернуться на ¤A13B.
        В противном случае закрыть и освободить его (¤A2FC).
        Перейти на ¤A316, чтобы начать все сначала.

A331-A35C  Программа обработки программы BSAVE.
           Проверить заданы ли в команде ключевые слова A и L.
           Если нет, то вывести SYNTAX ERROR. Иначе открыть и
           проверить файл типа B (¤A3D5). Записать значения 
           ключевых слов A и L первые четыре байта файла.
           Использовать значение A для выхода с записью ряда
           байтов в файл.

A35D-A38D  Программа обработки команды BLOAD.
           Открыть файл, игнорируя его тип. Убедиться, что
           тип файла - B. Если нет, то вывести FILE TYPE 
           MISMATCH. Иначе открыть файл типа B и проверить
           тип файла (¤A3D5). Прочитать величины A и L. Если
           они не были заданы в команде, то использовать 
           только что прочитанную величину. Перейти на ¤A471
           для считывания ряда байтов из файла в память.

А38Е-А396  Программа обработки команды BRUN.
           Вызвать программу обработки команды BLOAD для 
           загрузки файла в память. Восстановить системные
           программы перехвата. Выйти из DOS, совершая
           безусловный переход по адресу, равному величине A,
           для начала выполнения загруженной программы.

A397-A3D4  Программа обработки команды SAVE.
           Получить тип активного Бейсика (¤AAB6).
           Если Бейсик целочисленный, то перейти на ¤A3BC.
           Если Бейсик типа APPLESOFT, то проверить флажок в
           яч.¤D6, чтобы выяснить, защищена ли программа в
           памяти. Если да, то вывести PROGRAM TOO LARGE.
           Иначе открыть и проанализировать файл типа A(¤A3D5).
           Вычислить длину программы (PGMEND-LOMEM),
           записать эту двухбайтную величину в 
           файл. Выйти через запись, начиная с LOMEM, копии
           программы как ряда байт (¤A3FF);
  A3BC  Открыть и проанализировать файл типа I (¤A3D5).
        Вычислить длину программы (HIMEM-PGMSTART), записать
        эту двухбайтную величину в файл. Выйти через запись,
        начиная с PGMSTART, копии программы как ряда байт
        (¤A3FF).

A3D5-A3DF  Открыть файл и проверить его тип.
           Установить требуемый тип файла в списке параметров
           мененджера файлов. Вызвать ¤A2A8 для открытия файла
           и перейти на ¤A7C4 для проверки типа файла.

A3E0-A3FE  Запись двухбайтовой величины в открытый файл.
           Сохранить величину в списке параметров мененджера
           файлов, установить код операции записи одного байта.
           Вызвать драйвер мененджера файлов. Вызвать его вновь
           для записи второго байта и выйти в вызывающую
           программу.

A3FF-A40F  Чтение/запись ряда байтов.
           Установить адрес ряда, подтип операции чтения/записи
           ряда байтов в списке параметров мененджера файлов.
           Вызвать драйвер мененджера файлов, закрыть файл.
           Выйти через программу обработки команды VERIFY,
           чтобы убедиться в верности записи.

A410-A412  Вывод сообщения FILE TYPE MISMATCH.

A413-A479  Программа обработки команды LOAD.
           Закрыть все файлы (¤A316). Открыть файл, названный
           в запросе. Это файл типов A или I ?
           Если нет, то вывести FILE TYPE MISMATCH.
           Какой Бейсик активен ? Если целочисленный, то
           перейти на ¤A450. Иначе выбрать APPLESOFT BASIC
           (¤A4B1). В результате этого вызова DOS может
           передать управление, если должна запускаться
           ОЗУ-версия. Прочитать первые два байта файла как
           длину. Вычислить адрес конца программы. Он > HIMEM ?
           Если да, то закрыть файл и вывести PROGRAM TOO 
           LARGE. Установить указатели конца программы и начала
           области переменных. Считать программу в память по
           адресу начала программы как ряд байтов. Восстановить
           системные программы перехвата (¤A851). Перейти к
           перемещающей программе Бейсика для преобразования
           ОЗУ-версии APPLESOFT-программы в формат ПЗУ-версии,
           если это необходимо;
  A450  Выбрать целочисленный Бейсик (¤A4B1). Прочитать длину
        программы из первых двух байт файла, вычислить адрес
        начала программы (HIMEM-LENGTH). Если результат нулевой
        или < LOMEM, вывести PROGRAM TOO LARGE и закрыть файл.
        Иначе установить указатели начала программы и считать
        программу в память как ряд байтов.

A47A-A4AA  Прочитать два байта из файла (адрес или длину).
           Установить величины в списке параметров для 
           считывания двух байтов в поле длины ряда (¤AA60) и
           вызвать драйвер мененджера файлов. Сохранить 
           прочитанную величину в списке параметров мененджера
           файлов в качестве длины ряда только в том случае,
           если это была длина.

A4AB-A4B0  Закрыть файл и вывести сообщение PROGRAM TOO LARGE.

A4B1-A4D0  Выбрать Бейсик требуемого типа.
           Если требуемый Бейсик уже активен, то выйти в
           вызывающую программу. Иначе сохранить текущий 
           индекс команды в случае, если требуется запустить
           APPLESOFT BASIC. Если же нужен целочисленный Бейсик,
           то перейти на ¤A59E для его выбора. В противном
           случае скопировать первое имя файла во втором 
           буфере, чтобы сохранить имя в том случае, если
           понадобится ОЗУ-версия Бейсика. Перейти на ¤A57A
           для его подключения.

.ст DOS (логика)3

Закрыть окно         Список других документов библиотеки Серкова