egray@fthood.UUCP (09/05/90)
This is patch #9 to the Pcomm v1.2 distribution package. Pcomm v1.2 appeared in comp.sources.unix as v20i067 thru v20i075 around the 27th of October 1989. Since then, patches #5 through #8 were posted to comp.sources.bugs. Both the current version of Pcomm and all the patches are available via anonymous ftp from cerl.cecer.army.mil (129.229.1.101). This patch will change the way that the "locked interface speed" feature is used. Now, if the locked interface feature is used, the speed remains locked rather than expecting a modem initialization command to unlock the interface. It seems that Telebit modems just flat don't work right unless the interface speed is locked. Read the updated Appendix C in the Doc file for more info on using Telebit modems. If anyone wants the nroff version of the Doc file, it too is available from cerl.cecer.army.mil as pcomm_sh.1. Likewise, the formatted output of all the nroff files are now in pcomm_sh.9. Emmet P. Gray US Army, HQ III Corps & Fort Hood ...!uunet!uiucuxc!fthood!egray Attn: AFZF-DE-ENV fthood!egray@uxc.cso.uiuc.edu Directorate of Engineering & Housing Environmental Management Office Fort Hood, TX 76544-5057 ------------------------------------------------------------------------------ Prereq: "1.2.8" *** old/info.c Tue Sep 4 07:59:39 1990 --- info.c Sun Sep 2 18:28:02 1990 *************** *** 4,9 */ ! #define VERSION "1.2.8" ! #define DATE "20 Jan 90" #include <stdio.h> --- 4,9 ----- */ ! #define VERSION "1.2.9" ! #define DATE "1 Sep 90" #include <stdio.h> *************** *** 35,38 mvwaddstr(w_win, 19, 45, "Emmet P. Gray"); mvwaddstr(w_win, 20, 45, "...!uunet!uiucuxc!fthood!egray"); wmove(w_win, 22, 79); wrefresh(w_win); --- 35,39 ----- mvwaddstr(w_win, 19, 45, "Emmet P. Gray"); mvwaddstr(w_win, 20, 45, "...!uunet!uiucuxc!fthood!egray"); + mvwaddstr(w_win, 21, 45, "fthood!egray@uxc.cso.uiuc.edu"); wmove(w_win, 22, 79); wrefresh(w_win); *** old/Doc Tue Sep 4 07:59:01 1990 --- Doc Mon Sep 3 18:34:40 1990 *************** *** 88,92 Appendix A - Typical Modem Configuration ...... 31 Appendix B - AT&T Unix PC 7300/3b1 Dial Codes . 32 ! Appendix C - Using Telebit Trailblazers ....... 34 1. INTRODUCTION --- 88,92 ----- Appendix A - Typical Modem Configuration ...... 31 Appendix B - AT&T Unix PC 7300/3b1 Dial Codes . 32 ! Appendix C - Using Telebit Modems ............. 34 1. INTRODUCTION *************** *** 277,281 4) General Setup 5) ASCII Transfer Setup ! 6) External Proctol Setup S) Save setup to disk --- 277,281 ----- 4) General Setup 5) ASCII Transfer Setup ! 6) External Protocol Setup S) Save setup to disk *************** *** 324,329 2) tty11 HAYES 0 3) tty12 DIRECT 0 ! 4) tty13 TELEBIT 0 ! 5) tty13 FAST_TELEBIT 0 6) 0 7) 0 --- 324,329 ----- 2) tty11 HAYES 0 3) tty12 DIRECT 0 ! 4) tty13 TELEBIT 19200 ! 5) tty13 FAST_TELEBIT 19200 6) 0 7) 0 *************** *** 636,640 3.7 External protocol setup ! This setup screen allows you to imbed the name of external file transfer programs into the list of available protocols. When transferring files, the external program name will appear on the --- 636,640 ----- 3.7 External protocol setup ! This setup screen allows you to embed the name of external file transfer programs into the list of available protocols. When transferring files, the external program name will appear on the *************** *** 674,678 (if any) to the end of the command. ! NOTE: The program itself isn't "imbedded" into Pcomm (it still gets called like any other external program), only the name and invocation information is actually incorporated into Pcomm. --- 674,678 ----- (if any) to the end of the command. ! NOTE: The program itself isn't "embedded" into Pcomm (it still gets called like any other external program), only the name and invocation information is actually incorporated into Pcomm. *************** *** 1040,1044 Frequently used external file transfer programs (such as zmodem) ! can have their names imbedded into the list of available protocols by using the External Protocol Setup in section 3.7. --- 1040,1044 ----- Frequently used external file transfer programs (such as zmodem) ! can have their names embedded into the list of available protocols by using the External Protocol Setup in section 3.7. *************** *** 1311,1315 would wait up to 5 seconds for the string "ogin:". If the ! return code is 0 (the strings did apear), send the string "egray" (my user ID). --- 1311,1315 ----- would wait up to 5 seconds for the string "ogin:". If the ! return code is 0 (the strings did appear), send the string "egray" (my user ID). *************** *** 1370,1374 A more complex script is required if the user must send a modem ! break to syncronize the baud rate of the remote. For example: echo "" --- 1370,1374 ----- A more complex script is required if the user must send a modem ! break to synchronize the baud rate of the remote. For example: echo "" *************** *** 1538,1542 Appendix C ! Using Telebit Trailblazers The Telebit Trailblazer modem is probably representative of the --- 1538,1542 ----- Appendix C ! Using Telebit Modems Telebit modems are probably representative of the newer high *************** *** 1540,1546 Using Telebit Trailblazers ! The Telebit Trailblazer modem is probably representative of the ! newer high speed intelligent modems available today and ! therefore warrants a more detailed discussion. 1) Locked interface speed --- 1540,1546 ----- Using Telebit Modems ! Telebit modems are probably representative of the newer high ! speed intelligent modems available today and therefore warrant a ! more detailed discussion. 1) Locked interface speed *************** *** 1546,1550 1) Locked interface speed ! Trailblazers have the ability to maintain a locked interface speed with the computer without regard to the connected baud rate. For example, some people find it --- 1546,1550 ----- 1) Locked interface speed ! Telebit modems have the ability to maintain a locked interface speed with the computer without regard to the connected baud rate. For example, most people find it *************** *** 1548,1556 Trailblazers have the ability to maintain a locked interface speed with the computer without regard to the ! connected baud rate. For example, some people find it ! necessary to lock the interface speed at 9600 baud (or ! some other speed) for normal operations. However, Pcomm ! assumes the interface speed is the same as the connected ! baud rate. The "init speed" field of the TTY database was created --- 1548,1554 ----- Telebit modems have the ability to maintain a locked interface speed with the computer without regard to the ! connected baud rate. For example, most people find it ! necessary to lock the interface speed at 19200 baud (or ! 9600) for normal operations. The "init speed" field of the TTY database was created *************** *** 1556,1562 The "init speed" field of the TTY database was created to solve this problem. If this value is non-zero, Pcomm ! will send the initialization string to the modem at this ! baud rate. Normally, Pcomm would use the baud rate in ! the dialing directory to send the init string. The init string would now contain the codes to unlock --- 1554,1560 ----- The "init speed" field of the TTY database was created to solve this problem. If this value is non-zero, Pcomm ! will only use this baud rate when talking to the modem. ! The true connected baud rate will continue to be ! displayed in the status line. 2) Multiple setups *************** *** 1560,1569 the dialing directory to send the init string. - The init string would now contain the codes to unlock - the interface, enter the autobaud mode on receipt of a - break, and arrange for the loss of the DTR to return the - modem to its previous locked state. For Telebit - Trailblazers this would be S66=0, S51=255, and S52=2. - 2) Multiple setups --- 1558,1561 ----- displayed in the status line. 2) Multiple setups *************** *** 1568,1572 2) Multiple setups ! Users of Trailblazers often require a different "init string" or "dial string" depending on the target baud rate. For example, the init strings for 9600 and 19200 --- 1560,1564 ----- 2) Multiple setups ! Users of Telebit modems may require a different "init string" or "dial string" depending on the target baud rate. For example, the init strings for 9600 and 19200 *************** *** 1571,1575 string" or "dial string" depending on the target baud rate. For example, the init strings for 9600 and 19200 ! baud may contain the command "S50=255" (to wait for the Telebit PEP tones) whereas the slower init strings would contain "S50=0". --- 1563,1567 ----- string" or "dial string" depending on the target baud rate. For example, the init strings for 9600 and 19200 ! baud may contain the command "S50=255" (wait for the Telebit PEP tones) whereas the slower init strings would contain "S50=0" (automatic speed search). *************** *** 1573,1577 baud may contain the command "S50=255" (to wait for the Telebit PEP tones) whereas the slower init strings would ! contain "S50=0". This problem is solved by creating an additional modem --- 1565,1569 ----- baud may contain the command "S50=255" (wait for the Telebit PEP tones) whereas the slower init strings would ! contain "S50=0" (automatic speed search). This problem is solved by creating an additional modem *************** *** 1578,1582 entry in the modem database. For example, you could have an entry called "TELEBIT" for baud rates in the ! range of 300-2400 and another entry called "FAST_TELEBIT" for baud rates in the range of 9600-19200. --- 1570,1574 ----- entry in the modem database. For example, you could have an entry called "TELEBIT" for baud rates in the ! range of 300-4800 and another entry called "FAST_TELEBIT" for baud rates in the range of 9600-19200. *************** *** 1584,1589 Pcomm uses the connect strings to determine if the modem can handle the requested baud rate. So, if the ! "TELEBIT" entry had connect strings for 300, 1200, and ! 2400 baud it would be selected only if the requested baud rate was in that range. Likewise, the FAST_TELEBIT would have connect strings only for 9600 and 19200 baud. --- 1576,1581 ----- Pcomm uses the connect strings to determine if the modem can handle the requested baud rate. So, if the ! "TELEBIT" entry had connect strings for 300, 1200, 2400, ! and 4800 baud it would be selected only if the requested baud rate was in that range. Likewise, the FAST_TELEBIT would have connect strings only for 9600 and 19200 baud. *************** *** 1588,1593 baud rate was in that range. Likewise, the FAST_TELEBIT would have connect strings only for 9600 and 19200 baud. - - 3) Baud rate synchronization In contrast to the Hayes 2400 modem, the Trailblazer --- 1580,1583 ----- baud rate was in that range. Likewise, the FAST_TELEBIT would have connect strings only for 9600 and 19200 baud. 3) Telebit register settings *************** *** 1591,1598 3) Baud rate synchronization ! In contrast to the Hayes 2400 modem, the Trailblazer ! does not immediately synchronize with the serial port ! when the baud rate is changed during the modem's command ! mode. To solve this problem, the init string and dial string --- 1581,1585 ----- would have connect strings only for 9600 and 19200 baud. ! 3) Telebit register settings The following configuration is what I personally use for *************** *** 1596,1604 mode. ! To solve this problem, the init string and dial string ! should contain the break character synonym followed by a ! sufficient number of A's to allow the modem to ! synchronize. The default character synonym for a modem ! break is the "%". 4) Sample TTY database --- 1583,1602 ----- 3) Telebit register settings ! The following configuration is what I personally use for ! my Telebit T2500's on bi-directional lines (ones with ! uugetty). ! ! ~&F1 restores enhanced command mode settings ! Q2 use result codes only when dialing out ! S0=1 answer on first ring ! S7=60 wait at least 60 seconds for a carrier ! S51=5 set interface speed to 19200 baud ! S52=1 hangup on loss of DTR ! S54=3 pass modem breaks through ! S58=2 full duplex RTS/CTS flow control ! S66=1 lock the interface speed ! S131=1 data carrier detect follows the carrier ! &W0 save in NVM A ! &W1 save in NVM B 4) Sample TTY database *************** *** 1608,1616 TTY name Modem name Init speed ! 1) tty10 HAYES 0 ! 2) tty11 HAYES 0 ! 3) tty12 DIRECT 0 ! 4) tty13 TELEBIT 0 ! 5) tty13 FAST_TELEBIT 0 Notice that entries 4 and 5 share the same TTY. --- 1606,1614 ----- TTY name Modem name Init speed ! 1) tty10 HAYES 0 ! 2) tty11 HAYES 0 ! 3) tty12 DIRECT 0 ! 4) tty13 TELEBIT 19200 ! 5) tty13 FAST_TELEBIT 19200 Notice that entries 4 and 5 share the same TTY. *************** *** 1616,1623 Notice that entries 4 and 5 share the same TTY. - NOTE: The examples assume the modem interface speed is not - locked. See paragraph 1 for additional codes to be added to the - init string if the lock interface feature is used. - 5) Sample modem database entry for TELEBIT --- 1614,1617 ----- Notice that entries 4 and 5 share the same TTY. 5) Sample modem database entry for TELEBIT *************** *** 1623,1627 The third entry in the sample modem database is for the ! Telebit Trailblazer designated for use at slow speeds. 1) Modem name (3 of 4) .... TELEBIT --- 1617,1621 ----- The third entry in the sample modem database is for the ! Telebit modem designated for use at slow speeds. 1) Modem name (3 of 4) .... TELEBIT *************** *** 1626,1631 1) Modem name (3 of 4) .... TELEBIT ! 2) Modem init string ...... %AAAAAATS50=0S2=43S95=0M1! ! 3) Dialing command ........ %AAAAAATDTW 4) Dialing cmd suffix ..... ! 5) Hang up string ......... ~~+++~~ATH0! --- 1620,1625 ----- 1) Modem name (3 of 4) .... TELEBIT ! 2) Modem init string ...... ATZ!~~ ! 3) Dialing command ........ ATDT 4) Dialing cmd suffix ..... ! 5) Hang up string ......... ~~+++~~ATH0! *************** *** 1634,1638 8) 1200 baud connect ...... CONNECT 1200 9) 2400 baud connect ...... CONNECT 2400 ! 10) 4800 baud connect ..... 11) 9600 baud connect ..... 12) 19200 baud connect .... --- 1628,1632 ----- 8) 1200 baud connect ...... CONNECT 1200 9) 2400 baud connect ...... CONNECT 2400 ! 10) 4800 baud connect ..... CONNECT 4800 11) 9600 baud connect ..... 12) 19200 baud connect .... *************** *** 1640,1644 14) No connect string 2 ... ERROR 15) No connect string 3 ... NO CARRIER ! 16) No connect string 4 ... 6) Sample modem database entry for FAST_TELEBIT --- 1634,1638 ----- 14) No connect string 2 ... ERROR 15) No connect string 3 ... NO CARRIER ! 16) No connect string 4 ... NO DIALTONE 6) Sample modem database entry for FAST_TELEBIT *************** *** 1644,1649 6) Sample modem database entry for FAST_TELEBIT ! The 4th entry is for the Telebit Trailblazer designated ! for use at higher speeds. 1) Modem name (4 of 4) .... FAST_TELEBIT --- 1638,1643 ----- 6) Sample modem database entry for FAST_TELEBIT ! The 4th entry is for the Telebit modem designated for ! use at higher speeds. 1) Modem name (4 of 4) .... FAST_TELEBIT *************** *** 1648,1653 1) Modem name (4 of 4) .... FAST_TELEBIT ! 2) Modem init string ...... %AAAAAATS50=255S2=43S95=0M1! ! 3) Dialing command ........ %AAAAAATDTW 4) Dialing cmd suffix ..... ! 5) Hang up string ......... ~~+++~~ATH0! --- 1642,1647 ----- 1) Modem name (4 of 4) .... FAST_TELEBIT ! 2) Modem init string ...... ATZ!~~ATS50=255! ! 3) Dialing command ........ ATDT 4) Dialing cmd suffix ..... ! 5) Hang up string ......... ~~+++~~ATH0! *************** *** 1652,1656 4) Dialing cmd suffix ..... ! 5) Hang up string ......... ~~+++~~ATH0! ! 6) Auto baud detect ....... N 7) 300 baud connect ....... 8) 1200 baud connect ...... --- 1646,1650 ----- 4) Dialing cmd suffix ..... ! 5) Hang up string ......... ~~+++~~ATH0! ! 6) Auto baud detect ....... Y 7) 300 baud connect ....... 8) 1200 baud connect ...... *************** *** 1657,1662 9) 2400 baud connect ...... 10) 4800 baud connect ..... ! 11) 9600 baud connect ..... CONNECT ! 12) 19200 baud connect .... CONNECT 13) No connect string 1 ... BUSY 14) No connect string 2 ... ERROR --- 1651,1656 ----- 9) 2400 baud connect ...... 10) 4800 baud connect ..... ! 11) 9600 baud connect ..... CONNECT 9600 ! 12) 19200 baud connect .... CONNECT FAST 13) No connect string 1 ... BUSY 14) No connect string 2 ... ERROR *************** *** 1662,1664 14) No connect string 2 ... ERROR 15) No connect string 3 ... NO CARRIER ! 16) No connect string 4 ... --- 1656,1658 ----- 14) No connect string 2 ... ERROR 15) No connect string 3 ... NO CARRIER ! 16) No connect string 4 ... NO DIALTONE *** old/Makefile Tue Sep 4 07:59:27 1990 --- Makefile Tue Sep 4 11:50:27 1990 *************** *** 35,39 #for System V or Berkeley worlds - #BSD = -DBSD #TTY = tty_ucb.o BSD = --- 35,38 ----- #for System V or Berkeley worlds #TTY = tty_ucb.o TTY = tty_att.o *************** *** 37,41 #BSD = -DBSD #TTY = tty_ucb.o - BSD = TTY = tty_att.o --- 36,39 ----- #for System V or Berkeley worlds #TTY = tty_ucb.o TTY = tty_att.o *************** *** 60,64 waitfor: ! $(CC) $(CFLAGS) $(BSD) $(LDFLAGS) waitfor.c -o waitfor $(SHLIB) matches: --- 58,62 ----- waitfor: ! $(CC) $(CFLAGS) $(LDFLAGS) waitfor.c -o waitfor $(SHLIB) matches: *************** *** 66,70 modem_break: ! $(CC) $(CFLAGS) $(BSD) $(LDFLAGS) modem_break.c -o modem_break $(SHLIB) install: --- 64,68 ----- modem_break: ! $(CC) $(CFLAGS) $(LDFLAGS) modem_break.c -o modem_break $(SHLIB) install: *************** *** 93,97 xmodem.c lint -p -Dlint input.c vcs.c ! lint -p -Dlint $(BSD) waitfor.c lint -p -Dlint matches.c lint -p -Dlint $(BSD) modem_break.c --- 91,95 ----- xmodem.c lint -p -Dlint input.c vcs.c ! lint -p -Dlint waitfor.c lint -p -Dlint matches.c lint -p -Dlint modem_break.c *************** *** 95,99 lint -p -Dlint $(BSD) waitfor.c lint -p -Dlint matches.c ! lint -p -Dlint $(BSD) modem_break.c shar: --- 93,97 ----- lint -p -Dlint waitfor.c lint -p -Dlint matches.c ! lint -p -Dlint modem_break.c shar: *************** *** 98,102 shar: ! $(SHAR) Doc > pcomm_sh.1 $(SHAR) Makefile Matches.1 Modem_break.1 Pcomm.1 Pcomm.dial_dir \ Pcomm.extrnl Pcomm.modem Pcomm.param Readme Release.notes Sample \ --- 96,100 ----- shar: ! $(SHAR) Doc.nr > pcomm_sh.1 $(SHAR) Makefile Matches.1 Modem_break.1 Pcomm.1 Pcomm.dial_dir \ Pcomm.extrnl Pcomm.modem Pcomm.param Readme Release.notes Sample \ *************** *** 101,106 $(SHAR) Makefile Matches.1 Modem_break.1 Pcomm.1 Pcomm.dial_dir \ Pcomm.extrnl Pcomm.modem Pcomm.param Readme Release.notes Sample \ ! Unixpc.shar Waitfor.1 > pcomm_sh.2 ! $(SHAR) admin.c chg_dir.c config.h curses.c d_delete.c d_lib.c \ d_manual.c d_menu.c d_print.c d_prompt.c d_revise.c data_log.c \ di_delay.c > pcomm_sh.3 --- 99,104 ----- $(SHAR) Makefile Matches.1 Modem_break.1 Pcomm.1 Pcomm.dial_dir \ Pcomm.extrnl Pcomm.modem Pcomm.param Readme Release.notes Sample \ ! Unixpc.shar Waitfor.1 admin.c > pcomm_sh.2 ! $(SHAR) chg_dir.c config.h curses.c d_delete.c d_lib.c \ d_manual.c d_menu.c d_print.c d_prompt.c d_revise.c data_log.c \ di_delay.c > pcomm_sh.3 *************** *** 110,115 $(SHAR) m_lib.c macro.c main.c matches.c misc.h modem.h \ modem_break.c n_shell.c p_lib.c param.h passthru.c pexit.c \ ! port.c > pcomm_sh.5 ! $(SHAR) redial.c s_axfer.c s_extrnl.c s_gen.c s_menu.c s_modem.c \ s_prompt.c s_term.c s_tty.c screen.c script.c st_line.c status.h \ strings.c > pcomm_sh.6 --- 108,113 ----- $(SHAR) m_lib.c macro.c main.c matches.c misc.h modem.h \ modem_break.c n_shell.c p_lib.c param.h passthru.c pexit.c \ ! port.c redial.c > pcomm_sh.5 ! $(SHAR) s_axfer.c s_extrnl.c s_gen.c s_menu.c s_modem.c \ s_prompt.c s_term.c s_tty.c screen.c script.c st_line.c status.h \ strings.c terminal.c > pcomm_sh.6 *************** *** 113,121 $(SHAR) redial.c s_axfer.c s_extrnl.c s_gen.c s_menu.c s_modem.c \ s_prompt.c s_term.c s_tty.c screen.c script.c st_line.c status.h \ ! strings.c > pcomm_sh.6 ! $(SHAR) terminal.c tty_att.c tty_ucb.c vcs.c vcs.h waitfor.c \ ! x_ascii.c x_batch.c x_extrnl.c > pcomm_sh.7 ! $(SHAR) x_menu.c x_rcv.c x_send.c x_win.c xmodem.c xmodem.h \ ! > pcomm_sh.8 admin.o: config.h dial_dir.h param.h --- 111,120 ----- $(SHAR) s_axfer.c s_extrnl.c s_gen.c s_menu.c s_modem.c \ s_prompt.c s_term.c s_tty.c screen.c script.c st_line.c status.h \ ! strings.c terminal.c > pcomm_sh.6 ! $(SHAR) tty_att.c tty_ucb.c vcs.c vcs.h waitfor.c x_ascii.c \ ! x_batch.c x_extrnl.c x_menu.c > pcomm_sh.7 ! $(SHAR) x_rcv.c x_send.c x_win.c xmodem.c xmodem.h > pcomm_sh.8 ! $(SHAR) Doc.out Matches.out Modem_break.ou Pcomm.out Waitfor.out \ ! > pcomm_sh.9 admin.o: config.h dial_dir.h param.h *************** *** 163,168 strings.o: config.h terminal.o: config.h dial_dir.h misc.h modem.h param.h status.h xmodem.h ! tty_att.o: dial_dir.h param.h ! tty_ucb.o: dial_dir.h param.h vcs.o: config.h vcs.h x_ascii.o: config.h misc.h param.h --- 162,167 ----- strings.o: config.h terminal.o: config.h dial_dir.h misc.h modem.h param.h status.h xmodem.h ! tty_att.o: dial_dir.h modem.h param.h ! tty_ucb.o: dial_dir.h modem.h param.h vcs.o: config.h vcs.h x_ascii.o: config.h misc.h param.h *************** *** 175,179 xmodem.o: config.h misc.h param.h xmodem.h ! waitfor: waitfor.c matches: matches.c modem_break: modem_break.c --- 174,178 ----- xmodem.o: config.h misc.h param.h xmodem.h ! waitfor: config.h waitfor.c matches: matches.c modem_break: config.h modem_break.c *************** *** 177,179 waitfor: waitfor.c matches: matches.c ! modem_break: modem_break.c --- 176,178 ----- waitfor: config.h waitfor.c matches: matches.c ! modem_break: config.h modem_break.c *** old/Matches.1 Sun Jan 15 11:46:32 1989 --- Matches.1 Sat Dec 30 23:14:42 1989 *************** *** 15,27 .SH EXAMPLE .nf ! # read some input ! read junk ! # test to see the string matches 'login failed' ! matches $junk 'login failed' ! # test the exit code of the matches command ! if [ $? \-eq 0 ] ! then ! exit 1 ! fi .fi .SH "SEE ALSO" --- 15,31 ----- .SH EXAMPLE .nf ! .RS 5 ! # read some input ! read junk ! # test to see the string matches 'login failed' ! matches $junk 'login failed' ! # test the exit code of the matches command ! if [ $? \-eq 0 ] ! then ! .RS 5 ! exit 1 ! .RE ! fi ! .RE .fi .SH "SEE ALSO" *** old/Modem_break.1 Sun Jan 15 11:46:38 1989 --- Modem_break.1 Sat Dec 30 23:13:16 1989 *************** *** 1,2 .TH MODEM_BREAK 1 local .SH NAME --- 1,6 ----- + .if n .ds rq "" + .el .ds rq '' + .if n .ds lq "" + .el .ds lq `` .TH MODEM_BREAK 1 local .SH NAME *************** *** 6,13 .SH DESCRIPTION .I Modem_break ! creates a ``modem break'' on the stdout. Modem break is a condition of ! a communications line when the line is held ``low'' for 200 ms. It is ! typically used to tell the remote system to switch to a different ! baud rate. .PP .I Modem_break --- 10,17 ----- .SH DESCRIPTION .I Modem_break ! creates a \*(lqmodem break\*(rq on the stdout. Modem break is a ! condition of a communications line when the line is held \*(lqlow\*(rq ! for 200 ms. It is typically used to tell the remote system to switch to ! a different baud rate. .PP .I Modem_break *************** *** 18,35 .SH EXAMPLE .nf ! while true ! do ! # wait 5 seconds for the login prompt ! waitfor \-5 login: ! # test the exit code of the waitfor command ! if [ $? \-eq 0 ] ! then ! # send my user ID and break out of the loop ! echo egray ! break ! fi ! # send a modem break ! modem_break ! done .fi .SH "SEE ALSO" --- 22,45 ----- .SH EXAMPLE .nf ! .RS 5 ! while true ! do ! .RS 5 ! # wait 5 seconds for the login prompt ! waitfor \-5 login: ! # test the exit code of the waitfor command ! if [ $? \-eq 0 ] ! then ! .RS 5 ! # send my user ID and break out of the loop ! echo egray ! break ! .RE ! fi ! # send a modem break ! modem_break ! .RE ! done ! .RE .fi .SH "SEE ALSO" *** old/Pcomm.1 Tue Sep 4 07:58:51 1990 --- Pcomm.1 Wed Jan 3 07:25:16 1990 *************** *** 1,2 .TH PCOMM 1 local .SH NAME --- 1,7 ----- + .\" use tbl and the man macro package + .if n .ds rq "" + .el .ds rq '' + .if n .ds lq "" + .el .ds lq `` .TH PCOMM 1 local .SH NAME *************** *** 48,56 .RE .SH COMMANDS ! The following commands are accessible by pressing a user definable ``hot ! key'' followed by a letter, number, or arrow key. The default ``hot ! key'' is control-A. The notation ``^A-X'' means control-A followed by ! the letter X. The dash (-) is for clarity, and is not a part of the ! command sequence. .TP .B ^A-0 --- 53,61 ----- .RE .SH COMMANDS ! The following commands are accessible by pressing a user definable ! \*(lqhot key\*(rq followed by a letter, number, or arrow key. The ! default \*(lqhot key\*(rq is control-A. The notation \*(lq^A-X\*(rq ! means control-A followed by the letter X. The dash (\-) is for clarity, ! and is not a part of the command sequence. .TP .B ^A-0 *************** *** 56,60 .B ^A-0 Help Screen. Display a brief review of the available commands. Uses ! the number zero ``0'' not the letter ``O''. .TP .B ^A-D --- 61,65 ----- .B ^A-0 Help Screen. Display a brief review of the available commands. Uses ! the number zero \*(lq0\*(rq not the letter \*(lqO\*(rq. .TP .B ^A-D *************** *** 62,69 maintain the database of phone number entries, and to select an entry for dialing. To dial an entry, just enter the entry number at the ! prompt. If the ``script'' field contains valid Unix shell script, that ! file is used to automatically log the user on to the remote system. See ! the Pcomm Reference Manual for the format and use of the script files. ! The following commands are available from the dialing directory: .RS 5 .TP --- 67,74 ----- maintain the database of phone number entries, and to select an entry for dialing. To dial an entry, just enter the entry number at the ! prompt. If the \*(lqscript\*(rq field contains valid Unix shell script, ! that file is used to automatically log the user on to the remote system. ! See the Pcomm Reference Manual for the format and use of the script ! files. The following commands are available from the dialing directory: .RS 5 .TP *************** *** 115,119 .B ^A-4 Spawn a Unix shell while still communicating with the remote system. ! Uses the ``native'' shell as described in the SHELL environmental variable. .TP --- 120,124 ----- .B ^A-4 Spawn a Unix shell while still communicating with the remote system. ! Uses the \*(lqnative\*(rq shell as described in the SHELL environmental variable. .TP *************** *** 136,141 .TP .B 3 ! Terminal Setup. The terminal setup contains the definition of the ``hot ! key'' and the mapping of the end-of-line characters. .TP .B 4 --- 141,146 ----- .TP .B 3 ! Terminal Setup. The terminal setup contains the definition of the ! \*(lqhot key\*(rq and the mapping of the end-of-line characters. .TP .B 4 *************** *** 148,152 .TP .B 6 ! External Protocol Setup. This setup screen allows the user to imbed the names of external file transfer programs into the list of available protocols. --- 153,157 ----- .TP .B 6 ! External Protocol Setup. This setup screen allows the user to embed the names of external file transfer programs into the list of available protocols. *************** *** 215,221 .PP .RS 5 ! .nf ! .if n .ta 1.5i +1.5i +1.5i +1.5i +1.5i ! .if t .ta 1i +1i +1i +1i +1i protocol packet error multiple name size method files? --- 220,228 ----- .PP .RS 5 ! .TS ! l l l l ! l l l l ! _ _ _ _ ! l l l l. protocol packet error multiple name size method files? *************** *** 220,224 protocol packet error multiple name size method files? - --------- -------- ------------ -------- xmodem 128 checksum/CRC no xmodem-1k 128/1024 checksum/CRC no --- 227,230 ----- protocol packet error multiple name size method files? xmodem 128 checksum/CRC no xmodem-1k 128/1024 checksum/CRC no *************** *** 229,233 zmodem 128/1024 CRC yes (external) ? ? ? ! .fi .RE .PP --- 235,239 ----- zmodem 128/1024 CRC yes (external) ? ? ? ! .TE .RE .PP *************** *** 235,239 can use an external program, such as Kermit or a proprietary program, to transfer files. Commonly used external programs (such as zmodem in the ! example above) can have their names imbedded into the list of available protocols. .PP --- 241,245 ----- can use an external program, such as Kermit or a proprietary program, to transfer files. Commonly used external programs (such as zmodem in the ! example above) can have their names embedded into the list of available protocols. .PP *************** *** 244,249 columns by 24 lines and cursor movement capabilities. Running .I Pcomm ! from terminals at relatively slow speeds (i.e. 1200 baud) will cause ! the windows to appear sluggish. .PP Terminals that don't have arrow keys or systems without the newer --- 250,255 ----- columns by 24 lines and cursor movement capabilities. Running .I Pcomm ! from terminals at relatively slow speeds (i.e. 1200 baud) will cause the ! windows to appear sluggish. .PP Terminals that don't have arrow keys or systems without the newer *************** *** 248,253 .PP Terminals that don't have arrow keys or systems without the newer ! versions of curses(3) will require the user to substitute the letter ``U'' ! for ``up arrow'' and ``N'' for ``down arrow''. .PP There are four Pcomm support files that contain the dialing directory, --- 254,260 ----- .PP Terminals that don't have arrow keys or systems without the newer ! versions of curses(3) will require the user to substitute the letter ! \*(lqU\*(rq for \*(lqup arrow\*(rq and \*(lqN\*(rq for \*(lqdown ! arrow\*(rq. .PP There are four Pcomm support files that contain the dialing directory, *************** *** 256,261 these files in a directory of their choice. .I Pcomm ! also uses normal Unix shell scripts to perform the ``chat'' sequences ! necessary to automatically log a user onto a remote system. .I Pcomm uses the environmental variable PCOMM to search for the ``private'' --- 263,268 ----- these files in a directory of their choice. .I Pcomm ! also uses normal Unix shell scripts to perform the \*(lqchat\*(rq ! sequences necessary to automatically log a user onto a remote system. .I Pcomm uses the environmental variable PCOMM to search for the *************** *** 259,265 necessary to automatically log a user onto a remote system. .I Pcomm ! uses the environmental variable PCOMM to search for the ``private'' ! support file and the auto-login shell scripts. The following directories ! are searched to find the files: .PP .RS 5 --- 266,272 ----- sequences necessary to automatically log a user onto a remote system. .I Pcomm ! uses the environmental variable PCOMM to search for the ! \*(lqprivate\*(rq support file and the auto-login shell scripts. The ! following directories are searched to find the files: .PP .RS 5 *************** *** 272,279 .RE .PP ! The ``script'' field in the dialing directory serves two purposes. The ! first use is to identify the shell script to use for auto-login. The ! second use is to specify a TTY name for a given entry. If the ! ``script'' is a valid device name, that device is used instead of searching the TTY database for a free port. .SH FILES --- 279,286 ----- .RE .PP ! The \*(lqscript\*(rq field in the dialing directory serves two purposes. ! The first use is to identify the shell script to use for auto-login. ! The second use is to specify a TTY name for a given entry. If the ! \*(lqscript\*(rq is a valid device name, that device is used instead of searching the TTY database for a free port. .SH FILES *************** *** 278,287 searching the TTY database for a free port. .SH FILES ! .nf ! pcomm.dial_dir the dialing directory ! pcomm.extrnl the external file transfer programs ! pcomm.modem the modem/TTY database ! pcomm.param the start-up default parameters ! .fi .SH "SEE ALSO" Pcomm Reference Manual, xmodem(1), mdm(1) --- 285,295 ----- searching the TTY database for a free port. .SH FILES ! .TS ! l l. ! pcomm.dial_dir the dialing directory ! pcomm.extrnl the external file transfer programs ! pcomm.modem the modem/TTY database ! pcomm.param the start-up default parameters ! .TE .SH "SEE ALSO" Pcomm Reference Manual, xmodem(1), mdm(1) *** old/Pcomm.modem Fri Feb 3 07:22:04 1989 --- Pcomm.modem Sun Sep 2 16:17:00 1990 *************** *** 2,7 TTY_2=tty11;HAYES;0 TTY_3=tty12;DIRECT;0 ! TTY_4=tty13;TELEBIT;0 ! TTY_5=tty13;FAST_TELEBIT;0 MODEM_1a=HAYES;ATS7=45S11=70E0Q0V1X4&D2!;ATDT;!;~~+++~~ATH0! MODEM_1b=Y;CONNECT!;CONNECT 1200;CONNECT 2400;;; --- 2,7 ----- TTY_2=tty11;HAYES;0 TTY_3=tty12;DIRECT;0 ! TTY_4=tty13;TELEBIT;19200 ! TTY_5=tty13;FAST_TELEBIT;19200 MODEM_1a=HAYES;ATS7=45S11=70E0Q0V1X4&D2!;ATDT;!;~~+++~~ATH0! MODEM_1b=Y;CONNECT!;CONNECT 1200;CONNECT 2400;;; *************** *** 10,17 MODEM_2b=N;;;;;; MODEM_2c=;;; ! MODEM_3a=TELEBIT;%AAAAAATS50=0S2=43S95=0M1!;%AAAAAATDTW;!;~~+++~~ATH0! ! MODEM_3b=Y;CONNECT 300;CONNECT 1200;CONNECT 2400;;; ! MODEM_3c=BUSY;ERROR;NO CARRIER; ! MODEM_4a=FAST_TELEBIT;%AAAAAATS50=255S2=43S95=0M1!;%AAAAAATDTW;!;~~+++~~ATH0! ! MODEM_4b=N;;;;;CONNECT;CONNECT ! MODEM_4c=BUSY;ERROR;NO CARRIER; --- 10,17 ----- MODEM_2b=N;;;;;; MODEM_2c=;;; ! MODEM_3a=TELEBIT;ATZ!~~;ATDT;!;~~+++~~ATH0! ! MODEM_3b=Y;CONNECT 300;CONNECT 1200;CONNECT 2400;CONNECT 4800;; ! MODEM_3c=BUSY;ERROR;NO CARRIER;NO DIALTONE ! MODEM_4a=FAST_TELEBIT;ATZ!~~ATS50=255;ATDT;!;~~+++~~ATH0! ! MODEM_4b=Y;;;;;CONNECT 9600;CONNECT FAST ! MODEM_4c=BUSY;ERROR;NO CARRIER;NO DIALTONE *** old/Readme Tue Sep 4 07:59:28 1990 --- Readme Sun Sep 2 16:55:56 1990 *************** *** 20,24 4) Copy (and rename to change the upper case letters to lower case) the on-line manual pages Pcomm.1, Waitfor.1, Matches.1, ! and Modem_break.1 to the proper /usr/man directory. 5) Print the Doc file by piping the output of the Unix "pr" --- 20,27 ----- 4) Copy (and rename to change the upper case letters to lower case) the on-line manual pages Pcomm.1, Waitfor.1, Matches.1, ! and Modem_break.1 to the proper /usr/man directory. For those ! without access to nroff, I've included the output files called ! Pcomm.out, Waitfor.out, Matches.out, and Modem_break.ou in the ! last shell archive. 5) Print the Pcomm Reference Manual. The Doc.nr file is the *************** *** 22,28 and Modem_break.1 to the proper /usr/man directory. ! 5) Print the Doc file by piping the output of the Unix "pr" ! command with the title separated by lots of white space (to help ! center it), for example: pr -h " Pcomm Reference Manual " Doc | lp --- 25,31 ----- last shell archive. ! 5) Print the Pcomm Reference Manual. The Doc.nr file is the ! nroff input which should be run thru tbl and the "me" macro ! package, as in: tbl Doc.nr | nroff -me -Twhatever | lp *************** *** 26,30 center it), for example: ! pr -h " Pcomm Reference Manual " Doc | lp How to configure Pcomm: --- 29,36 ----- package, as in: ! tbl Doc.nr | nroff -me -Twhatever | lp ! ! For those without access to nroff, I've included the output file ! called Doc.out in the last shell archive. How to configure Pcomm: *** old/Release.notes Tue Sep 4 07:58:16 1990 --- Release.notes Wed Jan 3 07:37:52 1990 *************** *** 33,37 There is a new support file called "pcomm.extrnl" that allows ! the user to imbed the names of external file transfer programs into the list of available protocols. (The default file "Pcomm.extrnl", supplied with the distribution package, contains --- 33,37 ----- There is a new support file called "pcomm.extrnl" that allows ! the user to embed the names of external file transfer programs into the list of available protocols. (The default file "Pcomm.extrnl", supplied with the distribution package, contains *** old/Waitfor.1 Sun Jan 15 11:46:52 1989 --- Waitfor.1 Sat Dec 30 23:03:08 1989 *************** *** 27,38 .SH EXAMPLE .nf ! # wait 5 seconds for the login prompt ! waitfor \-5 login: ! # test the exit code of the waitfor command ! if [ $? \-eq 0 ] ! then ! # send my user ID ! echo egray ! fi .fi .SH "SEE ALSO" --- 27,42 ----- .SH EXAMPLE .nf ! .RS 5 ! # wait 5 seconds for the login prompt ! waitfor \-5 login: ! # test the exit code of the waitfor command ! if [ $? \-eq 0 ] ! then ! .RS 5 ! # send my user ID ! echo egray ! .RE ! fi ! .RE .fi .SH "SEE ALSO" *** old/curses.c Tue Sep 4 07:59:01 1990 --- curses.c Sun Sep 2 17:12:40 1990 *************** *** 403,407 char c; ! signal(SIGALRM, wk_force); wk_flag = 0; --- 403,407 ----- char c; ! signal(SIGALRM, (SIG_TYPE(*) ()) wk_force); wk_flag = 0; *************** *** 434,438 longjmp(wk_buf, 1); #else /* BSD */ ! signal(SIGALRM, wk_force); wk_flag = 1; #endif /* BSD */ --- 434,438 ----- longjmp(wk_buf, 1); #else /* BSD */ ! signal(SIGALRM, (SIG_TYPE(*) ()) wk_force); wk_flag = 1; #endif /* BSD */ *** old/init.c Tue Sep 4 07:59:39 1990 --- init.c Sun Sep 2 18:20:40 1990 *************** *** 27,31 void info(); #ifdef SHAREDMEM ! int mode; extern int shm_id; char *memset(); --- 27,31 ----- void info(); #ifdef SHAREDMEM ! int i, mode; extern int shm_id; char *memset(); *************** *** 73,77 s_ptr->row = 0; s_ptr->col = 0; ! memset(s_ptr->vs, '\0', MAX_ROW * MAX_COL); #else /* SHAREDMEM */ strcpy(tempfile, TMP_FILE); --- 73,78 ----- s_ptr->row = 0; s_ptr->col = 0; ! for (i=0; i<MAX_ROW; i++) ! memset(s_ptr->vs[i], '\0', MAX_COL); #else /* SHAREDMEM */ strcpy(tempfile, TMP_FILE); *** old/input.c Tue Sep 4 07:59:40 1990 --- input.c Sun Sep 2 17:13:28 1990 *************** *** 63,70 signal(SIGHUP, SIG_IGN); signal(SIGQUIT, SIG_IGN); ! signal(SIGUSR1, got_sig); ! signal(SIGUSR2, got_sig); ! signal(SIGINT, got_sig); ! signal(SIGTERM, got_sig); setbuf(stdout, (char *) NULL); --- 63,70 ----- signal(SIGHUP, SIG_IGN); signal(SIGQUIT, SIG_IGN); ! signal(SIGUSR1, (SIG_TYPE(*) ()) got_sig); ! signal(SIGUSR2, (SIG_TYPE(*) ()) got_sig); ! signal(SIGINT, (SIG_TYPE(*) ()) got_sig); ! signal(SIGTERM, (SIG_TYPE(*) ()) got_sig); setbuf(stdout, (char *) NULL); *************** *** 259,263 switch (sig) { case SIGUSR1: ! signal(SIGUSR1, got_sig); longjmp(i_jmp, 1); case SIGUSR2: --- 259,263 ----- switch (sig) { case SIGUSR1: ! signal(SIGUSR1, (SIG_TYPE(*) ()) got_sig); longjmp(i_jmp, 1); case SIGUSR2: *************** *** 262,266 longjmp(i_jmp, 1); case SIGUSR2: ! signal(SIGUSR2, got_sig); longjmp(i_jmp, 2); case SIGINT: --- 262,266 ----- longjmp(i_jmp, 1); case SIGUSR2: ! signal(SIGUSR2, (SIG_TYPE(*) ()) got_sig); longjmp(i_jmp, 2); case SIGINT: *************** *** 265,269 longjmp(i_jmp, 2); case SIGINT: ! signal(SIGINT, got_sig); longjmp(i_jmp, 3); case SIGTERM: --- 265,269 ----- longjmp(i_jmp, 2); case SIGINT: ! signal(SIGINT, (SIG_TYPE(*) ()) got_sig); longjmp(i_jmp, 3); case SIGTERM: *************** *** 268,272 longjmp(i_jmp, 3); case SIGTERM: ! signal(SIGTERM, got_sig); longjmp(i_jmp, 4); } --- 268,272 ----- longjmp(i_jmp, 3); case SIGTERM: ! signal(SIGTERM, (SIG_TYPE(*) ()) got_sig); longjmp(i_jmp, 4); } *** old/main.c Tue Sep 4 07:59:41 1990 --- main.c Tue Sep 4 08:18:24 1990 *************** *** 21,24 * Patch #7 13 Jan 90 * Patch #8 20 Jan 90 */ --- 21,25 ----- * Patch #7 13 Jan 90 * Patch #8 20 Jan 90 + * Patch #9 1 Sep 90 */ *************** *** 88,93 signal(SIGINT, SIG_IGN); signal(SIGQUIT, SIG_IGN); ! signal(SIGTERM, quit); ! signal(SIGHUP, quit); sys_name = NULL; --- 89,94 ----- signal(SIGINT, SIG_IGN); signal(SIGQUIT, SIG_IGN); ! signal(SIGTERM, (SIG_TYPE(*) ()) quit); ! signal(SIGHUP, (SIG_TYPE(*) ()) quit); sys_name = NULL; *************** *** 173,180 status = init(sys_name); /* get "msgs" status */ ! mytty = ttyname(0); ! stat(mytty, &stbuf); ! msg_status = stbuf.st_mode & 0777; ! chmod(mytty, 0600); mvaddstr(12, 31, "Initializing..."); --- 174,182 ----- status = init(sys_name); /* get "msgs" status */ ! if (mytty = ttyname(0)) { ! stat(mytty, &stbuf); ! msg_status = stbuf.st_mode & 0777; ! chmod(mytty, 0600); ! } mvaddstr(12, 31, "Initializing..."); *** old/matches.c Sun Jan 15 10:11:58 1989 --- matches.c Wed Jan 3 07:39:50 1990 *************** *** 27,31 #ifdef STRSTR /* ! * Return a pointer to the first occurance of string str2 in str1. * Returns a NULL if str2 is not in str1. */ --- 27,31 ----- #ifdef STRSTR /* ! * Return a pointer to the first occurrence of string str2 in str1. * Returns a NULL if str2 is not in str1. */ *** old/modem_break.c Tue Sep 4 07:58:39 1990 --- modem_break.c Sun Sep 2 17:32:26 1990 *************** *** 5,8 #include <stdio.h> #ifdef XENIX_3 #include <sys/types.h> --- 5,10 ----- #include <stdio.h> + #include "config.h" + #ifdef XENIX_3 #include <sys/types.h> *** old/passthru.c Fri Jan 13 09:13:56 1989 --- passthru.c Sun Sep 2 17:14:00 1990 *************** *** 101,105 cp_flag = 0; ! signal(SIGALRM, cp_force); /* copy the stdin to TTYout */ while (1) { --- 101,105 ----- cp_flag = 0; ! signal(SIGALRM, (SIG_TYPE(*) ()) cp_force); /* copy the stdin to TTYout */ while (1) { *************** *** 131,135 longjmp(cp_buf, 1); #else /* BSD */ ! signal(SIGALRM, cp_force); cp_flag = 1; #endif /* BSD */ --- 131,135 ----- longjmp(cp_buf, 1); #else /* BSD */ ! signal(SIGALRM, (SIG_TYPE(*) ()) cp_force); cp_flag = 1; #endif /* BSD */ *** old/pexit.c Thu Jan 26 10:54:08 1989 --- pexit.c Tue Sep 4 08:20:19 1990 *************** *** 52,56 extern int msg_status; void release_port(), input_off(), exit(); ! char *ttyname(); #ifdef SHAREDMEM extern int shm_id; --- 52,56 ----- extern int msg_status; void release_port(), input_off(), exit(); ! char *mytty, *ttyname(); #ifdef SHAREDMEM extern int shm_id; *************** *** 81,85 endwin(); /* return the TTY chmod */ ! chmod(ttyname(0), msg_status); } exit(val); --- 81,86 ----- endwin(); /* return the TTY chmod */ ! if (mytty = ttyname(0)) ! chmod(mytty, msg_status); } exit(val); *** old/port.c Tue Sep 4 07:59:06 1990 --- port.c Tue Sep 4 08:16:35 1990 *************** *** 40,44 extern int fd; register int i; ! int j, k, lfd, list[NUM_TTY], cmask, tbaud, is_dev, progpid; char file[80], buf[80], message[80], *str_rep(), *last_c; unsigned int sleep(); --- 40,44 ----- extern int fd; register int i; ! int j, k, lfd, list[NUM_TTY], cmask, is_dev, progpid; char file[80], buf[80], message[80], *str_rep(), *last_c; void error_win(), line_set(), release_port(), send_str(); *************** *** 42,46 int j, k, lfd, list[NUM_TTY], cmask, tbaud, is_dev, progpid; char file[80], buf[80], message[80], *str_rep(), *last_c; - unsigned int sleep(); void error_win(), line_set(), release_port(), send_str(); --- 42,45 ----- int j, k, lfd, list[NUM_TTY], cmask, is_dev, progpid; char file[80], buf[80], message[80], *str_rep(), *last_c; void error_win(), line_set(), release_port(), send_str(); *************** *** 191,204 /* initialize the modem */ ! if (modem->init_sp[modem->t_cur]) { ! tbaud = dir->baud[dir->d_cur]; ! dir->baud[dir->d_cur] = modem->init_sp[modem->t_cur]; ! line_set(); ! send_str(modem->init[modem->m_cur], SLOW); ! dir->baud[dir->d_cur] = tbaud; ! } ! else ! send_str(modem->init[modem->m_cur], SLOW); ! sleep(1); return(0); } --- 190,194 ----- /* initialize the modem */ ! send_str(modem->init[modem->m_cur], SLOW); return(0); } *************** *** 221,225 extern char *null_ptr; char buf[80]; ! void free_ptr(), hang_up(); /* --- 211,215 ----- extern char *null_ptr; char buf[80]; ! void free_ptr(), hang_up(), reset_line(); /* *************** *** 240,243 */ hang_up(verbose); close(fd); } --- 230,234 ----- */ hang_up(verbose); + reset_line(); close(fd); } *************** *** 318,321 extern int errno; int lfd, lckpid, n; char buf[40]; /* doesn't exist */ --- 309,313 ----- extern int errno; int lfd, lckpid, n; + unsigned int sleep(); char buf[40]; /* doesn't exist */ *** old/script.c Tue Sep 4 07:59:07 1990 --- script.c Sun Sep 2 17:07:48 1990 *************** *** 38,42 extern int fd, errno; SIG_TYPE (*istat)(), (*qstat)(); ! int epid, dup_pipe[2], want_out, sig_status; char buf[80], *ttyname(), *strcpy(), *path, *findfile(); void _exit(), error_win(), input_off(), do_input(); --- 38,42 ----- extern int fd, errno; SIG_TYPE (*istat)(), (*qstat)(); ! int epid, dup_pipe[2], want_out; char buf[80], *ttyname(), *strcpy(), *path, *findfile(); void _exit(), error_win(), input_off(), do_input(); *** old/strings.c Thu Jan 12 08:06:52 1989 --- strings.c Wed Jan 3 07:40:02 1990 *************** *** 121,125 #ifdef STRSTR /* ! * Return a pointer to the first occurance of string str2 in str1. * Returns a NULL if str2 is not in str1. */ --- 121,125 ----- #ifdef STRSTR /* ! * Return a pointer to the first occurrence of string str2 in str1. * Returns a NULL if str2 is not in str1. */ *** old/terminal.c Tue Sep 4 07:59:31 1990 --- terminal.c Tue Sep 4 08:09:45 1990 *************** *** 429,433 extern int fd; void send_str(), st_line(), line_set(); ! char buf[80], *strcpy(), *ttyname(); unsigned int sleep(); /* sanity checking */ --- 429,433 ----- extern int fd; void send_str(), st_line(), line_set(); ! char buf[80]; unsigned int sleep(); /* sanity checking */ *************** *** 450,454 * The best I can do is close the port and start over. */ ! strcpy(buf, ttyname(fd)); close(fd); fd = open(buf, O_RDWR|O_NDELAY); --- 450,454 ----- * The best I can do is close the port and start over. */ ! sprintf(buf, "/dev/%s", modem->tty[modem->t_cur]); close(fd); fd = open(buf, O_RDWR|O_NDELAY); *************** *** 467,471 */ sleep(1); ! close(open(ttyname(fd), O_RDWR)); } --- 467,472 ----- */ sleep(1); ! sprintf(buf, "/dev/%s", modem->tty[modem->t_cur]); ! close(open(buf, O_RDWR)); } *** old/tty_att.c Tue Sep 4 07:59:20 1990 --- tty_att.c Mon Sep 3 20:14:39 1990 *************** *** 11,14 #include <fcntl.h> #include "dial_dir.h" #include "param.h" --- 11,15 ----- #include <fcntl.h> #include "dial_dir.h" + #include "modem.h" #include "param.h" *************** *** 13,16 #include "param.h" /* * Change the communication line settings to the new values. --- 14,19 ----- #include "param.h" + struct termio hold; + /* * Change the communication line settings to the new values. *************** *** 20,23 line_set() { extern int fd; struct termio tbuf; --- 23,27 ----- line_set() { + static int first = 1; extern int fd; struct termio tbuf; *************** *** 22,25 extern int fd; struct termio tbuf; /* --- 26,30 ----- extern int fd; struct termio tbuf; + int baud; if (first) { *************** *** 23,26 struct termio tbuf; /* * The manual dial entry also serves to store the previous --- 28,36 ----- int baud; + if (first) { + ioctl(fd, TCGETA, &hold); + first = 0; + } + /* * The manual dial entry also serves to store the previous *************** *** 52,55 if (*param->strip == 'Y') tbuf.c_iflag |= ISTRIP; /* the baud rate */ switch (dir->baud[dir->d_cur]) { --- 62,66 ----- if (*param->strip == 'Y') tbuf.c_iflag |= ISTRIP; + /* the baud rate */ baud = modem->init_sp[modem->m_cur]; *************** *** 53,57 tbuf.c_iflag |= ISTRIP; /* the baud rate */ ! switch (dir->baud[dir->d_cur]) { case 300: tbuf.c_cflag |= B300; --- 64,72 ----- /* the baud rate */ ! baud = modem->init_sp[modem->m_cur]; ! if (baud == 0) ! baud = dir->baud[dir->d_cur]; ! ! switch (baud) { case 300: tbuf.c_cflag |= B300; *************** *** 101,104 /* now set 'em! */ ioctl(fd, TCSETAF, &tbuf); return; } --- 116,130 ----- /* now set 'em! */ ioctl(fd, TCSETAF, &tbuf); + return; + } + + /* + * Put things back the way they were. + */ + + void + reset_line() + { + ioctl(fd, TCSETAF, &hold); return; } *** old/tty_ucb.c Tue Sep 4 07:59:32 1990 --- tty_ucb.c Mon Sep 3 20:31:24 1990 *************** *** 7,10 #include <fcntl.h> #include "dial_dir.h" #include "param.h" --- 7,11 ----- #include <fcntl.h> #include "dial_dir.h" + #include "modem.h" #include "param.h" *************** *** 9,12 #include "param.h" /* * Change the communication line settings to the new values. --- 10,15 ----- #include "param.h" + struct sgttyb hold; + /* * Change the communication line settings to the new values. *************** *** 16,19 line_set() { extern int fd; struct sgttyb tbuf; --- 19,23 ----- line_set() { + static int first = 1; extern int fd; struct sgttyb tbuf; *************** *** 18,21 extern int fd; struct sgttyb tbuf; /* --- 22,26 ----- extern int fd; struct sgttyb tbuf; + int baud; if (first) { *************** *** 19,22 struct sgttyb tbuf; /* * The manual dial entry also serves to store the previous --- 24,32 ----- int baud; + if (first) { + ioctl(fd, TIOCGETP, &hold); + first = 0; + } + /* * The manual dial entry also serves to store the previous *************** *** 41,45 tbuf.sg_flags |= TANDEM; /* the baud rate */ ! switch (dir->baud[dir->d_cur]) { case 300: tbuf.sg_ispeed = B300; --- 51,59 ----- tbuf.sg_flags |= TANDEM; /* the baud rate */ ! baud = modem->init_sp[modem->m_cur]; ! if (baud == 0) ! baud = dir->baud[dir->d_cur]; ! ! switch (baud) { case 300: tbuf.sg_ispeed = B300; *************** *** 88,91 /* now set 'em! */ ioctl(fd, TIOCSETP, &tbuf); return; } --- 102,117 ----- /* now set 'em! */ ioctl(fd, TIOCSETP, &tbuf); + ioctl(fd, TIOCHPCL, 0); + return; + } + + /* + * Put things back the way they were. + */ + + void + reset_line() + { + ioctl(fd, TIOCSETP, &hold); return; } *** old/waitfor.c Tue Sep 4 07:59:10 1990 --- waitfor.c Tue Sep 4 11:43:37 1990 *************** *** 13,16 #include <stdio.h> #include <signal.h> #ifdef BSD --- 13,17 ----- #include <stdio.h> #include <signal.h> + #include "config.h" #ifdef BSD *************** *** 25,29 int i, j, timeout; char c, buf[BUF_SIZ], *string, *strstr(); ! long t; void exit(); --- 26,30 ----- int i, j, timeout; char c, buf[BUF_SIZ], *string, *strstr(); ! long t, time(); void exit(); *************** *** 76,80 unsigned int alarm(); ! signal(SIGALRM, wf_force); wf_flag = 0; --- 77,81 ----- unsigned int alarm(); ! signal(SIGALRM, (SIG_TYPE(*) ()) wf_force); wf_flag = 0; *************** *** 104,108 longjmp(wf_buf, 1); #else /* BSD */ ! signal(SIGALRM, wf_force); wf_flag = 1; #endif /* BSD */ --- 105,109 ----- longjmp(wf_buf, 1); #else /* BSD */ ! signal(SIGALRM, (SIG_TYPE(*) ()) wf_force); wf_flag = 1; #endif /* BSD */ *************** *** 111,115 #ifdef STRSTR /* ! * Return a pointer to the first occurance of string str2 in str1. * Returns a NULL if str2 is not in str1. */ --- 112,116 ----- #ifdef STRSTR /* ! * Return a pointer to the first occurrence of string str2 in str1. * Returns a NULL if str2 is not in str1. */ *** old/x_ascii.c Fri Jan 27 10:06:54 1989 --- x_ascii.c Sun Sep 2 17:15:04 1990 *************** *** 263,267 unsigned int alarm(); ! signal(SIGALRM, bl_force); bl_flag = 0; --- 263,267 ----- unsigned int alarm(); ! signal(SIGALRM, (SIG_TYPE(*) ()) bl_force); bl_flag = 0; *************** *** 291,295 longjmp(bl_buf, 1); #else /* BSD */ ! signal(SIGALRM, bl_force); bl_flag = 1; #endif /* BSD */ --- 291,295 ----- longjmp(bl_buf, 1); #else /* BSD */ ! signal(SIGALRM, (SIG_TYPE(*) ()) bl_force); bl_flag = 1; #endif /* BSD */ *** old/x_batch.c Tue Sep 4 07:58:50 1990 --- x_batch.c Sun Sep 2 17:38:12 1990 *************** *** 189,193 unsigned char buf[133]; /* start with a clean block */ ! memset(buf, '\0', 133); /* the header */ buf[0] = SOH; --- 189,193 ----- unsigned char buf[133]; /* start with a clean block */ ! memset((char *) buf, '\0', 133); /* the header */ buf[0] = SOH; *** old/x_extrnl.c Tue Sep 4 07:58:41 1990 --- x_extrnl.c Tue Sep 4 10:33:16 1990 *************** *** 32,36 WINDOW *xt_win, *newwin(); SIG_TYPE (*istat)(), (*qstat)(); ! int epid, want_out, sig_status; char buf[80], *ttyname(), *strcpy(); unsigned int sleep(); --- 32,36 ----- WINDOW *xt_win, *newwin(); SIG_TYPE (*istat)(), (*qstat)(); ! int epid, want_out; char buf[80], *ttyname(), *strcpy(); unsigned int sleep(); *************** *** 42,47 touchwin(xt_win); wrefresh(xt_win); - /* out of curses mode */ - resetterm(); if (!(epid = fork())) { --- 42,45 ----- touchwin(xt_win); wrefresh(xt_win); if (!(epid = fork())) { *************** *** 121,125 signal(SIGINT, istat); signal(SIGQUIT, qstat); ! /* back to curses mode */ sleep(1); fixterm(); --- 119,123 ----- signal(SIGINT, istat); signal(SIGQUIT, qstat); ! /* the tty may have been clobbered */ sleep(1); fixterm(); *** old/xmodem.c Tue Sep 4 07:59:11 1990 --- xmodem.c Sun Sep 2 17:15:24 1990 *************** *** 105,109 unsigned int alarm(); ! signal(SIGALRM, gl_force); gl_flag = 0; --- 105,109 ----- unsigned int alarm(); ! signal(SIGALRM, (SIG_TYPE(*) ()) gl_force); gl_flag = 0; *************** *** 133,137 longjmp(gl_buf, 1); #else /* BSD */ ! signal(SIGALRM, gl_force); gl_flag = 1; #endif /* BSD */ --- 133,137 ----- longjmp(gl_buf, 1); #else /* BSD */ ! signal(SIGALRM, (SIG_TYPE(*) ()) gl_force); gl_flag = 1; #endif /* BSD */ *************** *** 154,158 unsigned int try, alarm(); ! signal(SIGALRM, rl_force); rl_flag = 0; --- 154,158 ----- unsigned int try, alarm(); ! signal(SIGALRM, (SIG_TYPE(*) ()) rl_force); rl_flag = 0; *************** *** 186,190 longjmp(rl_buf, 1); #else /* BSD */ ! signal(SIGALRM, rl_force); rl_flag = 1; #endif /* BSD */ --- 186,190 ----- longjmp(rl_buf, 1); #else /* BSD */ ! signal(SIGALRM, (SIG_TYPE(*) ()) rl_force); rl_flag = 1; #endif /* BSD */ End of Patch