TITLE   'History file for CP/M MODEM program VERSION 7.97'

                       *****************************

;12/27/82   Made the following changes:
;               1. Fixed MSPEED references and transmission time
;                  calculations to work up to 9600 baud.
;               2. Changed 'CPM' command to 'END'.
;               3. Added logic so that if MODEM is executed with
;                  a command line option, it exits to the operating
;                  system when that operation completes.  If no options
;                  appear on the CCP command line, MODEM operates as
;                  before, prompting for commands and returning to
;                  MODEM's prompt upon completion. This is consistent
;                  with most other utilities and makes it possible to
;                  run MODEM from a SUBMIT file.
;               4. Eliminated extra call to JMP$INITMOD in INITADR.
;               5. Added LXI SP,STACK at RESTART: to make things
;                  more bullet-proof.
;               6. Re-enabled 'B' suboption on invocation.
;               7. INITMOD and SETUPR are now called with DE pointing
;                  to CMDBUF+1.  This makes it possible for custom
;                  routines in overlay file to scan buffer for options.
;               8. File send can be aborted by ^X from remote while
;                  awaiting initial NAK.
;               9. Time estimate and file size are always printed for
;                  single file transfer, even if Q mode.
;              10. If the .BAK creation option is enabled, it applies
;                  to both single file and batch receives, and the
;                  "Duplicate file - delete?" question is not asked.
;              11. Help menus and LOG command can be aborted by ^C.
;
;                                                       Bruce R. Ratoff

;12/20/82   Added help screen for PMMI.                 R. L. Plouffe

;12/17/82   Made the following changes:
;
;               1. Fixed initial timeout delay on receiving a file,
;               2. Revised XOFF/XON testing routines,
;               3. Revised routines for terminal mode file output rates,
;               4. Revised routine to change user number to allow
;                  better checking of input errors,
;               5. Suppressed user 0 display after default drive message,
;               6. Changed timing routines to allow up to 8 MHz clock,
;               7. Added routines to memory buffer printer.
;                                                       P. L. Kelley

;12/12/82   Revised send file message in library and reformatted library.
;                                                       I. M. Hoff

;12/04/82   Added routines to change user number and display user number
;               after default drive message.            G. Kantor

;11/30/82   Made the following changes:
;
;               1. Put SECTNOE in proper location,
;               2. Added optional XOFF/XON testing to terminal mode
;                  file output routines,
;               3. Added MSPEED setting to PMMI baud rate routines,
;               4. Fixed quiet mode,
;               5. Expanded command line again to help novices,
;               6. Changed to XMODEM routine for receiver to
;                  request CRC mode from sender and added routine
;                  to switch to checksum mode after 6 timeouts.
;                                       P. L. Kelley and R. L. Plouffe

;11/26/82   Replaced "CDD" command with "LOG", and fixed associated code.
;           Replaced "CUR" with "?" for easier working of a much used
;           function. Shortened command line, same info in less space.
;           Normal changes to menus done to reflect new commands.
;                                                       Mark J. Pulver

;11/18/81  Combined 11/08/82 and 11/10/82.
;
;          Made the following changes:
;
;            1. Added optional routine to overlay file to clear screen
;                and home cursor on paging of menu etc.,
;            2. Changed printer toggle to terminal mode command and made
;                optional with overlay file,
;            3. Changed routines to set MSPEED when changing buad rate with
;                SET command,
;            4. Added more information to display of current settings
;                and used calls to save space,
;            5. Fixed and shortened bytes free routine,
;            6. Shortened and separated LIB SENDTIME routine into two parts
;                so that it can be used in display of current settings,
;            7. Made echo mode part of normal terminal mode to save space
;                and make all terminal mode commands available in echo mode,
;            8. Fixed PMMI BYE routine so that it works with overlay file,
;            9. Eliminated F command as redundant, DIR FOO (where FOO is a
;                nonexistent file) accomplishes the same thing.
;                                                               ;P.L.Kelley

;11/10/82  Combined MODEM771 and MODEM780 (F. Gaude) as follows:
;
;            1. Used erase file function in 780,
;            2. Used 780 code to make display of error count start at 1
;                and changed display to decimal,
;            3. Used 780 idea for throttled output on terminal mode
;                transfer of text file to remote but wrote new routines
;                including one for user to set speed,
;            4. Moved disk reset to DIR routine as in 780,
;            5. Used 780 code to give kbytes free on DIR command but
;                modified to give kbytes free on requested drive instead
;                of default drive.
;
;          Made the following changes:
;
;            1. Eliminated IMSAI front panel routines,
;            2. Changed so PMMI control-D (disconnect) checks for file
;                open on returning to menu mode,
;            3. Fixed file display on bulk transfer so that spaces are
;                eliminated and period is inserted if required,
;            4. Changed M(enu) to H(elp) command,
;            5. Added code to allow echo mode to use optional toggling of
;                send linefeed after carriage return,
;            6. Added toggling of Checksum/CRC modes on file receive,
;            7. Added optional code to clear to end of screen on next line
;                from current cursor position when returning from terminal
;                mode, this eliminates jumbled screen when working remote
;                which positions cursor.
;                                                               ;P.L.Kelley

;11/08/82   4 new commands added. "?" will show the status of various
;           options. "LOG" will allow the current disk to be changed,
;           "LOG drive" will change the default drive. This tends to
;           be redundant with "RST", but I've left RST in for those
;           who are used to it. "LST" will toggle echoing to the LST
;           device on and off. "LOC" will toggle local echo on and off.
;           The latter should be used to replace the "E" option, again
;           left in for compatability.
;
;           A long standing bug in the dial routines has been fixed. If
;           one had answered "Y" or "C" to the "...Redial..." question,
;           You would find that yourself dialing whatever was in menu
;           position "C". This would only happen if the number to be
;           called was entered on the command line, and not if chosen
;           from the menu, this came from the "C" in "CAL". A second bug
;           showed up when "N" was answered to the same prompt, the modem
;           would be left off hook.
;
;           The logic for a menu choice has been changed, the menu is
;           now displayed before the modem grabs the line. This way, you
;           have time to make a selection before a Ma Bell time out.
;
;           Buffer activity logic has been added to the command line,
;           which has also been made a bit more brief.
;
;           Menus have been changed to reflect the new options, and
;           some cosmetics have been changed.
;
;                               Mark J. Pulver   AIMS  (312) 789-0499
;                                                24hrs / 7 Days  PMMI
;

;11/02/82  Shows the time to send a file.  (Routine was placed in
;           MODEM791.LIB).  Set MSPEED to the speed you normally use.
;           Currently set at 300 Baud.  Can reset at any time using the
;           menu.                                       - Irv Hoff

;10/20/82  Made the following changes:
;
;           1. New 'F' command shows free disk space on default drive
;               and resets drive to prevent R/O errors when attempting
;               to upload to default disk.
;           2. Requesting DIR also shows free disk space and resets the
;               current drive. (From F. Gaude's 780).
;           3. Heading automatically tells if set for PMMI Modem or not.
;               (Previously always indicated it was PMMI-only.)
;           4. Grouped all TRUE/FALSE statements together.
;           5. Put 'PMMIBYTE' immediately after ORG 0100H.
;           6. Increased checksum timeout to original value (10 seconds)
;               to agree with CRC timeout.  This should allow adequate
;               time for slow disk systems to write.
;                                                       - Irv Hoff

;10/16/82  Made the following changes:
;
;           1. Added optional toggling of send linefeed after carriage
;               return,
;           2. Added optional local command to send logon,
;           3. Added routines to give message on execution concerning
;               the system for which the program has been configured.
;                                                               ;P.L.Kelley

;10/10/82  Rename fix log to MODEM770.HIS. Modifiers of MODEM7
;          should update this file with fix information and change
;          version number.                                      ;PLK

;10/10/82  Made the following changes:
;
;           1. Corrected bug in routine to check local command
;               to set baud rate,
;           2. Corrected bug in NEWFILE routine,
;           3. Reordered the configuration section to make it
;               easier to change,
;           4. Introduced two optional toggles:
;               a. backspace to rub - on/off,
;               b. send local command to remote unless special character/
;                  use local command locally unless special character,
;           5. Give new configuration message on toggles,
;           6. If text file open give message on exiting terminal mode
;               about possible buffer loss,
;           7. Give error message on reset disk to R/W attempt when file
;               open,
;           8. Give error message if no file open when DEL, NOL or
;               WRT attempted,
;           9. Give error message if command invalid,
;          10. Move PMMI dialing routines so they also can be overlaid
;               by non-PMMI user routines.                      ;P.L.Kelley

;10/01/82  Again moved fix log to MODEM7XX.HIS                  ;PLK

;10/01/82  Made changes to outer shell to make program more "user
;          friendly", as follows:
;
;           1. Menu now has three screens of instructions,
;           2. if NOT PMMI then PMMI instructions eliminated from Menu,
;           3. eliminated XPR mode - replaced with M prompt from
;               Menu command line,
;           4. Menu display routine gets user chosen values for local
;               commands,
;           5. added Menu command to reset disks to R/W,
;           6. added Menu command to display phone numbers for non-PMMI
;               users,
;           7. added Menu command for non-PMMI users to employ routine
;               from user overlay to reset modem ports.
;
;          Made following additions to user overlay options:
;
;           1. added table of local command values,
;           2. added option to convert backspace to rub,
;           3. added option for transmit local character unless
;               preceded by special character,
;           4. added parameter to test for existence of user overlay
;               routine to reset modem ports from Menu.
;
;          Made changes to main line routine checks of user overlay as
;          follows:
;
;           1. get local command values,
;           2. test for convert backspace to rub option,
;           3. not use disconnect local command if non-PMMI user,
;           4. always check overlay for IMSAI before front panel output,
;           5. test whether local command must be preceded by special
;               character.
;
;          Also, wrote overlay file entitled M769CNFG.ASM which user can
;               edit to:
;
;           1. change the modem ports,
;           2. change options as appropriate to his system,
;           3. change other options to suit his taste,
;           4. include an optional routine to initalize his modem
;               on execution of MODEM7,
;           5. include an optional routine to reset his modem from
;               the Menu.
;                   (Examples of 4 and 5 are given in the
;                      file for the case of the H89.)
;                                                               ;P.L.Kelley

;08/14/82  Changed timeout in RCVSQ to 10 seconds instead of 3 secs.
;          to allow time for loading of large buffers before deciding
;          to switch to checksum mode.                          ;RLP

;07/04/82  Changes in 'S2' area.  When in "T" mode, a CTL-Y allows copy
;          into the file, CTL-K stops copy into the file.  'MENU2:' area
;          shows these controls.  EQU tables more logically arranged at
;          beginning.  Extensive changes for more uniform appearance.
;                                                               ;IMH

;05/29/82  Moved fix log to history file.  MODEM7xx.HIS
                                                  RLP

;05/29/82  Fixed SAVCCP option when set to false.  RLP

;05/21/82  Fixed minor bug at DISCON1 by changing JMP MENU1 to
;JMP MENU so that recovery is correct from a control-X interrupt
;AFTER auto dialling a number.                  RLP

;05/16/82  Added RCVFIL1 label so that switch between CRC mode
;and CHECKSUM mode is done only on the first file transfer in
;batch mode. Else the program hangs up on the second file transfer
;if the sending end is not CRC capable.  Also added 'BYE' command
;to MODEM command line which disconnects (hangs up) the modem line
;and re-boots your computer.  (Good to arrange it to do a turnkey
;start of 'BYE' so ready for next call). You must have the coldboot
;prom address entered for your system at label CLDBOOT.
;Changes marked ;@FIX7.61 or ;@7.63
;                                       R. L. Plouffe

;04/29/82  Changes at TERM, START1 and OPTCK marked by ; @7.61
;fix a bug that causes abort at the end of a file transfer if
;the ogiginate 'O' or the answer 'A' character was not entered
;after the 'T' term character when switching between term and
;menu. Now the ogiginate or answer character has to only be
;entered once when comunications is first established. Also
;changed the MACLIB mico to MODEM75. Added CR,LF to the NEWBAUD
;message.
;                                       R.L.Berg
;
;4/12/82  Merged in changes/enhancements from versions 7.32
;and 7.4 and MODEM75.FIX.  This should hopefully give us one
;"master" version again.  B. R. Ratoff
;Summary:
; @7.32 - Delay loop at DILAGN1 to allow "smart" terminals time
;         to process bell character.
;
; @MODEM75.FIX - Maintain originate mode on RET command after
;         transferring files (at TERM:).  Restore option tables correctly
;         on control-D command (at DIR).  Issue "file open" message on
;         receive (at RCVC3).
; @7.41 - Make CRC/checksum switching on Receive automatic....
;         assumes CRC and defaults to checksum on timeout.
;
;2/20/82  Changes at TERM and START1 marked by ; @7.5 fix a
;long standing bug in MODEM7x that causes abort at the end of a
;batch file transfer or an attempt to transfer a non-existent
;file.  The call to NOPARIT in DONETCE caused a computer that was
;in answer mode (but not explicitly by command option) to switch
;to originate mode thus causing the two ends to no longer communicate
;with each other.  Also added SAVCCP byte and code to prevent
;overwriting of the CCP at the users option.       R. L. Plouffe
;
;1/23/82  The following changes have been made in this version.
;                                                       RLP
;Extensive cleanup of the file including colons after all labels
;for easier search with screen editor for the purposes of debug.
;Also set file capture mode so as not to overwite the CCP and
;changed EXIT to return to the CCP instead of doing warm boot.
;
;TERML routine fix:
;Added Rick Kawala's fix so that fewer framing errors will occur
;with hosts that send out characters with high bit set.
;
;CAL command fix:
;   All versions of MODEM7 including MODEM73 are supposed to be
;able to accept "CAL n" (where n is either a library letter or
;a phone-number string) as a valid form of the CAL command.  In
;fact, however, the "n" will simply be ignored.  This is because
;routine DIALPL checks for a command length >= 4 as a signal to
;skip the library display, but the menu routine, after
;recognizing CAL, sets the length to 1 so the L in CAL doesn't
;look like an illegal secondary option.
;   The following kludge repairs this defect.  In routine
;DIALPL, two lines above label DIALPL0, change CMDBUF+5 to
;CMDBUF+6.  Also, in routine GETCMD, three lines above label
;NXTOPT2, change MVI A,1 to MVI A,20H and change the next line
;from STA CMDBUF+1 to STA CMDBUF+4.  This makes the command
;look to the option processor like "CA  n", and since A is a
;legal secondary option (which in this case is never used) the
;line passes muster.  If an actual telephone number is used,
;you have to type an extra blank: CAL  000-0000, whereas
;with library numbers one blank only must be typed: CAL A.

;12/16/81 Removed stack imbalance bug at COLONB by adding
;         a JMP BRK1. Change is marked by ;@   R. L. Plouffe

;11/21/81  Fixed code so byte received is on same line when
;          messages "XXH RCD, NOT SOH" or "XXH RCD, NOT ACK"
;          are displayed. Also changed stack size to 50H.
;          (P.L.Kelley)

;10/29/81 Changed receive sector routine so that on the first
;time through when CRC is being used, it only waits 3 seconds
;to receive the SOH after sending the initial 'C'.  If a
;character is not received within 3 seconds, then a NAK is
;sent and this program switches to CHECKSUM mode.  The sending
;of the NAK causes XMODEM or MODEM to start sending the file
;using checksum checking.  This allows the CRC MODEM7 program
;to be used with versions of XMODEM, MODEM, and MODEM7 that

;do not use CRC, even when MODEM7 has specified a CRC
;transmission. (John Mahr)
;
;10/18/81 Added CRC option. This is another secondary option
;that is specified by giving a 'C'.
;       MODEM RC.600 fn.ft
;       MODEM ROC.300 fn.ft etc.
;       note: cannot have more than 6 secondary options.
;When the file receive cmd. specifies CRC, the ltr. 'C' is
;sent in place of the initial NAK. This signals the sender
;(XMODEM54 or equiv.) that CRC is in effect. The sending
;program will repalce the checksum with the CRC 2 bytes.
;CRC will give better than a 99.99% probability that there
;are no data errors. Code copied from MODEM213, thanks to
;John Mahr and Paul Hansknecht for the implementation. (WDE)

;10/11/81 Add first NAK to RCVFIL to speed up start
;Removed monitor scroll from good block messages
;CTL-^ forces send of next char in T mode (for ctl-E,ctl-D) (WDE)

;07/05/81 Added BRR ctrl char chgs, my number list (Bill Earnest)

;06/05/81 Deleted some unneeded messages in the dial routines. (Bob Clyne)

;05/31/81 Added detection of framing, overrun, and parity errors for
;         Receive file routine. (A modified version of the routines in
;         MODEM V2.06)

;         Added provisions to send and receive either even or odd parity
;         bit with PMMI modem in the 'S'end or 'R'eceive file modes - resets
;         to no parity in other modes. Use of the parity feature will slow
;         transfers slightly due to the extra (parity) bit being sent with
;         each character. Also this is the only program that I KNOW OF that
;         actually sends, or sets up the PMMI to receive, the parity bit.
;         Both ends must be set to the same parity for it to work. Parity
;         is invoked by adding a '0' (ASCII) for even parity or a '1' (ASCII)
;         for odd parity to the 'S'end or 'R'eceive command string eg. R0.600.

;         Changed timing for sending 'B'reak in the terminal mode.

;         Changed the code so that the 'M'enu command works from the keyboard
;         even when in XPR (expert) mode.

;         Added display of hex in addition to decimal numbers for file length
;         and sector numbers.

;         Removed provision for remote cancel of file transfers in the 'S'end
;         and 'R'eceive modes to prevent line noise from aborting a transfer.
;         (Bob Clyne)


;02/15/81 Patched in the ringback routines from DIAL6/23. It doesn't
;         seem to be able to recognize when the other phone is ringing
;         though so it is a little shakey.

;         Put in routines to calculate file sizes and sector numbers in
;         decimal.

;         Put in code to transmit a "BREAK" with a PMMI for use with
;         computers which use BREAK instead of Control S to suspend
;         output. Control P is now the baudrate change request key
;         and Control @ is the BREAK key.. (Bob Clyne)


;12/18/80 Changed disconnect timing.

;10/26/80  Minor revision to allow 25-second 'wait' after PMMI
;          autodial -- longer time required for Chicago CBBS*.  Jim Mills.
;          * CBBS is a trademark of Ward Christensen and Randy Suess.