Hello,


2012-08-12 16:32 GMT+02:00 Rugxulo <rugxulo@gmail.com>:
FD EDIT doesn't seem to compile in TC20 anymore. Though it worked fine
for me with TC++101, but that's not freeware from Embarcadero anymore.
It may? (or at least used to) optionally compile with OpenWatcom, but
I haven't personally tried yet. (Seems Aitor's build internally says
"Borland C++ from 1991" while my TC++101 says "Turbo C++ from 1990".
In other words, an XDelta is almost as big as the new .EXE itself due
to differing compilers, so that's a bust.)

Apparently TC2 and TC++ were rather incompatible, so I opted for TC++, but the compiler of preference is OpenWatcom ;)

Some of the base functions to interact with DOS (just calling DOS functions that OpenWatcom libraries don't carry, such as country info, mouse, ...) have even been thinking of rewriting in OpenWatcom style, maybe at some point I could contribute then to OpenWatcom, if I happen to discover how (similar sources come with a comment that they have been automatically created, so I have to figure out how OWC works).
 

FD KEYB uses TP7, which ain't freeware, so we're kinda stuck there.
Luckily, it's only a one-byte patch (thanks to Tom E.), very easy to
apply.

You could legitimately complain and say new developers should use
free/libre tools, but most of this code is legacy, and people are very
strongly attached (often with good reason) to their old tools (often
with no modern counterpart). Kinda unavoidable, I guess, so I don't
want to suggest anything drastic.

I don't know. Honestly, I almost hate to upload a patched binary of
these in lieu of the official maintainer, but source patches are okay.
But hey, if we have no other easy choice, I'll do it. (Advice
welcome.)

Well in this case, it wasn't a question of choice. To have KEYB faster at first stage, I borrowed some from xKEYB, although KEYB is nowadays basically pretty new. The resident code (and part of the transient code) is pure assembler, and my idea was at some point to take it out to TASM (sigh! maybe later to NASM or even to C) code that could be eventually linked to a C transient area that could be compiled with an open source compiler. But it is a big change. I started working on this without dropping TP7 on a first stage, but the handling of the Segment registers is tricky, and didn't put much time on it.

Another idea could be to try and port (as conditional compiles or as fork "KEYB3") the functionality to mKEYB and have it 100% in C: after all, you just need to make it aware of the KeybCB's (the big part), and some other minor functionalities:
- the int9x handler for pre-AT machines (is it worth?)
- override decimal character to layout
- int2f hook to be called by DISPLAY
- using it to just unhook/unload a previously loaded instance
- the "safe mode" for preventing keyb bombs...
...

Aitor