From 2394f842ce1c090c3648dbdb4f2f29859648c6f5 Mon Sep 17 00:00:00 2001 From: lpproj Date: Tue, 22 Sep 2015 12:02:57 +0900 Subject: [PATCH] Fix incompletion on loading huge (more than 65280 bytes) binary device driver --- kernel/task.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/task.c b/kernel/task.c index 2cd3fd2..deda778 100644 --- a/kernel/task.c +++ b/kernel/task.c @@ -469,7 +469,8 @@ COUNT DosComLoader(BYTE FAR * namep, exec_blk * exp, COUNT mode, COUNT fd) /* rewind to start */ SftSeek(fd, 0, 0); /* read everything, but at most 64K - sizeof(PSP) */ - DosRWSft(fd, 0xff00, sp, XFR_READ); + /* lpproj: some device drivers (not exe) are larger than 0xff00bytes... */ + DosRWSft(fd, (mode == OVERLAY) ? 0xfffeU : 0xff00U, sp, XFR_READ); DosCloseSft(fd, FALSE); }