IS THERE LIFE AFTER MEX? (being a tale of hope and despair) by P. H. Newman Wilmette, Illinois ***************************************************************** 8/19/84 MY SUMMARY TO DATE OF IMPLEMENTING MEX (Both MEX10 and MEX11-see 8/24 et seq for latter) This is a series of notes, observations and comments on my imple- mentation of MEX. There is no real attempt to order it. Can clean it up later but it is important now to have a record of what I've learned and done. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ THIS IS A CHRONOLOGICAL RAMBLE WHICH WILL GIVE ME SOMETHING TO REVIEW FROM "GENESIS" AND, PERHAPS, MIGHT HELP ANOTHER TO AVOID SOME OF MY MISTAKES SO THAT HE MAY HAVE FREE REIN IN MAKING AS MANY OF HIS OWN OF WHICH HE IS CAPABLE - OR TO WEND HIS WAY THROUGH THOSE OF OTHERS. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ MEX is a very interesting program with a number of advantages over that which I've been using, MDM740, - which I like - with only a few features that are not quite so good as Hoff's but which can, for the most part, be implemented or at least surmoun- ted. Like all new software development, especially that in the public domain where everyone can and will get his hand in, it suffers from bugs, poor documentation and just plain errors of both omission and commission. Since its release in early May there have been a number of offic- ial, semi-official and unofficial fixes and enhancements. I've implemented the official and semi-official ones and one, so far, unofficial one. The "official" are those of Fowler in his MEXNEWS.001-.004. That in .003 brings the version to 1.00C and includes those in .001 and .002. The latest as of this date is a "POKE" in .004. He did not change the version definition for the latter. The semi-official one is my use of John Smith's overlay for Kaypros, MXO-KP27.ASM, which I modified somewhat as MXONKP27.ASM and used. The unofficial one I used is MXKPHACK.ASM which cleans up a bug or two and adds a couple of fine points. I've done a couple of things such as change the (really intercept) character from ^J to (^I) for physical ease of use, but these are minor operational changes of which there will be many more as I go down the road. The important thing at this point is to identify and delineate the up-to-date "fixed" version of the basic program that I have. I spent a frustrating two bloody days trying to find out the source of a problem I had: being unable to disconnect either in COMMAND with DSC or in TERM. with N, only finally to dis- cover that it was an error of ommission in the documentation by Smith of his overlay. I spent inordinate amounts of time down- loading copies of the programs from other boards thinking there might have been a glitch in that I'd previously gotten. I found one such in a copy of MEX-KP.COM, the first I'd gotten having been defective. However, the problem of no disconnect was not solved. The original version of MEX I'd implemented when it was first released but never used, which I still have as MEX-A.COM, discon- nected properly. However, I'd used an MDM7xx overlay and wanted to use the more versatile MXO-KPxx.ASM. The latter has more SET commands available although the word length, stop bits, and parity SET features of the MDM7xx were not included. Pity, for it would be quite useful in my case for setting up for Telexes and, for others, for mainframe communication. However, I still couldn't get the disconnects nor would the installed ( to 1.00C level and MXO-KP26 overlay) version of MEX-KP.COM I downloaded do any better. It should be noted that there are extant two versions of the MXO- KP26.ASM: one is the semi-official one of John Smith, the other an "illegitimate" one by Contorer. In Smith's ...26 he took to task the author of ...25 who had hacked it in a way not consis- tent with Smith's intent. Therefore, Smith's ...26 undid ...25 and pointed out the requirement with a Hayes Smartmodem to set switch #6 to "UP" in order to enable DCD detection. This I'd done to no avail insofar as being able to disconnect. In going through some of the other writings and programs I've amassed in the voluminous MEX library (I've over 500K now and still counting) I noted an overlay by Brown Grier wherein he uses a different disconnect procedure than Hayes' "+++, ATH" because primarily, of its greater speed. (This is "DTR" disconnection). This required placing the Hayes switch #1 also "UP." This I did and all the versions I'd installed with MXO-KPxx disconnected perfectly in both COMMAND and TERMINAL modes and extremely rapid- ly, far faster than MDM740 or other programs I've used. There- fore, if this overlay is used, MXO-KPxx.ASM, and the modem is a Hayes 1200 ( and, presumably the 300) both switches #1 and #6 should be in the UP position. I've not looked into, nor am sure I'd recognize, whether Smith used the same or a similar procedure as Grier and some day, as an academic exercise, I may do so. However, at this juncture I'm more interested in pursuing the things for which I'd started all this: to enable me to utilize the inherent programming features of MEX in practical applications. Also, whether any of this is applicable to MXO-.... overlays for other implementations I have- n't the foggiest for I have neither the need nor the inclination to investigate them. (I've had my sadistic moments but I'm proud to say I've never been a masochist.) Therefore, the summary of my installation to arrive at 1.00C (with the MEXNEWS.004 "POKE" addition) and MXO-KP27 overlay: Started with MEX-KP.COM although the original MEX10.COM can easily be brought to the same level. Started with: MEX-KP.COM "MXLOAD21"'d MXONKP27.HEX Produced: MEX-KP27.COM "MXLOAD21"'d MXKPHACK.HEX Produced: MX-KP27H.COM "POKED" the fix in MEXNEWS.004 "CLONE"d MX-KP274.COM I'm about to rename this MEXA for ease of use. One other thing to note: the MXKPHACK (same, except for address, as MEXHACK1), among other things, further reduces the time delay constants from Fowler's correction in MEXNEWS.003. According to him they were wrong by a factor of three but it was actually more. After doing this, installing MXKPHACK, by checking with various values of n in SET DELAY n, I found that the timing is now dead on. I've not yet, however, timed any "SLEEPS" or "WCHARS" - if I can figure out how to do the latter. The above summarizes the start. I'll add to this file as I proceed - but, first, some general comments: I don't like the phone library so well as that in MDM740. In the latter you use a prefix character, from A thru Z and 1 through something. I don't recall, but there are 30-odd available. Herein, then, you can have a fair amount of identifying data in the directory yet only need to CAL one character. In MEX, how- ever, the identifier and the number - with the addition of baud rate, a very good feature - are all that are there. Therefore, you either have a long identifier to type in every time you call or have a short one and rely on your memory to supply its identi- ty. Having a short one of the latter, I came up with an alter- nate method which allows me to have my descriptive directory and a single character identifier as well. I made up what amount to a directory that I called PHONE.DAT which has the minimal infor- mation that is in PHONE.PHN but has the other data that describe the board or whatever it is for jogging the memory. With a file called PH.MEX which merely is "TYPE PHONE.DAT" and having EXTEND "on" then all one need do is type PH, the more elaborate directo- ry appears and any of its members can be called with a CAL or DIAL (identifier). One other point: the STAT listing with the command STAT is ridiculous. If one invokes STAT ? a listing is produced of all of the defaults that can be changed. Or you can change them dynamically, for a one-shot. This, combined with the CLONE command, is one of the really marvelous features of MEX. It obviates the tedium of changing the .ASM overlay, re-assembling, etc. for each whimsical change you wish to make. The problem is that the listing of the STAT setting, invoked by STAT, bears only a passing resemblance to the commands themselves that appear after STAT ? and which must be precisely called. Consequently, with SUPERZAP I went into this section and made the STAT commands the first word of the listing. Therefore, now when I call it up I can see at a glance what they are since they have the proper nomenclature. (ADDED LATER - MEX11 HAS THIS CHANGE) One last point: the major attraction of MEX and the one that truly raises it out of the crowd of modem programs is its "pro- gramming" feature, using the SEND/READOUT commands. With them its something special, without them it's merely another useful modem program. These are the things that have caused my interest to be aroused and which I'll now dive into. In the myriad of files I have are a number of utilizations of these which should give me a pretty good idea of how best to use them. *************************************************************** 8/24/84 Annoyances, annoyances, etc., etc. No one seems to have gotten the SENDOUT routines down correctly for automatic log-in - if there is a "correct" way. I've tried variations of most of the examples in the files I've downloaded. The documentation leaves more than a lot to be desired as I do not seem to be the only dummy. (LATER - NOW FOR MEX11) Last night I found on Mark Stein's board MEX11.LBR, which I downloaded. This is Fowler's 1.10. I "MLOAD21"'d MXOKPN27.HEX onto MEX11.COM and produced MEXC.COM. We shall see..... Incidentally, I checked MXLOAD21.COM against MLOAD21.COM received in MEX11.LBR and found they are identical. Therefore, I renamed MXLOAD21.COM to MLOAD21.COM. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! BIG NOTE: See MEX11UPD.DOC, p. 4. Apparently MXONKP27.ASM is too large to fit in the new, smaller overlay area because it combines the physical and Smartmodem overlays. After producing the COM file noted above it would not dial. Tried the same overlay on the original MEX10.COM and worked ok insofar as dialing. Tried Brown Grier's MSOKP26 with MXO-SM13 and OK. Use it for now but watch for the new ones. Grier's does not have any of the SET commands except BAUD and it's going to be a pain to shut off and turn on the speaker. I suppose I can program function keys for this as I've been doing. Anyway, this seems the way to go now. Note that the MXO-SM13 must have DISC = FALSE for the DTR discon- nect to work properly. Made one with this change called MXONSM13.ASM. Named the COM file MEXD.COM. **** SEE 8/25 CHANGES **** However, neither does PHONE show the baud rates for the entries when they are displayed nor does 300 get set for any for which it is specified. This apparently has to be supported in the logical(Smartmodem) overlay and MXO-SM13 does not do so. Also, whenever the screen is cleared, by CLS or READing in PHONE.DAT, for example, get three NULL characters (backward apos- trophes) which push whatever else is on the line three places to the right. In Grier's MSOKP20, in the module that clears the screen and identifies the Kaypro version - on p. 10 of my print- out, are three NULLS after the CLEOS and CLS code which are the culprits. I removed them and everything seems to work OK. How- ever,on p. 6 Grier says that the full nine bytes must be used, padded with NULLS if necessary. He gives no explanation so I would assume, if he is correct, that my removing them may cause a problem that I did not encounter in my brief check after taking them out. (I caLLed this version MEXX.COM and the modified overlay MSOXKP20.ASM). **** THESE ELIMINATED - SEE 8/25 **** The upshot is that using these two overlays is not a very satisfactory interim solution until I can get more comprehensive overlays. Don't have the SET commands that I want, won't set baud rate automatically for those boards that use 300 - and the return to 1200, and either get the NULL garbage lousing up the screen if I leave them in the clear-screen functions or can expect to have problems if I remove them. NUTS! ***************************************************************** 8/25/84 After a long "chat" with John Sojak I decided to go ahead with the *KP20 and *SM13 overlays but remove the NULLs in the *20 and see if it really creates a problem. Therefore, I modified my MSONKP20.ASM, assembled, and MLOAD21'd a new MEXD.COM. Then I did the various STAT changes I want. Again, we'll see... HOWEVER, IT IS DOUBTFUL WHETHER THE ORIGINAL PROBLEMS OF PROGRAMMED LOG-ON WILL BE SOLVED. I'm greatly disappointed that Fowler did not make this the thrust of his new version - having it be cleaned up, to be sure, but mainly amplify on the READ/SENDOUT and related procedures, for these are the true raison d'etre of the program. Without them it is merely another useful modem program and, in some respects - particularly the ease of dialing - not so good as MDM740. ***************************************************************** 8/27/84 The other night John Sojak showed me a copy of his directory download of Fort Fone File Folder, Fowler's "home" port, operated by an Al Jewer. On it was a file MXO-KP30.AQM. I called up there and downloaded it. It is an adaptation of the *25 version that got the original author, Smith, so upset. However, this one has stop, parity, etc. implemented in SET, but it does not have DTR disconnect. But no big deal; three seconds with the Hayes procedure vs. one second with DTR? From its length I doubted whether it would work with *11 - and it did not. But this was a new wrinkle. It did not hang up, requiring a cold boot as did some of the earlier failures with *27, etc. Now it ran through and gave me a warm boot. John Sojak told me that the MEXD that I gave him did not work with his Kaypro II and he seemed not to understand why any more than do I. It continues to work with no apparent problem with my 4, yet there should be no difference, so far as I know, between the two, mine being the "old," circa November,'83, model. 8/28/84 "Talked" to Mark Stein. He's completely soured on *11 although he still believes *10 is usable - thinks *11 is full of bugs. Decided to see how I'd like MXO-KP30 with *10 and went through the same procedure as I did to produce MEXB: from MEX-KP with MXO-KP3 overlaid and the fix in MEXNEWS "POKED" into it. This I've called MEXF. Works OK. 8/29/84 Saw that John Sojak had gotten MXO-KP28 . Talked to him about it and he overlaid it on *11 and gave it to me. I thought we'd found the Grail, for no hang, no warm boot, came up fine - and proceeded to do something weird. I found that I could type a number in, e.g CAL 123-4567, and it would put the modem off-hook, dial and everything great. Then loaded PHONE.PHN and tried CAL (name) and zap: the modem wouldn't go off-hook, no dial tone, no tone output to the modem ; the screen says it's dialing merrily - but nothing. Then the weird part: I then could not type a number and have it dial. If I turned the modem off and then back on to set to its defaults and tried again, still no go. But if I exited from TESTMEX (the name we'd used) and called it up again it initialized the modem properly and we were back where we were to begin with. I went to bed. 8/30/84 Still puzzled I rather whimsically took TESTMEX and overlaid MX11HK12 over it. This is a Bob Schultz hack to correct some of the bugs he'd found such as no baud rate showing in PHONE.PHN, allows getting rid of the prompt when entering terminal mode, and same for showing clone level, and fixes the released version's feature of setting the high order bit on the last digit of the displayed baud rate. But would these solve my problem? No way, you say? Wrong! Now it works just fine - dials just as it should, etc.,etc. But there's more to this than meets my untutored eye. IF THE FUNDAMENTAL PROBLEM IS AS FOWLER SAYS: THAT THERE IS NOT ENOUGH OVERLAY SPLACE FOR THE "HUGE" OVERLAYS SUCH AS MXO-KPXX WHY DOES IT WORK NOW FOR ME??? I'll leave that to some more knowledgeable than am I - and there's a whole world out there that meets that criterion. Incidentally, I've called the one produced as above TESTMEXX.COM. Rich Trenkamp tried my MEXD on his Kaypro 10 and everything was fine, dialed, etc., etc. but when he exited with any of the commands, EXIT, BYE, CPM, everything went off into space. Now that one has bombed on the Kaypro 2, for John Sojak, and the K10. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ NOW MEX111 REARS ITS HEAD ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Found MEX111.COM on Mark Pulver's board and extracted it and MX111UPD.DOC from the LBR. And so to bed. What will the morrow bring? **************************************************************** 8/31/84 Using MLOAD21 I installed MEX111.COM with MXO-KP28, calling the result MX11128.COM. I did the same with MXO-KP30, with MX11130.COM as the result. Both of these, of course, are the large overlays and should not work. Right? Wrong; they work just fine. I now have four versions of MEX11x.COM that work on my K4. At least one does not work at all on the K2 and is unsatisfactory on the K10. I'll pass the other ones on to others and see how they are on the other Kaypros. In the meantime, however, it looks like I can now do what I started out to do in the first place: use one of the the darned programs. With a little examination I should quickly be able to decide which of the latest - the ones I think I'll choose - is the better. And away we go..... (I've just done some cataloging and find I've better than 1.2 MEGs of MEX files. And I thought I was wordy.)