ザビタン開発日記
2009 | 01
2008 | 01 | 02 | 06 | 12
2007 | 10 | 11 | 12
10月 30 (火曜日) 2007
17:46
FDアクセス:実機はアカン?
 
まいったなぁ・・・
初心に戻ってと思い、こんなベタなコードを試してみたんだけど


int err1;
char s[40];

sprintf(s, "test=%02d",99);
putfonts8_asc_sht(sheet,8*20,16*3,COL8_008484,COL8_FFFFFF,s,7);

//モーターON
fd_moter(1,&fdtime1);

//コマンド待ち
while(io_in8(0x03f4) & 0x11 != 0x00 ){}

sprintf(s, "Phase=%02d",1);
putfonts8_asc_sht(sheet,8*8,16*3,COL8_008484,COL8_FFFFFF,s,8);

while(io_in8(0x03f4) & 0xC0 != 0x80 ){}
io_out8(0x03f5, 0x07);

sprintf(s, "Phase=%02d",2);
putfonts8_asc_sht(sheet,8*8,16*3,COL8_008484,COL8_FFFFFF,s,8);

while(io_in8(0x03f4) & 0xC0 != 0x80 ){}
io_out8(0x03f5, 0x00);

sprintf(s, "Phase=%02d",3);
putfonts8_asc_sht(sheet,8*8,16*3,COL8_008484,COL8_FFFFFF,s,8);

while(fifo32_status(tfifo) == 0){}

sprintf(s, "Phase=%02d",4);
putfonts8_asc_sht(sheet,8*8,16*3,COL8_008484,COL8_FFFFFF,s,8);

err1 = fifo32_get(tfifo);



sprintf(s, "test=%02d",err1);
putfonts8_asc_sht(sheet,8*20,16*3,COL8_008484,COL8_FFFFFF,s,7);

/*------------------- 1 -------------------------*/
//シーク
while(io_in8(0x03f4) & 0x11 != 0x00 ){}

sprintf(s, "Phase=%02d",11);
putfonts8_asc_sht(sheet,8*8,16*3,COL8_008484,COL8_FFFFFF,s,8);

while(io_in8(0x03f4) & 0xC0 != 0x80 ){}
io_out8(0x03f5, 0x0F);

sprintf(s, "Phase=%02d",12);
putfonts8_asc_sht(sheet,8*8,16*3,COL8_008484,COL8_FFFFFF,s,8);

while(io_in8(0x03f4) & 0xC0 != 0x80 ){}
io_out8(0x03f5, 0x00 << 2);

sprintf(s, "Phase=%02d",13);
putfonts8_asc_sht(sheet,8*8,16*3,COL8_008484,COL8_FFFFFF,s,8);

while(io_in8(0x03f4) & 0xC0 != 0x80 ){}
io_out8(0x03f5, 0x00);

sprintf(s, "Phase=%02d",14);
putfonts8_asc_sht(sheet,8*8,16*3,COL8_008484,COL8_FFFFFF,s,8);

while(fifo32_status(tfifo) == 0){}

sprintf(s, "Phase=%02d",15);
putfonts8_asc_sht(sheet,8*8,16*3,COL8_008484,COL8_FFFFFF,s,8);

err1 = fifo32_get(tfifo);



sprintf(s, "test=%02d",err1);
putfonts8_asc_sht(sheet,8*20,16*3,COL8_008484,COL8_FFFFFF,s,7);

実機A、実機B共に1のところで止まったキリになっちゃう・・・
(もちろんエミュではOKなのだが・・・)
 
●K@Guest -- 10/30 19:30
質問です。コマンド07を送っていますが、これはシリンダゼロへのシークとほぼ同じです。で、コマンド実行が終了するとIRQ06が発生していると思います。そのときに、ただちにコマンド08を発行して、IRQがおきた理由をFDCに問い合わせていますか?問い合わせなければいけません。

30日を過ぎたBlogにはコメントできません。

Referer  (4)
(1) 2 3 4 5 6 7 8 9 10 » 

PopnupBlog V3 Denali created by Bluemoon inc.