summaryrefslogtreecommitdiff
path: root/elksemu
diff options
context:
space:
mode:
authorRobert de Bath <rdebath@poboxes.com>1997-05-09 19:36:29 +0200
committerLubomir Rintel <lkundrak@v3.sk>2013-10-23 23:39:48 +0200
commite63c244cb22bf48ca1d2695784a072269d19ea96 (patch)
tree45b9018259f43db629b27395783cf48e55a85eee /elksemu
parent4c36e9a0c125ccfff37aa440dab2cf58c4152fff (diff)
downloaddev86-e63c244cb22bf48ca1d2695784a072269d19ea96.tar.gz
Import Dev86src-0.12.0.tar.gzv0.12.0
Diffstat (limited to 'elksemu')
-rw-r--r--elksemu/Makefile3
-rw-r--r--elksemu/elks.c2
-rw-r--r--elksemu/elks_sys.c11
3 files changed, 14 insertions, 2 deletions
diff --git a/elksemu/Makefile b/elksemu/Makefile
index 5964353..2de8673 100644
--- a/elksemu/Makefile
+++ b/elksemu/Makefile
@@ -10,6 +10,9 @@ else
CFLAGS=-O2 -fno-strength-reduce -Wall -idirafter . $(DEFS)
endif
+# Turn on elkemu's strace like facility.
+# DEFS=-DDEBUG
+
# For gcc making a.out with a basically ELF compiler
# CFLAGS=-O2 -fno-strength-reduce -b i486-linuxaout -N -s -static
diff --git a/elksemu/elks.c b/elksemu/elks.c
index 2c58f8e..c31e94f 100644
--- a/elksemu/elks.c
+++ b/elksemu/elks.c
@@ -234,7 +234,7 @@ void main(int argc, char *argv[], char *envp[])
setregid(rgid, egid);
setreuid(ruid, euid);
- dbprintf(("ELKSEMU 0.0.6 Alpha\n"));
+ dbprintf(("ELKSEMU 0.12.0\n"));
elks_init();
/* The Linux vm will deal with not allocating the unused pages */
diff --git a/elksemu/elks_sys.c b/elksemu/elks_sys.c
index 74afbf9..4cc4368 100644
--- a/elksemu/elks_sys.c
+++ b/elksemu/elks_sys.c
@@ -110,13 +110,22 @@ static int elks_read(int bx,int cx,int dx,int di,int si)
bx,cx,dx));
if( bx >= 10000 && bx < 10000+DIRCOUNT)
return elks_readdir(bx, cx, dx);
+ if( dx < 0 || dx > 1024 ) dx = 1024;
return read(bx, ELKS_PTR(void, cx), dx);
}
#define sys_write elks_write
static int elks_write(int bx,int cx,int dx,int di,int si)
{
- dbprintf(("write(%d, %d, %d)\n",bx,cx,dx));
+ if( dx > 1024 || dx < 0 )
+ {
+ dx = 1024;
+ dbprintf(("write(%d, %d, >%d)\n",bx,cx,dx));
+ }
+ else
+ {
+ dbprintf(("write(%d, %d, %d)\n",bx,cx,dx));
+ }
return write(bx,ELKS_PTR(void, cx),dx);
}