PDA

Просмотр полной версии : Посоветуйте любой эмулятор компа на 8086



dk_spb
17.02.2012, 23:20
Интересует чтобы было можно как 2 b2m загрузить кусок памяти и потрассировать программу в дебаге, но, в отличие от b2m для проца 8086.
Да, еще желательно с CGA.

b2m
18.02.2012, 01:21
Borland Turbo Debugger под DosBox-ом :)

KokaF77
18.02.2012, 01:40
Borland Turbo Debugger
Хорошая и полезная вещица, однако. :)

dk_spb
18.02.2012, 02:33
Что-то я не нашел как в нем загрузить кусок памяти.....

b2m
18.02.2012, 13:44
А зачем тебе загружать кусок? Сделай .com файл, и загружай на здоровье. Если тебе не мешает директива org 100h в начале :)

А вообще, есть там такая фича: контекстное меню на дампе -> Block -> Read

dk_spb
18.02.2012, 14:19
b2m, TD32 v5.0 при попытке загрузить и выполнить что-то по адресу F000:C000 дает ошибку access violations. Так что TD не подходит. Нужен именно эмулятор.

nyuk
18.02.2012, 14:36
2 минуты гугленья показали, что DOSBox можно пересобрать со встроенным дебаггером.
Ну или поискать собранный вариант...

KokaF77
18.02.2012, 15:05
TD32 v5.0

В аттаче TD v3.1.

b2m
18.02.2012, 15:49
Только что проверил в TD v3.1 - всё прекрасно исполняется. Кстати, я именно его и имел ввиду.

dk_spb
18.02.2012, 16:08
b2m, СТранно. Может у меня руки не той системы.
Запускаю 3.1 .
View->Dump
Block->Read->выбираю файл->0FC000,4000 (пробовал и 0F000:0C000,4000).
В ответ никаких сообщений.
Но в дампе на экране по этим адресам ничего не меняется.

Atari
18.02.2012, 17:30
dk_spb, вообще-то там ПЗУ, разумеется меняться ничего не будет.
а в чем проблема загрузки в другой сегмент?

dk_spb
18.02.2012, 17:43
Atari, Есть редкая машинка.
После нескольких этапов починки дошел до появления надписи "Ошибка базовой памяти". Хочется поправить BIOS так, чтобы он ругался поконкретней (указывал бит с ошибкой, даже без адреса).
В дизасме я вижу что кусок кода, который выводит надпись с ошибкой заканчивается странно:
loc_FE140: mov [bx], ah
mov al, [bx]
jmp short loc_FE140
Если же вместо этого я вставляю переход на свой кусочек кода с тестом, то почему-то даже видеоадаптер не инициализируется.
А вообще, так как этот BIOS работает без стека, и полно вызовов подпрограмм типа:
mov sp, 0E04Eh ; адрес в ПЗУ
jmp sub_FE455 ; переход в подпрограмму, Откуда делается retn
то дизассемблить непросто.
Вот и хотел как-то отладить.

b2m
18.02.2012, 17:51
А копию экрана он где-то в другом месте держит. Если грузить на текстовый экран, то на мгновение оно появляется, потом отладчик отрисовывает себя.

Atari
18.02.2012, 17:55
dk_spb, если это типа ПЦ, и там есть видео адаптер и недай Бог ISA. то предлагаю вариант:
пишем свой тест памяти, вкатываем его в ПЗУ которое ставим на сетевик.

---------- Post added at 15:55 ---------- Previous post was at 15:53 ----------


А копию экрана он где-то в другом месте держит.
мне всегда казалось что td просто переключает видеостраницы, т.е. оставляет родную для консоли а сам живет где-то в другом месте.

b2m
18.02.2012, 18:00
А если QEMM перед отладчиком загрузить? У него, по-моему, есть настройки, как память мапить. По умолчанию он, вроде, мапит память везде, где только можно (кроме исключений, которые и задаются в настройках). Только я не знаю, дружит ли TD c QEMM, т.к. оба защищённый режим используют.

---------- Post added at 19:00 ---------- Previous post was at 18:57 ----------

А не, вру. Отладчик для защищённого режима называется td286/td386.exe

Atari
18.02.2012, 18:03
Отладчик для защищённого режима называется [td286/]td386.exe
и перед его запуском надо в config.sys запихивать менедженр DPMI но уже не помню какой.

b2m
18.02.2012, 18:07
мне всегда казалось что td просто переключает видеостраницы, т.е. оставляет родную для консоли а сам живет где-то в другом месте.
Может и так. Может это был хвост того, что я грузил на экран, если экран отладчика следом за нормальным экраном. Но то, что отладчик держит копию - это точно. После загрузки на экран ничего не поменялось.

---------- Post added at 19:07 ---------- Previous post was at 19:04 ----------

Ы.. Не получится, нету у DosBox-а config.sys, чтобы туда qemm воткнуть :)

Atari
18.02.2012, 18:12
b2m, в самых клинических случаях мы ставили геркулятину и дебагирили на два монитора. TD жил на монохроме и там хоть cga, ega, vga.

dk_spb
18.02.2012, 18:34
Стоп, причем здесь экран, его копия и видеостраницы??????
Как-то пугает меня ваша фантазия :-(

---------- Post added at 18:34 ---------- Previous post was at 18:24 ----------

Я же не в область экрана гружу, я гружу по адресу F000:C000.
Но туда ничего не грузится. А Вы про область экрана.

KokaF77
18.02.2012, 18:53
Ы.. Не получится, нету у DosBox-а config.sys, чтобы туда qemm воткнуть :)

Я пользуюсь VirtualBox. :)
https://www.virtualbox.org/

b2m
18.02.2012, 22:08
Я же не в область экрана гружу, я гружу по адресу F000:C000.
Но туда ничего не грузится. А Вы про область экрана.
Инерция мышления :) Пробовал загрузить ниже A000:0 - получается, а по адресу B800:0 - нет, хотя там ОЗУ. А вот по адресу F000:C000 у DosBox-а скорее всего ПЗУ, так что туда ты не загрузишь. Это надо свою сборку DosBox-а делать, чтобы там ОЗУ было.

Тут действительно надо попробовать эмуляторы типа Virtual Box или QEMU с нормальным ДОС-ом в качестве системы, и с QEMM в config.sys. И вот там уже TD запустить.

alt-x
26.06.2012, 01:31
Atari, Есть редкая машинка.
После нескольких этапов починки дошел до появления надписи "Ошибка базовой памяти". Хочется поправить BIOS так, чтобы он ругался поконкретней (указывал бит с ошибкой, даже без адреса).


Когда был в подобной ситуации, писал свой мини-BIOS, который мне это пикал на спикер. Инициализация 8253 обычно в самом начале БИОСа, ещё до тестов памяти. Этот кусок можно взять из первичноо биоса. Особенно если комп при включении успевает пикнуть.

vinxru
26.06.2012, 09:33
Я пользуюсь dosbox-ом со встроенным дебагером.

MiX
14.01.2014, 23:42
Если ещё актуально то есть EMU8086

rghost.ru/download/1097796/919a33b0aa77f5bdcd3dca427be6a154503ae7f1/Emu8086%204.08.zip

b2m
15.01.2014, 10:44
С тех пор прошло много времени, я добавил в свой эмулятор 8086 для эмуляции Поиска. Так что, желание из 1-го сообщения давно сбылось :)