[HECnet] Emacs-clone for RSX?

Johnny Billquist bqt at softjar.se
Mon May 30 07:16:41 PDT 2016


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


More information about the Hecnet-list mailing list