home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 592a.lha / RexxModem / modeminfo.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1991-11-12  |  5.5 KB  |  222 lines

  1. /*     get and display modem info.
  2.  
  3.     if there isn't a modem, or it isn't hayes compatable and if the
  4.     setup isn't normal (i.e. like mine :-), this script will hang.
  5. */
  6.  
  7. reg.0.text = 'Number of ring to answer on (0)'
  8. reg.0.type = 0
  9. reg.1.text = 'Count of rings'
  10. reg.1.type = 0
  11. reg.2.text = 'ESC (2B)'
  12. reg.2.type = 1
  13. reg.3.text = 'CR (0D)'
  14. reg.3.type = 1
  15. reg.4.text = 'LF (0A)'
  16. reg.4.type = 1
  17. reg.5.text = 'BS (08)'
  18. reg.5.type = 1
  19. reg.6.text = 'Timeout for dialtone (2 sec)'
  20. reg.6.type = 0
  21. reg.7.text = 'Timeout for CD (30 sec)'
  22. reg.7.type = 0
  23. reg.8.text = 'Comma dial delay (2 sec)'
  24. reg.8.type = 0
  25. reg.9.text = 'CD min time (6 .1 sec)'
  26. reg.9.type = 0
  27. reg.10.text = 'Time from CD drop to disc (14 .1 sec)'
  28. reg.10.type = 0
  29. reg.11.type = -1
  30. reg.12.text = 'Escape code Guard tone time (50 20ms)'
  31. reg.12.type = 0
  32. reg.13.type = -1
  33. reg.14.type = 2
  34. reg.14.bits.n = 8
  35. reg.14.bits.0.n = 1
  36. reg.14.bits.0.0 = ''
  37. reg.14.bits.0.1 = ''
  38. reg.14.bits.1.n = 1
  39. reg.14.bits.1.0 = 'Local echo off'
  40. reg.14.bits.1.1 = '*Local echo on'
  41. reg.14.bits.2.n = 1
  42. reg.14.bits.2.0 = '*Result codes enabled'
  43. reg.14.bits.2.1 = 'Result codes disabled'
  44. reg.14.bits.3.n = 1
  45. reg.14.bits.3.0 = 'Numeric result codes'
  46. reg.14.bits.3.1 = '*Verbal result codes'
  47. reg.14.bits.4.n = 1
  48. reg.14.bits.4.0 = '*Smart mode'
  49. reg.14.bits.4.1 = 'Dumb mode'
  50. reg.14.bits.5.n = 1
  51. reg.14.bits.5.0 = 'Tone dialing'
  52. reg.14.bits.5.1 = '*Pulse dialing'
  53. reg.14.bits.6.n = 1
  54. reg.14.bits.6.0 = ''
  55. reg.14.bits.6.1 = ''
  56. reg.14.bits.7.n = 1
  57. reg.14.bits.7.0 = 'Answer mode'
  58. reg.14.bits.7.1 = '*Originate mode'
  59. reg.15.type = -1
  60. reg.16.type = -1
  61. reg.17.type = -1
  62. reg.18.type = -1
  63. reg.19.type = -1
  64. reg.20.type = -1
  65. reg.21.type = 2
  66. reg.21.bits.n = 7
  67. reg.21.bits.0.n = 1
  68. reg.21.bits.0.0 = '*RJ-11'
  69. reg.21.bits.0.1 = ''
  70. reg.21.bits.1.n = 1
  71. reg.21.bits.1.0 = ''
  72. reg.21.bits.1.1 = ''
  73. reg.21.bits.2.n = 1
  74. reg.21.bits.2.0 = '*CTS follows RTS'
  75. reg.21.bits.2.1 = 'CTS follows DCD'
  76. reg.21.bits.3.n = 2
  77. reg.21.bits.3.0 = '*Ignore DTR'
  78. reg.21.bits.3.1 = 'DTR -> command'
  79. reg.21.bits.3.2 = 'DTR -> Hang Up'
  80. reg.21.bits.3.3 = 'DTR -> reset'
  81. reg.21.bits.4.n = 1
  82. reg.21.bits.4.0 = '*DCD always'
  83. reg.21.bits.4.1 = 'CD -> DCD'
  84. reg.21.bits.5.n = 1
  85. reg.21.bits.5.0 = '*DSR always'
  86. reg.21.bits.5.1 = 'Off Hook in data only'
  87. reg.21.bits.6.n = 1
  88. reg.21.bits.6.0 = "*Break won't disconnect"
  89. reg.21.bits.6.1 = "Break will disconnect"
  90. reg.22.type = 2
  91. reg.22.bits.n = 4
  92. reg.22.bits.0.n = 2
  93. reg.22.bits.0.0 = ''
  94. reg.22.bits.0.1 = 'Speaker low'
  95. reg.22.bits.0.2 = '*Speaker medium'
  96. reg.22.bits.0.3 = 'Speaker high'
  97. reg.22.bits.1.n = 2
  98. reg.22.bits.1.0 = 'Speaker off'
  99. reg.22.bits.1.1 = '*Speaker on till CD'
  100. reg.22.bits.1.2 = 'Speaker on'
  101. reg.22.bits.1.3 = 'Speaker on after dial till CD'
  102. reg.22.bits.2.n = 3
  103. reg.22.bits.2.0 = 'Basic results, blind dial'
  104. reg.22.bits.2.1 = ''
  105. reg.22.bits.2.2 = ''
  106. reg.22.bits.2.3 = ''
  107. reg.22.bits.2.4 = 'Full results, blind dial'
  108. reg.22.bits.2.5 = 'Full results, dial tone wait'
  109. reg.22.bits.2.6 = 'Full results, blind, busy'
  110. reg.22.bits.2.7 = '*Full results, dial, busy'
  111. reg.22.bits.3.n = 1
  112. reg.22.bits.3.0 = '*39/61 make/break'
  113. reg.22.bits.3.1 = '33/67 make/break'
  114. reg.23.type = 2
  115. reg.23.bits.n = 5
  116. reg.23.bits.0.n = 1
  117. reg.23.bits.0.0 = 'Ignore loopback'
  118. reg.23.bits.0.1 = '*Accept loopback'
  119. reg.23.bits.1.n = 2
  120. reg.23.bits.1.0 = '30 cps'
  121. reg.23.bits.1.1 = '60 cps'
  122. reg.23.bits.1.2 = '120 cps'
  123. reg.23.bits.1.3 = '*240 cps'
  124. reg.23.bits.2.n = 1
  125. reg.23.bits.2.0 = ''
  126. reg.23.bits.2.1 = ''
  127. reg.23.bits.3.n = 2
  128. reg.23.bits.3.0 = '*Even parity'
  129. reg.23.bits.3.1 = 'Space parity'
  130. reg.23.bits.3.2 = 'Odd parity'
  131. reg.23.bits.3.3 = 'Mark parity'
  132. reg.23.bits.4.n = 2
  133. reg.23.bits.4.0 = '*No Guard tone'
  134. reg.23.bits.4.1 = '550HZ guard'
  135. reg.23.bits.4.2 = '1800HZ guard'
  136. reg.23.bits.4.3 = ''
  137. reg.24.type = -1
  138. reg.25.text = 'Delay to DTR (5 sec/10ms)'
  139. reg.25.type = 1
  140. reg.26.text = 'RTS to CTS delay (1 10ms)'
  141. reg.26.type = 1
  142. reg.27.type = 2
  143. reg.27.bits.n = 6
  144. reg.27.bits.0.n = 2
  145. reg.27.bits.0.0 = '*Asynch'
  146. reg.27.bits.0.1 = 'Synch 1'
  147. reg.27.bits.0.2 = 'Synch 2'
  148. reg.27.bits.0.3 = 'Synch 3'
  149. reg.27.bits.1.n = 1
  150. reg.27.bits.1.0 = '*Dial connection'
  151. reg.27.bits.1.1 = 'Leased connection'
  152. reg.27.bits.2.n = 1
  153. reg.27.bits.2.0 = ''
  154. reg.27.bits.2.1 = ''
  155. reg.27.bits.3.n = 2
  156. reg.27.bits.3.0 = '*Txclk is Extclk'
  157. reg.27.bits.3.1 = 'Rclk is Extclk'
  158. reg.27.bits.3.2 = 'Carrier is Extclk'
  159. reg.27.bits.3.3 = ''
  160. reg.27.bits.4.n = 1
  161. reg.27.bits.4.0 = '*CCITT V.22'
  162. reg.27.bits.4.1 = 'Bell 212A'
  163. reg.27.bits.5.n = 1
  164. reg.27.bits.5.0 = ''
  165. reg.27.bits.5.1 = ''
  166.  
  167. if (~show('L','rexxsupport.library')) then do
  168.     call addlib('rexxsupport.library',0,-30,0)
  169. end
  170.  
  171. call open(serf,'SER:')
  172.  
  173. call waitforok
  174.  
  175. do regs=0 to 27
  176. if reg.regs.type = -1 then iterate /* skip unused stuff */
  177. call writech(serf,'ATS'||regs||'?'||'0d'x)
  178. call readresp /* echo */
  179. call readresp /* goodie! */
  180. resp.regs = +substr(ach,1,3)
  181. select
  182.     when reg.regs.type = 0 then /* number */
  183.         say reg.regs.text ':' resp.regs
  184.     when reg.regs.type = 1 then /* char */
  185.         say reg.regs.text ':' d2x(resp.regs,2)
  186.     when reg.regs.type = 2 then do /* bits */
  187.         work = c2b(d2c(resp.regs))
  188.                 size = reg.regs.bits.n /* get number of entries */
  189.         used = 0
  190.         do k=0 to size-1
  191.             nbits = reg.regs.bits.k.n /* get number of bits */
  192.             num = c2d(b2c(substr(work,9-(used+nbits),nbits)))
  193.             used = used + nbits
  194.             if (0 ~= length(reg.regs.bits.k.num)) then
  195.                 say reg.regs.bits.k.num
  196.         end
  197.     end
  198.     otherwise
  199. end
  200. call readresp /* pad */
  201. call readresp /* ok */
  202. end
  203.  
  204. exit
  205.  
  206.  
  207. readresp:
  208.  
  209. ach = ""
  210. do until (tchar = '0a'x)
  211.     tchar = readch(serf,1)
  212.     ach = ach || tchar
  213. end
  214. return
  215.  
  216.  
  217. waitforok:
  218. call writech(serf,'AT'||'0d'x)
  219. call readresp
  220. call readresp
  221. return
  222.