這是繁體字版:
=========================
『樓 主』: 打造32位dos,中國聰明的DOSer們,別走開,全進來!!!!!!!!
我想說說我的想法,比較幼稚!
在我們的手裏,現在有兩件神兵利器,一件是倚天劍,一件是屠龍刀:它們就是MS-DOS7.10和Djgpp編譯器。
現在網路上有dos源碼可供下載,不管是幾版,反正據說是Dos的16位source。
拿著Djgpp,我就琢磨,它>>>>Djgpp>>>>>>保護模式下的32位dos程序C compiler,Well,那麽我們:
在DOS7.10作業系統下,用djgpp把down來的Dos源碼重新編譯一遍,出來的程式不就變成保護模式下32位了嗎??
再用這個新造出來的"New DOS"去format硬碟,再把Dos——>>>>>sys進去,這種狀況下,是不是就造出32bit Dos來了?
天啊,別告訴我,你沒想到過,至少,我這樣的笨蛋都想到了!!!
(不過,我估計網上的那些源碼根本編譯不撩) 即便這樣,網上也有開源的什麽Pc-dos之類嘛?采用這些open source的Dos源碼來編譯,不是具有同樣的效果嗎?
你是什麽看法呢?回帖是一種美德 ^_^
*****************************
參考資料:
一、
http://www.cn-dos.net/forum/viewthread.php?tid=22574&fpage=1
請問DJGPP 編譯的程式是16位還是32位
二、
http://www.xiaofan21.net/soft/2669.htm
Djgpp (32位編譯器)
djgpp 是一個編譯器以及一組相關的工具,它們能使你在 MS-DOS/MS-Windows 下編寫 32 位保護模式的程式。
所有使用 djgpp 編譯的程序,以及隨 djgpp 發布的開發工具看上去都像一個標准 DOS 程序。他們依靠 MS-DOS 和 BIOS 進行文件 I/O 以及其他基本功能,如:鍵盤輸入、屏幕光標位置等等。但是一個 djgpp 程序的內核是真正的 32 位保護模式代碼;djgpp 程序使用“DPMI”(DOS 保護模式接口,DOS Protected Mode Interface)以便在保護模式下對 DOS/BIOS 功能進行調用。因此,任何一個可以運行 DOS 程序並且提供 DPMI 支持的環境都可以運行 djgpp 程序。已知的與 djgpp 兼容的環境包括:MS-DOS、Caldera's DR-DOS(
http://www.lineo.com/products/drdos.html)、NWDOS、FreeDOS(
http://www.freedos.org/)、Windows 3.X/9X/NT、OS/2 以及 Linux DOSEmu。當 djgpp 程序運行在 Windows 9x 和 Caldera's DR-DOS 下時,它們支持長文件名。
djgpp 的核心是移植到 MS-DOS 的 GNU C/C++ 編譯器、GCC 以及輔助工具,例如彙編程序、連接程序、Make 和一個超文本文檔浏覽器。djgpp C 庫是爲 djgpp 特別重寫的,主要由 DJ Delorie 一人完成,當然還離不開一小部分志願者的幫助。核心工具和庫仍然在開發和維護當中。
djgpp 提供了一系列與 ANSI 和 Posix 完全兼容的工具。GCC 兼容 ANSI/ISO 標准 C;djgpp C 庫則同時兼容 ANSI 和 Posix(但一小部分 Posix 特性沒有實現,例如“fork”系統調用);並且 C++ 庫也與最新的標准兼容;djgpp 使用的 GNU 開發工具也全部兼容 Posix。因此,djgpp 工具在微軟操作系統上提供了完整一致的 Posix 層,甚至對于用戶和開發人員來說,那些不爲人知的 DOS 限制和 DOS/Windows 與 Unix 之間的不兼容之處也幾乎被完全隱藏了起來。
djgpp 可以被用來:
C/C++ 編程教學
在 MS-DOS 和 MS-Windows 上學習使用 Linux/Unix 開發工具
編寫遊戲和圖形程序(Quake 的 DOS 版本就是使用 djgpp 編譯的)
建立一個 Unix 和 MS-DOS 通用的開發環境
編寫可移植的 DOS/Unix 程序
將 Unix 程序移植到微軟操作系統下
從 2.0 版開始,djgpp 程序不再需要一個獨立的 DOS 擴展器,只需要一個 DPMI 伺服器就可以運行;djgpp 包括一個免費的 32 位 DPMI 伺服器,可以在一個缺少 DPMI 伺服器的純 DOS 環境中支持 32 位、4G 線性地址空間以及最大 512M 的虛擬記憶體。
*****************************
Last edited by poor on 2006-12-24 at 10:51 PM ]