I am the author of Kermit-12 [some of you might know me].
The STANDARD version of Kermit-12 uses the 03/04 console as ONLY the console and requires another serial port that is compatible with such as the PT08 or KL8 interfaces. From the release copy, the standard external port is 40/41, and apparently some have gotten some success with SIMH on various machines using the standard release binary.
A word of caution: The RELEASE binary is NOT merely assembling the main source code in the file released as K12MIT.PAL which you might rename in OS/8 as
K12MIT.PA; those release names are TOPS-10 file name conventions, and in the case of PAL source files, this is commonly done, etc.
In any case, this is how to create what is in the release from the source files [this information is in K12MIT.PAL, but so many people are too damned much in a hurry. Read the first about 20-odd pages, it is chock full of good info@
The "bare" file is NOT suitable for the obvious install because the Kermit-12 project was NOT started by me, I 'inherited a turkey of a failing program written by a bunch of people all of whom had some modest input to the project, and it wasn't even called K12mit-12 ! It was non-functional and called K08MIT because that is their naming convention and they ASSUMED that it worked. It was quite NON-FUNCTIONAL so I had my hands full then, etc. Long story short, I had to work with these people [minimally] and thus, to keep peace in the valley, I had to dignify what they had done, so much was this insufferable, I had to add a patch done by one of them that was a BAD fix to an EXISTING bug. It in fact did not fix it, it made it DIFFERENTLY non-functional! I guess the notion of ACTUALLY TESTING THE CODE was above their paygrade, etc.
Thus, I creates a very "professional" edit history, and backed it all the way to the beginning, and gave overly forgiving "credit: to all that came before me. One of them thanked me for taking it over because he admitted he was nearly clueless, but it was helpful for his job, etc.
So, long story short, there are a few "pet frills" in the code to accommodate this, and the code was 100% unchanged until I believe 1997.
In any case, you should use the copy from the release, which is in Kermit ENCODE format, and for that you need the source code in the package K12DEC.PAL and if you want to create your own similar files the companion K12ENC.PAL. I deliberately used some slightly oversimplified source code conventions so that just about any lame and/or buggy version lf PAL8 could at least assemble the K12DEC.PAL source code into binary; the instructions on how to create the
DECODE.SV [or
K12DEC.SV if you wish] is all in the source file, again READ THE SOURCE CODE; OS/8 assembly and loading and saving REQUIRE OPTIONS TO BE SET!
Then, once you have
DECODE.SV available, you can do all of the following:
1) You can get from the package PAL8.ENC and CREF.ENC. Not only are these at least good enough for this purpose, they are better than that! These are the
PAL8.SV and
CREF.SV from OS/278 V2, the last DEC release of PAL8 and CREF. I have personally checked to make sure there is no model-dependent code in them; that's unfortunately a rarity and in general, I do not recommend you use anything past OS/8 V3D (3Q) with SIMH other than a few minor patches, such as the patch to bring PAL8 V10A to V10D'. But that is all moot in this case as these two fix all known FIXED bugs. [No, there are of course additional bugs; I will be glad to discuss them if anyone wants to know; some of these bugs are actually discussed in those twenty-odd first pages of K12MIT.PAL; I said there is a LOT in there above!
Regardless, there is no reason not to use PAL8 version B0 and CRED version B0 [note: OS/278 version numbers are backwards!]. I use these daily in SIMH as I am perhaps the only, but in any case profusely active PDP-8 code developer currently.
So, do yourself a favor and get these from where those Kermit-12 files come from. If you need a copy from my archive, they are available here:
http://www.ibiblio.org/pub/academic/computer-science/history/pdp-8/kermit/k12/2) You can grab K12MIT.ENC and use the DECODE program to produce the intended release of Kermit.12 from me.
To create it yourself from the source FILES in the archive, you need several files:
a) PARAM.PAL. The assembly is meant to be initialized with this file, or an equivalent, or by editing the standard source file, but in the process it breaks the release as it was meant for those other early developers. [Yes, they no longer matter, but put yourself in my position back in the day, I had to work on THEIR hardware by THEIR rules!]
b) K12MIT.PAL again the one from the release.
I know there are copies of an ALLEGED
K12MIT.SV or perhaps
KERMIT.SV that are NOT my authorized versions. Invariably someone didn't take the trouble to read how to assemble it! Follow the directions and you can reproduce it fine, or just decode it as is, either way you get the same exact thing if you don't screw up like clearly some other well-intended ignoramuses have.
This is how you get
K12MIT.BN, but not quite the RELEASED
K12MIT.SV. You can make something close enough to use, but a valid discussion is what is different from the now corrected near-obvious and what is in the actual release?
The ENCoded versions of the release files that are binary .SV files have been CLEANLY loaded and saved using the documented instructions EXCEPT you MUST also load
in the command to ABSLDR BEFORE the appropriate binary, the file Z4K or Z8K depending on the exact file. [Again, all the sources tell you which one. In general,the Kermit file needs Z8K and the other utilities need the Z4K.
What is in those tiny source files on the release is this:
FIELD 0
*0
ZBLOCK 7600-.
That's all that is in the Z4K.PAL file, the Z8K file is all of that AND also
FIELD 1
*0
ZBLOCK 7600.-
What this does is create a "clean" core image in the sense that all unloaded areas in memory instead of OS/8 leaving behind junk, instead they contain 0000; non-zero words are the code and data loaded from the assembled binary of the source file in question, etc.
The net result is identical to the normal way, except that any and all unused spaces in memory contain 0000. Why does this matter?
Because if you ENCode that clean binary, the resultant .ENC file is MUCH SMALLER.
One of the features of the ENCoding program is called run-length repeat compression. When the program encounters a 0000- word in the unencoded file, it then starts a process to fine additional 0000 words adjacent to that one. In terms of the innards of the encoded file, any length of 0000 in a row is representable by only TWO WORDS even if the actual binary loaded an entire field of memory. Thus, you get nice clean core images and much smaller ENCoded files as well, just by using that extra tip in the ABSLDR command line, etc.
Thus, chose your own method, but that is exactly what I did to create the release. If you want to make custom changes READ THOSE TWO DOZEN or so PAGES AT THE FRONT of K12MIT.PAL; read and understand and you can customize it like a champ.
Now onto the K12DJG file. This was done without my knowledge by a user who did not obey my source file conventions, thus in many ways it "breaks" the source needlessly. He was not concerned and his motives was an expedient way to make there not be the need for a second serial port because on some machines this is quite difficult, so for him, this made sense. When I get some time to do some cleanup, I have a couple of other to-do list items to update Kermit-12 on other issues, and I will update the first 20 or so pages to include what gets done at that point. That way, one NEWER source file works for all [and I will likely add a parameter so that IF you use PARAM.PAL or equivalent, you have to set the parameter to accept it and the NEW default will be to NOT use it, etc. And the change he made will be integrated in properly.
The DJG version is only useful if the device that acts as the 03/04 console input to the PDP-8 session is ALSO a Kermit protocol aware terminal emulator. Needless to say, there are terminal emulators that can also become Kermit-aware. This goes back to the original terminal program in Windows 95 and certainly that wheel has been re-invented many times.
In fact. I once contemplated this myself [but never had the time:. I wanted Kermit-12 for say a DECmate III to be the console on a PDP-8/E. With this escape-back feature, then the PDP-8 could Kermit-transfer to the DM III, its own console. But I never did and besides, that 8/E system had a 40/41 interface in it already, and that's the universal default serial port for all PDP-8s in most instances. I can't say I invented the convention, but I have certainly been using it for well over 40 years, etc.
Thus, in short:
Use the release version if you can have a second serial port. Use the OFFICIAL one, please, the one I support and if you must reassemble it, read the documentation to do it right.
And if you can put up with the unofficial changes I cannot be responsible for, then by all means use the DJG version until I can release a newer-still version. I cannot say when, I am quite busy on several other much larger PDP-8 12-bit projects currently, some of which I may be announcing fairly soon, perhaps next month even. But I only got two hands and one head/breain!
Hope this makes it crystal clear what you are dealing with and how to avoid pitfalls created by others, no matter their intentions.
cjl