home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / clarion / library / autodi / autodial.cla next >
Text File  |  1991-03-09  |  5KB  |  195 lines

  1.  
  2.  
  3. !  Demo of Auto-dialler LEM - requires a Hayes compatible modem
  4. !
  5. !  Please refer to DIAL.DOC for programming details
  6. !
  7. !
  8. !  Copyright 1991 Sterling Data Services
  9. !  2 Fairford Road  
  10. !  Tilehurst
  11. !  Reading
  12. !  Berkshire RG3 6QB
  13. !  ENGLAND
  14. !
  15. !  +44 (0734) 427333
  16. !
  17. !   If you find this LEM useful a contribution of 10 pounds
  18. !   or 20 dollars would be appreciated.  Registered users
  19. !   may use this LEM in their applications without any further
  20. !   payment of any kind and will be notified of future enhancements.
  21. !
  22. !   Mike McLoughlin
  23. !
  24. !
  25.  
  26.  
  27. AUTODIAL     PROGRAM
  28.  
  29.          INCLUDE('STD_KEYS.CLA')
  30.          INCLUDE('CTL_KEYS.CLA')
  31.  
  32.  
  33.         MAP
  34.            PROC(DIAL)
  35.            PROC(MODEM_INIT)
  36.  
  37.            MODULE('DCLAR.bin'),BINARY           ! DIALER
  38.          PROC(SERINIT)                   ! init serial port
  39.          FUNC(SERSEND),LONG               ! send byte to port
  40.            .
  41.         .
  42.  
  43.  
  44. SCREEN2         SCREEN      HUE(7,1)
  45.  
  46.            ROW(2,17)  PAINT(7,49),HUE(0,7)
  47.            ROW(7,20)  PAINT(1,43),HUE(4,7)
  48.            ROW(16,1)  PAINT(1,55),HUE(14,1)
  49.            ROW(2,17)  STRING('┌─{47}┐')
  50.            ROW(3,17)  REPEAT(5);STRING('│<0{47}>│') .
  51.            ROW(8,17)  STRING('└─{47}┘')
  52.            ROW(3,31)  STRING('DEMO OF AUTO-DIALLER')
  53.            ROW(4,23)  STRING('COPYRIGHT 1991 STERLING DATA SERVICES')
  54.            ROW(5,22)  STRING('2 Fairford Road, Tilehurst, Reading, UK')
  55.            ROW(6,35)  STRING('(0734) 427333')
  56.            ROW(7,20)  STRING('Specialists in customised business software')
  57.            ROW(16,28) STRING('(ESC TO QUIT   -   F1 HELP)')
  58.            ROW(14,25) STRING('ENTER PHONE NUMBER')
  59.          COL(44)  ENTRY(@S14),USE(NUMBER),HLP('NUMHLP'),HUE(0,7),SEL(0,7)|
  60.                 LFT,UPR
  61.          .
  62.  
  63. NUMBER         STRING(14)
  64.  
  65.  
  66. CONFIG       GROUP,PRE(CNF)             !  This group would be part
  67.                          !  of your app's config file
  68. PORT         STRING(1)             !  serial port
  69. INITSTR         STRING(10)             !  Hayes init string
  70. TERMSTR         STRING(15)             !  Hayes termimate string
  71. .
  72.  
  73.     CODE
  74.     ALERT
  75.     ALERT(ESC_KEY)
  76.     HELP('DIAL')
  77.     CNF:PORT=2                 ! I use port 2 for my modem
  78.     MODEM_INIT
  79.     CNF:TERMSTR='~~~+++~~~ATH0|'
  80.     OPEN(SCREEN2)
  81.       LOOP
  82.         ACCEPT
  83.         IF KEYCODE()=ESC_KEY THEN BREAK.
  84.         DIAL()
  85.       .
  86.     RETURN
  87.  
  88.  
  89.  
  90.  
  91.  
  92. DIAL  PROCEDURE
  93.  
  94. SCREEN1         SCREEN      WINDOW(7,68),HUE(0,7)
  95.  OMIT('**-END-**')
  96.       ┌──────────────────────────────────────────────────────────────────┐
  97.       │                                     │
  98.       │                                     │
  99.       │                DIALLING .... PLEASE WAIT             │
  100.       │                                     │
  101.       │                                     │
  102.       └──────────────────────────────────────────────────────────────────┘
  103. **-END-**
  104.  
  105.            ROW(1,1)      STRING('┌─{66}┐')
  106.            ROW(2,1)      REPEAT(5);STRING('│<0{66}>│') .
  107.            ROW(7,1)      STRING('└─{66}┘')
  108.            ROW(4,23)  STRING('DIALLING .... PLEASE WAIT')
  109.          .
  110.  
  111.  
  112. SCREEN         SCREEN      WINDOW(9,58),HUE(15,5)
  113.  OMIT('**-END-**')      Rows 9 thru 16
  114.        ╔══════════════════════════════════════════════════════╗
  115.        ║                              ║
  116.        ║                              ║
  117.        ║             PICK UP THE TELEPHONE          ║
  118.        ║         AND PRESS ANY KEY TO DISCONNECT MODEM      ║
  119.        ║           WHEN DIALLING HAS BEEN COMPLETED          ║
  120.        ║                              ║
  121.        ╚══════════════════════════════════════════════════════╝
  122. **-END-**
  123.  
  124.            ROW(9,1)      PAINT(1,1),TRN
  125.            ROW(1,57)  PAINT(1,2),TRN
  126.            ROW(2,57)  PAINT(8,2),HUE(8,0),TRN
  127.            ROW(9,2)      PAINT(1,55),HUE(8,0),TRN
  128.            ROW(1,1)      STRING('╔═{54}╗')
  129.            ROW(2,1)      REPEAT(6);STRING('║<0{54}>║') .
  130.            ROW(8,1)      STRING('╚═{54}╝')
  131.            ROW(4,19)  STRING('PICK UP THE TELEPHONE')
  132.            ROW(5,11)  STRING('AND PRESS ANY KEY TO DISCONNECT MODEM')
  133.            ROW(6,13)  STRING('WHEN DIALLING HAS BEEN COMPLETED')
  134.          .
  135.  
  136. TEMPSTR         STRING(24)
  137. DIALBYTE     BYTE,DIM(24),OVER(TEMPSTR)
  138. SERPORT         SHORT
  139.  
  140.  
  141.       CODE
  142.       OPEN(SCREEN1)                 ! shows that dialling is taking
  143.                          ! place - really only neede on
  144.                          ! older slow pulse exchanges
  145.       SERPORT=CNF:PORT-1
  146.  
  147.       SERINIT(SERPORT,67)
  148.       CNF:INITSTR='ATDT'             ! FOR TONE DIALLING, use ATDP if you are on a pulse xchange.
  149.       TEMPSTR=CLIP(CNF:INITSTR) & NUMBER
  150.  
  151.       LOOP I# = 1 TO 24
  152.     RESULT#=SERSEND(SERPORT,DIALBYTE[I#])     ! send out the number one byte
  153.     IF KEYBOARD() THEN GOTO OUT.         ! at a time
  154.       .
  155.  
  156.       RESULT#=SERSEND(SERPORT,13)
  157.  
  158.       CLOSE(SCREEN1)
  159.  
  160.       OPEN(SCREEN)
  161.       ASK
  162. OUT   TEMPSTR=CLIP(CNF:TERMSTR)
  163.  
  164.       LOOP I# = 1 TO 15                 !  finish up
  165.     RESULT#=SERSEND(SERPORT,DIALBYTE[I#])
  166.  
  167.       .
  168.       RESULT#=SERSEND(SERPORT,13)
  169.       CLOSE(SCREEN)
  170.  
  171.  
  172.  
  173.  
  174. MODEM_INIT   PROCEDURE                   ! Set DTR to on
  175.  
  176. TEMPSTR         STRING(24)
  177. DIALBYTE     BYTE,DIM(24),OVER(TEMPSTR)
  178. SERPORT         SHORT
  179.  
  180.  
  181.       CODE
  182.       SERPORT=CNF:PORT-1
  183.  
  184.       SERINIT(SERPORT,67)
  185.       CNF:INITSTR='AT&D1'
  186.       TEMPSTR=CLIP(CNF:INITSTR)
  187.  
  188.       LOOP I# = 1 TO 24
  189.     RESULT#=SERSEND(SERPORT,DIALBYTE[I#])
  190.       .
  191.  
  192.       RESULT#=SERSEND(SERPORT,13)
  193.          RETURN
  194.  
  195.