apple1-videocard-lib/demos/sdcard/cmd_dir.h

57 lines
1.4 KiB
C
Raw Permalink Normal View History

2022-03-21 13:15:53 +00:00
void comando_dir(byte cmd) {
// send DIR command
2022-02-11 13:48:53 +00:00
send_byte_to_MCU(cmd);
2022-02-07 07:50:35 +00:00
if(TIMEOUT) return;
2022-02-13 17:50:32 +00:00
// send filename
send_string_to_MCU(filename);
if(TIMEOUT) return;
2022-03-21 13:15:53 +00:00
// get MCU response
byte data = receive_byte_from_MCU();
if(data == ERR_RESPONSE) {
print_string_response();
return;
}
byte paused = 0;
while(1) {
if(!paused) {
// ask for a text line
send_byte_to_MCU(OK_RESPONSE);
if(TIMEOUT) break;
// get MCU response byte
data = receive_byte_from_MCU();
if(TIMEOUT) break;
if(data == ERR_RESPONSE) break; // no more lines of text
// OK_RESPONSE, MCU will send a line of text terminated by '\r'
while(1) {
data = receive_byte_from_MCU();
if(TIMEOUT) return;
woz_putc(data);
if(data == '\r') break; // line terminator
data = apple1_readkey();
if(data==27) paused = 27;
else if(data!=0) paused = 1;
}
}
else {
if(paused==27) {
send_byte_to_MCU(ERR_RESPONSE);
break;
}
else {
send_byte_to_MCU(WAIT_RESPONSE);
data = apple1_readkey();
if(data == 13) paused = 0;
else if(data == 27) paused = 27;
}
}
}
2022-02-07 07:50:35 +00:00
}