diff --git a/docs/history.txt b/docs/history.txt index 9530274..dde2afb 100644 --- a/docs/history.txt +++ b/docs/history.txt @@ -1,3 +1,9 @@ ++ Changes Martin + * fixed SYS for non-Watcom compilers ++ Changes Bart + * FCB and network redirector fixes + (FCBOpen was broken; it appears that clearing CF before calling + the redirector is safer then setting CF) 2002 Feb 9 - Build 2026 -------- Bart Oldeman (bart@dosemu.org) + Changes Tom diff --git a/kernel/dosfns.c b/kernel/dosfns.c index 0ea550d..0109827 100644 --- a/kernel/dosfns.c +++ b/kernel/dosfns.c @@ -861,7 +861,7 @@ COUNT DosOpenSft(BYTE * fname, COUNT mode) fmemset(sftp, 0, sizeof(sft)); sftp->sft_psp = cu_psp; sftp->sft_mode = mode; - OpenMode = (BYTE) mode; + mode = OpenMode = (BYTE) mode; /* check for a device */ dhp = IsDevice(fname); diff --git a/kernel/fcbfns.c b/kernel/fcbfns.c index 0cca2eb..940669b 100644 --- a/kernel/fcbfns.c +++ b/kernel/fcbfns.c @@ -488,7 +488,7 @@ BOOL FcbOpenCreate(xfcb FAR * lpXfcb, BOOL Create) lpFcb->fcb_rndm = 0; lpFcb->fcb_recsiz = 0; /* true for devices */ - if (sftp->sft_flags & SFT_FDEVICE) /* check for a device */ + if (!(sftp->sft_flags & SFT_FDEVICE)) /* check for a device */ { lpFcb->fcb_drive = FcbDrive; lpFcb->fcb_recsiz = 128; diff --git a/kernel/int2f.asm b/kernel/int2f.asm index 5f0cea4..fac1a58 100644 --- a/kernel/int2f.asm +++ b/kernel/int2f.asm @@ -291,7 +291,7 @@ call_int2f: int2f_call_push: push word [bp+8] ; very fakey, HaHa ;) int2f_call: - stc ; set to fail + clc ; set to succeed int 2fh pop bx jc no_clear_ax @@ -315,7 +315,7 @@ lseekeof: jmp int2f_call_push remote_getfattr: - stc ; set to fail + clc ; set to succeed int 2fh jc no_clear_ax jmp short no_neg_ax @@ -334,7 +334,7 @@ print_doredir: mov ds, [bp+18] push word [bp+16] ; very fakey, HaHa ;) - stc ; set to fail + clc ; set to succeed int 2fh pop bx pop ds @@ -342,7 +342,7 @@ print_doredir: jmp short clear_ax remote_getfree: - stc ; set to fail + clc ; set to succeed int 2fh jc no_clear_ax mov di,[bp+8] @@ -360,14 +360,14 @@ remote_printredir: qremote_fn: lds si,[bp+4] les di,[bp+8] - stc + clc int 2fh mov ax,0xffff jc no_neg_ax jmp short clear_ax remote_rw: mov cx, [bp+8] - stc ; set to fail + clc ; set to succeed int 2fh jc int2f_carry xor ax, ax diff --git a/sys/sys.c b/sys/sys.c index be66869..6aef703 100644 --- a/sys/sys.c +++ b/sys/sys.c @@ -380,7 +380,7 @@ int2526readwrite(int DosDrive, void *diskReadPacket, unsigned intno) union REGS regs; regs.h.al = (BYTE) DosDrive; - regs.x.bx = (short)&diskReadPacket; + regs.x.bx = (short)diskReadPacket; regs.x.cx = 0xffff; int86(intno, ®s, ®s); @@ -395,7 +395,7 @@ fat32readwrite(int DosDrive, void *diskReadPacket, unsigned intno) regs.x.ax = 0x7305; regs.h.dl = DosDrive + 1; - regs.x.bx = (short)&diskReadPacket; + regs.x.bx = (short)diskReadPacket; regs.x.cx = 0xffff; regs.x.si = intno - 0x25; int86(0x21, ®s, ®s);