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

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


msx:dbg:dbg

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
msx:dbg:dbg [2021-11-12 13:32]
GreyWolf
msx:dbg:dbg [2024-04-13 10:24] (текущий)
GreyWolf [DBG — экранный отладчик для MSX/MSX2]
Строка 1: Строка 1:
-====== DBG экранный отладчик для MSX/MSX2 ====== +====== DBG — экранный отладчик для MSX/MSX2 ======
-FIXME+
  
 Автор: Леонид Бараз Автор: Леонид Бараз
Строка 8: Строка 7:
   * XDBG — Расширенный экранный отладчик,​ версия 1   * XDBG — Расширенный экранный отладчик,​ версия 1
 отличия DBG/XDBG указаны в тексте. отличия DBG/XDBG указаны в тексте.
 +
 +{{dbg.zip|}} \\ 2024-04-12 английская версия ''​DBGE52.COM''​ получена от **Максима Власова** ​
  
 ====== Руководство пользователя ====== ====== Руководство пользователя ======
  
-В тексте данного документа применяются следующие обозначения: FIXME в уголковые скобки < и > берутся  ​названия ​ специальных  ​клавишпробелом ​ разделяются клавиши,​ которые нужно нажимать последовательно,​ а плюсом ​одновременно.+В тексте данного документа применяются следующие обозначения ​для клавишпробелом разделяются клавиши,​ которые нужно нажимать последовательно,​ а плюсом ​— одновременно.
  
-Программа ​DBG  ​представляет собой экранный отладчик программ,​ написанных на ассемблере Z80.  Этот отладчик может использоваться на ПЭВМ MSX2 и MSX, оснащенных VDP 9938 ("​YAMAHA"​ YIS503II), под управлением ​ операционной системы ​ ​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**:
 <​code>​ <​code>​
 A>Dbg [имя-программы] A>Dbg [имя-программы]
 </​code>​ </​code>​
 +
 +Команда вызова отладчика **XDBG**:
 +<​code>​
 +A>​XDbg[/​p[/​s]][/​M] [имя-программы]
 +</​code>​
 +После ''​XDbg''​ в команде запуска можно указать от одного до трёх флажков,​ которые определяют,​ в каком слоте памяти должен располагаться собственно отладчик. Первые два флажка определяют номера первичного и вторичного слота соответственно:​
 +|''​XDbg/​3/​0''​|слот 3-0|
 +|''​XDbg/​1''​|слот 1 (нерасширенный)|
 +
 +Флажок /M предписывает использование маппера (отладчик располагается в страницах FF, FE и FD). При переносе отладчика максимально возможный размер загружаемой и отлаживаемой программы может достигать 48 Kбайт.
 +
 +При отсутствии флажков отладчик размещается в основной оперативной памяти,​ оставляя для программы пользователя вместе с таблицей символических имён только 32 Кбайт. Однако
 +перенести отладчик в параллельную память можно и в процессе работы посредством команды <​key>​esc</​key>​ <​key>​U</​key>​ ([[#​esc_u|см. ниже]]).
  
 Примеры отображения на экране:​ Примеры отображения на экране:​
  
-Режим ​дисассемблера+Режим ​листинга ​ассемблера
 <​code>​ <​code>​
                         окно заголовка                         окно заголовка
Строка 28: Строка 42:
  
 ┌02000┬───────────────────────────────────────────────────────┬────────────────┐ ┌02000┬───────────────────────────────────────────────────────┬────────────────┐
-│List │ DEBUGGER Version ​5.2        ​Help:<​Esc>? ​ Visual:​Trace │ EI PC=D827 I=00│ +│List │ X-DEBUGGER Version ​1.0      ​Help:<​Esc>? ​ Visual:​Trace │ EI PC=D827 I=00│ 
-├─────┼──────────────────────────────────────────────────┬────┤32/2-/32/32 R=58│ +├─────┼──────────────────────────────────────────────────┬────┤8B/02/8B/8B R=58│ 
-│     ​│ ​      ​7FF8:​60 ​          ​LD ​   H,B                │    │FB/FA/F9/F8 +MAP│ +│     ​│ ​      ​7FF8:​60 ​          ​LD ​   H,B                │    │--/--/--/--     │ 
-│     ​│ ​      ​7FF9:​4B ​          ​LD ​   C,E                │    │T=882B:D0C1/323C+│     ​│ ​      ​7FF9:​4B ​          ​LD ​   C,E                │    │T=838B:CE6B/89C3
 │00~00│ ​      ​7FFA:​03 ​          ​INC ​  ​BC ​                ​│ ​   ├────────────────┤ │00~00│ ​      ​7FFA:​03 ​          ​INC ​  ​BC ​                ​│ ​   ├────────────────┤
 │     ​│ ​      ​7FFB:​1A ​          ​LD ​   A,​(DE) ​            ​│ ​   │ A=00 . sZxHxpNC│ │     ​│ ​      ​7FFB:​1A ​          ​LD ​   A,​(DE) ​            ​│ ​   │ A=00 . sZxHxpNC│
Строка 63: Строка 77:
  
 ┌1F000┬───────────────────────────────────────────────────────┬────────────────┐ ┌1F000┬───────────────────────────────────────────────────────┬────────────────┐
-│Input│ File:​B:​prog ​   .COM  Area:07F0-8A1B  ​Reloc:​0100->​07F0 │ EI PC=0100 I=00│ +│Input│ File:​B:​prog ​   .COM  Area:07F0-BEFC  ​Reloc:​0100->​07F0 │ EI PC=0100 I=00│ 
-├─────┼──────────────────────────────────────────────────┬────┤32/32/32/32 R=7B│ +├─────┼──────────────────────────────────────────────────┬────┤8B/8B/8B/8B R=7B│ 
-│     ​│ ​      ​012F:​CB 16        RL    (HL)               ​│ ​   │--/--/--/-- -MAP│ +│     ​│ ​      ​012F:​CB 16        RL    (HL)               ​│ ​   │FB/FA/F9/F8     │ 
-│     ​│ ​      ​0131:​30 0F        JR    NC,​0142 ​           │    │T=8A1A:CFC5/75C3+│     ​│ ​      ​0131:​30 0F        JR    NC,​0142 ​           │    │T=BEFB:CE6B/89C3
 │     ​│ ​      ​0133:​E5 ​          ​PUSH ​ HL                 ​│ ​   ├────────────────┤ │     ​│ ​      ​0133:​E5 ​          ​PUSH ​ HL                 ​│ ​   ├────────────────┤
 │     ​│ ​      ​0134:​DD 66 00     ​LD ​   H,​(IX+00) ​         │    │ A=00 . szxhxpnc│ │     ​│ ​      ​0134:​DD 66 00     ​LD ​   H,​(IX+00) ​         │    │ A=00 . szxhxpnc│
Строка 91: Строка 105:
 </​code>​ </​code>​
  
-Отладчик обеспечивает:​ +<hidden DBG
-  * загрузку в память и запись на диск программ и таблиц символов (файлов ​<имя>.<​тип>​ и <​имя>​.SYM);​ +Режим листинга
-  * просмотр и корректировку ​ содержимого ​ оперативной памяти в символьном и шестнадцатиричном формате,​ а также в виде команд ассемблера;​ +
-  * просмотр и корректировку содержимого видеопамяти в символьном и шестнадцатиричном формате;​ +
-  * просмотр ​ и  изменение ​ содержимого регистров ​ отлаживаемой программы;​ +
-  * использование имен, введенных вместе с программой,​ а также добавление новых имен и удаление имеющихся (имена используются и в командах ассемблера);​ имена можно настроить на начальный адрес программы;​ +
-  * выдачу на печать содержимого текущего окна отладчика;​ +
-  * установку и снятие точек приостанова (со счетчиками);​ +
-  * установку и снятие контроля изменения байтов памяти;​ +
-  * покомандное и непрерывное выполнение программы (в том числе и в режиме мультипликации, ​ с обходом и без обхода ​ команд CALL); +
-  * возврат управления отладчику:​ при достижении точки приостанова с нулевым счетчиком,​ при изменении одного из контролируемых байтов памяти, ​ при нормальном завершении программы,​ при нажатии клавиши <​key>​stop</​key>;​ +
-  * пересылку и заполнение областей памяти, ​ поиск ​ символьного ​ или шестнадцатиричного образца. +
-  * выполнение ​ арифметических действий ​ над шестнадцатиричными числами;​ +
-  * получение на экране ​ краткой информации ​ о средствах, ​ имеющихся в отладчике. +
- +
-При запуске ​ отладчик переводит систему ​ в 80-символьный режим и загружает в оперативную память программу,​ если ее имя указано в команде (имя указывается без уточнения;​ загружаются файлы ''<​имя>​.<​тип>''​ и ''<​имя>​.SYM''​). +
- +
-В процессе работы ​ на экране выделяются ​ поля разметки и поля данных. Курсор всегда находится в одном из полей данных,​ и  только ​ в такие поля ​ можно вносить изменения. ​ При выходе курсора ​ из текущего поля ​ его новое содержимое проверяется и заносится в память машины;​ все остальные поля экрана при этом приводятся ​ (по возможности) ​ в соответствие с содержимым измененного поля. ​ Например,​ для изменения байта или слова данных в любом поле достаточно просто набрать его новое значение и выйти из поля. Аналогично,​ для того, чтобы передвинуть окно дисассемблера или дампа на другие адреса памяти,​ достаточно в любой строке набрать нужное имя в поле имени или нужный адрес в поле адреса. ​ Для создания нового имени ​ достаточно набрать его ​ в соответствующем поле, ​ а  для удаления существующего - заменить его на новое или заполнить поле имени пробелами. +
- +
-Все поля данных, ​ имеющиеся на экране, ​ сгруппированы в окна: три основных ("​дампа",​ "​дисассемблера"​ и "​регистров"​) и одно дополнительное ​ ("​заголовка", ​ "​файлов" ​ или ​ "​памяти"​). +
- +
-Курсор перемещается в пределах одного окна с помощью стрелок,​ клавиш <​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%>| +
-|<​key>​esc</​key>​ <​key>​L</​key>​|Работа в окне дисассемблера. \\ \\ Левая колонка содержит точки приостанова (для них указывается максимальный счетчик,​ признак активности (+ - активна,​ ~ - активна в параллельном ​ банке памяти,​ - - неактивна) и текущее значение счетчика). ​ В основной части каждой строки окна ​ располагаются ​ поля ​ имени, ​ адреса,​ байтов,​ образующих команду, ​ и  самого ​ текста ​ команды. \\ Правая колонка окна содержит значения счетчиков профилей выполнения программы ​ (в строках команд с символическими именами). \\ Имена ​ во всех полях ​ (в том числе ​ и  в текстах команд) должны заканчиваться двоеточием. Например,​ команды могут записываться в следующем виде: <code asm> +
-LD    A,​(name:​3000) +
-LD    A,(name:) +
-LD    A,(3000) +
-</​code>​ Команда RST 30 (Inter-Slot Call)  дополняется в качестве операндов номером слота и адресом вызова.| +
-|<​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>​R</​key>​|Работа в окне регистров. \\ \\ Окно ​ содержит ​ поля ​ значений ​ всех регистров, ​ а также байтов или слов, ​ на которые указывают шестнадцатибитные регистры. ​ Одновременно ​ с шестнадцатиричными значениями байтов выдается их символьное представление. \\ Кроме того, имеются поля счетчика команд (PC), состояния обработки прерывания (EI/​DI) ​ и  выбранного банка памяти (с указанием слота и страницы маппера) ​ для всех четырех 16 Kбайтных страниц. \\ Установка конфигурации маппера может быть отключена. \\ **В XDBG**: Наличие или отсутствие маппера распознается автоматически.| +
-|<​key>​esc</​key>​ <​key>​Y</​key>​|Показ символических имен. \\ \\ Окно дисассемблера заполняется строками,​ соответствующими символическим именам.| +
-|<​key>​esc</​key>​ <​key>​B</​key>​|Показ точек приостанова. \\ \\ Окно дисассемблера заполняется строками,​ соответствующими точкам приостанова.| +
-|<​key>​esc</​key>​ <​key>​H</​key>​|Показ контролируемых байтов. \\ \\ Окно дампа заполняется строками, ​ соответствующими адресам байтов,​ изменение которых контролируется.| +
-|<​key>​esc</​key>​ <​key>​I</​key>​|Чтение файлов. \\ \\ В дополнительном окне ​ располагаются поля имени файла ​ и интервала адресов для размещения программы. ​ После нажатия клавиши перевода ​ строки файл ​ с именем ​ ''<​имя>​.<​тип>''​ считывается ​ в  память ​ (конфигурация ​ слотов ​ и маппера определяется ​ соответствующими полями в окне регистров). \\ Кроме того, к таблице имен присоединяются имена из файла ''<​имя>​.SYM'', ​ если ​ он  есть. С помощью полей ''​Reloc:''​ можно указать ​ настройку ​ символических ​ имен на нестандартный начальный адрес программы.| +
-|<​key>​esc</​key>​ <​key>​O</​key>​|Запись файлов. \\ \\ В дополнительном окне ​ располагаются поля имени файла ​ и интервала адресов. После нажатия клавиши перевода строки указанная область памяти записывается в файл ''<​имя>​.<​тип>'',​ а все символические имена - в файл ''<​имя>​.SYM''​ (конфигурация слотов и маппера определяется соответствующими полями в окне регистров).| +
-|<​key>​esc</​key>​ <​key>​P</​key>​|Выдача на печать ​ содержимого текущего окна отладчика (печать прерывается при нажатии <​key>​ctrl+stop</​key>​).| +
-|<​key>​esc</​key>​ <​key>​M</​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>​E</​key>​|Начальная установка регистров. \\ \\ Все регистры ​ устанавливаются ​ в 0,  счетчик ​ команд ​ PC устанавливается на 100h, состояние прерываний - разрешены (EI),  всем ​ страницам памяти ​ сопоставлены ​ основные банки памяти (установленные при запуске отладчика).| +
-|<​key>​esc</​key>​ <​key>​Z</​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>​Q</​key>​|Завершение работы отладчика ​ и  выход ​ в  среду операционной системы ​ с восстановлением исходного режима экрана (40/80 символов).| +
-|<​key>​esc</​key>​ <​key>​U</​key>​|**Только в XDBG** \\ Перенос отладчика в параллельную память. \\ Программы и данные самого ​ отладчика ​ переносятся ​ в  ту память,​ которая задана полями слотов и  маппера в окне регистров. При этом ​ для ​ загрузки ​ и  отладки ​ программ пользователя становится доступным около 48Кбайт ​ памяти. \\ Перенос в параллельную память не  может ​ быть ​ выполнен,​ если хотя бы одна из трех страниц ​ (0000-3FFF,​4000-7FFF,​ 8000-BFFF) ​ совпадает ​ с  первоначальной ​ по   ​слотовому адресу. Кроме того, если при ​ запуске ​ отладчика ​ или ​ в процессе ​ работы ​ перенос ​ выполнен, ​  ​его ​  ​нельзя ​  ни отменить,​ ни изменить;​ можно только выйти из отладчика и загрузить его снова.| +
-|<​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+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+P</​key>​|Установка ​ счетчика команд ''​PC'' ​ на  ту  команду,​ против которой находится курсор.| +
-|<​key>​ctrl+V</​key>​|Выбор режима мультипликации. \\ Устанавливается один ​ из  режимов ​ ''​Visual:​No'', ​ ''​Exec'' ​ или ''​Trace''​.| +
- +
-Распределение видеопамяти:​ +
-|0000h|PNT системы и программы.| +
-|1000h|PGT системы и программы.| +
-|2000h|PNT отладчика.| +
-|2800h|PGT отладчика.| +
-|3000h|PNT подсказки.| +
- +
- +
- +
 <​code>​ <​code>​
- 
- 
-                         ​MSX/​MSX2 
- 
-                 ​Руководство пользователя 
- 
- 
-                       ​Леонид БАРАЗ 
- 
- 
- 
-     ​Программа XDBG представляет собой экранный отладчик про- 
-грамм, написанных на ассемблере Z80.  Этот отладчик может ис- 
-пользоваться на ПЭВМ MSX2 и MSX, оснащенных VDP 9938 ("​YAMAHA"​ 
-YIS503II), под управлением ​ операционной системы ​ MSX-DOS ​ (в 
-том числе в варианте Ю.В.Галутина). 
- 
-     ​Команда вызова отладчика:​ 
-       ​A>​XDbg[/​p[/​s]][/​M] [имя-программы] 
- 
-     ​После XDbg в команде запуска можно указать от одного до 
-трех флажков, ​ которые ​ определяют, ​ в  каком ​ слоте ​ памяти 
-должен располагаться собственно отладчик. Первые два ​ флажка 
-определяют ​  ​номера ​  ​первичного ​   и    вторичного ​   слота 
-соответственно ​ (XDbg/​3/​0 ​ -  слот ​ 3-0,  XDbg/​1 ​ -  слот ​ 1 
-нерасширенный). Флажок /M предписывает использование маппера 
-(отладчик располагается ​ в  страницах ​ FF,  FE  и  FD).  При 
-переносе отладчика максимально возможный размер ​ загружаемой 
-и отлаживаемой программы может достигать 48Kбайт. 
-     ​При отсутствии флажков отладчик размещается в  основной 
-оперативной ​ памяти, ​ оставляя ​ для ​ программы ​ пользователя 
-вместе с таблицей символических имен только 32КБайт. ​ Однако 
-перенести отладчик в параллельную память можно и в  процессе 
-работы посредством команды <esc> U (см. ниже). 
- 
- 
-     ​Примеры отображения на экране:​ 
-             ​Режим листинга ассемблера 
- 
                         окно заголовка                         окно заголовка
         ┌──────────────────────────────────────────────────┐         ┌──────────────────────────────────────────────────┐
  
 ┌02000┬───────────────────────────────────────────────────────┬────────────────┐ ┌02000┬───────────────────────────────────────────────────────┬────────────────┐
-│List │ X-DEBUGGER Version ​1.0      ​Help:<​Esc>? ​ Visual:​Trace │ EI PC=D827 I=00│ +│List │ DEBUGGER Version ​5.2        ​Help:<​Esc>? ​ Visual:​Trace │ EI PC=D827 I=00│ 
-├─────┼──────────────────────────────────────────────────┬────┤8B/02/8B/8B R=58│ +├─────┼──────────────────────────────────────────────────┬────┤32/2-/32/32 R=58│ 
-│     ​│ ​      ​7FF8:​60 ​          ​LD ​   H,B                │    │--/--/--/--     │ +│     ​│ ​      ​7FF8:​60 ​          ​LD ​   H,B                │    │FB/FA/F9/F8 +MAP│ 
-│     ​│ ​      ​7FF9:​4B ​          ​LD ​   C,E                │    │T=838B:CE6B/89C3+│     ​│ ​      ​7FF9:​4B ​          ​LD ​   C,E                │    │T=882B:D0C1/323C
 │00~00│ ​      ​7FFA:​03 ​          ​INC ​  ​BC ​                ​│ ​   ├────────────────┤ │00~00│ ​      ​7FFA:​03 ​          ​INC ​  ​BC ​                ​│ ​   ├────────────────┤
 │     ​│ ​      ​7FFB:​1A ​          ​LD ​   A,​(DE) ​            ​│ ​   │ A=00 . sZxHxpNC│ │     ​│ ​      ​7FFB:​1A ​          ​LD ​   A,​(DE) ​            ​│ ​   │ A=00 . sZxHxpNC│
Строка 224: Строка 138:
 │ │       ​4030:​2A 4B F3 C9 DD E5 DD 21 B7 00 CD AB 40 DD E1 30│*KСищЕщ!≈.мδ@щА0│ │ │       ​4030:​2A 4B F3 C9 DD E5 DD 21 B7 00 CD AB 40 DD E1 30│*KСищЕщ!≈.мδ@щА0│
 └─┴───────────────────────────────────────────────────────────┴────────────────┘ └─┴───────────────────────────────────────────────────────────┴────────────────┘
 +</​code>​
  
-             Режим загрузки программы +Режим загрузки программы 
 +<​code>​
                            ​окно запроса                            ​окно запроса
                     (дополнительное окно файлов)                     (дополнительное окно файлов)
Строка 232: Строка 147:
  
 ┌1F000┬───────────────────────────────────────────────────────┬────────────────┐ ┌1F000┬───────────────────────────────────────────────────────┬────────────────┐
-│Input│ File:​B:​prog ​   .COM  Area:07F0-BEFC  ​Reloc:​0100->​07F0 │ EI PC=0100 I=00│ +│Input│ File:​B:​prog ​   .COM  Area:07F0-8A1B  ​Reloc:​0100->​07F0 │ EI PC=0100 I=00│ 
-├─────┼──────────────────────────────────────────────────┬────┤8B/8B/8B/8B R=7B│ +├─────┼──────────────────────────────────────────────────┬────┤32/32/32/32 R=7B│ 
-│     ​│ ​      ​012F:​CB 16        RL    (HL)               ​│ ​   │FB/FA/F9/F8     │ +│     ​│ ​      ​012F:​CB 16        RL    (HL)               ​│ ​   │--/--/--/-- -MAP│ 
-│     ​│ ​      ​0131:​30 0F        JR    NC,​0142 ​           │    │T=BEFB:CE6B/89C3+│     ​│ ​      ​0131:​30 0F        JR    NC,​0142 ​           │    │T=8A1A:CFC5/75C3
 │     ​│ ​      ​0133:​E5 ​          ​PUSH ​ HL                 ​│ ​   ├────────────────┤ │     ​│ ​      ​0133:​E5 ​          ​PUSH ​ HL                 ​│ ​   ├────────────────┤
 │     ​│ ​      ​0134:​DD 66 00     ​LD ​   H,​(IX+00) ​         │    │ A=00 . szxhxpnc│ │     ​│ ​      ​0134:​DD 66 00     ​LD ​   H,​(IX+00) ​         │    │ A=00 . szxhxpnc│
Строка 258: Строка 173:
 │V│ ​     1F090:45 49 20 50 43 3D 30 31 30 30 20 52 3D 37 42 16│EI PC=0100 ​    .│ │V│ ​     1F090:45 49 20 50 43 3D 30 31 30 30 20 52 3D 37 42 16│EI PC=0100 ​    .│
 └─┴───────────────────────────────────────────────────────────┴────────────────┘ └─┴───────────────────────────────────────────────────────────┴────────────────┘
 +</​code>​
 +</​hidden>​
  
-     ​Отладчик обеспечивает:​ 
  
-загрузку в память и запись на диск программ и таблиц симво+Отладчик обеспечивает:​ 
-  ​лов (файлов <​имя>​.<​тип>​ и <​имя>​.SYM);​ +  * загрузку в память и запись на диск программ и таблиц символов (файлов ​''​<​имя>​.<​тип>​'' ​и ''​<​имя>​.SYM''​); 
-просмотр и корректировку ​ содержимого ​ оперативной памяти в +  ​* ​просмотр и корректировку содержимого оперативной памяти в символьном и шестнадцатиричном формате,​ а также в виде команд ассемблера;​ 
-  ​символьном и шестнадцатиричном формате, ​ а также в виде ко+  ​* ​просмотр и корректировку содержимого видеопамяти в символьном и шестнадцатиричном формате;​ 
-  ​манд ассемблера;​ +  ​* ​просмотр и изменение содержимого регистров отлаживаемой программы;​ 
-просмотр и корректировку содержимого видеопамяти в символь+  ​* ​использование имён, введённых вместе с программой,​ а также добавление новых имён и удаление имеющихся (имена используются и в командах ассемблера);​ имена можно настроить на начальный адрес программы;​ 
-  ​ном и шестнадцатиричном формате;​ +  ​* ​выдачу на печать содержимого текущего окна отладчика;​ 
-просмотр ​ и  изменение ​ содержимого регистров ​ отлаживаемой +  ​* ​установку и снятие точек приостанова (со счётчиками);​ 
-  ​программы;​ +  ​* ​установку и снятие контроля изменения байтов памяти;​ 
-использование имен, введенных вместе с программой, ​ а также +  ​* ​покомандное и непрерывное выполнение программы (в том числе и в режиме мультипликации,​ с обходом и без обхода команд ​''​CALL''​); 
-  ​добавление новых имен и удаление имеющихся (имена использу+  ​* ​возврат управления отладчику:​ при достижении точки приостанова с нулевым счётчиком,​ при изменении одного из контролируемых байтов памяти,​ при нормальном завершении программы,​ при нажатии клавиши <key>stop</key>; 
-  ​ются и в командах ассемблера);​ имена можно настроить на на+  ​* ​пересылку и заполнение областей памяти,​ поиск символьного или шестнадцатиричного образца. 
-  ​чальный адрес программы;​ +  ​* ​выполнение арифметических действий над шестнадцатиричными числами;​ 
-выдачу на печать содержимого текущего окна отладчика;​ +  ​* ​получение на экране краткой информации о средствах,​ имеющихся в отладчике.
-установку и снятие точек приостанова (со счетчиками);​ +
-установку и снятие контроля изменения байтов памяти;​ +
-покомандное и непрерывное выполнение программы (в том числе +
-  ​и  в режиме мультипликации, ​ с обходом и без обхода ​ команд +
-  ​CALL); +
-возврат управления отладчику:​ при достижении точки приоста+
-  ​нова с нулевым счетчиком,​ при изменении одного из контроли+
-  ​руемых байтов памяти, ​ при нормальном завершении программы,​ +
-  ​при нажатии клавиши <​stop>;​ +
-пересылку и заполнение областей памяти, ​ поиск ​ символьного +
-  ​или шестнадцатиричного образца. +
-выполнение ​ арифметических действий ​ над шестнадцатиричными +
-  ​числами;​ +
-получение на экране ​ краткой информации ​ о средствах, ​ име+
-  ​ющихся в отладчике.+
  
-     При запуске ​ отладчик переводит систему ​ в 80-символьный +При запуске отладчик переводит систему в 80символьный режим и загружает в оперативную память программу,​ если ее имя указано в команде (имя указывается без уточнения;​ загружаются файлы ​''​<​имя>​.<​тип>​'' ​и ''​<​имя>​.SYM''​).
-режим и загружает в оперативную память программу,​ если ее имя +
-указано в команде (имя указывается без уточнения;​ загружаются +
-файлы <​имя>​.<​тип>​ и <​имя>​.SYM).+
  
-     В процессе работы ​ на экране выделяются ​ поля разметки и +В процессе работы на экране выделяются поля разметки и поля данных. Курсор всегда находится в одном из полей данных,​ и только в такие поля можно вносить изменения. При выходе курсора из текущего поля его новое содержимое проверяется и заносится в память машины;​ все остальные поля экрана при этом приводятся (по возможности) в соответствие с содержимым изменённого поля. Например,​ для изменения байта или слова данных в любом поле достаточно просто набрать его новое значение и выйти из поля. Аналогично,​ для того, чтобы передвинуть окно листинга или дампа на другие адреса памяти,​ достаточно в любой строке набрать нужное имя в поле имени или нужный адрес в поле адреса. Для создания нового имени достаточно набрать его в соответствующем поле, а для удаления существующего ​— заменить его на новое или заполнить поле имени пробелами.
-поля данных. Курсор всегда находится в одном из полей данных,​ +
-и  только ​ в такие поля ​ можно вносить изменения. ​ При выходе +
-курсора ​ из текущего поля ​ его новое содержимое проверяется и +
-заносится в память машины;​ все остальные поля экрана при этом +
-приводятся ​ (по возможности) ​ в соответствие с содержимым из+
-мененного поля. ​ Например,​ для изменения байта или слова дан+
-ных в любом поле достаточно просто набрать его новое значение +
-и выйти из поля. Аналогично,​ для того, чтобы передвинуть окно +
-листинга ​ или ​ дампа ​ на другие ​ адреса памяти, ​ достаточно в +
-любой строке набрать нужное имя в поле имени или нужный адрес +
-в поле адреса. ​ Для создания нового имени ​ достаточно набрать +
-его ​ в соответствующем поле, ​ а  для удаления существующего ​+
-заменить его на новое или заполнить поле имени пробелами.+
  
-     Все поля данных, ​ имеющиеся на экране, ​ сгруппированы ​ в +Все поля данных,​ имеющиеся на экране,​ сгруппированы в окна: три основных ("​дампа",​ "​листинга"​ и "​регистров"​) и одно дополнительное ("​заголовка",​ "​файлов"​ или "​памяти"​).
-окна: три основных ("​дампа",​ "​листинга"​ и "​регистров"​) и одно +
-дополнительное ​ ("​заголовка",​ "​файлов"​ или "​памяти"​). ​ ​Курсор +
-перемещается в пределах одного окна с помощью стрелок,​ клавиш +
-<​перевод строки>,​ <tab> и <​ctrl>​+F. ​ Листание ​ осуществляется +
-по клавишам <​ctrl>​+J (вверх) и <​ctrl>​+Q (вниз). ​ Редактирова- +
-ние информации ​ выполняется ​ символьными ​ клавишами, ​ а также +
-клавишами <​ins>,​ <del> и <bs>. Переход в другое окно (и уста- +
-новка дополнительного окна) выполняются по одной из следующих +
-команд:​+
  
 +Курсор перемещается в пределах одного окна с помощью стрелок,​ клавиш <​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%>|
 +|<​key>​esc</​key>​ <​key>​L</​key>​|Работа в окне листинга. \\ \\ Левая колонка содержит точки приостанова (для них указывается максимальный счётчик,​ признак активности (''​+ -''​ активна,​ ''​~ -''​ активна в параллельном банке памяти,​ ''​- -''​ неактивна) и текущее значение счётчика). В основной части каждой строки окна располагаются поля имени, адреса,​ байтов,​ образующих команду,​ и самого текста команды. \\ Правая колонка окна содержит значения счётчиков профилей выполнения программы (в строках команд с символическими именами). \\ Имена во всех полях (в том числе и в текстах команд) должны заканчиваться двоеточием. Например,​ команды могут записываться в следующем виде: <​code>​
 +LD    A,​(name:​3000)
 +LD    A,(name:)
 +LD    A,(3000)
 +</​code>​ Команда ''​RST 30''​ (Inter-Slot Call) дополняется в качестве операндов номером слота и адресом вызова.|
 +|<​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>​R</​key>​|Работа в окне регистров. \\ \\ Окно содержит поля значений всех регистров,​ а также байтов или слов, на которые указывают шестнадцатибитные регистры. Одновременно с шестнадцатиричными значениями байтов выдаётся их символьное представление. \\ Кроме того, имеются поля счётчика команд (''​PC''​),​ состояния обработки прерывания (EI/DI) и выбранного банка памяти (с указанием слота и страницы маппера) для всех четырех 16 Kбайтных страниц. \\ **DBG**: Установка конфигурации маппера может быть отключена. \\ **XDBG**: Наличие или отсутствие маппера распознаётся автоматически.|
 +|<​key>​esc</​key>​ <​key>​Y</​key>​|Показ символических имён. \\ \\ Окно листинга заполняется строками,​ соответствующими символическим именам.|
 +|<​key>​esc</​key>​ <​key>​B</​key>​|Показ точек приостанова. \\ \\ Окно листинга заполняется строками,​ соответствующими точкам приостанова.|
 +|<​key>​esc</​key>​ <​key>​H</​key>​|Показ контролируемых байтов. \\ \\ Окно дампа заполняется строками,​ соответствующими адресам байтов,​ изменение которых контролируется.|
 +|<​key>​esc</​key>​ <​key>​I</​key>​|Чтение файлов. \\ \\ В дополнительном окне располагаются поля имени файла и интервала адресов для размещения программы. После нажатия клавиши перевода строки файл с именем ''<​имя>​.<​тип>''​ считывается в память (конфигурация слотов и маппера определяется соответствующими полями в окне регистров). \\ Кроме того, к таблице имён присоединяются имена из файла ''<​имя>​.SYM'',​ если он есть. С помощью полей ''​Reloc:''​ можно указать настройку символических имён на нестандартный начальный адрес программы.|
 +|<​key>​esc</​key>​ <​key>​O</​key>​|Запись файлов. \\ \\ В дополнительном окне располагаются поля имени файла и интервала адресов. После нажатия клавиши перевода строки указанная область памяти записывается в файл ''<​имя>​.<​тип>'',​ а все символические имена — в файл ''<​имя>​.SYM''​ (конфигурация слотов и маппера определяется соответствующими полями в окне регистров).|
 +|<​key>​esc</​key>​ <​key>​P</​key>​|Выдача на печать содержимого текущего окна отладчика (печать прерывается при нажатии <​key>​ctrl+stop</​key>​).|
 +|<​key>​esc</​key>​ <​key>​M</​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>​E</​key>​|Начальная установка регистров. \\ \\ Все регистры устанавливаются в 0, счётчик команд ''​PC''​ устанавливается на 100h, состояние прерываний — разрешены (EI), всем страницам памяти сопоставлены основные банки памяти (установленные при запуске отладчика).|
 +|<​key>​esc</​key>​ <​key>​Z</​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>​Q</​key>​|Завершение работы отладчика и выход в среду операционной системы с восстановлением исходного режима экрана (40/80 символов).|
 +|{{anchor:​esc_u}} <​key>​esc</​key>​ <​key>​U</​key>​|**Только в XDBG** \\ Перенос отладчика в параллельную память. \\ Программы и данные самого отладчика переносятся в ту память,​ которая задана полями слотов и маппера в окне регистров. При этом для загрузки и отладки программ пользователя становится доступным около 48 Кбайт памяти. \\ Перенос в параллельную память не может быть выполнен,​ если хотя бы одна из трех страниц (0000...3FFF,​4000...7FFF,​ 8000...BFFF) совпадает с первоначальной по слотовому адресу. Кроме того, если при запуске отладчика или в процессе работы перенос выполнен,​ его нельзя ни отменить,​ ни изменить;​ можно только выйти из отладчика и загрузить его снова.|
 +|<​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+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+P</​key>​|Установка счётчика команд ''​PC''​ на ту команду,​ против которой находится курсор.|
 +|<​key>​ctrl+V</​key>​|Выбор режима мультипликации. \\ Устанавливается один из режимов ''​Visual:​No'',​ ''​Exec''​ или ''​Trace''​.|
  
- +Распределение видеопамяти:​ 
- +|0000h|PNT системы и программы.| 
-</​code>​ +|1000h|PGT системы и программы.| 
-{{dbg.zip |}}+|2000h|PNT отладчика.| 
 +|2800h|PGT отладчика.| 
 +|3000h|PNT подсказки.|
  
 ====== Ссылки ====== ====== Ссылки ======
Строка 333: Строка 242:
  
 {{tag>​MSX Application Baraz_L_S}} {{tag>​MSX Application Baraz_L_S}}
- 
msx/dbg/dbg.1636713145.txt.gz · Последние изменения: 2021-11-12 13:32 — GreyWolf