cpm.txt

(124 KB) Pobierz
                          ОГЛАВЛЕНИЕ

      1. Введение
      2. Архитектура CP/M
         2.1. Секция CCP (Консольный процессор команд)
         2.2. Секция BDOS ( Базовая дисковая операционная
         система)
         2.3. Секция BIOS (Базовая система ввода-вывода)
      3. Использование BDOS функций в пользовательских
         программах
         3.1. Логическая структура и файловая организация
         3.2. Функции BIOS для работы с файлами
         3.3. Функции BIOS для работы с дисками и
              пользовательскими областями.
         3.4. Загрузка и выполнение программ
                3.4.1. Выполнение программ
                3.4.2. Поиск и загрузка программ
                3.4.3. Передача параметров
                3.4.4. Завершение работы программы
         3.5.Работа со стандартными символьными устройствами
                3.5.1. Функции для работы с клавиатурой
                3.5.2. Функции работы с экраном
                3.3.3. Функции для работы с внешними устройствами
                3.3.4. Дополнительные функции BDOS.
      4. Использование базовой системы ввода-вывода (BIOS)
         4.1. Работа с клавиатурой.
         4.2. Работа с устройством вывода.
         4.3. Работа с последовательным интерфейсом.
         4.4. Работа с дисководами.
      5. Программирование на языке ассемблера
         5.1. Формат исходного текста программы.
         5.2. Константы и выражения
         5.3. Директивы программы ассемблера.
      6. Программа ASM (Digital Research)
         6.1.Обращение к программе ASM.
         6.2. Опции программы ASM.
         6.3. Сообщения об ошибках при ассемблировании.
      7. Макроассемблер MAC (Digital Research).
         7.1. Дополнительные возможности макроассемблера
         7.2. Макросредства.
         7.3. Встроенные макрокоманды.
      8. Макроассемблер RMAC (Digital Research).
         8.1. Директивы ассемблера.
      9. Макроассемблер MACRO-80 (Microsoft)
         9.1. Обращение к программе MACRO-80.
         9.2. Дополнительные директивы MACRO-80.
     10. Компоновщик
        10.1. Обращение к компоновщику
        10.2. Ключи компоновки
        10.3. Сообщения об ошибках
     11. LIB - библиотекарь
        11.1. Обращение к библиотекарю
        11.2. Задание файлов-источников
        11.3. Ключи библиотекаря
        11.4. Сообщения, выдаваемые библиотекарем
     12. Программы дизассемблера (REZILOG и RESOURCE).
     13. Программы отладки (SID, ZSID)
        13.1. Обращение к программе
        13.2. Краткий список команд отладчиков.


      1. Введение

      Среди операционных  систем  для  персональных  компьютеров
система CP/M занимает особое место. Это  обстоятельство обуслов-
лено тем, что разработанная фирмой Digital Research операционная
система для 8-и разрядных персональных машин на  базе процессора
INTEL 8080 стала фактическим стандартом для машин  этого класса.
дальнейшей популярности системы способствовала ее  поддержка ве-
дущими фирмами по  производству  программного  обеспечения.  Для
CP/M разрабатывали программы такие монстры в  области разработки
программ, как Microsoft, Action Tate и многие  другие.  На  базе
CP/M были созданы и многопользовательские и сетевые версии сист-
емы. Быстрое развитие аппаратных средств привело к созданию 16 и
32-х разрядных машин и возникновению  операционных  систем  типа
MS-DOS, ориентированных на более мощную  аппаратную архитектуру.
Однако CP/M продолжает оставаться одной из  лучших  операционных
систем для машин с ограниченными аппаратными возможностями.

      2. Архитектура CP/M

      Операционная система CP/M ориентирована  на использование
8-и разрядных процессоров с оперативной памятью от 16 до  64 ки-
лобайт. Существуют версии для  процессоров  I8080,  I8085,  Z80,
Motorola 68000. В качестве терминала система использует алфавит-
но-цифровой дисплей.
      Распределение памяти под операционную систему приведено на
рисунке 1.
ЪДДДДДДДДДДДДДДї 0000
і Base         і
і page         і
ГДДДДДДДДДДДДДДґ 0100            ДДДї
і±±±±±±±±±±±±±±і                    і
і±±±±±±±±±±±±±±і                    і
і±±±±±±±±±±±±±±і                    і Область
і±±±±± TPA ±±±±і                    і
і±±±±±±±±±±±±±±і                    і пользовательских
і±±±±±±±±±±±±±±і                    і
і±±±±±±±±±±±±±±і                    і программ
і±±±±±±±±±±±±±±і                    і
ГДДДДДДДДДДДДДДґ xx00             ННµ
і    C C P     і                    і
і              і                    і Область
ГДДДДДДДДДДДДДДґ xx00+0800          і операционной
і     BDOS     і                    і системы
і              і                    і
ГДДДДДДДДДДДДДДґ xx00+1600          і CP/M
і     BIOS     і                    і
і              і                    і
АДДДДДДДДДДДДДДЩ zzFF (top of RAM) ДЩ

      На этом рисунке все адреса записаны в HEX  виде.  Величина
zz  определяется   об'емом   оперативной   памяти   по   формуле
zz=TOP_RAM/256. Величина xx является базой для  установки опера-
ционной системы. Ее величина так же определяется  об'емом опера-
тивной памяти, а так же об'емом, занимаемым  секцией  BIOS.  Вся
остальная оперативная память от 0 до xx00  служит  для  загрузки
пользовательских программ. Область памяти от 0 до FF  (128 байт)
служит для специальных целей. Все обращения к секциям DOS и BIOS
должны использовать вектора, расположенные в этой  области.  Это
обеспечивает переносимость программ на машины с  различными вер-
сиями CP/M и различной архитектурой ввода-вывода. Ячейки, распо-
ложенные в этой области имеют  строго  определенное  назначение,
которое приведено в таблице 1.
                                                Таблица 1.
ЪДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
іАдрес ячейки  і               Назначение                     і
і   (HEX)      і                                              і
ГДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і0000-0002     і Переход к подпрограмме "горячего" старта     і
і 0003         і  IOBYTE                                      і
і 0004         і  Текущий номер диска и пользовательской      і
і              і          области                             і
і 0005-0007    і  Вектор функций BDOS                         і
і 0008-0037    і  Зарезервированно для обработки              і
і              і  векторов машинных прерываний                і
і 0038-003A    і  Вектор RST 7. Используется программой DDT   і
і 003B-003F    і  Зарезервированно для обработки              і
і              і  векторов машинных прерываний                і
і 0040-004F    і  Зарезервированно для внутреннего            і
і              і  использования секцией BIOS                  і
і 0050    *    і  Команда управления приводом                 і
і 0051    *    і  Адрес пароля для первого FCB по умолчанию   і
і 0053    *    і  Длина пароля для первого FCB                і
і 0054    *    і  Адрес пароля для второго FCB по умолчанию   і
і 0056    *    і  Длина пароля для второго FCB                і
і 0057-005B    і  Зарезервированно                            і
і 005C-006B *  і  Первый FCB                                  і
і 006C-007F *  і  Второй FCB                                  і
і 0080-00FF    і  Буфер команд/дисковых операций по           і
і              і          умолчанию                           і
АДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Примечание:
1. Ячейки, помеченные * используются только для версий CP/M  3 и
   MP/M 2
2. Системы CP/M 1.4 ,CP/M 2.2 и MP/M используют  только  1  блок
   FCB,расположенный с адреса 005C.
3. Область 007D-007F зарезервирована для управления  файлами пря-
   мого доступа.

      2.1. Секция CCP (Консольный процессор команд)

      Секция CCP предназначена для интерпретации резидентных ко-
манд DOS. Состояние ожидания ввода команд  DOS  идентифицируется
наличием промпта A> на экране дисплея  (в  случае  использования
других дисков или USER областей промпт в общем  виде  имеет  вид
5A>, где 5-номер USER области от 0 до 15, A - имя диска от  A до
P). Символы, поступающие с клавиатуры запоминаются в буфере, на-
чиная с адреса 0080h После набора кода "Enter" или  при перепол-
нении входного буфера CCP начинает интерпретировать первое слово
входного буфера, как резидентную  команду.  Ограничителем  слова
является символ пробела. Если первое слово, расположенное  в бу-
фере не является резидентной командой, консольный  процессор на-
чинает поиск файла с расширением COM и именем, указанным  в пер-
вом слове входного буфера на текущем диске, или  при  отсутствии
файла с таким именем на текущем поиск продолжается  на системном
диске. Если поиск завершился успешно, в  область  TPA  с  адреса
100h загружается данный файл и на  него  передается  управление.
Если такого файла не существует, то командный  процессор  выдает
ошибку "Неверная команда". Такой механизм  интерпретации  команд
позволяет не делать различий между резидентными  и  загружаемыми
командами. Следующие за словом команды  слова  интерпретируются,
как параметры программы и могут использоваться программой  в ка-
честве входных параметров. Для упрощения работы  с  параметрами,
CCP имеет специальный буфер,  в  котором  содержится  разбор ко-
мандной строки. В таблице 2 приведено назначение ячеек этого бу-
фера.

                                                Таблица 2.
ЪДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
іАдрес ячейки     і              Назначение                    і
і   (HEX)         і                                            і
ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
іxx00+0007        і      Длина команды                         і
іxx00+0008        і    ...
Zgłoś jeśli naruszono regulamin