超ご無沙汰してます。引越し当初からだいぶ落ち着いたのと、夏のボーナスでワイド液晶ディスプレイを購入して作業効率のいい環境を手に入れたので、そろそろOSC2007 Tokyo/Fallに向けてFDC実装に再挑戦したいと思います。
しかし、ただ思うのではポシャるので、会社の先輩のアドバイスで、完成したときのご褒美を決めました。「VOC@LOID 初音ミク」!!!www
さて、前回の開発からしばらくたっているので、FDCのコードどころかOSAkkieのコードすら忘れ気味ですが、前回の失敗点をチェックしておきます。
・メモリ関係が非常に怪しかった
・設計が破綻していた(?)
原因はFDC以外のところに/(^o^)\
まぁ今回は前回の行き当たりばったりソースを眺めながら、それっぽく書いてみます。
Archive for the ‘Advance’ Category
FDC実装リトライ(その1)
月曜日, 9月 17th, 2007BIOSを使わないでディスクアクセスするぞ!(FDC)その7
金曜日, 2月 23rd, 2007BIOSを使わないでディスクアクセスするぞ!(FDC)その7
木曜日, 2月 1st, 2007OSAkkieの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, 2007Ver.0.1.04をリリースして一区切りできたので、FDC実装に挑戦します!
advance/FDCのページはまだ書きかけなので、IRCで質問しながら、カンで進めています。今日は、右Shiftキーでモーターを回転させて、F12キーでシークさせて、右Ctrlキーでモーターを停止させるところまで作りました。
FDC開発で注意すべき点は、色々あった気がするけど、モーターの寿命について。急激にON/OFFを繰り返すとモーターに大ダメージ!だそうです。ふむふむ。
今日つまづいた所は主に、タスクを作るところ、割り込みの許可設定!しばらくいじっていないところは忘れちゃいますね……。タスクの作り方はコンソールタスクを作るところを参考にするといいです。割り込みの許可設定は、bootpack.cのHariMainの中にある「io_out8(PIC0_IMR, 0xd8