Thursday | 21 NOV 2024
[ previous ]
[ next ]

ScarletDME - Porting NSH and EVA

Title:
Date: 2023-08-02
Tags:  openqm, multivalue, NSH, EVA

After the licensing issue I ran into with UniVerse:

Losing It All

I took a proper stab at using ScarletDME. I want to have my utilities always available to me and having them on ScarletDME will gaurentee that.

The first step in porting things over was getting the terminal emulation right. I was having issues with ScarletDME on CentOS 7 where pressing space would cause the cursor to reset to the beginning of the line. This made it a pain in the ass to work with. Everything worked but it was just painful.

The fix for this ended up being a bit involved as I needed to hardset the terminal type in the start up process.

Google Group Post

Adding this line resolves the issue of "Unrecognised terminal name" when you do a "TERM LINUX".

gplsrc/qmtermlb.c:189

sprintf(filename + strlen(filename), "%c%c%c%s", DS, tname[0], DS, tname);
strcpy(filename,"/usr/qmsys/terminfo/l/linux");

The sprintf seems to be just the directory rather than a specific file and so the magic number check further down fails.

Once I got the terminal emulation working, I then added in the compiler flags for QM and that was relatively straightforward. I copied my UniVerse specific code or D3 specific code based on the context and that worked out pretty well.

I quickly had my NSH shell working in ScarletDME.

I then ported over my EVA editor and this was just as easy. It was basically finding all my compiler flags for UV and mimicing them for QM.

Once I got my NSH and EVA ported over, I then ported over NPM which was also pretty straightforward. Instead of using compiler flags, I added the MV variable. I read specific entries from the VOC to test which MV system I'm on and based on that NPM will compile things differently.

EVA had a minor issue with the way the command mode is triggered which took a bit to figure out. It's a hack fix currently but it works so I'm going to leave it for now.

I also live posted while doing all this on mastodon which I really enjoyed. I think I want to create a live journaling app so that I can live post to my blog while working on things. Or I should have my blog feed off of mastodon. So much to do.