原理:
大家还记得在DOS字符模式下显示汉字的方法吧!我采用同样的方法,只不过将其用在引导盘上!
有些朋友可能不熟悉DOS,我详细讲讲原理:
在dos终端模式下是不可以显示中文汉字的,只能显示英文。
汉字与英文的区别是:
1. 汉字代码用2个字节表示,英文用1个字节表示
2. 16点阵汉字要用32个字节存储字模,16点阵英文用16个字节存储字模。
在DOS终端模式下用的是16点阵英文,所以我们有了一种可能性:
可不可以改写终端模式下的16点阵英文字库,使其显示的不是原有的英文字,而是汉字
如:
我们输入AB,正常显示的是AB,但如果改变AB的字模,用汉字的字模代替,这样输入AB字符,并不显示AB,而是显示一个汉字。
将一个汉字从中间劈为两半,左面部分顶替A的字模,右面部分顶替B的字模。
在实际中,当然不能改写AB的字模,前128个字符的字模都不能修改,我们显示英文字符还要用的。只能动用后128字符的字模,这样就带来局限性:
为方便制作,下面的程序就是完成这个转换过程的。
HZPSF 功能:
用法::
hzpsf -e 英文字体 -z 中文字体 -c 启动字体 -i 中文版的配置文件 -o 经过处理的配置文件
引导时使用“经过处理的配置文件”, 并在配置文件中引用生成的“启动字体”文件。
如::
hzpsf -e swiss.f16 -z hzk16 -c myfont.psf -i menu_zh.lst -o menu.lst
编译::
mkdir build
cd build
cmake ../
make
Note::
+ 需要安装 boost 库
```apt install libboost-program-options-dev```
+ 需要安装 cmake