各位前輩好,
Open Firmware 程序編寫 第三集 鼠標繪圖
先看視頻:
http://forth.foxani.com/files/videos/ofw/03-mouse-draw.ogv
鼠標繪圖的繪圖部分,第二集介紹了.所以今天這一集重點在鼠標.
和很多設備一樣,鼠標的設備需要一個實例(instance), 參考:
http://wiki.laptop.org/go/Forth_Lesson_11
原來 stdout @ iselect
是個默認的實例.但是這次我們要操作兩個設備,就得用它的原始方式:
" /設備名" open-dev \ 獲得實例編號 設備名可以是 /mouse 或 /vga 或
/display
\ 參考
http://wiki.laptop.org/go/Forth_Lesson_9
\
http://wiki.laptop.org/go/Forth_Lesson_10
0 value mouse-ih
" /mouse" open-dev
to mouse-ih \ 這樣我們就把mouse的ihandle存在了 mouse-ih
裏面,方便以後調用
64 " get-event" mouse-ih $call-method
\ 每隔64微秒取一次鼠標數據 返回的格式中x和y是相對位移.
\ get-event ( msec -- pos.x pos.y buttons true|false ) M
\ 其他設備 參考
http://playground.sun.com/1275/practice/devicex/dse1_0a.html
鼠標的應用一: watch-mouse (系統自帶)
鼠標的應用二: m (附件)
啟動qemu後,輸入 fload c:\m 回車
移動鼠標, 參數變化(hex), 按下鼠標移動,繪圖. 按下任意鍵退出程序.
注意: qemu下釋放鼠標是 ctrl+alt
--
Hu Songtao
works as an English Teacher in weekends
Skype: idisblueflash
Beijing, China