/ «2004-01-06 (Tue) ^ 2004-02-01 (Sun)» ?
   西田 亙の本:GNU 開発ツール -- hello.c から a.out が誕生するまで --

Categories Books | Hard | Hardware | Linux | MCU | Misc | Publish | Radio | Repository | Thoughts | Time | UNIX | Writing | プロフィール


2004-01-08 (Thu)

[Writing] GCC プログラミング工房 第25回

VGA テキストモードを究める

UNIX USER 2004年2月号、本日発売。GCC プログラミング工房の今回は、合計6回におよぶ VGA テキストモードプログラミングの総仕上げとして、ビデオタイミング制御に挑戦する。

この6回のシリーズを通読して頂ければ、私も含め、古来多くのプログラマー達が悶々と抱いていた疑問の数々が氷解することだろう。

  • なぜ printf で画面に字が出るのか?
  • なぜテキスト VRAM はセグメント B800 からスタートするのか?
  • テキストフォントの形は誰が決めているのか?
  • どうすればフォントを変えることができるのか?
  • 画面が横 80 桁、縦 25 行なのはなぜ?
  • Linux カーネルはどうやって、90x60 テキストモードを実現しているのか?
  • ALT-F1 や ALT-F2 による、Linux 仮想コンソールの切り替えはどういう仕組みに基づいているの?

記事中で使用したソースリストと、今回作成したプログラムを含む FreeDOS 起動ディスクイメージを公開しているので、興味のある方は是非とも実際にタイミング制御コマンドをビルドし、自分の手で実行してみてほしい。ライブラリー関数 printf に頼っている限りは、決して見えてこない世界がそこにある。

具体的な楽しみ方については、「Hello, world! 物語」の続編で紹介する予定。