GNU MIX Development Kit (mdk): gmixvm

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7. gmixvm, виртуальная машина на основе GTK

Эта глава описывает графический эмулятор виртуальной машины MIX, включённый в MDK. Кроме того, что он имеет все командно-ориентированные возможности других виртуальных машин (mixvm и mixguile), gmixvm предлагает графический интерфейс, показывающий состояние виртуальной машины, исходный код загруженных програм и содержимое устройств MIX.

7.1 Вызов gmixvm  Вызов интерфейса GTK+.
7.2 Консоль MIXVM  Выполнение команд mixvm.
7.3 Виртуальная машина MIX  
7.4 Окно исходного текста на MIXAL  
7.5 Окно устройств MIX  Вывод на устройства.
7.6 Меню и строка статуса  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.1 Вызов gmixvm

Если вы собрали MDK с поддержкой GTK+ (see section 1. Установка MDK), в вашей системе будет доступен графический интерфейс виртуальной машины MIX. Вы можете вызвать его вводом:

 
gmixvm [-vhuq] [--version] [--help] [--usage] [--noinit]
в вашей командной строке. Параметры вызова имеют следующее значение:

User Option: -v
User Option: --version
Вывести версию и информацию об авторских левах и завершить работу.

User Option: -h
User Option: --help
User Option: -u
User Option: --usage
Вывести краткий перечень доступных параметров и завершить работу.

User Option: -q
User Option: --noinit
Не загружать при запуске файл инициализации Guile ~/.mdk/mixguile.scm. Этот файл содержит весь локальный код Scheme, выполняемый встроенным интерпретатором Guile при запуске (see section 3.5 Использование Scheme в mixvm и gmixvm).

При вводе в командной строке gmixvm или gmixvm -q появится главное окно, предоставляющее графический интерфейс для запуска и отладки программ MIX.

img/ss_mix

Мы выделяем две части главного окна (не считая меню и строки статуса). В верхней половине главного окна gmixvm находится "блокнот" с тремя страницами, а именно:

  • окно виртуальной машины MIX, содержащее регистры, флаги, содержимое памяти и статистику времени виртуальной машины,
  • окно исходного кода на MIXAL, содержащее файл на MIXAL и позволяющее устанавливать точки останова,
  • окно устройств, показывающее вывод на символьные блочные устройства MIX.

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

Приведём слепок экрана, показывающий, как выглядит gmixvm при запуске в режиме с разделением:

img/ss_split

В то же время нижняя половина главного окна содержит командное приглашение mixvm и область ведения лога, где находятся результаты выполнения команд (в режиме с разделением они занимают всё пространство главного окна между меню и строкой статуса). Они реализуют консоль mixvm, предоставляющую почти те же возможности, что и соответствующая консоль CLI.

При запуске gmixvm она создаёт каталог `.mdk' в домашнем каталоге (если он ещё не существует). Каталог `.mdk' содержит настройки программы, файлы устройств, используемые программами MIX (see section 6.3 Блочные устройства MIX) и файл истории команд.

Следующие разделы описывают вышеупомянутые компоненты gmixvm.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.2 Консоль MIXVM

В нижней половине главного окна gmixvm находится командное приглашение, а над ним область вывода. Они предоставляют те же возможности, что и соответствующий интерфейс CLI -- mixvm (see section 6. mixvm, эмулятор компьютера MIX). В командном приглашении gmixvm для управления виртуальной машиной MIX вы можете использовать почти все команды mixvm. См. в 6. mixvm, эмулятор компьютера MIX описание этих команд, и в 3. Начало работы учебник по использованию виртуальной машины MIX. Командное приглашение поддерживает также дополнение командной строки клавишей TAB -- при вводе:

 
lo TAB
команда будет автоматически дополнена до load. Если возможно несколько вариантов дополнения, они будут показаны в области вывода. Так, при вводе:

 
p TAB
даст следующий вывод:

 
Completions:
pc     psym     preg     pflags     pall     
pmem  
т.е. список всех доступных команд, начинающихся с p. Кроме того, командное приглашение хранит историю введённых команд, к которой можно возвращаться с помощью клавиш "вверх" и "вниз". Как сказано выше, файл, содержащий команды предыдущих сеансов, сохраняется в каталоге конфигурации `~/.mdk', и загружается при каждом запуске gmixvm. Вы можете изменить шрифт, используемый для команд и сообщений в области вывода командами меню Settings->Change font->Command prompt и Settings->Change font->Command log.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.3 Виртуальная машина MIX

Первая страница блокнота показывает текущее состояние виртуальной машины. Там вы обнаружите содержимое регистров, значение флагов сравнения и переполнения, указатель положения, список всех ячеек памяти MIX и их содержимое, а также статистику времени выполнения (включая общее время работы, время, прошедшее после последней команды запуска, и общее время выполнения загруженной программы MIX).

При щелчке по любому регистру будет выдано приглашение ввести новое значение регистра.

Следующий рисунок показывает диалог ввода слова.

img/ss_worddlg

Аналогично, щелчок по любому адресу в списке ячеек памяти приведёт к выдаче приглашения ввести новое содержимое этой ячейки. При щелчке по заголовку колонки адресов появится диалог ввода адреса памяти, если вы введёте при этом верный адрес, после нажатия кнопки OK отображаться в списке будут ячейки, начиная с этого адреса.

Следующий рисунок показывает диалог ввода адреса.

img/ss_goto

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

Вы можете изменить шрифт, используемый для вывода содержимого виртуальной машины MIX командой меню Settings->Change font->MIX.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.4 Окно исходного текста на MIXAL

Вторая страница блокнота, называющаяся MIXAL, содержит исходный код на MIXAL загруженного в данный момент файла MIX.

img/ss_mixal

Информация представлена в двух колонках. Первая показывает адреса и содержимое памяти, в которой находятся скомпилированные инструкции MIX, а вторая показывает соответствующе представление на MIXAL, включая номер строки исходного файла. Текущее положение счётчика программы подкрашено серым, а все точки останова -- красным. Вы можете устанавливать и снимать точки останова, щёлкая в этой окне по строке с соответствующим адресом.

Используемые для отметки счётчика положения и точек останова цвета настраиваются командой меню Settings->Colors... При щелчке по этому пункту меню появится диалог, показывающий установленные в данный момент цвета строк. Следующий рисунок показывает диалог изменения цветов.

img/ss_colors

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

Вы можете изменить шрифт, используемый для исходного кода на MIXAL, командой меню Settings->Change font->MIXAL.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.5 Окно устройств MIX

Последняя страница блокнота, называемая Devices, показывает ввод/вывод с/на блочные устройства MIX (консоль, строчный принтер, перфолента, диски, перфокарты и ленты see section 6.3 Блочные устройства MIX), выполняемый работающей программой.

img/ss_devices

Содержимое устройств ввода читается из файлов, расположенных в каталоге `~/.gmixvm', вывод записывается в расположенные там же файлы. Имейте в виду, что вкладки устройств появляются, если они используются запущенной программой MIX, а загрузка новой программы закроет все ранее открытые устройства.

Ввод и вывод двоичных блочных устройств (ленты и диски) должен быть списком слов MIX, которые могут выводиться либо в десятичном формате, либо в формате слова (- 67 или - 00 00 00 01 03). Используемый gmixvm формат может быть настроен командой меню Settings->Device output для каждого двоичного устройства отдельно.

Вы можете изменить шрифт, используемый для содержимого устройств, командой меню Settings->Change font->Devices.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.6 Меню и строка статуса

Меню даёт доступ к следующим командам:

File: Load...
Открывает диалог, позволяющий указать двоичный файл MIX, загружаемый в память виртуальной машины. Эквивалентно команде mixvm load (see section 6.2.1 Файловые команды).

File: Edit...
Открывает диалог, позволяющий указать исходный файл на MIXAL для редактирования. Эквивалентно команде mixvm edit (see section 6.2.1 Файловые команды). Используемая для редактирования команда может быть задана в пункте меню Settings->External programs или командой mixvm sedit.

File: Compile...
Открывает диалог, позволяющать указать исходный файл на MIXAL для компиляции. Эквивалентно команде mixvm compile (see section 6.2.1 Файловые команды). Используемая для компиляции команда может быть задана в пункте меню Settings->External programs или командой mixvm sasm.

File: Exit
Завершает работу.

View: Toolbar(s)
Включает/выключает показ панели(ей) инструментов в окне(ах) gmixvm (в режиме с разделением будет несколько окон и, соответственно, несколько панелей).

View: MIX
View: MIXAL
View: Devices

Эти переключатели доступны при работе gmixvm в режиме с разделением и позволяют включать и выключать показ соответствующих окон gmixvm.

View: Split windows
View: One window

Изменяет режим: одно окно либо раздельные окна.

Debug: Run
Выполняет загруженную в данный момент программу MIX до следующей точки останова. Эквивалентно команде mixvm run (see section 6.2.2 Команды отладки).

Debug: Next
Выполняет следующую инструкцию MIX. Эквивалентно команде mixvm next (see section 6.2.2 Команды отладки).

Debug: Clear breakpoints
Снимает все установленные в данный момент точки останова. Эквивалентно команде mixvm cabp.

Debug: Symbols...
Открывает диалог со списком определённых в загруженной программе MIX символов.

img/ss_symbols

Settings: Colors...
Позволяет изменить цвета, отмечающие текущую строку кода и строки точек останова на вкладке MIXAL, равно как и цвет остальных строк исходного кода.

Settings: Change font
Позволяет изменить шрифты, используемые в различных виджетах (командной приглашение, лог команд, MIX, MIXAL и устройства).

Settings: Device output...
Открывает диалог, позволяющий задать формат, используемый для вывода содержимого двоичных блоковых устройств MIX.

img/ss_devform

Возможные форматы: десятичный (-1234) и слово MIX (- 00 00 00 19 18).

Settings: Devices dir...
Открывает диалог, позволяющий выбрать расположение файлов устройств MIX (по умолчанию `~/.mdk').

img/ss_devdir

Вы можете также задать каталог устройств командой mixvm sddir (see section 6.2.4 Команды конфигурирования).

Settings: External programs...
Эта команда меню открывает диалог, позволяющий задать команды, используемые для редактирования и компиляции исходных файлов на MIXAL.

img/ss_extprog

Команды задаются в виде строк-шаблонов, где вместо управляющей подстроки %s будет подставлено реальное имя файла. Так, если вы хотите редактировать программы редактором vi, запущенным в xterm, вы должны ввести в соответствующем поле диалога шаблон команды xterm -e vi %s. Эти настройки могут также быть изменены командами mixvm sedit и sasm (see section 6.2.4 Команды конфигурирования).

Settings: Save
Сохраняет текущие настройки.

Settings: Save on exit
Отметьте этот переключатель, если вы хотите, чтобы gmixvm сохраняла свои настройки при каждом завершении работы.

Help: About...
Выводит информацию о версии и авторских правах gmixvm.

В то же время, строка статуса показывает имя последнего загруженного файла MIX. Кроме того, если указатель мыши находится над строкой исходного файла на MIXAL, содержащей символы, в строке статуса появляется список этих символов и их значений.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated on June, 9 2003 using texi2html