[閒聊] C#寫的8086老電腦模擬器

看板Emulator作者 (.)時間9年前 (2016/09/16 03:17), 9年前編輯推噓12(12016)
留言28則, 9人參與, 最新討論串1/1
https://dl.dropboxusercontent.com/u/61164954/project/Apr8086/index.htm by c# 目前發佈的僅只是概念雛形驗證版本 code也還沒算優化好和整理好(有些寫法日後會改寫) 除了可以show一下demo 跑到BIOS booting check ram階段外(然後就停止掉) 沒其他用處 主要還是因為缺漏了周邊控制io的功能 目前周邊控制io的回傳內容 是藉由fakepc以執行步驟和io回傳值來記錄 so....會看到 io_step.dat這檔案,就是記錄著執行到幾步驟時 io 回傳值 後續看看有沒有動力.耐性和能力去補足這塊 總之還缺很多東西 光cpu只是模擬器其中一部分而已 這booting畫面可以參考底下 https://www.vogons.org/viewtopic.php?f=25&t=45125 https://www.youtube.com/watch?v=M4zOXwYTMrM
http://www.phatcode.net/downloads.php?id=101 總之是很古老的產物就是.... ps. 8086 可以跑 dos win3.0 80286 可以跑到 win3.1 (定址能力提升且開始支援保護模式) 80386 可以跑到 win95 intel第一顆32位元CPU 定址能力再提升,且開始有32bits暫存器 雖然8086已經是古早時代產物 1978年發售 連我都還沒出生.... 拿來當最基礎的學習對項還算適合 但這東西比起它的上一代 8008 CPU模擬來又複雜很多了.... 最主要是X86複雜的定址法 節區觀念 還有一些prefix指令 一些細節沒注意 到處都是地雷.. 但比較難的 我覺得還是io周邊學習 -- ※ 編輯: erspicu (61.70.88.120), 09/16/2016 03:22:42

09/16 10:48, , 1F
第一次見到x86模擬器
09/16 10:48, 1F

09/16 19:37, , 2F
dosbox很常見啊
09/16 19:37, 2F

09/17 15:26, , 3F
我說啊 VirtualBox、VMware跟PD都是有名的X86模擬器啊
09/17 15:26, 3F

09/17 15:31, , 4F
VirtualBox、VMware不算模擬器....
09/17 15:31, 4F
這邊補充說明一下 有說錯的地方 請指正 不論是 dosbox qemu bochs VMware VirtualBox 最終的應用目的 都是為了要建構獨立的隔絕環境 但做法各自不太相同 如果以廣義概念來看 都算是模擬一個獨立的環境 但如果就做法細節去看 用技術討論的話 VirtualBox VMware 和最近火紅的docker都不太算是模擬器 (但它的確模擬了一個獨立環境) 最主要是因為裡面的運作並沒有像是模擬器指令再經過一層模擬運算 是直接用實體機器的cpu直接跑 效能理論上會比真正的模擬器好很多 而dosbox算是模擬器 但事它模擬的是能夠與dos相容的作業環境 以dos相關的中斷服務實作達成dos相關程式相容 而bochs則是完整電腦環境的模擬器 https://www.dosbox.com/links.php Bochs emulates a full x86 based pc. Unlike DOSBox that tries to mainly emulate dos programs. qemu的話也是模擬器,而且模擬x86只是它功能的一個部份,包括其他cpu的電腦環境, 也是qemu功能版圖,不過qemu使用到的特殊 dynamic binary translation 技術, 理論上會比直譯式模擬器架構好. 其他尚待補充...另外雖然docker很紅,但尚沒有實際使用經驗, 看一些文章描述,docker比較像是獨立的環境容器,比起VirtualBox VMware更簡易使用, 但跟OS層綁得也比較多一點,不知道有沒有理解錯誤就是. ※ 編輯: erspicu (61.70.88.120), 09/17/2016 18:00:14

09/17 18:22, , 5F
DOSBox官方定調只模擬遊戲需要的功能,應用程式不支援
09/17 18:22, 5F

09/17 18:22, , 6F
(所以官版不支援Windows系統,只能靠非官方版)
09/17 18:22, 6F

09/17 18:24, , 7F
雖然還是模擬器,可以跑遊戲和一些DOS程式,但是如果是
09/17 18:24, 7F

09/17 18:24, , 8F
需要特殊IO控制那種的應用就不行了。
09/17 18:24, 8F

09/18 22:18, , 9F
VisualStudio 是哪個版本的?我用2010可編譯但不能執行!
09/18 22:18, 9F
https://www.youtube.com/watch?v=88jwlKHlcuk
我也是2010 沒問題...但這還只是DMEO驗證展示 不如等以後更完善後再看看吧? ※ 編輯: erspicu (61.70.88.120), 09/18/2016 23:36:06

09/19 04:46, , 10F
這晶片其實生命力很強 在單晶片市場仍有相關產品
09/19 04:46, 10F

09/19 13:56, , 11F
感謝分享
09/19 13:56, 11F

09/19 15:46, , 12F
同為C#人推,不過不同領域就是 XD
09/19 15:46, 12F

09/20 00:26, , 13F
XP上面會有問題,Win10(x64)正常~
09/20 00:26, 13F

09/20 11:25, , 14F
推 另外最近剛好有人打算要開發16bit window emu
09/20 11:25, 14F

09/20 11:25, , 15F
Win3mu https://goo.gl/gZe5yf 概念還滿有趣的
09/20 11:25, 15F
這作法也是很有趣概念阿 想像成類似WINE但卻擁有自己的模擬CPU 老實說還真希望作者能做得更廣 讓dos遊戲之類的也直接相容 ※ 編輯: erspicu (60.248.56.181), 09/20/2016 14:50:38

09/20 18:54, , 16F
我一直在想何時才有Win16模擬器,跑Win95的遊戲就不需
09/20 18:54, 16F

09/20 18:54, , 17F
要虛擬機...
09/20 18:54, 17F

09/20 18:55, , 18F
另外文章看一下,作者應該對真實DOS的興趣應該不大。
09/20 18:55, 18F

09/20 18:56, , 19F
他的發想只是如果想跑Windows 3(win16)的遊戲程式就得
09/20 18:56, 19F

09/20 18:57, , 20F
用虛擬機裝32位系統才行,然後想到自己寫一個能跑Win16
09/20 18:57, 20F

09/20 18:57, , 21F
的模擬器這樣(我相信他可能也覺得有DOSBox了)
09/20 18:57, 21F
第二集出刊 竟然也是C#寫的 http://tinyurl.com/h4he4or ※ 編輯: erspicu (61.70.88.120), 09/21/2016 22:09:31

09/21 22:46, , 22F
很明確的提到他用C#的主因:更方便調用Windows APIs...
09/21 22:46, 22F

09/21 22:46, , 23F
而且不意外的,他只實作遊戲需要的APIs,其他的就不管
09/21 22:46, 23F

09/21 22:47, , 24F
這作者似乎很喜歡用C#的樣子,介紹了他沒放出來的Z-80
09/21 22:47, 24F

09/21 22:47, , 25F
based遊戲機的模擬器。
09/21 22:47, 25F

09/22 00:32, , 26F
Part-II 最有趣的段落應該是講 Debuger 那段了~
09/22 00:32, 26F

09/27 14:31, , 27F
http://tinyurl.com/zzspvc7 第三篇,講CPU的模擬...
09/27 14:31, 27F

09/27 14:33, , 28F
debugging CPU bugs看起來很麻煩。 :3
09/27 14:33, 28F
文章代碼(AID): #1NslFVP6 (Emulator)