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.