這次要在 ibook/ubuntu (cpu: powerpc) 上測試 jmcce。
不過先來聊聊 fbterm 神奇的 vesa dirver。fbterm 除了使用 linux framebuffer 還提供了 vesa driver, 這是怎麼做的? 我很好奇, 原來是使用 libx86, 進而呼叫 bios 0x10 來使用 bios vesa function, 參考 vesadev.cpp L 48 ~ 61:
210 void VesaDev::printModes()
從這裡開始追起, linux 還有這樣的 library 可以用, 真是令我驚訝。不過這不是我想要的方式, 我想要的方式是直接操作 vga register, 不使用 bios call。這個 library 神奇的地方是: linux 處於保護模式下, 無法使用 bios call, 可是這 library 卻可以提供呼叫 bios 的能力, 真是厲害。
powerpc ubuntu 平台沒有 libx86 可裝, 無法使用 uvesa, 只能用其他的 fb 功能, 我是拿掉 radeon module, 修正一些 compile issue 後, 可以在 ibook/ubuntu 上使用。
下方影片是 jmcce 在 ibook (cpu: powerpc) ubuntu 10.04 上的測試畫面, 純粹使用 linux framebuffer, 由於 jmcce 只支援 fb 256 色, 所以需要使用 fbset -depth 8 設定為 256 色, 解析度則因為無法調整為 640X480, 維持原來的 1024X768, 所以畫面看起來就變成這樣子了。捲動效果還是不快。
非 x86/linux 無法使用 svgalib, 所以只能單純的使用 framebuffer, 看來執行得還算可以。
沒有留言:
張貼留言
使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。
我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。