Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!elroy.jpl.nasa.gov!decwrl!hayes.ims.alaska.edu!accuvax.nwu.edu!nucsrl!telecom-request From: halcyon!ralphs@sumax.seattleu.edu Newsgroups: comp.dcom.telecom Subject: Re: Call-Waiting Disable Message-ID: <14588@accuvax.nwu.edu> Date: 12 Nov 90 03:49:32 GMT Sender: news@accuvax.nwu.edu Organization: The 23:00 News Lines: 59 Approved: Telecom@eecs.nwu.edu X-Submissions-To: telecom@eecs.nwu.edu X-Administrivia-To: telecom-request@eecs.nwu.edu X-Telecom-Digest: Volume 10, Issue 810, Message 11 of 11 Here's a toy for those systems that can't get call-waiting to disable. Feel free to hack on this (I was always one for taking the hardest path to a solution): 1 ' 2 'CW.BAS 5 'This short program solves the problem of call waiting interrupting 6 'a communications session. Just run this before your communcations 7 'program. It remains in effect until you reset your Hayes Smartmodem. 8 ' 10 'NOTE: I think I found this on CompuServe quite a while ago. 11 'Submitted by ralphs@halcyon.uucp with absolutely no gurantees. 12 'Keep flames at home. Check your smoke detector. 13 ' 30 COLOR 15,9 31 CLS:LOCATE 12,18 32 PRINT CHR$(7);"Setting Hayes Smartmodem 1200 for Call Waiting" 35 OUT 1020,4:GOSUB 110:OUT 1020,3:GOSUB 110 40 OPEN "COM1:1200,N,8,1,DS" AS #1:GOSUB 110 50 MSG$="ATS10=100"+CHR$(13):GOSUB 100:GOSUB 110 70 CLOSE 71 LOCATE 12,1:PRINT SPACE$(80) 72 LOCATE 12,22:PRINT CHR$(7);"Now execute comm program" 80 SYSTEM 100 FOR X=1 TO LEN(MSG$):PRINT #1,MID$(MSG$,X,1);:NEXT 110 FOR X=1 TO 1500:NEXT 120 RETURN 125 ' 130 ' Line 35: Port 1020 (3FC) is the MCR (Modem Control Register). The 131 ' bits are described on page 6-9 of the Hayes Smartmodem 132 ' 1200 manual. First CALLWAIT sends a 4, which enables the 133 ' interrupt line drivers, and allows the UART to interrupt 134 ' the controller. If there are any problems with the serial 135 ' port, this command should generate some kind of error. 136 ' OUT 1020,3 will reset the modem and is equivalent to 137 ' power off/power on. This must be held for at least 50 ms. 138 ' This is done using the timing loop at line 110. 139 ' 140 ' Line 40: Open the COM1 port for 1200 baud, no parity and 8 bit words 141 ' using buffer #1. 142 ' 143 ' Line 50: Sends a command to the modem. The AT is the ATtention code, 144 ' which must precede all modem commands. The S10=100 is 145 ' described on page 6-7 of the manual. It allows the carrier 146 ' signal to momentarily disappear. The S10=100 sets the time 147 ' interval for which the carrier may be lost. This interval 148 ' is adjustable in tenths of a second. [Moderator's Note: This of course simply sets one of the S Registers to a longer time out value ... long enough that the call waiting tone won't disconnect you, although it may very well damage the data getting transferred at the same moment. The other hangup (pun intended) is how do you get the *other end* to hang around for those milliseconds while you are gone? In the situation where this program would be the most helpful -- calling a BBS -- wouldn't the sysop of that board have to have the modem on that end likewise adjusted before the adjustment on your end would be of any real help? PAT]