ROSe

レガシーな理由(BIOS)

元祖「IBM PC」が発売されたのが、1981年。 所謂「互換機」の祖である「PC/AT」が発売されたのが、1984年。 それから30年近い年月を経てきた訳だ。 この間、PCの性能は驚異的に高まり、 周辺機器なども淘汰が繰り返され、 中身は全く別物と言っても良いく…

復習モード

ちょっと放置期間が長かった事もあり、 また、本人の記憶力や整理能力の問題もあり、 これまでやってきた事を、 再度、やり直した方が良さそうだ。 復習復習! この際、自分への注意点として、 今回、自分の過去の記述や資料のまとめ方で、 分かり辛かった点…

諦めていませんよ〜!!

自分は、人の二倍三倍、やる事が遅い。 必然的に、人の二倍三倍、時間を掛けなければ、結果が伴わない。 いや、結果が伴えば、まだ幸い。 それだけ時間を掛けても、まだ、とっかかり状態、だったりする... (^^;;; ただただ、諦めが悪いだけで、なんとか、こ…

FAT対応:その前に?

さて、忘れた頃に、少し時間が取れそうなので、 ROSeのFAT対応作業を再開させようと思う。 えぇ、まだ諦めていなかったのです。(笑) FAT対応を始めるにあたって、 そもそも、どのドライブを対象に操作を行うのか、 なんだか、そんな情報が必要な気がしてきた…

ちょっと改修

一次ローダの初期スタックポインタアドレスが0x7C00なのは、 振り返ってみても、はてどうしてだろう?と、 その出所が不明なんだけど、多分、はりぼて由来かな?とか思う。 で、はりぼてのソースを眺めてみたら、やっぱり、そうだった。 monaやLinuxは、どう…

よくよく考えてみたら

コントロール+Cによる処理中断の実装について、よくよく考えてみたら、 これって、つまり、コンテキストスイッチなんじゃないかな?とか思った。 ROSeは、まだまだ幼稚で単純な作りだから、スタックの調整だけで動いているけど、 本格的な作りになったら、…

CHSの復習

ディスクの CHS、すなわち、シリンダ・ヘッダ・セクタの各要素は、 言葉で説明するとなると、なかなか、うまく説明出来ないが、 図を見れば、言葉通り、一目瞭然であろう。 ただ、良くある例えであるが、バームクーヘンのような形であるため、 その形に惑わ…

FAT対応

とりあえず、FATの読み込みから入ろうと思う。 ぼちぼち、ゆっくりと進めて行こうと思っています。

実機でも動いた!!

実機で確認してみた。 うまく動いた。 BIOS のコード変換は、やっぱり、共通みたいだ。 よしよし。

その1で動いた!!

昨日の方法で、ROSe に ^C の機能を実装してみた。 実際は、試行錯誤の末、なんとか動いたって感じだけれど、 とりあえず、考えた通りに動いてくれたので、嬉しいぞっと!! まず、SPレジスタの内容の保存先は、とりあえず、0x0500番地とした。 0x0400番地から…

^Cの実装について(方法その1)

FreeDOS の ^C 処理を追うのは引き続き、こつこつやっていくとして、 とりあえず、ROSe については、まだまだ実験体なので、 色々と試してみるのも、ありなんじゃないかな?とか思った。 現状、ROSe は、シングルタスクも良いところで、 入力待ち→コマンド入…

Ctrl^C を実装するには

ROSeは、今のところ、いくつかのコマンドしか実装されていないが、 それでもコマンドの途中でキャンセルしたい場面が多々ある。 例えば、間違って、w とか入力しちゃうと、 問答無用でセクタ書き込みを行ってしまうわけですね。 怖いですね〜。苦笑 それで、…

OSって、やっぱり、難しい

OSを作りたい!!って意気込んで、何度も壁に跳ね返され、 性懲りも無く同じような事を繰り返して来たわけだけれど、 何が難しいのか、そこが、なかなか見えてこない。 何が分からないかが分からない、という状況は、 迷路に嵌る可能性が非常に高いように思う…

再びFAT!!

以前、しばらくFATのお勉強をした事があるが、再び、FATの登場である。 セクタ単位の読み書きが、一応、動いてはいるのだけれど、 やはり、セクタ単位では、ちょっと(かなり?)不便である。 ある程度きっちりとしたファイルシステムが欲しくなる。 そこで、…

またお前か!!

far call を修正して、再度、チャレンジ!! 結果 → 動いた!! と思ったら、固まった... orz はい、トレース、トレース。<これ重要!! とりあえず、"TEST!!"は、表示されている。 その後、プロンプトが戻ってこない。 またまたソースを晒しながら、追ってみまし…

この辺で、大概、詰まる

さて、とりあえず、セクタ単位での読み書きは出来るようになった。 ROSeの先代?と言うか、プロトタイプも、一度、この辺で詰まっている。 ここが一つの壁と言うか、なかなかに目標設定が難しいところだ。 まぁ、多分、なるべく効率的にとか二度手間を避けよ…

あれれ?

コマンド入力部を見直していたところ、ちょっと不思議な挙動に気が付いた。 良くある、小文字が入力されたら、大文字に変換するように修正を加えて、 キーボードの端から順番にキーを押してチェックをしていたら、 半角/全角 キーで、何故だか、小文字の't'…

とりあえず、オーソドックスに

セクタ単位のディスク読み書きは、BIOSサービスの int 13h 系が使えるわけだけど、 旧来のサービスと拡張サービスとがあって、最近の大容量化を踏まえると、 拡張サービスを使っておいた方が、後々、使えるような気もするのだけれど、 現状、リアルモードで…

次の機能について

文字出力、文字入力、メモリダンプ、メモリエディット、手続き呼び出し、と来た。 手続き呼び出し(サブルーチンコール)を用意したなら、 無条件ジャンプも用意した方が良いのかなぁ?とかも思うんだけど、 現状、無条件ジャンプで制御を次のプログラムに渡す…