「30日で出来る!OS自作入門」を読みながら作っているOS、OSAkkieの開発日記。2006OSAkkieClassic移転と、アプリ紹介ページは年内(って、あと数時間w)移転見送りにしました。2006今日は、開発日誌とスクリーンショットのページを移転させました。いっても、まだパソコン小屋にデータが残っていますが、そのうち消します。Classic、小物ツール系の移動、はりぼて友の会のリンク、といったところでしょうか......。あ、トップページに出てくるアプリのリンク先は未作成です。アプリ解説が出る予定(?)。2006そういえば、もうクリスマス前のことなのですが、前々からやりたかった自動調節型のiplを導入しました。一通りソースを書き終えて、実行!しかし、起動せず......。OSAkkieのIPLは「男のロマン」という理由でロード中にドットが出るようになっているので、その辺がダメなのかなぁと思って、普通のはりぼてOSからIPLのソースをコピーしてきて作っても、やはり起動しませんでした。2006bootpack.cのシートを探す関数(自分で関数化)を眺めていて気が付いたのですが、shtctlのmapを使って調べたら、ループで1つずつ調べるよりも早くシートを探せそうだなぁと思ったんです。2006独自ドメイン「OSAkkie.info」を取得しました。2006画像データを転送する関数を作りました。画像データとは、マウスカーソルとかクローズボタンみたいなアレです。アルファベットのa?pをパレット番号0?15に置き換えて描画するようにしたので、画像データもすべて作り直しました。‘などの適当な文字を入れればいいことになっています。これのおかげで、50.5KB前後あったosakkie.sysが49.1KBにまで減りました。ソースも超スッキリになりましたよ?。多色対応でサイズがぶくぶく増える中で、似たような処理をまとめていくのは重要だなぁと思いました。2次元配列になっている画像データの受け渡しに苦労しました。ポインタでやり取りする形で作ったものの、うまく画像が表示されなくて、2次元配列のまま受け渡しする方法を考えてみたり(これは色々決まりごとがあってダメだった)、秘儀・適当ポインタ(でたらめに色々なポインタを入れてみる技)を試したり、最後の手段でCSVVの時のように構造体でくるんでしまおうか考えたりしていましたが、結局、データの受け渡しと全然関係ないところを書き間違えていて、最初に作ったポインタ形でうまく画像が表示されました......。何が言いたいかというと、CSVVではできなかった2次元配列の関数間の受け渡しができるようになった、ということなのです。これもOS自作入門のおかげなのです!さて、画像データ転送がうまくできたので、新たに画像を一つ増やして、OSAkkie三大野望の一つを実現しようかと思っています。osakkie.sysのサイズがまた50KBを超える......。コード変換関連API追加osak_getbuflen(0x4004)osak_getcolor(0x4005)・各種APIの多色対応osak_putstrwin(0x4100)osak_boxfilwin(0x4101)osak_point(0x4102)osak_linewin(0x4103)・asmhead.nasにて、解像度を第2候補まで選べるようにした。・マウスのメイク・ブレイクを検知するようにした。・ナオミさんを右ドラッグで移動できるようにした。・最小化ボタンの追加(未実装)・日本語フォント読み込み後、OSAkkie半角フォントを上書きロードするように変更。・画像読み込みAPI追加osak_initpicture(0x4006)osak_drawpicture(0x4007)osak_freepicture(0x4008)・サンプルアプリに「stbeep」を追加。2006今日は画像読み込み・表示のためのAPIを実装してみました。ついでに、壁紙表示でも同じ関数を呼び出すようにしたので、経済的になっています(?)。それで、APIで画像を表示させる手順はこんな感じです。2006すっかりご無沙汰になってしまいましたが、ぼちぼち開発を再開しています。多色対応は、とりあえず出来上がりました。24bitに対応できるように、バッファはint型にしてみましたが、24bitでの動作確認はしていません(それでいいのか?!)。多色対応にあたって、アプリの書きやすさのためにいくつかAPIを追加し、OSAkkieのほぼすべてのアプリでそれを使用しているため、他OSとの互換性はなくなっています。従来のAPIの互換性はキープしてありますが、多色で描画をする場合は、api_をosak_に置き換えて、16進数コードで色を指定することで可能になります。現在は、bootpack.c内のマウスのメイク・ブレイクの実装、ウィンドウ最小化の実装に取り組んでいます。マウスのメイク・ブレイクはほぼ出来上がりました。ついでにネストが異様に深い問題を解決して、ソースもすっきりです。マウスのメイク・ブレイクが分かることで、ウィンドウを閉じるときにマウスのメイクが来た時点ですぐに閉じるのではなく、ブレイクまで待ってから閉じられるようになりました。最小化は仕様に悩み気味ですが、うまく実装していけたらいいなぁと思っています。いえば、osakkie.sysのサイズが50KBを超えました。なんとなくくやしいので、うまくサイズを縮められそうなところがあったら改善してみようと思います。ボタンの描画あたりで、*と@で表現するんじゃなくて、8bit色コードで表現するとかして、まとめて関数で処理できるようにしたりとか。2006OSC2006-Okinawaに行ってきました。詳しいことはあっきぃ日誌に書いたので、そちらをご覧ください。http://d.hatena.ne.jp/Akkiesoft/20061202こちらは報告だけということで?。展示ブース編:OSC来場者数が150人というのもあって、お客さんは少なめでした。「沖縄の人はシャイらしい」というウワサが本当なのか、会話はあまり弾まず......?(ごめんなさい、おいらも会話下手です)。CD-Rとチラシが最後まであまっていたのですが、ライトニングトークで強引に配りました(笑)。OSAkkieミニセミナー編:Kタンのセミナーの最後で話題振りしてもらいながら、プレゼンのデータが途中で終わっていた&実演しようとしたらVGAコネクタがうまく刺さらなくて続行不能に。プレゼンデータの確認をしていなかったのはおいらが100%悪いのですが、VGAケーブルが、VGAケーブルがぁぁぁぁ。ライトニングトーク編:トップバッターであることを忘れ(しかし元から全然意識していなかった?)、プレゼン用PCの電源を切っていました。社長にあまっていたCD-Rとチラシまでを配っていただいて、もう、本当にすみませんでした。なんと、緊張のあまり15分もずるずるやってしまったようでした。秋の東京よりも圧倒的に少人数だったのにアガってしまうとは、情けない。その後の懇親会では社長から「箇条書きのページは全部読むべからず」との指導を受けました。結局のところ、シンプルを極めた高橋メソッドが(初心者には)やりやすいんじゃないかなぁ、と思いました。