Archive for the ‘Advance’ Category

FDC実装リトライ(その1)

月曜日, 9月 17th, 2007

 超ご無沙汰してます。引越し当初からだいぶ落ち着いたのと、夏のボーナスでワイド液晶ディスプレイを購入して作業効率のいい環境を手に入れたので、そろそろOSC2007 Tokyo/Fallに向けてFDC実装に再挑戦したいと思います。
 しかし、ただ思うのではポシャるので、会社の先輩のアドバイスで、完成したときのご褒美を決めました。「VOC@LOID 初音ミク」!!!www
 さて、前回の開発からしばらくたっているので、FDCのコードどころかOSAkkieのコードすら忘れ気味ですが、前回の失敗点をチェックしておきます。
・メモリ関係が非常に怪しかった
・設計が破綻していた(?)
原因はFDC以外のところに/(^o^)\
まぁ今回は前回の行き当たりばったりソースを眺めながら、それっぽく書いてみます。

BIOSを使わないでディスクアクセスするぞ!(FDC)その7

金曜日, 2月 23rd, 2007

 つ、、、ついに……読み込みができるようになりました!!!

OSAkkie Screenshot

 開発中のDisk1で起動して、OSAkkie Ver0.1.04の入ったDisk2にフロッピーを差し替えて、色々起動したところです!もちろん実機!というか、エミュレータだとFD切り替えが面倒ですからね?。

 問題は、やはりフロッピー読み込みが妙に遅いことです。壁紙をロードさせると分かりますが、1シリンダ進むのにものすごく時間がかかってしまいます。ううむ?

 今後はこの辺の微調整をしていきたいと思いますが、この原因不明を倒せる日は来るのか……?!

BIOSを使わないでディスクアクセスするぞ!(FDC)その7

木曜日, 2月 1st, 2007

OSAkkieのFDC実装は相変わらずチンタラ進行中ですが、ここ数日はまたしても停滞中。

スタートアップのスクリプトを読み込むときに限って、FIFOデータが返ってこないのです。いや、きっとフォント読み込みも止まるだろうけど、どこを調べても、タスク間のデータのやり取りに問題はないです。bootpackのタスク(task_a)とのやり取りが問題なのだろうか……。ううむ。

そろそろ開始から1ヶ月になるのでしょうか。「30日でできる!FDC実装」な勢いですねぇ……。

BIOSを使わないでディスクアクセスするぞ!(FDC)その6

日曜日, 1月 21st, 2007

 また間があいてしまいましたが、まだまだFDCがんばり中です。

 昨日、ディスク読み込みがやっとまともにできるようになりました!しかし、速度が妙に遅いのです。起動時のシリンダ移動の音の感覚を1とすると、OSAkkieのFDCは13ぐらいです。うううむ、なんだこの差は……。

 今日は読み込み部分を別関数に分けて、同時に、書き込み関数も後から書きやすいようにしてみました。

 あとは実際に読み込んで使えるようにするだけなのです!うぉぉぉぉキタァァァ!!!……しかし、どうやったらいいのでしょうか。・゚・(ノД`)・゚・。

 話は変わって、WikiにOSAkkie改造部分の解説を載せました。今日は、IPL改造についてと、フォントの自作方法についての2つを書きました。あと、はりぼてOS開発のTipsと、ミニ掲示板(impressions)も設置しました。

BIOSを使わないでディスクアクセスするぞ!(FDC)その5

日曜日, 1月 14th, 2007

 前回から間があいてしまいましたが、久々に報告?。

 ただいま、読み込み部分を実装中です。しかし、どうしてもコマンド実行が成功しません。うーむ。なぜだろう。

 ちょっとやっては脱線、またちょっとやっては脱線……といった調子になってしまっているもよくないですよね?。ううむ。

BIOSを使わないでディスクアクセスするぞ!(FDC)その4

金曜日, 1月 12th, 2007

今日はなんだかいろいろやりましたよ?。

・FDCにコマンドを送る関数を作りました。
 →ソースの見やすさがアップしてぐらいです(笑)。
・fifoバッファ整理
 →タスク間のやり取りと、タイマ用に1コ。割り込み用に1コ。
・コマンドの連続送信ができるようになりました。
・FDDモーターの自動OFFが可能になりました。

……と、だいぶイイカンジになってまいりました!ソースコードをOSAkkieWikiにアップしたので、危険を覚悟で動かしてみたい方はどうぞ(PCとかFDDが壊れても責任は負いませんよ!)。

明日の目標は……、そろそろ読み込みとかやってもいいのかな?

BIOSを使わないでディスクアクセスするぞ!(FDC)その3

水曜日, 1月 10th, 2007

 今日は、リザルトステータスの受け取りをしてみました。シリンダ50にシークした後にリザルトステータスを取得すると、無事にコマンドが終了して、現在地50シリンダという風に返ってきます。

 そして、OSAkkieWikiの[[tmp/FDC]]にコードを載せてみました。ただし、実行は危険ですのでおやめください。まぁ、これだけじゃ動かないですけどね(割り込みの許可とか)。

 明日は、うーん、何やろう?

BIOSを使わないでディスクアクセスするぞ!(FDC)その2

水曜日, 1月 10th, 2007

 今日は、モーターの自動ON,OFFができるようになりました。それだけです。モーター制御だけにFIFOとタイマーを用意してみました。

 次の目標は、コマンド08「割り込み状態の取得」かなぁと思うのですが、どう取得していいものやら、検討もつきません。

 advance/FDCのほかに資料を探してみても、さっぱり見つからず……。こうなったら、OSASKのFDCドライバのソース(ASKAで書かれていた)を読むしかないのかぁ。

 壁は高いぞFDC……。

BIOSを使わないでディスクアクセスするぞ!(FDC)その1

月曜日, 1月 8th, 2007

 Ver.0.1.04をリリースして一区切りできたので、FDC実装に挑戦します!

 advance/FDCのページはまだ書きかけなので、IRCで質問しながら、カンで進めています。今日は、右Shiftキーでモーターを回転させて、F12キーでシークさせて、右Ctrlキーでモーターを停止させるところまで作りました。

 FDC開発で注意すべき点は、色々あった気がするけど、モーターの寿命について。急激にON/OFFを繰り返すとモーターに大ダメージ!だそうです。ふむふむ。

 今日つまづいた所は主に、タスクを作るところ、割り込みの許可設定!しばらくいじっていないところは忘れちゃいますね……。タスクの作り方はコンソールタスクを作るところを参考にするといいです。割り込みの許可設定は、bootpack.cのHariMainの中にある「io_out8(PIC0_IMR, 0xd8

BIOSを使わないで時刻を取得するぞ!(RTC)

月曜日, 1月 1st, 2007

 新年明けましておめでとうございます!今年もOSAkkieをよろしくお願い申し上げます。

 さて、新年早々、時刻取得関数を実装しました。(ズッコケた以外は)超カンタンでした!タスクバーなどのような、時計を表示する場所が無いので、ひとまずtimeコマンドで時刻が表示されるようにしてみましたが、将来的にはナオミさんスタートメニュー内に表示されるようになる予定です。

時刻取得対応&最小化中ウィンドウ2コ