Code: Select all
//sligfhtly condensed
#define MAIN_STAT 0x3F4
unsigned char FDD_ReadyGet(){
unsigned int delay;
delay=timer_ticks+2000; //2second timeout
while(delay>timer_ticks){
if(inportb(MAIN_STAT)&0x80!=0){
if(inportb(MAIN_STAT)&0x40!=0){
return 1;
}else{
return 2;
}
}
}
return 0;
}
unsigned char FDD_ReadySend(){
unsigned int delay;
delay=timer_ticks+2000; //2second timeout
while(delay>timer_ticks){
if(inportb(MAIN_STAT)&0x80!=0){
if(inportb(MAIN_STAT)&0x40==0){
return 1;
}else{
return 2;}
}
}
return 0;
}
edit:
ok I figured out the problem(I think)
you need ()'s for if stuff
this is my final code
Code: Select all
unsigned char FDD_ReadyGet(){
unsigned int delay;
delay=timer_ticks+2000; //2second timeout
while(delay>timer_ticks){
if(inportb(MAIN_STAT)&0xC0==0xC0){return 1;}
}
em_printf("c");
return 0;
}
unsigned char FDD_ReadySend(){
unsigned int delay;
delay=timer_ticks+2000; //2second timeout
while(delay>timer_ticks){
if((inportb(MAIN_STAT)&0xC0)==0x80){return 1;}
}
em_printf("c");
return 0;
}