From 470f4937fd77316a0df7b0c861d024854dfb30c5 Mon Sep 17 00:00:00 2001 From: Ulf Wohlers Date: Sat, 29 Mar 2003 17:13:58 +0000 Subject: [PATCH] Added rescan command (clear drive cache) Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@835 --- src/dos/dos_programs.cpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/dos/dos_programs.cpp b/src/dos/dos_programs.cpp index 23ae5bb7..92fa71b2 100644 --- a/src/dos/dos_programs.cpp +++ b/src/dos/dos_programs.cpp @@ -252,6 +252,29 @@ static void LOADFIX_ProgramStart(Program * * make) { *make=new LOADFIX; } +// RESCAN + +class RESCAN : public Program { +public: + void Run(void); +}; + +void RESCAN::Run(void) +{ + // Get current drive + Bit8u drive = DOS_GetDefaultDrive(); + if (Drives[drive]) { + Drives[drive]->EmptyCache(); + WriteOut(MSG_Get("RESCAN_SUCCESS")); + } +}; + +static void RESCAN_ProgramStart(Program * * make) { + *make=new RESCAN; +} + + + void DOS_SetupPrograms(void) { /*Add Messages */ MSG_Add("PROGRAM_MOUNT_STATUS_2","Drive %c is mounted as %s\n"); @@ -278,9 +301,11 @@ void DOS_SetupPrograms(void) { MSG_Add("MSCDEX_LIMITED_SUPPORT","MSCDEX: Mounted subdirectory: limited support.\n"); MSG_Add("MSCDEX_UNKNOWN_ERROR","MSCDEX: Failure: Unknown error.\n"); + MSG_Add("RESCAN_SUCCESS","Drive cache cleared.\n"); + /*regular setup*/ PROGRAMS_MakeFile("MOUNT.COM",MOUNT_ProgramStart); PROGRAMS_MakeFile("MEM.COM",MEM_ProgramStart); PROGRAMS_MakeFile("LOADFIX.COM",LOADFIX_ProgramStart); - + PROGRAMS_MakeFile("RESCAN.COM",RESCAN_ProgramStart); }