ザビタン開発日記
2009
| 01
10月 22 (月曜日) 2007 | ||
22:52
|
FDアクセス:FIFOがうまくいかん
|
|
FDCにコマンドを送る場合、「待ち」がある。
で、万が一、その「待ち」があまりにも長いなんて場合はエラー としてブレイクしようと考えた。そんなわけでこんなコードを書いたんだけど、
どうもFIFOがうまくいってないらしい・・・ 散々悩まされた(タイマーの不具合かと思い)んだけど、もっと 根本で、このFIFOにデータをput(fifo32_putで)しただけで 固まってしまうことがわかった。(やっとこさ・・・) うううううううん! なんだろう? |
||
19:54
|
FDアクセス:時間待ち
|
|
うーーーん・・・困った・・・
コマンドの発行などで「待ち」が必要なんだよなぁ。 (待ちとは言うけど、逆に言えばあるコマンドが何秒以上返事がない場合はエラーにするとかも必要になる) 今はりぼてに搭載されているタイマーって、FIFOにタイムアウトを 発行する仕組みだから、コード内(たとえばこんなの)
で、もし永遠にこれが帰ってこないようならブレイクしないと いけないよね? こういう場合、どうしたらいいんだろう。 まさかforでカウントするなんて乱暴なことできないしなぁ・・・ システムの現在時刻を取得して・・・・ うーーーん。これしかないのかなぁ。なんかもっとスマートで いい方法があるような・・・ ・・・って! まったまった!!! 勘違いかも??? FIFOって別にタスク専用じゃねーじゃん!! ・・・ってことは・・・・ |
||
19:40
|
FDアクセス:エラー処理
|
|
ベタ〜っとFDD読み込みのコードを書いて実験。
ほぼ、とにもかくにも、OKという感じになってきたので これを関数にまとめ・分類し始めた。 ・・・うーん。でもこれ、複雑だなぁ・・・ もしミスがあった場合、これじゃどこに問題があるのかわからなくなっちゃいそう。 そこで、エラーコードを返すようにすることにした。 で、 そのエラーコードだけど、最初にちゃんと決めておかないとまずそうだね・・・ |
||
12:14
|
FDアクセス:論理to物理
|
|
えーーっと・・・
論理セクターを物理セクターに変換するのってどうするんだっけ・・・ たしか、ケツから割り算してあまりで出していくはず・・・ あーー! 思い出したぁ!!!! たしかこれ、前にKタンに教えてもらったんだ! 答えはn進数変換だ!(割り算二回でOKだーーー!)(^^ ・・・あ”・・・ C言語の場合は2回ってわけにはいかないのか・・・ orz |
||
10:43
|
FDアクセス:BPE解析
|
|
0x7C00に読み込んだのは正解のようですぞ!?
順調にBPEの取得&解析完成〜。 いよいよ、これら情報を元にアクセス。ファイル読み取りまでいけるか!??? リビジョン27
|
||
00:13
|
FDアクセス:DMA候補場所
|
|
ここでメモリマップを試作中・・・
でね? セクターを読む場所を、IPLが読み込まれる位置(0x00007C00)にしてみたらどうかってぇ〜思ったのよ。 ここなら確実に「もう使わない。もう使ってない」といえるうえに、 ちょうど512だしね。 ここに読むようにDMAに指定して、読み終わったらタスク内に設けた 変数に転送させると! こんなんで どっすか? げっげぇ〜ろぉ〜♪ |
||
(1)  |
PopnupBlog V3 Denali created by Bluemoon inc. |