よもぎのメモ帳

備忘録的な感じで技術的なことをストックしていきます。

よもぎのOS自作入門 18日目/30日

はじめに

これは2020年夏休み企画「30日でOS自作してみよう!」18日目の記事です。

企画についてはこちら

y0m0g1.hatenablog.com

昨日やったことを書いていきます。

昨日の進捗

f:id:y0m0g1:20200907175147p:plain
lsコマンド

前回まで作成していたコンソールを改善し、その上でいくつかのコマンドを追加しました。上の画像はlsコマンドです

昨日やったこと

前回はコンソール画面を作成し、両方で文字入力ができるようにしました。

一方で、文字入力以外のことはほとんど何も制御してませんでした。その1つにカーソルの点滅があって、前回時点では両方ぱちぱちしてました。

f:id:y0m0g1:20200907182508p:plain
前の画面のカーソルはなくなってる

スクショトルの下手なのであれだけど、後ろの画面がアクティブになっている*1ため、前の画面のカーソルの点滅がなくなってます。

f:id:y0m0g1:20200907182638p:plain
後ろの画面のカーソルはなくなっています

バッファに入れる値によって後ろの画面のカーソルが点滅するかどうかを設定しています。これも一応後ろの画面のカーソルの点滅がなくなっています。

f:id:y0m0g1:20200907182752p:plain
改行に対応

一行ぶん*2入力位置を下げることで改行して、

f:id:y0m0g1:20200907182846p:plain
スクロールに対応

一行ぶん下のVRAMの値を上にコピペし、一番下の行を黒く塗りつぶしてスクロールしました。

マウスホイールで上行ったり下行ったりできないのでスクロール対応した?っていうと微妙かも。

このあとは3つのコマンドを実装しました。

f:id:y0m0g1:20200907183047p:plain
memコマンド

1つ目はメモリの容量と空き容量を表示するmemコマンド。

f:id:y0m0g1:20200907183134p:plain
clearコマンド

2つ目は画面をまっさらにするclearコマンド。これは画面を真っ黒に塗りつぶしています。

f:id:y0m0g1:20200907183303p:plain
lsコマンド

3つ目はファイル一覧を表示するlsコマンド。 これはOSのimgファイルに取り込んだファイル一覧を表示しているのですが、 imgファイルに取り込んだファイルの情報があり、またimgファイルはメモリ上にマッピングされているので、 メモリ上にマッピングされている情報をいい感じにとってきて表示しています。

明日も一日頑張るぞい!

*1:フォーカスされている?

*2:16ピクセル