J-3100GTSX041 OS自作入門の演習 十七日目〜二十日目

J-3100GTSX041 OS自作入門の演習 十七日目〜二十日目

さて、マウスは別途解析するとして、ガンガン進めて行きますヨォ〜
コマンドプロンプトの動作が見たくて、二十日目まで行きます

十七日目 コンソールを作る、文字入力できるようにする、大文字と小文字
十八日目 カーソル点滅、Enterキー対応、スクロール対応、dir・clsコマンド
十九日目 typeコマンド、FAT対応
二十日目 一文字表示API、アプリケーションの終了

というわけで、二十日目までやるとコマンドプロンプトでDIRが打てます。
十六日目までのソース変更に加えてconsole.cの変更をします。細かな修正は掲載省略
console.cのcmd_cls関数内
for (y = 28; y < 28 + 128; y++) {
for (x = 8; x < 8 + 240; x++) { sheet->buf[x/4 + y/2 * (sheet->bxsize)/4] = 0x00;
}
}

console.cのcons_newline関数内
/* スクロール */
for (y = 28; y < 28 + 112; y++) {
for (x = 8; x < 8 + 240; x++) { sheet->buf[x/4 + y/2 * (sheet->bxsize)/4] = sheet->buf[x/4 + (y + 16)/2 * (sheet->bxsize)/4];
}
}
for (y = 28 + 112; y < 28 + 128; y++) {
for (x = 8; x < 8 + 240; x++) { sheet->buf[x/4 + y/2 * (sheet->bxsize)/4] = 0x00;
}
}
sheet_refresh(sheet, 8, 28, 8 + 240, 28 + 128);

この辺を修正しないと、clsコマンドで画面がクリアされないとか、dirコマンドで画面がスクロールしないとかいう現象に見舞われます

んで、修正してエミュレータで動かしてみると、こちらはお手本のAT機用

こちらは、J-3100用に修正したやつ。マウスが使えなくてもTABキーでWindow切り替えができてdirコマンドやらclsコマンドやらがコマンドプロンプトに入力できます

んで、こちらは実機動作確認

あと、十日ありますが、それまでにマウス操作ができるようになるでせうか?

追記:マウスの件が片付くまで二十日目までやって一旦封印しようと思います。