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  <ESC>  (really
intercept)  character from ^J to <TAB> (^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 <ESC> 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 trie
d 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.)