home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib28b.dsk / TONE.DIALER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  2KB  |  69 lines

  1. 10  REM  **********************
  2. 20  REM  * TONE.DIALER        *
  3. 30  REM  * BY ALAN H. STEIN   *
  4. 40  REM  * COPYRIGHT (C) 1986 *
  5. 50  REM  * BY MICROSPARC, INC *
  6. 60  REM  * CONCORD, MA  01742 *
  7. 70  REM  **********************
  8. 80  HOME :SLOT = 2: REM  CHANGE THIS TO YOUR MODEM SLOT
  9. 90 A$ = "TOUCH TONE DIALER": GOSUB 460
  10. 100 A$ = "BY": GOSUB 460
  11. 110 A$ = "ALAN H STEIN": GOSUB 460: PRINT 
  12. 120 A$ = "COPYRIGHT 1986 BY MICROSPARC, INC.": GOSUB 460
  13. 130  PRINT : PRINT 
  14. 140 A$ = "THE FIRST NUMBER WILL BE PULSE DIALED": GOSUB 460
  15. 150 A$ = "ALL OTHERS WILL BE TONE DIALED": GOSUB 460
  16. 160  VTAB 22:
  17. 170 A$ = "PRESS <RETURN> TO ACCEPT, <ESC> TO EXIT": GOSUB 460
  18. 180  POKE 35,21
  19. 190 D$ =  CHR$(4)
  20. 200 J$ =  CHR$(10)
  21. 210 Q$ =  CHR$(17)
  22. 220 V$ = "D1234567890*#ABC"
  23. 230 Z$ =  CHR$(26)
  24. 240 CR3 =  -16253 +SLOT *16: REM  CONTROL REGISTER 3
  25. 250 DL = 30
  26. 260  PRINT D$"PR#"SLOT: REM  TURN ON MODEM
  27. 270  POKE CR3,32: REM  TURN ON SPEAKER
  28. 280 VV = 17:QQ$ = "ENTER NUMBER TO PULSE DIAL: ":QB$ = "": GOSUB 520
  29. 290  PRINT Q$;QB$;J$: REM  PULSE DIAL
  30. 300  PRINT 
  31. 310 VV = 17:QQ$ = "ENTER NUMBER TO TONE DIAL: ": GOSUB 520: REM  GET NUMBER INPUT
  32. 320  REM  TONE DIAL A NUMBER
  33. 330  FOR X = 1 TO  LEN(QB$)
  34. 340 D1$ =  MID$ (QB$,X,1): GOSUB 370: REM  DIAL X'TH DIGIT
  35. 350  NEXT 
  36. 360  GOTO 310
  37. 370  REM  TONE DIAL SUBROUTINE
  38. 380 D =  -1
  39. 390  FOR J = 1 TO 16
  40. 400  IF D1$ =  MID$ (V$,J,1)  THEN D = J -1
  41. 410  NEXT 
  42. 420  IF D <0  THEN 450
  43. 430  POKE CR3,D +48: FOR K =  -40 TO DL: NEXT 
  44. 440  POKE CR3,D +32: FOR K = 1 TO DL: NEXT 
  45. 450  RETURN 
  46. 460  REM  CENTER DISPLAY
  47. 470 TB = 20 - INT( LEN(A$)/2): IF TB <1  THEN TB = 1
  48. 480  PRINT  TAB( TB)A$
  49. 490  RETURN 
  50. 500  POKE CR3,0: PRINT Z$: REM  TURN OFF SPEAKER AND HANG UP
  51. 510  END 
  52. 520  REM  INPUT SUBROUTINE
  53. 530 HH =  LEN(QQ$): HTAB 1: VTAB VV
  54. 540  PRINT QQ$;
  55. 550  HTAB HH: CALL  -958: PRINT QB$;: HTAB HH
  56. 560  GET QA$: PRINT QA$;: IF QA$ =  CHR$(27)  THEN  TEXT : HOME : GOTO 500: REM  QUIT
  57. 570  IF  ASC(QA$) <32  AND QA$ < > CHR$(13)  THEN  PRINT  CHR$(7);: GOTO 530
  58. 580  IF QA$ =  CHR$(13)  THEN  RETURN 
  59. 590 QB$ = QA$: CALL  -868
  60. 600  GET QA$: PRINT QA$;
  61. 610  IF QA$ =  CHR$(13)  THEN  GOTO 660
  62. 620  IF QA$ =  CHR$(8)  THEN  GOSUB 670: GOTO 600
  63. 630  IF QA$ =  CHR$(27)  THEN  HOME : END 
  64. 640  IF  ASC(QA$) <32  THEN  VTAB VV: GOTO 600
  65. 650 QB$ = QB$ +QA$: GOTO 600
  66. 660  RETURN 
  67. 670  IF QB$ = ""  THEN  CALL  -1036: RETURN 
  68. 680  IF  LEN(QB$) >1  THEN QB$ =  LEFT$(QB$, LEN(QB$) -1): PRINT " ";: CALL  -1008: RETURN 
  69. 690 QB$ = "": PRINT " ";: CALL  -1008: RETURN