Re: [Freedos-user] Tinyasm vs. NASM (was: Re: A neat find on /r/asm)

2019-10-26 Thread C. Masloch
On at 2019-10-26 03:09 -0500, Rugxulo wrote:
>> I also worked some on an 8086tiny fork of mine recently. There are
>> several bugfixes there, as well as implementing all 186 instructions, so
>> it might be worth testing. It's at https://github.com/ecm-pushbx/8086tiny/
> 
> I tested all of this under Linux (Xenial Puppy, 64-bit) jump drive.
> 
> It seems you're missing "lmacros3.mac" (not found) for tinyxms, but I
> just ignored that for now: "make no_graphics -k -i" or whatever. (I
> just used a modified version of my old BARE_DOS floppy image.)

Oh yes, that was not intended. I think the included fd.img does have the
compiled tinyxms.sys already, but to build it from source you need to
load all of lmacros[123].mac from https://hg.ulukai.org/ecm/lmacros and
put them in one of the directories included by the NASM run:

> tinyxms.sys: tinyxms.asm
>   nasm -f bin -I ../lmacros/ -I lmacros/ -l tinyxms.lst -o tinyxms.sys
tinyxms.asm

That is, either copy the three macro files to the same directory as
tinyxms.asm, or to an lmacros subdirectory, or to an lmacros
sibling-directory of the 8086tiny directory.

Regards,
ecm


___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] Tinyasm vs. NASM (was: Re: A neat find on /r/asm)

2019-10-26 Thread Rugxulo
Hi, (sorry for delay in testing)

On Tue, Oct 8, 2019 at 10:17 AM C. Masloch  wrote:
>
> On at 2019-10-05 18:49 -0500, Rugxulo wrote:
> > "Unfortunately, nasm doesn't run over 8086/8088 processors,and I
> > couldn't find a compatible assembler!"
> >
> > Strange. I was lightly playing with 8086tinyplus (on Windows)
> > recently, and I noticed that the (in)famous 16-bit NASM build from
> > 2005 of 0.98.39 didn't seem to run properly. (But that could be an
> > emulator bug. It runs fine under QEMU. I know 8086tinyplus can't
> > handle 186+ ENTER/LEAVE properly.)
>
> If the 16-bit NASM uses 186+ instructions, that's a bug (or possibly
> wrong option?) on the part of the compiler.

The default 2005, 16-bit NASM build seems to work correctly under your
(improved) fork of 8086tiny. So indeed, it must've been compiled for
186.

> I also worked some on an 8086tiny fork of mine recently. There are
> several bugfixes there, as well as implementing all 186 instructions, so
> it might be worth testing. It's at https://github.com/ecm-pushbx/8086tiny/

I tested all of this under Linux (Xenial Puppy, 64-bit) jump drive.

It seems you're missing "lmacros3.mac" (not found) for tinyxms, but I
just ignored that for now: "make no_graphics -k -i" or whatever. (I
just used a modified version of my old BARE_DOS floppy image.)

Yeah, it seems to work better (than 8086tinyplus). I did keep around a
186, Oberon-M build of my Befunge-93 interpreter (bef186om.exe) just
for identifying these kinds of bugs (mostly thinking of Fake86 here).
Even that .EXE works here. So that's cool.


___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] Tinyasm vs. NASM (was: Re: A neat find on /r/asm)

2019-10-10 Thread Rugxulo
Hi,

On Tue, Oct 8, 2019 at 10:17 AM C. Masloch  wrote:
>
> On at 2019-10-05 18:49 -0500, Rugxulo wrote:
> > I know 8086tinyplus can't handle 186+ ENTER/LEAVE properly.
>
> If the 16-bit NASM uses 186+ instructions, that's a bug (or possibly
> wrong option?) on the part of the compiler.

They seem to have used different 16-bit compilers over the years (the
internal C runtime copyright is different). Perhaps it was the only
way to fit it into Large model, dunno. But I also think it was a
mistake to include output support beyond "bin" and "obj" (e.g. "as86"
and "win32", who is cross-assembling atop 8086 for those??).

Then again, few people complained nor rebuilt it themselves. Granted,
their included makefiles are less than optimal (either buggy, poorly
written [no offense!], or rely on very specific versions). I'm no
makefile guru (and make utils are all wildly incompatible), but it
takes some serious effort.

> I also worked some on an 8086tiny fork of mine recently. There are
> several bugfixes there, as well as implementing all 186 instructions, so
> it might be worth testing. It's at https://github.com/ecm-pushbx/8086tiny/

Well, I just meant, from previous experience, that Fake86 and 8086tiny
(and 8086tinyplus) both didn't handle ENTER properly. (LEAVE is
simplistic and probably fine.) Oberon-M 1.2 added optional 8086
support, but the more-widespread 1.1 version (Simtel? Garbo?) was 186
only (and did actually use ENTER/LEAVE). Ironically, ENTER/LEAVE are
several times slower on my modern-ish laptop and desktop (dunno why,
microcoded??). Most compilers (e.g. GCC or FPC) avoid them entirely
for various reasons.

I would be surprised if that was the "only" reason. Like I said, NASM
0.97 worked fine in 8086tinyplus (but is less optimal, doesn't
optimize for size and only goes up through MMX). So it's something
introduced after that point. Note that I'm not talking about slow or
even very slow, only actually broken and non-functional binaries. Old
hardware is definitely slow, and there is definitely a point where
software is too slow to be useful. But here I think we just have an
incompatible build. (I did rebuild it myself, but it needs further
testing, even from me. I'll write a different email about that.)


___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] Tinyasm vs. NASM (was: Re: A neat find on /r/asm)

2019-10-08 Thread C. Masloch
On at 2019-10-05 18:49 -0500, Rugxulo wrote:
> "Unfortunately, nasm doesn't run over 8086/8088 processors,and I
> couldn't find a compatible assembler!"
> 
> Strange. I was lightly playing with 8086tinyplus (on Windows)
> recently, and I noticed that the (in)famous 16-bit NASM build from
> 2005 of 0.98.39 didn't seem to run properly. (But that could be an
> emulator bug. It runs fine under QEMU. I know 8086tinyplus can't
> handle 186+ ENTER/LEAVE properly.)

If the 16-bit NASM uses 186+ instructions, that's a bug (or possibly
wrong option?) on the part of the compiler.

I also worked some on an 8086tiny fork of mine recently. There are
several bugfixes there, as well as implementing all 186 instructions, so
it might be worth testing. It's at https://github.com/ecm-pushbx/8086tiny/

> Even other NASM versions had
> issues. (A86 and Wolfware/WASM worked fine, though.) Actually, I think
> I ran my old BARE_DOS floppy and used "call /s", and then at least
> NASM 0.97 worked. I meant to try to recompile NASM 0.98.39 with both
> Turbo C and OpenWatcom (supporting bin only or bin+obj only) and test,
> but I never found the extra time and energy.
> 
> * https://jaybertsoftware.weebly.com/8086-tiny-plus.html
> * 
> https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/devel/asm/nasm/0.98.39/
> 
> Comments on further testing welcome!


Regards,
ecm


___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user