⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 通讯程序源码
💻
字号:
				  Pcomm		      A Unix Telecommunication ProgramThings to do first:	1) Figure out what files you need.  There is a shell archive	called "Unixpc.shar" that contains additional (and replacement)	files for users of the AT&T Unix PC 7300/3b1.	2) Create a default directory where the Pcomm support files will	go.  A good location might be /usr/local/lib/pcomm.	3) Edit the Makefile to reflect the location of the default	directory (PCOMM_LIB), the location of the executable programs	(BIN_DIR), and the location and file extension of the on-line	manuals (MAN_DIR) and (MAN_EXT).	4) Install the four sample support files Pcomm.dial_dir,	Pcomm.extrnl, Pcomm.modem, and Pcomm.param to the default	directory by typing "make install_support".  Please remember	these are just sample files...	5) Install the on-line manual pages Pcomm.1, Pcomm_cmd.1,	Matches.1, and Waitfor.1 to the proper /usr/man directory by	typing "make install_man".  For those without access to nroff,	I've included the output files called Pcomm.out, Pcomm_cmd.out,	Matches.out, and Waitfor.out in the last shell archive.	6) Print the Pcomm Reference Manual.  The Doc.me file is the	nroff input which should be run thru tbl and the "me" macro	package, as in:		tbl Doc.me | nroff -me -Twhatever | lp	For those without access to nroff, I've included the output file	called Doc.out in the last shell archive.	The "me" macro package appears to be freely available and is	included in the Berkeley 4.3 public distribution.How to compile Pcomm:	1) There is a shell script called "Configure.sh" that should	provide some information about your system.  It does *not* edit	the "Makefile" or" config.h" files...	2) Edit the "config.h" file to suit your system's needs and your	personal taste.  Sites running HoneyDanBer (HDB) UUCP should pay	particular attention to the LOCK_DIR and ASCII_PID definitions.	The definitions in config.h are:	BSD		Define if you're using a Berkeley flavor of Unix.			You will also have to edit the Makefile in			several places.	UNIXPC		If defined, use the dial(3) routines specific			to the AT&T Unix PC 7300/3b1.  Useful only if			the On Board Modem (OBM) is to be used.	OLDCURSES	If defined, use the older version of curses(3).			(uses termcap in lieu of terminfo).	NOPROMOTE	If defined, do not promote missing video			attributes to standout.  Normally, curses(3)			attempts to compensate for missing attributes.	LOG_CALLS	If defined, Pcomm will keep an administrative log			of all calls.  The log contains the name of the			person making the call, the phone number, and a			date/time stamp.  Useful for verifying long			distance phone bills.	LOGFILE		The path to the log file (if LOG_CALLS is			defined).  It should have write permission to			all or be writeable under set-user/group-id			conditions.	LIMIT_LD	If defined, Pcomm will limit long distance			(toll) calls to a privileged group.  The file			"admin.c" may require tweaking to detect long			distance numbers.	GROUP_NAME	The name of the group that is allowed to make			long distance calls (if LIMIT_LD is defined).	LPR		The path to the line printer program (this is			not the name of the device).	LPRINT		The path to the "pretty" line printer program.			If none exist, use "pr | lp".	DEFAULT_DIR	The path to the directory that contains the			default Pcomm support files.	LOCK_DIR	The path to the directory where the UUCP lock			files are found.  On HDB systems this would			probably be /usr/spool/locks.	ASCII_PID	If defined, the lock files will contain an ASCII			encoded process id (PID).  On HDB systems this			is the default.	XENIX_LOCKS	If defined, the last letter of the device name			is folded to lower case when creating the lock			file.  Newer version of XENIX may require this.	SVR4_LOCKS	If defined, the new UUCP lockfile format			introduced in SVR4 will be used.	XMC_BROKE	Does the status line scroll up when using "magic			cookie" terminals?  Some Pyramid and AT&T			systems may require this to be defined.  Find a			magic cookie terminal (a Wyse 50 for example),			and see what happens.	WGETCH_BROKE	Does the alarm() system call work correctly with			the wgetch() function?  Symptom:  the initial			screen doesn't go away by itself after 5			seconds.	O_NDELAY_BROKE	Does the fnctl() to turn off the O_NDELAY mode			sometimes fail to work?  Symptom: no response			from the modem.	CLIST_SIZ	The size of the serial port character buffer.			The default is 64.	INPUT_BUF	The size of the input buffer (should be about the			same size as CLIST_SIZ).  The default is 64.	OUTPUT_BUF	The size of the output buffer (should be about			one half INPUT_BUF).  The default is 32.  Systems			without dedicated I/O processors may require a			small INPUT_BUF value to avoid the problem of a			"choppy" display.	MEMMOVE		The name of the memory copy routine. The default			is memmove(), although memcpy() or bcopy() will			work (if they correctly handle target and source			overlap).	SETUID_BROKE	Does your version of Unix allow you to flip-flop			back and forth between the real and effective			user (or group) ID?  Some Masscomp systems will			require this to be set.	HAVE_STRSTR	Does your system have the strstr() function?			Most Berkeley systems will require this to be			#undef.	HAVE_USLEEP	Does your system have the usleep() function?			Most non-Sun system will require this to be			#undef.	HAVE_TRUNCATE	Does your system have the truncate() system call?			Most modern systems do.	3) Edit the Makefile.  There are provisions in the Makefile to	include getcwd(3) and getopt(3) routines if they are missing	from your system.  You may want to customize the CFLAGS and	LDFLAGS assignments to suit your needs.	If compiling under Berkeley Unix, you will have to edit the	Makefile on the following lines:		#for old curses(3) or Berkeley systems		CURSES = -lcurses -ltermcap		#CURSES = -lcurses		#for System V or Berkeley TTY interface		TTY.C = tty_ucb.c		TTY.O = tty_ucb.o		#TTY.C = tty_att.c		#TTY.O = tty_att.o		#for System V poll() or Berkeley select()		IPC.C = ipc_ucb.c		IPC.O = ipc_ucb.o		#IPC.C = ipc_att.c		#IPC.O = ipc_att.o	All the defaults in config.h assume a AT&T flavor of Unix, sorry	about that...	4) Compile pcomm.  Type "make".  The "make install" option will	attempt to copy "pcomm" into the BIN_DIR directory given in the	Makefile.  However, those sites running HDB UUCP software may	require that you to change the mode of "pcomm" to be set-user-id	to uucp.	Three external programs (pcomm_cmd, waitfor, and matches) are	included in the distribution to help in creating auto-login	shell scripts.How to configure Pcomm:	Please remember that the Pcomm support files provided are just	examples.  They must be modification by you.        1) Determine the names of the devices that Pcomm will be using.        Pcomm must use the same device names that UUCP uses.  For        example, if your system has two names for the same device such        as "ttya" and "cua0", then use the one that UUCP uses, not the        one that getty uses.  Some systems use "tty01h" to designate a        bi-directional tty line used by both getty and UUCP.	2) Get out the books that came with your modems.  You're gonna	have to know a lot about your modems in order to configure them	correctly to suit both Pcomm's needs and the needs of your	getty/UUCP settings.	3) Here are the "real life" settings for my Telebit Worldblazer	on a Dell SVR4 box running uugetty.        My Telebit WorldBlazer modem for my dialin/dialout port is set        with the following commands.		&F 	Restores factory settings		L1	Low speaker volume		X2	Detailed result codes (connect speeds)		Q2	Turns on result codes only when dialing out		&C1	DCD follows the carrier		&D3	Hard reset on loss of DTR		S0=1	Answer on first ring		S7=60	60 second wait for carrier		S51=6	Interface speed set to 38400 bps		S58=2	Full duplex RTS/CTS flow control		S59=15	Result code extensions		S61=0	Pass modem breaks to the other end		&W	Save in NVM	AT&V	WorldBlazer - SA - Version LA5.00W- Active Configuration	 B1  E1  L1  M1  P   Q2  V1  X2  Y0 	&C1 &D3 &G0 &J0 &L0 &Q0 &R3 &S0 &T4 &X0 	S000:1   S001=0   S002=43  S003=13  S004=10  S005=8   S006=2   S007:60 	S008=2   S009=6   S010=14  S011=70  S012=50  S018=0   S025=5   S026=1  	S038=0   S041=0   S045=0   S046=0   S047=4   S048=0   S050=0   S051:6  	S056=17  S057=19  S058:2   S059:15  S060=0   S061:0   S062=15  S063=0  	S064=0   S068=255 S069=0   S090=0   S092=0   S093=8   S094=1   S100=0  	S104=0   S105=1   S111=255 S112=1   S151=4   S155=0   S180=2   S181=1  	S183=25  S190=1   S191=7   S253=10  S254=255 S255=255 	/usr/local/lib/pcomm/pcomm.modem:	TTY_1=tty01h;TELEBIT;38400	MODEM_1a=TELEBIT;ATZ!~~!;ATDT;!;~~+++~~ATH0!	MODEM_1b=Y;CONNECT 300;CONNECT 1200;CONNECT 2400;CONNECT 4800;CONNECT 9600;CONNECT FAST;	MODEM_1c=BUSY;NO CARRIER;NO DIALTONE;ERROR	/etc/uucp/Dialers:	wblazer   =W-,	"" \M\dATZ OK ATDT\T CONNECT \m\c	/etc/uucp/Devices:	ACU tty01h,M - 38400 wblazer	/etc/uucp/Systems:	system Any ACU 38400 5551212 "" \r ogin: mylogin assword: mypassword	/etc/inittab:	01h:23:respawn:/usr/lib/uucp/uugetty -t60 tty01h wblazer	/etc/gettydefs:	wblazer# B38400 SANE HUPCL # B38400 SANE IXANY TAB3 #login: #wblazer	4) Update the sample modem/TTY database.  I know I'm asking the	impossible, but...  Read section 3 and the Appendices of the Doc	file first.  Then run Pcomm to update the modem/TTY database by	using the TTY Setup and the Modem Setup menues.	5) There is a Question and Answer file (called Q_and_A) that may	help diagnose problems.Portability considerations:	1) 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").  Some very old versions of curses will ignore the	standout mode if you're on a magic cookie terminal.	2) The "port.c" file has a place where you can include your own	routine to toggle the getty process on a port (if required).	3) If you compile Pcomm with LOG_CALLS defined, you'll have to	look at the code in "admin.c" to see if the long distance	detection routine is correct for your site.	4) There is a "typedef SIG_TYPE" in the config.h file to help	silence the compiler's warning messages about the signal()	return value.Notes for Sun users...  There are several problems that apparently onlysurface with SunOS 4.x.  Here are some notes to help out.        1) Pcomm was really designed to work in an AT&T world.  If you        compile the code with the /usr/5bin/cc compiler, you'll end up        with a better product.  To do so, you'll need to use default        AT&T parameters in config.h (undef OLDCURSES and undef BSD, etc)        plus the default AT&T parameters in Makefile for (CURSES, TTY.C,        and TTY.O).  You'll also have to change the CC and LD variables        in the Makefile to reflect /usr/5bin/cc.        However, SunOS 4.x doesn't like the AT&T versions of IPC.C and        IPC.O, so use the Berkely ones.  This is contrary to what the        Configure.sh script will tell you!  Perhaps SunOS 5.0 will fix        all this...        2) SunOS 4.x no longer supports the AT&T version of the times()        system call, so usleep() should be used to generate the delay.	Edit config.h to #define HAVE_USLEEP.Notes for some 4.2BSD and Ultrix 1.2 systems:	Apparently, there is a bug in the /usr/include/curses.h file on	some systems that does not define the nl() and nonl() macros	correctly.  If this is the case with your system, edit	/usr/include/curses.h to include the following:	#undef nl	#undef nonl	#define nl()	(_tty.sg_flags |= CRMOD,_pfast = _rawmode,stty(_tty_ch, &_tty))	#define nonl()	(_tty.sg_flags &= ~CRMOD, _pfast = TRUE, stty(_tty_ch, &_tty))Notes for some 386 versions of Unix:        It seems that a lot of the early versions of Unix for "DOS        boxes" have bugs in their terminfo database for AT386 (the        default terminal type).  Here is one that works:AT386|at386|386AT|386at|at/386 console,	am, eo, xon,	colors#8, cols#80, lines#25, ncv#3, pairs#64,	acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,        bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[2J\E[H,        cr=\r, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,        cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%02d;%p2%02dH,        cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[8;1m,        dl=\E[%p1%dM, dl1=\E[1M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,        el1=\E[1K\E[X, flash=^G, home=\E[H, hpa=\E[%i%p1%dG,        ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=\E[S,        indn=\E[%p1%dS, invis=\E[8m, is2=\E[0;10, kbs=\b, kcbt=^],        kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,        kdch1=^?, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA,        kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,        kf8=\EOW, kf9=\EOX, khome=\E[H, kich1=\E[@, knp=\E[U, kpp=\E[V,        krmir=\E0, op=\E[0m, pfx=\EQ%p1%{1}%-%d'%p2%s', rev=\E[7;1m,        ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m, rmso=\E[m, rs1=\E[0;10m,        setab=\E[4%p1%dm, setaf=\E[3%p1%dm,        setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,        setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,        sgr=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p9%t;12%;%?%p7%t;9%;m,        sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m,Emmet P. Gray				US Army, HQ III Corps & Fort Hood...!uunet!uiucuxc!fthood!egray		Attn: AFZF-DE-ENVfthood!egray@uxc.cso.uiuc.edu		Directorate of Engineering & Housing					Environmental Management Office					Fort Hood, TX 76544-5057

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -