From c16e0677df53fee275681a80ed7ea225517efa64 Mon Sep 17 00:00:00 2001 From: nino-porcino Date: Fri, 11 Feb 2022 12:50:28 +0100 Subject: [PATCH] improve DIR, implement DEL --- demos/sdcard/apple1_sdcard/apple1_sdcard.ino | 97 +++++++++++++++++--- demos/sdcard/cmd_del.h | 12 +++ demos/sdcard/console.h | 13 ++- 3 files changed, 107 insertions(+), 15 deletions(-) create mode 100644 demos/sdcard/cmd_del.h diff --git a/demos/sdcard/apple1_sdcard/apple1_sdcard.ino b/demos/sdcard/apple1_sdcard/apple1_sdcard.ino index 522ae84..8b69a00 100644 --- a/demos/sdcard/apple1_sdcard/apple1_sdcard.ino +++ b/demos/sdcard/apple1_sdcard/apple1_sdcard.ino @@ -1,4 +1,3 @@ - #include #include #include "SdFat.h" @@ -196,9 +195,10 @@ void setup() { } } -const int CMD_READ = 0; -const int CMD_WRITE = 1; -const int CMD_DIR = 2; +const int CMD_READ = 0; +const int CMD_WRITE = 1; +const int CMD_DIR = 2; +const int CMD_DEL = 11; const int ERR_RESPONSE = 255; const int OK_RESPONSE = 0; @@ -306,7 +306,7 @@ void comando_dir() { Serial.println(F("command DIR ended")); } -void print_dir_entry(File dir, int what) { +void print_dir_entry(File dir, int list_files) { while (true) { File entry = dir.openNextFile(); @@ -318,20 +318,24 @@ void print_dir_entry(File dir, int what) { // send file size or directory entry.getName(filename, 64); - if((what == 0 && entry.isDirectory()) || (what == 1 && !entry.isDirectory())) { + if((list_files == 0 && entry.isDirectory()) || (list_files == 1 && !entry.isDirectory())) { if(entry.isDirectory()) { sprintf(tmp, "(DIR) %s\r", filename); + print_string_to_cpu(tmp); + Serial.println(tmp); } else { - sprintf(tmp, "%5d %s\r", entry.size(), filename); + // BUG the following line does not work + // sprintf(tmp, "%5d %s", entry.size(), filename); + // use this instead + sprintf(tmp, "%5d ", entry.size()); + print_string_to_cpu(tmp); + Serial.print(tmp); + print_string_to_cpu(filename); + send_byte_to_cpu('\r'); + Serial.println(filename); } - for(int t=0;t