 M7KP-2.MSG -- Kaypro II overlay file for MDM724.    2/18/84

     M7KP-2.ASM is a modified overlay of M7KP-1.ASM.  It has been written
to work with any MDM7xx.COM file from MDM711 to MDM724.  This overlay has
modified the set command to allow the user to change:

    -  baud rate (300 or 1200),         (300 baud at startup)
    -  word length (7 or 8)             (8 bit word at startup)
    -  number of stop bits (1 or 2)     (1 bit stop bit at startup)
    -  parity (none, even, or odd)      (no parity at startup)
       (A null line will not change the value from the last change.

     You will want to look the file over carefully.  There are a number of
options that you can use to configure the program to suit your taste. This
file adapts the Kaypro II (and most likely Kaypro 4 and 10 and Xerox 820)
computer to the modem program (MDM724.COM).

       TO USE:
        1.     Load down the .COM file (MDM724.COM in MDM724.LBR)
        2.     Load down the overlay file (M7KP-2.AQM may be in M7OVL-2.LBR)
        3.     Load down the phone number overlay file if you want to
                  change the menu.  Current version is M7NM-6 for MDM724.
                  Use M7NM-5 FOR MDM720.
                  (you may change phone numbers later with M7LIB)
        4.      Un-squeeze the AQM files.
        5.      Edit M7KP-2.ASM filling in values for your own needs.
        6.      Assemble with ASM.COM or equivalent assembler.
        7.      Use DDT to overlay the results of this program to the
                  original .COM file (suggest you save in new .COM file):

                A>DDT MDM724.COM
                DDT VERS 2.2
                NEXT  PC
                4900 0100
                -IM7KP-2.HEX            (note the "I" command)
                -R                      ("R" loads in the .HEX file)
                -IM7NM-6.HEX        *   if you want to change the
                -R                  *   name overlay also
                NEXT  PC
                4900 0000
                -G0                     (return to CP/M)
                A>SAVE 72 MDM7.COM      (now have a modified .COM file)

     NOTE: The value "72" is the number of 256 byte blocks that the
program requires.  This value is for MDM724.  To calculate the value for
other versions, use the hi-order byte under "NEXT" and convert to
decmial and, if the low order byte is zero, subtract one.  If the low
order byte is not zero do not subtract one. (ie: 4 x 16 + 9 - 1 = 72)

     Values you may want to change are listed below.  (The location, in
hex, is listed to the right so you can patch the values with DDT.)

TOUCHPULSE:   DB    'T'     T=touch, P=pulse (Smartmodem-only)      105H
TOGGLEBK:     DB    NO      yes=allow toggling of bksp to rub       112H
ADDLF:        DB    NO      no=no LF after CR to send file in       113H
                            terminal mode (added by remote echo)
TOGGLELF:     DB    YES     yes=allow toggling of LF after CR       114H
XOFFTST:      DB    NO      yes=checks for XOFF from remote while   11AH
                            sending a file in terminal mode
XONWAIT:      DB    NO      yes=wait for XON after CR while         11BH
                            sending a file in terminal mode
TOGXOFF:      DB    YES     yes=allow toggling of XOFF checking     11CH
IGNORCTL:     DB    NO      yes=CTL-chars above ^M not displayed    11DH
BRKCHR:       DB    '@'-40H ^@ = Send a 300 ms. break tone          120H
NOCXNNCT:     DB    'N'-40H ^N = Disconnect from the phone line     121H
LOGCHR:       DB    'L'-40H ^L = Send logon                         122H
LSTCHR:       DB    'P'-40H ^P = Toggle printer                     123H
UNSAVE:       DB    'R'-40H ^R = Close input text buffer            124H
TRANCHR:      DB    'T'-40H ^T = Transmit file to remote            125H
SAVECHR:      DB    'Y'-40H ^Y = Open input text buffer             126H
EXTCHR:       DB    '^'-40H ^^ = Send next character                127H


SYSVER:       CALL    JMP$ILPRT         N:      EQU     03H     ;even parit      1A7H
              DB    'M7KP-2, Version for Kaypro II',0               1AAH
              RET


You can put in a message at this location which can be called up with
CTL-L if TRANLOGON has been set YES.  You can put in several lines if
desired.  End with a 0.

LOGON:       DB  'LOGON',CR,LF,0                                    1C9H

    NOTE:  You can change the SYSVER message and LOGON message to be
longer or shorter.  The end of your last routine should terminate by
0380h when using the Hayes Smartmodem.  When assembled, this overlay
is 37Eh bytes long, this leaves 2 bytes (dec) to play with.

    You may also want to change the file transfer size at location
0DEFFh IN MDM722 or 0CFFh in MDM720.

(SAVSIZ)   20 = 4k file transfer buffer size
           40 = 8k file transfer buffer size
           80 = 16k file transfer buffer size

=  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =

    Some time sharing systems send extra characters for timing.  Most of
the time the null (hex 00) character is chosen but some systems use a
<DEL> (hex 7F) character.  The following routine in MDM724.COM bypasses
null characters.

TERML:  CALL    RCVREADY        ;character on the receive-ready line?
        JNZ     TERM            ;if not, exit
        CALL    IN$MODDATP      ;get the character
        ANI     7FH             ;strip parity
        JZ      TERM            ;don't bother with nulls
        MOV     B,A             ;store temporarily
        LDA     IGNORCTL ;*     ;ignoring all but necessary ctl-chars?
        ORA     A        ;*
        JZ      GIVLF    ;*     ;if zero, display them all
        MOV     A,B
        CPI     ' '
        JNC     GIVLF           ;display all printing characters
        CPI     'G'-40H         ;^g for bell
        JC      TERM            ;ignore ctl-characters less than ^g
        CPI     CR+1
        JNC     TERM            ;ignore ctl-charsacters more than ^m
;
GIVLF:  EQU     $

    If you choose to ignore all but necessary control characters the
following patch will also bypass <DEL> characters:


B0>ddt mdm724.com
DDT VERS 2.2
NEXT  PC
4900 0100
-a1ee1
1EE1  cpi 7f
1EE3  jz 1fee
1EE6  nop
1EE7  nop
1EE8  <cr>
-G0

B0>save 72 mdm724.com

=  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =  =
The attached code is in the routine to send a LOGON
message.  If the system is working with half-duplex,
could this routine slow down the transmission of the
LOGON message?  Seems to go to try to get the ECHO
character from the host.

LOGLP1: MVI     B,1
        CALL    RECV    change to nop
        RC              change to nop
        ANI     7FH     change to nop
        JMP     TYPE

Think this routine is used also in the new function
key support for MDM724.


The following patch may clear this problem
for MDM724.

B>ddt mdm724.com
DDT VERS 2.2
NEXT  PC
4900 0100
-A1E40
1E40  nop
1E41  nop
1E42  nop
1E43  nop
1E44  nop
1E45  nop
1E46  <cr>
-g0
B>save 72 mdm724.com
