[閒聊] C#寫的8086老電腦模擬器
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
09/16 10:48, 1F
推
09/16 19:37, , 2F
09/16 19:37, 2F
推
09/17 15:26, , 3F
09/17 15:26, 3F
推
09/17 15:31, , 4F
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
09/17 18:22, 5F
→
09/17 18:22, , 6F
09/17 18:22, 6F
→
09/17 18:24, , 7F
09/17 18:24, 7F
→
09/17 18:24, , 8F
09/17 18:24, 8F
推
09/18 22:18, , 9F
09/18 22:18, 9F
我也是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
09/19 15:46, 12F
推
09/20 00:26, , 13F
09/20 00:26, 13F
推
09/20 11:25, , 14F
09/20 11:25, 14F
→
09/20 11:25, , 15F
09/20 11:25, 15F
這作法也是很有趣概念阿 想像成類似WINE但卻擁有自己的模擬CPU
老實說還真希望作者能做得更廣 讓dos遊戲之類的也直接相容
※ 編輯: erspicu (60.248.56.181), 09/20/2016 14:50:38
推
09/20 18:54, , 16F
09/20 18:54, 16F
→
09/20 18:54, , 17F
09/20 18:54, 17F
→
09/20 18:55, , 18F
09/20 18:55, 18F
→
09/20 18:56, , 19F
09/20 18:56, 19F
→
09/20 18:57, , 20F
09/20 18:57, 20F
→
09/20 18:57, , 21F
09/20 18:57, 21F
推
09/21 22:46, , 22F
09/21 22:46, 22F
→
09/21 22:46, , 23F
09/21 22:46, 23F
→
09/21 22:47, , 24F
09/21 22:47, 24F
→
09/21 22:47, , 25F
09/21 22:47, 25F
推
09/22 00:32, , 26F
09/22 00:32, 26F
推
09/27 14:31, , 27F
09/27 14:31, 27F
→
09/27 14:33, , 28F
09/27 14:33, 28F