壁紙対応/langmodeいろいろ/cmdlineのバグ

gviewとか、はりぼて友の会にアップされている壁紙対応はりぼてOSを参考に、壁紙表示機能を追加しました。
 OSAkkieでは、wallpaperコマンドで表示できるようにしてみました。「wallpaper ファイル名」で表示して、消すときは「wallpaper 0」です。形式もbmp, jpg, ico(いるのか?)の全部に対応です。

 それと、今日はlangmode周りを改造。struct TASKにlangmode0というのを追加して、アプリ起動時のlangmodeを記録しておいて、アプリで変更されて終了時には元に戻すようにしたり、アプリ強制終了時のメッセージ(task_aのlangmodeが反映される)を一時的にタスクにあわせるようにしました。日本語フォントと半角フォントで書体の違いの大きいOSAkkieにとって、langmodeの変わり目はとても気になりますからね。
 課題としては、コンソールのタイトルバーがlangmode 0になっているのをどうにかする、というところかな。

 という訳で、今日はいろいろ付け足していたんですが、気がついたら、変なバグが出来ていました。起動直後から、コマンド履歴呼び出しで文字化けしたようなものがズラズラと出てきてしまいます。
 どこかでメモリがはみ出しているんだとは思うのですが、一体どこだ……。今日はもう遅いので、これまた明日の課題ということになりそうです。

スクリーンショット

6x12フォント実装

8x16の半角フォントを応用して、念願の6x12フォントを実装してみました。makefont.exeも改造して、専用の変換ツールも作りました。0x20?0x7fまでは全部書き終わり、半角カタカナは「コ」まで書けました。結構目が疲れる作業なので、続きはまた明日に……。
で、ナオミさんの吹き出しで使ってみました。小さい!!
スクリーンショット
オマケの写真はマロです。OSAkkieにバンドル中。

OSAkkie開発日誌スタート

さて、今日からOSAkkieの開発日誌をまじめにつけようかと思います。
というのも、これから自分なりに色々改造・改良していく上で、いつ・どこを・どういじったかという記録は重要かなぁと思ったのです。
不定期更新かとは思いますが、なにとぞよろしくお願いしますm(_ _)m

読破後の改造点まとめ

自作本読破後から開発日誌設置までの改造点はこちら

・langmodeを指定するAPIを追加
 OSAkkieはlangmode 0じゃないと困るアプリが多いです。bonnoはバックスペースがうまく出ませんし、walkはOSAkkieフォントに依存したアプリなので文字化け状態になるでしょう。そこでlangmodeを指定できるAPIを追加したわけです。
 ただ、アプリが終了すると、langmodeがコンソールに引き継がれてしまうので、そこはうまく直さないといけないですね。

・ナオミさん再びシート化&吹き出し復活
 前に一度開発してみたものの、シートの上下関係の調整に失敗して、コメントアウトしていたのですが、自作本読破で再びチャレンジしてみました。今度は予定通り、ナオミさんを常に手前に置くことができました。
 吹き出しは、window.c内でmake_balloon8という関数を作って、新しいシートの上に描いています。スクリーンショットでは、その上に文字を書いてナオミさんが自己紹介をしています。
 次の目標は、右D&Dでナオミさんを移動させることです。

オマケとして、gviewでアイコンファイルを表示しています。

スクリーンショット

CSVV

ついにCSVVをOSAkkieに移植しました。といっても、Ver.0.1相当なので、スクロールバーがなかったり、ウィンドウのサイズを変えたり出来ませんが、なかなかいい感じです。ちなみに、動作には、カーソルキーとPageUp,PageDownキーの取得に対応している必要があります。
↓スクリーンショット
https://shrimp.marokun.net/osakkie/scrshot/33.png

25日目終了。

ついにコンソールが2つに増えましたよ?。これでおいらのヘンチクリンアプリを2つも動かせます。万歳。
 次は26日目。ウィンドウの高速移動かぁ。たしかにQEMUだと遅いですからねぇ。コレはぜひ実装したい!

GetTickCount() * 10

乱数の初期化に使えそうな適当な数値を取得するために、timer.cで使っているtimerctl.countをAPIで取得できるようにしました。やり方は、こんな感じ。簡単ですね。
1. timer.cにint timer_getcount(void){return &timerctl.coun

24日目終了

超夜更かしになってしまいましたが(はじめる時間が遅かった)、24日目が終わりました。タイマAPIがついたので、Mt.orzも移植することができました。
スクリーンショット
 えーと、他に移植できそうなのは、こんなところでしょうか……。
・C.V.T.G.
・LuckyNumber(ただ乱数使うだけだし)
・Compact ‘FLASH’(いらね・・・)
 「98 -kuha-」は次(25日目)のビープ音実装でできそうですね。これは楽しみです。