home *** CD-ROM | disk | FTP | other *** search
- /* get modem info, display as the commands to set options.
-
- 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.type = 0
- reg.1.type = -1
- reg.2.type = 1
- reg.3.type = 1
- reg.4.type = 1
- reg.5.type = 1
- reg.6.type = 0
- reg.7.type = 0
- reg.8.type = 0
- reg.9.type = 0
- reg.10.type = 0
- reg.11.type = -1
- 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 = 'E0'
- reg.14.bits.1.1 = 'E1'
- reg.14.bits.2.n = 1
- reg.14.bits.2.0 = 'Q0'
- reg.14.bits.2.1 = 'Q1'
- reg.14.bits.3.n = 1
- reg.14.bits.3.0 = 'V0'
- reg.14.bits.3.1 = 'V1'
- reg.14.bits.4.n = 1
- reg.14.bits.4.0 = ''
- reg.14.bits.4.1 = ''
- reg.14.bits.5.n = 1
- reg.14.bits.5.0 = 'T'
- reg.14.bits.5.1 = 'P'
- 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 = ''
- reg.14.bits.7.1 = ''
- 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 = '&J0'
- 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 = '&R0'
- reg.21.bits.2.1 = '&R1'
- reg.21.bits.3.n = 2
- reg.21.bits.3.0 = '&D0'
- reg.21.bits.3.1 = '&D1'
- reg.21.bits.3.2 = '&D2'
- reg.21.bits.3.3 = '&D3'
- reg.21.bits.4.n = 1
- reg.21.bits.4.0 = '&C0'
- reg.21.bits.4.1 = '&C1'
- reg.21.bits.5.n = 1
- reg.21.bits.5.0 = '&S0'
- reg.21.bits.5.1 = '&S1'
- reg.21.bits.6.n = 1
- reg.21.bits.6.0 = "Y0"
- reg.21.bits.6.1 = "Y1"
- 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 = 'L1'
- reg.22.bits.0.2 = 'L2'
- reg.22.bits.0.3 = 'L3'
- reg.22.bits.1.n = 2
- reg.22.bits.1.0 = 'M0'
- reg.22.bits.1.1 = 'M1'
- reg.22.bits.1.2 = 'M2'
- reg.22.bits.1.3 = 'M3'
- reg.22.bits.2.n = 3
- reg.22.bits.2.0 = 'X0'
- reg.22.bits.2.1 = ''
- reg.22.bits.2.2 = ''
- reg.22.bits.2.3 = ''
- reg.22.bits.2.4 = 'X1'
- reg.22.bits.2.5 = 'X2'
- reg.22.bits.2.6 = 'X3'
- reg.22.bits.2.7 = 'X4'
- reg.22.bits.3.n = 1
- reg.22.bits.3.0 = '&P0'
- reg.22.bits.3.1 = '&P1'
- reg.23.type = 2
- reg.23.bits.n = 5
- reg.23.bits.0.n = 1
- reg.23.bits.0.0 = '&T5'
- reg.23.bits.0.1 = '&T4'
- reg.23.bits.1.n = 2
- reg.23.bits.1.0 = ''
- reg.23.bits.1.1 = ''
- reg.23.bits.1.2 = ''
- reg.23.bits.1.3 = ''
- 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 = ''
- reg.23.bits.3.1 = ''
- reg.23.bits.3.2 = ''
- reg.23.bits.3.3 = ''
- reg.23.bits.4.n = 2
- reg.23.bits.4.0 = '&G0'
- reg.23.bits.4.1 = '&G1'
- reg.23.bits.4.2 = '&G2'
- reg.23.bits.4.3 = ''
- reg.24.type = -1
- reg.25.type = 1
- reg.26.type = 1
- reg.27.type = 2
- reg.27.bits.n = 6
- reg.27.bits.0.n = 2
- reg.27.bits.0.0 = '&M0'
- reg.27.bits.0.1 = '&M1'
- reg.27.bits.0.2 = '&M2'
- reg.27.bits.0.3 = '&M3'
- reg.27.bits.1.n = 1
- reg.27.bits.1.0 = '&L0'
- reg.27.bits.1.1 = '&L1'
- 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 = '&X0'
- reg.27.bits.3.1 = '&X1'
- reg.27.bits.3.2 = '&X2'
- reg.27.bits.3.3 = ''
- reg.27.bits.4.n = 1
- reg.27.bits.4.0 = 'B0'
- reg.27.bits.4.1 = 'B1'
- 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 < 2 then /* number */
- say 'S' || regs || '=' || resp.regs
- 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
-