Paul Edwards
2021-04-23 11:42:29 UTC
Hi.
Since 1994 I have been working on a project to
create a public domain version of MSDOS, called
PDOS. There is an 8086 version and an 80386
version which can be found here:
http://pdos.sourceforge.net/
I took some shortcuts along the way to get it to
work at all, and one of those has finally bitten me.
I'm getting incorrect results from this:
https://sourceforge.net/p/pdos/gitcode/ci/master/tree/pdpclib/dossupa.asm
; multiply cx:bx by dx:ax, result in dx:ax
public __I4M
__I4M:
public __U4M
__U4M:
public f_lxmul@
f_lxmul@ proc
push bp
mov bp,sp
push cx
push ax
mul cx
mov cx, ax
pop ax
mul bx
add dx, cx
pop cx
pop bp
ret
f_lxmul@ endp
Does anyone have some public domain (explicit notice)
8086 (not 80386) code they are willing to share to do
this? Not LGPL. Not BSD. Public domain. The entire
codebase of tens of thousands of lines of code is
public domain.
Also let me know if you wish to be acknowledged in
the source code and/or code check-in. Some people
prefer to remain anonymous.
There are other routines in there that may not work
properly either, but I haven't come across them yet.
Thanks. Paul.
Since 1994 I have been working on a project to
create a public domain version of MSDOS, called
PDOS. There is an 8086 version and an 80386
version which can be found here:
http://pdos.sourceforge.net/
I took some shortcuts along the way to get it to
work at all, and one of those has finally bitten me.
I'm getting incorrect results from this:
https://sourceforge.net/p/pdos/gitcode/ci/master/tree/pdpclib/dossupa.asm
; multiply cx:bx by dx:ax, result in dx:ax
public __I4M
__I4M:
public __U4M
__U4M:
public f_lxmul@
f_lxmul@ proc
push bp
mov bp,sp
push cx
push ax
mul cx
mov cx, ax
pop ax
mul bx
add dx, cx
pop cx
pop bp
ret
f_lxmul@ endp
Does anyone have some public domain (explicit notice)
8086 (not 80386) code they are willing to share to do
this? Not LGPL. Not BSD. Public domain. The entire
codebase of tens of thousands of lines of code is
public domain.
Also let me know if you wish to be acknowledged in
the source code and/or code check-in. Some people
prefer to remain anonymous.
There are other routines in there that may not work
properly either, but I haven't come across them yet.
Thanks. Paul.