home *** CD-ROM | disk | FTP | other *** search
- /* get and display modem info.
-
- if there isn't a modem, or it isn't hayes compatable and if the
- setup isn't normal (i.e. like mine :-), this script will hang.
- */
-
- reg.0.text = 'Number of ring to answer on (0)'
- reg.0.type = 0
- reg.1.text = 'Count of rings'
- reg.1.type = 0
- reg.2.text = 'ESC (2B)'
- reg.2.type = 1
- reg.3.text = 'CR (0D)'
- reg.3.type = 1
- reg.4.text = 'LF (0A)'
- reg.4.type = 1
- reg.5.text = 'BS (08)'
- reg.5.type = 1
- reg.6.text = 'Timeout for dialtone (2 sec)'
- reg.6.type = 0
- reg.7.text = 'Timeout for CD (30 sec)'
- reg.7.type = 0
- reg.8.text = 'Comma dial delay (2 sec)'
- reg.8.type = 0
- reg.9.text = 'CD min time (6 .1 sec)'
- reg.9.type = 0
- reg.10.text = 'Time from CD drop to disc (14 .1 sec)'
- reg.10.type = 0
- reg.11.type = -1
- reg.12.text = 'Escape code Guard tone time (50 20ms)'
- reg.12.type = 0
- reg.13.type = -1
- reg.14.type = 2
- reg.14.bits.n = 8
- reg.14.bits.0.n = 1
- reg.14.bits.0.0 = ''
- reg.14.bits.0.1 = ''
- reg.14.bits.1.n = 1
- reg.14.bits.1.0 = 'Local echo off'
- reg.14.bits.1.1 = '*Local echo on'
- reg.14.bits.2.n = 1
- reg.14.bits.2.0 = '*Result codes enabled'
- reg.14.bits.2.1 = 'Result codes disabled'
- reg.14.bits.3.n = 1
- reg.14.bits.3.0 = 'Numeric result codes'
- reg.14.bits.3.1 = '*Verbal result codes'
- reg.14.bits.4.n = 1
- reg.14.bits.4.0 = '*Smart mode'
- reg.14.bits.4.1 = 'Dumb mode'
- reg.14.bits.5.n = 1
- reg.14.bits.5.0 = 'Tone dialing'
- reg.14.bits.5.1 = '*Pulse dialing'
- reg.14.bits.6.n = 1
- reg.14.bits.6.0 = ''
- reg.14.bits.6.1 = ''
- reg.14.bits.7.n = 1
- reg.14.bits.7.0 = 'Answer mode'
- reg.14.bits.7.1 = '*Originate mode'
- reg.15.type = -1
- reg.16.type = -1
- reg.17.type = -1
- reg.18.type = -1
- reg.19.type = -1
- reg.20.type = -1
- reg.21.type = 2
- reg.21.bits.n = 7
- reg.21.bits.0.n = 1
- reg.21.bits.0.0 = '*RJ-11'
- reg.21.bits.0.1 = ''
- reg.21.bits.1.n = 1
- reg.21.bits.1.0 = ''
- reg.21.bits.1.1 = ''
- reg.21.bits.2.n = 1
- reg.21.bits.2.0 = '*CTS follows RTS'
- reg.21.bits.2.1 = 'CTS follows DCD'
- reg.21.bits.3.n = 2
- reg.21.bits.3.0 = '*Ignore DTR'
- reg.21.bits.3.1 = 'DTR -> command'
- reg.21.bits.3.2 = 'DTR -> Hang Up'
- reg.21.bits.3.3 = 'DTR -> reset'
- reg.21.bits.4.n = 1
- reg.21.bits.4.0 = '*DCD always'
- reg.21.bits.4.1 = 'CD -> DCD'
- reg.21.bits.5.n = 1
- reg.21.bits.5.0 = '*DSR always'
- reg.21.bits.5.1 = 'Off Hook in data only'
- reg.21.bits.6.n = 1
- reg.21.bits.6.0 = "*Break won't disconnect"
- reg.21.bits.6.1 = "Break will disconnect"
- reg.22.type = 2
- reg.22.bits.n = 4
- reg.22.bits.0.n = 2
- reg.22.bits.0.0 = ''
- reg.22.bits.0.1 = 'Speaker low'
- reg.22.bits.0.2 = '*Speaker medium'
- reg.22.bits.0.3 = 'Speaker high'
- reg.22.bits.1.n = 2
- reg.22.bits.1.0 = 'Speaker off'
- reg.22.bits.1.1 = '*Speaker on till CD'
- reg.22.bits.1.2 = 'Speaker on'
- reg.22.bits.1.3 = 'Speaker on after dial till CD'
- reg.22.bits.2.n = 3
- reg.22.bits.2.0 = 'Basic results, blind dial'
- reg.22.bits.2.1 = ''
- reg.22.bits.2.2 = ''
- reg.22.bits.2.3 = ''
- reg.22.bits.2.4 = 'Full results, blind dial'
- reg.22.bits.2.5 = 'Full results, dial tone wait'
- reg.22.bits.2.6 = 'Full results, blind, busy'
- reg.22.bits.2.7 = '*Full results, dial, busy'
- reg.22.bits.3.n = 1
- reg.22.bits.3.0 = '*39/61 make/break'
- reg.22.bits.3.1 = '33/67 make/break'
- reg.23.type = 2
- reg.23.bits.n = 5
- reg.23.bits.0.n = 1
- reg.23.bits.0.0 = 'Ignore loopback'
- reg.23.bits.0.1 = '*Accept loopback'
- reg.23.bits.1.n = 2
- reg.23.bits.1.0 = '30 cps'
- reg.23.bits.1.1 = '60 cps'
- reg.23.bits.1.2 = '120 cps'
- reg.23.bits.1.3 = '*240 cps'
- reg.23.bits.2.n = 1
- reg.23.bits.2.0 = ''
- reg.23.bits.2.1 = ''
- reg.23.bits.3.n = 2
- reg.23.bits.3.0 = '*Even parity'
- reg.23.bits.3.1 = 'Space parity'
- reg.23.bits.3.2 = 'Odd parity'
- reg.23.bits.3.3 = 'Mark parity'
- reg.23.bits.4.n = 2
- reg.23.bits.4.0 = '*No Guard tone'
- reg.23.bits.4.1 = '550HZ guard'
- reg.23.bits.4.2 = '1800HZ guard'
- reg.23.bits.4.3 = ''
- reg.24.type = -1
- reg.25.text = 'Delay to DTR (5 sec/10ms)'
- reg.25.type = 1
- reg.26.text = 'RTS to CTS delay (1 10ms)'
- reg.26.type = 1
- reg.27.type = 2
- reg.27.bits.n = 6
- reg.27.bits.0.n = 2
- reg.27.bits.0.0 = '*Asynch'
- reg.27.bits.0.1 = 'Synch 1'
- reg.27.bits.0.2 = 'Synch 2'
- reg.27.bits.0.3 = 'Synch 3'
- reg.27.bits.1.n = 1
- reg.27.bits.1.0 = '*Dial connection'
- reg.27.bits.1.1 = 'Leased connection'
- reg.27.bits.2.n = 1
- reg.27.bits.2.0 = ''
- reg.27.bits.2.1 = ''
- reg.27.bits.3.n = 2
- reg.27.bits.3.0 = '*Txclk is Extclk'
- reg.27.bits.3.1 = 'Rclk is Extclk'
- reg.27.bits.3.2 = 'Carrier is Extclk'
- reg.27.bits.3.3 = ''
- reg.27.bits.4.n = 1
- reg.27.bits.4.0 = '*CCITT V.22'
- reg.27.bits.4.1 = 'Bell 212A'
- reg.27.bits.5.n = 1
- reg.27.bits.5.0 = ''
- reg.27.bits.5.1 = ''
-
- if (~show('L','rexxsupport.library')) then do
- call addlib('rexxsupport.library',0,-30,0)
- end
-
- call open(serf,'SER:')
-
- call waitforok
-
- do regs=0 to 27
- if reg.regs.type = -1 then iterate /* skip unused stuff */
- call writech(serf,'ATS'||regs||'?'||'0d'x)
- call readresp /* echo */
- call readresp /* goodie! */
- resp.regs = +substr(ach,1,3)
- select
- when reg.regs.type = 0 then /* number */
- say reg.regs.text ':' resp.regs
- when reg.regs.type = 1 then /* char */
- say reg.regs.text ':' d2x(resp.regs,2)
- when reg.regs.type = 2 then do /* bits */
- work = c2b(d2c(resp.regs))
- size = reg.regs.bits.n /* get number of entries */
- used = 0
- do k=0 to size-1
- nbits = reg.regs.bits.k.n /* get number of bits */
- num = c2d(b2c(substr(work,9-(used+nbits),nbits)))
- used = used + nbits
- if (0 ~= length(reg.regs.bits.k.num)) then
- say reg.regs.bits.k.num
- end
- end
- otherwise
- end
- call readresp /* pad */
- call readresp /* ok */
- end
-
- exit
-
-
- readresp:
-
- ach = ""
- do until (tchar = '0a'x)
- tchar = readch(serf,1)
- ach = ach || tchar
- end
- return
-
-
- waitforok:
- call writech(serf,'AT'||'0d'x)
- call readresp
- call readresp
- return
-