На этой страничке вы найдете эмулятор ПК "Корвет"

С этим компьютером у меня связано много приятных часов, для многих людей он открыл путь в мир компьютеров...

С эмуляторами компьютеров я познакомился достаточно давно, и еще тогда возникла мысль сделать эмулятор Корвета, да все руки не доходили, по немногу собиралась информация, обдумывались идеи реализации, и вот появился этот эмулятор ....
сам эмулятор ищи в разделе Download

а сюда немного ифнормации по отладчику в эмуляторе ...


      

Etalon - Emulator


    

DBG

Отладчик для эмулятора,
навеян разными отладчикаими, в основном это
MSX DBG - by Леонид Бараз
и др. (Turbo Debugger, AFD)

отладчик позволяет вести пошаговую отладку программы
произвольно перемещаться по коду и дампу
использовать метки и читать/сохранять их на диск
модифицировать дамп и ассм.

сохранять и читать блоки памяти на диск.

ставить независимые ТОЧКИ на каждую ячейку
выполнение, чтение, запись.

просмотр значение служебных регисров в расшифрованом виде.

показ истории выполнения комманд (trace log)

средство для взлома игр GameTools

отладчик отображает 3 основных окна и несколько информационных
переход между окнами
Ctrl+UP
Ctrl+Down

точка останова на выполнение - страбатывает ПЕРЕД выполнением комманды.
точка останова на доступ к яччейке - страбатывает ПОСЛЕ доступа к ней.

вход в отладчик - F9
выход тоже F9

Common

клавиши общие для всех окон


Ctrl+UP		Переход между окнами Regs/Asm/Dump
Ctrl+Down

Ctrl+L		Обновить всю информацию на экране (в случае возникновения глюков)

(Переключатель)	
F5		Переключить палитру в стандартную (режим отладки)
Ctrl+F5		если палитра в режиме отладки то переключает
                     (Стандартный LUT, или выключить графику (All/ACZU))


Записать/Прочитать блок памяти
Alt+W		Write memory to disk
Alt+R		Read memory from disk (читает весь файл в память с указанного адр.)

Записать/Прочитать метки
Alt+Y		Write sYmbol on disk
Ctrl+Y		Read sYmbol from Disk

метки читает в разных форматах
делался для чтения меток из IDA

Game Tools mode
Ctrl+Z

Debug keys

F7	- Single step
F8	- Cmd Step (Ставим точку останова на след. комманду и пускаем на выполнение)
F9	- Run

Game Tools

Средство для поиска жизней в играх ;-)

Общая идея:

предназначен для поиска изменяющихся параметров
пример
  жизни в виде цифры (3-2-1-0)  (сравнение или по значению или по больше,меньше)
  параметры в виде шкалы (сравнение по меньше, больше)
  константы (например есть мечь в руках или нет) по равно и не равно
  и др.

инструкция
Выбираем необходимый нам параметр для поиска (например кол-во жизней)

1) входим в DBG (F9) -> GameTool (Ctrl+Z)
2) Выбераем режим поиска Byte или Word (в зависимости от макс возможного значения)
3) изменяем значение искомого параметра (запускаем эмулятор на выполнение F9 и например умираем)
4) входим в DBG (F9) -> GameTool (Ctrl+Z)
5) нам предлагают
   1) < 2) > 3) = 4) != 9) !=0 0) ==0 C+(0-9)==(0..9), B/W) new Byte/WORD, C) Clr ESC) Exit

1-4,9,0:  новое значение относиться со старым как
        1:  значение меньше предыдыщего
        2:  значение больше предыдыщего
        3:  значение равно  предыдыщему
        4:  значение не равно предыдыщему
        9:  значение не равно 0
        0:  значение равно 0

 Ctrl+0..9
         :  новое значение РАВНО 0..9

  b/w    :  начать новый поиск
  c      :  отмена поиска.

по результатам поиска в верхней строке GT напишет сколько ячеек соответсвующих условию найдено

если кол-во ячеек меньше 15 в табличке покажут адреса и значения в ячейках

далее вовторяе шаги начиная с 3-го до нахождения нужной ячейки

а дальше - используем отладчик для локализации вредного влияния

Ita Express

LIFE:	0xE308

Init:	0xAA6A
Kill:	0x80C4

Color Balls

LIFE:	0xE314

Klad 2

LIFE:	0x0260

Ининциализация счетчика жизней

	125b:	21 0a 00	lhi	h,0x0a
		22 60 02	shld	0x0260	

Уменьшить кол-во жизней
	14c1:	2a 60 02 	lhld 	0x0260
		2b	dcx	h
		22 60 02	shld	0x0260

Fire Rescue

LIFE:	0xEAB1

Jumper

LIFE:	0x0B88

REGS

Редактор регистров процессора

Up/Down/Left/Right перемещение по полям редактирования

Enter на значении регистра - редактировать значение
Enter на значении стека - в окне ASM открывает это адрес.

Пробел на регистровой паре переключает вид текста справа от курсора.

(1) hl: 0000	30 31 32 33
дамп куда указывает регистр
(2) de: 0000	"01234567"
текст куда указывает регистр
(3) bc: 3132 `12`
тестовое значение регистра

в поле AF можно пробелом переключать значение флагов.

ASM

Окно асслемблера

Up/Down/Left/Right/
Page_Up/Page_Down	-	Навигация

все поля редактируемые,
в АСМ можно в операндах использовать метки.

в поле адресса можно ввести новый адрес.

если метка есть и на ней нажать DEL - это ее убьет.
если в поле метке набрать имя то
если метка есть - перейти к метке
если метки нет  - создать метку.


F2		-	Поставить/снять брякпоинт на текущую инструкцию
F4		-	Выполнить и остановиться на текущей инструкци. (HERE)

Ctrl+K		-	убить текущую комманду (заполнить NOP)

Ctrl+N		-	PC = текущему адресу

точка останова на выполнение - страбатывает ПЕРЕД выполнением комманды.

DUMP

Окно DUMP

Up/Down/Left/Right/
Page_Up/Page_Down	-	Навигация
TAB		-	перейти в поле HEX<->ASCII

все поля редактируемые,

в поле адресса можно ввести новый адрес.

если метка есть и на ней нажать DEL - это ее убьет.
если в поле метке набрать имя то
если метка есть - перейти к метке
если метки нет  - создать метку.


F2		-	Поставить/снять брякпоинт на Read+Write access
Ctrl+F2		-	Read Break Point
Shift+F2		-	Write Break Point

текущий режим отображаеться цветом и надписью (если курсор стоит на ячейке)
[C_Read] [S_Write]

точка останова на доступ к яччейке - страбатывает ПОСЛЕ доступа к ней.