ザビタン開発日記
2009
| 01
10月 30 (火曜日) 2007 | ||
13:34
|
FDアクセス:実機はアカン?
|
|
ちょっと変化がありました。
実機Aは相変わらずなんですが、実機Bで初めて「ぶっ!」っと音が出ました。 ・・・実はオイラはこれまでシークやリセットは搭載していなかったんです。 もしかしてこれかなぁと思い、シークを搭載してみたら変化が。 読み取りコマンド前にシークやリセットを挟み込んでさらに実験・・・ むむむ・・・ 実機Aではあいかわらずだが、実機Bではリザルトが0x40、つまりコマンドの 異常終了になるようになった。 これははたして進歩だろうか・・・orz・・・ |
||
09:41
|
FDアクセス:実機はアカン?
|
|
整理する。
オイラが書いたコードqemu: リザルトは0x00 実機A(ダイナブックGT475):0x80 実機B(自作機・Celelon700):0xc0 VMWareイメージFD:0x00 VMWare実FD:0x00 コマンド間違い意図的にコマンドを間違える。S(セクタ)をありえない数値(99)にしてみる qemu: 0x40 実機A(ダイナブックGT475):0x80 実機B(自作機・Celelon700):0xc0 VMWareイメージFD:回復不能なエラーで落ちた VMWare実FD:回復不能なエラーで落ちた コマンド中抜き意図的にコマンドのひとつを抜く。じゃ、02の送信を抜く qemu: 0x00 実機A(ダイナブックGT475):0x80 実機B(自作機・Celelon700):0xc0 VMWareイメージFD:0xc0 VMWare実FD:0xc0 コマンド中抜き2意図的にコマンドを抜く。02、さらに12も抜いてみるく qemu: 0x00 実機A(ダイナブックGT475):0x80 実機B(自作機・Celelon700):0xc0 VMWareイメージFD:0x00 VMWare実FD:0x00 DMAを開けないDMAを開ける関数を無効化 qemu: 0xc0 実機A(ダイナブックGT475):0x80 実機B(自作機・Celelon700):0xc0 VMWareイメージFD:回復不能なエラーで落ちた VMWare実FD:回復不能なエラーで落ちた DMAを開け、コマンドを送信しないDMAを開ける関数を無効化 qemu: 0x00 実機A(ダイナブックGT475):0x00 実機B(自作機・Celelon700):0x00 VMWareイメージFD:回復不能なエラーで落ちた VMWare実FD:回復不能なエラーで落ちた DMAも開けず、コマンドも送信しないDMAを開ける関数を無効化し、リードコマンドも送信しない qemu: 0x00 実機A(ダイナブックGT475):0x00 実機B(自作機・Celelon700):0x00 VMWareイメージFD:回復不能なエラーで落ちた VMWare実FD:回復不能なエラーで落ちた 分析してみる・・・(ノД`)・・・
新たな疑問。 この実験では実機の場合、なにも送信しなければ0x00である。 ・・・っということは、0x08なり0x0cなりになるのはどの時点か?
リビジョン52
|
||
10月 29 (月曜日) 2007 | ||
12:35
|
FDアクセス:実機はアカン
|
|
はあぁ〜。
土日は忙しかったので今日はお休み〜 実機で問題が出る所は特定できた。コマンドが間違っているというエラーが帰ってきている。 ・・・でもこれ、ほんとうにコマンドだけの話かな? いくつかワザと間違っている状況を作ってリザルトコードを検証してみよう・・・ DMAを開けないで実行うーむ・・・。エミュだと0xC0(AT互換機では発生しないエラー)が帰ってきた。 実機だと、同じコードでも0x80(コマンドが間違っているエラー)のまんまだなぁ。 コマンドが足りないコマンドが足りない(わざと一個送らない)状態だと・・・ 最後の0xFFを送らない状態だと、 あれえぇ? エミュでは正常終了? 実機では0x80だなぁ???? これはどういうことなんだろう??? うはぁ! VMWareでイメージで実行すると0xC0? 実FDだと同じくかぁ・・・ じゃ、真ん中当たりのコマンド(じゃあ02)の送信をしないでやると・・・ エミュでは0x00、 実機では0x80、 VMWareイメージだと0xC0、 VMWare実FDだと0xC0。 うむむむむ〜?? ダメダだめだ! ちょっと整理・・・ |
||
10月 27 (土曜日) 2007 | ||
00:03
|
FDアクセス:実機はアカン?
|
|
むむむ〜!!
原因はわかった。(いやわかっていないのだが) 読み込みコマンド([E6] [H<<2] [C] [H] [S] [02] [12] [01] [FF])を 発行した後、なぜかINTが帰ってこないのだ・・・ どういうわけなんだろう? コマンドに問題が? それとも??? うーん。リザルトを取ってみようかな。 ・・・・・・え” 0x80 ?? 「 コマンドそのものが間違っている」場合の エラーじゃない?これ???? おっかしいぃなぁぁぁぁぁ。エミュでは問題ないはずなのに。 見直しても問題点はみつからない。なんじゃろう?? これ?? |
||
10月 26 (金曜日) 2007 | ||
10:29
|
実機だとアカン!?
|
|
朝っぱらから古いFDを引っ張り出して実験〜!
結果は・・・orz・・・うーん。オイラの現在もマシン(ペン4)だとそもそも追加したタスク(時計とテストタスク)が動かない。 古いノート(486)では動いているけど、FDアクセスコマンドを発行すると リセットがかかっちゃう。 うええぇぇぇん! 問題だ〜 ‾‾‾‾‾‾‾‾‾∨‾‾‾‾‾‾‾‾‾‾‾ Λ_Λ ( ´Д⊂ヽ ⊂ ノ 人 Y し (_) ・・・・しばし実験・・・・ まず、タスクが動かない問題は解決しますた!!ヽ( ´Д`)ノ ここ。バージョン6のパッチを当て込むことで動作OKです。 で、問題のFDD。 486だと相変わらずリセットしちゃう。 ペン4だと、リセットは起こらない。また、モーターの回転&ストップもうまくいっている模様。 しかし、セクターを読んでくれないようです。 さーて。どこが悪いんだろう。検証コードを埋め込んで特定しないとなぁ。 ・・・・あ” いっけねぇ! もう仕事じゃん! いってきま〜〜〜〜す!! リビジョン50
|
||
10月 25 (木曜日) 2007 | ||
22:51
|
FDアクセス:モーター晴々!!
|
|
やっとこさモーター制御のコードが書けた!!!
・・・さーて! ほいだば、いよいよ実機でチャレンジかな?? あ” ・・・もう健康なフロッピーがないんだった・・・orz よーし! パパ、明日はダイソーだぞ〜??? リビジョン49
|
||
22:40
|
FDアクセス:番外
|
|
どうも構造体のやり取りがうまくいかないと思ったら大ポカしてた!
構造体を渡して、渡した先でも内容をいじったりする場合はアドレスとして渡し、ポインタで受け取るのね・・・ 間違った例
たぶん?正しい例
リビジョン48
|
||
17:28
|
FDアクセス:モーターの憂鬱2
|
|
うーむ・・・
連続してセクタを読めるようになったからこそだけど、 モーター始動時の待ちを厳密に管理しないと・・・ (現在はどこかヘタ打ってるらしくて、セクタごとに待ちが入る) |
||
10月 24 (水曜日) 2007 | ||
21:45
|
FDアクセス:ファイル名取得に成功!
|
|
14:26
|
FDアクセス:セクターリードを関数化できた!
|
|
前回と同じ動作を
こんなことして単独関数にできた! これを使っていよいよFAT読み込み&解析開始!! ・・・ん? まてよ?? ディスク情報はかならずセクタ0なんだし、これをそのまんま論理セクタ対応にしちゃおうかな??? リビジョン41 |
||
2 3 4 5 6 7 8 9 10 11 (12) 13 14 15 16 17 »  |
PopnupBlog V3 Denali created by Bluemoon inc. |