メニュー
自己紹介
ハンドルネーム : ケーボ
性別 : 男
誕生年 : 1994年
趣味 : プログラミング(書くことも考えることも両方好きです)
近況報告 : ホームページはしばらく更新しませんが、OSの開発は続行中です。ネットワークに対応させようと情報収集中です。
はりぼてOSでなんちゃってUTF-8対応(第2水準漢字まで)
方法
配列変数を作り、上から順番に区点コードに対応したUTF-8のコードを入れます(説明がわかりにくいと思うので、[やってみた]の手順1のところに実物があります)。
そして文字を描画するときに、配列変数の中から、描画しようとしている文字と同じコードが入ったものを探し出し、その添字から区点コードがわかり、文字が描画できるというわけです。
やってみた
- 手順1.配列変数を作る
実際のものがこちらにあります。
- 手順2.TASK構造体のlangbyte1をunsinged charからunsigned shortに変える
これは、UTF-8には3バイト文字もあるからです。
- 手順3.graphic.cのputfonts8_ascの改造、関数の作成
実際のものがこちらにあります。
- 手順4.console.cのcmd_langmodeの改造
if (mode <= 2)の部分をif (mode <= 3)に変えてください。これで、langmodeの3番を使えるようになります。
これで一応終わりですが、typeやtviewなどのアプリケーションでも対応させるにはアプリケーションを改造する必要があります。
Cloumo
Github https://github.com/kkk669/Cloumo
- 高速・軽量
- プログラムの無駄な部分をなくし、より小さくて高速なOSを目指しています。
- インターネット
- ウェブアプリケーションを高速に動作させ、かつ個人の情報を守ることもできる、安全で快適なインターネット利用を目指しています。
- 人に優しい
- パソコンを使うには知識が必要という常識をなくし、誰でも使えるものにすることを目指しています。
実装済み機能
- ブラウザ(基本的ないくつかのHTMLタグや特殊文字には対応)
- UTF-8対応
- シートの半透明化・透過度
- グラデーション
- 時計
- 色数が32bit(または16bit)
- 起動音
- FPU
- 画像の縮小
- 綺麗な円
実装したい機能
- ネットワーク対応
- スピーカーなどの周辺機器対応
- 64bitOS(最近のOSよりも、あまりメモリを使わないから、まだまだ32bitで大丈夫?)
- 画像の拡大
- ブラウザを選べない!という欠点ができることが予想されるので、拡張機能や見た目の変更を充実させる。
コメント
- Keboさんはじめまして。Cumo OSの完成を待ちかまえていましたTriangle Ld.です。しかしこれが完成バージョンになったら、ついに自作OSもWebの世界に入るのかぁ...と思うと、自分はなぜかちっぽけに見えます(笑)。半透明の機能もすごいです。私も何度か試したのですが、どうもうまくいかなくて...。 -- Triangle Ld. 2010-02-06 (土) 13:54:23
- はじめまして。hikarupspです。半透明のシート、すごいですね。ところで、ひとつバグを見つけました。ウィンドウを思いっきり画面外に出すと、シートが誤作動してしまうようです。これからもがんばってください。 -- hikarupsp 2010-02-07 (日) 16:49:32
- はじめましてhikarupspさん。バグの報告ありがとうございました。早速原因を探したいと思います。 -- ケーボ 2010-02-08 (月) 17:35:46
- hikarupspさんに教えていただいたバグは、ウィンドウ移動の方法を変えたら直りました。ありがとうございました。 -- ケーボ 2010-02-09 (火) 17:05:27
- 頑張れ〜 -- Liva 2011-08-15 (月) 22:09:22
- keboさんはじめまして、impressions にも書いたのですが、気づいていただけないような気がして、改めて質問いたします。はりぼてOSをjavaで開発する時の、bootpack.javaの書き方を教えてください。Cやアセンブラで書かれた関数の呼び出し方がわかりません。ご教授願います。こんなところまで押しかけてしまってすいません。 -- D&J 2012-08-29 (水) 22:58:47
- 3バイトならintもしくはlongのほうがいいと思います。 -- skyblue 2014-08-20 (水) 14:08:18
- 確かに3バイト文字もあると書いていますが,ソースコードを見ていただけるとわかるように,実際に langbyte1 に代入して条件分岐に使うのは2バイト分だけなので,ここでは unsigned short で十分というわけです. -- ケーボ 2014-11-05 (水) 01:44:42