home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 12 / CD_ASCQ_12_0294.iso / maj / 2364 / minilab / exer6.bas < prev    next >
BASIC Source File  |  1994-02-27  |  41KB  |  1,005 lines

  1. REM W. Prévost 1993 : MINILAB: Module EXERCICES
  2. DECLARE SUB ResetMouse ()
  3. DECLARE SUB Mouse (OnOff%)
  4. DECLARE SUB GetMouse ()
  5. DECLARE SUB Clic (ClickDelay%)
  6. DECLARE SUB MouseSpeed (Curseur%)
  7. DECLARE SUB IconAide (a, B)
  8. DECLARE SUB IconA (a, B, coul)
  9. DECLARE SUB IconSuivant (a, B)
  10. DECLARE SUB IconPrecedant (a, B)
  11. DECLARE SUB ZoneXMouse (X1%, X2%)
  12. DECLARE SUB ZoneYMouse (Y1%, Y2%)
  13. DECLARE SUB ReadData ()
  14. DECLARE SUB TexteIntro ()
  15. DECLARE SUB TextEx1 ()
  16. DECLARE SUB TextEx2 ()
  17. DECLARE SUB TextEx3 ()
  18. DECLARE SUB TextEx4 ()
  19. DECLARE SUB TextEx5 ()
  20. DECLARE SUB TextEx6 ()
  21. DECLARE SUB TextEx7 ()
  22. DECLARE SUB TextEx8 ()
  23. DECLARE SUB TextEx9 ()
  24. DECLARE SUB TextEx10 ()
  25. DECLARE SUB TextEx11 ()
  26. DECLARE SUB TextEx12 ()
  27. DECLARE SUB TextEx13 ()
  28. DECLARE SUB TextEx14 ()
  29. DECLARE SUB TextEx15 ()
  30. DECLARE SUB TextEx16 ()
  31. DECLARE SUB TextEx17 ()
  32. DECLARE SUB TextEx18 ()
  33. DECLARE SUB TextEx19 ()
  34. DECLARE SUB TextEx20 ()
  35. DECLARE SUB TextEx21 ()
  36. DECLARE SUB TextEx22 ()
  37. DECLARE SUB TextEx23 ()
  38. DECLARE SUB TextAide1 ()
  39. DECLARE SUB TextAide22 ()
  40. DECLARE FUNCTION Interr% (Num%, AX%, Bx%, CX%, DX%)
  41. DIM SHARED MS%(45)
  42. CLEAR
  43. ReadData
  44. DEFINT A-Z
  45. DIM SHARED a, X%, Y%, B%, coul
  46. ON ERROR GOTO TraiteErreur
  47. SCREEN 12
  48. OPEN "Minilab\SETUP.INI" FOR INPUT AS #1
  49. SEEK #1, 1
  50. INPUT #1, CoulBarreTitre, CoulLettresTitre, CoulZoneTravail
  51. INPUT #1, VitesseSouris, ClickDelay
  52. CLOSE #1
  53.  
  54. debut: COLOR 15
  55. LINE (0, 0)-(639, 26), CoulBarreTitre, BF
  56. LINE (0, 106)-(639, 479), 0, BF
  57. LINE (0, 29)-(639, 29), 15
  58. c = CoulLettresTitre: X = 25: Y = 14: GOSUB minilab: X = 26: GOSUB minilab
  59. X = 245: GOSUB exer6: X = 246: GOSUB exer6
  60. LINE (0, 31)-(639, 60), 7, BF: LINE (0, 61)-(639, 105), 15, BF
  61. LINE (0, 59)-(639, 59), 15: LINE (0, 103)-(639, 103), 7
  62. c = 4: Y = 44: X = 25: GOSUB Aide: X = 26: GOSUB Aide: X = 39: GOSUB trt
  63. X = 75: GOSUB trt: GOSUB Suivant: X = 76: GOSUB Suivant
  64. X = 150: GOSUB trt: GOSUB Precedant: X = 151: GOSUB Precedant
  65. c = 0: X = 517: GOSUB M: GOSUB E: GOSUB trt: GOSUB N: GOSUB U
  66. X = 518: GOSUB menup
  67. IconAide 30, 65
  68. IconA 80, 65, 10
  69. X = 95: Y = 80: c = 10: GOSUB a: GOSUB par: X = 96: GOSUB a: GOSUB par
  70. IconA 130, 65, 14
  71. X = 145: Y = 80: c = 14: GOSUB B: GOSUB par: X = 146: GOSUB B: GOSUB par
  72. IconA 180, 65, 12
  73. X = 195: Y = 80: c = 12: GOSUB c: GOSUB par: X = 196: GOSUB c: GOSUB par
  74. IconSuivant 230, 65
  75. IconPrecedant 280, 65
  76. a = 330: B = 65: LINE (a, B)-(a + 40, B + 30), 0, B            'icone Menu
  77. LINE (a + 2, B + 2)-(a + 38, B + 11), 9, BF
  78. X = 336: Y = 71: c = 15: GOSUB menup: X = 337: GOSUB menup
  79. LINE (a + 2, B + 13)-(a + 38, B + 24), 7, BF
  80.  
  81. a = 95: aa = 545: B = 120: bb = 420: cf = 0: GOSUB Box
  82. LINE (a + 6, B + 6)-(aa - 6, B + 20), 5, BF
  83. X = 307: Y = B + 13: c = 15: GOSUB inf: X = 308: GOSUB inf
  84. TexteIntro
  85. X = 186: Y = 379: c = 9: GOSUB trt: X = 315: GOSUB trt: f$ = ""
  86. ResetMouse
  87. Curseur% = VitesseSouris
  88. MouseSpeed Curseur%
  89. ZoneXMouse 101, 539: ZoneYMouse 142, 399
  90. AttenteDebut: Mouse 1: DO: GetMouse
  91.    f$ = INKEY$: f$ = UCASE$(f$)
  92.    LOOP UNTIL B% = 1 OR LEN(f$)
  93.    Mouse 0
  94. IF f$ = "C" THEN GOTO EX1
  95. IF f$ = "Q" THEN GOTO Menu
  96. IF Y% > 369 AND Y% < 381 AND X% > 159 AND X% < 171 THEN GOTO EX1
  97. IF Y% > 369 AND Y% < 381 AND X% > 286 AND X% < 298 THEN GOTO Menu
  98. GOTO AttenteDebut
  99.  
  100. EX1: c = 10: N = 1: GOSUB cadre: GOSUB schema1: TextEx1          '...1
  101. ResetMouse
  102. MouseSpeed Curseur%
  103. ZoneXMouse 5, 624: ZoneYMouse 61, 359
  104. Att1: GOSUB AttenteChoix: GOTO Att1
  105. Aide1: GOSUB cadre2: TextAide1: RETURN Att1
  106. Rep1: GOSUB cadre2: COLOR 10: LOCATE 27, 5
  107. PRINT "REPONSE:     B)  I(del) = (9 V - 1,6 V) / 47O "; CHR$(234); " = 15 mA"
  108. GOSUB AttenteChoix
  109. EX2: c = 10: N = 2: GOSUB cadre: GOSUB schema1: TextEx2           '...2
  110. Att2: GOSUB AttenteChoix: GOTO Att2
  111. Aide2: GOSUB cadre2: TextAide1: RETURN Att2
  112. Rep2: GOSUB cadre2: COLOR 10: LOCATE 27, 5
  113. PRINT "REPONSE:     A)  R = (6 V - 1,6 V) / O,O2 A = 22O "; CHR$(234)
  114. GOSUB AttenteChoix
  115. EX3: c = 10: N = 3: GOSUB cadre: TextEx3                          '...3
  116. Att3: GOSUB AttenteChoix: GOTO Att3
  117. Aide3: GOSUB cadre2: COLOR 15
  118. LOCATE 26, 5: PRINT "Résistances en série:   Req = R1 + R2 + R3 ..."
  119. LOCATE 28, 5: PRINT "Résistances en parallèle:   Req = (R1 x R2) / (R1 + R2)"
  120. RETURN Att3
  121. Rep3: GOSUB cadre2: COLOR 10: LOCATE 27, 5
  122. PRINT "REPONSE:     B)  Req = (1O k + 1O k) x 1O k / (1O k + 1O k + 1O k)"
  123. LOCATE 28, 26: PRINT "=  2OO M"; CHR$(234); " / 3O k"; CHR$(234); " = 6,66 k"; CHR$(234)
  124. GOSUB AttenteChoix
  125. EX4: c = 10: N = 4: GOSUB cadre: GOSUB schema1: TextEx4            '...4
  126. Att4: GOSUB AttenteChoix: GOTO Att4
  127. Aide4: c = 12: GOSUB cadre2: COLOR 15
  128. LOCATE 26, 5: PRINT "P (puissance) = U (tension) x I (intensité)"
  129. LOCATE 28, 5: PRINT "Tension de seuil d'une del rouge = 1,6 V environ"
  130. RETURN Att4
  131. Rep4: GOSUB cadre2: LOCATE 26, 5: COLOR 10
  132. PRINT "REPONSE:     A)  1/4 W     En effet, la puissance à dissiper sera:"
  133. LOCATE 28, 5
  134. PRINT "P = (12 - 1,6) x ((12 - 1,6) / 68O)) = 1O,4 x .O15 = O.16 W "; CHR$(241); " 5%"
  135. GOSUB AttenteChoix
  136. EX5: c = 10: N = 5: GOSUB cadre: TextEx5                              '...5
  137. Att5: GOSUB AttenteChoix: GOTO Att5
  138. Rep5: GOSUB cadre2: COLOR 10: LOCATE 27, 5: PRINT "REPONSE:     c) "
  139. GOSUB AttenteChoix
  140. EX6: c = 14: N = 6: GOSUB cadre: TextEx6                              '...6
  141. Att6: GOSUB AttenteChoix: GOTO Att6
  142. Aide6: c = 7: GOSUB cadre2: COLOR 15
  143. LOCATE 27, 5: PRINT "U(eff) = U(max) x O.7O7"
  144. RETURN Att6
  145. Rep6: GOSUB cadre2: COLOR 14
  146. LOCATE 27, 5: PRINT "REPONSE:     C)  22O V x 1.4142 = 311 V crête à crête"
  147. GOSUB AttenteChoix
  148. EX7: c = 14: N = 7: GOSUB cadre: TextEx7                         '...7
  149. Att7: GOSUB AttenteChoix: GOTO Att7
  150. Aide7: GOSUB cadre2: COLOR 15
  151. LOCATE 27, 5: PRINT "U au secondaire = U redressée x O.7O7"
  152. RETURN Att7
  153. Rep7: GOSUB cadre2: COLOR 14: LOCATE 26, 5
  154. PRINT "REPONSE:     C)  24 V x 1.4 = 33,6 V   Les diodes de redressement"
  155. LOCATE 28, 5: PRINT "provoquent une chute de tension d'environ 2 x O,7 = 1,4 V."
  156. GOSUB AttenteChoix
  157. EX8: c = 14: N = 8: GOSUB cadre: TextEx8                        '...8
  158. Att8: GOSUB AttenteChoix: GOTO Att8
  159. Rep8: GOSUB cadre2: COLOR 14
  160. LOCATE 27, 5: PRINT "REPONSE:     B)  double alternance"
  161. GOSUB AttenteChoix
  162. EX9: c = 14: N = 9: GOSUB cadre: GOSUB schema2: TextEx9         '...9
  163. Att9: GOSUB AttenteChoix: GOTO Att9
  164. Aide9: GOSUB cadre2: COLOR 15: LOCATE 26, 5
  165. PRINT "Rapport cyclique d'un signal périodique: rapport entre la durée du"
  166. LOCATE 28, 5: PRINT "niveau haut et la durée du niveau bas."
  167. RETURN Att9
  168. Rep9: GOSUB cadre2: COLOR 14: LOCATE 27, 5
  169. PRINT "REPONSE:     B)  6O% : niveau haut d'une durée de T x O,6"
  170. GOSUB AttenteChoix
  171. EX10: c = 14: N = 10: GOSUB cadre                               '...10
  172. GOSUB schema2: c = 11: Y = 250: X = 190: GOSUB trois
  173. X = 240: GOSUB quatre: X = 290: GOSUB cinq
  174. TextEx10
  175. Att10: GOSUB AttenteChoix: GOTO Att10
  176. Aide10: GOSUB cadre2: LOCATE 27, 5: COLOR 15
  177. PRINT "Période d'un signal périodique: durée d'un cycle complet du signal."
  178. RETURN Att10
  179. Rep10: c = 14: GOSUB cadre2: COLOR 14: LOCATE 27, 5
  180. PRINT "REPONSE:     B)  1 ms   (niveau haut: O,6 ms ; niveau bas: O,4 ms)"
  181. c = 12: B = 230: h = 175: I = 190: LINE (I, B)-(I, h), c: LINE -(I + 30, h), c
  182. LINE -(I + 30, B), c: LINE -(I + 50, B), c
  183. GOSUB AttenteChoix
  184. EX11: c = 12: N = 11: GOSUB cadre: TextEx11                    '...11
  185. c = 3: X = 68: Y = 185: GOSUB a: X = 68: Y = 225: GOSUB B
  186. X = 180: Y = 205: GOSUB S
  187. Att11: GOSUB AttenteChoix: GOTO Att11
  188. Aide11: GOSUB cadre2: COLOR 15: LOCATE 27, 5
  189. PRINT "La table de vérité du circuit en question est donnée ci-dessus."
  190. COLOR 14
  191. LOCATE 11, 40: PRINT "A   B   S": LOCATE 13, 40: PRINT "O   O   1"
  192. LOCATE 14, 40: PRINT "O   1   1": LOCATE 15, 40: PRINT "1   O   1"
  193. LOCATE 16, 40: PRINT "1   1   O"
  194. LINE (363, 161)-(363, 253), 6: LINE (307, 183)-(387, 183), 6
  195. LINE (330, 161)-(330, 253), 6
  196. RETURN Att11
  197. Rep11: GOSUB cadre2: COLOR 12: LOCATE 27, 5
  198. PRINT "REPONSE:     B)  1    (il s'agit d'une porte NAND, ou NON-ET)"
  199. GOSUB AttenteChoix
  200. EX12: c = 12: N = 12: GOSUB cadre: TextEx12                      '...12
  201. Att12: GOSUB AttenteChoix: GOTO Att12
  202. Aide12: GOSUB cadre2: COLOR 15: LOCATE 26, 5
  203. PRINT "Le transistor, de type NPN, est passant lorsque la tension Ube"
  204. LOCATE 28, 5: PRINT "entre sa base et son émetteur est supérieure à O,6 V."
  205. RETURN Att12
  206. Rep12: GOSUB cadre2: COLOR 12: LOCATE 27, 5
  207. PRINT "REPONSE:     C)  1O V    En effet, 1O V x (15 / (22O + 15)) = O,63 V"
  208. GOSUB AttenteChoix
  209. EX13: c = 12: N = 13: GOSUB cadre: TextEx13                      '...13
  210. Att13: GOSUB AttenteChoix: GOTO Att13
  211. Aide13: GOSUB cadre2: LOCATE 26, 5: COLOR 15
  212. PRINT "Un condensateur est chargé à 95% de sa tension finale au bout d'un"
  213. LOCATE 28, 5
  214. PRINT "temps égal à 3 x R x C (le produit R x C est la constante de temps)."
  215. RETURN Att13
  216. Rep13: GOSUB cadre2: COLOR 12: LOCATE 26, 5
  217. PRINT "REPONSE:     B)  1OO k"; CHR$(234)
  218. LOCATE 28, 18
  219. PRINT "En effet, 3 x 33O nF x 1OO k"; CHR$(234); " = O,O99 s"
  220. GOSUB AttenteChoix
  221. EX14: c = 12: N = 14: GOSUB cadre: TextEx14                     '...14
  222. Att14: GOSUB AttenteChoix: GOTO Att14
  223. Aide14: GOSUB cadre2: COLOR 15: LOCATE 26, 5
  224. PRINT "U au secondaire = Us x .7O7"
  225. LOCATE 28, 5: PRINT "Puissance apparente d'un transformateur = Ueff x Ieff, en VA"
  226. RETURN Att14
  227. Rep14: GOSUB cadre2: COLOR 12: LOCATE 26, 5
  228. PRINT "REPONSE:  B)  Le secondaire du transformateur devra fournir une"
  229. LOCATE 27, 15
  230. PRINT "tension au moins égale à O.7O7 (15 V + 1,4 V + 2 V) = 13 V"
  231. LOCATE 28, 15
  232. PRINT "Puissance apparente: au moins 13 V x 1,5 A = 19,5 VA"
  233. GOSUB AttenteChoix
  234. EX15: c = 12: N = 15: GOSUB cadre: TextEx15                      '...15
  235. Att15: GOSUB AttenteChoix: GOTO Att15
  236. Aide15: GOSUB cadre2: COLOR 15: LOCATE 26, 5
  237. PRINT "(U au secondaire x 1.414) - chute dans les diodes = U redressée"
  238. LOCATE 27, 5
  239. PRINT "Courant nominal d'un transfo = Puissance (en VA)/ U secondaire totale"
  240. LOCATE 28, 5
  241. PRINT "Ex.: Un transfo 2 x 12 V/26 VA peut débiter 26/24 = 1 A environ."
  242. RETURN Att15
  243. Rep15: GOSUB cadre2: COLOR 12: LOCATE 26, 5
  244. PRINT "REPONSE:  B)  Mise en série des secondaires. La tension disponible sera"
  245. LOCATE 27, 5
  246. PRINT "de (1.414 (2 x 12 V)) - 1,4 V (chute dans les diodes), soit 32,5 V."
  247. LOCATE 28, 5
  248. PRINT "En parallèle, on n'obtiendrait que 15,5 V, mais une intensité double."
  249. GOSUB AttenteChoix
  250. EX16: c = 13: N = 16: GOSUB cadre: TextEx16                   '...16
  251. Att16: GOSUB AttenteChoix: GOTO Att16
  252. Rep16: GOSUB cadre2: COLOR 13: LOCATE 26, 5
  253. PRINT "REPONSE:      A)"
  254. GOSUB AttenteChoix
  255. EX17: c = 13: N = 17: GOSUB cadre: TextEx17                   '...17
  256. Att17: GOSUB AttenteChoix: GOTO Att17
  257. Rep17: GOSUB cadre2: COLOR 13: LOCATE 26, 5
  258. PRINT "REPONSE:      A)"
  259. GOSUB AttenteChoix
  260. EX18: c = 13: N = 18: GOSUB cadre: TextEx18                   '...18
  261. Att18: GOSUB AttenteChoix: GOTO Att18
  262. Rep18: GOSUB cadre2: COLOR 13: LOCATE 26, 5
  263. PRINT "REPONSE:      B)"
  264. GOSUB AttenteChoix
  265. EX19: c = 13: N = 19: GOSUB cadre: TextEx19               '...19
  266. Att19: GOSUB AttenteChoix: GOTO Att19
  267. Rep19: GOSUB cadre2: COLOR 13: LOCATE 27, 5
  268. PRINT "REPONSE:     A),  B)  et  C)  sont vraies et complémentaires..."
  269. GOSUB AttenteChoix
  270. EX20: c = 13: N = 20: GOSUB cadre: TextEx20                     '...20
  271. Att20: GOSUB AttenteChoix: GOTO Att20
  272. Rep20: GOSUB cadre2: COLOR 13: LOCATE 26, 5
  273. PRINT "REPONSE:      C) on l'appelle aussi TIMER (consulter le DATABOOK)"
  274. GOSUB AttenteChoix
  275. EX21: c = 9: N = 21: GOSUB cadre: GOSUB ScopeGrid: TextEx21
  276.  Fq1 = 60: V1 = 310: VCH1! = V1 / 10: VDIV1! = 1.25: T1! = 1 / Fq1
  277.  Y = 232: X = 350: GOSUB TraceSinus
  278. Att21: GOSUB AttenteChoix: GOTO Att21
  279. Aide21: GOSUB cadre2: COLOR 15: LOCATE 27, 5
  280. PRINT "Le calibre 2OO correspond à 2OO V par division verticale."
  281. RETURN Att21
  282. Rep21: GOSUB cadre2: COLOR 9: LOCATE 26, 5
  283. PRINT "REPONSE:      C) 31O V"
  284. GOSUB AttenteChoix
  285. EX22: c = 9: N = 22: GOSUB cadre: GOSUB ScopeGrid: TextEx22
  286.  Fq1 = 50: V1 = 200: VCH1! = V1 / 10: VDIV1! = 1.25: T1! = 1 / Fq1
  287.  Y = 232: X = 350: GOSUB TraceSinus
  288. Att22: GOSUB AttenteChoix: GOTO Att22
  289. Aide22: GOSUB cadre2: TextAide22: RETURN Att22
  290. Rep22: GOSUB cadre2: COLOR 9: LOCATE 26, 5
  291. PRINT "REPONSE:      B) T = 2 x 1O ms = 2O ms = O.O2 s"
  292. LOCATE 28, 5: PRINT "                 f = 1 / O.O2 s = 5O Hz"
  293. GOSUB AttenteChoix
  294. EX23: c = 9: N = 23: GOSUB cadre: GOSUB ScopeGrid: TextEx23
  295.  Fq1 = 50: V1 = 200: VCH1! = V1 / 10: VDIV1! = 1.25: T1! = 1 / Fq1
  296.  Y = 182: X = 350: GOSUB TraceSinus
  297.  Fq1 = 100: V1 = 200: VCH1! = V1 / 10: VDIV1! = 1.25: T1! = 1 / Fq1
  298.  Y = 282: X = 350: GOSUB TraceSinus
  299. Att23: GOSUB AttenteChoix: GOTO Att23
  300. Aide23: GOSUB cadre2: TextAide22: RETURN Att23
  301. Rep23: GOSUB cadre2: COLOR 9: LOCATE 27, 5
  302. PRINT "REPONSE:      C) La fréquence est donc deux fois inférieure."
  303. GOSUB AttenteChoix
  304. END
  305. REM ================================================
  306. cadre: a = 0: aa = 639: B = 107: bb = 380: cf = 0
  307. LINE (a, B)-(aa, 479), 0, BF: GOSUB Box
  308. COLOR c: LOCATE 9, 5: PRINT "Exercice"; N: RETURN
  309. cadre2: a = 0: aa = 639: B = 382: bb = 479: cf = 0: GOSUB Box: RETURN
  310. Box: LINE (a, B)-(aa, bb), 7, BF: LINE (a + 5, B + 5)-(aa - 5, bb - 5), 0, B
  311. PAINT (a + 3, B + 10), 7, 0: LINE (a + 6, B + 6)-(aa - 6, bb - 6), cf, BF
  312. LINE (a + 1, B + 1)-(a + 1, bb - 1), 15: LINE -(aa - 1, bb - 1), 15
  313. LINE (a + 35, B)-(a + 35, B + 5), 8: LINE (a + 35, bb - 5)-(a + 35, bb - 1), 8
  314. LINE (aa - 35, B)-(aa - 35, B + 5), 8: LINE (aa - 35, bb - 5)-(aa - 35, bb - 1), 8
  315. LINE (a + 1, B + 35)-(a + 5, B + 35), 8: LINE (a + 1, bb - 35)-(a + 5, bb - 35), 8
  316. LINE (aa, B + 35)-(aa - 5, B + 35), 8: LINE (aa, bb - 35)-(aa - 5, bb - 35), 8
  317. RETURN
  318. ScopeGrid:
  319. FOR h = 132 TO 332 STEP 25: LINE (350, h)-(600, h), 9: NEXT h
  320. FOR V = 350 TO 600 STEP 25: LINE (V, 132)-(V, 332), 9: NEXT V
  321. FOR h = 132 TO 332 STEP 5: LINE (473, h)-(477, h), 9: NEXT h
  322. FOR V = 350 TO 600 STEP 5: LINE (V, 230)-(V, 234), 9: NEXT V: RETURN
  323. TraceSinus:
  324. DO: FOR P = -8 TO 1
  325. IF T1! > 0 * 10 ^ P AND T1! <= 2 * 10 ^ P THEN TCAL! = 1 * 10 ^ P: EXIT DO
  326. IF T1! > 2 * 10 ^ P AND T1! <= 5 * 10 ^ P THEN TCAL! = 2 * 10 ^ P: EXIT DO
  327. IF T1! > 5 * 10 ^ P AND T1! <= 9.9 * 10 ^ P THEN TCAL! = 5 * 10 ^ P: EXIT DO
  328. NEXT P: LOOP
  329. cc = 10
  330. TDIV! = 360 / (25 * (T1! / TCAL!))
  331.    DO
  332. FOR a = 0 TO 180 STEP 3
  333. ang! = a * .01745: divt! = a / TDIV!
  334. PSET (X + divt!, Y + (VCH1! * SIN(ang!)) * VDIV1!), cc
  335. IF X + divt! > 599 THEN EXIT DO
  336. NEXT a
  337. FOR a = 180 TO 360 STEP 3
  338. ang! = a * .01745: divt! = a / TDIV!
  339. PSET (X + divt!, Y + (VCH1! * SIN(ang!)) * VDIV1!), cc
  340. IF X + divt! > 599 THEN EXIT DO
  341. NEXT a
  342.    X = X + (25 * (T1! / TCAL!)): LOOP
  343. RETURN
  344. Menu: GOSUB charge: CHAIN "minilab\minilab2.bas"
  345. charge: a = 190: B = 125: aa = 450: bb = 185: cf = 3: GOSUB Box
  346. X = 260: Y = 155: c = 0: GOSUB inst: X = 261: GOSUB inst: RETURN
  347. REM =        Chiffres & lettres & messages  graphiques
  348. trois: FOR h = X - 1 TO X + 1: PSET (h, Y - 3), c: NEXT h
  349. PSET (X - 2, Y - 2), c: PSET (X + 2, Y - 2), c
  350. PSET (X + 2, Y - 1), c: FOR h = X - 1 TO X + 1: PSET (h, Y), c: NEXT h
  351. PSET (X + 2, Y + 1), c
  352. PSET (X - 2, Y + 2), c: PSET (X + 2, Y + 2), c
  353. FOR h = X - 1 TO X + 1: PSET (h, Y + 3), c: NEXT h: X = X + 7: RETURN
  354. quatre: FOR V = Y - 3 TO Y + 3: PSET (X + 1, V), c: NEXT V
  355. PSET (X, Y - 2), c: PSET (X - 1, Y - 1), c
  356. FOR h = X - 2 TO X + 2: PSET (h, Y), c: NEXT h: X = X + 7: RETURN
  357. cinq: FOR h = X - 2 TO X + 2: PSET (h, Y - 3), c: NEXT h
  358. PSET (X - 2, Y - 2), c: PSET (X - 2, Y - 1), c
  359. FOR h = X - 1 TO X + 1: PSET (h, Y), c: NEXT h: PSET (X + 2, Y + 1), c
  360. PSET (X - 2, Y + 2), c: PSET (X + 2, Y + 2), c
  361. FOR h = X - 1 TO X + 1: PSET (h, Y + 3), c: NEXT h: X = X + 7: RETURN
  362. a: PSET (X, Y - 4), c: PSET (X + 1, Y - 4), c
  363. PSET (X - 1, Y - 3), c: PSET (X + 2, Y - 3), c
  364. FOR vert = Y - 2 TO Y + 4: PSET (X - 2, vert), c: PSET (X + 3, vert), c: NEXT vert
  365. FOR hor = X - 1 TO X + 2: PSET (hor, Y + 1), c: NEXT hor: X = X + 9: RETURN
  366. B: FOR V = Y - 4 TO Y + 4: PSET (X - 2, V), c: NEXT V         'B
  367. FOR h = X - 1 TO X + 2: PSET (h, Y - 4), c: NEXT h
  368. FOR h = X - 1 TO X + 2: PSET (h, Y), c: NEXT h
  369. FOR h = X - 1 TO X + 2: PSET (h, Y + 4), c: NEXT h
  370. FOR V = Y - 3 TO Y - 1: PSET (X + 3, V), c: NEXT V
  371. FOR V = Y + 1 TO Y + 3: PSET (X + 3, V), c: NEXT V: X = X + 9: RETURN
  372. c: PSET (X, Y - 4), c: PSET (X + 1, Y - 4), c
  373. PSET (X - 1, Y - 3), c: PSET (X + 2, Y - 3), c
  374. FOR vert = Y - 2 TO Y + 2: PSET (X - 2, vert), c: NEXT vert
  375. PSET (X + 3, Y - 2), c: PSET (X + 3, Y + 2), c
  376. PSET (X, Y + 4), c: PSET (X + 1, Y + 4), c
  377. PSET (X - 1, Y + 3), c: PSET (X + 2, Y + 3), c: X = X + 9: RETURN
  378. D: FOR vert = Y - 4 TO Y + 4: PSET (X - 2, vert), c: NEXT vert
  379. FOR hor = X - 1 TO X + 1: PSET (hor, Y - 4), c: NEXT hor
  380. PSET (X + 2, Y - 3), c
  381. FOR vert = Y - 2 TO Y + 2: PSET (X + 2, vert), c: NEXT vert
  382. FOR hor = X - 1 TO X + 1: PSET (hor, Y + 4), c: NEXT hor
  383. PSET (X + 2, Y + 3), c: X = X + 9: RETURN
  384. E: FOR vert = Y - 4 TO Y + 4: PSET (X - 2, vert), c: NEXT vert
  385. FOR hor = X - 1 TO X + 3: PSET (hor, Y - 4), c: NEXT hor
  386. FOR hor = X - 1 TO X + 1: PSET (hor, Y), c: NEXT hor
  387. FOR hor = X - 1 TO X + 3: PSET (hor, Y + 4), c: NEXT hor: X = X + 9: RETURN
  388. f: FOR vert = Y - 4 TO Y + 4: PSET (X - 2, vert), c: NEXT vert
  389. FOR hor = X - 1 TO X + 3: PSET (hor, Y - 4), c: NEXT hor
  390. FOR hor = X - 1 TO X + 1: PSET (hor, Y), c: NEXT hor: X = X + 9: RETURN
  391. G: PSET (X, Y - 4), c: PSET (X + 1, Y - 4), c                'G
  392. PSET (X - 1, Y - 3), c: PSET (X + 2, Y - 3), c
  393. FOR vert = Y - 2 TO Y + 2: PSET (X - 2, vert), c: NEXT vert
  394. PSET (X + 3, Y - 2), c: PSET (X + 3, Y + 2), c: PSET (X + 3, Y + 1), c
  395. PSET (X, Y + 4), c: PSET (X + 1, Y + 4), c
  396. PSET (X - 1, Y + 3), c: PSET (X + 2, Y + 3), c
  397. FOR h = X + 1 TO X + 3: PSET (h, Y), c: NEXT h: X = X + 9: RETURN
  398. I: X = X - 2: FOR V = Y - 4 TO Y + 4: PSET (X, V), c: NEXT V: X = X + 7: RETURN
  399. L: FOR V = Y - 4 TO Y + 4: PSET (X - 2, V), c: NEXT V
  400. FOR h = X - 1 TO X + 3: PSET (h, Y + 4), c: NEXT h: X = X + 9: RETURN
  401. M: FOR V = Y - 4 TO Y + 4: PSET (X - 3, V), c: NEXT V
  402. FOR V = Y - 4 TO Y + 4: PSET (X + 3, V), c: NEXT V
  403. PSET (X - 2, Y - 3), c: PSET (X - 1, Y - 2), c: PSET (X - 1, Y - 2), c
  404. PSET (X, Y - 1), c
  405. PSET (X + 2, Y - 3), c: PSET (X + 1, Y - 2), c: PSET (X + 1, Y - 2), c
  406. X = X + 9: RETURN
  407. N: FOR V = Y - 4 TO Y + 4: PSET (X - 3, V), c: NEXT V        'N
  408. FOR V = Y - 4 TO Y + 4: PSET (X + 3, V), c: NEXT V
  409. V = Y - 3: FOR h = X - 2 TO X + 2: PSET (h, V), c: V = V + 1: NEXT h
  410. X = X + 9: RETURN
  411. O: PSET (X, Y - 4), c: PSET (X + 1, Y - 4), c
  412. PSET (X - 1, Y - 3), c: PSET (X + 2, Y - 3), c
  413. FOR V = Y - 2 TO Y + 2: PSET (X - 2, V), c: PSET (X + 3, V), c: NEXT V
  414. PSET (X, Y + 4), c: PSET (X + 1, Y + 4), c
  415. PSET (X - 1, Y + 3), c: PSET (X + 2, Y + 3), c: X = X + 9: RETURN
  416. P: FOR V = Y - 4 TO Y + 4: PSET (X - 2, V), c: NEXT V
  417. FOR h = X - 1 TO X + 1: PSET (h, Y - 4), c: NEXT h
  418. PSET (X + 2, Y - 3), c: PSET (X + 3, Y - 2), c: PSET (X + 2, Y - 1), c
  419. FOR h = X - 1 TO X + 1: PSET (h, Y), c: NEXT h: X = X + 9: RETURN
  420. r:  FOR V = Y - 4 TO Y + 4: PSET (X - 2, V), c: NEXT V
  421. FOR h = X - 1 TO X + 1: PSET (h, Y - 4), c: NEXT h
  422. PSET (X + 2, Y - 3), c: PSET (X + 3, Y - 2), c: PSET (X + 2, Y - 1), c
  423. FOR h = X - 1 TO X + 1: PSET (h, Y), c: NEXT h
  424. FOR V = Y + 1 TO Y + 4: PSET (X + 2, V), c: NEXT V: X = X + 9: RETURN
  425. S: FOR h = X - 1 TO X + 2: PSET (h, Y - 4), c: NEXT h        'S
  426. FOR h = X - 1 TO X + 2: PSET (h, Y), c: NEXT h
  427. FOR h = X - 1 TO X + 2: PSET (h, Y + 4), c: NEXT h
  428. FOR V = Y - 3 TO Y - 1: PSET (X - 2, V), c: NEXT V
  429. FOR V = Y + 1 TO Y + 3: PSET (X + 3, V), c: NEXT V
  430. PSET (X + 3, Y - 3), c: PSET (X - 2, Y + 3), c: X = X + 9: RETURN
  431. T:  FOR V = Y - 3 TO Y + 4: PSET (X, V), c: NEXT V
  432. FOR h = X - 3 TO X + 3: PSET (h, Y - 4), c: NEXT h: X = X + 9: RETURN
  433. U:  FOR V = Y - 4 TO Y + 3: PSET (X - 2, V), c: PSET (X + 3, V), c: NEXT V
  434. FOR h = X - 1 TO X + 2: PSET (h, Y + 4), c: NEXT h: X = X + 9: RETURN
  435. V: FOR V = Y - 4 TO Y + 1: PSET (X - 2, V), c: PSET (X + 3, V), c: NEXT V
  436. FOR V = Y + 2 TO Y + 3: PSET (X - 1, V), c: PSET (X + 2, V), c: NEXT V
  437. PSET (X, Y + 4), c: PSET (X + 1, Y + 4), c: X = X + 9: RETURN
  438. X: f = X - 3: FOR D = Y - 3 TO Y + 3: PSET (f, D), c: f = f + 1: NEXT D
  439. f = X + 3: FOR D = Y - 3 TO Y + 3: PSET (f, D), c: f = f - 1: NEXT D
  440. PSET (X + 3, Y + 4), c: PSET (X + 3, Y - 4), c
  441. PSET (X - 3, Y + 4), c: PSET (X - 3, Y - 4), c: X = X + 9: RETURN
  442. trt: Y = Y + 7: FOR hor = X - 3 TO X + 4: PSET (hor, Y), c: NEXT hor
  443. FOR hor = X - 3 TO X + 4: PSET (hor, Y + 1), c: NEXT hor: Y = Y - 7: RETURN
  444. par: X = X - 2: PSET (X + 1, Y - 4), c
  445. PSET (X + 2, Y - 3), c: FOR V = Y - 2 TO Y + 2: PSET (X + 3, V), c: NEXT V
  446. PSET (X + 1, Y + 4), c: PSET (X + 2, Y + 3), c: X = X + 9: RETURN
  447. minilab: GOSUB M: GOSUB I: GOSUB N: GOSUB I: GOSUB L: GOSUB a: GOSUB B: RETURN
  448. inst: GOSUB U: GOSUB N: X = X + 9: GOSUB I: GOSUB N: GOSUB S: GOSUB T
  449. GOSUB a: GOSUB N: GOSUB T: X = X + 9: GOSUB S: GOSUB V: GOSUB P: RETURN
  450. exer6: GOSUB E: GOSUB X: GOSUB E: GOSUB r: GOSUB c: GOSUB I: GOSUB c: GOSUB E
  451. GOSUB S: X = X + 8: GOSUB c: GOSUB O: GOSUB r: GOSUB r: GOSUB I: GOSUB G
  452. GOSUB E: GOSUB S: RETURN
  453. Aide: GOSUB a: GOSUB I: GOSUB D: GOSUB E: RETURN
  454. Suivant: GOSUB S: GOSUB U: GOSUB I: GOSUB V: GOSUB a: GOSUB N: GOSUB T: RETURN
  455. menup: GOSUB M: GOSUB E: GOSUB N: GOSUB U: RETURN
  456. Precedant: GOSUB P: GOSUB r: GOSUB E: GOSUB c: GOSUB E: GOSUB D: GOSUB a
  457. GOSUB N: GOSUB T: RETURN
  458. inf: GOSUB I: GOSUB N: GOSUB f: GOSUB O: RETURN
  459. REM SCHEMAS
  460. schema1: P = 250: D = 390: h = 160:
  461. LINE (P, h + 35)-(P, h), 12: LINE -(D, h), 12: LINE -(D, h + 15), 12
  462. CIRCLE (D, h + 24), 9, 4
  463. LINE (D - 4, h + 20)-(D + 4, h + 20), 12: LINE -(D, h + 28), 12
  464. LINE -(D - 4, h + 20), 12
  465. PAINT (D, h + 24), 4, 12: LINE (D - 3, h + 29)-(D + 3, h + 29), 12
  466. PSET (D + 15, h + 24): DRAW "c12 E3 G3 R3 G3"
  467. LINE (D, h + 33)-(D, h + 45), 12: LINE (D - 4, h + 45)-(D + 4, h + 70), 10, B
  468. LINE (D, h + 71)-(D, h + 85), 7: LINE -(P, h + 85), 7: LINE -(P, h + 40), 7
  469. LINE (P - 6, h + 35)-(P + 6, h + 35), 12
  470. LINE (P - 4, h + 40)-(P + 4, h + 45), 7, BF: RETURN
  471. schema2: LINE (180, 145)-(180, 250), 11: LINE (165, 235)-(460, 235), 11
  472. FOR a = 190 TO 450 STEP 10
  473. LINE (a, 235)-(a, 238), 11: NEXT a
  474. c = 10: B = 230: h = 175: FOR I = 190 TO 390 STEP 50
  475. LINE (I, B)-(I, h), c: LINE -(I + 30, h), c
  476. LINE -(I + 30, B), c: LINE -(I + 50, B), c: NEXT I: RETURN
  477. res1: LINE (xr - 3, yr)-(xr + 3, yr + 20), cr, B: RETURN
  478. rvar: LINE (xr - 3, yr)-(xr + 3, yr + 30), cr, B
  479. LINE (xr - 8, yr + 25)-(xr + 8, yr + 5), cr
  480. DRAW "L3 R4 D3": RETURN
  481. em: Y = Y + 1: FOR h = X - 1 TO X + 1: PSET (h, Y - 3), c: NEXT h
  482. PSET (X - 2, Y - 2), c: PSET (X + 2, Y - 2), c
  483. PSET (X - 2, Y - 1), c: PSET (X + 2, Y - 1), c
  484. FOR h = X - 2 TO X + 1: PSET (h, Y), c: NEXT h: PSET (X - 2, Y + 1), c
  485. PSET (X - 2, Y + 2), c: PSET (X + 2, Y + 2), c
  486. FOR h = X - 1 TO X + 1: PSET (h, Y + 3), c: NEXT h: X = X + 7
  487. Y = Y - 1: RETURN
  488. REM                    Routines pour Souris
  489. AttenteChoix: Mouse 1: DO: Clic ClickDelay: f$ = INKEY$: f$ = UCASE$(f$)
  490.    LOOP UNTIL B% = 1 OR LEN(f$): Mouse 0
  491. IF f$ = "N" THEN GOTO Menu
  492. IF f$ = "D" THEN GOTO TestAide
  493. IF f$ = "A" OR f$ = "B" OR f$ = "C" THEN GOSUB TestRep
  494. IF f$ = "S" THEN GOTO TestSuivant
  495. IF f$ = "P" THEN GOTO TestPrecedant
  496. IF B% = 1 AND Y% > 64 AND Y% < 96 THEN GOTO TestIcone
  497. GOTO AttenteChoix: RETURN
  498. TestIcone:
  499. IF X% > 329 AND X% < 371 THEN GOTO Menu
  500. IF X% > 29 AND X% < 71 THEN GOSUB TestAide
  501. IF X% > 79 AND X% < 121 THEN GOSUB TestRep
  502. IF X% > 129 AND X% < 171 THEN GOSUB TestRep
  503. IF X% > 179 AND X% < 221 THEN GOSUB TestRep
  504. IF X% > 229 AND X% < 271 THEN GOTO TestSuivant
  505. IF X% > 279 AND X% < 321 THEN GOTO TestPrecedant
  506. RETURN
  507. TestAide: IF N > 10 THEN GOTO TestAideBis
  508. IF N = 1 THEN GOTO Aide1
  509. IF N = 2 THEN GOTO Aide2
  510. IF N = 3 THEN GOTO Aide3
  511. IF N = 4 THEN GOTO Aide4
  512. IF N = 5 THEN SOUND 800, .3
  513. IF N = 6 THEN GOTO Aide6
  514. IF N = 7 THEN GOTO Aide7
  515. IF N = 8 THEN SOUND 800, .3
  516. IF N = 9 THEN GOTO Aide9
  517. IF N = 10 THEN GOTO Aide10
  518. RETURN
  519. TestAideBis:
  520. IF N = 11 THEN GOTO Aide11
  521. IF N = 12 THEN GOTO Aide12
  522. IF N = 13 THEN GOTO Aide13
  523. IF N = 14 THEN GOTO Aide14
  524. IF N = 15 THEN GOTO Aide15
  525. IF N = 16 THEN SOUND 800, .3
  526. IF N = 17 THEN SOUND 800, .3
  527. IF N = 18 THEN SOUND 800, .3
  528. IF N = 19 THEN SOUND 800, .3
  529. IF N = 20 THEN SOUND 800, .3
  530. IF N = 21 THEN GOTO Aide21
  531. IF N = 22 THEN GOTO Aide22
  532. IF N = 23 THEN GOTO Aide23
  533. RETURN
  534. TestSuivant: IF N > 10 THEN GOTO TestSuivantBis
  535. IF N = 1 THEN GOTO EX2
  536. IF N = 2 THEN GOTO EX3
  537. IF N = 3 THEN GOTO EX4
  538. IF N = 4 THEN GOTO EX5
  539. IF N = 5 THEN GOTO EX6
  540. IF N = 6 THEN GOTO EX7
  541. IF N = 7 THEN GOTO EX8
  542. IF N = 8 THEN GOTO EX9
  543. IF N = 9 THEN GOTO EX10
  544. IF N = 10 THEN GOTO EX11
  545. TestSuivantBis:
  546. IF N = 11 THEN GOTO EX12
  547. IF N = 12 THEN GOTO EX13
  548. IF N = 13 THEN GOTO EX14
  549. IF N = 14 THEN GOTO EX15
  550. IF N = 15 THEN GOTO EX16
  551. IF N = 16 THEN GOTO EX17
  552. IF N = 17 THEN GOTO EX18
  553. IF N = 18 THEN GOTO EX19
  554. IF N = 19 THEN GOTO EX20
  555. IF N = 20 THEN GOTO EX21
  556. IF N = 21 THEN GOTO EX22
  557. IF N = 22 THEN GOTO EX23
  558. IF N = 23 THEN GOTO EX1
  559. TestPrecedant: IF N > 10 THEN GOTO TestPrecedantBis
  560. IF N = 1 THEN SOUND 750, .3: GOTO Att1
  561. IF N = 2 THEN GOTO EX1
  562. IF N = 3 THEN GOTO EX2
  563. IF N = 4 THEN GOTO EX3
  564. IF N = 5 THEN GOTO EX4
  565. IF N = 6 THEN GOTO EX5
  566. IF N = 7 THEN GOTO EX6
  567. IF N = 8 THEN GOTO EX7
  568. IF N = 9 THEN GOTO EX8
  569. IF N = 10 THEN GOTO EX9
  570. TestPrecedantBis:
  571. IF N = 11 THEN GOTO EX10
  572. IF N = 12 THEN GOTO EX11
  573. IF N = 13 THEN GOTO EX12
  574. IF N = 14 THEN GOTO EX13
  575. IF N = 15 THEN GOTO EX14
  576. IF N = 16 THEN GOTO EX15
  577. IF N = 17 THEN GOTO EX16
  578. IF N = 18 THEN GOTO EX17
  579. IF N = 19 THEN GOTO EX18
  580. IF N = 20 THEN GOTO EX19
  581. IF N = 21 THEN GOTO EX20
  582. IF N = 22 THEN GOTO EX21
  583. IF N = 23 THEN GOTO EX22
  584. TestRep: IF N > 10 THEN GOTO TestRepBis
  585. IF N = 1 THEN GOTO Rep1
  586. IF N = 2 THEN GOTO Rep2
  587. IF N = 3 THEN GOTO Rep3
  588. IF N = 4 THEN GOTO Rep4
  589. IF N = 5 THEN GOTO Rep5
  590. IF N = 6 THEN GOTO Rep6
  591. IF N = 7 THEN GOTO Rep7
  592. IF N = 8 THEN GOTO Rep8
  593. IF N = 9 THEN GOTO Rep9
  594. IF N = 10 THEN GOTO Rep10
  595. TestRepBis:
  596. IF N = 11 THEN GOTO Rep11
  597. IF N = 12 THEN GOTO Rep12
  598. IF N = 13 THEN GOTO Rep13
  599. IF N = 14 THEN GOTO Rep14
  600. IF N = 15 THEN GOTO Rep15
  601. IF N = 16 THEN GOTO Rep16
  602. IF N = 17 THEN GOTO Rep17
  603. IF N = 18 THEN GOTO Rep18
  604. IF N = 19 THEN GOTO Rep19
  605. IF N = 20 THEN GOTO Rep20
  606. IF N = 21 THEN GOTO Rep21
  607. IF N = 22 THEN GOTO Rep22
  608. IF N = 23 THEN GOTO Rep23
  609. REM
  610. TraiteErreur: BEEP: Mouse 0
  611. a = 100: aa = 540: B = 150: bb = 320: LINE (a, B)-(aa, bb), 0, BF
  612. LINE (a, B)-(aa, bb), 12, B: LINE (a, B + 30)-(aa, B + 30), 12, B
  613. COLOR 12: LOCATE 11, 38: PRINT "ERREUR"
  614. CodErr$ = STR$(ERR): NoCode$ = "Code d'erreur :"
  615. IF ERR < 25 OR ERR = 26 THEN me$ = "Erreur interne au programme"
  616. IF ERR > 28 OR ERR < 53 THEN me$ = "Erreur interne au programme"
  617. IF ERR = 25 THEN me$ = "Périphérique absent ou éteint"
  618. IF ERR = 27 THEN me$ = "Imprimante : Attente papier..."
  619. IF ERR = 53 THEN me$ = "Fichier absent !"
  620. IF ERR = 57 THEN me$ = "Erreur de périphérique E / S"
  621. IF ERR = 61 THEN me$ = "Disque saturé"
  622. IF ERR = 68 THEN me$ = "Périphérique non disponible"
  623. IF ERR = 75 OR ERR = 76 THEN me$ = "Erreur de chemin d'accès au fichier"
  624. COLOR 12: LOCATE 14, (80 - LEN(me$)) / 2: PRINT me$
  625. COLOR 14: LOCATE 16, (78 - LEN(NoCode$)) / 2: PRINT NoCode$; CodErr$
  626. Message$ = "Appuyez sur une touche pour continuer..."
  627. COLOR 12: LOCATE 18, (80 - LEN(Message$)) / 2: PRINT Message$
  628. SLEEP 2: DO: f$ = INKEY$: LOOP UNTIL LEN(f$)
  629. RESUME debut
  630.  
  631. MouseData:
  632.  DATA 55,8b,ec,56,57,8b,76,0c,8b,04,8b,76,0a,8b,1c,8b,76,08,8b,0c
  633.  DATA 8b,76,06,8b,14,cd,21,8b,76,0c,89,04,8b,76,0a,89,1c
  634.  DATA 8b,76,08,89,0c,8b,76,06,89,14,5f,5e,5d,ca,08,00,#
  635.  
  636. DEFSNG A-Z
  637. SUB Clic (ClickDelay%)
  638. GetMouse
  639. FOR I = 0 TO ClickDelay: NEXT I
  640. END SUB
  641.  
  642. SUB GetMouse
  643. r% = Interr%(&H33, 3, Bx%, CX%, DX%)
  644. B% = Bx%: X% = CX%: Y% = DX%
  645. END SUB
  646.  
  647. SUB IconA (a, B, coul)
  648. LINE (a, B)-(a + 40, B + 30), 0, BF
  649. LINE (a, B)-(a + 40, B + 30), coul, B
  650. END SUB
  651.  
  652. SUB IconAide (a, B)
  653. a = 30: B = 65: LINE (a, B + 15)-(a + 40, B + 30), 9, B
  654. CIRCLE (a + 20, B + 15), 13, 7: CIRCLE (a + 20, B + 15), 8, 7
  655. LINE (a + 17, B + 3)-(a + 23, B + 7), 12, BF
  656. LINE (a + 17, B + 27)-(a + 23, B + 23), 12, BF
  657. LINE (a + 7, B + 12)-(a + 12, B + 18), 12, BF
  658. LINE (a + 33, B + 12)-(a + 28, B + 18), 12, BF
  659. END SUB
  660.  
  661. SUB IconPrecedant (a, B)
  662. LINE (a, B)-(a + 40, B + 30), 12, B
  663. LINE (a + 15, B)-(a + 40, B + 30), 9, B
  664. LINE (a + 35, B + 12)-(a + 12, B + 18), 9, BF
  665. LINE (a + 12, B + 7)-(a + 12, B + 23), 9
  666. LINE -(a + 4, B + 15), 9: LINE -(a + 12, B + 7), 9
  667. PAINT (a + 10, B + 17), 9, 9
  668. END SUB
  669.  
  670. SUB IconSuivant (a, B)
  671. LINE (a, B)-(a + 40, B + 30), 12, B
  672. LINE (a, B)-(a + 25, B + 30), 9, B
  673. LINE (a + 5, B + 12)-(a + 28, B + 18), 12, BF
  674. LINE (a + 28, B + 7)-(a + 28, B + 23), 12
  675. LINE -(a + 36, B + 15), 12: LINE -(a + 28, B + 7), 12
  676. PAINT (a + 30, B + 17), 12, 12
  677. END SUB
  678.  
  679. FUNCTION Interr% (Num%, AX%, Bx%, CX%, DX%)
  680.  IF MS%(0) = 0 THEN SYSTEM
  681.  DEF SEG = VARSEG(MS%(0))
  682.  POKE VARPTR(MS%(0)) + 26, Num%
  683.  CALL ABSOLUTE(AX%, Bx%, CX%, DX%, VARPTR(MS%(0)))
  684.  Interr% = AX%
  685. END FUNCTION
  686.  
  687. SUB Mouse (OnOff%)
  688. IF OnOff% = 0 THEN OnOff% = 2 ELSE OnOff% = 1
  689. r% = Interr%(&H33, OnOff%, Bx%, CX%, DX%)
  690. END SUB
  691.  
  692. SUB MouseSpeed (Curseur%)
  693. r% = Interr%(&H33, 15, Bx%, Curseur%, Curseur%)
  694. END SUB
  695.  
  696. SUB ReadData
  697.  RESTORE MouseData
  698.  DEF SEG = VARSEG(MS%(0))
  699.  FOR I% = 0 TO 99
  700.   READ Byte$
  701.   IF Byte$ = "#" THEN EXIT FOR
  702.   POKE VARPTR(MS%(0)) + I%, VAL("&H" + Byte$)
  703.  NEXT I%
  704. END SUB
  705.  
  706. SUB ResetMouse
  707. r% = Interr%(&H33, 0, Bx%, CX%, DX%)
  708. r% = Interr%(&H33, 1, Bx%, CX%, DX%)
  709. END SUB
  710.  
  711. SUB TextAide1
  712. COLOR 15: LOCATE 26, 5
  713. PRINT "I (intensité) = U (tension) / R (résistance)    (Loi d'Ohm)"
  714. LOCATE 28, 5: PRINT "Tension de seuil d'une del rouge = 1,6 V environ"
  715. END SUB
  716.  
  717. SUB TextAide22
  718. COLOR 15: LOCATE 26, 5
  719. PRINT "Chaque division horizontale correspond à une durée de 1O ms."
  720. LOCATE 28, 5: PRINT "f (fréquence) = 1 / T (période)"
  721. END SUB
  722.  
  723. SUB TexteIntro
  724. a$ = "Questions à Choix Multiples "
  725. B$ = "Répondre par a, b ou c (clavier ou souris)."
  726. c$ = "L'option AIDE apporte, s'il y a lieu,"
  727. D$ = "des renseignements utiles ou nécessaires."
  728. E$ = "Frappez S ou cliquez sur l'icône correspondante"
  729. f$ = "pour passer au problème suivant."
  730. G$ = "Commencer       Quitter le module"
  731. COLOR 13: LOCATE 11, (80 - LEN(a$)) / 2: PRINT a$
  732. LOCATE 13, ((80 - LEN(B$)) / 2) + 1: PRINT B$
  733. LOCATE 15, (80 - LEN(c$)) / 2: PRINT c$
  734. LOCATE 17, (80 - LEN(D$)) / 2: PRINT D$
  735. LOCATE 19, (80 - LEN(E$)) / 2: PRINT E$
  736. LOCATE 21, (80 - LEN(f$)) / 2: PRINT f$
  737. COLOR 9: LOCATE 24, (80 - LEN(G$)) / 2: PRINT G$
  738. LINE (160, 370)-(170, 380), 9, B: LINE (287, 370)-(297, 380), 9, B
  739. END SUB
  740.  
  741. SUB TextEx1
  742. COLOR 12: LOCATE 13, 27: PRINT "9 V"
  743. COLOR 10: LOCATE 14, 52: PRINT "47O "; CHR$(234): COLOR 11
  744. LOCATE 19, 8: PRINT "Quelle est l'intensité du courant dans la del ?"
  745. LOCATE 22, 8: PRINT "A) 2O mA            B) 15 mA            C) 1,5 A"
  746. END SUB
  747.  
  748. SUB TextEx10
  749. COLOR 11: LOCATE 16, 53: PRINT "ms": LOCATE 19, 8
  750. PRINT "Quelle est la période du signal périodique représenté ci-dessus ?"
  751. LOCATE 22, 8: PRINT "A) O,6 ms           B) 1 ms             C) 4 ms"
  752. END SUB
  753.  
  754. SUB TextEx11
  755. LINE (100, 170)-(150, 240), 3, B
  756. LINE (80, 185)-(100, 185), 3: LINE (80, 225)-(100, 225), 3
  757. LINE (150, 205)-(170, 205), 3: COLOR 11: LOCATE 18, 8
  758. PRINT "Si l'entrée A est au niveau 1 et l'entrée B au niveau O,"
  759. LOCATE 20, 8
  760. PRINT "quel sera le niveau de la sortie S de ce circuit logique ?"
  761. LOCATE 22, 8: PRINT "A) O           B) 1           C) cela dépend du type de C.I."
  762. END SUB
  763.  
  764. SUB TextEx12
  765. xt = 180: yt = 235: CIRCLE (xt, yt), 17, 11
  766. LINE (xt - 3, yt - 10)-(xt, yt + 10), 11, BF: PSET (xt, yt), 11
  767. DRAW "E12 c12 U30 D30 c11 G12 F12 U3 G3 R2 D65 c7 R80 L190"
  768. U = xt - 45: LINE (xt, yt)-(U, yt), 11: LINE -(U, yt - 25), 10
  769. LINE (U - 3, yt - 25)-(U + 3, yt - 50), 10, B            'R1
  770. LINE (U, yt - 50)-(U, yt - 65), 10: LINE -(U - 35, yt - 65), 10
  771. DRAW "c10 H3 F3 G3":
  772. LINE (U, yt)-(U, yt + 25), 10
  773. LINE (U + 3, yt + 25)-(U - 3, yt + 50), 10, B: LINE (U, yt + 50)-(U, yt + 75), 10
  774. LINE (189, 168 + 25)-(195, 143 + 25), 12, B
  775. LINE (192, 143 + 25)-(192, yt - 80), 12: LINE -(231, yt - 80), 12
  776. CIRCLE (240, yt - 80), 9, 12
  777. LINE (244, yt - 76)-(244, yt - 84), 12: LINE -(236, yt - 80), 12
  778. LINE -(244, yt - 76), 12: PAINT (240, yt - 80), 12, 12
  779. LINE (235, yt - 76)-(235, yt - 84), 12: PSET (242, yt - 68)
  780. DRAW "c12 G3 R3 G3": LINE (249, yt - 80)-(275, yt - 80), 12
  781. CIRCLE (277, yt - 80), 2, 12
  782. COLOR 14: LOCATE 11, 11: PRINT "U"
  783. COLOR 10: LOCATE 13, 11: PRINT "22O k"; CHR$(234)
  784. COLOR 10: LOCATE 17, 11: PRINT "15 k"; CHR$(234)
  785. COLOR 12: LOCATE 10, 35: PRINT "9 V"
  786. COLOR 12: LOCATE 12, 26: PRINT "47O "; CHR$(234)
  787. COLOR 11: LOCATE 15, 27: PRINT "2N2222"
  788. LOCATE 14, 43: PRINT "A partir de quelle tension U"
  789. LOCATE 16, 43: PRINT "la del s'allumera-t-elle ?"
  790. LOCATE 22, 8: PRINT "A) 6,5 V           B) 8,2 V           C) 1O V"
  791. END SUB
  792.  
  793. SUB TextEx13
  794. COLOR 11: LOCATE 12, 8
  795. PRINT "Sous courant continu, un condensateur de 33O nF se charge à 95%"
  796. LOCATE 14, 8
  797. PRINT "de sa tension finale au bout de O,1 seconde, à un millième de"
  798. LOCATE 16, 8
  799. PRINT "seconde près."
  800. LOCATE 18, 8
  801. PRINT "Quelle est la valeur de la résistance associée a ce condensateur ?"
  802. LOCATE 22, 8
  803. PRINT "A) 1 k"; CHR$(234); "           B) 1OO k"; CHR$(234); "         C) 1O M"; CHR$(234)
  804. END SUB
  805.  
  806. SUB TextEx14
  807. COLOR 11: LOCATE 11, 8
  808. PRINT "On souhaite réaliser une alimentation variable pouvant fournir 15 V"
  809. LOCATE 13, 8
  810. PRINT "et un courant maximal de 1,5 A. Le redressement sera double alternance."
  811. LOCATE 15, 8
  812. PRINT "Lequel de ces transformateurs devra-t-on choisir, sachant que le"
  813. LOCATE 17, 8
  814. PRINT "régulateur retenu nécessite une tension de 2 V à ses bornes ?"
  815. LOCATE 19, 8
  816. PRINT "(On négligera la tension de ronflement.)"
  817. LOCATE 22, 8: PRINT "A) 9 V/12 VA        B) 15 V/25 VA       C) 18 V/12 VA"
  818. END SUB
  819.  
  820. SUB TextEx15
  821. COLOR 11: LOCATE 12, 8
  822. PRINT "On dispose d'un transformateur 2 x 12 V/26 VA. Comment procèdera-t-on"
  823. LOCATE 14, 8
  824. PRINT "pour obtenir une tension continue, après redressement et filtrage,"
  825. LOCATE 16, 8
  826. PRINT "supérieure à 2O V ?"
  827. LOCATE 18, 8
  828. PRINT "A) On n'utilisera qu'un seul des deux secondaires."
  829. LOCATE 20, 8
  830. PRINT "B) On mettra les secondaires en série."
  831. LOCATE 22, 8
  832. PRINT "C) On mettra les secondaires en parallèle."
  833. END SUB
  834.  
  835. SUB TextEx16
  836. COLOR 11
  837. LOCATE 12, 5: PRINT "Lequel de ces énoncés est VRAI ?"
  838. LOCATE 15, 5
  839. PRINT "A) Une diode Zener, polarisée en inverse (anode négative par rapport"
  840. LOCATE 16, 8
  841. PRINT "à la cathode), constitue une référence de tension stable."
  842. LOCATE 18, 5
  843. PRINT "B) En polarisation directe, une Zener n'est pas conductrice."
  844. LOCATE 20, 5
  845. PRINT "C) Pour limiter le courant inverse, on doit toujours associer un"
  846. LOCATE 21, 8
  847. PRINT "condensateur à une diode Zener."
  848. END SUB
  849.  
  850. SUB TextEx17
  851. COLOR 11
  852. LOCATE 12, 5: PRINT "Lequel de ces énoncés est FAUX ?"
  853. LOCATE 15, 5
  854. PRINT "A) Un montage Darlington est constitué de deux transistors qui"
  855. LOCATE 16, 8: PRINT "doivent être complémentaires (NPN et PNP)."
  856. LOCATE 18, 5: PRINT "B) Un montage Darlington peut associer plus de deux transistors."
  857. LOCATE 20, 5
  858. PRINT "C) Le montage Darlington, aussi applelé émetteur-suiveur, réalise"
  859. LOCATE 21, 8: PRINT "une amplification importante."
  860. END SUB
  861.  
  862. SUB TextEx18
  863. COLOR 11: LOCATE 12, 5
  864. PRINT "Les fréquences audibles par l'homme s'étendent de :"
  865. LOCATE 16, 8: PRINT "A) 1 Hz à 1 kHz environ"
  866. LOCATE 18, 8: PRINT "B) 2O Hz à 2O kHz environ"
  867. LOCATE 20, 8: PRINT "C) 1OO Hz à 12O kHz environ"
  868. END SUB
  869.  
  870. SUB TextEx19
  871. COLOR 11: LOCATE 12, 5
  872. PRINT "Une pile ordinaire, saline ou alcaline, finit par se décharger au bout"
  873. LOCATE 14, 5
  874. PRINT "d'un certain temps et ne plus être en mesure de fournir sa tension"
  875. LOCATE 16, 5: PRINT "nominale. Ce regrettable processus a pour cause :"
  876. LOCATE 18, 8: PRINT "A) l'augmentation progressive de sa résistance interne"
  877. LOCATE 20, 8: PRINT "B) la nature électrochimique de l'action qui produit la f.c.e.m."
  878. LOCATE 22, 8: PRINT "C) le fait qu'il ne s'agit pas d'une source de tension parfaite"
  879. END SUB
  880.  
  881. SUB TextEx2
  882. COLOR 12: LOCATE 13, 27: PRINT "6 V": COLOR 10: LOCATE 14, 52: PRINT "R"
  883. COLOR 11
  884. LOCATE 18, 8: PRINT "On veut faire circuler un courant de 2O mA dans la del."
  885. LOCATE 20, 8: PRINT "Quelle sera la valeur de la résistance R ?"
  886. LOCATE 22, 8: PRINT "A) 22O "; CHR$(234); "            B) 47O "; CHR$(234); "             C) 22 k"; CHR$(234)
  887. END SUB
  888.  
  889. SUB TextEx20
  890. COLOR 11: LOCATE 12, 5
  891. PRINT "Le NE 555 est un circuit intégré utilisable en :"
  892. LOCATE 16, 8: PRINT "A) régulateur de tension positif"
  893. LOCATE 18, 8: PRINT "B) amplificateur de tension"
  894. LOCATE 20, 8: PRINT "C) oscillateur astable ou monostable"
  895. END SUB
  896.  
  897. SUB TextEx21
  898. COLOR 11: LOCATE 12, 5: PRINT "VOLTS/DIV : 2OO"
  899. LOCATE 14, 5: PRINT "Quelle est l'amplitude du signal?"
  900. LOCATE 17, 8: PRINT "A) 2OO V"
  901. LOCATE 19, 8: PRINT "B) 25O V"
  902. LOCATE 21, 8: PRINT "C) 31O V"
  903. END SUB
  904.  
  905. SUB TextEx22
  906. COLOR 11: LOCATE 12, 5: PRINT "VOLTS/DIV : 1OO V"
  907. LOCATE 13, 5: PRINT "TIME/DIV : 1O ms"
  908. LOCATE 15, 5: PRINT "Quelle est la fréquence de ce signal?"
  909. LOCATE 17, 8: PRINT "A) 2O Hz"
  910. LOCATE 19, 8: PRINT "B) 5O Hz"
  911. LOCATE 21, 8: PRINT "C) 1OO Hz"
  912. END SUB
  913.  
  914. SUB TextEx23
  915. COLOR 11: LOCATE 11, 4: PRINT "TIME/DIV : 1O ms"
  916. LOCATE 13, 4: PRINT "Lequel de ces énoncés est VRAI?"
  917. LOCATE 15, 4: PRINT "A) les deux signaux sont de même"
  918. LOCATE 16, 4: PRINT "   fréquence"
  919. LOCATE 18, 4: PRINT "B) la fréquence du signal 1 est deux"
  920. LOCATE 19, 4: PRINT "   fois supérieure à celle du signal 2"
  921. LOCATE 21, 4: PRINT "C) la période du signal 1 est deux"
  922. LOCATE 22, 4: PRINT "   fois plus longue que celle du"
  923. LOCATE 23, 4: PRINT "   signal 2"
  924. END SUB
  925.  
  926. SUB TextEx3
  927. c = 14: LINE (240, 205)-(265, 205), c
  928. LINE (265, 185)-(265, 225), c: LINE -(308, 225), c
  929. LINE (308, 221)-(333, 229), 10, B: LINE (333, 225)-(375, 225), c
  930. LINE -(375, 185), c: LINE -(355, 185), c
  931. LINE (355, 181)-(330, 189), 10, B: LINE (330, 185)-(310, 185), c
  932. LINE (310, 181)-(285, 189), 10, B
  933. LINE (284, 185)-(265, 185), c: LINE (375, 205)-(400, 205), c
  934. LOCATE 11, 37: PRINT "R1    R2"
  935. LOCATE 16, 40: PRINT "R3             R1 = R2 = R3 = 1O k"; CHR$(234): COLOR 11
  936. LOCATE 19, 8: PRINT "Calculer la valeur de la résistance équivalente Req."
  937. LOCATE 22, 8: PRINT "A) 3,3 k"; CHR$(234); "           B) 6,7 k"; CHR$(234); "           C) 1O k"; CHR$(234)
  938. END SUB
  939.  
  940. SUB TextEx4
  941. COLOR 12: LOCATE 13, 26: PRINT "12 V"
  942. COLOR 10: LOCATE 14, 52: PRINT "68O "; CHR$(234): COLOR 11
  943. LOCATE 18, 8: PRINT "La résistance appartient à la série E12 "; CHR$(241); " 5%"
  944. LOCATE 20, 8: PRINT "Quelle puissance devra-t-on choisir ?"
  945. LOCATE 22, 8: PRINT "A) 1/4 W            B) 1/2 W            C) 1 W"
  946. END SUB
  947.  
  948. SUB TextEx5
  949. COLOR 11: LOCATE 12, 8: PRINT "Lequel de ces énoncés est FAUX ?"
  950. LOCATE 15, 8: PRINT "A) un condensateur ne laisse pas passer un courant continu"
  951. LOCATE 17, 8: PRINT "B) un condensateur laisse passer un courant alternatif"
  952. LOCATE 19, 8: PRINT "C) un condensateur laisse passer le courant continu et le"
  953. LOCATE 21, 8: PRINT "   courant alternatif."
  954. END SUB
  955.  
  956. SUB TextEx6
  957. COLOR 11: LOCATE 13, 8
  958. PRINT "Le secteur EDF délivre du 22O V alternatif (tension efficace),"
  959. LOCATE 15, 8: PRINT "de fréquence 5O Hz."
  960. LOCATE 17, 8: PRINT "Quelle est l'amplitude maximale de cette tension?"
  961. LOCATE 22, 8: PRINT "A) 11O V            B) 22O V            C) 31O V"
  962. END SUB
  963.  
  964. SUB TextEx7
  965. COLOR 11: LOCATE 13, 8
  966. PRINT "Un transformateur 22O/24 V, 48 VA délivre sur son secondaire"
  967. LOCATE 15, 8: PRINT "une tension alternative de 24 V. ": LOCATE 17, 8
  968. PRINT "Quelle sera la valeur de la tension après redressement et filtrage ?"
  969. LOCATE 22, 8: PRINT "A) 16,8 V           B) 24 V             C) 32,2 V"
  970. END SUB
  971.  
  972. SUB TextEx8
  973. LINE (180, 150)-(180, 255), 11: LINE (165, 210)-(430, 210), 11
  974. COLOR 11: LOCATE 11, 21: PRINT "U": LOCATE 15, 53: PRINT "t"
  975. Y = 210: cc2 = 12: k = 45
  976. X = 120: FOR a = 180 TO 360 STEP 3
  977. ang! = a * .01745: PSET (X + a / 3, Y + k * SIN(ang!)), cc2: NEXT a
  978. FOR a = 180 TO 360 STEP 3
  979. ang! = a * .01745: PSET (X + 60 + a / 3, Y + k * SIN(ang!)), cc2: NEXT a:
  980. X = 240: Y = 210: FOR a = 180 TO 360 STEP 3
  981. ang! = a * .01745: PSET (X + a / 3, Y + k * SIN(ang!)), cc2: NEXT a
  982. FOR a = 180 TO 360 STEP 3
  983. ang! = a * .01745: PSET (X + 60 + a / 3, Y + k * SIN(ang!)), cc2: NEXT a:
  984. COLOR 11: LOCATE 18, 8
  985. PRINT "La figure ci-dessus représente la forme d'une tension redressée."
  986. LOCATE 20, 8: PRINT "S'agit-il d'un redressement: ": LOCATE 22, 8
  987. PRINT "A) mono alternance     B) double alternance    C) déphasé de 9O°"
  988. END SUB
  989.  
  990. SUB TextEx9
  991. COLOR 11: LOCATE 18, 8
  992. PRINT "Quel est le rapport cyclique du signal périodique représenté"
  993. LOCATE 20, 8: PRINT "ci-dessus ? "
  994. LOCATE 22, 8: PRINT "A) 5O%              B) 6O%              C) 75%"
  995. END SUB
  996.  
  997. SUB ZoneXMouse (X1%, X2%)
  998. r% = Interr%(&H33, 7, 0, X1%, X2%)
  999. END SUB
  1000.  
  1001. SUB ZoneYMouse (Y1%, Y2%)
  1002. r% = Interr%(&H33, 8, Bx%, Y1%, Y2%)
  1003. END SUB
  1004.  
  1005.