home *** CD-ROM | disk | FTP | other *** search
-
- Pcomm
- A Unix Telecommunication Program
-
- Requirements:
-
- Pcomm will not run on terminals with a screen size of less than
- 80 columns by 24 lines or on terminals that lack cursor movement
- capabilities. For terminals without arrow keys, use the letter
- "U" in place of "up arrow" and the letter "N" in place of
- "down arrow".
-
- Running Pcomm from a dialup line at 1200 baud will be make the
- windows incredibly slow.
-
- Portability:
-
- This program was written with AT&T System V in mind. It makes
- use of System V specific routines such as those in termio(7).
- There is currently no port to Berkeley or v7 Unix.
-
- This program can make use of the newer curses(3) routines from
- SVR2. There is a compile-time definition OLDCURSES for compatibility
- with older flavors of curses(3). None of the functionality is
- lost using older curses, only some of the whistles and bells.
-
- Included in the distribution package is a shell script named
- "Unixpc.shar" that contains the Makefile specific for the AT&T
- Unix PC 7300.
-
- Pcomm makes use of the bold, blinking and standout video attributes.
- My concept of "standout" and "reverse" might be different than
- yours (I like "standout" to be a brighter version of "reverse").
- Check your terminfo database...
-
- Flavors of curses without the keypad() function won't be able to
- recognize arrow keys on the terminal, so users will have to
- substitute the letters described above for the arrow keys.
-
- Things to do:
-
- There are many pre-processor definitions located in the source
- code that alter the way pcomm works, or gives the location of other
- files. The following list shows the location and default settings
- of these definitions:
-
- LOG_CALLS Should pcomm keep a log of all phone calls? The
- default in admin.c is no (#undef). If defined,
- the path to the log file is in LOGFILE.
-
- LIMIT_LD Should access to long distance dialing be limited
- to privileged users? The default in admin.c is
- no (#undef). If defined, the group to check is in
- GRPNAME.
-
- LPRINT This is the pretty line print program. (This is not
- the name of the device). The default in d_print.c
- is "/usr/bin/lprint".
-
- MAX_PASS The maximum number of dialing attempts before we
- give up. The default in di_win.c is 25.
-
- DEFAULT The directory containing the default support files.
- It is not intended that users have write permission
- on these files. The default in init.c is
- "/usr/local/lib/pcomm".
-
- LPR The generic line printer program. (This is not the
- name of the device). The default in input.c is
- "/usr/bin/lpr".
-
- LOCKDIR The location of the UUCP lock files. The default
- in port.c is "/usr/spool/uucp". (HoneyDanBer UUCP
- normally uses /usr/spool/locks).
-
- ASCII_PID Should the pid (process ID) in the UUCP lock file
- be ASCII encoded? The default in port.c is no
- (#undef). (HoneyDanBer UUCP normally uses ASCII pids).
-
- NUM_DIR The maximum slots in the dialing directory. The
- default in dial_dir.h is 100.
-
- NUM_QUEUE The maximum slots in the dialing queue. The default
- in dial_dir.h is 10.
-
- NOPROMOTE Should missing video attributes be promoted to
- standout? The default in misc.h is no (#undef).
-
- NUM_TTY The maximum number of ttys used for dialout. The
- default in modem.h is 10.
-
- NUM_MODEM The maximum number of different types of modems used
- for dialout. The default in modem.h is 10.
-
- MAX_ERRORS The maximum number of errors for a single block
- before we give up on a file transfer. The default
- in xmodem.h is 10.
-
- The compile-time definition SGID is specific to my system, but
- others might find it useful. On my system, all programs that
- access the dialout modems, are set-group-id to "uucp". (This is
- because normal users don't have write permission to the devices,
- the lock directory, or the phone.call logfile). The use of
- SGID will assure that the real group id is restored during shell
- escapes, open()s, etc. The access(2) routine is used to determine
- read and write permissions prior to opening files.
-
- The distribution package contains three sample support files named
- "Pcomm.dial_dir", "Pcomm.modem", and "Pcomm.param". These files
- should be renamed to change the upper case "P" to a lower case
- "p" and copied into the directory given in the DEFAULT definition
- described above.
-
- Documentation:
-
- The reference documentation file, "Doc" is designed to run thru
- the Unix "pr" command before being sent to the printer. For example:
-
- pr -h " Pcomm Reference Manual " | lpr
-
- The file "Pcomm.1" is a nroff manual page suitable for copying
- into /usr/man/man1.
-
- Setup:
-
- Before pcomm can be used properly, the tty/modem database must be
- configured to match your system. The "pcomm.modem" file should
- be edited by the "TTY Setup" and "Modem Setup" menus.
-
- The shell archive "Unixpc.shar" contains the Pcomm.modem file
- specific to the AT&T Unix PC 7300. (Its codes are NOT intuitive)
-
- Where similarities end:
-
- When pcomm is first executed, it hasn't yet selected a communications
- port to use, so characters typed at the blank screen are ignored.
- To get a port without pcomm doing the dialing, select an empty
- entry in the dialing directory, or use the manual dial option with
- the phone number set to a single space character. The second field
- in the status line will show what tty port is currently in use.
-
- Since all printing goes through the Unix print spooler, the printer
- logging feature will not output characters as they appear on the
- screen. Printing will actually start when the print logging is
- toggled off (and the complete print job is sent to the spool).
-
- Pcomm doesn't emulate any terminals... Whatever terminal you're on
- is what the remote system sees.
-
- Pcomm doesn't have a script language or command interpreter. The
- index field of the dialing directory is used instead to act as a
- shortcut into the dialing directory from the "-f" command line
- option. The index field is also used to specify a particular tty
- to be used (as opposed to searching the list of ttys for the first
- free one). This feature must be used on direct connections with
- other machines. For example, if tty12 is a hard-wired port to
- "System A", then the dialing directory entry for "System A" would
- have "tty12" in the index field.
-
- Known limitations:
-
- The keyboard macro feature is not implemented at this time.
-
- The true screen contents are lost when the "hot key" is pressed.
- Pcomm attempts to compensate (rather poorly) by repainting a
- virtual screen of what it thinks the true screen should look like.
- Escape sequences in the virtual screen image will be ignored when
- the background is repainted. For example, if you're on a vt100
- and you receive a ^[[2J to clear the screen, the screen *will* be
- cleared... but when the screen is repainted, it will contain the
- characters ^[, [, 2, J (instead of performing the function).
-
- The disp_tty() routine in s_tty.c currently does not support a
- NUM_TTY definition of greater than 10.
-
- For some strange reason, the first keystroke is "lost" after a
- file transfer is complete or after starting data logging.
-
- Future directions:
-
- The virtual screen routines need a lot of work. The most commonly
- used escape sequences (known to terminfo) will be processed.
-
- I plan to have an option at compile time to have the virtual screen
- buffer held on disk (v7) or in shared memory (SVR2).
-
- The input routine is designed so it could be a standalone program
- that gets called from pcomm. I plan to have an option at compile
- time to have input() compiled into pcomm or as a separate program.
-
-
- Emmet P. Gray US Army, HQ III Corps & Fort Hood
- ...!ihnp4!uiucuxc!fthood!egray Attn: AFZF-DE-ENV
- Directorate of Engineering & Housing
- Environmental Management Office
- Fort Hood, TX 76544-5057
-