テスト勉強そっちのけで、なんとかプレゼン完成しました。
よかった???。
しかし、ミニセミナーがもしかしたらなくなるかも?とKタンに言われました。たしかに、会場の配置なんかが色々変わっていて、ミニセミナーをやりそうな場所がない気もします。ううう、せっかく作った(しかもOSAkkie上でやる予定の!)OSAkkieプレゼンができなかったらくやしいぞ?。
テスト勉強そっちのけで、なんとかプレゼン完成しました。
よかった???。
しかし、ミニセミナーがもしかしたらなくなるかも?とKタンに言われました。たしかに、会場の配置なんかが色々変わっていて、ミニセミナーをやりそうな場所がない気もします。ううう、せっかく作った(しかもOSAkkie上でやる予定の!)OSAkkieプレゼンができなかったらくやしいぞ?。
OSAkkieの開発もそこそこに、OSC2006-Okinawaに向けて動かなければなりません。とりあえず、やることをメモメモ。
・ライトニングトークのプレゼン(はりぼて友の会)作る
・ヒコーキで作れるすばやさと充電の持ち時間がない!
・ミニセミナーのプレゼン(OSAkkie)を作る
・上と同じく
・CD-R制作第2弾
・ビラどうしよう?
個人的なやることとしては
・テストに伴う勉強(20?24日)
・ワープロ検定1級リベンジマッチ(26日)
・母校の中学校(というか近所)に高校説明会(27日)
なんていうのもあるので、優先順位決めにすごーく悩みます(笑)
一通りやることはやったので、OSAkkie Ver.0.1.01をリリースしました。以下にSourceforge.jpにアップした変更履歴を載せておきます。
・langmodeを指定するAPIを追加
・ナオミさん再びシート化&吹き出し復活
・Advanceシリーズ実装
・smaller1
・startup
・6×12フォント実装
・表示APIの実装(API No.0x4003)
・壁紙機能追加。wallpaperコマンド実装
・小改良
・setlangを使用したアプリが終了したときに、その設定がコンソールに引き継がれないように改良。
・アプリ起動時にウィンドウをアクティブに
・テンキー「/」、Enterに対応。
・はりぼて友の会API番号策定により、API番号を変更。()内はAPI番号。
・osakkie_gettickcount(0x1000)→tomo_gettick(0x1001)
・osakkie_langmode(0x1001)→tomo_setlang(0x1003)
・osakkie_putministrwin(0x1002)→osak_putministrwin(0x4002)
・メニューアプリ作成。起動時に実行するようにした。
・バージョン番号を少し変更(OS自作本読破のため)。
はりぼて友の会のAPI割り当てが決まってきたので、一足早くAPI番号を変更しました。osakkie_gettickcountとosakkie_langmodeははりぼて友の会共通API化するため、OSAkkieAPIからいなくなりました。うーん、寂しいですね?(笑)。ついでに、osakkie_putministrwinは長すぎるので、osak_putministrwinに変更しました。うむむ、大して変わってないですね……。
今回の変更をまとめてみました。ちなみに、0x4000と0x4001は、OSAkkieの情報を返すAPIか何かを入れるために予約しています。
osakkie_gettickcount(0x1000)→tomo_gettick(0x1001)
osakkie_langmode(0x1001)→tomo_setlang(0x1003)
osakkie_putministrwin(0x1002)→osak_putministrwin(0x4002)
さて、今日も主にメニューアプリを作っていました。アプリから別のアプリを起動するosak_exec(0x4003)というAPIを実装したり、表示に凝ってみたりしましたよ?。
カテゴリが違うかなあと思って、別エントリーに書いてみました。
先のosakkie_putministrを使って、メニューアプリを作成中です。ちょっと、なんか、うーん、良い感じです!(笑)とりあえずカーソルキーで選んでEnterで起動、見たいな感じになると思うのですが、マウスに対応したらマウス操作もできるようにしたいですね?。
はりぼて友の会(http://haribote.org/)で議論中のAPI番号割り当ての件がそろそろ決まりそうです。おいらは0x00004000?0x00004FFFの間になりそうですが、その数なんと65,536個!そんなにAPIを作るようなすげーOSになるんでしょうかね……?!
さて、今日は6×12のミニフォントを表示するAPIを実装しました。api_putstrwinをosakkie_putministrの名前でコピーしたような感じで、使い方も一緒です。ステキ!
今日はOSAkkieのバグをつぶして色々作るぞー!と張り切っていたのですが、テレビに見とれてしまい、やっと脱出してPCに向かったところで津波警報発令がきたもんですから、すっかり時間が遅くなってしまいました。ちなみに、ウチは根室市でも一番標高(?)が高い所に住んでいるので、避難したり津波におびえる心配は皆無でした。
さて、バグつぶしですが、まずはアプリが起動しない問題から。原因は、cmd_appで圧縮ファイルに対応したときに、ファイルサイズの指定を間違えていました。凡ミスです。次はコマンド履歴にメモリの中身が出てくる問題。コレは、memman_alloc_4kした後にメモリの中身をクリアしていないのが原因でした。
ちょっと時間があったので、起動時のコンソールのlangmodeが、ウィンドウを作る前が0、作った後が1になる(→フォントがそろわない)件について色々考えてみたのですが、どうも面倒なのであきらめました。
その他の変更は、スタートアップスクリプトのosakkie.hsfに、壁紙を表示するように書き足しておきました。コレで、起動時に自動でマロが出てきます。やったー!
gviewとか、はりぼて友の会にアップされている壁紙対応はりぼてOSを参考に、壁紙表示機能を追加しました。
OSAkkieでは、wallpaperコマンドで表示できるようにしてみました。「wallpaper ファイル名」で表示して、消すときは「wallpaper 0」です。形式もbmp, jpg, ico(いるのか?)の全部に対応です。
それと、今日はlangmode周りを改造。struct TASKにlangmode0というのを追加して、アプリ起動時のlangmodeを記録しておいて、アプリで変更されて終了時には元に戻すようにしたり、アプリ強制終了時のメッセージ(task_aのlangmodeが反映される)を一時的にタスクにあわせるようにしました。日本語フォントと半角フォントで書体の違いの大きいOSAkkieにとって、langmodeの変わり目はとても気になりますからね。
課題としては、コンソールのタイトルバーがlangmode 0になっているのをどうにかする、というところかな。
という訳で、今日はいろいろ付け足していたんですが、気がついたら、変なバグが出来ていました。起動直後から、コマンド履歴呼び出しで文字化けしたようなものがズラズラと出てきてしまいます。
どこかでメモリがはみ出しているんだとは思うのですが、一体どこだ……。今日はもう遅いので、これまた明日の課題ということになりそうです。
カンタンでした?。
しかし、OSAkkieはrebootコマンドを書かれると永久に再起動を繰り返してしまうという欠点が……orz