Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
msx:xdbg:xdbg [2020-06-29 21:25] GreyWolf |
msx:xdbg:xdbg [2021-11-12 22:44] (текущий) GreyWolf создано |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Расширенный экранный отладчик XDBG для MSX ====== | + | ~~HIDEPAGE:search;sitemap~~ |
- | + | ~~REDIRECT>msx:dbg:dbg~~ | |
- | Автор: Леонид Бараз | + | |
- | + | ||
- | В тексте данного документа применяются следующие обозначения для клавиш: пробелом разделяются клавиши, которые нужно нажимать последовательно, а плюсом — одновременно. | + | |
- | + | ||
- | ====== Руководство пользователя ====== | + | |
- | + | ||
- | Программа XDBG представляет собой экранный отладчик программ, написанных на ассемблере Z80. Этот отладчик может использоваться на ПЭВМ [[msx:msx_2]] и [[msx:msx_1|MSX]], оснащенных [[msx:yamaha_v9938:yamaha_v9938|]] ([[msx:yamaha_yis-503iir:yamaha_yis-503iir|]]), под управлением операционной системы [[msx:dos|]] (в том числе в варианте Ю.В.Галутина). | + | |
- | \\ Также работает под [[msx:dos#v2x|MSX-DOS 2]] и [[msx:nextor:nextor|]]. | + | |
- | + | ||
- | Команда вызова отладчика: | + | |
- | <code> | + | |
- | 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><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><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> | + | |
- | - <WRAP><key>ESC</key> <key>r</key> Работа в окне регистров. | + | |
- | + | ||
- | Окно содержит поля значений всех регистров, а также байтов или слов, на которые указывают шестнадцатибитные регистры. Одновременно с шестнадцатиричными значениями байтов выдается их символьное представление. | + | |
- | + | ||
- | Кроме того, имеются поля счетчика команд (PC), состояния обработки прерывания (EI/DI) и выбранного банка памяти (с указанием слота и страницы маппера) для всех четырех 16 Kбайтных страниц. Наличие или отсутствие маппера распознается автоматически. | + | |
- | </WRAP> | + | |
- | - <WRAP><key>ESC</key> <key>y</key> Показ символических имен. | + | |
- | + | ||
- | Окно листинга ассемблера заполняется строками, соответствующими символическим именам.</WRAP> | + | |
- | - <WRAP><key>ESC</key> <key>b</key> Показ точек приостанова. | + | |
- | + | ||
- | Окно листинга ассемблера заполняется строками, соответствующими точкам приостанова. | + | |
- | </WRAP> | + | |
- | - <WRAP><key>ESC</key> <key>h</key> Показ контролируемых байтов. | + | |
- | + | ||
- | Окно дампа заполняется строками, соответствующими адресам байтов, изменение которых контролируется. | + | |
- | </WRAP> | + | |
- | - <WRAP><key>ESC</key> <key>i</key> Чтение файлов. | + | |
- | + | ||
- | В дополнительном окне располагаются поля имени файла и интервала адресов для размещения программы. После нажатия клавиши перевода строки файл с именем ''<имя>.<тип>'' считывается в память (конфигурация слотов и маппера определяется соответствующими полями в окне регистров). | + | |
- | + | ||
- | Кроме того, к таблице имен присоединяются имена из файла ''<имя>.SYM'', если он есть. С помощью полей ''Reloc:'' можно указать настройку символических имен на нестандартный начальный адрес программы. | + | |
- | </WRAP> | + | |
- | - <WRAP><key>ESC</key> <key>o</key> Запись файлов. | + | |
- | + | ||
- | В дополнительном окне располагаются поля имени файла и интервала адресов. После нажатия клавиши перевода строки указанная область памяти записывается в файл ''<имя>.<тип>'', а все символические имена — в файл ''<имя>.SYM'' (конфигурация слотов и маппера определяется соответствующими полями в окне регистров). | + | |
- | </WRAP> | + | |
- | - <key>ESC</key> <key>p</key> Выдача на печать содержимого текущего окна отладчика (печать прерывается при нажатии <key>CTRL+STOP</key>). | + | |
- | - <WRAP><key>ESC</key> <key>m</key> Пересылка информации. | + | |
- | + | ||
- | В дополнительном окне располагаются поля запроса двух интервалов адресов: откуда и куда требуется переслать информацию. При изменении начального адреса в дном из интервалов соответствующий конечный адрес автоматически изменяется так, чтобы длины интервалов совпали. При изменении конечного адреса таким же образом меняется конечный адрес другого интервала. | + | |
- | </WRAP> | + | |
- | - <WRAP><key>ESC</key> <key>f</key> Заполнение области памяти. | + | |
- | + | ||
- | В дополнительном окне располагаются поля запроса интервала адресов и образца для заполнения. Образец для заполнения может быть набран в символьном или шестнадцатиричном виде (вид определяется полем, содержащим букву C или X соответственно). Размер образца определяется положением курсора в момент нажатия клавиши <key>'Ввод '⏎</key>. | + | |
- | </WRAP> | + | |
- | - <WRAP><key>ESC</key> <key>s</key> Поиск образца. | + | |
- | + | ||
- | В дополнительном окне располагаются поля запроса интервала адресов и образца для поиска. Образец для поиска может быть набран в символьном или шестнадцатиричном виде (вид определяется полем, содержащим букву C или X соответственно). Размер образца определяется положением курсора в момент нажатия клавиши <перевод строки>. Поиск можно прервать нажатием <key>CTRL+STOP</key>. | + | |
- | </WRAP> | + | |
- | - <WRAP><key>ESC</key> <key>e</key> Начальная установка регистров. | + | |
- | + | ||
- | Все регистры устанавливаются в 0, счетчик команд PC устанавливается на 100h, состояние прерываний — разрешены (EI), всем страницам памяти сопоставлены основные банки памяти (установленные при запуске отладчика). | + | |
- | </WRAP> | + | |
- | - <key>ESC</key> <key>z</key> Начальная установка текущих счетчиков точек приостанова (они устанавливаются равными максимальным счетчикам). | + | |
- | - <WRAP><key>ESC</key> <key>c</key> Шестнадцатиричный калькулятор. | + | |
- | + | ||
- | В дополнительном окне располагаются два поля операндов (четырехзначные шестнадцатиричные числа), поле знака операции (+, -, *, /, %) и поле показа результата. Поле результата заполняется при смене любого операнда или знака операции. | + | |
- | </WRAP> | + | |
- | - <WRAP><key>ESC</key> <key>t</key> Установка базового адреса PNT и PGT отладчика. | + | |
- | + | ||
- | Поле базового адреса располагается в левом верхнем углу рамки. При вводе нового значения в этом поле PNT и PGT переносятся на указанный адрес и автоматически инициализируются. Таблицы PNT и PGT занимают 1000h байт VRAM, начиная с указанного адреса. | + | |
- | </WRAP> | + | |
- | - <WRAP><key>ESC</key> <key>u</key> Перенос отладчика в параллельную память. | + | |
- | + | ||
- | Программы и данные самого отладчика переносятся в ту память, которая задана полями слотов и маппера в окне регистров. При этом для загрузки и отладки программ пользователя становится доступным около 48 Кбайт памяти. | + | |
- | + | ||
- | Перенос в параллельную память не может быть выполнен, если хотя бы одна из трех страниц (0000-3FFF,4000-7FFF, 8000-BFFF) совпадает с первоначальной по слотовому адресу. Кроме того, если при запуске отладчика или в процессе работы перенос выполнен, его нельзя ни отменить, ни изменить; можно только выйти из отладчика и загрузить его снова. | + | |
- | </WRAP> | + | |
- | - <key>ESC</key> <key>q</key> Завершение работы отладчика и выход в среду операционной системы с восстановлением исходного режима экрана (40/80 символов). | + | |
- | - <key>ESC</key> <key>?</key> Показ страницы с подсказкой. | + | |
- | - <WRAP><key>CTRL+g</key> Запуск программы. | + | |
- | + | ||
- | Программа начинает выполняться с адреса, находящегося в счетчике команд PC. Устанавливается заданное пользователем распределение банков памяти. | + | |
- | Если режим мультипликации выключен (''Visual:No''), на время работы программы экран переключается на обычную страницу системы (0000h). Если же режим мультипликации включен (''Visual:Exec'' или ''Trace''), системная страница не включается, зато после каждой исполненной команды обновляется содержимое экрана отладчика. В режиме ''Visual:Exec'' исполняется отдельно каждая команда, а в режиме ''Visual:Trace'' взамен одной команды [[msx:basic_programming_guide:07#call|CALL]] исполняется вся вызываемая подпрограмма. | + | |
- | + | ||
- | Все точки приостанова устанавливаются в основных банках памяти (которые были включены при запуске отладчика). | + | |
- | + | ||
- | При достижении одной из активных точек приостанова (с признаком "+" или "~") либо выполняется уменьшение счетчика (если он ненулевой), либо приостанавливается выполнение программы и управление передается отладчику. Аналогично выполнение программы приостанавливается при изменении содержимого одного из активных контролируемых байтов. Следует иметь в виду, что выполнение программы значительно замедляется при установке контроля изменения байтов. | + | |
- | + | ||
- | Выполнение программы можно приостановить нажатием клавиши <key>STOP</key> (если прерывания в этот момент разрешены). При выполнении команды ''RET'' с начальным состоянием стека или команды ''RST 0'' управление также передается отладчику; при этом считается, что программа успешно завершена. | + | |
- | + | ||
- | Обработка точек приостанова организуется с помощью ''RST 0'', поэтому все остальные команды ''RST'' могут использоваться в отлаживаемой программе без ограничений. После возврата управления отладчику в окне листинга ассемблера первая строка устанавливается на команду, с которой начиналось выполнение, а вторая — на ту, которая вызвала приостанов (в ней устанавливается курсор). | + | |
- | + | ||
- | Передача управления отладчику при достижении точки приостанова или при завершении программы возможна только при условии, что странице 0000h-3FFFh в этот момент сопоставлен основной банк памяти (тот же, что и при запуске отладчика). | + | |
- | + | ||
- | При выполнении программы ведется подсчёт профилей по всем символическим именам (при каждом прерывании и при трассировке отдельной команды увеличивается на единицу счетчик профиля ближайшего символического имени с адресом, меньшим текущего PC). Значения счетчиков профиля отображаются в правой колонке окна листинга ассемблера. | + | |
- | </WRAP> | + | |
- | - <WRAP><key>CTRL+x</key> <key>SELECT</key> Выполнение одной команды. | + | |
- | + | ||
- | Выполняются те же действия, что и по указанию <key>CTRL+g</key>, но исполняется только одна команда (расположенная по адресу из счетчика команд PC). Можно исполнять также команды, находящиеся в ПЗУ (однако точки приостанова в ПЗУ устанавливать нельзя). | + | |
- | </WRAP> | + | |
- | - <WRAP><key>CTRL+t</key> Выполнение команды с обходом подпрограммы. | + | |
- | + | ||
- | Выполняется аналогично <key>CTRL+x</key>, но для команды [[msx:basic_programming_guide:07#call|CALL]] управление возвращается отладчику только после выполнения вызываемой подпрограммы. При выполнении подпрограммы выполняется обычная обработка точек приостанова (как в <key>CTRL+g</key>). | + | |
- | </WRAP> | + | |
- | - CTRL+p Установка счетчика команд PC на ту команду, против которой находится курсор. | + | |
- | - <WRAP><key>CTRL+v</key> Выбор режима мультипликации. | + | |
- | + | ||
- | Устанавливается один из режимов ''Visual:No'', ''Exec'' или ''Trace''. | + | |
- | + | ||
- | Распределение видеопамяти: | + | |
- | |0000h|PNT системы и программы| | + | |
- | |1000h|PGT системы и программы| | + | |
- | |2000h|PNT отладчика| | + | |
- | |2800h|PGT отладчика| | + | |
- | |3000h|PNT подсказки| | + | |
- | </WRAP> | + | |
- | + | ||
- | {{dbgrdv.zip|}}, [[http://fms.komkon.org/MSX/DBGRDV.zip|оригинал]] | + | |
- | + | ||
- | ====== Ссылки ====== | + | |
- | + | ||
- | http://fms.komkon.org/MSX/DBGRDV.zip | + | |
- | + | ||
- | + | ||
- | {{tag>MSX Assembler}} | + |