最近忙しいです・・・
自作 SIMPLE_TEXT_OUTPUT_PROTOCOL ラッパー
UEFI シェルを動かしてみたら思いのほか便利だったのでスクロール等も対応することにしました。
スクロールは GOP->Blt で実装してますが、 Portrait ネイティブの機種ではやはり遅い・・・
理由は予想ついていたので、一旦バッファーを経由して Blt してみたら見違えるように早くなりました。
とはいえ、一般に VRAM からの読み出しは他のメモリアクセスに比べると遅いので領域が広くなってくるとやはり遅いですね。
VRAM からの読み込みを一切しないようにすればかなり早くできそうですが・・・
元々は別のプロジェクトの製作中に脱線してできたもので、用途も特殊すぎるので一般公開するかどうかは未定です。
HALO 32bit 対応アップデート
github.com
脱 gnu-efi したときのスケルトンプロジェクトの方はマルチプラットフォーム対応しているので、 halo も i386 対応できるんじゃない?って思いついてやってみました。
なぜか GetMemoryMap が失敗すると思ったら、ヘッダファイルが古くて EFIERR マクロが 32bit に対応してなくて EFI_BUFFER_TOO_SMALL を正しくハンドリングできていないだけでした。
結局本体の変更点は 0 で、アセンブリ言語のモジュールを移植するだけで動きました。
実質的に Atom Z3735 対応になるわけですが、 Z3735 搭載してる機種は HW Reduces ACPI 対応でおそらく CSM 対応不可能な機種ばかりで動いてもどうせ PS/2 キーボードが操作できないし、今後は少なくなるから対応する意味薄いかな〜と思ってたわけでした。
ごにょごにょ
そして近日、別のプロジェクトについてご報告できたらいいなと思ったり思わなかったり・・・(ごにょごにょ