mirror of
https://github.com/nippur72/apple1-videocard-lib.git
synced 2024-06-08 13:29:33 +00:00
54 lines
1.0 KiB
C
54 lines
1.0 KiB
C
|
void comando_dump(char *filename, word start, word end) {
|
||
|
|
||
|
// send command byte
|
||
|
send_byte_to_MCU(CMD_READ);
|
||
|
if(TIMEOUT) return;
|
||
|
|
||
|
// send filename
|
||
|
send_string_to_MCU(filename);
|
||
|
if(TIMEOUT) return;
|
||
|
|
||
|
// response
|
||
|
byte response = receive_byte_from_MCU();
|
||
|
if(TIMEOUT) return;
|
||
|
|
||
|
if(response == ERR_RESPONSE) {
|
||
|
// error with file, print message
|
||
|
print_string_response();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
// get file length
|
||
|
word len = receive_word_from_mcu();
|
||
|
if(TIMEOUT) return;
|
||
|
|
||
|
// 1234567890123456789012345678901234567890
|
||
|
// 0000: 00 00 00 00 00 00 00 00
|
||
|
|
||
|
// get file bytes
|
||
|
byte row = 0;
|
||
|
for(word t=0;t!=len;t++) {
|
||
|
byte data = receive_byte_from_MCU();
|
||
|
if(TIMEOUT) return;
|
||
|
|
||
|
if(!(t>=start && t<=end)) continue;
|
||
|
|
||
|
if(row == 0) {
|
||
|
woz_putc('\r');
|
||
|
woz_print_hexword(t);
|
||
|
woz_puts(": ");
|
||
|
}
|
||
|
|
||
|
woz_print_hex(data);
|
||
|
woz_putc(' ');
|
||
|
|
||
|
row++;
|
||
|
row &= 7;
|
||
|
|
||
|
if(apple1_readkey()) {
|
||
|
woz_puts("*BRK*\r");
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|