вторник, 11 апреля 2017 г.

Assembler/DOS стенд для OSX

Необходимость

Появилась необходимость сделать задание в x86 ассемблере, для DOS.
Использование виртуальной машины мне показалось слишком неудобным и громоздким решением.
Поэтому было решено сделать стенд для OSX.
Стоит отметить что данный стенд может быть переделан для работы в Windows.

Идея

Для запуска DOS приложений годиться отличное приложение DOS-BOX эмулирующее x86 компьютер с предустановленным на него DOS. В качестве компилятора ассемблера автор решил выбрать TASM - имхо лучший ассемблер для данной OS.

Реализация


Реализация представляет из себя набор BAT и SH скриптов, для DOS-BOX и OSX.

Каждый "проект" должен лежать в папке Project, или в подпапке, и представляет из себя папку с несколькими файлами:
  • @debug.command - shell скрипт для компиляции и запуска в отладчике TurboDebugger
  • @run.command - shell скрипт для компиляции и запуска
  • config.bat - здесь необходимо указать название главного asm файла
  • ***.asm - главный asm файл
Остальные файлы для внутренного использования и не имеют особого интереса.

@root в корне стенда необходим для того чтобы скрипт запуска мог найти корень виртуального диска C.

Стенд уже содержит все необходимые файлы для работы в том числе TASM и настроенный DOS-BOX.

Шаблон простейшего проекта лежит в Projects/Template/.
Для создания своего проекта создайте дубликат данной папки, переименуйте эту папку, и по желанию переименуйте asm файл, не забыв указать навое название asm файла в config.bat

Редактор

Для удобного редактирования и запуска хорошо подошел редактор Geany(www.geany.org),
который надо настроить следующим образом:

1. Открыть любой asm файл в редакторе
2. Кликнуть по пункту меню Build->Set Build Commands
3. Внести следующие изменения:


!Важно!
Run и Debug надо вводить как _Run и _Debug

Изменения для копипаста:
_Run; %p/@run.command; %p
_Debug; %p/@debug.command; %p

Теперь вы можете запускать "проект" нажатием кнопок на тулбаре или используя функциональные клавиши F8(Run) и F9(Debug):

Дайте два!

Загрузить стенд можно на GitHub:
https://github.com/AnotherStudent/DOS

!Важно!
В пути к стенду должны отсутствовать русские символы!

Комментариев нет:

Отправить комментарий