home *** CD-ROM | disk | FTP | other *** search
/ Computer Buyer 1999 August / Dpcb0899a.iso / Internet / Demon / DATA1.CAB / Turnpike_data / UMODEM.MDM < prev    next >
Text File  |  1999-04-27  |  7KB  |  280 lines

  1. ; UMODEM.MDM 23 Apr 1998
  2. IDENT   Universal modem script
  3. ;
  4. ; INITIALISE
  5. ;
  6.     NOTE 'Executing UMODEM.MDM'
  7.     RESET 1
  8.     WAIT 2
  9.  
  10.     ;
  11.     ; See if the modem is there at all and set local echo
  12.     ;
  13.     SEND 'ATE1\r'
  14.     ; (nb: not SENDECHO because local echo might have been off)
  15.     ;
  16.     SELECT 3 'Modem not responding'
  17.     CASE '\rOK\r'
  18.         TEXT 'Modem is responding...'
  19.     CASE '\rERROR\r'
  20.         TEXT 'Modem is responding...'
  21.     ENDSELECT
  22.  
  23.     SHOW OFF    
  24.     ;
  25.     ; NOTE: from here on we must keep local echo on by restating E1 after
  26.     ; any reset; otherwise SENDECHOs which resync by matching the echoed
  27.     ; command wont work!
  28.     ;
  29.     MODEMINIT = 'AT'    ; always a good start
  30.  
  31.     // usual settings for volume control
  32.     MODEMINIT * SpeakerVolume_Low=L1
  33.     MODEMINIT * SpeakerVolume_Med=L2
  34.     MODEMINIT * SpeakerVolume_High=L3
  35.  
  36.     ;
  37.     ; Try to deal specially with any Supra modem
  38.     ; which requires &F2 not &F for hw flow control
  39.     ;
  40.     SENDECHO 'ATI5\r' 3 'Modem not responding'
  41.     SELECT 3 'Modem not responding'
  42.     CASE 'Supra'
  43.     CASE 'Diamond Multimedia'
  44.         SENDECHO 'AT&F2E1\r' 3 'Modem not responding'
  45.         SELECT 3 'Modem not responding'
  46.         CASE '\rOK\r'
  47.             MODEMINIT + '&F2'
  48.             NOTE 'Supra modem recognised and initialised'
  49.             JUMP INITDONE
  50.         CASE '\rERROR\r'
  51.             NOTE 'Cannot set factory profile &F2'
  52.             FAIL
  53.         ENDSELECT
  54.     CASE '\rERROR\r'
  55.     CASE '\rOK\r'
  56.         NOTE 'Probably not a Supra'
  57.     ENDSELECT
  58.  
  59.     ;
  60.     ; Try to deal specially with any Multitech modem
  61.     ; First say use factory defaults and then set to factory defaults
  62.     ;
  63.     SENDECHO 'AT&F8&FE1\r' 3 'Modem not responding'
  64.     SELECT 3 'Modem not responding'
  65.     CASE '\rOK\r'
  66.     ; Try to make the Multitech specific settings
  67.         SENDECHO 'ATQ0X4&E4&E13&C1&D3%E0S0=0&Q0\r' 3 'Modem not responding'
  68.         SELECT 3 'Modem not responding'
  69.         CASE '\rOK\r'
  70.             MODEMINIT + '&F8&FQ0X4&E4&E13&C1&D3%E0S0=0&Q0'
  71.             NOTE 'Multitech modem recognised and initialised'
  72.             NOTE 'Speaker volume control disabled'
  73.             MODEMINIT * SpeakerVolume_Low=
  74.             MODEMINIT * SpeakerVolume_Med=
  75.             MODEMINIT * SpeakerVolume_High=
  76.             JUMP INITDONE
  77.         CASE '\rERROR\r'
  78.         NOTE 'Probably not a Multitech'
  79.         ENDSELECT
  80.     CASE '\rERROR\r'
  81.         NOTE 'Probably not a Multitech'
  82.     ENDSELECT
  83.  
  84.     ;
  85.     ; Set factory defaults,
  86.     ; use factory profile 1 for hardware flow control, if available
  87.     ; otherwise use profile 0
  88.     ;
  89.     SENDECHO 'AT&F1E1\r' 3 'Modem not responding'
  90.     SELECT 3 'Modem not responding'
  91.     CASE '\rOK\r'
  92.     ; Profile 1 accepted, make sure that it is a USR or clone
  93.         SENDECHO 'AT&B1&H1&K2&M4&R2\r' 3 'Modem not responding'
  94.         SELECT 3 'Modem not responding'
  95.         CASE '\rOK\r'
  96.             MODEMINIT + '&F1&B1&H1&K2&M4&R2'
  97.             NOTE 'Factory profile 1 loaded for USR hardware flow control'
  98.         CASE '\rERROR\r'
  99.             SENDECHO 'AT&FE1\r' 3 'Modem not responding'
  100.             SELECT 3 'Modem not responding'
  101.             CASE '\rOK\r'
  102.                 MODEMINIT + '&F'
  103.                 NOTE 'Factory profile 0 loaded'
  104.             CASE '\rERROR\r'
  105.                 NOTE 'Cannot set factory profile'
  106.                 FAIL
  107.             ENDSELECT
  108.         ENDSELECT
  109.     CASE '\rERROR\r'
  110.         SENDECHO 'AT&FE1\r' 3 'Modem not responding'
  111.         SELECT 3 'Modem not responding'
  112.         CASE '\rOK\r'
  113.             MODEMINIT + '&F'
  114.             NOTE 'Factory profile 0 loaded'
  115.         CASE '\rERROR\r'
  116.             NOTE 'Cannot set factory profile'
  117.             FAIL
  118.         ENDSELECT
  119.     ENDSELECT
  120.  
  121.     ;
  122.     ; Try to get DCD to show state of carrier
  123.     ;
  124.     SENDECHO 'AT&C1\r' 3 'Modem not responding'
  125.     SELECT 3 'Modem not responding'
  126.     CASE '\rOK\r'
  127.         MODEMINIT + '&C1'
  128.         NOTE 'DCD will reflect state of carrier'
  129.     CASE '\rERROR\r'
  130.         NOTE 'DCD might not reflect the state of carrier'
  131.         NOTE 'Connect may not be able to recognise if the line drops'
  132.     ENDSELECT
  133.  
  134.     ;
  135.     ; Try to get modem to hangup when DTR is toggled
  136.     ; if possible reset as well when DTR toggled
  137.     ;
  138.     SENDECHO 'AT&D3\r' 3 'Modem not responding'
  139.     SELECT 3 'Modem not responding'
  140.     CASE '\rOK\r'
  141.         MODEMINIT + '&D3'
  142.         NOTE 'DTR will make modem reset'
  143.     CASE '\rERROR\r'
  144.         SENDECHO 'AT&D2\r' 3 'Modem not responding'
  145.         SELECT 3 'Modem not responding'
  146.         CASE '\rOK\r'
  147.             MODEMINIT + '&D2'
  148.             NOTE 'DTR will make modem hang up'
  149.         CASE '\rERROR\r'
  150.             NOTE 'Modem might not hang up if +++ escape is not recognised'
  151.         ENDSELECT
  152.     ENDSELECT
  153.  
  154.     ;
  155.     ; Try to prevent modem answering incoming calls
  156.     ;
  157.     SENDECHO 'ATS0=0\r' 3 'Modem not responding'
  158.     SELECT 3 'Modem not responding'
  159.     CASE '\rOK\r'
  160.         MODEMINIT + 'S0=0'
  161.         NOTE 'Auto-answer disabled'
  162.     CASE '\rERROR\r'
  163.         NOTE 'Modem might answer before dialing or after hangup'
  164.     ENDSELECT
  165.  
  166.     ;
  167.     ; Check for special modems by their ATI response
  168.     ;
  169.     SENDECHO 'ATI3\r' 3 'Modem not responding'
  170.     SELECT 3 'Modem not responding'
  171.     CASE ' 68356 '
  172.     ; Try to make the Motorola 68345 specific settings
  173.         SENDECHO 'ATY0&R0\\V4\r' 3 'Modem not responding'
  174.         SELECT 3 'Modem not responding'
  175.         CASE '\rOK\r'
  176.             MODEMINIT + 'Y0&R0\\V4'
  177.             NOTE 'Motorola 68356 based modem recognised and initialised'
  178.         JUMP INITDONE
  179.         CASE '\rERROR\r'
  180.             NOTE 'Probably not a Motorola 3400'
  181.         ENDSELECT
  182.     CASE '\rERROR\r'
  183.         SENDECHO 'ATI2\r' 3 'Modem not responding'
  184.         SELECT 3 'Modem not responding'
  185.         CASE ' GSM:DP'
  186.         ; Try to make Nokia data card specific settings
  187.             SENDECHO 'ATS34=2\r' 3 'Modem not responding'
  188.             SELECT 3 'Modem not responding'
  189.             CASE '\rOK\r'
  190.                 MODEMINIT + 'S43=2'
  191.                 NOTE 'Nokia data card modem recognised and initialised'
  192.                 JUMP INITDONE
  193.             CASE ERROR
  194.                 NOTE 'Probably not a Nokia'
  195.             ENDSELECT
  196.         CASE '\rOK\r'
  197.         CASE '\rERROR\r'
  198.         ENDSELECT
  199.     CASE '\rOK\r'
  200.         SENDECHO 'ATI4\r' 3 'Modem not responding'
  201.         SELECT 3 'Modem not responding'
  202.         CASE 'UMC '
  203.         ; UMC V.32bis/FAX/VOICE has W1 set, must avoid setting S95
  204.             NOTE 'UMC based modem recognised and initialised'
  205.             JUMP INITDONE
  206.         CASE '\rOK\r'
  207.         CASE '\rERROR\r'
  208.         ENDSELECT
  209.     ENDSELECT
  210.  
  211.     ;
  212.     ; Try to make modem show extended CONNECT responses
  213.     ;
  214.     ; First use the older Rockwell like method
  215.     ;
  216.     SENDECHO 'ATS95=46\r' 3 'Modem not responding'
  217.     SELECT 3 'Modem not responding'
  218.     CASE '\rOK\r'
  219.         MODEMINIT + 'S95=46'
  220.         NOTE 'Extended responses enabled'
  221.     CASE '\rERROR\r'
  222.         NOTE 'Probably not a Rockwell modem'
  223.     ENDSELECT
  224.     ;
  225.     ; Now use the AT&T HMS like method
  226.     ;
  227.     SENDECHO 'ATW1\r' 3 'Modem not responding'
  228.     SELECT 3 'Modem not responding'
  229.     CASE '\rOK\r'
  230.         MODEMINIT + 'W1'
  231.         NOTE 'Extended responses enabled'
  232.     CASE '\rERROR\r'
  233.         NOTE 'Probably not an AT&T HMS modem'
  234.     ENDSELECT
  235.     ;
  236.     ; Now use the newer Rockwell like method
  237.     ;
  238.     SENDECHO 'AT\\V1\r' 3 'Modem not responding'
  239.     SELECT 3 'Modem not responding'
  240.     CASE '\rOK\r'
  241.         MODEMINIT + '\\V1'
  242.         NOTE 'Extended responses enabled'
  243.     CASE '\rERROR\r'
  244.         NOTE 'Probably not a newer Rockwell modem'
  245.     ENDSELECT
  246.     ;
  247.     ; If all three of the above fail ERROR
  248.     ; then the modem might only show basic CONNECT response
  249.     ;
  250.  
  251.     ;
  252.     ; Deal specially with the BT Ignition or Motorola BitSurfr ISDN TA
  253.     ;
  254.     SENDECHO 'AT%A2=95\r' 3 'Modem not responding'
  255.     SELECT 3 'Modem not responding'
  256.     CASE '\rOK\r'
  257.         MODEMINIT + '%A2=95'
  258.         NOTE 'Async-to-sync PPP selected'
  259.     CASE '\rERROR\r'
  260.         NOTE 'Probably not a BT Ignition'
  261.     ENDSELECT
  262.  
  263.     ENDJUMP INITDONE
  264.  
  265.     ;
  266.     ; add E1 local echo off
  267.     ;    (note we want modemlog.txt to echo the actual number dialled
  268.     ;        if this really irritates change E1 to E0 below
  269.     ;        or put ATE0 in extra settings)
  270.     ;
  271.     ; and V1 verbal result
  272.     ;
  273.     ; and <cr> is the official way to end (not \r while also seems to work!)
  274.     ;
  275.     MODEMINIT + 'E1V1<cr>'
  276.  
  277.     SHOW ON
  278.     ;
  279.     TEXT 'Ready to dial...'
  280.