OTERM.DOC -- OTERM Terminal Simulator                page   1


Copyright 1981, 1982  Michael M Rubenstein
Version 4.00 (4 Oct 82)


Credits.

The  modem  protocol used for file transmission  was 
developed by Ward Christensen.

The modem protocol was extended to use the  cyclical 
redundancy code by John Mahr.

The  subprogram  to compute the cyclical  redundancy 
code was written by Paul Hansknecht.

The window manager is based on one written by Robert 
Lansdale.

All  four  gentlemen  have made  their  work  freely 
available for noncommercial purposes.

Ideas for many the features of OTERM have come  from 
other terminal programs.   The authors of these pro-
grams must share the credit for OTERM.

Most of OTERM is now written in C.   It was compiled 
with the Software Toolworks C/80 compiler.

A  large  number of people have offered  suggestions 
and  encouragement in developing  this  program.   I 
thank all of them.

The CompuServe CP/M Interest Group (CP-MIG) has been 
a  valuable  forum for discussion and a source of  a 
great many ideas used in OTERM.























OTERM.DOC -- OTERM Terminal Simulator                page   2


Description.

OTERM allows the user to communicate with time shar-
ing  services,  computerized  bulletin  boards,  and 
other computers.  Special features of OTERM include:

        - a  circular  log of the session  is  kept.  
          This log is under the control of the user.  
          It may be browsed without exiting OTERM.

        - an  optional warning is provided when  the 
          log is almost full.   If the remote device 
          supports it,  transmission will be  halted 
          with  a  control S.   If a file  is  being 
          sent,  the transmission is interrupted (it 
          can be restarted.)

        - a file may be received without a protocol.  
          If  the remote supports ^s/^q to stop  and 
          start transmission, the file may be larger 
          than main memory.

        - files  may be sent to the remote  computer 
          without  a  special  protocol  for  trans-
          mission.

        - any  command which can be entered from the 
          keyboard  may also be entered from a  file 
          or from a function key.

        - file  tranmission may be interrupted  from 
          the  keyboard or from a command  contained 
          in  the  file.   Transmission may  be  re-
          started without loss of data.

        - the  Ward  Christensen modem  protocol  is 
          implemented.   This allows error free com-
          munications  with  remote CP/Ms  or  other 
          computers.

        - the CIS A protocol is  implemented.   This 
          allows   error  free  communications  with 
          CompuServe Information Services.

        - optionally  lines may be wrapped so as  to 
          keep words on a single line (word wrap)

        - commands   to  OTERM  are  entered   using 
          function key 1.   Help menus are available 
          by entering ? in response to any prompt.

        - extended  function  keys  are   available.  
          names  of extended function keys may be up 
          to 127 characters long and data sent by  a 
          function key may be up to 4094 characters.



OTERM.DOC -- OTERM Terminal Simulator                page   3



        - the directory of a disk may be viewed from 
          OTERM.

        - files may be deleted from OTERM.

        - files may be typed from OTERM.



















































OTERM.DOC -- OTERM Terminal Simulator                page   4


Limitations.

OTERM  will run only on an Osborne 1 computer.   The 
revision  level must be 1.2 or higher (the  original 
rev A is no longer supported).

No printer support is provided.

OTERM  is primarily designed for  operator  attended 
communications.   There  is  no provision  for  auto 
answer.

OTERM  contains  no  provision for  special  modems.  
However with some modems,  function keys can be used 
for autodialing or other functions.











































OTERM.DOC -- OTERM Terminal Simulator                page   5


New features/corrections in version 4.

Note: Version  4.00 is almost a complete rewrite  of 
      the program.   Much of it has be rewritten  in 
      C.

Browsing of the log has been implemented.

The CIS A protocol has been implemented.

Access  to the directory ,  typing and  deletion  of 
files have been implemented.

Extended function keys have been implemented.

A  window manager is now used to allow prompting for 
commands, display of messages from OTERM  and of the 
log  and directory.   Escape sequences are not  used 
except from a file.







































OTERM.DOC -- OTERM Terminal Simulator                page   6


Using OTERM (summary).


The  modem should always be in full duplex mode  for 
use with OTERM.  Follow the modem manufacturer's and 
the  Osborne instructions for connecting the  modem.  
Note than almost all modem's will require that pin 2 
on  the modem be connected to pin 3 on the  computer 
and pin 3 on the modem be connected to pin 2 on  the 
computer.

On  exiting OTERM the RS232 interface will be  reset 
to the same options as at entry.

The  setting of the rs232 rate and the line size  on 
the disk have no effect on OTERM.  OTERM always uses 
it's internal settings.

As  distributed,  on startup OTERM is set to commun-
icate with most time sharing services.   The default 
characteristics may be changed temporarily or  OTERM 
can  easily  be modified to start up with  different 
characteristics.

Establish  communications following the modem  manu-
facturer's and the remote service's instructions.

Commands  to  OTERM are preceded by function  key  1 
(control 1).  Other function keys are used for OTERM 
functions.

Several OTERM functions require significant time for 
disk  access  during which OTERM  cannot  check  the 
modem.   If the remote responds to control s to stop 
and  control  q to restart and OTERM is informed  of 
this through the delay command,  OTERM will stop the 
remote  during these operations and no data will  be 
lost.




















OTERM.DOC -- OTERM Terminal Simulator                page   7


Function Keys.

OTERM  takes over the function keys.   The  function 
keys have the following meanings:

      -------------------------------------------
      |      7      |      8      |      9      |
      |             |             |             |
      | scroll up   | scroll up   |   cancel    |
      |   half      |   full      |   file      |
      |             |             |   or fk     |
      |             |             |             |
      -------------------------------------------
      |      4      |      5      |      6      |
      |             |             |             |
      | scroll down | scroll down |   cancel    |
      |   half      |   full      |   special   |
      |             |             |   display   |
      |             |             |             |
      -------------------------------------------
      |      1      |      2      |      3      |
      |             |             |             |
      |   command   |  extended   |  standard   |
      |             |  function   |  function   |
      |             |    key      |    key      |
      |             |             |             |
      -------------------------------------------

A  display  similar to the above may  be  viewed  by 
entering the fkhelp command.

Use of function keys:

Key   Use
---   ----------------------------------------------
 1    Signals OTERM that a command is to be entered.

 2    Signals OTERM that an extended function key is 
      to be entered.  OTERM will prompt for the name 
      of the function key.   Extended function  keys 
      are   installed  in  OTERM  with  the  program 
      OTSETUP.   Note,  that  if  the  name  of  the 
      function  key is a single digit,  the  Osborne 
      function  key (installed with SETUP)  will  be 
      used.   This  function  may not be used  while 
      entering an OTERM command.

 3    Signals  OTERM that an Osborne function key is 
      to be entered.   OTERM does not prompt for the 
      name  of  the function key,  which must  be  a 
      single digit or a single letter.   If a single 
      letter, the extended function key installed by 
      OTSETUP  will be used.   This function may  be 
      used at any time,  including while entering an 
      OTERM command.



OTERM.DOC -- OTERM Terminal Simulator                page   8



  4   Scrolls  the special display down by half  the 
      size of the window.

  5   Scrolls  the special display down by the  size 
      of the window.

  6   Clears special display (browse log, directory, 
      typed file or the function key display).

  7   Scrolls  the  special display up by  half  the 
      size of the window.

  8   Scrolls  the special display up by the size of 
      the window.

  9   Cancels  a  protocol  file transfer  or  halts 
      transmission  without protocol of a  file.   A 
      transmission without protocol may be continued 
      without loss.






































OTERM.DOC -- OTERM Terminal Simulator                page   9


Extended function keys.

Extended or Osborne function keys may be nested to a 
depth  of 16.   There is no checking for  recursion.  
All  function keys are canceled when a file read  is 
started,  but a file read may contain function keys.  
That  is,  if  a function key contains a  file  read 
command,   nothing  in  the  function  key  will  be 
processed after the command.

Extended  function keys are installed in OTERM  with 
the program otsetup.  See otsetup.doc for details.














































OTERM.DOC -- OTERM Terminal Simulator                page   10


OTERM Commands.

When function key 1 is entered, OTERM opens a window 
at the top of the screen and prompts for a  command.  
You  may then enter a command with or without  argu-
ments.   In most cases, if no arguments are entered, 
OTERM  will  then prompt for them.   In a few  cases 
(e.g.  dir) a default will be used.   At any  prompt 
you may enter a ? (followed by return) to see a list 
of  possible  operands or a description of the  com-
mand.

In  scanning commands,  OTERM allows abbreviation to 
the minimum number of letters needed to identify the 
command  or  operand.    Commands  are  checked   in  
alphabetic   order  so  the  line  command  may   be 
abbreviated  "l",  but  the log command requires  at 
least "lo".  Commands and operands may be be entered 
in upper or lower case.

In  some cases (e.g.  log) if no operand is entered, 
the current status is displayed.

Examples:

      cmd: log on     (will turn log on)

      cmd: log        (will  display log status  and 
                      prompt for operands)

      cmd: quit       (will exit OTERM)

Several  commands require the entry of a file  name.  
OTERM uses a generalized file system which does  not 
permit  the  use  of "/" or "\" in a file  name  (of 
course the usual illegal characters are not  allowed 
either).   The slashes are used to set flags for the 
file system.  The only flag which is of use in OTERM 
is  \b,  which causes an old file with the same name 
to  be deleted,  rather than renamed to  <name>.bak.  
Simply  append  this  flag to the end  of  the  name 
(after  the extension) with no  intervening  spaces.  
The old file will only be deleted after the new file 
is successfully written.

All  file  names  may be entered in upper  or  lower 
case.

A new disk may be mounted whenever there are no open 
files.   A new disk may also be mounted on any drive 
except  the default drive (the drive which is  shown 
in the CP/M prompt,  e.g.  A>) whenever there are no 
files open on it.   Remember, halting the reading of 
a file with function key 9 does not close the file.




OTERM.DOC -- OTERM Terminal Simulator                page   11


To  modify OTERM to use new defaults,  simply  enter 
the desired commands,  exit with the quit  command, 
and  save  the program with the CP/M  save  command.  
Remember  to  check the current size of  OTERM  with 
stat before entering OTERM.

The following sections describe in detail the  OTERM 
commands.


















































OTERM.DOC -- OTERM Terminal Simulator                page   12


log command.

A log of the session is kept in memory.   As distri-
buted,  this log is enabled at start up.  The log is 
circular;  that  is,  when the log is filled,  char-
acters  at  the beginning are deleted as  new  char-
acters  are added.   The size of the log depends  on 
the version.   The log is always cleared when  OTERM 
is entered.

If  this  command is entered without  operands,  the 
status of the log will be displayed.

In full duplex mode,  only characters received  from 
the  remote device are entered in the log.   In half 
duplex  mode  all characters sent  or  received  are 
entered.   In  host  mode only characters  sent  are 
entered in the log.

Since  OTERM  does not recognize deletion  of  char-
acters  or lines,   it usually will be necessary  to 
edit  the log after writing it to disk to  eliminate 
errors.   The log may be edited with WordStar or ED.  
This  is  also  useful  for  eliminating  extraneous 
material  from  the log (e.g.  commands or  messages 
when a program source file is listed and logged.)

The following operands are recognized:

  Operand      Function
-----------    -------------------------------------
clear          Clears  the log and  starts  entering 
               data into it.

endfile        Stops automatic saving of the log.

file           Starts automatic saving of the log in 
               a  file.   The file name  is  entered 
               after the word "file".  If not enter-
               ed,  you will be prompted.  This must 
               be the last operand on the line.

nowarn         Turns off warning of log being almost 
               full.

off            Turns off the log.  Data currently in 
               the log is not lost.

on             Turns on the log.   Data currently in 
               the log is not lost.

warn           Turns on warning of log being  almost 
               full.   When  the log is almost full, 
               you will be informed with three bells 
               and,   if  the  remote  responds   to                



OTERM.DOC -- OTERM Terminal Simulator                page   13


               control s and control q (and OTERM is 
               informed  of  this through the  delay 
               command) a control s will be sent.  A 
               control q will not be sent  automati-
               cally.   Warning  is not effective if 
               the log is being automatically saved.

write          Writes  the  current log to  a  file.  
               The file name is be entered after the 
               word "write".   If not  entered,  you 
               will  be prompted.   This must be the 
               last operand on the line.


A common (and the simplest) method of using the  log 
is  to simply ignore it until something is  received 
which one wants to save.   The log is then saved and 
later edited to eliminate unwanted material.








































OTERM.DOC -- OTERM Terminal Simulator                page   14


browse command.

The browse command is used to view the  log.   While 
active,  the  screen is split with the log displayed 
in  the upper half and the terminal display  in  the 
lower.  The scrolling function keys (4, 5, 7, and 8) 
are active while the log is being displayed.

To turn off the log, use function key 6.

The following operands are recognized:

  Operand      Function
-----------    -------------------------------------
down           Followed  by a number.   Scrolls  the 
               log  down  the  specified  number  of 
               lines.  Note: during scrolling, input 
               from the remote cannot be  completely 
               processed  and some data may be  lost 
               if the number of lines is larger than 
               about 400 (at 300 baud).   This  must 
               be the last operand on the line.

end            Starts browsing the log,  showing the 
               last data entered.

start          Starts browsing the log,  showing the 
               oldest data entered. 

up             Followed  by a number.   Scrolls  the 
               log up the specified number of lines.  
               Note:  during  scrolling,  input from 
               the remote cannot be completely  pro-
               cessed  and some data may be lost  if 
               the  number  of lines is larger  than 
               about  400 (at 300 baud).   This must 
               be the last operand on the line.

If no operand is entered, "end" will be assumed.

The display of the log will not be usable if the log 
does  not contain line feeds.   This will  occur  if 
line  feeds are supplied on the console rather  than 
by   the  remote  service  or  by  the  transmission 
routines.













OTERM.DOC -- OTERM Terminal Simulator                page   15


cis command.

Used to turn recognition of CompuServe A protocol on 
or off.  Usually, recognition of CompuServe protocol 
will cause no problems, but there is a slight chance 
that some other service will send control  sequences 
which  make OTERM think it is engaged in an exchange 
with  CompuServe.   If this happens,  turn  off  cis 
protocol.

The possible operands are "on" or "off".

If entered without operands,  the status of cis mode 
will be displayed.

CIS  file  transfers are initiated by the remote  by 
sending  a special sequence  of  characters.   OTERM 
will notify you of the transfer.  If it is an upload 
(transmission  to  the  remote) the  file  size  and 
estimated transmission time will be shown.

The progress of the transmission will be  displayed.  
Under this protocol blocks are variable length,  but 
are  normally  either  128 characters or  256  char-
acters.  When sending,  all blocks except, possibly, 
for the last are 256 characters.

A  file transfer may be cancelled with function  key 
9.   The  other  system is notified of  the  cancel-
lation.




























OTERM.DOC -- OTERM Terminal Simulator                page   16


clear command.

This  command clears the screen.   This is  a  local 
operation.  Nothing is transmitted or logged.






















































OTERM.DOC -- OTERM Terminal Simulator                page   17


console command.

The console command controls the display of informa-
tion sent or received.   It has no effect on the log 
or on the data transmitted:

If entered without operands,  the status of the con-
sole will be displayed.

The following operands are recognized:

  Operand      Function
-----------    -------------------------------------
autolf         Treats a carriage return as the start 
               of a new line (i.e displays as if  it 
               were a carriage return line feed).

bsdel          Deletes the previous character when a 
               backspace is received.

control        Control characters are passed to  the 
               screen  output  routines and  act  as 
               defined in the Osborne user's manual.

ffclr          Clears the screen when a form feed is 
               received.

ignorectl      Control characters are ignored.

maskctl        Control  characters are displayed  as 
               periods.

noautolf       Turns off autolf.   A carriage return 
               moves  the  cursor to the  left,  but 
               does not start a new line.

nobsdel        Turns off bsdel.   A backspace  moves 
               the  cursor left one  character,  but 
               does not delete the character.

nowwrap        Turns off word wrap.  On reaching the 
               end of the line on the screen,  a new 
               line is started immediately.

showctl        Control  characters are displayed  as 
               "^" followed by a printing character.  
               Rubout is displayed as "^?".

wwrap          Turns on word wrap.   On reaching the 
               end of a line,  the line is broken at 
               a word boundary.  For the purposes of 
               OTERM,  a word boundary is a carriage 
               return,    line   feed,    space   or 
               horizontal tab.   Note:  word wrap is 
               done  at the end of the logical  line 



OTERM.DOC -- OTERM Terminal Simulator                page   18


               as specified in the line command, not 
               necessarily   at   the  end  of   the 
               physical  screen.   This option  will 
               probably  not  be too useful  if  the 
               line size is set to greater than 52.

The four options to control display of control codes 
apply   to  most  nondisplayable  codes.    Carriage 
return,  line feed,  back space,  and horizontal tab 
are  not  affected.   Form feed is not  affected  if 
ffclr  is  on.    Nulls  are  displayed  only  under 
showctl.

Control  z,  which normally clears the screen on the 
Osborne,  will  be ignored if control and ffclr  are 
both set on.










































OTERM.DOC -- OTERM Terminal Simulator                page   19


delay command.

When  sending  a file or a function key to a  remote 
computer,  it  may be necessary to give  the  remote 
some time to process the data.  This is accomplished 
with the delay command.

Except  for "usectls",  the delay mode commands  not 
meaningful  except  when a file or function  key  is 
being sent.

If no operands are given,  the delay status will  be 
displayed.

The following operands are recognized:

  Operand      Function
-----------    -------------------------------------
char           Sets delay mode to character.  When a 
               delay  is  required,   it  will   end 
               whenever a character is received from 
               the remote.   This is the opposite of 
               time.

chdelay        Causes  a delay after each  character 
               sent.

delay=         Followed  immediately by a digit  (no 
               space).   Specifies  the length of  a 
               character or line delay.   If 0,  the 
               delay   will   always  be   until   a 
               character is received.

delctls        Causes  transmission  to  stop   when 
               control   s  is  received  from   the 
               remote.    Transmission  will  resume 
               when  a control q is received.

lndelay        Causes a delay after each line sent.

nochdly        Turns off chdelay.

nodelctls      Turns off delctls.

nolndly        Turns off lndelay.

noprompt       Turns  off  waiting for prompt  after 
               each line.

nousectls      Turns off usectls.

prompt=        Followed immediately (no space) by  a 
               character.   After  each  line  sent, 
               OTERM  will  wait until the  specifed 
               character  is  received.   A  control 



OTERM.DOC -- OTERM Terminal Simulator                page   20


               character  may  be  specified  as   ^ 
               followed by a character (e.g.  ^@ for 
               NUL).

time           Causes  character and line delays  to 
               last the specified  time,  regardless 
               of   characters  received  from   the 
               remote.  The opposite of char.

usectls        Informs   OTERM   that   the   remote 
               responds  to  control s to  stop  and 
               control q to restart.  This should be 
               specified   whenever   possible    to 
               prevent   loss   of  data   on   disk 
               accesses.

Use  of  delays for file transmission can be  a  bit 
tricky.   Usually,  a combination of line prompt and 
short  character  delay (1 or 2) works well  if  the 
remote  provides a suitable prompt.   In other cases 
fairly  long (4-7) time delays may be needed.   With 
half  duplex systems,  a line prompt or  long  (5-9) 
time delays will be needed.

Some   time   sharing  services  (most   using   DEC 
equipment)   will   send  a  control   s   to   stop 
transmission and a control q to restart.  If delctls 
is  set,  the transmission will work well,  but  the 
display  will probably be incoherrant if the  remote 
is  sending during the transmission.   If  a  proper 
display  is required,  use a line prompt a character 
delay also.


























OTERM.DOC -- OTERM Terminal Simulator                page   21


directory command.

The  directory  of any disk may be viewed  with  the 
directory  command.   The  only operand is the  disk 
drive letter.  If omitted the default disk is used.

The directory is displayed in a window at the top of 
the screen.   If there are more files than will  fit 
in the window, the scrolling function keys (4, 5, 7, 
and  8)  may be used to view the  entire  directory.  
The display is turned off with function key 6.















































OTERM.DOC -- OTERM Terminal Simulator                page   22


diskspace command.

The  diskspace  command may be used to  display  the 
disk  space  used and remaining on any  drive.   The 
only operand is the disk drive letter.   If omitted, 
the default disk is used.




















































OTERM.DOC -- OTERM Terminal Simulator                page   23


erase command.

The  erase command is used to delete a file  from  a 
disk.   It  takes a single operand,  the name of the 
file to be deleted.

It is possible to delete a file which is being used, 
such  as  the file being typed or read.   The  erase 
command will be accepted,  but actual deletion  will 
be defered until the file is closed.

If  the  file specified is the name of  a  temporary 
file   generated  for  output  (for  the  log   file 
command),  the  erase command will be accepted,  but 
will  be ineffective.   Such files are of  the  form 
TEMPnnnn.$$$, where nnnn are digits.










































OTERM.DOC -- OTERM Terminal Simulator                page   24


file command.

The  file  command is used to read a file as  if  it 
were  typed  at the console.   The file may  contain 
commands  as  an escape character  followed  by  the 
digit  for the function key desired.   The responses 
to the prompts if any must follow in the file.   All 
responses  to prompts must be terminated by  a  car-
riage return and line feed.  An escape character may 
be  sent  by entering two escape characters  in  the 
file.  This same technique is used to enter commands 
from function keys.   Control characters may be ent-
ered  into the file,  or may be specified as  escape 
followed by a character (e.g. esc @ for NUL).

Thus  a file may contain either Osborne or  extended 
function  key calls.   Reading of a file  terminates 
any  active  function keys.   If a file  contains  a 
command  to read another file,  control will pass to 
that file, but will not return at the end (files are 
chained not nested).

Reading  of  a  file may be  temporarily  halted  by 
entering function key 9 from the console.  It may be 
restarted with the file read command.

If  this command is entered  without  operands,  the 
file status will be displayed.

The following operands are recognized:

  Operand      Function
-----------    -------------------------------------
endfile        Terminates  reading of a  file.   The 
               file is closed.

halt           Temporarily stops reading of a  file.  
               The  file  may be restarted with  the 
               read operand.   This command is  only 
               useful if entered from a file.

lf             Allows  transmission  of  line  feeds 
               contained in the file.   Note:   this 
               also applies to function keys.

nolf           Ignores  line feeds contained in  the 
               file.   Note:  this  also applies  to 
               function keys.

read           Followed  by the name of the file  to 
               be  read.   This  must  be  the  last 
               operand on the line.  If reading of a 
               file  was halted with function key  9 
               or  by a file halt command,  the file 
               name may be * to continue the file.



OTERM.DOC -- OTERM Terminal Simulator                page   25


fkhelp command.

Displays the standard OTERM function key usage.























































OTERM.DOC -- OTERM Terminal Simulator                page   26


line command.

Sets  the  logical line size to any  length  from  1 
through 128.  The only operand is the line size.

NOTE:   The line size affects only the display.  The 
        log and the transmission are not affected.

If entered without an operand, the current line size 
will be displayed.
















































OTERM.DOC -- OTERM Terminal Simulator                page   27


modem command.

Used to set the characteristics of the transmission. 

If entered without operands,  the current  transmis-
sion status will be displayed.

The following operands are recognized:

  Operand      Function
-----------    -------------------------------------
300            Sets 300 baud.

1200           Sets 1200 baud.

7bits          Sets 7 bits transmitted.

8bits          Sets 8 bits transmitted.

autolf         Sets  automatic transmission of  line 
               feed  after  carriage  return.   This 
               option  is usually required with host 
               mode.

even           Sets even parity.

full           Sets full duplex operation.

half           Sets half duplex operation.

host           Sets  host  mode.    All   characters 
               received   are  echoed  back  to  the 
               remote.    Use  host  mode  when  the 
               remote  is a terminal (or a  computer 
               acting as a terminal).

noautolf       Turns off autolf

noparity       Sets no parity transmitted.

odd            Sets odd parity.

rs232          Sets   operation  through  the  rs232 
               connector.   Because of hardware  re-
               strictions,  this  setting will  send 
               data  to both the rs232 connector and 
               the serial connector.

serial         Sets  operation  through  the  serial 
               (modem) connector.   Data is not sent 
               to the rs232 connector.







OTERM.DOC -- OTERM Terminal Simulator                page   28


receive command and crcrecv command.

The  receive command is used to receive a file  with 
the  Ward  Christensen  modem  protocol.    This  is 
compatible  with  the  various  versions  of   modem 
(single file transfers only), xmodem and yam.

The  only  operand  is the name of the  file  to  be 
received  (as  it will appear on your  system  -- it 
need not be the same as on the remote).
               
The  crcrecv  command  is the same  as  the  receive 
command,  but  crc checking will be used.   This  is 
superior  to the standard checksum if the remote can 
handle it.

The file transmission may be canceled with  function 
key  9.   The  other  end  is not  notified  of  the 
cancellation.

If  the other system sends a cancel (control  x)  in 
place of the normal block header,  OTERM will inform 
you of this.  This can be useful when one end wishes 
to  halt a transmission.   Don't cancel on the first 
one though, it may just be a transmission error.

































OTERM.DOC -- OTERM Terminal Simulator                page   29


quit command.

This command returns to CP/M.























































OTERM.DOC -- OTERM Terminal Simulator                page   30


send command.

The  send  command is used to send a file  with  the 
Ward Christensen modem protocol.  This is compatible 
with  the  various versions of  modem  (single  file 
transfers only), xmodem and yam.

The  only operand is the name of the file to be sent 
(as it appears on your system -- it need not be  the 
same  as on the remote).

crc checking is implemented.  In this protocol it is 
requested by the receiver.

The file transmission may be canceled with  function 
key  9.   The  other  end  is not  notified  of  the 
cancellation.

If  the other system sends a cancel (control  x)  in 
place of the normal block header,  OTERM will inform 
you of this.  This can be useful when one end wishes 
to  halt a transmission.   Don't cancel on the first 
one though, it may just be a transmission error.



































OTERM.DOC -- OTERM Terminal Simulator                page   31


type command

Used  to  display  a file.   A  single  operand,  an 
unambiguous  file name,  is accepted.   The file  is 
displayed  as a secondary  display.   The  scrolling 
function keys (4 and 5 only) are active.

The  file must be a standard CP/M text file,  except 
that  a  file  with  lines  terminated  by  carriage 
return,   but  no  line  feed,   will  be  displayed 
properly.















































OTERM.DOC -- OTERM Terminal Simulator                page   32


wait command

This  command delays transmission for from 1 through 
60 seconds.   This is sometimes useful in sending  a 
file  without  protocol to allow for some action  by 
the  remote.   The  only operand is  the  number  of 
seconds to wait.



















































OTERM.DOC -- OTERM Terminal Simulator                page   33


Protocol file transfers.

This  section contains information on using OTERM to 
send and receive files.   The information on use  of 
other  programs is,  of course,  not to be taken  as 
absolute.   There  are  many different  versions  of 
other programs which will communicate with OTERM and 
details   vary.     When   in   doubt,   check   the 
documentation  of  the other program.   Most  rcpm's 
have help files or documentation files available.

To  communicate  with another  system,  one  of  the 
systems  must have an originate modem,  the other an 
answer  modem  (not necessarily auto  answer  -- the 
term  answer  here refers only  to  the  frequencies 
used).   Most moderately priced to expensive  modems 
can operate in either originate or answer mode.


Transfers from OTERM to OTERM

It  is  usually best to first  establish  communica-
tions.   One of the systems is set to host mode  and 
auto  line feed transmission (modem host autolf) and 
the other to full duplex (modem full).   It is  then 
possible to communicate through OTERM.   Once commu-
nications have been established, the receiver enters 
the  crcrecv command and the sender enters the  send 
command.  The transfer will then begin.

One  may  use the receive command,  but the  crcrecv 
command gives greater assurance of correct  transfer 
at no measurable cost.


Transfers with other systems

The same method as for OTERM-OTERM transfers  should 
be used,  if possible.   Some programs,  however, do 
not  allow establishing communications as a terminal 
first.   In  that case,  once the modems have  esta-
blished carriers,  enter the required  commands.  If 
the  other system allows crc checking,  it should be 
used.

Some programs are set up for automatic selection  of 
crc checking.   If sending a file to such a program, 
issue  the  send command to OTERM before  the  other 
system issues the receive command.









OTERM.DOC -- OTERM Terminal Simulator                page   34


Receiving from an rcpm.

Most rcpm's use the following method.

Type (to the rcpm, not as an OTERM command)

               xmodem s <filename>

followed by return.   <filename>  is the name of the 
file as it appears on the rcpm.   The xmodem program 
will type a message telling you that it can transfer 
the file or that there is an error.  Usually, if the 
file  can  be transferred it will tell you the  size 
and  the  estimated  transmission  time.   When  the 
message is complete, enter the OTERM command

               crcrecv <filename>

where  <filename> is the file name you wish to  use.  
Usually it should be the same as on the rcpm, except 
that  files with type .OBJ should be  received  with 
type .COM.   These are really COM files, but are put 
on the rcpm with a different type so you will not be 
able to run them.  Usually, you cannot receive files 
with type .COM on the rcpm.

A few systems do not support crc checking.   In that 
case, use the receive command.


Sending to an rcpm

This is similar to receiving.   The command for  the 
rcpm is

               xmodem rc <filename>

for  sending with crc checking.   If crc checking is 
not available, the command is

               xmodem r <filename>

The OTERM command is

               send <filename>

Rcpm's  will not accept files with a type  of  .COM.  
Use  the  type  .OBJ  in the  xmodem  command  (many 
systems will automatically change it if you forget.)

Some  systems  will automatically put the  file  you 
send to a special area.   Others ask that you put it 
in  some special area yourself.   A few  don't  care 
where you put it.




OTERM.DOC -- OTERM Terminal Simulator                page   35




Transferring files with CompuServe

Make  sure  cis protocol is on in  OTERM  (cis  on).  
You  may generally leave it on.   It will seldom  do 
any harm.

There are no OTERM commands directly associated with 
CompuServe  file transfers.   You enter commands  to 
CompuServe,   and  the  system  sends  the  required 
instructions to OTERM.

To  send or receive a file from your user  area,  or 
from  another user area which is accessable to  you, 
enter the (CompuServe) command

               r xftran

You will be prompted for details.

To   receive   a  file  from   access,   enter   the 
(CompuServe) command

               dow <filename>

where <filename> is the name of the file you wish to 
receive.  Again, you will be prompted for details.


Display during transfers

During the transfer,  OTERM displays the block being 
sent  or received and the number of retries.   If  a 
retry  is  required,   OTERM  displays  the  reason.  
Retries are made if either end discovers an error in 
the  transmission.   If there are a great number  of 
retries required, the phone line is probably bad.  A 
few retries are no cause for concern.  In some cases 
transmission errors may cause the transmission to be 
halted.   OTERM will always inform you of this,  and 
if  a  file is being received will delete the  file.  
In this case,  an old file of the same name will  be 
retained.














OTERM.DOC -- OTERM Terminal Simulator                page   36


Common problems.

Protocol file transfers.

The most common problem in making protocol transfers 
is failure to use a program in the remote which uses 
a  compatible protocol or using the wrong  protocol.  
OTERM  can communicate with programs using the  Ward 
Christensen  modem  protocol,  with or  without  crc 
checking,  or  with programs using the CompuServe  A 
protocol.

Versions of modem (a terminal program) are available 
for  most  CP/M systems at no cost.   Some  versions 
(modem 7) also support a batch transmission protocol 
for sending multiple files.   This batch protocol is 
not supported by OTERM.

The modem protocol is also supported by xmodem (used 
by remote CP/M (rcpm) systems), by yam (available at 
no  charge from CompuServe CP/M Interest Group  (CP-
MIG), or from many rcpm systems), and by a number of 
commercial terminal programs.

The  CompuServe A protocol is primarily  useful  for 
uploading  and  downloading from  CompuServe.   This 
protocol  is controled by the remote  (OTERM  cannot 
act as host for this protocol).  Programs are avail-
able from CompuServe CP-MIG to allow CP/M systems to 
act  as host,  but it usually will be better to  use 
the modem protocol.


Double spacing

Line feeds may be supplied by the remote or by OTERM 
or may be supplied on the screen only.  If more than 
one source is supplying line feeds, the display will 
be double spaced.   For most time sharing systems or 
bulletin boards,  line feeds will be supplied by the 
remote and OTERM should be set to 

               console noautolf
               modem noautolf
               file nolf

When  communicating  with a terminal (or a  terminal 
program)  OTERM  will usually have  to  supply  line 
feeds and should be set to

               console noautolf
               modem autolf
               file nolf

In this case, OTERM will usually be in host mode.



OTERM.DOC -- OTERM Terminal Simulator                page   37



Characters not displayed or 
Characters displayed twice

In full duplex mode, characters typed are not shown 
on the screen and must be echoed by the "host".   In 
half  duplex  mode,  each  side is  responsible  for 
displaying  characters  it  sends,   but  most  time 
sharing  services  and bulletin boards  will  supply 
"free"  line  feed.    When  communicating  with   a 
terminal, OTERM may act as the host.

OTERM  and the remote must be in agreement with  the 
remote  as  to whether the transmission is  full  or 
half  duplex.   Most bulletin boards operate only in 
full  duplex mode.   Most time sharing  systems  may 
operate  in either full or half duplex  mode.   Full 
duplex is generally best as the echo gives assurance 
that  characters were received properly.   A notable 
exception  is  that  time  sharing  systems  on  IBM 
mainframes usually operate in half duplex mode only.

If  OTERM  is in half duplex mode while  the  remote 
thinks it is host to full duplex,  anything you type 
will  be  displayed  twice.   If OTERM  is  in  full 
duplex, while the remote thinks it is in half duplex 
mode,  nothing you type will be displayed.   If both 
OTERM  and  the remote are acting as hosts  to  full 
duplex, a character will be repeated indefinitely.


Unable to establish communications.

This is usually due to incompatibility of the modems 
being  used (there are two incompatible  "standards" 
for  1200  baud modems.   If you and the remote  are 
using different standards, you will get nowhere.) or 
by  incompatibility of the  transmissions  settings.  
The two sides should be in agreement as to data rate 
(OTERM  supports 300 baud or 1200 baud),  number  of 
stop bits,  number of data bits,  and parity.   Most 
systems will work with 8 data bits,  1 stop bit,  no 
parity.


Problems with nonprotocol file sending.

A  good  deal of playing around may be necessary  to 
get  the transmission to work properly.   If at  all 
possible,  a line prompt should be used.   In  other 
cases, it may be necessary to set the delay to time.  
When  all  else fails,  try long time delays  (5-9).  
The transmission will be painfully slow, but in most 
cases this will work.




OTERM.DOC -- OTERM Terminal Simulator                page   38


Remember  that with nonprotocl transfers there is no 
error checking.   Line noise may garble a  character 
and  the  error  will be  undetected.   Do  not  use 
nonprotocol  transfers if the other system  supports 
the modem or CIS protocol.





















































OTERM.DOC -- OTERM Terminal Simulator                page   39


        Browse.................................. 12
        Characters displayed twice.............. 33
        Characters not displayed................ 33
        Cis command............................. 13
        Clear command........................... 14
        Commands................................  5
        Common problems......................... 33
        CompuServe A protocol................... 13
        Console command......................... 15
        Control q...............................  5
        Control s...............................  5
        Crcrecv command......................... 25
        Credits.................................  1
        Delay command........................... 17
        Description.............................  2
        Directory command....................... 19
        Diskspace command....................... 20
        Display during transfers................ 32
        Double spacing.......................... 33
        Erase command........................... 21
        Extended function keys..................  8
        File command............................ 22
        File name...............................  9
        Fkhelp command..........................  6,22
        Function key............................ 17
        Function key 1..........................  5, 9
        Function key 6.......................... 12,19
        Function key 9..........................  9,13,22,25,27
        Function Keys...........................  6, 6
        Limitations.............................  3
        Line command............................ 15,23
        Log command............................. 10
        Modem...................................  5
        Modem command........................... 24
        Modify OTERM............................  9
        New disk................................  9
        New features/corrections................  4
        OTERM Commands..........................  9
        Printer.................................  3
        Problems with nonprotocol file sending.. 34
        Protocol file transfers................. 30,33
        Quit command............................ 26
        Receive command......................... 25
        Receiving from an rcpm.................. 31
        Revision level..........................  3
        RS232 interface.........................  5
        Scrolling function keys................. 12,19,28
        Send command............................ 27
        Sending a file.......................... 17
        Sending to an rcpm...................... 31
        Transferring files with CompuServe...... 31
        Transfers from OTERM to OTERM........... 30
        Transfers with other systems............ 30
        Type command............................ 28
        Unable to establish communications...... 34



OTERM.DOC -- OTERM Terminal Simulator                page   40


        Using OTERM (summary)...................  5
        Using the log........................... 11
        Wait command............................ 29