オペレーティングシステム 作成 T21R003 荏原 寛太
目的 オペレーティングシステム(OS)を実際に作ってみて、どのようにしてコンピュータが動いているかを理解する。 C言語とアセンブリ言語を用いて作成する。プログラミング技術の上達を目的とする。
日本語表示への対応 このOSではtypeコマンドが使用できる。 日本語に対応していないので、日本語で書かれたテキストファイルは文字化けする
JISの規格では、日本語の文字コードは点、区、面という単位で定義されている。一つの点が一文字に対応しており、一つの区には94の点が、一つの面には94の区がある。図のような 94 * 94の二次元的な表である
区点を使って日本語を表示するために、まず 1区から47区までの文字のデータが含まれているフォントデータを用意して(容量の都合上47区まで)。これを、OSの起動と同時にメモリ上に展開しておく。 シフトJISの文字コードでは、1バイト目に区番号が、2バイト目に点番号が書いてあるので、これをそれぞれ取り出す。この区、点番号からフォントデータが格納されているメモリ番地を計算するには、以下の式を使う。 番地 = (区番号-1) × 点の個数(94) + (点番号-1)
例えば、2区13点の文字データがある番地は 1 * 94 + 12 = 106番地となる。
アプリケーションの作成 次に、四則演算・シフト演算・ビット演算が可能なコンソールで動作する電卓を作成した。
インベーダゲーム
テキストビューア
まとめ プログラムを作っていく過程で、スタック・キューなどのデータ構造を理解した。 キーボード・マウスの割り込みハンドラ作成 メモリのセグメント方式による管理 ファイル操作・ウィンドウ作成などの各種API の作成を行った。