Hello Rugxulo,
BTW, what is the proper way to build Tinyasm with IA16-GCC? Is there a
specific set of switches you use? Or have you not tested (much) with
it yet?
The bare minimum is to enable the "small" memory model (separate text
and data segments), like so:
ia16-elf-gcc -mcmodel=small tinyasm.c ins.c -o tinyasm.exe
or
i16gcc -mcmodel=small tinyasm.c ins.c -o tinyasm.exe
To really crunch down the size, you can add some options to turn on
optimizations and use a more efficient function call interface:
ia16-elf-gcc -mcmodel=small -Os -mregparmcall -mnewlib-nano-stdio \
tinyasm.c ins.c -o tinyasm.exe
(I have updated my build-ia16 scripts at
https://github.com/tkchia/build-ia16 to build tinyasm using ia16-elf-gcc
with my above "recommended" options.)
No, I have not really tested the ia16-elf-gcc version very much. But I
think ia16-elf-gcc + newlib-ia16 is actually a bit easier to work with
than DeSmet C (the DeSmet runtime's C89 support is still rather
incomplete and buggy, at least for now).
of terminology. But it's missing "[var+BX]" Effective Address support.
Also, "MOV AX,..." (etc.) instructions use the bigger, non-optimal
encodings. I haven't quite identified some other quirks yet (beyond
simple stuff like hex number syntax [0Ah not supported], quirky
"mylabel: dw 5", seg overrides only at beginning of line, etc).
Well, perhaps there are ways to fix the support for these things in
tinyasm...
doing that tomorrow. The makefiles are messy, and I'm no make expert,
but they should both be 100% reproducible (if anyone is honestly
interested). If I don't find any obvious problems, I'll probably
I for one would like to know how you wrote the makefiles for nasm --- I
have not managed to get a 16-bit build working using Watcom.
Thank you!
--
https://github.com/tkchia
_______________________________________________
Freedos-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-user