home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 12
/
CD_ASCQ_12_0294.iso
/
maj
/
2364
/
minilab
/
transist.bas
< prev
next >
Wrap
BASIC Source File
|
1994-02-07
|
25KB
|
572 lines
REM W. Prévost 1993 : MINILAB: TRANSISTORS
DECLARE SUB AttenteSouris ()
DECLARE SUB Mouse (OnOff%)
DECLARE SUB ResetMouse ()
DECLARE SUB GetMouse ()
DECLARE SUB SetMouse (X%, y%)
DECLARE SUB ReadData ()
DECLARE SUB LireEquiv (p%, d%, t%)
DECLARE FUNCTION Interr% (Num%, AX%, BX%, CX%, DX%)
DIM SHARED MS%(45)
CLEAR
ReadData
DIM SHARED X%, y%, B%
REM ==============================================================
ON ERROR GOTO TraiteErreur
DEFINT A-Z: SCREEN 12
Attdebut: LINE (3, 61)-(636, 476), 0, BF
ResetMouse
GOSUB RoutineAtt: GOSUB TestChoix: GOTO Attdebut: END
'..................................................................
references: LINE (3, 61)-(636, 476), 0, BF
COLOR 9
LOCATE 6, 3
PRINT "MODELE de PUISSANCE ft Vcbo Vceo Vebo Ic"
LOCATE 7, 3
PRINT "REFERENCE POL DISSIPEE MHz V V V max hfe BOITIER"
COLOR 14
LOCATE 9, 3
PRINT "2N2222 NPN 5OO mW 25O 6O 3O 5 8OO mA 35 TO18 "
LOCATE 10, 3
PRINT "2N3O53 NPN 1 W 1OO 6O 4O 5 7OO mA 5O-25O TO39"
LOCATE 11, 3
PRINT "2N3O55 NPN 115 W * 2,5 1OO 6O 7 15 A 2O-7O TO3"
COLOR 6
LOCATE 12, 3
PRINT "2N39O6 PNP 35O mW 25O 4O 4O 5 2OO mA 6O TO92 "
COLOR 14
LOCATE 13, 3
PRINT "2N44O1 NPN 625 mW 25O 4O 6O 6 6OO mA 1OO-3OO TO92"
COLOR 6
LOCATE 14, 3
PRINT "MJ2955 PNP 15O W * 4 1OO 6O 7 15 A 7O TO3"
LOCATE 15, 3
PRINT "MJE34 PNP 9O W * 3 4O 4O 5 1O A 2O-1OO TO22O"
COLOR 14
LOCATE 16, 3
PRINT "MPS2222A NPN 625 mW 3OO 75 4O 6 8OO mA 5O TO92 "
COLOR 6
LOCATE 17, 3
PRINT "MPS29O7 PNP 625 mW 2OO 6O 4O 5 6OO mA 5O TO92"
COLOR 14
LOCATE 18, 3
PRINT "MPS39O4 NPN 625 mW 3OO 6O 4O 6 2OO mA 1OO-3OO TO92 "
LOCATE 19, 3
PRINT "TIP31 NPN 4O W * 3 4O 4O 5 3 A 1O-5O TO22O AB2"
LOCATE 20, 3
PRINT "TIP12O NPN 65 W * O,1 6O 6O 5 5 A 25OO TO22O AB2"
LOCATE 21, 3
PRINT "TIP3O55 NPN 9O W * 3 1OO 7O 7 15 A 2O-7O TO22O"
LINE (3, 70)-(3, 339), 9: LINE (636, 70)-(636, 339), 9
LINE (94, 70)-(94, 339), 9: LINE (134, 70)-(134, 339), 9
LINE (220, 70)-(220, 339), 9: LINE (266, 70)-(266, 339), 9
LINE (318, 70)-(318, 339), 9: LINE (365, 70)-(365, 339), 9
LINE (412, 70)-(412, 339), 9: LINE (478, 70)-(478, 339), 9
LINE (549, 70)-(549, 339), 9
LINE (3, 70)-(636, 70), 9: LINE (3, 119)-(636, 119), 9
LINE (3, 339)-(636, 339), 9
COLOR 9
LOCATE 23, 3: PRINT "* : puissance dissipée à 25°C, avec radiateur"
LOCATE 24, 3: PRINT "ft : fréquence de transition, valeur typique"
LOCATE 25, 3: PRINT "Vcbo : tension collecteur-base, émetteur ouvert"
LOCATE 26, 3: PRINT "Vceo : tension collecteur-émetteur, base ouverte"
LOCATE 27, 3: PRINT "Vebo : tension émetteur-base, collecteur ouvert"
LOCATE 28, 3: PRINT "hfe : gain en courant continu, variant avec Ic et Vce"
AttChoix: GOSUB RoutineAtt: GOSUB TestChoix: GOTO AttChoix: END
'_________________________________________________________________________
exemples: LINE (3, 61)-(636, 476), 0, BF
COLOR 9
LOCATE 6, 3
PRINT " PUISSANCE ft Vcbo Vceo Vebo Ic"
LOCATE 7, 3
PRINT "MODELE POL DISSIPEE MHz V V V max hfe BOITIER"
COLOR 14
LOCATE 9, 3
PRINT "2N3O53 NPN 1 W 1OO 6O 4O 5 7OO mA 5O-25O TO39"
COLOR 12
LOCATE 10, 3
PRINT "2N2218A NPN 3 W 25O 75 4O 6 8OO mA 35 TO39"
LOCATE 11, 3
PRINT "2N2219A NPN 3 W 3OO 75 4O 6 8OO mA 35 TO39"
COLOR 14
LOCATE 13, 3
PRINT "2N2222 NPN 5OO mW 25O 6O 3O 5 8OO mA 35 TO18 "
COLOR 12
LOCATE 14, 3
PRINT "2N2222A NPN 1,2 W 3OO 75 4O 6 8OO mA 35 TO18"
LOCATE 15, 3
PRINT "2N2369A NPN 1,2 W 5OO 4O 15 4,5 2OO mA 4O TO18"
COLOR 6
LOCATE 17, 3
PRINT "MPS29O7 PNP 625 mW 2OO 6O 4O 5 6OO mA 5O TO92"
COLOR 4
LOCATE 18, 3
PRINT "2N29O4A PNP 3 W 2OO 6O 6O 5 6OO mA 4O TO39"
LINE (3, 70)-(3, 292), 9: LINE (636, 70)-(636, 292), 9
LINE (94, 70)-(94, 292), 9: LINE (134, 70)-(134, 292), 9
LINE (220, 70)-(220, 292), 9: LINE (266, 70)-(266, 292), 9
LINE (318, 70)-(318, 292), 9: LINE (365, 70)-(365, 292), 9
LINE (412, 70)-(412, 292), 9: LINE (478, 70)-(478, 292), 9
LINE (549, 70)-(549, 292), 9
'LINE (3, 70)-(636, 70), 9: LINE (3, 119)-(636, 119), 9
LINE (3, 70)-(636, 119), 9, B
'LINE (3, 183)-(636, 183), 9: LINE (3, 244)-(636, 244), 9
LINE (3, 183)-(636, 244), 9, B
LINE (3, 292)-(636, 292), 9
COLOR 14: LOCATE 20, 3: PRINT "En jaune ou brun : modèle de référence."
COLOR 12: LOCATE 21, 3
PRINT "En rouge : modèle similaire, dont les caractéristiques sont suffisamment"
LOCATE 22, 3
PRINT " proches du modèle de référence correspondant pour permettre de"
LOCATE 23, 3
PRINT " les substituer l'un à l'autre dans une application courante."
AttEX: GOSUB RoutineAtt: GOSUB TestChoix: GOTO AttEX: END
'................................................................
brochage: LINE (3, 61)-(636, 476), 0, BF: COLOR 11
COLOR 14: LOCATE 6, 30: PRINT "TRANSISTORS BIPOLAIRES"
c = 11: LINE (150, 115)-(125, 155), c: LINE -(125, 175), 11: LINE -(150, 215), c
LINE -(166, 215), c: LINE -(191, 170), c: LINE -(191, 155), c
LINE -(166, 115), c: LINE -(150, 115), c
CIRCLE (158, 165), 27, c: CIRCLE (145, 169), 2, c: CIRCLE (171, 169), 2, c
CIRCLE (158, 125), 3, c: CIRCLE (158, 205), 3, c
c = 14: y = 158: X = 144: GOSUB em: y = 158: X = 170: GOSUB bm
COLOR 3: LOCATE 8, 13: PRINT "TO3"
COLOR 14: LOCATE 15, 15: PRINT "c = boîtier"
'...................................................... TO18
c = 11: CIRCLE (320, 165), 30, c: PSET (345, 185), c
DRAW "F6 G5 H6"
CIRCLE (320, 149), 2, c: CIRCLE (320, 181), 2, c: CIRCLE (304, 165), 2, c
c = 14: X = 330: y = 149: GOSUB cm: X = 330: y = 181: GOSUB em:
X = 313: y = 165: GOSUB bm:
COLOR 3: LOCATE 8, 33: PRINT "TO18"
'................................................... TO39
c = 11: CIRCLE (500, 165), 35, c: PSET (531, 182), c
DRAW "F7 G6 H6"
CIRCLE (500, 142), 2, c: CIRCLE (500, 188), 2, c: CIRCLE (477, 165), 2, c
c = 14: X = 508: y = 142: GOSUB cm: X = 508: y = 188: GOSUB em:
X = 484: y = 165: GOSUB bm:
LOCATE 8, 55: PRINT "TO39"
LOCATE 15, 33: PRINT "Vues de dessous"
'.................................................... TO92
c = 7: LINE (144, 320)-(190, 350), c, B
CIRCLE (167, 320), 23, c, (360 * .01745), (180 * .01745), .7
LINE (147, 350)-(148, 400), 7, B
LINE (187, 350)-(186, 400), 7, B
LINE (167, 350)-(168, 400), 7, B
c = 14: y = 415: X = 147: GOSUB cm: X = 167: GOSUB bm: X = 187: GOSUB em
COLOR 7: LOCATE 20, 13: PRINT "TO92"
'.................................................... TO220
c = 7: LINE (295, 280)-(345, 310), c, B: LINE (295, 311)-(345, 350), c, B
CIRCLE (320, 292), 10, c
CIRCLE (295, 295), 5, 0: PAINT (295, 295), 0, 0
CIRCLE (295, 295), 5, 7, (270 * .01745), (90 * .01745)
CIRCLE (345, 295), 5, 0: PAINT (345, 295), 0, 0
CIRCLE (345, 295), 5, 7, (90 * .01745), (270 * .01745)
A = 350: B = 370: f = 400
LINE (300, A)-(304, B), c, BF: LINE (302, B)-(303, f), c, B
LINE (340, A)-(336, B), c, BF: LINE (338, B)-(337, f), c, BF
LINE (318, A)-(322, B), c, BF: LINE (320, B)-(321, f), c, BF
c = 14: y = 415: X = 302: GOSUB bm: X = 320: GOSUB cm: X = 338: GOSUB em
LOCATE 18, 32: PRINT "TO22O"
'.................................................. TO220AB2
c = 7: LINE (495, 280)-(545, 310), c, B: LINE (495, 311)-(545, 350), c, B
CIRCLE (520, 292), 10, c: A = 350: B = 370: f = 400
LINE (500, A)-(504, B), c, BF: LINE (502, B)-(503, f), c, B
LINE (540, A)-(536, B), c, BF: LINE (538, B)-(537, f), c, BF
LINE (518, A)-(522, B), c, BF: LINE (520, B)-(521, f), c, BF
c = 14: X = 502: GOSUB bm: X = 520: GOSUB cm: X = 538: GOSUB em
LOCATE 18, 53: PRINT "TO22OAB-2"
LOCATE 28, 35: PRINT "Vues de face"
AttBR: GOSUB RoutineAtt
GOSUB TestChoix
GOTO AttBR: END
'.................................................................
equivalences: LINE (3, 61)-(636, 476), 0, BF
A = 0: aa = 639: BB = 479: GOSUB Barbas
FlchUp1$ = CHR$(0) + CHR$(72): FlchUp2$ = CHR$(0) + CHR$(73)
FlchDw1$ = CHR$(0) + CHR$(80): FlchDw2$ = CHR$(0) + CHR$(81)
COLOR 9
LOCATE 6, 3
PRINT "MODELE similaire à MODELE similaire à MODELE similaire à"
RESTORE EquivData: LireEquiv 1, 2, 3
LINE (202, 82)-(202, 450), 9: LINE (412, 82)-(412, 450), 9
AttEQ: GOSUB RoutineAtt: GOSUB TestChoixEQ: GOTO AttEQ: END
equivalences2: LINE (6, 104)-(635, 450), 0, BF
A = 0: aa = 639: BB = 479: GOSUB Barbas: GOSUB Barbas2
RESTORE EquivData2: LireEquiv 1, 2, 3
LINE (202, 82)-(202, 450), 9: LINE (412, 82)-(412, 450), 9
AttEQ2: GOSUB RoutineAtt: GOSUB TestChoixEQ2: GOTO AttEQ2: END
equivalences3: LINE (6, 104)-(635, 450), 0, BF
RESTORE EquivData3: LireEquiv 1, 2, 3
LINE (202, 82)-(202, 450), 9: LINE (412, 82)-(412, 450), 9
AttEQ3: GOSUB RoutineAtt: GOSUB TestChoixEQ3: GOTO AttEQ3: END
equivalences4: LINE (6, 104)-(635, 450), 0, BF
RESTORE EquivData4: LireEquiv 1, 2, 3
LINE (202, 82)-(202, 450), 9: LINE (412, 82)-(412, 450), 9
AttEQ4: GOSUB RoutineAtt: GOSUB TestChoixEQ4: GOTO AttEQ4: END
equivalences5: LINE (6, 104)-(635, 450), 0, BF
RESTORE EquivData5: LireEquiv 1, 2, 3
LINE (202, 82)-(202, 450), 9: LINE (412, 82)-(412, 450), 9
AttEQ5: GOSUB RoutineAtt: GOSUB TestChoixEQ5: GOTO AttEQ5: END
equivalences6: LINE (6, 104)-(635, 450), 0, BF
RESTORE EquivData6: LireEquiv 1, 2, 3
LINE (202, 82)-(202, 450), 9: LINE (412, 82)-(412, 450), 9
AttEQ6: GOSUB RoutineAtt: GOSUB TestChoixEQ6: GOTO AttEQ6: END
equivalences7: LINE (6, 104)-(635, 450), 0, BF
RESTORE EquivData7: LireEquiv 1, 2, 3
LINE (202, 82)-(202, 450), 9: LINE (412, 82)-(412, 450), 9
AttEQ7: GOSUB RoutineAtt: GOSUB TestChoixEQ7: GOTO AttEQ7: END
REM
TestChoix:
IF B% = 1 THEN GOSUB TestMouse
IF f$ = "Q" THEN GOTO Dtbook
IF f$ = "R" THEN GOTO references
IF f$ = "B" THEN GOTO brochage
IF f$ = "X" THEN GOTO exemples
IF f$ = "E" THEN GOTO equivalences
RETURN
TestMouse:
IF y% > 25 AND y% < 54 THEN GOSUB TestIcon
RETURN
TestIcon:
IF X% > 25 AND X% < 117 THEN GOTO references
IF X% > 131 AND X% < 235 THEN GOTO equivalences
IF X% > 246 AND X% < 327 THEN GOTO brochage
IF X% > 341 AND X% < 414 THEN GOTO exemples
IF X% > 530 AND X% < 540 THEN GOTO Dtbook
RETURN
TestChoixEQ:
GOSUB TestChoix
IF f$ = FlchDw1$ OR f$ = FlchDw2$ THEN GOTO equivalences2
IF y% < 455 THEN RETURN
IF X% > 614 AND X% < 634 THEN GOTO equivalences2
RETURN
TestChoixEQ2:
GOSUB TestChoix
IF f$ = FlchUp1$ OR f$ = FlchUp2$ THEN GOTO equivalences
IF f$ = FlchDw1$ OR f$ = FlchDw2$ THEN GOTO equivalences3
IF y% < 455 THEN RETURN
IF X% > 5 AND X% < 25 THEN GOTO equivalences
IF X% > 614 AND X% < 634 THEN GOTO equivalences3
RETURN
TestChoixEQ3:
GOSUB TestChoix
IF f$ = FlchUp1$ OR f$ = FlchUp2$ THEN RESTORE EquivData2: GOTO equivalences2
IF f$ = FlchDw1$ OR f$ = FlchDw2$ THEN GOTO equivalences4
IF y% < 455 THEN RETURN
IF X% > 5 AND X% < 25 THEN RESTORE EquivData2: GOTO equivalences2
IF X% > 614 AND X% < 634 THEN GOTO equivalences4
RETURN
TestChoixEQ4:
GOSUB TestChoix
IF f$ = FlchUp1$ OR f$ = FlchUp2$ THEN RESTORE EquivData3: GOTO equivalences3
IF f$ = FlchDw1$ OR f$ = FlchDw2$ THEN GOTO equivalences5
IF y% < 455 THEN RETURN
IF X% > 5 AND X% < 25 THEN RESTORE EquivData3: GOTO equivalences3
IF X% > 614 AND X% < 634 THEN GOTO equivalences5
RETURN
TestChoixEQ5:
GOSUB TestChoix
IF f$ = FlchUp1$ OR f$ = FlchUp2$ THEN RESTORE EquivData4: GOTO equivalences4
IF f$ = FlchDw1$ OR f$ = FlchDw2$ THEN GOTO equivalences6
IF y% < 455 THEN RETURN
IF X% > 5 AND X% < 25 THEN RESTORE EquivData4: GOTO equivalences4
IF X% > 614 AND X% < 634 THEN GOTO equivalences6
RETURN
TestChoixEQ6:
GOSUB TestChoix
IF f$ = FlchUp1$ OR f$ = FlchUp2$ THEN RESTORE EquivData5: GOTO equivalences5
IF f$ = FlchDw1$ OR f$ = FlchDw2$ THEN GOTO equivalences7
IF y% < 455 THEN RETURN
IF X% > 5 AND X% < 25 THEN RESTORE EquivData5: GOTO equivalences5
IF X% > 614 AND X% < 634 THEN GOTO equivalences7
RETURN
TestChoixEQ7:
GOSUB TestChoix
IF f$ = FlchUp1$ OR f$ = FlchUp2$ THEN RESTORE EquivData6: GOTO equivalences6
IF f$ = FlchDw1$ OR f$ = FlchDw2$ THEN GOTO equivalences
IF y% < 455 THEN RETURN
IF X% > 5 AND X% < 25 THEN RESTORE EquivData6: GOTO equivalences6
IF X% > 614 AND X% < 634 THEN GOTO equivalences
RETURN
'..............................................................
Dtbook: LINE (3, 61)-(636, 476), 0, BF: COLOR 15: Mouse 0
CHAIN "minilab\dtbook.bas"
'..............................................................
RoutineAtt: Mouse 1
DO: GetMouse: f$ = INKEY$: f$ = UCASE$(f$)
LOOP UNTIL B% <> BX% OR LEN(f$)
Mouse 0: RETURN
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Barbas: LINE (A + 6, BB - 23)-(aa - 6, BB - 6), 0, B
LINE (A + 7, BB - 22)-(aa - 7, BB - 7), 7, BF
LINE (aa - 7, BB - 22)-(aa - 24, BB - 22), 15: LINE -(aa - 24, BB - 7), 15
LINE -(aa - 7, BB - 7), 8: LINE -(aa - 7, BB - 22), 8
LINE (aa - 12, BB - 18)-(aa - 20, BB - 18), 0: LINE -(aa - 16, BB - 11), 0
LINE -(aa - 12, BB - 18), 0: PAINT (aa - 16, BB - 15), 0, 0: RETURN
Barbas2: LINE (A + 7, BB - 22)-(A + 24, BB - 22), 15: LINE -(A + 24, BB - 7), 8
LINE -(A + 7, BB - 7), 8: LINE -(A + 7, BB - 22), 15
LINE (A + 12, BB - 11)-(A + 20, BB - 11), 0: LINE -(A + 16, BB - 18), 0
LINE -(A + 12, BB - 11), 0: PAINT (A + 16, BB - 15), 0, 0: RETURN
REM ========================================================================
bm: y = y + 1: FOR V = y - 5 TO y + 3: PSET (X - 2, V), c: NEXT V
FOR V = y - 2 TO y + 2: PSET (X + 2, V), c: NEXT V
FOR h = X - 1 TO X + 1: PSET (h, y + 3), c: NEXT h
FOR h = X - 1 TO X + 1: PSET (h, y - 3), c: NEXT h: RETURN
cm: FOR h = X - 1 TO X + 1: PSET (h, y - 3), c: NEXT h
PSET (X - 2, y - 2), c: PSET (X + 2, y - 2), c
FOR V = y - 1 TO y + 1: PSET (X - 2, V), c: NEXT V
PSET (X - 2, y + 2), c: PSET (X + 2, y + 2), c
FOR h = X - 1 TO X + 1: PSET (h, y + 3), c: NEXT h: RETURN
em: FOR h = X - 1 TO X + 1: PSET (h, y - 3), c: NEXT h
PSET (X - 2, y - 2), c: PSET (X + 2, y - 2), c
PSET (X - 2, y - 1), c: PSET (X + 2, y - 1), c
FOR h = X - 2 TO X + 1: PSET (h, y), c: NEXT h: PSET (X - 2, y + 1), c
PSET (X - 2, y + 2), c: PSET (X + 2, y + 2), c
FOR h = X - 1 TO X + 1: PSET (h, y + 3), c: NEXT h: y = y + 1: RETURN
REM +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
TraiteErreur: BEEP: Mouse 0
A = 100: aa = 540: B = 150: BB = 320: LINE (A, B)-(aa, BB), 0, BF
LINE (A, B)-(aa, BB), 12, B: LINE (A, B + 30)-(aa, B + 30), 12, B
COLOR 12: LOCATE 11, 38: PRINT "ERREUR"
CodErr$ = STR$(ERR): NoCode$ = "Code d'erreur :"
IF ERR < 25 OR ERR = 26 THEN me$ = "Erreur interne au programme"
IF ERR > 28 OR ERR < 53 THEN me$ = "Erreur interne au programme"
IF ERR = 25 THEN me$ = "Périphérique absent ou éteint"
IF ERR = 27 THEN me$ = "Imprimante : Attente papier..."
IF ERR = 53 THEN me$ = "Fichier absent !"
IF ERR = 57 THEN me$ = "Erreur de périphérique E / S"
IF ERR = 61 THEN me$ = "Disque saturé"
IF ERR = 68 THEN me$ = "Périphérique non disponible"
IF ERR = 75 OR ERR = 76 THEN me$ = "Erreur de chemin d'accès au fichier"
COLOR 12: LOCATE 14, (80 - LEN(me$)) / 2: PRINT me$
COLOR 14: LOCATE 16, (78 - LEN(NoCode$)) / 2: PRINT NoCode$; CodErr$
Message$ = "Appuyez sur une touche pour continuer..."
COLOR 12: LOCATE 18, (80 - LEN(Message$)) / 2: PRINT Message$
SLEEP 2: DO: f$ = INKEY$: LOOP UNTIL LEN(f$)
RESUME Attdebut
'...................................................................
MS.Data:
DATA 55,8b,ec,56,57,8b,76,0c,8b,04,8b,76,0a,8b,1c,8b,76,08,8b,0c
DATA 8b,76,06,8b,14,cd,21,8b,76,0c,89,04,8b,76,0a,89,1c,8b,76,08,89,0c
DATA 8b,76,06,89,14,5f,5e,5d,ca,08,00,#
'....................................................
EquivData:
DATA 2N431,2N2222, 2N432,2N2222, 2N433,2N2222
DATA 2N47O,2N2222, 2N475,2N2222, 2N48O,2N2222
DATA 2N48OB,2N3O53,2N497,2N3O53, 2N498,2N3O53
DATA 2N545,2N3O53, 2N549,2N3O53, 2N696,2N2222
DATA 2N696A,2N3O53,2N696S,2N3O53,2N697,2N3O53
DATA 2N699,2N3O53, 2N699A,2N3O53,2N697A,2N3O53
DATA 2N76O,2N2222, 2N762,2N2222, 2N77O,2N2222
DATA 2N772,2N2222, 2N774,2N2222, 2N776,2N2222
DATA 2N78O,2N2222, 2N783,2N2222, 2N784,2N2222
DATA 2N858,MPS29O7,2N859,MPS29O7,2N86O,MPS29O7
DATA 2N861,MPS29O7,2N864,MPS29O7,2N866,2N2222
DATA 2N913,2N2222, 2N914,2N2222, 2N915,2N2222
DATA 2N916,2N2222, 2N916A,2N2222,2N917,MPS39O4
DATA 2N918,MPS39O4,2N919,2N2222, 2N929,2N2222
DATA 2N929A,2N2222,2N93O,2N2222, 2N93OA,2N2222
DATA 2N93OB,2N2222,2N935,MPS29O7,2N935A,MPS29O7
DATA 2N936,MPS29O7,2N936A,MPS29O7,2N937,MPS29O7
DATA 2N946A,MPS29O7,2N947,2N2222,2N1O25,MPS29O4
DATA 2N1O26,MPS29O4,2N1O27,MPS29O4,2N1O47,TIP3O55
DATA 2N1O48,TIP3O55,2N1O49,TIP3O55,2N1O51,2N3O53
DATA 2N1O55,2N3O53, 2N1118,MPS29O4,2N1118A,MPS29O4
EquivData2:
DATA 2N1119,MPS29O4,2N1119A,MPS29O4,2N1131,MPS29O4
DATA 2N1131A,MPS29O4, 2N1132,MPS29O4, 2N1132A,MPS29O4
DATA 2N1135,MPS29O4, 2N1135A,MPS29O4, 2N1118,MPS29O4
DATA 2N1248,2N2222, 2N1249,2N2222, 2N1252,2N2222
DATA 2N1253,2N2222, 2N1267,2N2222, 2N127O,2N2222
DATA 2N1272,2N2222, 2N1276,2N2222, 2N1278,2N2222
DATA 2N1386,2N2222, 2N1388,2N2222, 2N139O,2N2222
DATA 2N14O9,2N2222, 2N1428,MPS29O7,2N1439,MPS29O7
DATA 2N1441,MPS29O7, 2N1443,MPS29O7, 2N1444,2N3O53
DATA 2N1472,2N3O53, 2N1472,MPS29O7, 2N1474,MPS29O7
DATA 2N1476,MPS29O7, 2N1477,MPS29O7, 2N1487,2N3O55
DATA 2N1489,2N3O55, 2N15O5,2N2222, 2N15O6,2N2222
DATA 2N1587,MPS2222A, 2N1588,MPS2222A, 2N1593,MPS2222A
DATA 2N1594,MPS2222A, 2N1613,2N3O53, 2N1613A,2N2222
DATA 2N1613B,2N2222, 2N1711,2N3O53, 2N1711A,2N3O53
DATA 2N1711B,2N3O53, 2N189OS,2N3O53, 2N1893S,2N3O53
DATA 2N1944,2N2222, 2N1946,2N2222, 2N1948,2N2222
DATA 2N195O,2N2222, 2N1962,2N2222, 2N1964,2N2222
DATA 2N1965,2N2222, 2N1952,2N2222, 2N21O2,2N3O53
DATA 2N21O2A,2N3O53, 2N21O2S,2N3O53, 2N21O4,MPS29O7
DATA 2N21O5,MPS29O7, 2N2218,2N3O53, 2N2218A,2N3O53
EquivData3:
DATA 2N2218S,2N2222, 2N2219,2N3O53, 2N2219A,2N3O53
DATA 2N2222,2N2222, 2N2222A,2N2222, 2N2324,2N2222
DATA 2N2369,2N2222, 2N2645,2N2222, 2N2651,2N2222
DATA 2N29O5,MPS29O7, 2N29O6,MPS29O7, 2N29O6A,MPS29O7
DATA 2N29O7,MPS29O7, 2N29O7A,MPS29O7, 2N3O13,2N2222
DATA 2N3O14,2N2222, 2N3O15,2N2222, 2N3O2O,2N3O53
DATA 2N3O53,2N3O53, 2N3O55,2N3O55, 2N3415,2N2222
DATA 2N3744,TIP3O55, 2N3745,TIP3O55, 2N3747,TIP3O55
DATA 2N3748,TIP3O55, 2N3789,MJ2955, 2N379O,MJ2955
DATA 2N3791,MJ2955, 2N3818,TIP3O55, 2N3825,MPS2222A
DATA 2N3826,MPS2222A, 2N3827,MPS2222A, 2N3828,MPS2222A
DATA 2N3829,MPS29O7,2N39O3,MPS2222A, 2N39O4,MPS2222A
DATA 2N39O5,MPS29O7, 2N39O6,2N39O6, 2N44O2,MPS29O7
DATA 2N44O3,MPS29O7, 2N4411,MPS29O7, 2N4413,MPS29O7
DATA 2N4413A,MPS29O7, 2N4415,MPS29O7, 2N4415A,MPS29O7
DATA 2N49O1,MJ2955, 2N49O2,MJ2955, 2N49O3,MJ2955
DATA 2N49O4,MJ2955, 2N49O5,MJ2955, 2N49O6,MJ2955
DATA 2N49O7,MJ2955, 2N49O8,MJ2955, 2N49O9,MJ2955
DATA 2N5293,TIP3O55, 2N5294,TIP3O55, 2N5295,TIP3O55
DATA 2N5296,TIP3O55, 2N5297,TIP3O55, 2N5298,TIP3O55
DATA 2N53OO,2N3O53, 2N53O9,MPS2222A, 2N531O,MPS2222A
EquivData4:
DATA 2N5447,MPS29O7, 2N5448,MPS29O7, 2N545O,2N3O53
DATA 2N5451,2N3O53, 2N56O8,TIP31, 2N561O,TIP31
DATA 2N5612,TIP31, 2N5637,TIP3O55, 2N5681,2N3O53
DATA 2N5688,TIP31, 2N5699,TIP31, 2N61O1,TIP3O55
DATA 2N61O2,TIP3O55, 2N61O3,TIP3O55, 2N6288,TIP3O55
DATA 2N6289,TIP3O55, 2N629O,TIP3O55, 2N6291,TIP3O55
DATA 2N6292,TIP3O55, 2N6293,TIP3O55, 2SA6O3,MPS29O7
DATA 2SA6O3A,MPS29O7, 2SA6O3Y,MPS29O7, 2SA6O8,MPS29O7
DATA 2SA6O8A,MPS29O7, 2SA6O8Y,MPS29O7, 2SA6O9,MPS29O7
DATA 2SA6O9A,MPS29O7, 2SA6O9Y,MPS29O7, 2SA61O,MPS29O7
DATA 2SA62O,MPS29O7, 2SA628,MPS29O7, 2SA628A,MPS29O7
DATA 2SA628Y,MPS29O7, 2SA629,MPS29O7, 2SA629A,MPS29O7
DATA 2SA629Y,MPS29O7, 2SA64O,MPS29O7, 2SA64OA,MPS29O7
DATA 2SA64OM,MPS29O7, 2SA666,MPS29O7, 2SA666A,MPS29O7
DATA 2SA666Y,MPS29O7, 2SA67O,MJE34, 2SA67OA,MJE34
DATA 2SA67OC,MJE34, 2SA672,MPS29O7, 2SA685,MPS29O7
DATA 2SA693,MPS29O7, 2SA7OO,MJE34, 2SA7OOY,MJE34
DATA 2SA7O1,MPS29O7, 2SA7O2,MPS29O7, 2SA7O4,MPS29O7
DATA 2SA7O5,MPS29O7, 2SA7O9,MPS29O7, 2SA714,MPS29O7
DATA 2SA718,MPS29O7, 2SA719,MPS29O7, 2SA72O,MPS29O7
DATA 2SA721,MPS29O7, 2SA725,MPS29O7, 2SA728,MPS29O7
EquivData5:
DATA 2SA733,MPS29O7, 2SA744,MJ2955, 2SA745,MJ2955
DATA 2SA746,MJ2955, 2SA747,MJ2955, 2SA75O,MPS29O7
DATA 2SA753,MPS29O7, 2SA755,MJE34, 2SA76O,MPS29O7
DATA 2SA767,MPS29O7, 2SA768,MJE34, 2SA777,MPS29O7
DATA 2SA786,MPS29O7, 2SA798,MPS29O7, 2SA811,MPS29O7
DATA 2SA812,MPS29O7, 2SA825,MPS29O7, 2SA826,MPS29O7
DATA 2SA836,MPS29O7, 2SA844,MPS29O7, 2SA854,MPS29O7
DATA 2SA854QZ,MPS29O7, 2SA876HA,MPS29O7, 2SA882,MJ2955
DATA 2SA89O,MPS29O7, 2SA9O1,MPS29O7, 2SA924,MPS29O7
DATA 2SA929,MPS29O7, 2SA933,MPS29O7, 2SA933AQ,MPS29O7
DATA 2SA933LN,MPS29O7, 2SA933QY,MPS29O7, 2SA933SSK,MPS29O7
DATA 2SA937,MPS29O7, 2SA937RZ,MPS29O7, 2SA937S,MPS29O7
DATA 2SA95O,MPS29O7, 2SA95OY,MPS29O7, 2SA952,MPS29O7
DATA 2SA952ML2,MPS29O7, 2SA97O,MPS29O7, 2SA98O,MJ2955
DATA 2SA981,MJ2955, 2SA982,MJ2955, 2SA984,MPS29O7
DATA 2SA984KE,MPS29O7, 2SA99O,MPS29O7, 2SA1OO1,MJ2955
DATA 2SA1OO2,MJ2955, 2SA1OO5,MPS29O7, 2SA1O12,MJE34
DATA 2SA1O12Y,MJE34, 2SA1O15,MPS29O7, 2SA1O15-O,MPS29O7
DATA 2SA1O15-Y,MPS29O7, 2SA1O15G,MPS29O7, 2SA1O16,MPS29O7
DATA 2SA1O27,MPS29O7, 2SA1O4O,MPS29O7, 2SA1O82,MPS29O7
DATA 2SA11OO,MPS29O7, 2SA1115,MPS29O7, 2SA1175,MPS29O7
EquivData6:
DATA 2SA1198,MPS29O7, 2SA1211,MPS29O7, 2SA1218,MPS29O7
DATA 2SA1246,MPS29O7, 2SA1246T,MPS29O7, 2SA495O,MPS29O7
DATA 2SA561O,MPS29O7, 2SANJ1O1,MPS29O7, 2SB434,MJE34
DATA 2SB434R,MJE34, 2SB435,MJE34, 2SB435Y,MJE34
DATA 2SB5O7,MJE34, 2SB511,MJE34, 2SB512,MJE34
DATA 2SB513,MJE34, 2SB515,MJE34, 2SB52O,MPS2955
DATA 2SB53O,MPS2955, 2SB555,MPS2955, 2SB558,MPS2955
DATA 2SB611,MPS2955, 2SB641,MPS29O7, 2SB641T,MPS29O7
DATA 2SB642,MPS29O7, 2SB642S,MPS29O7, 2SB643,MPS29O7
DATA 2SB644,MPS29O7,2SB644S,MPS29O7, 2SB744,MPS29O7
DATA 2SB744S,MPS29O7, 2SB774,MPS29O7, 2SB1134,MJE34
DATA 2SB1135,MJE34, 2SB1274,MJE34, 2SC12,2N3O53
DATA 2SC12Y,2N3O53, 2SC15,2N2222, 2SC15Y,2N2222
DATA 2SC16,2N2222, 2SC16Y,2N2222, 2SC17,2N2222
DATA 2SC17Y,2N2222, 2SC18A,2N2222, 2SC19,2N3O53
DATA 2SC19Y,2N3O53, 2SC2O,2N3O53, 2SC2OY,2N3O53
DATA 2SC21,2N3O55,2SC21Y,2N3O55, 2SC3O,2N3O53
DATA 2SC38,2N2222, 2SC45,2N2222, 2SC51,2N3O53
DATA 2SC64,2N3O53, 2SC79,2N44O1, 2SC97,2N3O53
DATA 2SC1O9,2N3O53, 2SC13O,2N3O53, 2SC155,MPS39O4
DATA 2SC187,MPS39O4, 2SC2O6,MPS39O4, 2SC25O,2N2222
EquivData7:
DATA 2SC286,MPS39O4, 2SC286Y,MPS39O4, 2SC3O6,2N3O53
DATA 2SC323,2N2222, 2SC379,MPS2222A, 2SC4O1,MPS2222A
DATA 2SC445,MPS2222A, 2SC5O9,MPS2222A, 2SC536,MPS2222A
DATA 2SC619,MPS2222A, 2SC629,2N44O1, 2SC65O,MPS2222A
DATA 2SC711,MPS2222A, 2SC784,2N44O1, 2SC828,MPS2222A
DATA 2SC9OO,MPS39O4, 2SC929,MPS39O4, 2SC988,MPS39O4
DATA 2SC1O3O,2N3O55, 2SC1O6O,TIP3O55, 2SC1O61,TIP3O55
DATA 2SC121O,MPS2222A, 2SC1317,MPS2222A, 2SC1318,MPS2222A
DATA 2SC1327,MPS39O4, 2SC1335,MPS39O4, 2SC1344,MPS39O4
DATA 2SC1417,MPS39O4, 2SC1537,MPS39O4, 2SC1538,MPS39O4
DATA 2SC157O,MPS39O4, 2SC1622,MPS39O4, 2SC1643,MPS2222A
DATA 2SC1684,MPS2222A, 2SC174O,MPS2222A, 2SC174OSSX,MPS2222A
DATA 2SC1815,MPS2222A, 2SC1826,TIP3O55, 2SC2OOO,MPS2222A
DATA 2SC2O58,MPS2222A, 2SC21O7,MPS2222A, 2SC2274,MPS2222A
DATA 2SC2362,MPS39O4, 2SC2634,MPS39O4, 2SC2724,MPS2222A
DATA 2SC2785,MPS2222A, 2SC2839,MPS2222A, 2SC3OOO,MPS2222A
DATA 2SC3179,TIP3O55, 2SC3255,TIP3O55, 2SC3299,TIP3O55
DATA 2SC372O,2N44O1, 2SC38OO,2N44O1, 2SC394O,2N44O1
DATA 2SC4O33,2N44O1, 2SC4116,TIP3O55, 2SC4116Y,TIP3O55
DATA BC1O7,2N2222, BC1O7A,2N2222, BC1O8,2N2222
DATA BC1O8A,2N2222,BC1O9,2N2222,BC1O9BP,MPS2222A
'EquivData8
DEFSNG A-Z
SUB GetMouse
R% = Interr%(&H33, 3, BX%, CX%, DX%)
B% = BX%: X% = CX%: y% = DX%
END SUB
FUNCTION Interr% (Num%, AX%, BX%, CX%, DX%)
IF MS%(0) = 0 THEN SYSTEM
DEF SEG = VARSEG(MS%(0))
POKE VARPTR(MS%(0)) + 26, Num%
CALL ABSOLUTE(AX%, BX%, CX%, DX%, VARPTR(MS%(0)))
Interr% = AX%
END FUNCTION
SUB LireEquiv (p%, d%, t%)
'p%=premiere colonne ; d%=deuxième col.; t%=troisième col.
'3 lectures = 3 paquets de mots
'63 entrées par page = 3 X 21
FOR mot = p% TO p% + 20: READ Model$, Eq$
COLOR 14: LOCATE 7 + (mot - p% + 1), 3: PRINT Model$
COLOR 10: LOCATE 7 + (mot - p% + 1), 15: PRINT Eq$: NEXT mot
FOR mot = d% TO d% + 20: READ Model$, Eq$
COLOR 14: LOCATE 7 + (mot - d% + 1), 30: PRINT Model$
COLOR 10: LOCATE 7 + (mot - d% + 1), 42: PRINT Eq$: NEXT mot
FOR mot = t% TO t% + 20: READ Model$, Eq$
COLOR 14: LOCATE 7 + (mot - t% + 1), 56: PRINT Model$
COLOR 10: LOCATE 7 + (mot - t% + 1), 68: PRINT Eq$: NEXT mot
END SUB
SUB Mouse (OnOff%)
IF OnOff% = 0 THEN OnOff% = 2 ELSE OnOff% = 1
R% = Interr%(&H33, OnOff%, BX%, CX%, DX%)
END SUB
SUB ReadData
RESTORE MS.Data
DEF SEG = VARSEG(MS%(0))
FOR I% = 0 TO 99
READ Byte$
IF Byte$ = "#" THEN EXIT FOR
POKE VARPTR(MS%(0)) + I%, VAL("&H" + Byte$)
NEXT I%
END SUB
SUB ResetMouse
R% = Interr%(&H33, 0, BX%, CX%, DX%)
R% = Interr%(&H33, 1, BX%, CX%, DX%)
R% = Interr%(&H33, 15, BX%, 5, 5)
END SUB