Суббота, 21.12.2024, 20:55
Приветствую Вас Ополченец | RSS

Записки советского радиолюбителя

Каталог статей

Главная » Статьи » Эврика

Эмулятор Fake86 на Ubuntu

Эмулятор Fake86 на Ubuntu

Fake86 - это эмулятор процессора Intel 8086.
Проект Mike Chambers, находящийся в разработке с 2010 года. Первоначально программа была написана на языке программирования FreeBASIC, а затем её код был переведен на Си.
Сайт проекта http://fake86.rubbermallet.org

Эмуляция процессора
100% набор команд для 8086 и 80186;
Поддержка флага системного прерывания (режим трассировки), работает как на реальном оборудовании;
Поддержка 286/386, как пишет автор - исследуется.

Архитектура поддерживаемого ПК
Контроллер прерываний Intel 8259: реализован;
Контроллер DMA Intel 8237: Частично реализован, достаточно для полной эмуляции Sound Blaster;
Программируемый интервальный таймер Intel 8253: реализован;
PC динамик: реализован;
Поддержка Floppy дисковода: реализована;
Поддержка Hard disk: реализована.

Видео оборудование
Эмуляция CGA: реализована;
Эмуляция Hercules: реализована;
Эмуляция EGA: еще не реализовано;
MCGA / VGA эмуляции: Рабочая, с некоторыми ограничениями. В настоящее время поддерживает только 320x200 8-битный цветовой режим.

Другое
Поддержка Sound Blaster: реализована;
Поддержка звуковых карт Adlib: работает хорошо;
Звуковой ЦАП Disney Sound Source: реализован;
Поддержка адаптера Ethernet: реализована.

Эмулятор Fake86 распространяется в исходных кодах, скачать можно на http://sourceforge.net/projects/fake86/
На самом сайте проекта можно найти бинарные версии в deb пакетах как для Ubuntu i386, так и для Ubuntu amd64, но они староваты :(

Компиляция Fake86 на Ubuntu 14.04 64-bit
Должны быть установлены обязательные библиотеки:
libsdl1.2debian, libsdl1.2-dev
Опционально libcap (нужна для сборки Fake86 с поддержкой эмуляции Ethernet).
Эти библиотеки можно установить через "Центр приложений"

a) Скачиваем архив с исходными кодами (на момент статьи это fake86-0.13.9.16.tar.gz)
b) Распаковываем

$ tar zxvf fake86-0.13.9.16.tar.gz
c) Переходим в директорию исходника
$ cd fake86-0.13.9.16
d) Прежде чем собирать, необходимо поправить makefile (тот что в распакованной папке fake86-0.13.9.16), открываем его текстовым редактором и вносим изменения:
[Привожу измененные строки makefile]

BINPATH=
DATAPATH=data
$(CC) $(SRCFILES) -o bin/fake86 $(CFLAGS) -lX11 -L/usr/lib/x86_64-linux-gnu -lSDL $(INCLUDE) $(LIBS) $(SDLFLAGS)
$(CC) src/imagegen/imagegen.c -o bin/imagegen -lX11 -L/usr/lib/x86_64-linux-gnu -lSDL $(CFLAGS)

, соответственно поправьте у себя.
Зайдите в папку fake86-0.13.9.16/src/imagegen, откройте текстовым редактором файл imagegen.c и исправьте стр63

printf("\rWriting to file: %u MB", i);
на
printf("\rWriting to file: %lu MB", i);

e) Компилируем
$ make

В папке fake86-0.13.9.16/bin появилось два бинарных файла
fake86 - собственно сам эмулятор
imagegen - файл для создания образов дисков
Создайте в домашней директории папку Fake86 ( можете назвать по другому), скопируйте в нее выше описанные файлы (fake86, imagegen) и папку data (из fake86-0.13.9.16/data). Место для экспериментов готово!

Работа с эмулятором Fake86
Настало время что нибудь запустить для проверки, дать небольшую вводную для начала работы.
Откроем терминал (Ctrl+Alt+T), и перейдем в папку нашего эмулятора:

$ cd ~/Fake86
Просто запустим эмулятор, без каких либо параметров
$ ./fake86
увидим следующее

Можно вызвать программу с параметром -h, для выдода справки
$ ./fake86 -h

Вот некоторые параметры командной строки:
-fd0 filename указать флоппи файл образа диска для использования в качестве дискеты 0
-fd1 filename тоже, но как дискеты 1
-hd0 filename указать файл образа жесткого диска для использования в качестве жесткого диска 0.
-hd1 filename тоже, но как HD 1
-boot # указывает что должно быть загрузочным устройством
     Пример
-boot 0 загрузка с 0 Floppy
           
-boot 1 загрузка с 1 Floppy
           
-boot 128 загрузка с 0 жесткого диска
-verbose Подробный режим, будет выводится на стандартный вывод.
-delay указать число в мил.сек между отрисовкой каждого кадра (по умолчан. 20ms)
-smooth применить сглаживание
-resw # -resh # разрешение ширина/высота
-noscale откл. 2х кратное масштабирование
Почитаете help, разберетесь.

Также можете запустить утилиту imagegen

$ ./imagegen

как видим, команда создания чистого образа диска
$ ./imagegen imagefile size [imagegen имя_образа размер]

Со страницы http://fake86.rubbermallet.org/?downloads проекта можно скачать загрузочный образ дискеты с MS-DOS 6.22, пример запуска

$ ./fake86 -boot 0 -fd0 dos-boot.img -resw 800 -resh 600

Еще пару примеров запущенных игрушек в ОС MS-DOS 6.22 на эмуляторе Fake86



Источник: http://airvikar.ru/publ/ehvrika/ehmuljator_fake86_na_ubuntu/6-1-0-9
Категория: Эврика | Добавил: Soliton (18.11.2014) | Автор: Airvikar W
Просмотров: 4232 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
...
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0