home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / b / krtmdm.mac < prev    next >
Text File  |  2020-01-01  |  23KB  |  783 lines

  1.     .title    KRTMDM    Modem definitions
  2.     .ident    "V03.63"
  3.  
  4. ; /63/    27-Sep-97  Billy Youdelman  V03.63
  5. ;
  6. ;    created this module as KRTDIA had become too large
  7. ;    there are now 1793. words free in which more modems may be defined
  8. ;    defined T3000X.42 modem (it's the T3000V.42 but with XOFF restraint)
  9. ;    convert T3000 (DTE falls back to DCE) definition to XOFF flow control
  10.  
  11. ;    Copyright 1985,1986 Change Software, Inc.
  12.  
  13.  
  14.     .psect    $code    ,ro,i,lcl,rel,con    ; /63/ added this to..
  15.     .sbttl    Load this overlay and return its location
  16.  
  17. loamdm::mov    #modinf    ,r0        ; /63/ return address of top of list
  18.     return                ; /63/ done
  19.  
  20.  
  21.     .sbttl    Modem data base structure
  22.  
  23. ;    Loosely based on CKUDIAL.C
  24. ;
  25. ;    Anything new that is needed in the modem database should be added at
  26. ;    the end of the list (just prior to mod.size) then increment mod.size
  27. ;    to include the new element.  You must also conform the define macro,
  28. ;    farther below in this module, to your changes and add a new macro to
  29. ;    those which put data into the individual fields, immediately below.
  30.  
  31.     mod.next    ==:     0    ; link to next modem in list
  32.     mod.string    ==:     2    ; address of name of modem
  33.     dial.time    ==:     4    ; dial time-out value in secs
  34.     wake.string    ==:     6    ; address of wakeup string
  35.     wake.rate    ==:    10    ; ticks delay between sending chars
  36.     wake.prompt    ==:    12    ; address of wakeup prompt string
  37.     dmod.string    ==:    14    ; address of dial initiate string and
  38.     dmod.prompt    ==:    16    ; address of prompt returned for it
  39.     dial.string    ==:    20    ; address of dial format string
  40.     dial.rate    ==:    22    ; ticks delay between sending chars
  41.     dial.ack    ==:    24    ; modem response to confirm number
  42.     dial.blind    ==:    26    ; if <> dial w/o wait for dial tone
  43.     dial.wait    ==:    30    ; string for pause format effector
  44.     dial.confirm    ==:    32    ; string to confirm number for dialing
  45.     dial.go        ==:    34    ; ie, va212 returns "DIALING\n"
  46.     res.bin        ==:    36    ; if <> it's binary responses (DF03)
  47.     dial.echo    ==:    40    ; if <> modem echoes its input
  48.     mod.comment    ==:    42    ; addr of brief description of modem
  49.     res.head    ==:    44    ; head of the list of result messages
  50.     dial.xabort    ==:    46    ; /45/ string to kill call in progress
  51.     dial.idle    ==:    50    ; /45/ string puts modem in idle state
  52.     dial.pulse    ==:    52    ; /45/ pulse dialing command string
  53.     dial.nopulse    ==:    54    ; /45/ tone dialing command string
  54.     init.once    ==:    56    ; /BBS/ if <> modem stays initialized
  55.     time.settle    ==:    60    ; /62/ reset settle-time in secs
  56.     x.result    ==:    62    ; /62/ "Hayes" style extended mode
  57.     ph.answer    ==:    64    ; /62/ enable answer mode string
  58.     ph.noanswer    ==:    66    ; /62/ disable answer mode string
  59.     mod.size    ==:    70    ; /62/ length of data defined above
  60.  
  61.  
  62.     .sbttl    Macros for individual fields of a modem's data structure
  63.  
  64.     ; NOTE:    these first two fields are inserted by the define macro
  65.     ;    mod.next           0  link to next modem in list
  66.     ;    mod.string           2  address of name of modem
  67.  
  68.     .macro    dial$time    v
  69.     modval    v ,dial.time        ;  4  dial time-out value in secs
  70.     .endm    dial$time
  71.  
  72.     .macro    wake$string    s
  73.     modstr    <s> ,wake.string    ;  6  address of wakeup string
  74.     .endm    wake$string
  75.  
  76.     .macro    wake$rate    v
  77.     modval    v ,wake.rate        ; 10  ticks delay between chars
  78.     .endm    wake$rate
  79.  
  80.     .macro    wake$prompt    s
  81.     modstr    ^~s~ ,wake.prompt    ; 12  address of wakeup prompt string
  82.     .endm    wake$prompt
  83.  
  84.     .macro    dmod$string    s
  85.     modstr    <s> ,dmod.string    ; 14  address of dial initiate string
  86.     .endm    dmod$string
  87.  
  88.     .macro    dmod$prompt    s
  89.     modstr    <s> ,dmod.prompt    ; 16  address of prompt returned by it
  90.     .endm    dmod$prompt
  91.  
  92.     .macro    dial$string    s
  93.     modstr    <s> ,dial.string    ; 20  address of dial format string
  94.     .endm    dial$string
  95.  
  96.     .macro    dial$rate    v
  97.     modval    v ,dial.rate        ; 22  ticks delay between chars
  98.     .endm    dial$rate
  99.  
  100.     .macro    dial$ack    s
  101.     modstr    <s> ,dial.ack        ; 24  modem response to confirm number
  102.     .endm    dial$ack
  103.  
  104.     .macro    dial$blind    s
  105.     modstr    <s> ,dial.blind        ; 26  if <> dial w/o waiting dial tone
  106.     .endm    dial$blind
  107.  
  108.     .macro    dial$wait    s
  109.     modstr    <s> ,dial.wait        ; 30  string for pause format effector
  110.     .endm    dial$wait
  111.  
  112.     .macro    dial$confirm    s
  113.     modstr    <s> ,dial.confirm    ; 32  string to confirm dialed number
  114.     .endm    dial$confirm
  115.  
  116.     .macro    dial$go        s
  117.     modstr    <s> ,dial.go        ; 34  ie, va212 returns "DIALING\n"
  118.     .endm    dial$go
  119.  
  120.     .macro    res$bin        v
  121.     modval    v ,res.bin        ; 36  if <> it's binary responses
  122.     .endm    res$bin
  123.  
  124.     .macro    dial$echo    v
  125.     modval    v ,dial.echo        ; 40  if <> modem echoes its input
  126.     .endm    dial$echo
  127.  
  128.     .macro    mod$comment    s
  129.     modstr    ^~s~ ,mod.com        ; 42  addr of brief modem description
  130.     .endm    mod$comment
  131.  
  132.     .macro    mod$res    s ,class    ; 44  listhead of result messages
  133. ;
  134. ;    res.head(current_modem) --> first entry of linked list
  135. ;
  136. ;    .word    link_to_next        or zero for the last entry
  137. ;    .word    response_class        <0 fail, 0 info, 1 ring, >1 success
  138. ;    .asciz    "response_string"
  139. ;
  140.     .list me
  141.     .save
  142.     .psect    resdat    ,ro,d,lcl,rel,con ; /62/
  143.     .nlist me
  144.     $res1 = .            ; save current pc in "resdat"
  145.     .word    0            ; link to next is zero for now..
  146.     .if  b    <class>            ; if class not specified, then
  147.     .word    0            ; make it zero (info only message)
  148.     .iff                ; else insert specified
  149.     .word    class            ; response class
  150.     .endc
  151.     .asciz    "s"            ; the actual text /BBS/ allow "/"
  152.     .list me
  153.     .even                ; must do
  154.     .restore
  155.     .nlist me
  156.     .if eq    $res            ; is this first time for new type?
  157.     modval    $res1    ,res.head    ; yes, stuff the link header
  158.     .iff                ; not the first time
  159.     .list me
  160.     .save
  161.     .psect    resdat    ,ro,d,lcl,rel,con
  162.     $respc = .            ; save the current pc
  163.     . = $reslast            ; back to link word of previous entry
  164.     .word    $res1            ; insert address of new entry
  165.     . = $respc            ; restore current pc
  166.     .restore
  167.     .nlist me
  168.     .endc
  169.     $reslast = $res1        ; lastlink = current_entry
  170.     $res = 1            ; not the first time anymore
  171.     .endm    mod$res
  172.  
  173.     .macro    dial$xabort    s
  174.     modstr    <s> ,dial.xabort    ; 46  string to kill call in progress
  175.     .endm    dial$xabort
  176.  
  177.     .macro    dial$idle    s
  178.     modstr    <s> ,dial.idle        ; 50  string puts modem in idle state
  179.     .endm    dial$idle
  180.  
  181.     .macro    dial$pulse    s
  182.     modstr    <s> ,dial.pulse        ; 52  pulse dialing command string
  183.     .endm    dial$pulse
  184.  
  185.     .macro    dial$nopulse    s
  186.     modstr    <s> ,dial.nopulse    ; 54  tone dialing command string
  187.     .endm    dial$nopulse
  188.  
  189.     .macro    init$once    v
  190.     modval    v ,init.once        ; 56  if <> modem stays initialized
  191.     .endm    init$once
  192.  
  193.     .macro    time$settle    v
  194.     modval    v ,time.settle        ; 60  reset settle-time in secs
  195.     .endm    time$settle
  196.  
  197.     .macro    x$result    v
  198.     modval    v ,x.result        ; 62  "Hayes" style extended mode
  199.     .endm    x$result
  200.  
  201.     .macro    ph$answer    s
  202.     modstr    <s> ,ph.answer        ; 64  enable answer mode string
  203.     .endm    ph$answer
  204.  
  205.     .macro    ph$noanswer    s
  206.     modstr    <s> ,ph.noanswer    ; 66  disable answer mode string
  207.     .endm    ph$noanswer
  208.  
  209.  
  210.     .sbttl    Macros to place data in the individual fields
  211.  
  212.     .macro    modstr    s ,offset    ; insert a string in modem's data
  213.     .list me
  214.     .save
  215.     .psect    string    ,ro,d,lcl,rel,con
  216.     .nlist me
  217.     $$addr    = .
  218.     $$ = 0
  219.       .irpc    ch ,^~s~        ; translate "^M" syntax to ".byte 15"
  220.       ch1 = ''ch            ; get copy of char as a literal
  221.         .if eq ch1-'^
  222.         $$ = 100            ; char is a ^, set flag for next char
  223.         .iff
  224.           .if ne $$            ; if not a ^ but last char flag is set
  225.         .if  ge  <ch1!40>-<'a!40> ; ensure alpha chars are upper case
  226.         .iif le <<ch1!40>-<'z!40>> ch1 = ch1&137 ; so char-100 works!
  227.         .endc
  228.           .endc
  229.         .byte ch1-$$        ; char-100 = control char of same name
  230.         $$ = 0            ; reset the ^ flag
  231.         .endc
  232.       .endr
  233.     .byte    0            ; null terminate
  234.     .list me
  235.     .psect    modinf    ,ro,d,lcl,rel,con
  236.     . = $$current+offset
  237.     .word    $$addr            ; where to find it..
  238.     .restore
  239.     .nlist me
  240.     .endm    modstr
  241.  
  242.     .macro    modval    val ,offset    ; insert value (word) in modem's data
  243.     .list me
  244.     .save
  245.     .psect    modinf    ,ro,d,lcl,rel,con
  246.     . = $$current+offset        ; it goes here..
  247.     .word    val
  248.     .restore
  249.     .nlist me
  250.     .endm    modval
  251.  
  252.  
  253.     .sbttl    The actual modem definition macro
  254.  
  255. ;    The following creates a modem's data structure, inserting the default
  256. ;    values as shown.  These defaults may be modified using the individual
  257. ;    data field macros.  The individual modem definition entries following
  258. ;    (two pages below) are good examples of how this is accomplished.
  259.  
  260.     .macro    define    lab ,s ,user
  261.     .if eq    $$trip            ; /62/ this has to be done this way
  262.     $$prev    = modinf        ; /62/ because "ndf" blows up the
  263.     $$trip    = 1            ; /62/ .LST output..
  264.     .endc                ; /62/
  265.     $res      = 0            ; init the result message
  266.     $reslast  = 0            ; macro counters
  267.  
  268.     .if nb    <user>            ; if we are doing the "user-defined"
  269.     .list me            ; modem we need to be in a
  270.     .save                ; psect that is never swapped out
  271.     .globl    lab            ; user-defined listhead must be global
  272.     .psect    usermd    ,rw,d,gbl,rel,con ; this psect is forced into the root
  273.     .nlist me            ; by inclusion in KRTSJ and KRTXM
  274.     .iff
  275.     $modtail = .            ; use this to link to "usermd" as it
  276.     .endc                ; avoids error from differing psects
  277.     $$current = .            ; save listhead for auxiliary macros
  278.  
  279.     .list me
  280.     .save
  281.     .psect    string    ,ro,d,lcl,rel,con ; switch to string psect
  282.     $$ = .                ; save location of
  283.     .asciz    "s"            ; the modem type string
  284.     .even
  285.     .restore
  286.     .nlist me
  287.  
  288. lab:    .word    0        ;  0 mod.next       link to next please
  289.     .word    $$        ;  2 mod.string       modem type string address
  290.     .word    30.        ;  4 dial.time       dial time-out in secs
  291.     .word    null        ;  6 wake.string   init to dial out string
  292.     .word    0        ; 10 wake.rate       ticks between init chars
  293.     .word    null        ; 12 wake.prompt   command mode prompt string
  294.     .word    null        ; 14 dmod.string   optional dial cmd string
  295.     .word    null        ; 16 dmod.prompt   optional dial prompt string
  296.     .word    null        ; 20 dial.string   actual dial command string
  297.     .word    0        ; 22 dial.rate       ticks between dial chars
  298.     .word    null        ; 24 dial.ack       dialing acknowledged string
  299.     .word    null        ; 26 dial.blind       blind dial command string
  300.     .word    null        ; 30 dial.wait       pause character string
  301.     .word    null        ; 32 dial.confirm  optional "ok" string
  302.     .word    null        ; 34 dial.go       optional "dialing" string
  303.     .word    0        ; 36 res.bin       if <> single char response
  304.     .word    0        ; 40 dial.echo       if <> modem echos commands
  305.     .word    null        ; 42 mod.comment   modem comment string
  306.     .word    0        ; 44 res.head       result messages listhead
  307.     .word    null        ; 46 dial.xabort   abort dialing string
  308.     .word    null        ; 50 dial.idle       reset modem to idle string
  309.     .word    null        ; 52 dial.pulse       PULSE dialing string
  310.     .word    null        ; 54 dial.nopulse  TONE dialing string
  311.     .word    0        ; 56 init.once       if <> modem stays initted
  312.     .word    20.        ; 60 time.settle   ticks to wait after a reset
  313.     .word    -1        ; 62 x.result       Hayes Xmode, default is off
  314.     .word    null        ; 64 ph.answer       enable auto-answer string
  315.     .word    null        ; 66 ph.noanswer   disable auto-answer string
  316.     $$end    = .
  317.     .iif ne     <<$$end-$$current>-mod.size> .error <; 's define size error>
  318.  
  319.     .if  b    <user>            ; if not the user-defined modem
  320.     . = $$prev            ; insert link address of modem data
  321.     .word    lab            ; just defined in the previous modem
  322.     . = $$end            ; then go back where we were
  323.     $$prev = lab            ; and save new address for next link
  324.     .iff                ; if this is the user-defined modem..
  325.     .list me
  326.     .restore            ; exit root, come back to this overlay
  327.     $$$ = .
  328.     . = $modtail            ; /BBS/ back to top of last definition
  329.     .word    lab            ; /62/ insert link to user-defined
  330.     . = $$$
  331.     .nlist me
  332.     .endc    ; b <user>
  333.     .endm    define
  334.  
  335.  
  336.     .sbttl    Modem response classes    ; /BBS/
  337.  
  338.     CON38400  ==:    38400.    ; /62/ connect at designated speeds
  339.     CON19200  ==:    19200.    ; that is, when the modem's result message
  340.     CON9600      ==:     9600.    ; matches the string associated with one of
  341.     CON7200      ==:     7200.    ; these speed specific classes, then force
  342.     CON4800      ==:     4800.    ; the DTE speed to it (if possible)..
  343.     CON2400      ==:     2400.    ; see the Hayes definition below for an
  344.     CON1200      ==:     1200.    ; example of exactly how this is done
  345.     CON300      ==:      300.
  346.     CONNECT      ==:        2    ; don't check or change speed
  347.     RING      ==:        1    ; a ring was detected
  348.     INFO      ==:        0    ; info only   /62/ *** SEE NOTE BELOW ***
  349.     FAILED      ==:       -1    ; call failed, modem has already stopped
  350.     ABORTED      ==:       -2    ; aborted by program, need to kill modem
  351.  
  352. ; /62/    NOTE:  Since an INFO message is anything undefined, INFO
  353. ;           messages have been dumped here to save space.
  354.  
  355.  
  356.     .psect    modinf    ,ro,d,lcl,rel,con
  357.     .sbttl    Finally, we can define the modems
  358.  
  359. ; /BBS/ NOTE:  When a response string is a  substring  of  another  response
  360. ; string the response being the substring _MUST FOLLOW_ the other containing
  361. ; it as otherwise an unwanted match will occur on the first one encountered.
  362.  
  363. ; /62/    Control chars may be included in strings using the "^X" notation per
  364. ; the modstr macro, above.
  365.  
  366. ; /BBS/ Keep these in modem name alphabetical order for SET MODEM ? display.
  367.  
  368. modinf:                    ; /62/ this is the top of the list
  369.     $$TRIP = 0            ; /62/ init for the define macro
  370.  
  371. define        concord    ,<CONCORD-224>        ; /BBS/ added
  372. mod$comment    <Concord Data 224>
  373. wake$string    <^M^M>                ; keyboard interactive mode
  374. wake$prompt    ^~CDS >~
  375. dial$string    <D %M %S ^M>
  376. dial$wait    <W>
  377. dial$echo    1
  378. dial$pulse    <P>
  379. dial$nopulse    <M>
  380. dial$xabort    <^K>
  381. dial$idle    <E>
  382. dial$time    45.
  383. mod$res        <BUSY>        ,FAILED
  384. mod$res        <CALL FAILED>    ,FAILED
  385. mod$res        <INITIATING>    ,CONNECT
  386. mod$res        <NO ANSWER>    ,FAILED
  387. mod$res        <NO DIAL TONE>    ,FAILED
  388. mod$res        <NO RINGING>    ,FAILED
  389. mod$res        <RINGING>    ,RING
  390. mod$res        <VOICE>        ,FAILED
  391.  
  392. define        cts24    ,<CTS2424>
  393. mod$comment    <CTS/Fabri-Tek 2424AD>
  394. wake$string    <^T^WAT^M>
  395. wake$rate    10
  396. wake$prompt    <Modem Ready>
  397. dial$string    <D%M%B%S^M>
  398. dial$rate    10
  399. dial$wait    <+>
  400. dial$echo    1
  401. dial$blind    <&>
  402. dial$pulse    <P>
  403. dial$nopulse    <T>
  404. dial$xabort    <^T^W>
  405. dial$idle    <^T^W>
  406. dial$time    35.
  407. mod$res        <Busy>        ,FAILED
  408. mod$res        <Dead Line>    ,FAILED
  409. mod$res        <Disconnect>    ,FAILED
  410. mod$res        <No Answer>    ,FAILED
  411. mod$res        <No Dialtone>    ,FAILED
  412. mod$res        <No Tone>    ,FAILED
  413. mod$res        <On Line>    ,CONNECT    ; /BBS/ <On Line Originate>
  414. mod$res        <Ring>        ,RING
  415.  
  416. define        df03    ,<DF03>
  417. mod$comment    <DEC DF03AC>
  418. wake$string    <^A^B>                ; this inits to dial
  419. dial$string    <%S^M>                ; /62/ needs a return here
  420. dial$echo    1
  421. dial$xabort    <^C>                ; /63/
  422. dial$time    30.
  423. res$bin        1                ; single char responses
  424. mod$res        <A>        ,CONNECT
  425. mod$res        <B>        ,FAILED
  426.  
  427. define        df100    ,<DF100>
  428. mod$comment    <DEC DF112>
  429. wake$string    <^B>
  430. wake$prompt    <Ready>
  431. dial$string    <%S#>                ; /45/
  432. dial$rate    10
  433. dial$echo    1
  434. dial$xabort    <^M>
  435. dial$time    30.
  436. mod$res        <Attached>    ,CONNECT
  437. mod$res        <Busy>        ,FAILED
  438. mod$res        <Disconnected>    ,FAILED
  439. mod$res        <Error>        ,FAILED
  440. mod$res        <No answer>    ,FAILED
  441. mod$res        <No dial tone>    ,FAILED
  442.  
  443. define        df200    ,<DF200>
  444. mod$comment    <DEC DF224>
  445. wake$string    <^B>
  446. wake$prompt    <Ready>
  447. dial$string    <%B%M%S!>            ; /60/
  448. dial$echo    1
  449. dial$blind    <^A>                ; /60/
  450. dial$pulse    <P>                ; /60/
  451. dial$xabort    <^B>                ; /60/
  452. dial$nopulse    <T>                ; /60/
  453. dial$time    30.
  454. mod$res        <Attached>    ,CONNECT
  455. mod$res        <Busy>        ,FAILED
  456. mod$res        <Disconnected>    ,FAILED
  457. mod$res        <Error>        ,FAILED
  458. mod$res        <No answer>    ,FAILED
  459. mod$res        <No dial tone>    ,FAILED
  460.  
  461. define        hayes    ,<HAYES>        ; /BBS/ updated..
  462. mod$comment    ^~Hayes Generic Command Set - DTE follows DCE speed~
  463. wake$string    <AT E1 Q0 S0=0 S7=255 V1 %X ^M>    ; note time-out set to
  464. wake$prompt    <OK>                ; 255 so dial$time (which
  465. dial$string    <AT %X %A D%M %S ^M>        ; is settable) will prevail..
  466. dial$echo    1
  467. init$once    1
  468. dial$pulse    <P>
  469. dial$nopulse    <T>
  470. dial$xabort    <^M>
  471. dial$idle    <AT Z ^M>
  472. dial$time    45.
  473. time$settle    <25.>                ; /62/ add a few ticks..
  474. x$result    <4>                ; /62/ extended mode, "ATX4"
  475. ph$answer    <S0=1>                ; /62/
  476. ph$noanswer    <S0=0>                ; /62/
  477. mod$res        <BUSY>        ,FAILED
  478. mod$res        <CONNECT 19200>    ,CON19200    ; /62/ added
  479. mod$res        <CONNECT 14400>    ,CON19200    ; /63/
  480. mod$res        <CONNECT 12000>    ,CON19200    ; /63/
  481. mod$res        <CONNECT 9600>    ,CON9600    ; set DTE to indicated speed..
  482. mod$res        <CONNECT 7200>    ,CON7200    ; /63/
  483. mod$res        <CONNECT 4800>    ,CON4800
  484. mod$res        <CONNECT 2400>    ,CON2400
  485. mod$res        <CONNECT 1200>    ,CON1200
  486. mod$res        <CONNECT 300>    ,CON300        ; /63/
  487. mod$res        <CONNECT>    ,CON300        ; 300 is implied here
  488. mod$res        <ERROR>        ,FAILED
  489. mod$res        <NO ANSWER>    ,FAILED
  490. mod$res        <NO CARRIER>    ,FAILED
  491. mod$res        <NO DIALTONE>    ,FAILED        ; true Hayes
  492. mod$res        <NO DIAL TONE>    ,FAILED        ; many clones
  493. mod$res        <RING>        ,RING        ; includes "RINGING"
  494. mod$res        <RRING>        ,RING        ; Telebit-style rringing
  495. mod$res        <VOICE>        ,FAILED
  496.  
  497. define        hayes.mnp ,<HAYES-MNP>        ; /BBS/ added from above..
  498. mod$comment    <Hayes Generic V.42/MNP - Lock DTE speed before using!>
  499. wake$string    <AT E1 Q0 S0=0 S7=255 V1 %X ^M>
  500. wake$prompt    <OK>
  501. dial$string    <AT %X %A D%M %S ^M>
  502. dial$echo    1
  503. init$once    1
  504. dial$pulse    <P>
  505. dial$nopulse    <T>
  506. dial$xabort    <^M>
  507. dial$idle    <AT Z ^M>
  508. dial$time    60.
  509. time$settle    <25.>
  510. x$result    <4>
  511. ph$answer    <S0=1>                ; /62/
  512. ph$noanswer    <S0=0>                ; /62/
  513. mod$res        <BUSY>        ,FAILED
  514. mod$res        <CONNECT>    ,CONNECT
  515. mod$res        <ERROR>        ,FAILED
  516. mod$res        <NO ANSWER>    ,FAILED
  517. mod$res        <NO CARRIER>    ,FAILED
  518. mod$res        <NO DIALTONE>    ,FAILED
  519. mod$res        <NO DIAL TONE>    ,FAILED
  520. mod$res        <RING>        ,RING
  521. mod$res        <RRING>        ,RING
  522. mod$res        <VOICE>        ,FAILED
  523.  
  524. define        microcom ,<MICROCOM>
  525. mod$comment    <MicroCom SX1200>
  526. wake$string    <4445^MSE2^MS1C0^MSCE ON^M>
  527. wake$rate    10
  528. wake$prompt    <!>
  529. dial$string    <D%S^M>
  530. dial$rate    10
  531. dial$echo    1
  532. dial$time    35.
  533. mod$res        <!>        ,FAILED
  534. mod$res        <CONNECT>    ,CONNECT
  535. mod$res        <NO CONNECT>    ,FAILED
  536.  
  537. define        r212a    ,<R212A>        ; added by edit RTM01
  538. mod$comment    <Rixon R212A>
  539. wake$string    <^M^M>
  540. wake$rate    10                ; wait 8. ticks
  541. wake$prompt    <$>
  542. dmod$string    <K>
  543. dmod$prompt    <NUMBER:>
  544. dial$string    <%S^M>
  545. dial$rate    10
  546. dial$go        <DIALING:>
  547. dial$echo    1
  548. dial$time    60.                ; long time-out for overseas
  549. mod$res        <BUSY>        ,FAILED
  550. mod$res        <DEAD LINE>    ,FAILED
  551. mod$res        <ON LINE>    ,CONNECT
  552. mod$res        <ON-LINE>    ,CONNECT
  553. mod$res        <NO ANSWER>    ,FAILED
  554. mod$res        <RINGING>    ,RING
  555.  
  556. define        T2500    ,<T2500>        ; /BBS/ added..
  557. mod$comment    ^~Telebit w/o error correction - DTE follows DCE speed~
  558. wake$string    <AT E1 Q0 S0=0 S7=255 S66=0 S95=0 S97=0 S106=0 V1 %X ^M>
  559. wake$prompt    <OK>
  560. dial$string    <AT %X %A D%M %S ^M>
  561. dial$echo    1
  562. init$once    1
  563. dial$pulse    <P>
  564. dial$nopulse    <T>
  565. dial$xabort    <^M>
  566. dial$idle    <AT Z ^M>
  567. dial$time    45.
  568. x$result    <3>
  569. ph$answer    <S0=1>                ; /62/
  570. ph$noanswer    <S0=0>                ; /62/
  571. mod$res        <BUSY>        ,FAILED
  572. mod$res        <CONNECT FAST>    ,CON19200    ; /63/
  573. mod$res        <CONNECT 19200>    ,CON19200
  574. mod$res        <CONNECT 9600>    ,CON9600
  575. mod$res        <CONNECT 4800>    ,CON4800
  576. mod$res        <CONNECT 2400>    ,CON2400
  577. mod$res        <CONNECT 1200>    ,CON1200
  578. mod$res        <CONNECT 300>    ,CON300        ; /63/
  579. mod$res        <CONNECT>    ,CON300
  580. mod$res        <ERROR>        ,FAILED
  581. mod$res        <NO ANSWER>    ,FAILED
  582. mod$res        <NO CARRIER>    ,FAILED
  583. mod$res        <NO DIAL TONE>    ,FAILED
  584. mod$res        <RRING>        ,RING
  585.  
  586. define        T2500MNP ,<T2500MNP>        ; /BBS/ added..
  587. mod$comment    <Telebit MNP only - Locks DTE speed>
  588. wake$string    <AT E1 Q0 S0=0 S7=255 S66=1 S95=2 S97=0 S106=0 V1 %X ^M>
  589. wake$prompt    <OK>
  590. dial$string    <AT %X %A D%M %S ^M>
  591. dial$echo    1
  592. init$once    1
  593. dial$pulse    <P>
  594. dial$nopulse    <T>
  595. dial$xabort    <^M>
  596. dial$idle    <AT Z ^M>
  597. dial$time    60.
  598. x$result    <3>
  599. ph$answer    <S0=1>                ; /62/
  600. ph$noanswer    <S0=0>                ; /62/
  601. mod$res        <BUSY>        ,FAILED
  602. mod$res        <CONNECT>    ,CONNECT    ; includes all CONNECT msgs
  603. mod$res        <ERROR>        ,FAILED
  604. mod$res        <NO ANSWER>    ,FAILED
  605. mod$res        <NO CARRIER>    ,FAILED
  606. mod$res        <NO DIAL TONE>    ,FAILED
  607. mod$res        <RRING>        ,RING
  608.  
  609. define        T2500V.42 ,<T2500V.42>        ; /BBS/ added..
  610. mod$comment    <Telebit V.42/MNP - Locks DTE speed>
  611. wake$string    <AT E1 Q0 S0=0 S7=255 S66=1 S95=2 S97=0 S106=1 V1 %X ^M>
  612. wake$prompt    <OK>
  613. dial$string    <AT %X %A D%M %S ^M>
  614. dial$echo    1
  615. init$once    1
  616. dial$pulse    <P>
  617. dial$nopulse    <T>
  618. dial$xabort    <^M>
  619. dial$idle    <AT Z ^M>
  620. dial$time    60.
  621. x$result    <3>
  622. ph$answer    <S0=1>                ; /62/
  623. ph$noanswer    <S0=0>                ; /62/
  624. mod$res        <BUSY>        ,FAILED
  625. mod$res        <CONNECT>    ,CONNECT
  626. mod$res        <ERROR>        ,FAILED
  627. mod$res        <NO ANSWER>    ,FAILED
  628. mod$res        <NO CARRIER>    ,FAILED
  629. mod$res        <NO DIAL TONE>    ,FAILED
  630. mod$res        <RRING>        ,RING
  631.  
  632. define        T3000    ,<T3000>        ; /62/ added..
  633. mod$comment    ^~Telebit w/o V.42/MNP - DTE follows DCE - XOFF restraint~
  634. wake$string    <AT E1 Q S0=0 S7=255 S58=3 S180=0 S181=0 V1 %X ^M> ; /63/
  635. wake$prompt    <OK>
  636. dial$string    <AT %X %A D%M %S ^M>
  637. dial$echo    1
  638. init$once    1
  639. dial$pulse    <P>
  640. dial$nopulse    <T>
  641. dial$xabort    <^M>
  642. dial$idle    <AT Z ^M>
  643. dial$time    45.
  644. time$settle    <35.>                ; the T3000 is SLOW to recover
  645. x$result    <12.>
  646. ph$answer    <S0=1>                ; /62/
  647. ph$noanswer    <S0=0>                ; /62/
  648. mod$res        <BUSY>        ,FAILED
  649. ;mod$res    <CONNECT FAST>    ,CON38400    ; /63/ use this if you can, or
  650. mod$res        <CONNECT FAST>    ,CON19200    ; this if 19.2 is max speed..
  651. mod$res        <CONNECT 38400>    ,CON38400
  652. mod$res        <CONNECT 19200>    ,CON19200
  653. mod$res        <CONNECT 14400>    ,CON19200    ; /63/
  654. mod$res        <CONNECT 12000>    ,CON19200    ; /63/
  655. mod$res        <CONNECT 9600>    ,CON9600
  656. mod$res        <CONNECT 7200>    ,CON7200
  657. mod$res        <CONNECT 4800>    ,CON4800
  658. mod$res        <CONNECT 2400>    ,CON2400
  659. mod$res        <CONNECT 1200>    ,CON1200
  660. mod$res        <CONNECT>    ,CON300
  661. mod$res        <ERROR>        ,FAILED
  662. mod$res        <NO CARRIER>    ,FAILED
  663. mod$res        <NO DIALTONE>    ,FAILED
  664. mod$res        <NO PROMPTTONE>    ,FAILED        ; /63/
  665. mod$res        <RRING>        ,RING
  666.  
  667. define        T3000V.42 ,<T3000V.42>        ; /62/ added..
  668. mod$comment    <Telebit V.42/MNP - DTE is locked - RTS/CTS restraint>
  669. wake$string    <AT E1 Q S0=0 S7=255 S58=2 S180=2 S181=1 V1 %X ^M>
  670. wake$prompt    <OK>
  671. dial$string    <AT %X %A D%M %S ^M>
  672. dial$echo    1
  673. init$once    1
  674. dial$pulse    <P>
  675. dial$nopulse    <T>
  676. dial$xabort    <^M>
  677. dial$idle    <AT Z ^M>
  678. dial$time    60.
  679. time$settle    <35.>                ; the T3000 is SLOW to recover
  680. x$result    <12.>
  681. ph$answer    <S0=1>                ; /62/
  682. ph$noanswer    <S0=0>                ; /62/
  683. mod$res        <BUSY>        ,FAILED
  684. mod$res        <CONNECT>    ,CONNECT
  685. mod$res        <ERROR>        ,FAILED
  686. mod$res        <NO CARRIER>    ,FAILED
  687. mod$res        <NO DIALTONE>    ,FAILED
  688. mod$res        <NO PROMPTTONE>    ,FAILED        ; /63/
  689. mod$res        <RRING>        ,RING
  690.  
  691. define        T3000X.42 ,<T3000X.42>        ; /63/ added..
  692. mod$comment    <Telebit V.42/MNP - DTE is locked - XOFF restraint>
  693. wake$string    <AT E1 Q S0=0 S7=255 S48=0 S58=3 S180=2 S181=1 V1 %X ^M>
  694. wake$prompt    <OK>
  695. dial$string    <AT %X %A D%M %S ^M>
  696. dial$echo    1
  697. init$once    1
  698. dial$pulse    <P>
  699. dial$nopulse    <T>
  700. dial$xabort    <^M>
  701. dial$idle    <AT Z ^M>
  702. dial$time    60.
  703. time$settle    <35.>                ; the T3000 is SLOW to recover
  704. x$result    <12.>
  705. ph$answer    <S0=1>                ; /62/
  706. ph$noanswer    <S0=0>                ; /62/
  707. mod$res        <BUSY>        ,FAILED
  708. mod$res        <CONNECT>    ,CONNECT
  709. mod$res        <ERROR>        ,FAILED
  710. mod$res        <NO CARRIER>    ,FAILED
  711. mod$res        <NO DIALTONE>    ,FAILED
  712. mod$res        <NO PROMPTTONE>    ,FAILED        ; /63/
  713. mod$res        <RRING>        ,RING
  714.  
  715. define        vadic    ,<VADIC>
  716. mod$comment    <Vadic Generic VA212>
  717. wake$string    <^E^M>
  718. wake$rate    10
  719. wake$prompt    <*>
  720. dial$string    <%S^M>
  721. dial$rate    10
  722. dial$wait    <K>
  723. dial$ack    <^M>
  724. dmod$string    <D^M>
  725. dmod$prompt    <?>
  726. dial$confirm    <^M>
  727. dial$go        <DIALING>
  728. dial$echo    1
  729. dial$xabort    <^M>
  730. dial$idle    <I^M>
  731. dial$time    35.
  732. mod$res        <BUSY>        ,FAILED
  733. mod$res        <FAILED CALL>    ,FAILED
  734. mod$res        <NO DIAL>    ,FAILED
  735. mod$res        <ON LINE>    ,CONNECT
  736. mod$res        <ONLINE>    ,CONNECT
  737. mod$res        <RINGING>    ,RING
  738. mod$res        <TIME OUT>    ,FAILED
  739. mod$res        <VOICE>        ,FAILED
  740.  
  741. define        va42    ,<VA4224>
  742. mod$comment    <Vadic 4224>
  743. wake$string    <^E^M>
  744. wake$rate    10
  745. wake$prompt    <*>
  746. dial$string    <D%M%S%B^M>
  747. dial$rate    10
  748. dial$wait    <K>
  749. dial$go        <DIALING>
  750. dial$echo    1
  751. dial$blind    <B>
  752. dial$pulse    <P>
  753. dial$nopulse    <T>
  754. dial$xabort    <^M>
  755. dial$idle    <I^M>
  756. dial$time    35.
  757. mod$res        <BUSY>        ,FAILED
  758. mod$res        <FAILED CALL>    ,FAILED
  759. mod$res        <NO DIAL>    ,FAILED
  760. mod$res        <ON LINE 2400>    ,CONNECT    ; /BBS/ CON2400 ?
  761. mod$res        <ON LINE 1200>    ,CONNECT    ; /BBS/ CON1200 ?
  762. mod$res        <ON LINE 300>    ,CONNECT    ; /BBS/ CON300 ?
  763. mod$res        <ON LINE>    ,CONNECT
  764. mod$res        <ONLINE>    ,CONNECT
  765. mod$res        <RINGING>    ,RING
  766. mod$res        <TIME OUT>    ,FAILED
  767. mod$res        <VOICE>        ,FAILED
  768.  
  769.  
  770.     .sbttl    User-Defined modem
  771.  
  772. ;    This one MUST be the LAST in the list.  The USER-DEFINED modem can
  773. ;    only be loaded AFTER Kermit is running by using SET DIAL commands,
  774. ;    perhaps from KRT.INI.  It lives in a buffer created by Kermit when
  775. ;    it's started, thus the individual field data macros above will not
  776. ;    work here because this buffer is NOT stored in this overlay.
  777.  
  778. define    usermd    ,<USER-DEFINED>    ,GLOBAL
  779.  
  780. ;    No more modem definitions allowed past here!
  781.  
  782.     .end
  783.