home *** CD-ROM | disk | FTP | other *** search
- ! OMRON ME2814B/B2
- ! Author: Kris Kreutzman
- !
- ! Copyright: ゥ 1991-1996 Apple Computer, Inc. All Rights Reserved.
- !
- ! revision history:
- ! v2.1 as shipped with the ARA 2.1
- !
- ! 'mlts' resource info for this modem:
- ! byte 1 == 01 -> modem HAS built-in error correction protocols
- ! byte 2 == 01 -> modem HAS built-in data compression protocols
- ! byte 3 == 40 -> max number of chars in varstr 7
- ! byte 4 == 40 -> max number of chars in varstr 8
- ! byte 5 == 40 -> max number of chars in varstr 9
- !
- @ORIGINATE
- @ANSWER
- !
- ! ---- Initial modem setup ----
- !
- ! Set serial port speed depending upon the compression flag
- ! A higher rate with compression on to handle expanded data from the modem
- ! A lower rate closer to the DCE when compression is off
- !
- ifstr 5 1 "0"
- serreset 57600, 0, 8, 1
- jump 2
- !
- @LABEL 1
- serreset 38400, 0, 8, 1
- !
- @LABEL 2
- hsreset 0 0 0 0 0 0
- settries 0
- !
- ! Get the modem's attention
- !
- matchclr
- matchstr 1 3 "OK¥13¥10"
- write "ATZ0¥13"
- matchread 30
- !
- @LABEL 3
- !
- ! Setup the modem for the following:
- ! Reset to factory settings
- ! Standard compression/reliablity
- ! Lock serial port speed
- ! Serial port hardware handshaking, turn off software handshaking
- ! Verbose responces and compression/protocol results
- ! CONNECT returns DCE speed
- ! Turn off answering
- ! Reset or return to command mode on DTR toggle (optional)
- !
- matchclr
- matchstr 1 4 "OK¥13¥10"
- matchstr 2 101 "ERROR¥13¥10"
- write "ATE0&D0&E0&S1¥¥X0S0=0¥13"
- matchread 30
- inctries
- iftries 3 101
- !
- ! Reset the Modem on setup failure
- !
- DTRClear
- pause 5
- DTRSet
- flush
- jump 3
- !
- !
- @LABEL 4
- ! Varstring 4 , reliable link protocol:
- ! = 0, handled by computer (ARAP)
- ! = 1, handled by modem (PPP)
- ! = 2, MNP10 protocol (Cellular protocol, no longer supported)
- ifstr 4 5 "1"
- ifstr 4 5 "2"
- !
- ! Varstring 4 == 0, turn off reliable link protocol in modem (ARAP)
- matchclr
- matchstr 1 9 "OK¥13¥10"
- write "AT&M0¥¥N0¥13"
- matchread 30
- jump 101
- !
- !
- @LABEL 5
- ! Varstring 5, compression protocol:
- ! = 0, handled by computer
- ! = 1, handled by modem
- ifstr 5 9 "1"
- !
- ! Varstring 5 == 0, turn off compression protocol in modem.
- matchclr
- matchstr 1 9 "OK¥13¥10"
- write "AT%C0¥13"
- matchread 30
- jump 101
- !
- !
- @LABEL 9
- ! Varstring 2, modem speaker:
- ! = 0, speaker off
- ! = 1, speaker on
- ifstr 2 13 "1"
- pause 5
- matchclr
- matchstr 1 13 "OK¥13¥10"
- write "ATM0¥13"
- matchread 30
- jump 101
- !
- ! Modem ready, wait for a call or originate a call
- !
- @LABEL 13
- ifANSWER 32
- !
- !
- ! ---- Originating a call ----
- !
- ! Varstring 6, dialing mode:
- ! = 0, normal dialing
- ! = 1, blind dialing
- ! = 2, manual dialing
- ifstr 6 17 "1"
- ifstr 6 15 "2"
- jump 19
- !
- @LABEL 15
- ! Display ASK dialog with message. Goto label 107 if dialog canceled.
- ASK 2 "Pick up the phone & dial ^1. Hit OK when the phone rings, then hangup." 107
- note "手動ダイアル中" 3
- ! X1 to ignore dialtone & busy, D to dial, ¥^ generates data tone
- write "ATX1D^1¥13"
- jump 32
- !
- @LABEL 17
- note "ダイアルトーンを無視してダイアル中" 3
- matchclr
- matchstr 1 19 "OK¥13¥10"
- ! X1 to ignore dialtone & busy
- write "ATX1¥13"
- matchread 30
- jump 101
- !
- !
- @LABEL 19
- ! Display the full dialstring contained in Varstring 1
- note "ダイアル中 ^1" 3
- !
- ! Varstrings 7, 8 and 9, contain dialstring fragments
- ! Long phone numbers may need to be split into smaller groups
- ! for the modem to use
- !
- ! Varstring 3: "p" for pulse & "t" for tone dialing
- ! Varstring 8 == blank (dialstring in varstring 7)
- ! Varstring 9 == blank (dialstring in varstrings 7 & 8)
- ! Otherwise (dialstring in varstrings 7, 8 & 9)
- ! ¥^ is added to the dialstring to force the modem to generate a data tone
- ifstr 8 27 " "
- ifstr 9 24 " "
- !
- ! Write dialstring in varstrings 7, 8 & 9
- matchclr
- matchstr 1 21 "OK¥13¥10"
- write "ATD^3^7;¥13"
- matchread 400
- jump 101
-
- @LABEL 21
- matchclr
- matchstr 1 22 "OK¥13¥10"
- write "ATD^3^8;¥13"
- matchread 400
- jump 101
-
- @LABEL 22
- write "ATD^3^9¥13"
- jump 32
- !
- !
- @LABEL 24
- ! Write dialstring in varstrings 7 & 8
- matchclr
- matchstr 1 25 "OK¥13¥10"
- write "ATD^3^7;¥13"
- matchread 400
- jump 101
-
- @LABEL 25
- write "ATD^3^8¥13"
- jump 32
- !
- @LABEL 27
- ! Write dialstring in varstring 7
- write "ATD^3^7¥13"
- !
- !
- ! ---- Connection responce ----
- !
- ! The following section will parse modem responces of two types:
- ! 1) PROTOCOL: xxx, COMPRESSION: xxx, CONNECT xxx
- ! 2) CONNECT xxx/ARQ/V42
- !
- @LABEL 32
- matchclr
- matchstr 1 81 "RING¥13¥10"
- matchstr 2 102 "NO DIALTONE¥13¥10"
- matchstr 3 103 "NO CARRIER¥13¥10"
- matchstr 4 103 "ERROR¥13¥10"
- matchstr 5 104 "BUSY¥13¥10"
- matchstr 6 105 "NO ANSWER¥13¥10"
- matchstr 7 33 "CONNECT "
- matchstr 8 32 "CARRIER "
- matchstr 9 40 "CONNECT¥13¥10"
- matchstr 10 62 "PROTOCOL: LAPM"
- matchstr 11 62 "PROTOCOL: MNP4"
- matchstr 12 62 "PROTOCOL: MNP10"
- matchstr 13 62 "PROTOCOL: ALT"
- matchstr 14 67 "COMPRESSION: V42BIS"
- matchstr 15 67 "COMPRESSION: MNP5"
- matchstr 16 67 "COMPRESSION: CLASS"
- matchread 700
- ifANSWER 32
- jump 101
- !
- ! Parse the speed of connect result codes
- ! 2400 and 4800 have two entries each
- ! to distinguish them from 24000 and 48000
- !
- @LABEL 33
- matchclr
- matchstr 1 40 "2400¥13"
- matchstr 2 40 "2400/"
- matchstr 3 41 "4800¥13"
- matchstr 4 41 "4800/"
- matchstr 5 42 "7200"
- matchstr 6 43 "9600"
- matchstr 7 44 "12000"
- matchstr 8 45 "14400"
- matchstr 9 46 "16800"
- matchstr 10 47 "19200"
- matchstr 11 48 "21600"
- matchstr 12 49 "24000"
- matchstr 13 50 "26400"
- matchstr 14 51 "28800"
- matchstr 15 52 "31200"
- matchstr 16 53 "33600"
- matchstr 17 54 "38400"
- matchstr 18 55 "48000"
- matchstr 19 56 "56000"
- matchstr 20 57 "57600"
- matchstr 21 58 "64000"
- matchread 30
- jump 59
- !
- ! -- Connection rates --
- ! CommunicatingAt informs ARA of the raw modem to modem
- ! connection speed.
- !
- @LABEL 40
- note "2400bpsで接続" 2
- CommunicatingAt 2400
- jump 60
- !
- @LABEL 41
- note "4800bpsで接続" 2
- CommunicatingAt 4800
- jump 60
- !
- @LABEL 42
- note "7200bpsで接続" 2
- CommunicatingAt 7200
- jump 60
- !
- @LABEL 43
- note "9600bpsで接続" 2
- CommunicatingAt 9600
- jump 60
- !
- @LABEL 44
- note "12000bpsで接続" 2
- CommunicatingAt 12000
- jump 60
- !
- @LABEL 45
- note "14400bpsで接続" 2
- CommunicatingAt 14400
- jump 60
- !
- @LABEL 46
- note "16800bpsで接続" 2
- CommunicatingAt 16800
- jump 60
- !
- @LABEL 47
- note "19200bpsで接続" 2
- CommunicatingAt 19200
- jump 60
- !
- @LABEL 48
- note "21600bpsで接続" 2
- CommunicatingAt 21600
- jump 60
- !
- @LABEL 49
- note "24000bpsで接続" 2
- CommunicatingAt 24000
- jump 60
- !
- @LABEL 50
- note "26400bpsで接続" 2
- CommunicatingAt 26400
- jump 60
- !
- @LABEL 51
- note "28800bpsで接続" 2
- CommunicatingAt 28800
- jump 60
- !
- @LABEL 52
- note "31200bpsで接続" 2
- CommunicatingAt 31200
- jump 60
- !
- @LABEL 53
- note "33600bpsで接続" 2
- CommunicatingAt 33600
- jump 60
- !
- @LABEL 54
- note "38400bpsで接続" 2
- CommunicatingAt 38400
- jump 60
- !
- @LABEL 55
- note "48000bpsで接続" 2
- CommunicatingAt 48000
- jump 60
- !
- @LABEL 56
- note "56000bpsで接続" 2
- CommunicatingAt 56000
- jump 60
- !
- @LABEL 57
- note "57600bpsで接続" 2
- CommunicatingAt 57600
- jump 60
- !
- @LABEL 58
- note "64000bpsで接続" 2
- CommunicatingAt 64000
- jump 60
- !
- @LABEL 59
- note "接続速度不明!!" 2
- jump 60
- !
- ! Look for reliablilty and compression results
- ! at the end of the connect result.
- !
- @LABEL 60
- matchclr
- matchstr 1 63 "LAPM"
- matchstr 2 63 "REL"
- matchstr 3 63 "ARQ"
- matchstr 4 63 "REL4"
- matchstr 5 63 "REL10"
- matchstr 6 68 "COMP/"
- matchstr 7 68 "COMP¥13"
- matchstr 8 63 "V42"
- matchstr 9 63 "V42¥13"
- matchstr 10 68 "V42BIS"
- matchstr 11 68 "V42bis"
- matchstr 12 68 "LAPMV"
- matchstr 13 63 "MNP¥13"
- matchstr 14 68 "MNP5"
- matchstr 15 70 "¥10"
- matchread 30
- jump 70
-
- ! -- Modem error correction link negotiation --
- ! Userhook 2 informs ARA that a modem-to-modem error
- ! correcting protocol has been negotiated
- !
- !
- @LABEL 62
- note "エラー訂正モードで接続" 2
- userhook 2
- jump 32
- !
- @LABEL 63
- note "エラー訂正モードで接続" 2
- userhook 2
- jump 60
- !
- ! -- Compression negotiation --
- ! Userhook 3 informs ARA that a modem-to-modem compression
- ! protocol has been negotiated
- !
- @LABEL 67
- note "データ圧縮モードで接続" 2
- userhook 3
- jump 32
- !
- @LABEL 68
- note "データ圧縮モードで接続" 2
- userhook 3
- jump 60
- !
- !
- ! -- Normal exit after "CONNECT" --
- !
- ! This modem has been setup to do CTS handshaking,
- ! and we assume that a CTS handshaking cable is being used.
- !
- @LABEL 70
- ! Turn on CTS handshaking.
- HSReset 0 1 0 0 0 0
- !
- ifANSWER 71
- pause 30
- @LABEL 71
- exit 0
- !
- !
- ! ---- Answer calls ----
- !
- ! A RING result from the modem and in ANSWERING mode
- ! claims the serial port and answering the phone
- !
- @LABEL 81
- ifORIGINATE 32
- userhook 1
- note "着信..." 2
- write "ATA¥13"
- jump 32
- !
- !
- ! ---- Hang up and reset modem ----
- !
- @HANGUP
- @LABEL 90
- settries 0
- HSReset 0 0 0 0 0 0
- !
- @LABEL 92
- ! Escape from data to command mode
- matchclr
- matchstr 1 96 "OK¥13¥10"
- write "+++"
- matchread 20
- !
- @LABEL 94
- ! Force a hangup
- matchclr
- matchstr 1 98 "NO CARRIER¥13¥10"
- matchstr 2 98 "OK¥13¥10"
- matchstr 3 98 "ERROR¥13¥10"
- matchstr 4 98 "0¥13¥10"
- write "ATH¥13"
- matchread 30
- !
- ! Try to get control of the modem by toggling DTR
- DTRClear
- pause 5
- DTRSet
- flush
- !
- ! Try the hangup sequence three times otherwise declare and error
- inctries
- iftries 3 101
- jump 92
- !
- @LABEL 96
- ! Pause between data and command mode
- pause 50
- jump 94
- !
- !
- @LABEL 98
- ! Recall the factory settings
- pause 15
- matchclr
- matchstr 1 99 "OK¥13¥10"
- write "ATZ0¥13"
- matchread 30
- jump 101
- !
- @LABEL 99
- exit 0
- !
- ! ---- Error messages -----
- !
- ! Modem Not Responding
- @LABEL 101
- exit -6019
- !
- ! No Dial Tone
- @LABEL 102
- exit -6020
- !
- ! No Carrier or Error
- @LABEL 103
- exit -6021
- !
- ! Busy
- @LABEL 104
- exit -6022
- !
- ! No Answer
- @LABEL 105
- exit -6023
- !
- ! User Cancellation
- @LABEL 107
- exit -6008
-