diff options
author | Daniel Serpell <daniel.serpell@gmail.com> | 2020-01-03 23:20:43 -0300 |
---|---|---|
committer | Daniel Serpell <daniel.serpell@gmail.com> | 2020-01-03 23:20:43 -0300 |
commit | 5be05a753388fcf7fa1d57b844b6c88d761e2a7f (patch) | |
tree | 9ddaf9c899693710922ac53e0dea93bc6b8a7465 | |
parent | a9044bbc34d0948b1dead4a259e8a2e5df1737e2 (diff) | |
download | emu2-5be05a753388fcf7fa1d57b844b6c88d761e2a7f.tar.gz |
Fixes passing parameters to spawned programs with getstr.
-rw-r--r-- | src/dos.c | 4 | ||||
-rw-r--r-- | src/emu.h | 2 |
2 files changed, 3 insertions, 3 deletions
@@ -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) { @@ -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); |