從最底層實現漢字輸出,乙個中文啟動介面的實現方法
呵呵,要再次感謝趙博的書給我的啟發,現在想什麼就可以自己去實踐,這種感覺真好。這兩天我實踐了乙個中文顯示問題,終於成功,貼出來與大家共享。tkr7y<
通過實踐,大概了解圖形模式下的工作方式,和漢字支援的基本實現方法。我的工作是讓系統啟動後在螢幕上顯示「漢字作業系統」五個漢字dq/wf
說明:這裡只介紹使用點陣字型檔。gx)zng
準備工作:f
1、首先必須建立相應的點陣資訊urp
我們來建立乙個16×16的兩個漢字的點陣,其實很簡單,你在紙上畫乙個行列z`4
各有16個格仔的方塊出來,然後按其大小,在裡面寫乙個字,比如」成「,建hwy
議你寫得粗一點,這時你會發現有些格仔中被字的筆畫穿過,有的仍是空格?q
子,現在你把沒有筆畫穿過的記為0,有筆畫的記為1,從第一行開始,將這個[
16×16的「點陣」的資訊記下來,由於每行有16個位,所以需要2個位元組來記錄一!xh
行,共16行,所以共需2×16=32個位元組來儲存乙個字的「點陣」.ya
比如:漢-->00000h,04008h,037fch,01008h,08208h,06208h,02210h,00910hx%^fyh
01120h,020a0h,0e040h,020a0h,02110h,02208h,0240eh,00804h"|8y
當然我這個「點陣」是從別的字型檔裡載取出來的,但上面的方法絕對是可行的;
點陣本質上就是這樣生成的。h%
2、編寫乙個顯示乙個畫素的子程式》l^
面臨的任務:在圖形模式下,在螢幕上列印乙個畫素點|
分析:mw
所需的變數:初始的左上角的座標值x0,y0)!tx
預設引數: 預設解析度為640×480×16色模式
; bx = x0 象素在螢幕上的x座標j
; ax = y0 象素在螢幕上的y座標
;計算象素點的位置 mso
push esd9
push bpe2:~k
push dxdrmt
push axg
push dir}unc
push cxe`
push bx)x
,z;
p~k
mov bp,sp>-t
mov cl,3!u
shr bx,cl ;x0/8bxjq
mov cx,linelen~u
mul cx,;)
Oracle乙個中文漢字占用幾個位元組
oracle 乙個中文漢字 占用幾個位元組,要根據oracle中字符集編碼決定 檢視oracle server端字符集 select userenv language from dual 如果顯示如下,乙個漢字占用兩個位元組 simplified chinese china.zhs16gbk 如果顯...
乙個中文輸入的類
乙個中文輸入的類 不想讓ime顯示預設的視窗,只想用它的轉換和選字功能,看過拿鐵遊戲論壇上的乙個兄弟的一些 修正了一些我認為的bug,加入了一組控制函式,使得程式中可以顯示一些button,玩家可以不必用熱鍵就能切換輸入法 全形 半形,中 英文標點。不知道這個能不能解決縮排的問題 pragma me...
Oracle乙個中文漢字占用幾個位元組 小筆記
oracle 乙個中文漢字 占用幾個位元組,要根據oracle中字符集編碼決定 檢視oracle server端字符集 select userenv language from dual 如果顯示如下,乙個漢字占用兩個位元組 simplified chinese china.zhs16gbk 如果顯...