Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
msx:xdbg:xdbg [2020-06-29 10:28] GreyWolf [Руководство пользователя] |
msx:xdbg:xdbg [2021-11-12 22:44] (текущий) GreyWolf создано |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Расширенный экранный отладчик XDBG ====== | + | ~~HIDEPAGE:search;sitemap~~ |
- | FIXME | + | ~~REDIRECT>msx:dbg:dbg~~ |
- | + | ||
- | Автор: Леонид Бараз | + | |
- | + | ||
- | ====== Руководство пользователя ====== | + | |
- | Версия 1 MSX/MSX2 | + | |
- | + | ||
- | Программа XDBG представляет собой экранный отладчик программ, написанных на ассемблере Z80.Этот отладчик может использоваться на ПЭВМ [[msx:msx_2]] и [[msx:msx_1|MSX]] , оснащенных [[msx:yamaha_v9938:yamaha_v9938|]] ( [[msx:yamaha_yis-503iir:yamaha_yis-503iir|]]), под управлением операционной системы [[msx:dos|]] (в том числе в варианте Ю.В.Галутина). | + | |
- | + | ||
- | Команда вызова отладчика: | + | |
- | <code> | + | |
- | A>XDbg[/p[/s]][/M] [имя-программы] | + | |
- | </code> | + | |
- | + | ||
- | После XDbg в команде запуска можно указать от одного до трех флажков, которые определяют, в каком слоте памяти должен располагаться собственно отладчик. Первые два флажка определяют номера первичного и вторичного слота соответственно ''XDbg/3/0'' — слот 3-0, ''XDbg/1'' — слот 1 нерасширенный). Флажок /M предписывает использование маппера (отладчик располагается в страницах FF, FE и FD). При переносе отладчика максимально возможный размер загружаемой и отлаживаемой программы может достигать 48Kбайт. | + | |
- | + | ||
- | При отсутствии флажков отладчик размещается в основной оперативной памяти, оставляя для программы пользователя вместе с таблицей символических имен только 32КБайт. Однако | + | |
- | перенести отладчик в параллельную память можно и в процессе работы посредством команды <key>ESC</key> <key>u</key> (см. ниже). | + | |
- | + | ||
- | Примеры отображения на экране: | + | |
- | + | ||
- | Режим листинга ассемблера | + | |
- | <code> | + | |
- | окно заголовка | + | |
- | ┌──────────────────────────────────────────────────┐ | + | |
- | + | ||
- | ┌02000┬───────────────────────────────────────────────────────┬────────────────┐ | + | |
- | │List │ X-DEBUGGER Version 1.0 Help:<Esc>? Visual:Trace │ EI PC=D827 I=00│ | + | |
- | ├─────┼──────────────────────────────────────────────────┬────┤8B/02/8B/8B R=58│ | + | |
- | │ │ 7FF8:60 LD H,B │ │--/--/--/-- │ | + | |
- | │ │ 7FF9:4B LD C,E │ │T=838B:CE6B/89C3│ | + | |
- | │00~00│ 7FFA:03 INC BC │ ├────────────────┤ | + | |
- | │ │ 7FFB:1A LD A,(DE) │ │ A=00 . sZxHxpNC│ | + | |
- | │ │ 7FFC:FE 38 CP 38 │ │ BC=0240: 00 . │ | + | |
- | │ │ 7FFE:FF RST 38 │ │ DE=0000: C3 "ц"│ | + | |
- | │ │ 7FFF:FF RST 38 │ │ HL=7FFD: 38 "8"│ | + | |
- | │ │MEM80@:8000:00 NOP │0078│ IX=1377: 2A "*"│ | + | |
- | │C0-C0│ 8001:00 NOP │ │ IY=0A00: 53 "S"│ | + | |
- | │ │ 8002:00 NOP │ ├────────────────┤ | + | |
- | │20+1A│ 8003:20 FB JR NZ,MEM80@:8000 │ │A'=00 . szxhxpnc│ | + | |
- | │ │ 8005:DD 2A 08 80 LD IX,(PRED:8008) │ │BC'=0120: E1 "А"│ | + | |
- | │00+00│ 8009:C1 POP BC │ │DE'=0A00: 53 "S"│ | + | |
- | │ │ 800A:CD CD D9 CALL D9CD │ │HL'=1100: 0E . │ | + | |
- | ├─┬───┴──────────────────────────────────────────────────┴────┼────────────────┤ | + | |
- | │ │ 3FC0:E7 38 EB 2A E9 38 7D 93 6F 7C 9A 67 22 EB 38 2A│Г8К*И8}.o|.g"К8*│ | + | |
- | │-│ 3FD0:E7 38 EB 21 18 39 C3 0A 1F CD 36 11 22 E9 38 EB│Г8К!.9ц..м6."И8К│ | + | |
- | │ │ 3FE0:2A E7 38 7B 95 6F 7A 9C 67 22 EB 38 2A E9 38 EB│*Г8{.oz.g"К8*И8К│ | + | |
- | │+│ 3FF0:21 1E 39 C3 0A 1F 0E 07 25 3D 20 03 E9 3C 32 03│!.9ц....%= .И<2.│ | + | |
- | │ │DRIVER:4000:41 42 6F 57 76 65 00 00 00 00 00 00 00 00 00 00│ABoWve..........│ | + | |
- | │ │ 4010:C3 F5 74 C3 86 78 C3 09 79 C3 23 79 C3 50 79 C3│цУtц.xц.yц#yцPyц│ | + | |
- | │~│ 4020:82 78 C3 35 5B 37 C3 AC 60 C3 14 62 00 C3 AE 5F│.xц5[7ц∞`ц.b.ц∈_│ | + | |
- | │ │ 4030:2A 4B F3 C9 DD E5 DD 21 B7 00 CD AB 40 DD E1 30│*KСищЕщ!≈.мδ@щА0│ | + | |
- | └─┴───────────────────────────────────────────────────────────┴────────────────┘ | + | |
- | </code> | + | |
- | + | ||
- | Режим загрузки программы | + | |
- | <code> | + | |
- | окно запроса | + | |
- | (дополнительное окно файлов) | + | |
- | ┌──────────────────────────────────────────────────┐ | + | |
- | + | ||
- | ┌1F000┬───────────────────────────────────────────────────────┬────────────────┐ | + | |
- | │Input│ File:B:prog .COM Area:07F0-BEFC Reloc:0100->07F0 │ EI PC=0100 I=00│ | + | |
- | ├─────┼──────────────────────────────────────────────────┬────┤8B/8B/8B/8B R=7B│ | + | |
- | │ │ 012F:CB 16 RL (HL) │ │FB/FA/F9/F8 │ | + | |
- | │ │ 0131:30 0F JR NC,0142 │ │T=BEFB:CE6B/89C3│ | + | |
- | │ │ 0133:E5 PUSH HL │ ├────────────────┤ | + | |
- | │ │ 0134:DD 66 00 LD H,(IX+00) │ │ A=00 . szxhxpnc│ | + | |
- | │ │ 0137:DD 6E FF LD L,(IX-01) │ │ BC=0000: C3 "ц"│ | + | |
- | │ │ 013A:19 ADD HL,DE │ │ DE=0000: C3 "ц"│ | + | |
- | │ │ 013B:DD 74 00 LD (IX+00),H │ │ HL=0000: C3 "ц"│ | + | |
- | │ │ 013E:DD 75 FF LD (IX-01),L │ │ IX=0000: C3 "ц"│ | + | |
- | │ │ 0141:E1 POP HL │ │ IY=0000: C3 "ц"│ | + | |
- | │ │ 0142:DD 23 INC IX │ ├────────────────┤ | + | |
- | │ │ 0144:0B DEC BC │ │A'=00 . szxhxpnc│ | + | |
- | │ │ 0145:78 LD A,B │ │BC'=0000: C3 "ц"│ | + | |
- | │ │ 0146:B1 OR C │ │DE'=0000: C3 "ц"│ | + | |
- | │ │ 0147:20 DF JR NZ,0128 │ │HL'=0000: C3 "ц"│ | + | |
- | ├─┬───┴──────────────────────────────────────────────────┴────┼────────────────┤ | + | |
- | │V│ 1F020:17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17│................│ | + | |
- | │V│ 1F030:17 17 17 17 17 17 17 17 17 17 17 17 17 17 12 17│................│ | + | |
- | │V│ 1F040:17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 19│................│ | + | |
- | │V│ 1F050:16 49 6E 70 75 74 16 20 46 69 6C 65 3A 20 70 72│.Input. File:B:P│ | + | |
- | │V│ 1F060:6F 67 20 20 20 20 20 20 20 20 41 72 65 61 3A 20│ROG .COM Are│ | + | |
- | │V│ 1F070:30 37 46 30 2D 38 41 31 42 20 20 52 65 6C 6F 63│a:07F0-8A1B Rel│ | + | |
- | │V│ 1F080:3A 20 30 31 30 30 2D 3E 30 37 46 30 20 20 16 20│oc:0100->07F0 . │ | + | |
- | │V│ 1F090:45 49 20 50 43 3D 30 31 30 30 20 52 3D 37 42 16│EI PC=0100 .│ | + | |
- | └─┴───────────────────────────────────────────────────────────┴────────────────┘ | + | |
- | </code> | + | |
- | + | ||
- | Отладчик обеспечивает: | + | |
- | * загрузку в память и запись на диск программ и таблиц символов (файлов ''<имя>.<тип>'' и ''<имя>.SYM''); | + | |
- | * просмотр и корректировку содержимого оперативной памяти в символьном и шестнадцатиричном формате, а также в виде команд ассемблера; | + | |
- | * просмотр и корректировку содержимого видеопамяти в символьном и шестнадцатиричном формате; | + | |
- | * просмотр и изменение содержимого регистров отлаживаемой программы; | + | |
- | * использование имен, введенных вместе с программой, а также добавление новых имен и удаление имеющихся (имена используются и в командах ассемблера); имена можно настроить на начальный адрес программы; | + | |
- | * выдачу на печать содержимого текущего окна отладчика; | + | |
- | * установку и снятие точек приостанова (со счетчиками); | + | |
- | * установку и снятие контроля изменения байтов памяти; | + | |
- | * покомандное и непрерывное выполнение программы (в том числе и в режиме мультипликации, с обходом и без обхода команд [[msx:basic_programming_guide:07#call|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>. Переход в другое окно (и установка дополнительного окна) выполняются по одной из следующих | + | |
- | команд: | + | |
- | + | ||
- | - <WRAP>1. <key>ESC</key> <key>l</key> Работа в окне листинга ассемблера. | + | |
- | + | ||
- | Левая колонка содержит точки приостанова (для них указывается максимальный счетчик, признак активности (''+ -'' акактивна, ''~ -'' активна в параллельном банке памяти, ''- -'' неактивна) и текущее значение счетчика). В основной части каждой строки окна располагаются поля имени, адреса, байтов, образующих команду, и самого текста команды. | + | |
- | + | ||
- | Правая колонка окна содержит значения счетчиков профилей выполнения программы (в строках команд с символическими именами). | + | |
- | + | ||
- | Имена во всех полях (в том числе и в текстах команд) должны заканчиваться двоеточием. Например, команды могут записываться в следующем виде: | + | |
- | <code> | + | |
- | LD A,(name:3000) | + | |
- | LD A,(name:) | + | |
- | LD A,(3000) | + | |
- | </code> | + | |
- | Команда ''RST 30'' (Inter-Slot Call) дополняется в качестве операндов номером слота и адресом вызова. | + | |
- | </WRAP> | + | |
- | - <WRAP>2. <key>ESC</key> <key>d</key> Работа в окне дампа. | + | |
- | + | ||
- | Левая колонка содержит признаки контроля изменения байта памяти с указанием активности контроля (''+/-/~''). В основной части каждой строки окна имеются поля имени, адреса, 16 полей байтов в шестнадцатиричном виде и 16 полей тех же байтов в символьном виде.</WRAP> | + | |
- | - <WRAP>3. <key>ESC</key> <key>v</key> Работа в окне дампа видеопамяти. | + | |
- | + | ||
- | Содержимое видеопамяти отображается так же, как и в режиме <key>ESC</key> <key>d</key>, однако левая колонка заполняется буквами V (для VRAM) или E (для ERAM). При просмотре VRAM поле адреса дополняется слева еще одним разрядом, чтобы охватить все 128 Kбайт. | + | |
- | </WRAP> | + | |
- | 4. <esc> R Работа в окне регистров. | + | |
- | Окно содержит поля значений всех регистров, а также | + | |
- | байтов или слов, на которые указывают шестнадцатибитные | + | |
- | регистры. Одновременно с шестнадцатиричными значениями | + | |
- | байтов выдается их символьное представление. | + | |
- | Кроме того, имеются поля счетчика команд (PC), состояния | + | |
- | обработки прерывания (EI/DI) и выбранного банка памяти | + | |
- | (с указанием слота и страницы маппера) для всех четырех | + | |
- | 16Kбайтных страниц. Наличие или отсутствие маппера | + | |
- | распознается автоматически. | + | |
- | + | ||
- | 5. <esc> Y Показ символических имен. | + | |
- | Окно листинга ассемблера заполняется строками, соответ- | + | |
- | ствующими символическим именам. | + | |
- | + | ||
- | 6. <esc> B Показ точек приостанова. | + | |
- | Окно листинга ассемблера заполняется строками, соответ- | + | |
- | ствующими точкам приостанова. | + | |
- | + | ||
- | 7. <esc> H Показ контролируемых байтов. | + | |
- | Окно дампа заполняется строками, соответствующими адре- | + | |
- | сам байтов, изменение которых контролируется. | + | |
- | + | ||
- | 8. <esc> I Чтение файлов. | + | |
- | В дополнительном окне располагаются поля имени файла и | + | |
- | интервала адресов для размещения программы. После нажа- | + | |
- | тия клавиши перевода строки файл с именем <имя>.<тип> | + | |
- | считывается в память (конфигурация слотов и маппера | + | |
- | определяется соответствующими полями в окне регистров). | + | |
- | Кроме того, к таблице имен присоединяются имена из файла | + | |
- | <имя>.SYM, если он есть. С помощью полей Reloc: можно | + | |
- | указать настройку символических имен на нестандартный | + | |
- | начальный адрес программы. | + | |
- | + | ||
- | 9. <esc> O Запись файлов. | + | |
- | В дополнительном окне располагаются поля имени файла и | + | |
- | интервала адресов. После нажатия клавиши перевода строки | + | |
- | указанная область памяти записывается в файл <имя>.<тип>, | + | |
- | а все символические имена - в файл <имя>.SYM (конфигура- | + | |
- | ция слотов и маппера определяется соответствующими поля- | + | |
- | ми в окне регистров). | + | |
- | + | ||
- | 10.<esc> P Выдача на печать содержимого текущего окна от- | + | |
- | ладчика (печать прерывается при нажатии <ctrl>+<stop>). | + | |
- | + | ||
- | 11.<esc> M Пересылка информации. | + | |
- | В дополнительном окне располагаются поля запроса двух | + | |
- | интервалов адресов: откуда и куда требуется переслать | + | |
- | информацию. При изменении начального адреса в одном из | + | |
- | интервалов соответствующий конечный адрес автоматически | + | |
- | изменяется так, чтобы длины интервалов совпали. При из- | + | |
- | менении конечного адреса таким же образом меняется ко- | + | |
- | нечный адрес другого интервала. | + | |
- | + | ||
- | 12.<esc> F Заполнение области памяти. | + | |
- | В дополнительном окне располагаются поля запроса интер- | + | |
- | вала адресов и образца для заполнения. Образец для за- | + | |
- | полнения может быть набран в символьном или шестнадцати- | + | |
- | ричном виде (вид определяется полем, содержащим букву C | + | |
- | или X соответственно). Размер образца определяется поло- | + | |
- | жением курсора в момент нажатия клавиши <перевод стро- | + | |
- | ки>. | + | |
- | + | ||
- | 13.<esc> S Поиск образца. | + | |
- | В дополнительном окне располагаются поля запроса интер- | + | |
- | вала адресов и образца для поиска. Образец для поиска | + | |
- | может быть набран в символьном или шестнадцатиричном ви- | + | |
- | де (вид определяется полем, содержащим букву C или X со- | + | |
- | ответственно). Размер образца определяется положением | + | |
- | курсора в момент нажатия клавиши <перевод строки>. Поиск | + | |
- | можно прервать нажатием <ctrl>+<stop>. | + | |
- | + | ||
- | 14.<esc> E Начальная установка регистров. | + | |
- | Все регистры устанавливаются в 0, счетчик команд PC | + | |
- | устанавливается на 100h, состояние прерываний - разреше- | + | |
- | ны (EI), всем страницам памяти сопоставлены основные | + | |
- | банки памяти (установленные при запуске отладчика). | + | |
- | + | ||
- | 15.<esc> Z Начальная установка текущих счетчиков точек | + | |
- | приостанова (они устанавливаются равными максимальным | + | |
- | счетчикам). | + | |
- | + | ||
- | 16.<esc> C Шестнадцатиричный калькулятор. | + | |
- | В дополнительном окне располагаются два поля операндов | + | |
- | (четырехзначные шестнадцатиричные числа), поле знака | + | |
- | операции (+, -, *, /, %) и поле показа результата. Поле | + | |
- | результата заполняется при смене любого операнда или | + | |
- | знака операции. | + | |
- | + | ||
- | 17.<esc> T Установка базового адреса PNT и PGT отладчика. | + | |
- | Поле базового адреса располагается в левом верхнем углу | + | |
- | рамки. При вводе нового значения в этом поле PNT и PGT | + | |
- | переносятся на указанный адрес и автоматически инициали- | + | |
- | зируются. Таблицы PNT и PGT занимают 1000h байт VRAM, | + | |
- | начиная с указанного адреса. | + | |
- | + | ||
- | 18.<esc> U Перенос отладчика в параллельную память. | + | |
- | Программы и данные самого отладчика переносятся в ту | + | |
- | память, которая задана полями слотов и маппера в окне | + | |
- | регистров. При этом для загрузки и отладки программ | + | |
- | пользователя становится доступным около 48Кбайт памяти. | + | |
- | Перенос в параллельную память не может быть выполнен, | + | |
- | если хотя бы одна из трех страниц (0000-3FFF,4000-7FFF, | + | |
- | 8000-BFFF) совпадает с первоначальной по слотовому | + | |
- | адресу. Кроме того, если при запуске отладчика или в | + | |
- | процессе работы перенос выполнен, его нельзя ни | + | |
- | отменить, ни изменить; можно только выйти из отладчика и | + | |
- | загрузить его снова. | + | |
- | + | ||
- | 19.<esc> Q Завершение работы отладчика и выход в среду | + | |
- | операционной системы с восстановлением исходного режима | + | |
- | экрана (40/80 символов). | + | |
- | + | ||
- | 20.<esc> ? Показ страницы с подсказкой. | + | |
- | + | ||
- | 21.<ctrl>+G Запуск программы. | + | |
- | Программа начинает выполняться с адреса, находящегося в | + | |
- | счетчике команд PC. Устанавливается заданное пользовате- | + | |
- | лем распределение банков памяти. | + | |
- | Если режим мультипликации выключен (Visual:No), на время | + | |
- | работы программы экран переключается на обычную страницу | + | |
- | системы (0000h). Если же режим мультипликации включен | + | |
- | (Visual:Exec или Trace), системная страница не включает- | + | |
- | ся, зато после каждой исполненной команды обновляется | + | |
- | содержимое экрана отладчика. В режиме Visual:Exec испол- | + | |
- | няется отдельно каждая команда, а в режиме Visual:Trace | + | |
- | взамен одной команды [[msx:basic_programming_guide:07#call|CALL]] исполняется вся вызываемая | + | |
- | подпрограмма. | + | |
- | Все точки приостанова устанавливаются в основных банках | + | |
- | памяти (которые были включены при запуске отладчика). | + | |
- | При достижении одной из активных точек приостанова (с | + | |
- | признаком "+" или "~") либо выполняется уменьшение счет- | + | |
- | чика (если он ненулевой), либо приостанавливается выпол- | + | |
- | нение программы и управление передается отладчику. Ана- | + | |
- | логично выполнение программы приостанавливается при из- | + | |
- | менении содержимого одного из активных контролируемых | + | |
- | байтов. Следует иметь в виду, что выполнение программы | + | |
- | значительно замедляется при установке контроля изменения | + | |
- | байтов. | + | |
- | Выполнение программы можно приостановить нажатием клави- | + | |
- | ши <stop> (если прерывания в этот момент разрешены). При | + | |
- | выполнении команды RET с начальным состоянием стека или | + | |
- | команды RST 0 управление также передается отладчику; | + | |
- | при этом считается, что программа успешно завершена. | + | |
- | Обработка точек приостанова организуется с помощью | + | |
- | RST 0, поэтому все остальные команды RST могут использо- | + | |
- | ваться в отлаживаемой программе без ограничений. После | + | |
- | возврата управления отладчику в окне листинга ассемблера | + | |
- | первая строка устанавливается на команду, с которой на- | + | |
- | чиналось выполнение, а вторая - на ту, которая вызвала | + | |
- | приостанов (в ней устанавливается курсор). | + | |
- | Передача управления отладчику при достижении точки при- | + | |
- | останова или при завершении программы возможна только | + | |
- | при условии, что странице 0000h-3FFFh в этот момент со- | + | |
- | поставлен основной банк памяти (тот же, что и при за- | + | |
- | пуске отладчика). | + | |
- | При выполнении программы ведется подсчет профилей по | + | |
- | всем символическим именам (при каждом прерывании и при | + | |
- | трассировке отдельной команды увеличивается на единицу | + | |
- | счетчик профиля ближайшего символического имени с адре- | + | |
- | сом, меньшим текущего PC). Значения счетчиков профиля | + | |
- | отображаются в правой колонке окна листинга ассемблера. | + | |
- | + | ||
- | 22.<ctrl>+X (<SELECT>) Выполнение одной команды. | + | |
- | Выполняются те же действия, что и по указанию <ctrl>+G, | + | |
- | но исполняется только одна команда (расположенная по | + | |
- | адресу из счетчика команд PC). Можно исполнять также ко- | + | |
- | манды, находящиеся в ПЗУ (однако точки приостанова в ПЗУ | + | |
- | устанавливать нельзя). | + | |
- | + | ||
- | 23.<ctrl>+T Выполнение команды с обходом подпрограммы. | + | |
- | Выполняется аналогично <ctrl>+X, но для команды [[msx:basic_programming_guide:07#call|CALL]] | + | |
- | управление возвращается отладчику только после выполне- | + | |
- | ния вызываемой подпрограммы. При выполнении подпрограммы | + | |
- | выполняется обычная обработка точек приостанова (как в | + | |
- | <ctrl>+G). | + | |
- | + | ||
- | 24.<ctrl>+P Установка счетчика команд PC на ту команду, | + | |
- | против которой находится курсор. | + | |
- | + | ||
- | 25.<ctrl>+V Выбор режима мультипликации. | + | |
- | Устанавливается один из режимов Visual:No, Exec или | + | |
- | Trace. | + | |
- | + | ||
- | + | ||
- | Распределение видеопамяти: | + | |
- | + | ||
- | 0000h - PNT системы и программы. | + | |
- | 1000h - PGT системы и программы. | + | |
- | 2000h - PNT отладчика. | + | |
- | 2800h - PGT отладчика. | + | |
- | 3000h - PNT подсказки. | + | |
- | + | ||
- | </code> | + | |
- | + | ||
- | + | ||
- | {{dbgrdv.zip|}}, [[http://fms.komkon.org/MSX/DBGRDV.zip|оригинал]] | + | |
- | + | ||
- | ====== Ссылки ====== | + | |
- | + | ||
- | http://fms.komkon.org/MSX/DBGRDV.zip | + | |
- | + | ||
- | + | ||
- | {{tag>MSX Assembler}} | + |