Oh yeah. I forgot.
If you want to compile NEMA, the easiest is to grab the following files:
MIM::DU:[NEMA]*.C
MIM::DU:[NEMA]*.H
MIM::DU:[NEMA]*.MAC
MIM::DU:[NEMA]MAKEFILE.
MIM::DU:[NEMA]NEMA.CMD
MIM::DU:[NEMA]NEMA.ODL
MIM::PDP11C$INCLUDE:STAT.H
MIM::DU:[1,1]BQTC.OLB
MIM::DU:[1,1]BQTLIB.OLB
Johnny
On 2016-05-30 16:16, Johnny Billquist wrote:
Hi.
On 2016-05-30 15:42, Paul A. Anokhin wrote:
This is fantastic news!
My 2 cents, if I may.
Very happy to answer...
There's a simple reason why I stopped using
MicroEMACS on my RSX
system and went back to TECO-11. Screen size. I didn't try too hard,
but I failed to hack MicroEMACS to display more than 80x24. It just
kept crashing. And as I nowadays mostly connect to my RSX system via
telnet, it's really not that pleasant to see those 80x24 symbols on a
pretty large terminal emulator screen.
Fair enough. I also found MicroEMACS limiting in lots of ways. Size was
one of them.
My TECO startup script, on the other hand, asks
the terminal about its
size and adjusts nicely.
NEMA seems to ignore both my real screen size and terminal height
setting (SET TERM/PAG:nnn). However it does use the terminal width
setting.
It's actually simpler than that. The max sizes are in config.h, and I
just currently defined them as 24x132. :-) If your terminal is larger
than these defines, NEMA will use what's in the defines.
It's just a recompile with other values. It consumes a bit more memory,
but I've realized at this point that I'm not that short on memory in the
first place, so I can just raise those some.
At runtime, NEMA to check what the terminal setting is.
Note that the code will not properly handle if you suspend NEMA, resize
the screen, and then resume. The hook are in there to deal with this, I
just haven't had time to fix that one yet.
Please note that the source depends on STAT.H
which, judging by a
modification time on MIM, is your own header file, but which is
missing from the [NEMA] directory.
It's a file I wrote myself, along with the actual function. It is not a
part of PDP-11 C. You can find the file in MIM::DU:[BQTLIB], and it's
also at MIM::PDP11C$INCLUDE: where the PDP-11 C compiler searches for
system include files. Other functions I had to write were umask(),
getuid() and getgid(), since I wanted this to be generic enough to
easily port.
And then what is CLIB.OLB that is needed for a
task-building? Modules
that are needed seem to match CFPURSX.OLB, but if I task-build against
it, my NEMA.TSK crashes on startup.
CLIB.OLB, along with BQTLIB.OLB, are needed for the stat(), umask(),
getuid() and getgid() calls. There is some C code in there, which
requires that you have the C library in your final task as well, but it
shouldn't be an issue.
If things crash at startup, and not at task build, you might have been
task building with some wrong support modules?
Johnny