From 52fab988e3997208b2d0ce96d3c657f6cfee337c Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Wed, 1 May 2019 18:30:34 -0700 Subject: [PATCH] DISK: Handle Windows RAW disk reads at EOF as success reading 0's This was the root cause of the problem reported in #696 --- sim_disk.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sim_disk.c b/sim_disk.c index 131f0047..069e218b 100644 --- a/sim_disk.c +++ b/sim_disk.c @@ -2583,6 +2583,12 @@ if (ReadFile ((HANDLE)(uptr->fileref), buf, sects * ctx->sector_size, (LPDWORD)s *sectsread /= ctx->sector_size; return SCPE_OK; } +if (ERROR_HANDLE_EOF == GetLastError ()) { /* Return 0's for reads past EOF */ + memset (buf, 0, sects * ctx->sector_size); + if (sectsread) + *sectsread = sects; + return SCPE_OK; + } _set_errno_from_status (GetLastError ()); return SCPE_IOERR; }