home *** CD-ROM | disk | FTP | other *** search
- /* read data saved by modemsave and restore modem state.
-
- 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
-
- input = readch('STDIN',19)
-
- if (length(input) ~= 19) then do
- say "This isn't modemsave data!"
- exit
- end
-
- cnt = 0
- do regs=0 to 27
- if reg.regs.type = -1 then iterate /* skip unused stuff */
- cnt = cnt + 1
- resp = c2d(substr(input,cnt,1))
- select
- when reg.regs.type < 2 then /* number */
- call sendmodem('S' || regs || '=' || resp)
- when reg.regs.type = 2 then do /* bits */
- work = c2b(d2c(resp))
- 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
- call sendmodem(reg.regs.bits.k.num)
- end
- end
- otherwise
- end
- 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
-
-
- sendmodem:
-
- call writech(serf,'AT' || arg(1) || '0d'x)
- call readresp
- call readresp
- return
-