2016年1月11日 星期一

8086tiny 相當有趣的 8086 PC 模擬器專案

Intel 8086介紹
http://www.mynikko.com/CPU/8086.html

專案網址 8086tiny
https://github.com/adriancable/8086tiny

別人再次延伸功能與修改版本 8086tiny plus
http://jaybertsoftware.weebly.com/8086-tiny-plus.html

原本對PC模擬器比較沒興趣,但就剛好看到這別人的專案,短短的不到800行code,完整實作8086電腦PC,完成度跑遊戲 WIN3.0 都不是問題,真的是滿神奇的.

回想起以前用ET3跟PE2.DOS的歲月....雖然它是以8086為對象,8086跟現在電腦相比少了非常多非常多功能,但是卻是80x86系列的開山始祖(比8086更早前的Intel處理器差異比較大,一般大家是把8086定義成為x86的開端),某種意義上算是一個簡化的雛型實作,16bit的暫存器.最大1MB記憶體定址.只有真實模式雖然陽春但跑跑一些早期的東西也不是問題了.

大體上看了一下專案的內容,作者真的把8086指令集K的很透徹,所以大幅減少CPU這塊處理的程式碼,另外文字模式直接借用現成環境 console 輸出,也是少了很大一部分,因此這款模擬器會在進入到繪圖模式時另外跳出SDL視窗.....雖然很怪異,但也因為簡化.簡單,讓人可以很快地了解整台電腦的基礎運作,也方便做最簡易的實作.

比起遊戲主機,似乎PC的模擬器並不用做cycle時序性處理的問題,有的也只有怕現在電腦太快,所以有在一些環節加上delay,調整速度,但並沒有一個很精確的速度模擬.

滿有趣的東西....

這種做法是一種方式,大概略知一二 ,dosbox 或是 bosch 都是這樣 , 但進階的像是QEMU dynamic binary translation 模擬方式,或是更快的  virtualization 技術層次又更高,效率又更好了,只是實作門檻想必然更高.

PS.補充一個CANON EOS相機的移植版
http://www.magiclantern.fm/forum/index.php?topic=14853

沒有留言:

張貼留言