On Wednesday, April 14, 2021 at 12:46:18 AM UTC+10, Scott Lurndal wrote:
> >I'm from the late 1980s. As far as I know, everyone
> >was trying to be masm-compatible.
> That's not the case.
The only exception I know of was tasm's "ideal"
mode, which I never touched, precisely because
I didn't want to tie myself down to one manufacturer.
> Besides, real programmers were
> using Unix in the 1980s - even on x86.
In the 1980s, I was able to afford a C64, an
IBM PC XT with 20 MB hard disk and monochrome
monitor (cost AUD$2000 at the time), and an
Amiga 500.
At work we were using MVS/XA, and I did ask my
boss why we didn't switch to Unix and he said it
couldn't handle multi-volume tapes as one reason.
I wrote all my software C90-compliant, which meant
it ran on every system except the C64, which I wasn't
actually using anymore, and I used micro-emacs as
my editor, which worked everywhere except MVS.
I then essentially embarked on a decades-long quest
to get micro-emacs to run on MVS, and while I was
at it, get MSDOS (a C version, recompiled) to run on
the mainframe too.
At the time I didn't know what the limitations were.
When I found them, I broke them.
I did know about POSIX, and when I saw it had fork()
in it, I had nothing but disgust for Unix.
In the last few days I was dismayed to find out that
even going back to Python 3.3, it is riddled with POSIX
crap instead of having a C90-compliant option (as
default, too). Even one that is only capable of doing
a print "hello, world" or whatever Python syntax is.
I need Python in order to (attempt to) run an MVS
assembler on an environment other than MVS.
So, if a refusal to jump on the Unix bandwagon
means that I am a nancy boy instead of a "real
programmer", feel free to call me a nancy boy.
Someone else said I couldn't program my way
out of a paper bag, so I'm used to it.
> Hence the Intel syntax vs. AT&T syntax ongoing debates in
> the X86 assembler world.
Ok, this is pretty sad. I did actually write some
assembler in gas syntax as produced by GCC 3.2.3.
Can't remember which one that is.
But I want to replace it, probably with something that
assembles with wasm, and hopefully masm. But that
probably means weaning myself off a.out, which I
have been using for 25 years (thanks to EMX 0.9d).
BTW, I actually made changes to wasm, that are in
the official releases, to make it actually usable, even
for the minimal assembler programming I was doing.
To get off a.out, and presumably on to PE/COFF, I
need to get off binutils 2.14a which doesn't seem to
allow me to create relocatable executables. Actually
even the a.out is only working because I am using
"-r" in an unusual way. I might do this by switching
to Smaller C rather than attempting to upgrade to
binutils 2.23. Although I need the dlltool as well.
But I am expecting to switch from PD-Windows to
PDOS-generic, so the executables won't be compatible
with anything at all anyway. They will need to be
relocatable though. I'll probably stick with PE/COFF
so that the tools are the same though. But maybe this
is where Smaller C fits in. No DLLs required. And maybe
poasm as well. Or maybe there will be so little assembler
in PDOS-generic (just setjmp/longjmp) that I can write
my own masm-compatible assembler (with just enough
support to assemble setjmp/longjmp).
Maybe I should make my objcnv produce COFF, and then
build objcopy myself to see what the issue is converting
from COFF to ELF, prior to Smaller C working for PDOS/86.
BFN. Paul.