OS
14日目の内容です。 内容としてはGUI機能をさらに強化する感じです。 Windowが動くようになりました(不完全) 画面が高解像度になりました。 キーボード入力に対応した文字が表示できるようになりました。 GUIは結構進みましたが、まだまだ改善の余地を感じさ…
13日目のソースは harib10a:文字列表を簡単に(文字列表示のヘルパー関数を作る) harib10b:FIFOバッファを見直す(タイマーのFIFOを統合する) harib10c:性能を測定してみる(パフォーマンス測定用のカウンターの導入) ですが、harib10cのソースが正常に動作しま…
12日目はタイマーです。 www.youtube.com タイマーとは?その必要性は? タイマーがないと定期的に or 何秒後にXXするという処理を作りにくい タイマーがなくても一応実現できる。 ただしCPUのクロックに依存したコードを書く必要がある 各命令や関数が何ク…
11日目はついにWindowを作ります。 Windowのハローワールド的なもの ウインドウ ウインドウの作り方です。簡単にコメントで補足してみました。 struct SHEET *sht_win; unsigned char *buf_win; /*リソース確保*/ sht_win = sheet_alloc(shtctl); //シート b…
10日目はGUIの改善を行いました。これにより、下のバーをマウスが破壊する現象がなくなりました。 GUIの改善。マウス以外の恩恵を感じられるのは11日目から、な気がします。 day9までのGUIの課題 画面再描画の方法 画面描画の改善 感想 day9までのGUIの課題 …
30日OS自作本9日目 9日はメモリ管理です。 BIOSからメモリの情報を取得する方法(失敗) https://stackoverflow.com/questions/39024754/how-to-get-ram-size-bootloader https://wiki.osdev.org/Detecting_Memory_(x86)#Manual_Probing http://softwaretechni…
8章終了時にマウスが動いている仕組みがイメージできなかったので 5〜8章で割り込みついて書いてるところを自分なりにまとめました。 PICの設定の初期化 IDTの設定 IDTに割り込みハンドラを登録する 割り込みの発生、割り込みハンドラの呼び出し 割り込み…
8日目の内容になります。 前回マウスを動かすための割り込み処理を完成させたので、 受信したデータを使ってマウスカーソルを動かす内容になります。 祝マウス初動作。灰色のバーはマウスが通った後再描画されないのでグチャグチャ 動画 マウスの受信データ…
7日目は6日目で作った割り込みを少しカスタマイズしました。 マウスからの入力が感知できるようになりましたが、まだ動かす部分は作っていません。 7日目終了時の画面。表示されているデータの左側がキーボード、右側がマウス入力のもの 割り込み処理の中身…
6日目は割り込みハンドラの実装&呼び出しを行った。 キーボード入力に反応.マウスはまだ動かない. GDTの仕組み GDTRという48ビットのレジスタにGDTを配置した番地(開始地点)とリミット(開始地点からどこまでGDTか)を書き込む GDTRの最初の2バイトはリミット…
5日目は文字とマウスカーソルの表示をやりました。 VRAMにマウスカーソルとフォントを書き込んだ。マウスカーソルはまだ動かない 文字をどう扱うか 文字を配列のインデックスに利用する マウスカーソルを動かすためにはセグメンテーションと割り込みが必要。…
今日はこの辺までできた。 画面描画周りの色々 で結局画素の位置との対応は? 配列とポインタ 配列のインデックスはアドレスの加算として表現されている C言語でなんでもできるわけではない おまけ(失敗) 感想 画面描画周りの色々 day3から引き続き、ビデオ…
なんかすごく低レイヤー臭が強まったdayでした。 フロッピーの容量は次のように決まる ESとBXレジスタを使ったバッファアドレスの決まり方 BIOSとのお別れ 新しく知ったこと gccはgasというアセンブリ用のソースを出力する objファイルのobjectは目的、の意…
たまたま見つかったフロッピーと格闘した記録です。 実家にフロッピー&ドライブあったんで自作os本のサンプル焼こうと思ったらエラー発生。 pic.twitter.com/Vy3Pnlyz4Z— yuyabu (@yuyabu2) May 4, 2018 ディスクエラーなら別の試せばいいか。もう4回遊べる…
ちょっと詰まっても読み進めれば解決することがわかりました。 helloos.nas のコメント部分が文字化けしてしまいました。 よくわかんないこと ORG アセンブラとバイナリ(DBで書き込んだ16進数)との対応(解決) ラベルとアドレスの対応(解決) nask以外のツール…
macOS High Sierra 10.13.4でやっています こちらのサイトを大いに参考にしています GitHub - sandai/30nichideosjisaku: 『30日でできる! OS自作入門』川合 秀実氏(著)のMacOSX開発環境を整えることができます バイナリエディタ 推奨の通り0xEDを使います …
30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る きっかけTuring Complete FM Turing Complete FM のゲストのるくすさ…