Нужен компилятор C для Windows 7 64-bit, чтобы скомпилировать в DOS target

Я пытаюсь найти решение, позволяющее мне компилировать код C в исполняемый файл DOS из 64-разрядной версии Windows 7. Я недавно обновился с XP 32-битной до Win7 64-битной, и теперь мой компилятор Borland C++ 5.0 не будет работать. Я получаю сообщение об ошибке при попытке вызвать 16-разрядный файл tlink.exe. Я пытаюсь не использовать другой компьютер с XP, но это должно быть моим порядком действий, если я не смогу что-то еще выяснить в ближайшее время.

Моя цель - встроенный x86 под управлением FreeDOS. Как бы я не хотел переходить на Linux, я не могу позволить себе время, которое потребовалось бы для перехода. Помимо обучения тому, что я никогда не использовал Linux, большая часть моего кода зависит от DOS и должна быть переписана.

Я надеюсь, что есть настройки окна, которые я могу просто изменить, но мои исследования пока заставляют меня поверить, что мне нужны более радикальные изменения в моем процессе. Я обнюхивал Turbo C 2.01, DJGPP, DOSbox... не очень уверенно, чтобы идти по любому из этих переулков без внешнего вмешательства

3 ответа

Решение

Запустите Virtual XP или VirtualBox и установите Borland C++ внутри. Кстати, есть версия 5.02 с некоторыми исправлениями (в случае, если ваша версия точно 5.0).

Если вы можете найти старый компилятор Microsoft, такой как 16-битный C / C++ 1.52 (который включен в 32-битный CD-ROM C / C++ 4.1), или C 8.00 или более ранний, он запускается с использованием экстендера dos или в 32-битном окно консоли.

Почему вы не можете запустить компилятор Borland, используя FreeDOS?

Вы можете попытаться создать виртуальную машину с MSDOS, но вам нужно будет найти способ установить MSDOS 6.22 на виртуальную машину. На сайте поддержки Microsoft есть ссылки на загрузочный файл ISO для MSDOS 6.22. У меня все еще есть оригинальные дискеты, и я начал с дисков старой системы с дисководом. Немного неудобно импортировать / экспортировать файлы в / из виртуальной машины.

Это config.sys, который я использую, который, кажется, работает с виртуальной машиной Win 7. Мне пришлось увеличить буферы, стеки и файлы, чтобы избежать проблемы переполнения стека с этой настройкой.

dos=high,umb
buffers=40,0
files=60
lastdrive=e
shell=c:\command.com c:\ /e:1024 /p
stacks=64,512
switches=/f
device=c:\dos\himem.sys /numhandles:64 /testmem:off
device:c:\dos\emm683.exe ram i=b100-b7ff i=c600-c7ff i=cc00-cfff i=e600-efff frame=d000 a=32 d=128 notr
devicehigh=c:vmadd\cdrom.sys /d:mscd001

Это autoexec.bat, который я использую (smartdrv в этом случае немного бессмыслен, поэтому я закомментировал его с префиксом rem) .

c:\dos\emm386 auto
lh c:\dos\mscdex.exe /d:mscd001 /m:7
rem lh c:\dos\smartdrv.exe
lh c:\vmadd\mouse.com
set path=c:\dos
set blaster=a220 i5 d1 h5 p330 t6
prompt $p$g

Что касается компилятора, Open Watcom кажется мне лучшим выбором в вашей ситуации. FrameworkPascal (написанный в старой версии Watcom) предоставляет 32-битный расширитель. Что касается создания виртуальных машин FreeDOS, возьмите инструменты от Microsoft SysInteral. Они включают в себя инструмент, который создает VHD. Как только вы запустите FreeDOS на виртуальной машине, вы можете просто SYS на VHD и запустить его где угодно. Существует множество готовых для запуска ISO-образов для FreeDOS, стоит упомянуть Seagate Seatools для DOS, который распространяется с ядром FreeDOS.

Ваше лучшее (но не только) решение для запуска всего, что, вероятно, XPMode на Windows 7 Pro. Он работает под управлением Windows XP 32, которая, конечно, обеспечивает 100-процентную прозрачную совместимость через NTVDM с 16-битным реальным режимом DOS, 16-битной защитой (Windows 3.1) и 32-битными расширителями DOS. Кстати, NTVDM - это функция, которую можно активировать в Windows 10 Pro, но еще неизвестно, что именно можно с ней сделать.

XPMode - это бесплатная загрузка от Microsoft, которая устанавливает бесплатную 32-битную версию Windows XP на виртуальную машину в Windows 7 Pro с полным совместным использованием буфера режущей пасты / копии, USB, накопителей, экрана и сетевой карты (веб-доступ). Его можно переключать между окном и полноэкранным режимом. Установка XPMode автоматизирована (после активации виртуальной машины Windows 7 Pro). Microsoft предоставляет различные загружаемые исправления, которые обновляют реестр для активации виртуальной машины. Существует загружаемое исправление для поддержки MS, которое необходимо запустить, чтобы разрешить установку на архитектуре AMD Bulldozer. XPMode переводит компьютер в спящий режим и виртуальные жесткие диски, что делает его гораздо более производительной средой, чем аппаратная система.

С небольшой дополнительной работой Windows XP 32 бита можно установить на любую виртуальную машину, включая Microsoft Virtual Machine на 64-битной Windows XP, а также Oracle Box и VMWare. Однако XPMode, вероятно, является самым плавным решением, поскольку в некоторых установках, таких как 64-разрядная виртуальная машина MS для Windows XP, не используется полный физический дисплей в полноэкранном режиме (только около 90 процентов). Если вы установили свой браузер и электронную почту в XPMode, вы можете жить в полноэкранном режиме и забыть о новых версиях Windows.

Другие вопросы по тегам