2013年3月1日 星期五

Grub4Dos 外觀調整-微調篇

基礎篇中主要是能夠方便觀看閱讀,
而微調篇中主要記錄一些較細的功能,
如:


消除位於選單右上角的項目編號

如果不想看到畫面右上角有編號的顯示,
可以在 menu.lst 中加入下面一行命令即可:
# 消除出現於選單右上角的項目編號
debug 0
………

title …(略)


消除前(觀察右上角)

消除後(觀察右上角)


自動添加編號於選單項目之前

一般在 menu.lst 的 title 後加上文字時通常會直接顯示所輸入的文字標題選項,
不過 Grub4Dos 也能為這些項目的前方自動加入編號,
方便使用者透過這些直觀式的編號以按下相對應的數字鍵來作選擇,
其命令為:
自動添加編號於選單項目之前
write 0x8274 0x2001
………

title …(略)

選單中的選項前多出了編號


自行加入自定的標題

Grub4Dos 也能自行加入自定的標題,
可於選單中為某處顯示一些自己想要顯示的訊息,
也能利用這一點將第一列的 Grub4Dos 版本號給消除(覆蓋)掉:
# 自行加入自定的標題
write (md)0x220+1 !BAT\necho -n -P:0000 $[0000]\t\t\t\t\t\t\t\t\t\t\t\t\t\n\0
initscript (md)0x220+1
………

title …(略)

覆蓋 Grub4Dos 版本列後

上述的內容可參考 Adding your own menu heading
主要敘述寫入批次語句到記憶體(md)。

語句中的「(md)0x220+1」代表裝置為記憶體、位址為磁區 220 hex(位於記憶體 272kb 處),
第一磁區(起始 512 bytes)。

Grub4Dos 的批次語法必須以「!BAT」當作開頭,
結束則以 0 byte 當作結尾。

再來的重點是「echo」指令,
語法意義是:
-n」是選擇性的參數:
代表句尾不回傳歸位(Carriage return)符號。

-P:XXYY」代表顯示位置:
指定列與行的位置(XX 的值是 0~24、YY 的值是 0~79),
例如「-P:0204」會出現的位置就是由上下數第 3 列、從左向右數第 5 個的字元開始你的訊息。

$[ABCD]」代表顏色:
是讓字體顏色有閃亮的呈現(非動態會閃爍),其狀態指定為 0/1。
B 是讓字體顏色有明度的呈現,狀態指定為 0/1。
C 是背景顏色。
D 是字體顏色。

「C」與「D」的指定狀態有所限定,
其值是 0~7,
各代表的意義是:
0:黑色/灰色
1:深藍色
2:綠色
3:水綠色
4:深紅色
5:粉紅色
6:黃色/棕色
7:灰色/白色

A 跟 B 的翻譯似乎有點問題,
不過能用 A 與 B 來置換 0、6 或 7 的前後色彩,

接下來就是親自去試試!

最後的「initscript (md)0x220+1」是讓記憶體去執行前面所寫下的批次語句。

若想顯示多列的訊息,
則應該在「\n」之後、「\0」之前加入想要的訊息列即可,
如下例所示:
# 自行加入自定的標題
write (md)0x220+1 !BAT\necho -n -P:0000 $[0000]\t\t\t\t\t\t\t\t\t\t\t\t\t\necho -n -P:0100 $[0104]\tGrub4Dos 系統安裝碟\0
initscript (md)0x220+1
………

title …(略)
千萬不可以用斷行來當排版,
否則會視為語句錯誤!
上面多加了紅色一列「Grub4Dos 系統安裝碟」文字


消除選單的邊框

這部份是參考 taiwin 部落格中
grub4dos 繁體中文選單背景圖去邊框及去除最上面版本訊息
的部份內容,
主要擷取的是去邊框區段!

同樣是在 menu.lst 中加入下列三行:
#去除 Grub4Dos 邊框
calc 29<<2+*0x8304 > nul
calc *%@retval%+8 > nul
calc *%@retval%=*%@retval%&0xffffff > nul

………

title …(略)

圍繞的邊框的確沒顯示

只是上面這三行的意義就不知道是什麼了…

沒有留言:

張貼留言