home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 12 / CD_ASCQ_12_0294.iso / maj / 2364 / minilab / transist.bas < prev    next >
BASIC Source File  |  1994-02-07  |  25KB  |  572 lines

  1. REM W. Prévost 1993 : MINILAB: TRANSISTORS
  2. DECLARE SUB AttenteSouris ()
  3. DECLARE SUB Mouse (OnOff%)
  4. DECLARE SUB ResetMouse ()
  5. DECLARE SUB GetMouse ()
  6. DECLARE SUB SetMouse (X%, y%)
  7. DECLARE SUB ReadData ()
  8. DECLARE SUB LireEquiv (p%, d%, t%)
  9. DECLARE FUNCTION Interr% (Num%, AX%, BX%, CX%, DX%)
  10. DIM SHARED MS%(45)
  11. CLEAR
  12. ReadData
  13. DIM SHARED X%, y%, B%
  14. REM ==============================================================
  15. ON ERROR GOTO TraiteErreur
  16. DEFINT A-Z: SCREEN 12
  17. Attdebut: LINE (3, 61)-(636, 476), 0, BF
  18. ResetMouse
  19. GOSUB RoutineAtt: GOSUB TestChoix: GOTO Attdebut: END
  20. '..................................................................
  21. references: LINE (3, 61)-(636, 476), 0, BF
  22. COLOR 9
  23. LOCATE 6, 3
  24. PRINT "MODELE de       PUISSANCE  ft    Vcbo  Vceo  Vebo  Ic"
  25. LOCATE 7, 3
  26. PRINT "REFERENCE  POL  DISSIPEE   MHz   V     V     V     max     hfe      BOITIER"
  27. COLOR 14
  28. LOCATE 9, 3
  29. PRINT "2N2222     NPN  5OO mW     25O   6O    3O    5     8OO mA  35       TO18 "
  30. LOCATE 10, 3
  31. PRINT "2N3O53     NPN  1 W        1OO   6O    4O    5     7OO mA  5O-25O   TO39"
  32. LOCATE 11, 3
  33. PRINT "2N3O55     NPN  115 W *    2,5   1OO   6O    7     15 A    2O-7O    TO3"
  34. COLOR 6
  35. LOCATE 12, 3
  36. PRINT "2N39O6     PNP  35O mW     25O   4O    4O    5     2OO mA  6O       TO92 "
  37. COLOR 14
  38. LOCATE 13, 3
  39. PRINT "2N44O1     NPN  625 mW     25O   4O    6O    6     6OO mA  1OO-3OO  TO92"
  40. COLOR 6
  41. LOCATE 14, 3
  42. PRINT "MJ2955     PNP  15O W *      4   1OO   6O    7     15 A    7O       TO3"
  43. LOCATE 15, 3
  44. PRINT "MJE34      PNP  9O W *       3   4O    4O    5     1O A    2O-1OO   TO22O"
  45. COLOR 14
  46. LOCATE 16, 3
  47. PRINT "MPS2222A   NPN  625 mW     3OO   75    4O    6     8OO mA  5O       TO92 "
  48. COLOR 6
  49. LOCATE 17, 3
  50. PRINT "MPS29O7    PNP  625 mW     2OO   6O    4O    5     6OO mA  5O       TO92"
  51. COLOR 14
  52. LOCATE 18, 3
  53. PRINT "MPS39O4    NPN  625 mW     3OO   6O    4O    6     2OO mA  1OO-3OO  TO92 "
  54. LOCATE 19, 3
  55. PRINT "TIP31      NPN  4O W *       3   4O    4O    5     3 A     1O-5O    TO22O AB2"
  56. LOCATE 20, 3
  57. PRINT "TIP12O     NPN  65 W *     O,1   6O    6O    5     5 A     25OO     TO22O AB2"
  58. LOCATE 21, 3
  59. PRINT "TIP3O55    NPN  9O W *       3   1OO   7O    7     15 A    2O-7O    TO22O"
  60.  
  61. LINE (3, 70)-(3, 339), 9: LINE (636, 70)-(636, 339), 9
  62. LINE (94, 70)-(94, 339), 9: LINE (134, 70)-(134, 339), 9
  63. LINE (220, 70)-(220, 339), 9: LINE (266, 70)-(266, 339), 9
  64. LINE (318, 70)-(318, 339), 9: LINE (365, 70)-(365, 339), 9
  65. LINE (412, 70)-(412, 339), 9: LINE (478, 70)-(478, 339), 9
  66. LINE (549, 70)-(549, 339), 9
  67. LINE (3, 70)-(636, 70), 9: LINE (3, 119)-(636, 119), 9
  68. LINE (3, 339)-(636, 339), 9
  69. COLOR 9
  70. LOCATE 23, 3: PRINT "* : puissance dissipée à 25°C, avec radiateur"
  71. LOCATE 24, 3: PRINT "ft : fréquence de transition, valeur typique"
  72. LOCATE 25, 3: PRINT "Vcbo : tension collecteur-base, émetteur ouvert"
  73. LOCATE 26, 3: PRINT "Vceo : tension collecteur-émetteur, base ouverte"
  74. LOCATE 27, 3: PRINT "Vebo : tension émetteur-base, collecteur ouvert"
  75. LOCATE 28, 3: PRINT "hfe : gain en courant continu, variant avec Ic et Vce"
  76.  
  77. AttChoix: GOSUB RoutineAtt: GOSUB TestChoix: GOTO AttChoix: END
  78. '_________________________________________________________________________
  79. exemples: LINE (3, 61)-(636, 476), 0, BF
  80. COLOR 9
  81. LOCATE 6, 3
  82. PRINT "                PUISSANCE  ft    Vcbo  Vceo  Vebo  Ic"
  83. LOCATE 7, 3
  84. PRINT "MODELE     POL  DISSIPEE   MHz   V     V     V     max     hfe      BOITIER"
  85. COLOR 14
  86. LOCATE 9, 3
  87. PRINT "2N3O53     NPN  1 W        1OO   6O    4O    5     7OO mA  5O-25O   TO39"
  88. COLOR 12
  89. LOCATE 10, 3
  90. PRINT "2N2218A    NPN  3 W        25O   75    4O    6     8OO mA  35       TO39"
  91. LOCATE 11, 3
  92. PRINT "2N2219A    NPN  3 W        3OO   75    4O    6     8OO mA  35       TO39"
  93. COLOR 14
  94. LOCATE 13, 3
  95. PRINT "2N2222     NPN  5OO mW     25O   6O    3O    5     8OO mA  35       TO18 "
  96. COLOR 12
  97. LOCATE 14, 3
  98. PRINT "2N2222A    NPN  1,2 W      3OO   75    4O    6     8OO mA  35       TO18"
  99. LOCATE 15, 3
  100. PRINT "2N2369A    NPN  1,2 W      5OO   4O    15    4,5   2OO mA  4O       TO18"
  101. COLOR 6
  102. LOCATE 17, 3
  103. PRINT "MPS29O7    PNP  625 mW     2OO   6O    4O    5     6OO mA  5O       TO92"
  104. COLOR 4
  105. LOCATE 18, 3
  106. PRINT "2N29O4A    PNP  3 W        2OO   6O    6O    5     6OO mA  4O       TO39"
  107. LINE (3, 70)-(3, 292), 9: LINE (636, 70)-(636, 292), 9
  108. LINE (94, 70)-(94, 292), 9: LINE (134, 70)-(134, 292), 9
  109. LINE (220, 70)-(220, 292), 9: LINE (266, 70)-(266, 292), 9
  110. LINE (318, 70)-(318, 292), 9: LINE (365, 70)-(365, 292), 9
  111. LINE (412, 70)-(412, 292), 9: LINE (478, 70)-(478, 292), 9
  112. LINE (549, 70)-(549, 292), 9
  113. 'LINE (3, 70)-(636, 70), 9: LINE (3, 119)-(636, 119), 9
  114. LINE (3, 70)-(636, 119), 9, B
  115. 'LINE (3, 183)-(636, 183), 9: LINE (3, 244)-(636, 244), 9
  116. LINE (3, 183)-(636, 244), 9, B
  117. LINE (3, 292)-(636, 292), 9
  118. COLOR 14: LOCATE 20, 3: PRINT "En jaune ou brun : modèle de référence."
  119. COLOR 12: LOCATE 21, 3
  120. PRINT "En rouge : modèle similaire,  dont les caractéristiques  sont suffisamment"
  121. LOCATE 22, 3
  122. PRINT "           proches du modèle de référence  correspondant pour permettre de"
  123. LOCATE 23, 3
  124. PRINT "           les substituer l'un à l'autre dans une application courante."
  125.  
  126. AttEX: GOSUB RoutineAtt: GOSUB TestChoix: GOTO AttEX: END
  127. '................................................................
  128. brochage: LINE (3, 61)-(636, 476), 0, BF: COLOR 11
  129. COLOR 14: LOCATE 6, 30: PRINT "TRANSISTORS BIPOLAIRES"
  130. c = 11: LINE (150, 115)-(125, 155), c: LINE -(125, 175), 11: LINE -(150, 215), c
  131. LINE -(166, 215), c: LINE -(191, 170), c: LINE -(191, 155), c
  132. LINE -(166, 115), c: LINE -(150, 115), c
  133. CIRCLE (158, 165), 27, c: CIRCLE (145, 169), 2, c: CIRCLE (171, 169), 2, c
  134. CIRCLE (158, 125), 3, c: CIRCLE (158, 205), 3, c
  135. c = 14: y = 158: X = 144: GOSUB em: y = 158: X = 170: GOSUB bm
  136. COLOR 3: LOCATE 8, 13: PRINT "TO3"
  137. COLOR 14: LOCATE 15, 15: PRINT "c = boîtier"
  138. '...................................................... TO18
  139. c = 11: CIRCLE (320, 165), 30, c: PSET (345, 185), c
  140. DRAW "F6 G5 H6"
  141. CIRCLE (320, 149), 2, c: CIRCLE (320, 181), 2, c: CIRCLE (304, 165), 2, c
  142. c = 14: X = 330: y = 149: GOSUB cm: X = 330: y = 181: GOSUB em:
  143. X = 313: y = 165: GOSUB bm:
  144. COLOR 3: LOCATE 8, 33: PRINT "TO18"
  145. '...................................................  TO39
  146. c = 11: CIRCLE (500, 165), 35, c: PSET (531, 182), c
  147. DRAW "F7 G6 H6"
  148. CIRCLE (500, 142), 2, c: CIRCLE (500, 188), 2, c: CIRCLE (477, 165), 2, c
  149. c = 14: X = 508: y = 142: GOSUB cm: X = 508: y = 188: GOSUB em:
  150. X = 484: y = 165: GOSUB bm:
  151. LOCATE 8, 55: PRINT "TO39"
  152. LOCATE 15, 33: PRINT "Vues de dessous"
  153. '....................................................  TO92
  154. c = 7: LINE (144, 320)-(190, 350), c, B
  155. CIRCLE (167, 320), 23, c, (360 * .01745), (180 * .01745), .7
  156. LINE (147, 350)-(148, 400), 7, B
  157. LINE (187, 350)-(186, 400), 7, B
  158. LINE (167, 350)-(168, 400), 7, B
  159. c = 14: y = 415: X = 147: GOSUB cm: X = 167: GOSUB bm: X = 187: GOSUB em
  160. COLOR 7: LOCATE 20, 13: PRINT "TO92"
  161. '.................................................... TO220
  162. c = 7: LINE (295, 280)-(345, 310), c, B: LINE (295, 311)-(345, 350), c, B
  163. CIRCLE (320, 292), 10, c
  164. CIRCLE (295, 295), 5, 0: PAINT (295, 295), 0, 0
  165. CIRCLE (295, 295), 5, 7, (270 * .01745), (90 * .01745)
  166. CIRCLE (345, 295), 5, 0: PAINT (345, 295), 0, 0
  167. CIRCLE (345, 295), 5, 7, (90 * .01745), (270 * .01745)
  168. A = 350: B = 370: f = 400
  169. LINE (300, A)-(304, B), c, BF: LINE (302, B)-(303, f), c, B
  170. LINE (340, A)-(336, B), c, BF: LINE (338, B)-(337, f), c, BF
  171. LINE (318, A)-(322, B), c, BF: LINE (320, B)-(321, f), c, BF
  172. c = 14: y = 415: X = 302: GOSUB bm: X = 320: GOSUB cm: X = 338: GOSUB em
  173. LOCATE 18, 32: PRINT "TO22O"
  174. '..................................................  TO220AB2
  175. c = 7: LINE (495, 280)-(545, 310), c, B: LINE (495, 311)-(545, 350), c, B
  176. CIRCLE (520, 292), 10, c: A = 350: B = 370: f = 400
  177. LINE (500, A)-(504, B), c, BF: LINE (502, B)-(503, f), c, B
  178. LINE (540, A)-(536, B), c, BF: LINE (538, B)-(537, f), c, BF
  179. LINE (518, A)-(522, B), c, BF: LINE (520, B)-(521, f), c, BF
  180. c = 14: X = 502: GOSUB bm: X = 520: GOSUB cm: X = 538: GOSUB em
  181. LOCATE 18, 53: PRINT "TO22OAB-2"
  182. LOCATE 28, 35: PRINT "Vues de face"
  183.  
  184. AttBR: GOSUB RoutineAtt
  185.    GOSUB TestChoix
  186.    GOTO AttBR: END
  187. '.................................................................
  188. equivalences: LINE (3, 61)-(636, 476), 0, BF
  189. A = 0: aa = 639: BB = 479: GOSUB Barbas
  190. FlchUp1$ = CHR$(0) + CHR$(72): FlchUp2$ = CHR$(0) + CHR$(73)
  191. FlchDw1$ = CHR$(0) + CHR$(80): FlchDw2$ = CHR$(0) + CHR$(81)
  192. COLOR 9
  193. LOCATE 6, 3
  194. PRINT "MODELE    similaire à      MODELE    similaire à     MODELE    similaire à"
  195.   RESTORE EquivData: LireEquiv 1, 2, 3
  196. LINE (202, 82)-(202, 450), 9: LINE (412, 82)-(412, 450), 9
  197. AttEQ: GOSUB RoutineAtt: GOSUB TestChoixEQ: GOTO AttEQ: END
  198.  
  199. equivalences2: LINE (6, 104)-(635, 450), 0, BF
  200. A = 0: aa = 639: BB = 479: GOSUB Barbas: GOSUB Barbas2
  201.   RESTORE EquivData2: LireEquiv 1, 2, 3
  202. LINE (202, 82)-(202, 450), 9: LINE (412, 82)-(412, 450), 9
  203. AttEQ2: GOSUB RoutineAtt: GOSUB TestChoixEQ2: GOTO AttEQ2: END
  204.  
  205. equivalences3: LINE (6, 104)-(635, 450), 0, BF
  206.   RESTORE EquivData3: LireEquiv 1, 2, 3
  207. LINE (202, 82)-(202, 450), 9: LINE (412, 82)-(412, 450), 9
  208. AttEQ3: GOSUB RoutineAtt: GOSUB TestChoixEQ3: GOTO AttEQ3: END
  209.  
  210. equivalences4: LINE (6, 104)-(635, 450), 0, BF
  211.   RESTORE EquivData4: LireEquiv 1, 2, 3
  212. LINE (202, 82)-(202, 450), 9: LINE (412, 82)-(412, 450), 9
  213. AttEQ4: GOSUB RoutineAtt: GOSUB TestChoixEQ4: GOTO AttEQ4: END
  214.  
  215. equivalences5: LINE (6, 104)-(635, 450), 0, BF
  216.   RESTORE EquivData5: LireEquiv 1, 2, 3
  217. LINE (202, 82)-(202, 450), 9: LINE (412, 82)-(412, 450), 9
  218. AttEQ5: GOSUB RoutineAtt: GOSUB TestChoixEQ5: GOTO AttEQ5: END
  219.  
  220. equivalences6: LINE (6, 104)-(635, 450), 0, BF
  221.   RESTORE EquivData6: LireEquiv 1, 2, 3
  222. LINE (202, 82)-(202, 450), 9: LINE (412, 82)-(412, 450), 9
  223. AttEQ6: GOSUB RoutineAtt: GOSUB TestChoixEQ6: GOTO AttEQ6: END
  224.  
  225. equivalences7: LINE (6, 104)-(635, 450), 0, BF
  226.   RESTORE EquivData7: LireEquiv 1, 2, 3
  227. LINE (202, 82)-(202, 450), 9: LINE (412, 82)-(412, 450), 9
  228. AttEQ7: GOSUB RoutineAtt: GOSUB TestChoixEQ7: GOTO AttEQ7: END
  229. REM
  230. TestChoix:
  231. IF B% = 1 THEN GOSUB TestMouse
  232. IF f$ = "Q" THEN GOTO Dtbook
  233. IF f$ = "R" THEN GOTO references
  234. IF f$ = "B" THEN GOTO brochage
  235. IF f$ = "X" THEN GOTO exemples
  236. IF f$ = "E" THEN GOTO equivalences
  237. RETURN
  238. TestMouse:
  239. IF y% > 25 AND y% < 54 THEN GOSUB TestIcon
  240. RETURN
  241. TestIcon:
  242. IF X% > 25 AND X% < 117 THEN GOTO references
  243. IF X% > 131 AND X% < 235 THEN GOTO equivalences
  244. IF X% > 246 AND X% < 327 THEN GOTO brochage
  245. IF X% > 341 AND X% < 414 THEN GOTO exemples
  246. IF X% > 530 AND X% < 540 THEN GOTO Dtbook
  247. RETURN
  248. TestChoixEQ:
  249. GOSUB TestChoix
  250. IF f$ = FlchDw1$ OR f$ = FlchDw2$ THEN GOTO equivalences2
  251. IF y% < 455 THEN RETURN
  252. IF X% > 614 AND X% < 634 THEN GOTO equivalences2
  253. RETURN
  254. TestChoixEQ2:
  255. GOSUB TestChoix
  256. IF f$ = FlchUp1$ OR f$ = FlchUp2$ THEN GOTO equivalences
  257. IF f$ = FlchDw1$ OR f$ = FlchDw2$ THEN GOTO equivalences3
  258. IF y% < 455 THEN RETURN
  259. IF X% > 5 AND X% < 25 THEN GOTO equivalences
  260. IF X% > 614 AND X% < 634 THEN GOTO equivalences3
  261. RETURN
  262. TestChoixEQ3:
  263. GOSUB TestChoix
  264. IF f$ = FlchUp1$ OR f$ = FlchUp2$ THEN RESTORE EquivData2: GOTO equivalences2
  265. IF f$ = FlchDw1$ OR f$ = FlchDw2$ THEN GOTO equivalences4
  266. IF y% < 455 THEN RETURN
  267. IF X% > 5 AND X% < 25 THEN RESTORE EquivData2: GOTO equivalences2
  268. IF X% > 614 AND X% < 634 THEN GOTO equivalences4
  269. RETURN
  270. TestChoixEQ4:
  271. GOSUB TestChoix
  272. IF f$ = FlchUp1$ OR f$ = FlchUp2$ THEN RESTORE EquivData3: GOTO equivalences3
  273. IF f$ = FlchDw1$ OR f$ = FlchDw2$ THEN GOTO equivalences5
  274. IF y% < 455 THEN RETURN
  275. IF X% > 5 AND X% < 25 THEN RESTORE EquivData3: GOTO equivalences3
  276. IF X% > 614 AND X% < 634 THEN GOTO equivalences5
  277. RETURN
  278. TestChoixEQ5:
  279. GOSUB TestChoix
  280. IF f$ = FlchUp1$ OR f$ = FlchUp2$ THEN RESTORE EquivData4: GOTO equivalences4
  281. IF f$ = FlchDw1$ OR f$ = FlchDw2$ THEN GOTO equivalences6
  282. IF y% < 455 THEN RETURN
  283. IF X% > 5 AND X% < 25 THEN RESTORE EquivData4: GOTO equivalences4
  284. IF X% > 614 AND X% < 634 THEN GOTO equivalences6
  285. RETURN
  286. TestChoixEQ6:
  287. GOSUB TestChoix
  288. IF f$ = FlchUp1$ OR f$ = FlchUp2$ THEN RESTORE EquivData5: GOTO equivalences5
  289. IF f$ = FlchDw1$ OR f$ = FlchDw2$ THEN GOTO equivalences7
  290. IF y% < 455 THEN RETURN
  291. IF X% > 5 AND X% < 25 THEN RESTORE EquivData5: GOTO equivalences5
  292. IF X% > 614 AND X% < 634 THEN GOTO equivalences7
  293. RETURN
  294. TestChoixEQ7:
  295. GOSUB TestChoix
  296. IF f$ = FlchUp1$ OR f$ = FlchUp2$ THEN RESTORE EquivData6: GOTO equivalences6
  297. IF f$ = FlchDw1$ OR f$ = FlchDw2$ THEN GOTO equivalences
  298. IF y% < 455 THEN RETURN
  299. IF X% > 5 AND X% < 25 THEN RESTORE EquivData6: GOTO equivalences6
  300. IF X% > 614 AND X% < 634 THEN GOTO equivalences
  301. RETURN
  302.  
  303. '..............................................................
  304. Dtbook: LINE (3, 61)-(636, 476), 0, BF: COLOR 15: Mouse 0
  305. CHAIN "minilab\dtbook.bas"
  306. '..............................................................
  307. RoutineAtt: Mouse 1
  308.             DO: GetMouse: f$ = INKEY$: f$ = UCASE$(f$)
  309.             LOOP UNTIL B% <> BX% OR LEN(f$)
  310.             Mouse 0: RETURN
  311. '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  312. Barbas: LINE (A + 6, BB - 23)-(aa - 6, BB - 6), 0, B
  313. LINE (A + 7, BB - 22)-(aa - 7, BB - 7), 7, BF
  314. LINE (aa - 7, BB - 22)-(aa - 24, BB - 22), 15: LINE -(aa - 24, BB - 7), 15
  315. LINE -(aa - 7, BB - 7), 8: LINE -(aa - 7, BB - 22), 8
  316. LINE (aa - 12, BB - 18)-(aa - 20, BB - 18), 0: LINE -(aa - 16, BB - 11), 0
  317. LINE -(aa - 12, BB - 18), 0: PAINT (aa - 16, BB - 15), 0, 0: RETURN
  318. Barbas2: LINE (A + 7, BB - 22)-(A + 24, BB - 22), 15: LINE -(A + 24, BB - 7), 8
  319. LINE -(A + 7, BB - 7), 8: LINE -(A + 7, BB - 22), 15
  320. LINE (A + 12, BB - 11)-(A + 20, BB - 11), 0: LINE -(A + 16, BB - 18), 0
  321. LINE -(A + 12, BB - 11), 0: PAINT (A + 16, BB - 15), 0, 0: RETURN
  322. REM ========================================================================
  323. bm: y = y + 1: FOR V = y - 5 TO y + 3: PSET (X - 2, V), c: NEXT V
  324. FOR V = y - 2 TO y + 2: PSET (X + 2, V), c: NEXT V
  325. FOR h = X - 1 TO X + 1: PSET (h, y + 3), c: NEXT h
  326. FOR h = X - 1 TO X + 1: PSET (h, y - 3), c: NEXT h: RETURN
  327. cm: FOR h = X - 1 TO X + 1: PSET (h, y - 3), c: NEXT h
  328. PSET (X - 2, y - 2), c: PSET (X + 2, y - 2), c
  329. FOR V = y - 1 TO y + 1: PSET (X - 2, V), c: NEXT V
  330. PSET (X - 2, y + 2), c: PSET (X + 2, y + 2), c
  331. FOR h = X - 1 TO X + 1: PSET (h, y + 3), c: NEXT h: RETURN
  332. em: FOR h = X - 1 TO X + 1: PSET (h, y - 3), c: NEXT h
  333. PSET (X - 2, y - 2), c: PSET (X + 2, y - 2), c
  334. PSET (X - 2, y - 1), c: PSET (X + 2, y - 1), c
  335. FOR h = X - 2 TO X + 1: PSET (h, y), c: NEXT h: PSET (X - 2, y + 1), c
  336. PSET (X - 2, y + 2), c: PSET (X + 2, y + 2), c
  337. FOR h = X - 1 TO X + 1: PSET (h, y + 3), c: NEXT h: y = y + 1: RETURN
  338. REM +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  339. TraiteErreur: BEEP: Mouse 0
  340. A = 100: aa = 540: B = 150: BB = 320: LINE (A, B)-(aa, BB), 0, BF
  341. LINE (A, B)-(aa, BB), 12, B: LINE (A, B + 30)-(aa, B + 30), 12, B
  342. COLOR 12: LOCATE 11, 38: PRINT "ERREUR"
  343. CodErr$ = STR$(ERR): NoCode$ = "Code d'erreur :"
  344. IF ERR < 25 OR ERR = 26 THEN me$ = "Erreur interne au programme"
  345. IF ERR > 28 OR ERR < 53 THEN me$ = "Erreur interne au programme"
  346. IF ERR = 25 THEN me$ = "Périphérique absent ou éteint"
  347. IF ERR = 27 THEN me$ = "Imprimante : Attente papier..."
  348. IF ERR = 53 THEN me$ = "Fichier absent !"
  349. IF ERR = 57 THEN me$ = "Erreur de périphérique E / S"
  350. IF ERR = 61 THEN me$ = "Disque saturé"
  351. IF ERR = 68 THEN me$ = "Périphérique non disponible"
  352. IF ERR = 75 OR ERR = 76 THEN me$ = "Erreur de chemin d'accès au fichier"
  353. COLOR 12: LOCATE 14, (80 - LEN(me$)) / 2: PRINT me$
  354. COLOR 14: LOCATE 16, (78 - LEN(NoCode$)) / 2: PRINT NoCode$; CodErr$
  355. Message$ = "Appuyez sur une touche pour continuer..."
  356. COLOR 12: LOCATE 18, (80 - LEN(Message$)) / 2: PRINT Message$
  357. SLEEP 2: DO: f$ = INKEY$: LOOP UNTIL LEN(f$)
  358. RESUME Attdebut
  359. '...................................................................
  360. MS.Data:
  361.  DATA 55,8b,ec,56,57,8b,76,0c,8b,04,8b,76,0a,8b,1c,8b,76,08,8b,0c
  362.  DATA 8b,76,06,8b,14,cd,21,8b,76,0c,89,04,8b,76,0a,89,1c,8b,76,08,89,0c
  363.  DATA 8b,76,06,89,14,5f,5e,5d,ca,08,00,#
  364. '....................................................
  365. EquivData:
  366. DATA 2N431,2N2222, 2N432,2N2222, 2N433,2N2222
  367. DATA 2N47O,2N2222, 2N475,2N2222, 2N48O,2N2222
  368. DATA 2N48OB,2N3O53,2N497,2N3O53, 2N498,2N3O53
  369. DATA 2N545,2N3O53, 2N549,2N3O53, 2N696,2N2222
  370. DATA 2N696A,2N3O53,2N696S,2N3O53,2N697,2N3O53
  371. DATA 2N699,2N3O53, 2N699A,2N3O53,2N697A,2N3O53
  372. DATA 2N76O,2N2222, 2N762,2N2222, 2N77O,2N2222
  373. DATA 2N772,2N2222, 2N774,2N2222, 2N776,2N2222
  374. DATA 2N78O,2N2222, 2N783,2N2222, 2N784,2N2222
  375. DATA 2N858,MPS29O7,2N859,MPS29O7,2N86O,MPS29O7
  376. DATA 2N861,MPS29O7,2N864,MPS29O7,2N866,2N2222
  377. DATA 2N913,2N2222, 2N914,2N2222, 2N915,2N2222
  378. DATA 2N916,2N2222, 2N916A,2N2222,2N917,MPS39O4
  379. DATA 2N918,MPS39O4,2N919,2N2222, 2N929,2N2222
  380. DATA 2N929A,2N2222,2N93O,2N2222, 2N93OA,2N2222
  381. DATA 2N93OB,2N2222,2N935,MPS29O7,2N935A,MPS29O7
  382. DATA 2N936,MPS29O7,2N936A,MPS29O7,2N937,MPS29O7
  383. DATA 2N946A,MPS29O7,2N947,2N2222,2N1O25,MPS29O4
  384. DATA 2N1O26,MPS29O4,2N1O27,MPS29O4,2N1O47,TIP3O55
  385. DATA 2N1O48,TIP3O55,2N1O49,TIP3O55,2N1O51,2N3O53
  386. DATA 2N1O55,2N3O53, 2N1118,MPS29O4,2N1118A,MPS29O4
  387. EquivData2:
  388. DATA 2N1119,MPS29O4,2N1119A,MPS29O4,2N1131,MPS29O4
  389. DATA 2N1131A,MPS29O4, 2N1132,MPS29O4, 2N1132A,MPS29O4
  390. DATA 2N1135,MPS29O4, 2N1135A,MPS29O4, 2N1118,MPS29O4
  391. DATA 2N1248,2N2222, 2N1249,2N2222, 2N1252,2N2222
  392. DATA 2N1253,2N2222, 2N1267,2N2222, 2N127O,2N2222
  393. DATA 2N1272,2N2222, 2N1276,2N2222, 2N1278,2N2222
  394. DATA 2N1386,2N2222, 2N1388,2N2222, 2N139O,2N2222
  395. DATA 2N14O9,2N2222, 2N1428,MPS29O7,2N1439,MPS29O7
  396. DATA 2N1441,MPS29O7, 2N1443,MPS29O7, 2N1444,2N3O53
  397. DATA 2N1472,2N3O53, 2N1472,MPS29O7, 2N1474,MPS29O7
  398. DATA 2N1476,MPS29O7, 2N1477,MPS29O7, 2N1487,2N3O55
  399. DATA 2N1489,2N3O55, 2N15O5,2N2222, 2N15O6,2N2222
  400. DATA 2N1587,MPS2222A, 2N1588,MPS2222A, 2N1593,MPS2222A
  401. DATA 2N1594,MPS2222A, 2N1613,2N3O53, 2N1613A,2N2222
  402. DATA 2N1613B,2N2222, 2N1711,2N3O53, 2N1711A,2N3O53
  403. DATA 2N1711B,2N3O53, 2N189OS,2N3O53, 2N1893S,2N3O53
  404. DATA 2N1944,2N2222, 2N1946,2N2222, 2N1948,2N2222
  405. DATA 2N195O,2N2222, 2N1962,2N2222, 2N1964,2N2222
  406. DATA 2N1965,2N2222, 2N1952,2N2222, 2N21O2,2N3O53
  407. DATA 2N21O2A,2N3O53, 2N21O2S,2N3O53, 2N21O4,MPS29O7
  408. DATA 2N21O5,MPS29O7, 2N2218,2N3O53, 2N2218A,2N3O53
  409. EquivData3:
  410. DATA 2N2218S,2N2222, 2N2219,2N3O53, 2N2219A,2N3O53
  411. DATA 2N2222,2N2222, 2N2222A,2N2222, 2N2324,2N2222
  412. DATA 2N2369,2N2222, 2N2645,2N2222, 2N2651,2N2222
  413. DATA 2N29O5,MPS29O7, 2N29O6,MPS29O7, 2N29O6A,MPS29O7
  414. DATA 2N29O7,MPS29O7, 2N29O7A,MPS29O7, 2N3O13,2N2222
  415. DATA 2N3O14,2N2222, 2N3O15,2N2222, 2N3O2O,2N3O53
  416. DATA 2N3O53,2N3O53, 2N3O55,2N3O55, 2N3415,2N2222
  417. DATA 2N3744,TIP3O55, 2N3745,TIP3O55, 2N3747,TIP3O55
  418. DATA 2N3748,TIP3O55, 2N3789,MJ2955, 2N379O,MJ2955
  419. DATA 2N3791,MJ2955, 2N3818,TIP3O55, 2N3825,MPS2222A
  420. DATA 2N3826,MPS2222A, 2N3827,MPS2222A, 2N3828,MPS2222A
  421. DATA 2N3829,MPS29O7,2N39O3,MPS2222A, 2N39O4,MPS2222A
  422. DATA 2N39O5,MPS29O7, 2N39O6,2N39O6, 2N44O2,MPS29O7
  423. DATA 2N44O3,MPS29O7, 2N4411,MPS29O7, 2N4413,MPS29O7
  424. DATA 2N4413A,MPS29O7, 2N4415,MPS29O7, 2N4415A,MPS29O7
  425. DATA 2N49O1,MJ2955, 2N49O2,MJ2955, 2N49O3,MJ2955
  426. DATA 2N49O4,MJ2955, 2N49O5,MJ2955, 2N49O6,MJ2955
  427. DATA 2N49O7,MJ2955, 2N49O8,MJ2955, 2N49O9,MJ2955
  428. DATA 2N5293,TIP3O55, 2N5294,TIP3O55, 2N5295,TIP3O55
  429. DATA 2N5296,TIP3O55, 2N5297,TIP3O55, 2N5298,TIP3O55
  430. DATA 2N53OO,2N3O53, 2N53O9,MPS2222A, 2N531O,MPS2222A
  431. EquivData4:
  432. DATA 2N5447,MPS29O7, 2N5448,MPS29O7, 2N545O,2N3O53
  433. DATA 2N5451,2N3O53, 2N56O8,TIP31, 2N561O,TIP31
  434. DATA 2N5612,TIP31, 2N5637,TIP3O55, 2N5681,2N3O53
  435. DATA 2N5688,TIP31, 2N5699,TIP31, 2N61O1,TIP3O55
  436. DATA 2N61O2,TIP3O55, 2N61O3,TIP3O55, 2N6288,TIP3O55
  437. DATA 2N6289,TIP3O55, 2N629O,TIP3O55, 2N6291,TIP3O55
  438. DATA 2N6292,TIP3O55, 2N6293,TIP3O55, 2SA6O3,MPS29O7
  439. DATA 2SA6O3A,MPS29O7, 2SA6O3Y,MPS29O7, 2SA6O8,MPS29O7
  440. DATA 2SA6O8A,MPS29O7, 2SA6O8Y,MPS29O7, 2SA6O9,MPS29O7
  441. DATA 2SA6O9A,MPS29O7, 2SA6O9Y,MPS29O7, 2SA61O,MPS29O7
  442. DATA 2SA62O,MPS29O7, 2SA628,MPS29O7, 2SA628A,MPS29O7
  443. DATA 2SA628Y,MPS29O7, 2SA629,MPS29O7, 2SA629A,MPS29O7
  444. DATA 2SA629Y,MPS29O7, 2SA64O,MPS29O7, 2SA64OA,MPS29O7
  445. DATA 2SA64OM,MPS29O7, 2SA666,MPS29O7, 2SA666A,MPS29O7
  446. DATA 2SA666Y,MPS29O7, 2SA67O,MJE34, 2SA67OA,MJE34
  447. DATA 2SA67OC,MJE34, 2SA672,MPS29O7, 2SA685,MPS29O7
  448. DATA 2SA693,MPS29O7, 2SA7OO,MJE34, 2SA7OOY,MJE34
  449. DATA 2SA7O1,MPS29O7, 2SA7O2,MPS29O7, 2SA7O4,MPS29O7
  450. DATA 2SA7O5,MPS29O7, 2SA7O9,MPS29O7, 2SA714,MPS29O7
  451. DATA 2SA718,MPS29O7, 2SA719,MPS29O7, 2SA72O,MPS29O7
  452. DATA 2SA721,MPS29O7, 2SA725,MPS29O7, 2SA728,MPS29O7
  453. EquivData5:
  454. DATA 2SA733,MPS29O7, 2SA744,MJ2955, 2SA745,MJ2955
  455. DATA 2SA746,MJ2955, 2SA747,MJ2955, 2SA75O,MPS29O7
  456. DATA 2SA753,MPS29O7, 2SA755,MJE34, 2SA76O,MPS29O7
  457. DATA 2SA767,MPS29O7, 2SA768,MJE34, 2SA777,MPS29O7
  458. DATA 2SA786,MPS29O7, 2SA798,MPS29O7, 2SA811,MPS29O7
  459. DATA 2SA812,MPS29O7, 2SA825,MPS29O7, 2SA826,MPS29O7
  460. DATA 2SA836,MPS29O7, 2SA844,MPS29O7, 2SA854,MPS29O7
  461. DATA 2SA854QZ,MPS29O7, 2SA876HA,MPS29O7, 2SA882,MJ2955
  462. DATA 2SA89O,MPS29O7, 2SA9O1,MPS29O7, 2SA924,MPS29O7
  463. DATA 2SA929,MPS29O7, 2SA933,MPS29O7, 2SA933AQ,MPS29O7
  464. DATA 2SA933LN,MPS29O7, 2SA933QY,MPS29O7, 2SA933SSK,MPS29O7
  465. DATA 2SA937,MPS29O7, 2SA937RZ,MPS29O7, 2SA937S,MPS29O7
  466. DATA 2SA95O,MPS29O7, 2SA95OY,MPS29O7, 2SA952,MPS29O7
  467. DATA 2SA952ML2,MPS29O7, 2SA97O,MPS29O7, 2SA98O,MJ2955
  468. DATA 2SA981,MJ2955, 2SA982,MJ2955, 2SA984,MPS29O7
  469. DATA 2SA984KE,MPS29O7, 2SA99O,MPS29O7, 2SA1OO1,MJ2955
  470. DATA 2SA1OO2,MJ2955, 2SA1OO5,MPS29O7, 2SA1O12,MJE34
  471. DATA 2SA1O12Y,MJE34, 2SA1O15,MPS29O7, 2SA1O15-O,MPS29O7
  472. DATA 2SA1O15-Y,MPS29O7, 2SA1O15G,MPS29O7, 2SA1O16,MPS29O7
  473. DATA 2SA1O27,MPS29O7, 2SA1O4O,MPS29O7, 2SA1O82,MPS29O7
  474. DATA 2SA11OO,MPS29O7, 2SA1115,MPS29O7, 2SA1175,MPS29O7
  475. EquivData6:
  476. DATA 2SA1198,MPS29O7, 2SA1211,MPS29O7, 2SA1218,MPS29O7
  477. DATA 2SA1246,MPS29O7, 2SA1246T,MPS29O7, 2SA495O,MPS29O7
  478. DATA 2SA561O,MPS29O7, 2SANJ1O1,MPS29O7, 2SB434,MJE34
  479. DATA 2SB434R,MJE34, 2SB435,MJE34, 2SB435Y,MJE34
  480. DATA 2SB5O7,MJE34, 2SB511,MJE34, 2SB512,MJE34
  481. DATA 2SB513,MJE34, 2SB515,MJE34, 2SB52O,MPS2955
  482. DATA 2SB53O,MPS2955, 2SB555,MPS2955, 2SB558,MPS2955
  483. DATA 2SB611,MPS2955, 2SB641,MPS29O7, 2SB641T,MPS29O7
  484. DATA 2SB642,MPS29O7, 2SB642S,MPS29O7, 2SB643,MPS29O7
  485. DATA 2SB644,MPS29O7,2SB644S,MPS29O7, 2SB744,MPS29O7
  486. DATA 2SB744S,MPS29O7, 2SB774,MPS29O7, 2SB1134,MJE34
  487. DATA 2SB1135,MJE34, 2SB1274,MJE34, 2SC12,2N3O53
  488. DATA 2SC12Y,2N3O53, 2SC15,2N2222, 2SC15Y,2N2222
  489. DATA 2SC16,2N2222, 2SC16Y,2N2222, 2SC17,2N2222
  490. DATA 2SC17Y,2N2222, 2SC18A,2N2222, 2SC19,2N3O53
  491. DATA 2SC19Y,2N3O53, 2SC2O,2N3O53, 2SC2OY,2N3O53
  492. DATA 2SC21,2N3O55,2SC21Y,2N3O55, 2SC3O,2N3O53
  493. DATA 2SC38,2N2222, 2SC45,2N2222, 2SC51,2N3O53
  494. DATA 2SC64,2N3O53, 2SC79,2N44O1, 2SC97,2N3O53
  495. DATA 2SC1O9,2N3O53, 2SC13O,2N3O53, 2SC155,MPS39O4
  496. DATA 2SC187,MPS39O4, 2SC2O6,MPS39O4, 2SC25O,2N2222
  497. EquivData7:
  498. DATA 2SC286,MPS39O4, 2SC286Y,MPS39O4, 2SC3O6,2N3O53
  499. DATA 2SC323,2N2222, 2SC379,MPS2222A, 2SC4O1,MPS2222A
  500. DATA 2SC445,MPS2222A, 2SC5O9,MPS2222A, 2SC536,MPS2222A
  501. DATA 2SC619,MPS2222A, 2SC629,2N44O1, 2SC65O,MPS2222A
  502. DATA 2SC711,MPS2222A, 2SC784,2N44O1, 2SC828,MPS2222A
  503. DATA 2SC9OO,MPS39O4, 2SC929,MPS39O4, 2SC988,MPS39O4
  504. DATA 2SC1O3O,2N3O55, 2SC1O6O,TIP3O55, 2SC1O61,TIP3O55
  505. DATA 2SC121O,MPS2222A, 2SC1317,MPS2222A, 2SC1318,MPS2222A
  506. DATA 2SC1327,MPS39O4, 2SC1335,MPS39O4, 2SC1344,MPS39O4
  507. DATA 2SC1417,MPS39O4, 2SC1537,MPS39O4, 2SC1538,MPS39O4
  508. DATA 2SC157O,MPS39O4, 2SC1622,MPS39O4, 2SC1643,MPS2222A
  509. DATA 2SC1684,MPS2222A, 2SC174O,MPS2222A, 2SC174OSSX,MPS2222A
  510. DATA 2SC1815,MPS2222A, 2SC1826,TIP3O55, 2SC2OOO,MPS2222A
  511. DATA 2SC2O58,MPS2222A, 2SC21O7,MPS2222A, 2SC2274,MPS2222A
  512. DATA 2SC2362,MPS39O4, 2SC2634,MPS39O4, 2SC2724,MPS2222A
  513. DATA 2SC2785,MPS2222A, 2SC2839,MPS2222A, 2SC3OOO,MPS2222A
  514. DATA 2SC3179,TIP3O55, 2SC3255,TIP3O55, 2SC3299,TIP3O55
  515. DATA 2SC372O,2N44O1, 2SC38OO,2N44O1, 2SC394O,2N44O1
  516. DATA 2SC4O33,2N44O1, 2SC4116,TIP3O55, 2SC4116Y,TIP3O55
  517. DATA BC1O7,2N2222, BC1O7A,2N2222, BC1O8,2N2222
  518. DATA BC1O8A,2N2222,BC1O9,2N2222,BC1O9BP,MPS2222A
  519. 'EquivData8
  520.  
  521. DEFSNG A-Z
  522. SUB GetMouse
  523.   R% = Interr%(&H33, 3, BX%, CX%, DX%)
  524.   B% = BX%: X% = CX%: y% = DX%
  525. END SUB
  526.  
  527. FUNCTION Interr% (Num%, AX%, BX%, CX%, DX%)
  528.  IF MS%(0) = 0 THEN SYSTEM
  529.  DEF SEG = VARSEG(MS%(0))
  530.  POKE VARPTR(MS%(0)) + 26, Num%
  531.  CALL ABSOLUTE(AX%, BX%, CX%, DX%, VARPTR(MS%(0)))
  532.  Interr% = AX%
  533. END FUNCTION
  534.  
  535. SUB LireEquiv (p%, d%, t%)
  536. 'p%=premiere colonne ; d%=deuxième col.; t%=troisième col.
  537. '3 lectures = 3 paquets de mots
  538. '63 entrées par page = 3 X 21
  539.  
  540. FOR mot = p% TO p% + 20: READ Model$, Eq$
  541. COLOR 14: LOCATE 7 + (mot - p% + 1), 3: PRINT Model$
  542. COLOR 10: LOCATE 7 + (mot - p% + 1), 15: PRINT Eq$: NEXT mot
  543. FOR mot = d% TO d% + 20: READ Model$, Eq$
  544. COLOR 14: LOCATE 7 + (mot - d% + 1), 30: PRINT Model$
  545. COLOR 10: LOCATE 7 + (mot - d% + 1), 42: PRINT Eq$: NEXT mot
  546. FOR mot = t% TO t% + 20: READ Model$, Eq$
  547. COLOR 14: LOCATE 7 + (mot - t% + 1), 56: PRINT Model$
  548. COLOR 10: LOCATE 7 + (mot - t% + 1), 68: PRINT Eq$: NEXT mot
  549. END SUB
  550.  
  551. SUB Mouse (OnOff%)
  552. IF OnOff% = 0 THEN OnOff% = 2 ELSE OnOff% = 1
  553. R% = Interr%(&H33, OnOff%, BX%, CX%, DX%)
  554. END SUB
  555.  
  556. SUB ReadData
  557.  RESTORE MS.Data
  558.  DEF SEG = VARSEG(MS%(0))
  559.  FOR I% = 0 TO 99
  560.   READ Byte$
  561.   IF Byte$ = "#" THEN EXIT FOR
  562.   POKE VARPTR(MS%(0)) + I%, VAL("&H" + Byte$)
  563.  NEXT I%
  564. END SUB
  565.  
  566. SUB ResetMouse
  567. R% = Interr%(&H33, 0, BX%, CX%, DX%)
  568. R% = Interr%(&H33, 1, BX%, CX%, DX%)
  569. R% = Interr%(&H33, 15, BX%, 5, 5)
  570. END SUB
  571.  
  572.