Hi Warner,
On Mon, Oct 28, 2019 at 04:08:53PM -0600, Warner Losh wrote:
VENIX 2.0 had this. It was a Pure AT&T syntax w/o
% signs:
eg
|
| VENIX/86 start off (bootstrap starts execution at location 0 `start').
|
| Relocate complete kernel down to low memory.
.text
start: cli
mov dx,#LOWMEM | base of relocated kernel
mov cx,cs
cmp cx,dx | are we there (put there by bootstrap) ?
beq L0002 | Yes.
mov ds,cx
which is clearly op dst, src.
op dst, src is Intel syntax. AT&T syntax has op src, dst like MACRO-11.
There are a number of other differences: (a) | instead of / or # as a comment
character (b) different mnemonics (beq instead of je) and (c) # instead of $
as the comment character.
Without seeing some more code, I'd say it's not AT&T syntax.
VENIX's compiler was from the MIT compiler
collection which was a port of
the portable C compiler to x86 that everybody used (it seems, I don't have
a reference for that, just speculation). You can find a version of
this code in the TUHS archive in Applications/Portable_CC which has the
8086.zip.
There's follow on work from a university in Queens in 286.zip that adds
near/far stuff (the original one didn't, and the VENIX code assumes none of
the segment registers change in userland code for its context switching
code). I've not looked at this code.
Will have a look!
All this code is dyed in the wool K&R code from a
V7-level C compiler, so
it won't compile on newer systems. And it's a right-royal pain in the
backside to convert on the fly because it wasn't written to be portable to
ANSI compilers and modern C compilers no longer have a K&R mode...
Thanks again to Al Kossow for this being in the archive. It's possible to
find this on FTP sites if you look hard enough. I found them in the past,
but I can't find it now that I went looking, so I'm quite happy that it's
in the archive. VENIX 2.1 released a newer version of the compiler than was
in VENIX 2.0. I don't know if those pre-date or post-date this stuff.
Thank you for trying to dig up the source.
Sadly, the modern PCC project no longer works with
16-bit code, but I
suppose that's par for the course these days.
OpenWatcom still works, but it's not too compatible.
Warner
Yours,
> Robert Clausecker
>
> [1]:
https://stackoverflow.com/a/42250270/417501
Yours,
Robert Clausecker
--
() ascii ribbon campaign - for an 8-bit clean world
/\ - against html email - against proprietary attachments