shiru8bit

shiru8bit 

Программист, музыкант, самоделкин, ретрогеймер

92subscribers

957posts

Ковыряю Vectrex #1: среда разработки

Однако, пятисотый пост! И посвящу я его новой, интересной теме.
У меня нарисовался срочный проект для Vectrex, который я делаю на заказ, потому что денег катастрофически не хватает, но вы держитесь. Сам проект я описывать не буду, но зато опишу свой опыт знакомства с этой платформой. Раньше я изучал её из любопытства, но не делал для неё ничего на практике.
Однако, начать ковырять Vectrex в 2025 году под Windows оказалось весьма непросто. Все найденные мной средства разработки или под Linux, или под MS-DOS. Под Windows только через WSL, а я до сих пор не запустил свой новый компьютер на Windows 10, а в моей Windows 7 WSL нет.
Сидеть под Linux в виртуалке мне не очень улыбалось, на этом компьютере это слишком медленно, и работа в ней раздражает. Поэтому решил зайти со стороны MS-DOS.
Для DOS под Vectrex есть древний и вроде как проверенный временем пакет VectrexC, содержащий ассемблер AS09 для 6809 и даже компилятор C. Казалось бы, качай да включай! Скачал и включил, под DOSBox. Но не тут-то было.
Так просто ничего не заводится. Сначала понадобился CWSDPMI. Потом некий GO32 — ещё один экстендер, теперь от Паскаля. Пришлось поискать FreePascal под DOS, и почему-то, хоть он и Free, найти его оказалось весьма непросто. Но это не помогло, ошибка про отсутствие GO32 осталась.
Ковыряния прояснили, что проблема в утилите stobin.exe, которая должна преобразовать исходник на ассемблере в бинарник. Собрана она непонятно чем, и ей чего-то не хватает. К счастью, в пакете asmdasm для Vectrex, тоже для DOS, нашлась и другая реализация этой утилиты, и её исходник. Итого для получения рабочего пакета понадобилось:
vectrexc — основное содержимое
asmdasm — только stobin.exe, положить в /bin/
cwsdpmi — положить все файлы в /bin/
После этого демки из пакета собрались.
Запускаю я их в MAME, который уже под Windows, через командную строку:
cd mame0278b
mame.exe -window vectrex -cart ..\vectrexc\demo1\demo1.bin
С запуском есть один подводный камушек. На Vectrex игры запускает BIOS, и сначала он показывает непропускаемую заставку на 30 секунд. Разрабатывать в таком режиме, конечно, очень тяжко, на каждый чих ждать столько времени. По хорошему стоит хакнуть BIOS для пропуска заставки, я читал про это в одном из туториалов, который теперь не могу найти. Но в MAME есть кнопка Insert, позволяющая значительно ускорить время в эмуляторе, и на первое время этого хватит.
Код буду писать как обычно, в Notepad++, никаких IDE. Компилировать из командной строки в DOSBox, потом запускать батник для запуска бинарника в MAME. Пока что так.
А почему было фрога не спросить в чем он разрабатывал?
Roman Mindlin, я с ним не знаком, и у меня другие задачи. У него микропрограммки на ассемблере, мне же нужен компилятор C для довольно сложного проекта.
shiru8bit, ок. Если надо - могу познакомить
Subscription levels6

Микро 16

$0.21 per month
Просто потому что нельзя 8. Даже самая малая поддержка важна. Спасибо!

База 128

$1.64 per month
Для тех, кто просто хочет поддержать. Спасибо!

Супер 256

$3.3 per month
Для тех, кто хочет поддержать. Спасибо!

Кило 320

$4.1 per month
Для тех, кто сильно хочет поддержать. Спасибо!

Мега 640

$8.2 per month
Для тех, кто очень хочет поддержать. Спасибо!

Гига 1024

$13.2 per month
Для тех, кто крайне хочет поддержать. Спасибо!
Go up