2010-12-06 130 views

回答

4

DOSBox在仿真下運行16位x86實模式代碼。 OSX 10.6上的常規GCC編譯器將OSX操作系統和32位x86保護模式作爲目標,因此您無法使用該編譯器構建在DOSBox中運行的代碼。

你可以做的是在DOSBox本身運行DOS編譯器。 DJGPP是GCC的MS-DOS端口,但它生成目標位於DPMI子系統的32位保護模式代碼。我不清楚DOSBox是否支持DPMI,但我想象它是這樣的,而DJGPP本身在DOSBox compatability list中,所以我們可以想象,它生成的代碼也可以運行,如果它不會做任何異常的事情仿真的硬件。

Borland Turbo C也在兼容性列表中,並且TC 2.01是合法免費提供的。其他版本提供下載elsewhare,但我懷疑這種分發的合法性。

但是,一個更強大的解決方案可能是使用VirtualBox在OSX上託管的虛擬機中安裝真正的MS-DOS或DOS兼容操作系統。如果您沒有MS-DOS副本,則可以嘗試FreeDOS

+0

+1對於Turbo C. – 2010-12-06 22:48:51

2

是16位或32位環境與DOS擴展書面舊的DOS遊戲嗎?

如果是16位代碼,GCC將不會有任何用處。你可能想看看OpenWatcomDigital Mars,這兩個都聲稱支持16位的DOS(儘管我不知道它們的工作效果如何)。您可能需要在Windows VM中運行編譯器(當然,對於Digital Mars,不知道OpenWatcom)。

如果您正在尋找32位DOS Extender工具鏈,上述兩者都聲稱爲此工作,但您也可能得到GCC爲您工作(DJGPP可能會有幫助 - 我再也不知道了它是如何工作的,或者它是否可以從Linux或Mac環境中進行交叉編譯)。

相關問題