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.