home *** CD-ROM | disk | FTP | other *** search
/ Super Games / visualcdgame.iso / dosgames / contintl / hpad.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1992-06-30  |  5.9 KB  |  116 lines

  1. 10  REM =============================================
  2. 20  REM H-PAD DESIGN - by Steve Schott - Mar 1987
  3. 30  REM =============================================
  4. 40  REM
  5. 45  DIM S(10), A(10), X(10)
  6. 50  CL$ = "                                                                                "
  7. 60  CLS : COLOR 7, 0: KEY OFF
  8. 70  GOTO 670
  9. 80  PRINT "KEYTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENCLOSE"
  10. 90  PRINT "OPEN "; : COLOR 0, 7: PRINT "                     H - P A D   A T T E N U A T O R                       "; : COLOR 7, 0: PRINT " OPEN"
  11. 100  PRINT "SCREENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENLOAD"
  12. 110  REM ---------------------
  13. 120  REM DISPLAY BLOCK DIAGRAM
  14. 130  REM ---------------------
  15. 140  LOCATE 4, 1
  16. 150  PRINT TAB(11); "         VARPTRSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR             VARPTRSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR           "
  17. 160  PRINT TAB(11); "         CALL    R1     CALL             CALL    R2     CALL           "
  18. 170  PRINT TAB(11); "CSRLINSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<0xB4!>           BLOADSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCSRLINSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<0xB4!>           BLOADSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCSRLIN"
  19. 180  PRINT TAB(11); "         CALL           CALL      CALL      CALL           CALL           "
  20. 190  PRINT TAB(11); "         CLSSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND'      CALL      CLSSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND'           "
  21. 200  PRINT TAB(11); "                            CALL                              "
  22. 210  PRINT TAB(11); "                      VARPTRSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR                        "
  23. 220  PRINT TAB(11); "                      CALL    R5     CALL                        "
  24. 230  PRINT TAB(11); "                      CALL           CALL                        "
  25. 240  PRINT TAB(11); "                      CALL           CALL                        "
  26. 250  PRINT TAB(11); "                      CLSSOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUND'                        "
  27. 260  PRINT TAB(11); "                            CALL                              "
  28. 270  PRINT TAB(11); "         VARPTRSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR      CALL      VARPTRSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR           "
  29. 280  PRINT TAB(11); "         CALL    R3     CALL      CALL      CALL    R4     CALL           "
  30. 290  PRINT TAB(11); "CSRLINSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<0xB4!>           BLOADSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCSRLINSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<0xB4!>           BLOADSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCSRLIN"
  31. 300  PRINT TAB(11); "         CALL           CALL             CALL           CALL           "
  32. 310  PRINT TAB(11); "         CLSSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND'             CLSSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND'           "
  33. 320  LOCATE 11, 5: PRINT "Input Impedance"
  34. 330  LOCATE 11, 60: PRINT "Output Impedance"
  35. 340  REM ----------
  36. 350  REM INPUT DATA
  37. 360  REM ----------
  38. 370  LOCATE 22, 1: PRINT CL$: LOCATE 22, 20: COLOR 15: PRINT "Enter Input Impedance (-):": LOCATE 22, 50: INPUT "", A$: A = VAL(A$): IF A <= 0 THEN 370
  39. 380  LOCATE 12, 9: R = A: GOSUB 760: PRINT USING OHMS$; R
  40. 390  LOCATE 22, 1: PRINT CL$: LOCATE 22, 20: COLOR 15: PRINT "Enter Output Impedance (-):": LOCATE 22, 50: INPUT "", A$: B = VAL(A$): IF B <= 0 THEN 370
  41. 400  LOCATE 12, 64: R = B: GOSUB 760: PRINT USING OHMS$; R
  42. 410  REM -----------------------------
  43. 420  REM CALCULATE MINIMUM DESIGN LOSS
  44. 430  REM -----------------------------
  45. 440  IF A < B THEN C = 2: D = 1: Z1 = B: Z2 = A ELSE C = 1: D = 2: Z1 = A: Z2 = B
  46. 450  K5 = (Z1 + SQR((Z1 ^ 2) - (Z1 * Z2))) / Z2
  47. 460  L5 = LOG(K5 / SQR(Z1 / Z2)) / (LOG(10) / 20)
  48. 470  LOCATE 22, 1: PRINT CL$: LOCATE 22, 1: COLOR 7: PRINT "Minimum Allowed Design Loss is "; : COLOR 15: PRINT USING "-##.# dB."; L5: LOCATE 22, 45: INPUT " Enter Desired Loss: ", A$: L = ABS(VAL(A$)): IF L <= L5 THEN 470
  49. 480  LOCATE 4, 35: PRINT USING "-##.# dB"; L
  50. 490  REM -------------------------------
  51. 500  REM CALCULATE AND DISPLAY RESISTORS
  52. 510  REM -------------------------------
  53. 520  K = (EXP(L * (LOG(10) / 20))) * SQR(Z1 / Z2)
  54. 530  N = EXP(L * (LOG(10) / 10))
  55. 540  S(1) = Z1 * ((K * Z2) * (K - 2) + Z1) / (((K ^ 2) * Z2) - Z1)
  56. 550  S(2) = Z2 * ((K ^ 2 * Z2) - Z1 * (2 * K - 1)) / (((K ^ 2) * Z2) - Z1)
  57. 560  R5 = (2 * SQR(N * Z1 * Z2)) / (N - 1): R = R5: GOSUB 760
  58. 570  LOCATE 13, 36: PRINT USING OHMS$; R
  59. 580  R1 = S(3 - D) / 2: R3 = R1: R = R1: GOSUB 760
  60. 590  LOCATE 7, 22: PRINT USING OHMS$; R
  61. 600  LOCATE 19, 22: PRINT USING OHMS$; R
  62. 610  R2 = S(3 - C) / 2: R4 = R2: R = R2: GOSUB 760
  63. 620  LOCATE 7, 48: PRINT USING OHMS$; R
  64. 630  LOCATE 19, 48: PRINT USING OHMS$; R
  65. 640  REM ----
  66. 650  REM MENU
  67. 660  REM ----
  68. 670  LOCATE 22, 1: PRINT CL$: LOCATE 22, 14: COLOR 15: PRINT "F"; : COLOR 7: PRINT "ind Standard Resistor Values - "; : COLOR 15: PRINT "H"; : COLOR 7: PRINT "-Pad Design - "; : COLOR 15: PRINT "Q"; : COLOR 7: PRINT "uit"
  69. 680  A$ = INPUT$(1)
  70. 690  IF A$ = "f" OR A$ = "F" THEN GOTO 790
  71. 700  IF A$ = "h" OR A$ = "H" THEN CLS : GOTO 80
  72. 710  IF A$ = "q" OR A$ = "Q" THEN RUN "TECHMENU"
  73. 720  GOTO 670
  74. 730  REM -------------------------------
  75. 740  REM ROUTINE TO DERMINE -, K-, OR M-
  76. 750  REM -------------------------------
  77. 760  IF R > 999.9 AND R < 1E+06 THEN OHMS$ = "###.## K-": R = R / 1000: RETURN
  78. 770  IF R > 1E+06 THEN OHMS$ = "###.## M-": R = R / 1E+06: RETURN
  79. 780  OHMS$ = "###.## -": RETURN
  80. 790  REM ----------------------------------
  81. 800  REM CALCULATE STANDARD RESISTOR SIZES
  82. 810  REM ----------------------------------
  83. 820  CLS : COLOR 7, 0: KEY OFF
  84. 830  PRINT "KEYTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENCLOSE"
  85. 840  PRINT "OPEN "; : COLOR 0, 7: PRINT "         F I N D   S T A N D A R D   R E S I S T O R   V A L U E S         "; : COLOR 7, 0: PRINT " OPEN"
  86. 850  PRINT "SCREENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENLOAD"
  87. 860  LOCATE 5, 30: IF R1 > 0 THEN PRINT TAB(30); "R1 = "; TAB(35); : PRINT USING "########.## -"; R1
  88. 880  IF R2 > 0 THEN PRINT TAB(30); "R2 = "; TAB(35); : PRINT USING "########.## -"; R2
  89. 890  IF R3 > 0 THEN PRINT TAB(30); "R3 = "; TAB(35); : PRINT USING "########.## -"; R3
  90. 900  IF R4 > 0 THEN PRINT TAB(30); "R4 = "; TAB(35); : PRINT USING "########.## -"; R4
  91. 910  IF R5 > 0 THEN PRINT TAB(30); "R5 = "; TAB(35); : PRINT USING "########.## -"; R5
  92. 920  LOCATE 12, 1: PRINT "This routine calculates the standard resistor values of 1%, 5%, 10%, and 20%"
  93. 930  PRINT "resistors.  Enter the non-standard value and press return."
  94. 940  LOCATE 22, 1: PRINT CL$: LOCATE 22, 10: COLOR 15: INPUT "Enter Non-Standard Resistor Value in -: ", A$: X = VAL(A$): COLOR 7: Y = X: IF X < 0 THEN 940
  95. 950  A(6) = 1: GOSUB 1060: X(1) = X: X = Y
  96. 960  A(6) = 5: GOSUB 1060: X(2) = X: X = Y
  97. 970  A(6) = 10: GOSUB 1060: X(3) = X: X = Y
  98. 980  A(6) = 20: GOSUB 1060: X(4) = X
  99. 990  LOCATE 15, 1
  100. 1000  PRINT TAB(20); "Non-Standard Value:  "; : R = Y: GOSUB 760: COLOR 15: PRINT USING OHMS$; R: COLOR 7
  101. 1010  PRINT TAB(20); " 1% Resistor Value:  "; : R = X(1): GOSUB 760: COLOR 15: PRINT USING OHMS$; R: COLOR 7
  102. 1020  PRINT TAB(20); " 5% Resistor Value:  "; : R = X(2): GOSUB 760: COLOR 15: PRINT USING OHMS$; R: COLOR 7
  103. 1030  PRINT TAB(20); "10% Resistor Value:  "; : R = X(3): GOSUB 760: COLOR 15: PRINT USING OHMS$; R: COLOR 7
  104. 1040  PRINT TAB(20); "20% Resistor Value:  "; : R = X(4): GOSUB 760: COLOR 15: PRINT USING OHMS$; R: COLOR 7
  105. 1050  GOTO 670
  106. 1060  A(4) = 0.0119927 * INT(1 + 1.5 * A(6) + 0.004 * A(6) ^ 2)
  107. 1070  A(3) = INT(LOG(X) / LOG(10) - INT(2.2 - 3 * A(4)))
  108. 1080  X = X / 10 ^ A(3)
  109. 1090  FOR K = 1 TO 2
  110. 1100  A(K) = INT(EXP(A(4) * (INT(LOG(X) / A(4)) + K - 1)) + 0.5)
  111. 1110  A(5) = 1.8799E-05 * A(K) ^ 3 - 0.00335 * A(K) ^ 2 + 0.164 * A(K) - 1.284
  112. 1120  A(K) = A(K) + INT(A(5) * INT(3 * A(4) + 0.8))
  113. 1130  NEXT K
  114. 1140  X = 10 ^ A(3) * A(X / SQR(A(1) * A(2)) + 1)
  115. 1150  RETURN
  116.