home *** CD-ROM | disk | FTP | other *** search
- CP/M MODEM PROGRAM DOCUMENTATION
- by Mark M. Zeiger and James K. Mills
- 11/04/80
-
- This program uses the file transfer routines written by Ward
- Christensen in his CP/M file transfer program (V2.0 as of 8/6/79)
- and is compatable with his program in single file transfer mode.
- Multi-file transfers are only possible between two systems running
- the program described below.
-
- This program has three functions:
-
- 1. Communication
- 2. Program transfer
- 3. Modem control (for PMMI Modem)
-
-
- COMMUNICATIONS
-
- The program may emulate a terminal or echo data back to sender (act
- as a computer).
-
- Terminal Mode - 'T' Option
-
- The terminal mode may be called with or without a file name.
- If a file is specified (it should be a new file), then
- anything received by the modem may be saved in memory and
- later written on disk. The save feature is toggled ON/OFF by
- Control-Y. On an IMSAI the front panel LEDs will indicated
- that memory save is toggled on by showing the binary value of
- the ASCII character received. For those with no front panel, a
- colon (:) will be printed at the beginning of each line when
- memory save is active. The colon will not be transmitted over
- the modem nor will it be saved in memory.
-
- If a file is not specified, then memory save can not be
- activated.
-
- If the memory buffer is full (the buffer is from the top of
- the program to the bottom of BDOS), the contents are
- automatically written to disk (but the file is not yet
- closed). Communications may then continue with the buffer
- reinitialized. The computer with which you are communicating
- must accept the X-ON and X-OFF (Control-Q and Control-S)
- conventions or data will be lost.
-
- When communications are over, use Control-E to exit from the
- Terminal mode and enter the Menu. The file to which you are
- writing must then be closed by using the 'WRT' command. If
- this is not done, all data will be lost. I decided not to
- close the file automatically since there will be times when
- you leave terminal mode and then decide to re-enter. This may
- be done while in the Menu by using the 'RET' command. You may
- re-enter Terminal mode and save in the same file as many times
- as you wish as long as you have not closed the file with the
- 'WRT' command.
-
- While in Terminal mode, Control-T will put you in File
- Transfer mode. This will allow you to send the contents of an
- ASCII file over the modem. This routine does no error checking
- and there are no protocols specified between this program and
- the receiving computer other than that it should be ready to
- receive data via the modem. Control-X will cancel the
- transfer.
-
-
- Computer mode - 'E' Option
-
- This mode echos data received by other computer. Only one
- computer may be in this mode at one time. There is no save
- feature in this mode. Useful if you wish to communicate with
- somebody running the terminal portion of the program.
-
- File transfer - 'S' and 'R' Options
-
- These features are the same as in the CP/M Modem program
- written by Ward Christensen except that upon completion of the
- transfer, control returns to the Menu unless the secondary 'T'
- option has been selected. In the latter case, control returns
- to Terminal mode. Remember that if you are operating a remote
- computer using a timesharing program (such as Ward
- Christensen's "BYE"), the remote should be instructed to send
- or receive in the quiet (Q) mode as a secondary option.
- Examples of commands for sending and receiving are listed
- below.
-
- Multi-file transfers
-
- Using the B (batch) secondary option, more than one file and
- ambiguous filenames may be transferred. To send files, use the
- primary option "S" and the secondary option "B" (along with
- any other secondary options and baudrate). To receive the
- files being sent, use the "R" primary option and the "B"
- secondary option. Files may not be named since filenames are
- sent by the sending program, but a disk drive may be specified
- (or else the files are written to the default drive).
-
- Backup option
-
- There is a byte at the beginning of the program (106H) that
- will create a backup file if a file on the disk has the same
- name as the file being received in multi-file transfer (see
- MODEM.SET). If this byte is set to 0FFH, a backup file will be
- created. If it is zero the file on the disk will be deleted
- before the new file is received. If you are running CP/M 2 and
- a file on the disk is designated R/O or SYS, a backup will be
- created whether the byte at 106H is set or not.
-
- Be careful - if you are running CP/M 1 and the drive on which
- you are receiving has an R/O file with the same name created
- by CP/M 2, the R/O file can not be accessed (found, changed,
- erased, etc.) by CP/M 1. You will therefore have two files
- with the same name when you are running CP/M 2. To fix this
- problem, use CP/M 1 to change the name of the file that is not
- R/O. Then use CP/M 2 to do what you want with the R/O file.
-
- Examples:
-
- The sender enters SBOT.600 B:*.COM to send all the COM
- files on disk B. Also specified were originate mode 600 baud
- (PMMI modem) and return to terminal mode when done.
-
- The receiver enters RBA.600 to receive all the files
- being sent on the default drive (also answer mode at 600 baud
- for PMMI).
-
-
- The sender enters the command SB.600 ASM.COM *.HEX B:M*.*
- which will send ASM.COM from the default drive, all the HEX
- files from the default drive, and all the files starting with
- "M" from the B drive. [note that neither 'A' or 'O' were
- specified: default is to whatever mode the PMMI is in
- currently]
-
- Multifile transfers may only be done from the menu. It may not
- be specified when the MODEM program is called. In other words
- A>MODEM SAB *.COM will result in an INVALID OPTION error
- message.
-
-
- Return to Menu - 'M' option
-
- When asked to select an option, 'M' returns to Menu.
-
- The MENU
-
- If the Modem program is entered with no option, the Menu is
- called. The Menu gives the choice of selecting the standard
- options as defined by Ward Christensen (T, E, R, and S). The
- Terminal mode has been greatly expanded as described above.
- The "R" and "S" commands must be called with a filename or you
- will be required to enter the primary command (S or R) and the
- filename again (but NOT the secondary options). If you want
- multi-file transfers, then the "R" option does not need a
- filename.
-
- RET - You may also enter terminal mode using the 'RET' command, but
- no data will be saved since a file may not be named with
- 'RET'. Use the 'RET' command to RE-ENTER Terminal mode after
- it has first been entered with the 'T' option. If this is
- done, you will still be able to save the communications if you
- were doing so before you exitted the terminal mode.
-
- WRT - The 'WRT' command must be used after leaving Terminal mode.
- This writes the last buffer to disk and closes the file.
- Failure to use the 'WRT' command results in loss of all data
- and a file of length zero.
-
- DEL - The 'DEL' command erases the most recent file accessed in
- Terminal mode. Useful if you decide after communications that
- you don't want to save information just gathered.
-
- CPM - The 'CPM' command reboots and returns to CP/M.
-
- XPR - The 'XPR' command is a toggle which causes the menu to be
- printed or not printed. Initially the menu is on unless the
- program is called with the "X" option (ie. A>MODEM X ).
-
- DIR - The 'DIR' command lists the directory of a CP/M disk. A drive
- may be specified (ie. DIR B:) or the default drive will be
- listed. After the directory is listed, the menu will not be
- printed whether XPR mode is on or off. If XPR mode is on and
- you wish to see the menu, hit return.
-
- FOR THE PMMI MODEM
-
- DSC - To disconnect you must use the 'DSC' command in the Menu.
-
- The original secondary options for the PMMI Modem (as defined
- by Ward Christensen) are "A" (answer mode), "O" (originate
- mode), and baudrate selection. See examples below.
-
- Once answer or originate and a baudrate have been selected
- (ie. SO.450 NAME.TYP), any subsequent options will use the
- same mode and buadrate. If you want to change the baudrate, it
- may be done without changing the mode. For instance, if you
- are in originate mode at 450 baud, then the command 'R.600
- NAME.TYP' will allow you to receive a file at 600 baud in
- ORIGINATE mode. If you want to change the ans/orig mode, then
- you MUST select the baudrate again or it will default to 300.
-
-
- CAL - Allows dialing of number. If a connection to a computer is
- established, you will be able to select options (usually
- TO.xxx). If no connection is made after 15 seconds, [changed
- to 25 seconds in distributed version] then you will
- be informed and be given the option of redialing or returning
- to the menu. The dial routine may also be specified when the
- Modem program is called by entering A>MODEM C. No secondary
- options will be accepted when the "C" option is used. [Note:
- you cannot type: CAL 312-545-8086 -- well, you can, but the
- number will be ignored and you will have to retype it when the
- program asks for it -- in the latest version (11/4/80)
- there is a 'library' feature such as in DIAL.ASM. To use the
- CAL function, type CAL and a return at the menu. You will see
- a message 'WAITING FOR DIAL TONE' then a lot of stuff about
- entering the number. At this point you may type in a number,
- or you may type a letter which will designate one of the
- library numbers (which you must insert at assembly time).
-
- ^B - Control-B while in Terminal (or Echo) mode allows change of
- baudrate "on-the-fly." A carriage return gives 300 baud; all
- other rates (110-600) must be explicitely stated.
-
-
- LISTING OF COMMANDS AND OPTIONS
-
- Primary options
-
- S - send a CP/M file (must specify file/s)
- R - receive a CP/M file (must name file unless B sec opt used)
- T - terminal mode (specify file if memory save wanted)
- E - terminal mode with echo
- M - return to menu
- X - used only when program is called to initially
- toggle menu off
-
- Secondary options
-
- B - multi-file mode for sending and receiving files
- T - return to terminal mode after transfer (memory save off)
- R - view what is received in file transfer
- S - view what is being sent in file transfer
- V - view what is being sent or received in file transfer
- T - Terminal mode (used with remotely controlled computer)
- O - originate mode (PMMI modem)
- A - answer mode (PMMI modem)
- .xxx - baud rate xxx (xxx = 110-600 PMMI modem)
-
- EXAMPLES (fn = filename, ft = filetype)
-
- Send file, originate mode, 300 baud
-
- SO fn.ft
-
- Send another file, same mode and baudrate
-
- S fn.ft
-
- Receive file on B drive, 600 baud, ans mode, view what is
- being received, return to terminal mode
-
- RART.600 B:fn.ft
-
- Send all COM files, no messages on console, same baud and mode
- as last transfer
-
- SBQ *.COM
-
- Send two files from two different drives
-
- SB A:fn1.ft1 B:fn2.ft2
-
- Receive files being sent by above on drive A (baudrate must be
- same and modes opposite)
-
- RB A:
-
- Terminal mode, save communication in file, 300 baud (default
- rate), originate mode (in terminal must type CTRL-Y to start
- save, in menu must type "WRT" to close file)
-
- TO fn.ft
-
-
- ASSEMBLING THE PROGRAM
-
- You must use Digital Researches' MAC to assemble the program.
- The files required are MODEM.ASM and MODEM.LIB. MACROS.LIB
- does not actually contain any macros in the true sense, but it
- does contain routines that are necessary for the program to
- run (MFACCESS however does use nested macros as real macros).
-
- If you have a PMMI and an IMSAI, you may assemble the file as
- is. If you do not have an IMSAI with a front panel, change
- IMSAIBYTE to 'FALSE' (near the beginning of the program). If
- you wish another character instead of the colon to indicate
- when memory save is active, change "MVI A,':' " to "MVI
- A,'char' " in the "TERM" routine where 'char' is the printing
- character you would like at the beginning of each line when
- memory save is active.
-
- If you do not have a PMMI, change the byte to 'FALSE' and put
- your modem status and data ports in the appropriate equates.
- The labels 'MODRCVR' and 'MODSNDR' should be the same as
- MODRCVB and MODSNDB (the bits tested) if your UART uses
- positive logic (JZ) and should be zero if your UART uses
- negative logic. If you have a Z-80 (or maybe a fast 8085),
- change the 'FASTCLK' byte to 'TRUE'. If any port or modem
- initialization must be done, put the initialization routine in
- the area labeled INITMOD (replacing the PMMI initialization
- routine). See MODEM.SET for more details.
-
- If you have a D.C. Hayes Modem, you may incorporate the
- routines from MODEM.ASM V2.0 (as of 8/6/79).
-
- You should also note the comment in the INBUFF routine near
- the end of the program.
-
- Any problems or bugs, please call me:
-
- Or latest revisor:
- Mark M. Zeiger James K. Mills
- 198-01B 67th Ave. 824 Jordan Place
- Flushing, N.Y. 11365 Rockford, IL 61108
- (212) 454-6985 (815) 398-0579
-
-