Инструменты пользователя

Инструменты сайта


msx:dbg:dbg

Различия

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

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
msx:dbg:dbg [2021-11-12 14:06]
GreyWolf
msx:dbg:dbg [2024-04-13 10:24] (текущий)
GreyWolf [DBG — экранный отладчик для MSX/MSX2]
Строка 1: Строка 1:
-====== DBG экранный отладчик для MSX/MSX2 ====== +====== DBG — экранный отладчик для MSX/MSX2 ======
-FIXME+
  
 Автор: Леонид Бараз Автор: Леонид Бараз
Строка 9: Строка 8:
 отличия DBG/XDBG указаны в тексте. отличия DBG/XDBG указаны в тексте.
  
-{{dbg.zip|}}+{{dbg.zip|}} ​\\ 2024-04-12 английская версия ''​DBGE52.COM''​ получена от **Максима Власова** ​
  
 ====== Руководство пользователя ====== ====== Руководство пользователя ======
Строка 15: Строка 14:
 В тексте данного документа применяются следующие обозначения для клавиш:​ пробелом разделяются клавиши,​ которые нужно нажимать последовательно,​ а плюсом — одновременно. В тексте данного документа применяются следующие обозначения для клавиш:​ пробелом разделяются клавиши,​ которые нужно нажимать последовательно,​ а плюсом — одновременно.
  
-Программа представляет собой экранный отладчик программ,​ написанных на ассемблере [[zilog_z80:​zilog_z80|Z80]]. Этот отладчик может использоваться на ПЭВМ [[msx:​msx_2|MSX2]] и [[msx:​msx_1|MSX]],​ оснащенных [[msx:​yamaha_v9938:​yamaha_v9938|VDP 9938]] ([[msx:​yamaha_yis-503iir:​yamaha_yis-503iir|]]),​ под управлением операционной системы [[msx:​dos|]] (в том числе в варианте Ю.В.Галутина).+Программа представляет собой экранный отладчик программ,​ написанных на ассемблере [[zilog_z80:​zilog_z80|Z80]]. Этот отладчик может использоваться на ПЭВМ [[msx:​msx_2|MSX2]] и [[msx:​msx_1|MSX]],​ оснащенных [[msx:​yamaha_v9938:​yamaha_v9938|VDP 9938]] ([[msx:​yamaha_yis-503iir:​yamaha_yis-503iir|]]),​ под управлением операционной системы [[msx:dos:|]] (в том числе в варианте Ю.В.Галутина).
  
 Команда вызова отладчика **DBG**: Команда вызова отладчика **DBG**:
Строка 26: Строка 25:
 A>​XDbg[/​p[/​s]][/​M] [имя-программы] A>​XDbg[/​p[/​s]][/​M] [имя-программы]
 </​code>​ </​code>​
-После ''​XDbg''​ в команде запуска можно указать от одного до трех флажков,​ которые определяют,​ в каком слоте памяти должен располагаться собственно отладчик. Первые два флажка определяют номера первичного и вторичного слота соответственно:​+После ''​XDbg''​ в команде запуска можно указать от одного до трёх флажков,​ которые определяют,​ в каком слоте памяти должен располагаться собственно отладчик. Первые два флажка определяют номера первичного и вторичного слота соответственно:​
 |''​XDbg/​3/​0''​|слот 3-0| |''​XDbg/​3/​0''​|слот 3-0|
 |''​XDbg/​1''​|слот 1 (нерасширенный)| |''​XDbg/​1''​|слот 1 (нерасширенный)|
Строка 32: Строка 31:
 Флажок /M предписывает использование маппера (отладчик располагается в страницах FF, FE и FD). При переносе отладчика максимально возможный размер загружаемой и отлаживаемой программы может достигать 48 Kбайт. Флажок /M предписывает использование маппера (отладчик располагается в страницах FF, FE и FD). При переносе отладчика максимально возможный размер загружаемой и отлаживаемой программы может достигать 48 Kбайт.
  
-При отсутствии флажков отладчик размещается в основной оперативной памяти,​ оставляя для программы пользователя вместе с таблицей символических имен только 32 КБайт. Однако+При отсутствии флажков отладчик размещается в основной оперативной памяти,​ оставляя для программы пользователя вместе с таблицей символических имён только 32 Кбайт. Однако
 перенести отладчик в параллельную память можно и в процессе работы посредством команды <​key>​esc</​key>​ <​key>​U</​key>​ ([[#​esc_u|см. ниже]]). перенести отладчик в параллельную память можно и в процессе работы посредством команды <​key>​esc</​key>​ <​key>​U</​key>​ ([[#​esc_u|см. ниже]]).
  
Строка 183: Строка 182:
   * просмотр и корректировку содержимого видеопамяти в символьном и шестнадцатиричном формате;​   * просмотр и корректировку содержимого видеопамяти в символьном и шестнадцатиричном формате;​
   * просмотр и изменение содержимого регистров отлаживаемой программы;​   * просмотр и изменение содержимого регистров отлаживаемой программы;​
-  * использование имен, введенных вместе с программой,​ а также добавление новых имен и удаление имеющихся (имена используются и в командах ассемблера);​ имена можно настроить на начальный адрес программы;​+  * использование имён, введённых вместе с программой,​ а также добавление новых имён и удаление имеющихся (имена используются и в командах ассемблера);​ имена можно настроить на начальный адрес программы;​
   * выдачу на печать содержимого текущего окна отладчика;​   * выдачу на печать содержимого текущего окна отладчика;​
-  * установку и снятие точек приостанова (со счетчиками);​+  * установку и снятие точек приостанова (со счётчиками);​
   * установку и снятие контроля изменения байтов памяти;​   * установку и снятие контроля изменения байтов памяти;​
   * покомандное и непрерывное выполнение программы (в том числе и в режиме мультипликации,​ с обходом и без обхода команд ''​CALL''​);​   * покомандное и непрерывное выполнение программы (в том числе и в режиме мультипликации,​ с обходом и без обхода команд ''​CALL''​);​
-  * возврат управления отладчику:​ при достижении точки приостанова с нулевым счетчиком,​ при изменении одного из контролируемых байтов памяти,​ при нормальном завершении программы,​ при нажатии клавиши <​key>​stop</​key>;​+  * возврат управления отладчику:​ при достижении точки приостанова с нулевым счётчиком,​ при изменении одного из контролируемых байтов памяти,​ при нормальном завершении программы,​ при нажатии клавиши <​key>​stop</​key>;​
   * пересылку и заполнение областей памяти,​ поиск символьного или шестнадцатиричного образца.   * пересылку и заполнение областей памяти,​ поиск символьного или шестнадцатиричного образца.
   * выполнение арифметических действий над шестнадцатиричными числами;​   * выполнение арифметических действий над шестнадцатиричными числами;​
Строка 195: Строка 194:
 При запуске отладчик переводит систему в 80–символьный режим и загружает в оперативную память программу,​ если ее имя указано в команде (имя указывается без уточнения;​ загружаются файлы ''<​имя>​.<​тип>''​ и ''<​имя>​.SYM''​). При запуске отладчик переводит систему в 80–символьный режим и загружает в оперативную память программу,​ если ее имя указано в команде (имя указывается без уточнения;​ загружаются файлы ''<​имя>​.<​тип>''​ и ''<​имя>​.SYM''​).
  
-В процессе работы на экране выделяются поля разметки и поля данных. Курсор всегда находится в одном из полей данных,​ и только в такие поля можно вносить изменения. При выходе курсора из текущего поля его новое содержимое проверяется и заносится в память машины;​ все остальные поля экрана при этом приводятся (по возможности) в соответствие с содержимым измененного поля. Например,​ для изменения байта или слова данных в любом поле достаточно просто набрать его новое значение и выйти из поля. Аналогично,​ для того, чтобы передвинуть окно листинга или дампа на другие адреса памяти,​ достаточно в любой строке набрать нужное имя в поле имени или нужный адрес в поле адреса. Для создания нового имени достаточно набрать его в соответствующем поле, а для удаления существующего — заменить его на новое или заполнить поле имени пробелами.+В процессе работы на экране выделяются поля разметки и поля данных. Курсор всегда находится в одном из полей данных,​ и только в такие поля можно вносить изменения. При выходе курсора из текущего поля его новое содержимое проверяется и заносится в память машины;​ все остальные поля экрана при этом приводятся (по возможности) в соответствие с содержимым изменённого поля. Например,​ для изменения байта или слова данных в любом поле достаточно просто набрать его новое значение и выйти из поля. Аналогично,​ для того, чтобы передвинуть окно листинга или дампа на другие адреса памяти,​ достаточно в любой строке набрать нужное имя в поле имени или нужный адрес в поле адреса. Для создания нового имени достаточно набрать его в соответствующем поле, а для удаления существующего — заменить его на новое или заполнить поле имени пробелами.
  
 Все поля данных,​ имеющиеся на экране,​ сгруппированы в окна: три основных ("​дампа",​ "​листинга"​ и "​регистров"​) и одно дополнительное ("​заголовка",​ "​файлов"​ или "​памяти"​). Все поля данных,​ имеющиеся на экране,​ сгруппированы в окна: три основных ("​дампа",​ "​листинга"​ и "​регистров"​) и одно дополнительное ("​заголовка",​ "​файлов"​ или "​памяти"​).
Строка 201: Строка 200:
 Курсор перемещается в пределах одного окна с помощью стрелок,​ клавиш <​key>'​Ввод '​⏎</​key>,​ <​key>​tab</​key>​ и <​key>​ctrl+F</​key>​. Листание осуществляется по клавишам <​key>​ctrl+J</​key>​ (вверх) и <​key>​ctrl+Q</​key>​ (вниз). Редактирование информации выполняется символьными клавишами,​ а также клавишами <​key>​ins</​key>,​ <​key>​del</​key>​ и <​key>​bs</​key>​. Переход в другое окно (и установка дополнительного окна) выполняются по одной из следующих команд:​ Курсор перемещается в пределах одного окна с помощью стрелок,​ клавиш <​key>'​Ввод '​⏎</​key>,​ <​key>​tab</​key>​ и <​key>​ctrl+F</​key>​. Листание осуществляется по клавишам <​key>​ctrl+J</​key>​ (вверх) и <​key>​ctrl+Q</​key>​ (вниз). Редактирование информации выполняется символьными клавишами,​ а также клавишами <​key>​ins</​key>,​ <​key>​del</​key>​ и <​key>​bs</​key>​. Переход в другое окно (и установка дополнительного окна) выполняются по одной из следующих команд:​
 |<100% 10% 90%>| |<100% 10% 90%>|
-|<​key>​esc</​key>​ <​key>​L</​key>​|Работа в окне листинга. \\ \\ Левая колонка содержит точки приостанова (для них указывается максимальный счетчик, признак активности (''​+ -''​ активна,​ ''​~ -''​ активна в параллельном банке памяти,​ ''​- -''​ неактивна) и текущее значение счетчика). В основной части каждой строки окна располагаются поля имени, адреса,​ байтов,​ образующих команду,​ и самого текста команды. \\ Правая колонка окна содержит значения счетчиков профилей выполнения программы (в строках команд с символическими именами). \\ Имена во всех полях (в том числе и в текстах команд) должны заканчиваться двоеточием. Например,​ команды могут записываться в следующем виде: <​code ​asm>+|<​key>​esc</​key>​ <​key>​L</​key>​|Работа в окне листинга. \\ \\ Левая колонка содержит точки приостанова (для них указывается максимальный счётчик, признак активности (''​+ -''​ активна,​ ''​~ -''​ активна в параллельном банке памяти,​ ''​- -''​ неактивна) и текущее значение счётчика). В основной части каждой строки окна располагаются поля имени, адреса,​ байтов,​ образующих команду,​ и самого текста команды. \\ Правая колонка окна содержит значения счётчиков профилей выполнения программы (в строках команд с символическими именами). \\ Имена во всех полях (в том числе и в текстах команд) должны заканчиваться двоеточием. Например,​ команды могут записываться в следующем виде: <​code>​
 LD    A,​(name:​3000) LD    A,​(name:​3000)
 LD    A,(name:) LD    A,(name:)
Строка 208: Строка 207:
 |<​key>​esc</​key>​ <​key>​D</​key>​|Работа в окне дампа. \\ \\ Левая колонка содержит признаки контроля изменения байта памяти с указанием активности контроля (+/-/~). В основной части каждой строки окна имеются поля имени, адреса,​ 6 полей байтов в шестнадцатиричном виде и 16 полей тех же байтов в символьном виде.| |<​key>​esc</​key>​ <​key>​D</​key>​|Работа в окне дампа. \\ \\ Левая колонка содержит признаки контроля изменения байта памяти с указанием активности контроля (+/-/~). В основной части каждой строки окна имеются поля имени, адреса,​ 6 полей байтов в шестнадцатиричном виде и 16 полей тех же байтов в символьном виде.|
 |<​key>​esc</​key>​ <​key>​V</​key>​|Работа в окне дампа видеопамяти. \\ \\ Содержимое видеопамяти отображается так же, как и в режиме <​key>​esc</​key>​ <​key>​D</​key>,​ однако левая колонка заполняется буквами V (для VRAM) или E (для ERAM). При просмотре VRAM поле адреса дополняется слева еще одним разрядом,​ чтобы охватить все 128Kбайт.| |<​key>​esc</​key>​ <​key>​V</​key>​|Работа в окне дампа видеопамяти. \\ \\ Содержимое видеопамяти отображается так же, как и в режиме <​key>​esc</​key>​ <​key>​D</​key>,​ однако левая колонка заполняется буквами V (для VRAM) или E (для ERAM). При просмотре VRAM поле адреса дополняется слева еще одним разрядом,​ чтобы охватить все 128Kбайт.|
-|<​key>​esc</​key>​ <​key>​R</​key>​|Работа в окне регистров. \\ \\ Окно содержит поля значений всех регистров,​ а также байтов или слов, на которые указывают шестнадцатибитные регистры. Одновременно с шестнадцатиричными значениями байтов выдается их символьное представление. \\ Кроме того, имеются поля счетчика команд (''​PC''​),​ состояния обработки прерывания (EI/DI) и выбранного банка памяти (с указанием слота и страницы маппера) для всех четырех 16 Kбайтных страниц. \\ **DBG**: Установка конфигурации маппера может быть отключена. \\ **XDBG**: Наличие или отсутствие маппера распознается автоматически.| +|<​key>​esc</​key>​ <​key>​R</​key>​|Работа в окне регистров. \\ \\ Окно содержит поля значений всех регистров,​ а также байтов или слов, на которые указывают шестнадцатибитные регистры. Одновременно с шестнадцатиричными значениями байтов выдаётся их символьное представление. \\ Кроме того, имеются поля счётчика команд (''​PC''​),​ состояния обработки прерывания (EI/DI) и выбранного банка памяти (с указанием слота и страницы маппера) для всех четырех 16 Kбайтных страниц. \\ **DBG**: Установка конфигурации маппера может быть отключена. \\ **XDBG**: Наличие или отсутствие маппера распознаётся автоматически.| 
-|<​key>​esc</​key>​ <​key>​Y</​key>​|Показ символических имен. \\ \\ Окно листинга заполняется строками,​ соответствующими символическим именам.|+|<​key>​esc</​key>​ <​key>​Y</​key>​|Показ символических имён. \\ \\ Окно листинга заполняется строками,​ соответствующими символическим именам.|
 |<​key>​esc</​key>​ <​key>​B</​key>​|Показ точек приостанова. \\ \\ Окно листинга заполняется строками,​ соответствующими точкам приостанова.| |<​key>​esc</​key>​ <​key>​B</​key>​|Показ точек приостанова. \\ \\ Окно листинга заполняется строками,​ соответствующими точкам приостанова.|
 |<​key>​esc</​key>​ <​key>​H</​key>​|Показ контролируемых байтов. \\ \\ Окно дампа заполняется строками,​ соответствующими адресам байтов,​ изменение которых контролируется.| |<​key>​esc</​key>​ <​key>​H</​key>​|Показ контролируемых байтов. \\ \\ Окно дампа заполняется строками,​ соответствующими адресам байтов,​ изменение которых контролируется.|
-|<​key>​esc</​key>​ <​key>​I</​key>​|Чтение файлов. \\ \\ В дополнительном окне располагаются поля имени файла и интервала адресов для размещения программы. После нажатия клавиши перевода строки файл с именем ''<​имя>​.<​тип>''​ считывается в память (конфигурация слотов и маппера определяется соответствующими полями в окне регистров). \\ Кроме того, к таблице имен присоединяются имена из файла ''<​имя>​.SYM'',​ если он есть. С помощью полей ''​Reloc:''​ можно указать настройку символических имен на нестандартный начальный адрес программы.|+|<​key>​esc</​key>​ <​key>​I</​key>​|Чтение файлов. \\ \\ В дополнительном окне располагаются поля имени файла и интервала адресов для размещения программы. После нажатия клавиши перевода строки файл с именем ''<​имя>​.<​тип>''​ считывается в память (конфигурация слотов и маппера определяется соответствующими полями в окне регистров). \\ Кроме того, к таблице имён присоединяются имена из файла ''<​имя>​.SYM'',​ если он есть. С помощью полей ''​Reloc:''​ можно указать настройку символических имён на нестандартный начальный адрес программы.|
 |<​key>​esc</​key>​ <​key>​O</​key>​|Запись файлов. \\ \\ В дополнительном окне располагаются поля имени файла и интервала адресов. После нажатия клавиши перевода строки указанная область памяти записывается в файл ''<​имя>​.<​тип>'',​ а все символические имена — в файл ''<​имя>​.SYM''​ (конфигурация слотов и маппера определяется соответствующими полями в окне регистров).| |<​key>​esc</​key>​ <​key>​O</​key>​|Запись файлов. \\ \\ В дополнительном окне располагаются поля имени файла и интервала адресов. После нажатия клавиши перевода строки указанная область памяти записывается в файл ''<​имя>​.<​тип>'',​ а все символические имена — в файл ''<​имя>​.SYM''​ (конфигурация слотов и маппера определяется соответствующими полями в окне регистров).|
 |<​key>​esc</​key>​ <​key>​P</​key>​|Выдача на печать содержимого текущего окна отладчика (печать прерывается при нажатии <​key>​ctrl+stop</​key>​).| |<​key>​esc</​key>​ <​key>​P</​key>​|Выдача на печать содержимого текущего окна отладчика (печать прерывается при нажатии <​key>​ctrl+stop</​key>​).|
Строка 218: Строка 217:
 |<​key>​esc</​key>​ <​key>​F</​key>​|Заполнение области памяти. \\ \\ В дополнительном окне располагаются поля запроса интервала адресов и образца для заполнения. Образец для заполнения может быть набран в символьном или шестнадцатиричном виде (вид определяется полем, содержащим букву C или X соответственно). Размер образца определяется положением курсора в момент нажатия клавиши <​key>'​Ввод '​⏎</​key>​.| |<​key>​esc</​key>​ <​key>​F</​key>​|Заполнение области памяти. \\ \\ В дополнительном окне располагаются поля запроса интервала адресов и образца для заполнения. Образец для заполнения может быть набран в символьном или шестнадцатиричном виде (вид определяется полем, содержащим букву C или X соответственно). Размер образца определяется положением курсора в момент нажатия клавиши <​key>'​Ввод '​⏎</​key>​.|
 |<​key>​esc</​key>​ <​key>'​S'</​key>​|Поиск образца. \\ \\ В дополнительном окне располагаются поля запроса интервала адресов и образца для поиска. Образец для поиска может быть набран в символьном или шестнадцатиричном виде (вид определяется полем, содержащим букву C или X соответственно). Размер образца определяется положением курсора в момент нажатия клавиши <​перевод строки>​. Поиск можно прервать нажатием <​key>​ctrl+stop</​key>​.| |<​key>​esc</​key>​ <​key>'​S'</​key>​|Поиск образца. \\ \\ В дополнительном окне располагаются поля запроса интервала адресов и образца для поиска. Образец для поиска может быть набран в символьном или шестнадцатиричном виде (вид определяется полем, содержащим букву C или X соответственно). Размер образца определяется положением курсора в момент нажатия клавиши <​перевод строки>​. Поиск можно прервать нажатием <​key>​ctrl+stop</​key>​.|
-|<​key>​esc</​key>​ <​key>​E</​key>​|Начальная установка регистров. \\ \\ Все регистры устанавливаются в 0, счетчик команд ''​PC''​ устанавливается на 100h, состояние прерываний — разрешены (EI), всем страницам памяти сопоставлены основные банки памяти (установленные при запуске отладчика).| +|<​key>​esc</​key>​ <​key>​E</​key>​|Начальная установка регистров. \\ \\ Все регистры устанавливаются в 0, счётчик команд ''​PC''​ устанавливается на 100h, состояние прерываний — разрешены (EI), всем страницам памяти сопоставлены основные банки памяти (установленные при запуске отладчика).| 
-|<​key>​esc</​key>​ <​key>​Z</​key>​|Начальная установка текущих счетчиков точек приостанова (они устанавливаются равными максимальным счетчикам).| +|<​key>​esc</​key>​ <​key>​Z</​key>​|Начальная установка текущих счётчиков точек приостанова (они устанавливаются равными максимальным счётчикам).| 
-|<​key>​esc</​key>​ <​key>'​C'</​key>​|Шестнадцатиричный калькулятор. \\ \\ В дополнительном окне располагаются два поля операндов (четырехзначные шестнадцатиричные числа),​ поле знака операции (+, -, *, /, %) и поле показа результата. Поле результата заполняется при смене любого операнда или знака операции.|+|<​key>​esc</​key>​ <​key>'​C'</​key>​|Шестнадцатиричный калькулятор. \\ \\ В дополнительном окне располагаются два поля операндов (четырёхзначные шестнадцатиричные числа),​ поле знака операции (+, -, *, /, %) и поле показа результата. Поле результата заполняется при смене любого операнда или знака операции.|
 |<​key>​esc</​key>​ <​key>​T</​key>​|Установка базового адреса PNT и PGT отладчика. \\ \\ Поле базового адреса располагается в левом верхнем углу рамки. При вводе нового значения в этом поле PNT и PGT переносятся на указанный адрес и автоматически инициализируются. \\ Таблицы PNT и PGT занимают 1000h байт VRAM, начиная с указанного адреса.| |<​key>​esc</​key>​ <​key>​T</​key>​|Установка базового адреса PNT и PGT отладчика. \\ \\ Поле базового адреса располагается в левом верхнем углу рамки. При вводе нового значения в этом поле PNT и PGT переносятся на указанный адрес и автоматически инициализируются. \\ Таблицы PNT и PGT занимают 1000h байт VRAM, начиная с указанного адреса.|
 |<​key>​esc</​key>​ <​key>​Q</​key>​|Завершение работы отладчика и выход в среду операционной системы с восстановлением исходного режима экрана (40/80 символов).| |<​key>​esc</​key>​ <​key>​Q</​key>​|Завершение работы отладчика и выход в среду операционной системы с восстановлением исходного режима экрана (40/80 символов).|
 |{{anchor:​esc_u}} <​key>​esc</​key>​ <​key>​U</​key>​|**Только в XDBG** \\ Перенос отладчика в параллельную память. \\ Программы и данные самого отладчика переносятся в ту память,​ которая задана полями слотов и маппера в окне регистров. При этом для загрузки и отладки программ пользователя становится доступным около 48 Кбайт памяти. \\ Перенос в параллельную память не может быть выполнен,​ если хотя бы одна из трех страниц (0000...3FFF,​4000...7FFF,​ 8000...BFFF) совпадает с первоначальной по слотовому адресу. Кроме того, если при запуске отладчика или в процессе работы перенос выполнен,​ его нельзя ни отменить,​ ни изменить;​ можно только выйти из отладчика и загрузить его снова.| |{{anchor:​esc_u}} <​key>​esc</​key>​ <​key>​U</​key>​|**Только в XDBG** \\ Перенос отладчика в параллельную память. \\ Программы и данные самого отладчика переносятся в ту память,​ которая задана полями слотов и маппера в окне регистров. При этом для загрузки и отладки программ пользователя становится доступным около 48 Кбайт памяти. \\ Перенос в параллельную память не может быть выполнен,​ если хотя бы одна из трех страниц (0000...3FFF,​4000...7FFF,​ 8000...BFFF) совпадает с первоначальной по слотовому адресу. Кроме того, если при запуске отладчика или в процессе работы перенос выполнен,​ его нельзя ни отменить,​ ни изменить;​ можно только выйти из отладчика и загрузить его снова.|
 |<​key>​esc</​key>​ <​key>?</​key>​|Показ страницы с подсказкой.| |<​key>​esc</​key>​ <​key>?</​key>​|Показ страницы с подсказкой.|
-|<​key>​ctrl+G</​key>​|Запуск программы. \\ Программа начинает выполняться с адреса,​ находящегося в счетчике команд ''​PC''​. Устанавливается заданное пользователем распределение банков памяти. \\ Если режим мультипликации выключен (''​Visual:​No''​),​ на время работы программы экран переключается на обычную страницу системы (0000h). Если же режим мультипликации включен (''​Visual:​Exec''​ или ''​Trace''​),​ системная страница не включается,​ зато после каждой исполненной команды обновляется содержимое экрана отладчика. В режиме ''​Visual:​Exec''​ исполняется отдельно каждая команда,​ а в режиме ''​Visual:​Trace''​ взамен одной команды ''​Call''​ исполняется вся вызываемая подпрограмма. \\ Все точки приостанова устанавливаются в основных банках памяти (которые были включены при запуске отладчика). \\ При достижении одной из активных точек приостанова (с признаком "​+"​ или "​~"​) либо выполняется уменьшение счетчика (если он ненулевой),​ либо приостанавливается выполнение программы и управление передается отладчику. Аналогично выполнение программы приостанавливается при изменении содержимого одного из активных контролируемых байтов. Следует иметь в виду, что выполнение программы значительно замедляется при установке контроля изменения байтов. \\ Выполнение программы можно приостановить нажатием клавиши <​key>​stop</​key>​ (если прерывания в этот момент разрешены). При выполнении команды ''​RET''​ с начальным состоянием стека или команды ''​RST 0''​ управление также передается отладчику;​ при этом считается,​ что программа успешно завершена. \\ Обработка точек приостанова организуется с помощью ''​RST 0'',​ поэтому все остальные команды ''​RST''​ могут использоваться в отлаживаемой программе без ограничений. После возврата управления отладчику в окне листинга первая строка устанавливается на команду,​ с которой начиналось выполнение,​ а вторая — на ту, которая вызвала приостанов (в ней устанавливается курсор). \\ Передача управления отладчику при достижении точки приостанова или при завершении программы возможна только при условии,​ что странице 0000h...3FFFh в этот момент сопоставлен основной банк памяти (тот же, что и при запуске отладчика). \\ При выполнении программы ведется подсчет профилей по всем символическим именам (при каждом прерывании и при трассировке отдельной команды увеличивается на единицу счетчик профиля ближайшего символического имени с адресом,​ меньшим текущего ''​PC''​). Значения счетчиков профиля отображаются в правой колонке окна листинга.| +|<​key>​ctrl+G</​key>​|Запуск программы. \\ Программа начинает выполняться с адреса,​ находящегося в счётчике команд ''​PC''​. Устанавливается заданное пользователем распределение банков памяти. \\ Если режим мультипликации выключен (''​Visual:​No''​),​ на время работы программы экран переключается на обычную страницу системы (0000h). Если же режим мультипликации включён (''​Visual:​Exec''​ или ''​Trace''​),​ системная страница не включается,​ зато после каждой исполненной команды обновляется содержимое экрана отладчика. В режиме ''​Visual:​Exec''​ исполняется отдельно каждая команда,​ а в режиме ''​Visual:​Trace''​ взамен одной команды ''​Call''​ исполняется вся вызываемая подпрограмма. \\ Все точки приостанова устанавливаются в основных банках памяти (которые были включены при запуске отладчика). \\ При достижении одной из активных точек приостанова (с признаком "​+"​ или "​~"​) либо выполняется уменьшение счётчика (если он ненулевой),​ либо приостанавливается выполнение программы и управление передаётся отладчику. Аналогично выполнение программы приостанавливается при изменении содержимого одного из активных контролируемых байтов. Следует иметь в виду, что выполнение программы значительно замедляется при установке контроля изменения байтов. \\ Выполнение программы можно приостановить нажатием клавиши <​key>​stop</​key>​ (если прерывания в этот момент разрешены). При выполнении команды ''​RET''​ с начальным состоянием стека или команды ''​RST 0''​ управление также передаётся отладчику;​ при этом считается,​ что программа успешно завершена. \\ Обработка точек приостанова организуется с помощью ''​RST 0'',​ поэтому все остальные команды ''​RST''​ могут использоваться в отлаживаемой программе без ограничений. После возврата управления отладчику в окне листинга первая строка устанавливается на команду,​ с которой начиналось выполнение,​ а вторая — на ту, которая вызвала приостанов (в ней устанавливается курсор). \\ Передача управления отладчику при достижении точки приостанова или при завершении программы возможна только при условии,​ что странице 0000h...3FFFh в этот момент сопоставлен основной банк памяти (тот же, что и при запуске отладчика). \\ При выполнении программы ведётся подсчёт профилей по всем символическим именам (при каждом прерывании и при трассировке отдельной команды увеличивается на единицу счётчик профиля ближайшего символического имени с адресом,​ меньшим текущего ''​PC''​). Значения счётчиков профиля отображаются в правой колонке окна листинга.| 
-|<​key>​ctrl+X</​key>​ (<​key>​SELECT</​key>​)|Выполнение одной команды. \\ \\ Выполняются те же действия,​ что и по указанию <​key>​ctrl+G</​key>,​ но исполняется только одна команда (расположенная по адресу из счетчика команд ''​PC''​). Можно исполнять также команды,​ находящиеся в ПЗУ (однако точки приостанова в ПЗУ устанавливать нельзя).|+|<​key>​ctrl+X</​key>​ (<​key>​SELECT</​key>​)|Выполнение одной команды. \\ \\ Выполняются те же действия,​ что и по указанию <​key>​ctrl+G</​key>,​ но исполняется только одна команда (расположенная по адресу из счётчика команд ''​PC''​). Можно исполнять также команды,​ находящиеся в ПЗУ (однако точки приостанова в ПЗУ устанавливать нельзя).|
 |<​key>​ctrl+T</​key>​| Выполнение команды с обходом подпрограммы. \\ Выполняется аналогично <​key>​ctrl+X</​key>,​ но для команды ''​CALL''​ управление возвращается отладчику только после выполнения вызываемой подпрограммы. При выполнении подпрограммы выполняется обычная обработка точек приостанова (как в <​key>​ctrl+G</​key>​).| |<​key>​ctrl+T</​key>​| Выполнение команды с обходом подпрограммы. \\ Выполняется аналогично <​key>​ctrl+X</​key>,​ но для команды ''​CALL''​ управление возвращается отладчику только после выполнения вызываемой подпрограммы. При выполнении подпрограммы выполняется обычная обработка точек приостанова (как в <​key>​ctrl+G</​key>​).|
-|<​key>​ctrl+P</​key>​|Установка счетчика команд ''​PC''​ на ту команду,​ против которой находится курсор.|+|<​key>​ctrl+P</​key>​|Установка счётчика команд ''​PC''​ на ту команду,​ против которой находится курсор.|
 |<​key>​ctrl+V</​key>​|Выбор режима мультипликации. \\ Устанавливается один из режимов ''​Visual:​No'',​ ''​Exec''​ или ''​Trace''​.| |<​key>​ctrl+V</​key>​|Выбор режима мультипликации. \\ Устанавливается один из режимов ''​Visual:​No'',​ ''​Exec''​ или ''​Trace''​.|
  
msx/dbg/dbg.1636715214.txt.gz · Последние изменения: 2021-11-12 14:06 — GreyWolf