aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Serpell <daniel.serpell@gmail.com>2020-01-03 23:20:43 -0300
committerDaniel Serpell <daniel.serpell@gmail.com>2020-01-03 23:20:43 -0300
commit5be05a753388fcf7fa1d57b844b6c88d761e2a7f (patch)
tree9ddaf9c899693710922ac53e0dea93bc6b8a7465
parenta9044bbc34d0948b1dead4a259e8a2e5df1737e2 (diff)
downloademu2-5be05a753388fcf7fa1d57b844b6c88d761e2a7f.tar.gz
Fixes passing parameters to spawned programs with getstr.
-rw-r--r--src/dos.c4
-rw-r--r--src/emu.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/dos.c b/src/dos.c
index b5dfdd9..3740d17 100644
--- a/src/dos.c
+++ b/src/dos.c
@@ -1558,8 +1558,8 @@ void int21()
int pb = cpuGetAddrES(cpuGetBX());
int cmd_addr = cpuGetAddress(get16(pb + 4), get16(pb + 2));
int clen = memory[cmd_addr];
- char *cmdline = getstr(cmd_addr, clen);
- debug(debug_dos, "\texec command line: '%s %.*s'\n", fname, clen, cmdline);
+ char *cmdline = getstr(cmd_addr + 1, clen);
+ debug(debug_dos, "\texec command line: '%s %.*s'\n", prgname, clen, cmdline);
char *env = "\0\0";
if(get16(pb) != 0)
{
diff --git a/src/emu.h b/src/emu.h
index 6300082..5b5bc80 100644
--- a/src/emu.h
+++ b/src/emu.h
@@ -130,7 +130,7 @@ static inline uint8_t *getptr(uint32_t addr, unsigned size)
static inline char *getstr(uint32_t addr, unsigned size)
{
static int cbuf = 0;
- static char buf[256][4];
+ static char buf[4][256];
cbuf = (cbuf + 1) & 3;
memset(buf[cbuf], 0, 256);
Un proyecto texto-plano.xyz