Re: [Freedos-user] Tinyasm vs. NASM (was: Re: A neat find on /r/asm)
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)
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)
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)
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
[Freedos-user] Tinyasm vs. NASM (was: Re: A neat find on /r/asm)
Hi, On Fri, Oct 4, 2019 at 3:13 AM Random Liegh via Freedos-user wrote: > > I just spotted this on reddit and thought someone here might appreciate it: > > https://github.com/nanochess/tinyasm/ > > Brand spanking new, targets the 8088. It can be built with desmet-c, but > there's a precompiled binary included in the github repository. 30 kb .EXE? Interesting. Ah, Oscar Toledo! A true genius. "Save a hard drive today!" (Memorable quote that always makes me laugh.) I hope his family is well and healthy. "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.) 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! ___ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user