История отечественной вычислительной техники

Монитор ПК «Истра 4816»

Редакция от 12.12.90 г.

1. Аннотация

Данная версия  монитора  предоставляет  возможность динамической проверки и отладки  программ  на  аппаратуре  микропроцессорных контроллеров,  имеющих выход на CRT. В настоящем документе приведены сведения необходимые для работы с  монитором и его сопровождения. Этот файл ROMSID.DOC является неотъемлемой частью листинга монитора. 

2. Запуск монитора

Монитор инициализируется по сигналу "RESET" (холодный старт).

2.1. Характеристики монитора

    Монитор состоит из следующих файлов:

Название файла I

Версия I

Назначение

ROMSID.ASM

1.2

Реализация основных команд

I.ASM

1.2

Инициализация БИС

ROMEDT.ASM

1.0

Построчный редактор

ROMEDT.ASM

1.1

Поддержка построчного ввода

ROMEDT.ASM

1.2

Ассемблер/дисассемблер

3. Ввод директив монитора

3.1. Командная строка

Работа с монитором осуществляется путём ввода с клавиатуры командных строк.

Командная строка представляет собой предложение длиной до 122 символов. Первый символ в предложении является именем команды (директивы) монитора, а остальные символы являются параметрами. Лидирующие пробелы игнорируются.

!!Внимание:

В некоторых командах перед именем директивы может вводиться знак '-' , а после имени директивы знак
'W', которые определяют специальные режимы
исполнения директив.

После имени директивы может вводится до 3-х параметров директивы параметры разделяются пробелами или запятыми. Ввод директивы заканчивается вводом (нажатием клавиши) Enter.

3.2. Редактирование командной строки

До ввода Enter принятая командная строка может быть отредактирована после ввода символа Esc. Eсли Esc введён первым, то для редактирования вызывается предыдущая командная строка.

В режиме редактирования ввод с клавиатуры имеет следующую семантику: 

Esc

-выполняет всю строку;

Enter

-выполняет строку до положения курсора

<-

-курсор влево;

->

-курсор вправо;

HOME

-быстрое перемещение курсора на границы

-строки (стрелка справа налево);

^F,^D

-удаляет символ на который указывает курсор;

BS

-удаляет символ предшествующий курсору.

Все другие управляющие символы игнорируются. Все печатные символы будут введены в командную строку, начиная с текущего положения курсора.

3.3. Параметры директив монитора

Параметры могут быть простыми и сложными. Сложные параметры представляют собой арифметические выражения из простых параметров над простыми параметрами допускаются арифметические

операции '+' и '-' простые параметры:

  • шестнадцатеричное число со знаком;

  • десятичное число со знаком;

  • содержимое стека любой глубины со знаком;

  • сумма последнего принятого параметра со вновь принятым

  • символом ASCII.

3.4. Синтаксис простых параметров

Шестнадцатеричное число со знаком:

        -представляет собой комбинацию цифр от 0 до 9 и букв

         от А до F. Может содержать произвольное количество

         символов, однако в качестве параметра воспринимаются

         четыре последних.

Десятичное число со знаком:

        -должно начинаться с символа '#'. Может содержать произвольное количество цифр. Т.к преобразование осуществляется по модулю 65536, то при вводе значений          больших 65536 получается параметр равный разности между введённым значением и 65536.

Содержимое стека:

        -представляет собой символ '^'. Количество таких введённых символов определяет глубину стека, из которой берётся значение параметра.

Символ ASCII:

        -представляет собой печатный символ заключённый в одинарные кавычки (').

     Положительные параметры не требуют перед собой ни какого знака перед отрицательными вводится знак '-'.

!!! Внимание:

         Если перед параметром вводится знак '+' , то он складывается с   последним введённым параметром.

4.0. Список команд монитора

Имя команды

Назначение команды   Стр.

A

запись в память программы с использованием ассемблерной мнемоники

B

загрузка операционной системы или вызов бейсика в зависимости от конфигурации системы

C

вызов пользовательской подпрограммы отладки

D

отображение содержимого области памяти;

E

поиск в заданной памяти байта или слова;

F

заполнение области памяти константой-байтом или словом;

G

запуск программы с установкой контрольных точек;

I

ввод байта из порта

J

препись монитора из ПЗУ в ОЗУ

H

шестнадцатеричная арифметика + и -

K

пропуск команды

L

отображение содержимого памяти в псевдоассемблере

M

пересылка блока памяти

O

вывод байта в порт

P

установка точек прохода

R

загрузка файлов из другой ЭВМ

Q

переназначение логических устройств

S

изменение содержимого памяти-байтами или словами;

T

трассировка программы с выводом на консоль;

U

трассировка программы без вывода на консоль;

X

проверка и изменение состояния флажков и регистров микропроцессора

V

сравнение двух областей памяти

Z

вызов монитора тестов

4.1. Д и р е к т и в а A S S E M B L Y

Директива позволяет заносить в память данные с использованием мнемокода.

Формат директивы:

    A

    AF

где F- начальный адрес занесения в память. Если F не вводится, то используется текущее значение PC директивы. Функционирование директивы: после приема параметра (если он есть) директива выводит на консоль адрес, по которому будет производится занесение и ожидает ввода мнемокода. Принятый мнемокод преобразуется в двоичную форму и заносится в память, после чего выводится следующий адрес и директива ожидает ввода следующего мнемокода. Завершается директива путём ввода пустого предложения , т.е 'возврата каретки'.

4.2. Д и р е к т и в а D I S P L A Y

Директива выводит на консоль содержимое памяти в HЕX-фор мате и кодах ASCII.

    Формат директивы:

        D

        DF

        DF,S

где F и S - параметры директивы

Функционирование директивы:

   в первом случае содержимое отображается с текущего адреса (сразу после инициализации 100H) и выводится 12 строк в виде:

   AAAA BB BB BB BB BB ..... BB BB        CCCCC.....CC

   где

   AAAA - начальный адрес отображения строки (шестнадцатеричный)

   BB   - байт памяти в шестнадцатеричной форме

   C    - байт памяти в коде ASCII, соответственно.

Если байт памяти не соответствует печатному символу кода ASCII то вместо него выводится символ '.' Во втором случае отображение начинается с адреса F, и выводится 12 строк. В третьем случае отображение начинается с адреса F, и продолжается до адреса S включительно.

Если после имени директивы вводится символ 'W' то директива выполняется в режиме двухбайтовых слов:

   AAAA BBBB BBBB.....BBBB CCCC......CC

   где

   BBBB - двухбайтовое слово памяти.

   Если перед именем директивы вводится знак '-', то содержимое памяти в кодах ASCII не выводится. Продолжительный вывод может быть прерван вводом любого символа с консоли.

4.3. Д и р е к т и в а  F I L L

Директива осуществляет заполнение памяти константой. Формат директивы:

     FF,S,T

     где

     F - начальный адрес памяти;

     S - конечный адрес памяти;

     Т - константа.

     Функционирование директивы:

     Заполнение памяти производится с начального адреса по конечный включительно. Конечный адрес всегда должен быть больше начального. Значения константы не должно превышать 255 (0FFH)

!!! Внимание:

       В директиве отсутствует контроль адресов на область операционной системы так как она предполагается в ПЗУ.

Расширение:

      FW<адр.нач.1><адр.кон.1><слово>

при этом запись: мл. байт - первым, старший - вторым.

4.4. Д и р е к т и в а   G O

Директива осуществляет   запуск на выполнение программы пользователя. Позволяет устанавливать в программе пользователя до двух контрольных точек. Кроме этого директивой осуществляется установка в программе пользователя до 8 точек прохода, заданных директивой 'PASS'.

Форматы директивы:

     G

     GF

     GF,S

     GF,S,T

     G,S G,S,T

     где

     F,S,T -параметры директивы

     Функционирование директивы:

     В первом случае программа пользователя запускается с текущего значения программного счётчика и установка точек прерывания не производится. Во втором случае запуск программы производится с адреса F, также без установки точек прерывания. В третьем и четвёртом случае осуществляется запуск программы с адреса F и установкой одной или двух точек прерывания в адресах S и T соответственно. В пятом и шестом случае производится запуск программы с текущего значения программного счётчика с установкой одной или двух точек прерывания в адресах S и T соответственно выполнение программы пользователя начинается со стартового адреса и осуществляется в реальном времени до достижения точки прерывания в программе или точки прохода. После достижения точки прерывания выполнение программы останавливается и на консоль выводится адрес, в котором произошло прерывание:

*AAAA

4.5. Д и р е к т и в а H E X

    Директива осуществляет преобразование из шестнадцатеричной системы счисления в десятичную и обратно, сложение и вычитание параметров, преобразования из символьной в двоичное представление и обратно.

Формат директивы:

      HF

      HF,S

Функционирование директивы:

   В первом случае выводятся:

  • шестнадцатеричное значение параметра F;

  • десятичное значение параметра F (с предшествующим знаком #)

  • символ АSCII в кавычках , соответствующий F (если есть).

   Во втором случае выводится сумма и разность параметров F и S.

4.6. Д и р е к т и в а  L I S T

   Директива выводит содержимое памяти, с использованием ассемблерной мнемоники.

   Формат директивы:

   L

   LF

   LF,S

   где

   F и S параметры директивы задающие начальный и конечный адрес памяти для вывода, соответственно.

    Функционирование директивы:

В первом случае выводится 12 предложений в ассемблерной мнемонике, начиная с текущего адреса. Во втором случае выводится 12 предложений, начиная с адреса F. В третьем случае выводится содержимое памяти в мнемонике с адреса памяти F до адреса S. При достижении точек прерывания или точек прохода, а также при использовании директив 'T' или 'U' текущее значение адреса директивы LIST устанавливается равным содержимому программного счётчика. В символическом режиме выводятся значения всех символических меток и переменных. Продолжительный вывод может быть прерван вводом с консоли любого символа.

4.7. Д и р е к т и в а  M O V E

    Директива позволяет пересылать данные из одного места памяти в другое.

   Формат команды:

    МF,S,T

    где

    F - начальный адрес пересылаемого блока

    S - коненый адрес пересылаемого блока

    T - начальный адрес, куда блок пересылается

!!!Внимание:

         Директива не проверяет начальный адрес, куда блок пересылается на принадлежность области операционной системы.

4.8. Д и р е к т и в а  P A S S

Директива заносит в таблицу точки прохода для отлаживаемой программы пользователя, которые затем на этапе динамической отладки программы пользователя устанавливаются в его программе действие этих точек похоже на действие точек прерывания, однако в отличие от последних они не сбрасываются при их достижении и и вновь устанавливаются при запуске программы. Кроме того точки прохода позволяют задавать количество проходов через эти точки, после чего происходит останов программы.

    Формат директивы:

    P

    PF

    PF,S

    -P

    -PF

    где

    F,S -параметры директивы первый и второй.

    Функционирование директивы:

    В первом случае выводятся все ранее установленные точки прохода в виде:

    NN AAAA .LABLE ,

    где

      NN    - количество проходов для точки прохода

      AAAA - адрес точки прохода в программе

      LABLE - символическая метка, соответствующая данному адресу точки прохода (Если такая существует и только в символическом режиме).

   Во втором случае устанавливается точка прохода с количеством проходов 1 по адресу F. В третьем случае устанавливается точка прохода по адресу F с количеством проходов S.

!!! Внимание

             Количество проходов не должно превышать 255.

   В четвёртом случае сбрасываются все точки прохода. В пятом случае сбрасывается точка прохода с адресом F. В режиме динамической отладки директива 'GO' при каждом проходе через точку прохода выводится сообщение:

хх PASS AAAA

где

     хх - количество оставшихся проходов для точки прохода в шестнадцатеричном виде.

   AAAA - адрес точки прохода.

Кроме этого выводится содержимое всех регистров и флажков 'CPU' после выполнения команды на которой установлена точка прохода при хх = 1 происходит останов программы.

!!! Внимание

     Всего может быть задано не более 8 точек прохода директива 'PASS' устанавливает точки прохода в программе пользователя.

4.9. Д и р е к т и в а  R E A D

     Выполняет загрузку отлаживаемых программ в HEX формате через параллельный интерфейс (8255)

Формат директивы:

   R

4.10. Д и р е к т и в а  S U B S T I T U T I O N

    Эта директива производит проверку и изменение содержимого памяти.

    Формат команды:

     SF

     где

       F - единственный параметр директивы, который может задаваться при вызове директивы - это начальный адрес для проверки и изменения содержимого памяти.

     Функционирование директивы:

По этой директиве выводится адрес F, и его содержимое и директива ожидает ввода параметра на который нужно изменить содержимое по адресу F. Если вводится только возврат каретки, то содержимое памяти не изменяется. Если вводится параметр, то по адресу F записывается его младший байт (если параметр 2-х байтовый) директива позволяет записывать в память коды ASCII. Для этого перед ними вводится символ двоичных кавычек. Если перед директивой стоит символ W, то директива будет работать в режиме слова, т.е вывод содержимого памяти и запись в память будет вестись двухбайтовыми словами, например:

     SW2100<вк>

4.11. Д и р е к т и в ы  UNTRACE и ТRACE

    Директива позволяет последовательно по шагам проследить выполнение программы пользователя.

    Формат директивы:

    Т

    ТF

    ТF,S

    где

      F - параметр директивы, определяющий количество трассировок;

      S - параметр директивы, определяющий адрес подпрограммы пользователя   для   обработки   внешнего    условия трассировки.

     Функционирование директивы:

В первом случае выполняется одна команда по адресу в программном счётчике. Во втором случае выполняется F последовательных команда. После выполнения каждой команды на консоль выводится состояние всех регистров и флажков CPU. При этом текущее значение PC для директивы 'L' устанавливается равным значению текущего PC, а для директивы 'D' - значению регистра . В третьем случае при выполнении внешнего условия трассировки управление передаётся подпрограмме пользователя с адресом S, которая обрабатывает внешнее условие трассировки.

!!!Внимание

          Устанавливаемые по команде 'P' точки прохода также действуют по директиве 'TRACE'.
          Все условия директивы 'TRACE' справедливы и для директивы 'UNTRACE'.

4.12. Д и р е к т и в а   E X A M I N A T E

    Директива позволяет контролировать и изменять текущее состояние регистров 'CPU'.

    Формат директивы:

        X

        XR

        где

             R - один из следующих элементов 'CPU':

                - C - флажок переноса

                - Z - флажок нуля

                - M - флажок минуса

                - E - флажок чётности

                - I - внутренний перенос

                - A - аккумулятор

                - B - регистр BC

                - D - регистр DE

                - H - регистр HL

                - S - указатель стека

                - P - программный счётчик

     Функционирование директивы:

     В первом случае состояние отображается в виде:

    CZMEI A=XX B=XXXX D=XXXX H=XXXX S=XXXX P=XXXX <мнемокод>

Мнемоники флажков выводятся только если флажок установлен в 1, иначе выводится символ '-'. В поле мнемоники команды выводится псевдоассемблерное представление команды, адрес которой содержится в программном счётчике. При этом, если это команда работы с памятью и мнемоническое обозначение памяти последнее в мнемокоде, то выводится содержимое памяти, например:

.....MOV А,М=40

(Примечание. Только в КРАМ-80, MDS-800, Intellec-II, III и IV: в символьном режиме выводится символическое имя ячейки памяти, к которой происходит обращение:

...MOV A,M=41 .BUFFER )

5.0. С п е ц и а л ь н ы е   к о м а н д ы

   Эти команды реализуют загрузку CP/M-80, чтение и запись в порты ввода-вывода.

5.1.   Ч т е н и е   и з   п о р т а

    Формат:

             IXX

         где

             XX - номер порта.

   Прочитанный байт выводится на экран.

5.2. З а п и с ь   в   п о р т

    Формат:

             OXX,BB

           где

              XX - номер порта, а

              BB - байт выводимых данных, который помещается и

                   в регистр A программы пользователя.

5.3. В ы з о в   м о н и т о р а   т е с т о в

     Формат:

              Z

5.4. З а г р у з к а   о п е р а ц и о н н о й   с и с т е м ы

Эта директива в зависимости от конфигурации комплекса вызывает либо загрузку операционной системы, либо передачу управления интерпретатору языка Тини-Бейсик, находящемуся в ППЗУ.

    Формат:

             B

5.5.   П р о п у с к   к о м а н д ы

      Формат:

              Knn

           где

              nn<256

Команда используется при отладке для пропуска команд специфичных только для прототипа. Такой же результат можно получить с помощью команды XP. По умолчанию пропускается одна команда.

5.6. Д и р е к т и в а   J U M P

     Эта директива переписывает монитор из области ПЗУ в область ОЗУ для отладки самого монитора и его расширений. Предназначена только для конфигураций поддерживающих страничную память.

    Формат:

             J

5.7. Д и р е к т и в а Q U E R Y

     Если директива задана без параметров, то она просто выводит текущее значение IOBYTE. Параметры позволяют менять это значение с клавиатуры.

     Формат:

                Q

                Q<логическое имя>=<физическое имя>

             где

               логическое имя

                   = О - вывод на экран

                   = I - ввод с клавиатуры

                   = P - вывод на печать

               физическое имя

                   = D - дисплей

                   = L - устройство печати

                   = M - монитор.

5.8.   Д и р е к т и в а    S E E

     Проверяет в заданной области памяти наличие заданного байта или слова и выводит адреса, где этот байт или слово обнаружены.

    Формат:

        E<начальный адр.><конечный адр.><байт>

     или

        EW<начальный адр.><конечный адр.><слово>

5.9. Д и р е к т и в а    V i e w

     По директиве V происходит сравнение двух областей памяти

и на экран выводятся адреса первой области, если её содержимое

отличается от содержимого соответствующего байта второй об-

ласти.

    Формат:

        V<адрес-нач.1><адр.-конца.1><адрес-нач.2>

5.10. Д и р е к т и в а    N

     По директиве N вычисляется контрольная сумма заданной области памяти. Эта сумма может быть использована для тестирования памяти, проверки сохранности программы и т.д. формат:

        N<адр-нач.1><адр-конечн.>

Пример:

        N100,345

6.0. Замечания по программированию

     Символ, используемый для прерывания команды рассматривается как первая буква новой команды, если новая команда не вводится, то прерывать команду, например дамп, лучше нажатием пробела.

     Для своей работы монитор использует прерывание по уровню 7 (RST 7).

     Для возврата в монитор используется прерывание по уровню 1 (RST 0) либо JMP 0008.

     Остальные прерывания пока не используются.

-------------------Внимание !--------------------------

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!! Затирание ячеек с 0000 по 4Fh и с 3B00 по 3FFFh !!!

!!! нарушает правильное функционирование монитора   !!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

     Для переназначения физических устройств монитор поддержи-

вает работу с IOBYTE следующим образом:

                Структура IOBYTE

    

Биты:   7      6            4        3        2      1     0

      ---------------------------------------------------------

      печать     !   резерв       ! клавиатура    ! экран

      ---------------------------------------------------------

Значения полей:

        Экран (CO)=D (дисплей) 00

                  =M (монитор) 01

    клавиатура(CI)=D (дисплей) 00

                  =М (монитор) 01

      печать (LST)=D (дисплей) 00

                  =L (устройство печати)

   Значения 10 и 11 предназначены для устройств пользователя, но пока не поддерживаются т.е. второй бит игнорируется.

Для работы с IOBYTE используются 2 подпрограммы:

IOCHK - возвращает в А текущее его значение;

IOSET - записывает из регистра С новое значение.

    Вектор переходов в мониторе для использования в программах пользователя:

C100 JMP CI        ;ввод символа с дисплея в аккумулятор

C103 JMP CO        ;вывод символа из регистра с на экран

C106 JMP CSTS      ;опрос статуса клавиатуры

C109 JMP PRINTCH   ;вывод символа на печать

C10C JMP IOCHK     ;получить IOBYTE

C10F JMP IOSET     ;установить IOBYTE

C102 JMP BELON     ;включить динамик

C105 JMP BELOFF    ;выключить динамик

        Пример:

#а100

100      MVI        C,41

102      CALL        C103      ;вывод буквы "а"

105      CALL        C100      ;приём буквы

108      JMP        102

10B        ...

G100

7. М о н и т о р т е с т о в

   Монитор тестов запускается по нажатию клавиши 'Z' и выдаёт сообщение:

        Монитор тестов V.1.X

        ?-

где X равно количеству подключённых тестов. Для входа в какой-либо тест нужно ввести его номер. Выход из монитора тестов производится нажатием клавиши 'ВК' (RETURN). Нажатие любой другой клавиши производит вход в тест-0. Для перехода из одного теста в другой нужно осуществить перезапуск монитора тестов. перезапустить монитор тестов можно из любого теста в состояниях ожидания (когда не производятся операции записи или чтения из ОЗУ). Для этого надо ввести символ 'ВК' (RETURN). Большинство тестов предназначены для проверки правильности работы операций связанных с ОЗУ и являются наладочными.

0. Ввод символа с клавиатуры, запись его в ОЗУ и чтение его из ОЗУ (без задержки).

   Нажатием любой клавиши осуществляется ввод символа в регистр 'C' МП и ячейки 00 и 01 ЗУ и чтение его из указанного регистра и ячеек с выводом на дисплей.

1. ,--,--, (с задержкой).

2. Тест.1, но с записью в стек

3. Заполнение и считывание области памяти (с задержкой).

   После входа в тест нажатием любой клавиши (кроме команд и 'ВК') производится запись соответствующего символа в регистр 'C' и в первую страницу памяти ЗУ с выдачей на дисплей 960 (80х12) символов. Из них 320 (1-й, 4-й, 7-й, и.т.д) считываются с регистра 'C', а остальные 640 - с соответствующей страницы (в порядке возрастания адресов).

    Команды:

        L-повторение чтения страницы

        A-переход на следующую страницу

        R-возврат на первую страницу

        S-переход на предыдущую страницу

   страница - 640 ячеек ЗУ (0-639, 640-1279, ...)

4. Тест приёма/передачи.

    После входа в тест, нажатием любой клавиши задаётся задержка (перед выводом на дисплей), которая прямопропорциональна значению кода нажатой клавиши. При вторичном нажатии (также произвольной клавиши) производится ввод символа с клавиатуры и вывод на дисплей 20 строк символов '@' и '-'.

5. Тест приёма/передачи с заполнением и считыванием области памяти.

    Тоже что и тест-3, но с заполнением области памяти одними и теми же значениями '55' и 'AA' (55 в четную ячейку, а AA в нечётную) или 'AA' и '55'(AA ,-,-, 55 ,-,-,) и с выводом их на дисплей команды:

     L - повторение чтения страницы

     A - переход на следующую страницу

     R - возврат на первую страницу

     S - переход на предыдущую страницу

     I - переход на режим инверсной записи (после одного раза

         нажатия 'I' в чётных ячейках будет записываться 'AA',

         а в нечетных-'55'. Для того чтобы перейти на изна-

         чальный режим нужно еще раз нажать на клавишу 'I')

6. Тест проверки шин адресов и данных на перекрытие.

    После входа в тест на экране высвечивается следующий текст.

-----

Тест-N6

 

5555(U) .

5555(*)

55AA(U)

55AA(*)

AA55(U)

AA55(*)

AAAA(U)

AAAA(*)

-----

   В левом крайнем столбце находятся адреса ячеек ОЗУ в которые вводится и выводится информация(55H или AAH), соответственно на экран должны выводиться 'U' или '*'.точка возле 5555(U) показывает начальное расположение курсора. непрерывная запись и считывание осуществляется после нажатия любой клавиши кроме 'A' 'S' и 'возврат каретки'.

   Команды:

   S - прерывание записи и считывания. Для продолжения необходимо повторно нажать 'S'.

   A - переход к следующему состоянию, указанному положением курсора.

7. Тест записи или считывания 1К ОЗУ.

    После входа в тест в верхнем левом углу экрана выдаётся сообщение 'тест-N7/ ', после чего тест находится в ожидании команды.

    Команды:

        W - задание режима записи.

        R - циклическое чтение ячеек ОЗУ с 0 по 1023.

   После входа в режим 'W' тест вновь находится в состоянии ожидания(здесь возможен перезапуск монитора тестов). Нажатием любой клавиши, кроме 'R', 'I' и 'возврат каретки', производится циклическая запись кода этой клавиши в ячейки с 0 по 1023 с однократным выводом соответствующего символа на экран.

В любой момент можно изменить вводимый символ, нажав клавишу. нажатием клавиши 'I' производится запись не кода 'I', а инвертированного кода предыдущего символа. Переход в режим чтения производится по нажатию клавиши 'R'. Выход из этого режима-по команде 'W'.

7.0. История монитора

     Монитор имеет своим прототипом программу SID из CP/M-80, где она идейно развивает отладчик DDT. Восстановление исходного текста SID и его комментирование было выполнено А.Н. Колесниковым (Рига). Для ПЗУ-версии из него была убрана работа с символьными переменными, загрузка файла с диска, возврат в операционную систему и исправлены некоторые некорректности.

    Для "Истры-4816" Э.М. Пройдаковым были дописаны команды Z, K, I, O, J, Q, E. и B; модуль инициализации полностью переписан и расширен.

   Борьба за инициализацию   БИС   осуществлена   с   помощью Э.Г. Кнеллера. Модуль CHEKLR сделан обязательным. Дополнительно разработан исполнительный модуль для асинхронной работы нескольких процессоров.

   Структурно документация вынесена за листинг главного модуля из-за его большого объёма и оформлена в виде ROMSID.DOC.

   А.Колесникову принадлежит первая реализация команды R. команда N реализована по просьбе Марии Чалковой. Идеология команды Q заимствована из MS-800. Эта команда совмещает две команды MDS-800 A и Q. Оттуда же заимствована идеология работы с IOBYTE. Команды I и O более полно реализованы в автономном эмуляторе В.А. Фокеева и сделаны по разговору с ним. Окончательный вариант этих команд сделан по пожеланиям Э.Г. Кнеллера. Команды Z, B заложены в очевидной потенции развития. Команды е и V добавлены по просьбе Марии Чалковой по аналогии с монитором микроЭВМ В-7.

    Э.М. Пройдакову принадлежит идея и реализация команд J и K и ответственность за все внесённые в вариант А. Колесникова изменения. Монитор тестов разрабатывался Л.Р. Варданяном.

    В 1990 году после выхода статьи "Введение в мониторы микроЭВМ" его тексты были переписаны с 8" дискет ISIS-II на 5.25" дискеты MS-DOS и перекодированы.

Об авторе: Директор Виртуального Компьютерного Музея
12 декабря 1990