home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 12
/
CD_ASCQ_12_0294.iso
/
maj
/
2364
/
minilab
/
dtbook.bas
< prev
next >
Wrap
BASIC Source File
|
1994-02-15
|
22KB
|
475 lines
REM W. Prévost 1993 : MINILAB: Module DATABOOK
DECLARE SUB IconScope (a, b)
DECLARE SUB IconGraf (a, b)
DECLARE SUB IconSchema (a, b)
DECLARE SUB IconDataBook (a, b)
DECLARE SUB Mouse (OnOff%)
DECLARE SUB MouseSpeed (Curseur%)
DECLARE SUB ResetMouse ()
DECLARE SUB GetMouse ()
DECLARE SUB ReadData ()
DECLARE FUNCTION Interr% (Num%, AX%, BX%, CX%, DX%)
DIM SHARED MS%(45)
CLEAR
ReadData
DIM SHARED a, b, x%, y%, b%
ON ERROR GOTO TraiteErreur
DEFINT A-Z: SCREEN 12
OPEN "Minilab\SETUP.INI" FOR INPUT AS #1
SEEK #1, 1
INPUT #1, CoulBarreTitre, CoulLettresTitre, CoulZoneTravail
INPUT #1, VitesseSouris, ClickDelay
CLOSE #1
Curseur% = VitesseSouris
debut: COLOR 15
LINE (3, 3)-(636, 28), CoulBarreTitre, BF
LINE (3, 106)-(636, 476), CoulZoneTravail, BF
LINE (3, 29)-(636, 29), 15
C = CoulLettresTitre: x = 30: y = 14: GOSUB minilab: x = 31: GOSUB minilab
x = 282: GOSUB dbook: x = 283: GOSUB dbook
LINE (3, 31)-(636, 60), 7, BF: LINE (0, 61)-(639, 105), 15, BF
LINE (3, 59)-(636, 59), 15: LINE (3, 103)-(636, 103), 7
LINE (0, 0)-(639, 479), 0, B: LINE (1, 1)-(638, 478), 7, B
LINE (2, 2)-(637, 477), 0, B
C = 4: y = 44: x = 30: GOSUB trt: GOSUB recher: x = 31: GOSUB recher
C = 9: x = 172: GOSUB trt: GOSUB schm: x = 173: GOSUB schm
x = 247: GOSUB trt: GOSUB mem: x = 248: GOSUB mem
x = 294: GOSUB scop: x = 295: GOSUB scop: x = 304: GOSUB trt:
x = 350: GOSUB trt: GOSUB graf: x = 351: GOSUB graf
C = 0: x = 505: GOSUB M: GOSUB E: GOSUB trt: GOSUB N: GOSUB U: x = 506: GOSUB men
x = 556: GOSUB trt: x = 555: GOSUB quit: x = 556: GOSUB quit
IconDataBook 30, 65
a = 30: b = 65: x = a + 29: y = b + 5: C = 4: GOSUB pintr
C = 12: x = a + 28: GOSUB pintr: x = a + 27: GOSUB pintr
IconSchema 80, 65
C = 13: x = 104: y = 87: GOSUB im: y = 88: x = x + 5: GOSUB cm
x = 135: y = 70: GOSUB URI: x = 136: GOSUB URI 'Memo
x = 135: y = 80: GOSUB 707: x = 136: GOSUB 707
y = 90: x = 143: GOSUB PUI: x = 144: GOSUB PUI
IconScope 180, 65
IconGraf 230, 65
a = 280: b = 65: LINE (a, b)-(a + 40, b + 30), 0, B 'Menu
LINE (a + 2, b + 2)-(a + 38, b + 11), 9, BF
x = a + 6: y = 71: C = 15: GOSUB men: x = a + 7: GOSUB men
LINE (a + 2, b + 13)-(a + 38, b + 24), 7, BF
a = 330: b = 65: LINE (a + 1, b + 8)-(a + 23, b + 22), 7, BF 'Quitter
LINE (a + 24, b + 4)-(a + 24, b + 26), 7
LINE -(a + 35, b + 15), 7: LINE -(a + 24, b + 4), 7
PAINT (a + 26, b + 15), 7, 7
LINE (a, b + 8)-(a, b + 23), 0: LINE -(a + 23, b + 23), 0
LINE -(a + 23, b + 27), 0: LINE (a + 23, b + 4)-(a + 23, b + 7), 0
x = a + 5: y = b + 16: GOSUB Sod: x = a + 6: GOSUB Sod
AttChoix: ResetMouse: MouseSpeed Curseur%
DO: GetMouse: F$ = INKEY$: F$ = UCASE$(F$): LOOP UNTIL b% <> BX% OR LEN(F$)
Mouse 0
IF b% = 1 THEN GOSUB TestMouse
IF F$ = "R" THEN GOTO liste
IF F$ = "C" THEN GOTO Scope
IF F$ = "G" THEN GOTO Graphe
IF F$ = "S" THEN GOTO Schemas
IF F$ = "M" THEN GOTO Memo
IF F$ = "N" THEN GOTO Menu
IF F$ = "Q" THEN GOTO RetourDos
GOTO AttChoix: END
'_________________________________________________________________________
liste: a = 180: aa = 460: b = 150: bb = 385: cf = 7: GOSUB boite
FOR I = 20 TO 200 STEP 40
LINE (a + 20, b + I)-(aa - 20, b + I + 30), 0, B
LINE (aa - 20, b + I)-(aa - 20, b + I + 30), 15
LINE -(a + 20, b + I + 30), 15: NEXT I
LINE (a, b - 20)-(aa, bb), 0, B
LINE (a + 1, b - 19)-(aa - 1, b - 1), 4, BF
x = a + 60: y = b - 10: C = 15: GOSUB Typecompo: x = a + 61: GOSUB Typecompo
C = 0: y = b + 36: x = a + 30: GOSUB CIC: x = a + 178: GOSUB trt
C = 0: y = b + 76: x = a + 30: GOSUB CIL: x = a + 178: GOSUB trt
C = 0: y = b + 116: x = a + 30: GOSUB trt: GOSUB regul
C = 0: y = b + 156: x = a + 30: GOSUB trt: GOSUB transistor
ChoixType: Mouse 1
DO
GetMouse
F$ = INKEY$: F$ = UCASE$(F$)
LOOP UNTIL b% <> BX% OR LEN(F$)
IF b% = 1 THEN GOSUB TestType
Mouse 0
IF F$ = "C" THEN GOTO cmos
IF F$ = "L" THEN GOTO lineaire
IF F$ = "R" THEN GOTO regulat
IF F$ = "T" THEN GOTO transist
LINE (170, 130)-(460, 390), CoulZoneTravail, BF: GOTO AttChoix 'efface
GOTO ChoixType: END
REM ................................................................
cmos: GOSUB interf1: GOSUB charge: CHAIN "minilab\cicmos.bas"
lineaire: GOSUB interf2: GOSUB charge: CHAIN "minilab\ciliner.bas"
regulat: GOSUB interf3: GOSUB charge: CHAIN "minilab\regulat.bas"
transist: GOSUB interf4: GOSUB charge: CHAIN "minilab\transist.bas"
Scope: GOSUB charge: CHAIN "minilab\scope2.bas"
Graphe: GOSUB charge: CHAIN "minilab\graf.bas"
Menu: GOSUB charge: CHAIN "minilab\minilab2.bas"
Schemas: GOSUB charge: CHAIN "minilab\schemas.bas"
Memo: GOSUB charge: CHAIN "minilab\memo.bas"
REM .................................................................
interf1: GOSUB interf: x = 223: GOSUB CIC: x = 224: GOSUB CIC: RETURN
interf2: GOSUB interf: x = 210: GOSUB CIL: x = 211: GOSUB CIL: RETURN
interf3: GOSUB interf: x = 269: GOSUB regul: x = 270: GOSUB regul: RETURN
interf4: GOSUB interf: x = 269: GOSUB transistor: x = 270: GOSUB transistor
y = 44: C = 4: x = 30: GOSUB trt: GOSUB ref: x = 31: GOSUB ref
x = 135: GOSUB trt: GOSUB equiv: x = 136: GOSUB equiv
x = 250: GOSUB trt: GOSUB broch: x = 251: GOSUB broch
x = 345: GOSUB exemples: x = 346: GOSUB exemples: x = 354: GOSUB trt
RETURN
interf: Mouse 0
LINE (3, 3)-(636, 26), CoulBarreTitre, BF: LINE (3, 29)-(636, 29), 15
LINE (3, 61)-(636, 476), CoulZoneTravail, BF: LINE (3, 31)-(636, 60), 7, BF
LINE (3, 59)-(636, 59), 15
LINE (530, 40)-(540, 50), 0, B
LINE (0, 0)-(639, 479), 0, B: LINE (1, 1)-(638, 478), 7, B
LINE (2, 2)-(637, 477), 0, B
y = 44: C = 0
x = 556: GOSUB trt: x = 555: GOSUB quit: x = 556: GOSUB quit:
C = CoulLettresTitre: x = 25: y = 14: GOSUB dbook: x = 26: GOSUB dbook: RETURN
REM .....................................................................
charge: Mouse 0: a = 200: aa = 440: b = 130: bb = 180: cf = 3: GOSUB box
x = 264: y = 155: C = 0: GOSUB inst: x = 265: GOSUB inst: RETURN
RetourDos: a = 175: aa = 465: b = 150: bb = 200: cf = 12: GOSUB box
x = 200: y = 175: C = 0: GOSUB retdos: x = 201: GOSUB retdos
choix: Mouse 1
DO
GetMouse
F$ = INKEY$: F$ = UCASE$(F$)
LOOP UNTIL b% <> BX% OR LEN(F$)
IF b% = 1 THEN GOSUB Testquit
Mouse 0
IF F$ = "O" THEN SYSTEM
IF F$ = "N" THEN LINE (170, 149)-(470, 201), CoulZoneTravail, BF: GOTO AttChoix
GOTO choix
Testquit: Mouse 0
IF y% < 170 OR y% > 180 THEN RETURN choix
IF x% > 333 AND x% < 345 THEN SYSTEM
IF x% > 390 AND x% < 400 THEN F$ = "N": RETURN
RETURN choix
retdos: GOSUB r: GOSUB E: GOSUB t: GOSUB O: GOSUB U: GOSUB r: x = x + 9
GOSUB a: GOSUB U: x = x + 9: GOSUB D: GOSUB O: GOSUB S: x = x + 3: GOSUB pintr
x = x + 14: LINE (x, 179)-(x + 9, 170), 0, B: x = x + 20
GOSUB trt: GOSUB O: GOSUB U: GOSUB I: x = x + 12
LINE (x, 179)-(x + 9, 170), 0, B: x = x + 20
GOSUB trt: GOSUB N: GOSUB O: GOSUB N: RETURN
box: LINE (a, b)-(aa, bb), 0, B: LINE (a + 5, b + 5)-(aa - 5, bb - 5), 0, B
PAINT (a + 3, b + 10), 7, 0: LINE (a + 6, b + 6)-(aa - 6, bb - 6), cf, BF
LINE (a + 1, b + 1)-(a + 1, bb - 1), 15: LINE -(aa - 1, bb - 1), 15
LINE (a + 35, b)-(a + 35, b + 5), 8: LINE (a + 35, bb - 5)-(a + 35, bb - 1), 8
LINE (aa - 35, b)-(aa - 35, b + 5), 8: LINE (aa - 35, bb - 5)-(aa - 35, bb - 1), 8
LINE (a + 1, b + 35)-(a + 5, b + 35), 8: LINE (a + 1, bb - 35)-(a + 5, bb - 35), 8
LINE (aa, b + 35)-(aa - 5, b + 35), 8: LINE (aa, bb - 35)-(aa - 5, bb - 35), 8
RETURN
7 : FOR H = x - 2 TO x + 3: PSET (H, y - 4), C: NEXT H
PSET (x - 2, y - 3), C: FOR V = y - 4 TO y - 1: PSET (x + 3, V), C: NEXT V
FOR V = y + 2 TO y + 4: PSET (x - 1, V), C: NEXT V
F = x + 2: FOR D = y TO y + 2: PSET (F, D), C: F = F - 1: NEXT D
x = x + 9: RETURN
0 : FOR H = x - 1 TO x + 2: PSET (H, y - 4), C: NEXT H
FOR H = x - 1 TO x + 2: PSET (H, y + 4), C: NEXT H
FOR V = y TO y + 3: PSET (x - 2, V), C: NEXT V
FOR V = y TO y + 3: PSET (x + 3, V), C: NEXT V
FOR V = y - 3 TO y - 1: PSET (x - 2, V), C: NEXT V
FOR V = y - 3 TO y - 1: PSET (x + 3, V), C: NEXT V: x = x + 9: RETURN
egal: FOR H = x - 2 TO x + 3: PSET (H, y - 2), C: NEXT H
FOR H = x - 2 TO x + 3: PSET (H, y + 1), C: NEXT H: x = x + 11: RETURN
a: PSET (x, y - 4), C: PSET (x + 1, y - 4), C
PSET (x - 1, y - 3), C: PSET (x + 2, y - 3), C
FOR vert = y - 2 TO y + 4: PSET (x - 2, vert), C: PSET (x + 3, vert), C: NEXT vert
FOR hor = x - 1 TO x + 2: PSET (hor, y + 1), C: NEXT hor: x = x + 9: RETURN
b: FOR V = y - 4 TO y + 4: PSET (x - 2, V), C: NEXT V 'B
FOR H = x - 1 TO x + 2: PSET (H, y - 4), C: NEXT H
FOR H = x - 1 TO x + 2: PSET (H, y), C: NEXT H
FOR H = x - 1 TO x + 2: PSET (H, y + 4), C: NEXT H
FOR V = y - 3 TO y - 1: PSET (x + 3, V), C: NEXT V
FOR V = y + 1 TO y + 3: PSET (x + 3, V), C: NEXT V: x = x + 9: RETURN
C: PSET (x, y - 4), C: PSET (x + 1, y - 4), C
PSET (x - 1, y - 3), C: PSET (x + 2, y - 3), C
FOR vert = y - 2 TO y + 2: PSET (x - 2, vert), C: NEXT vert
PSET (x + 3, y - 2), C: PSET (x + 3, y + 2), C
PSET (x, y + 4), C: PSET (x + 1, y + 4), C
PSET (x - 1, y + 3), C: PSET (x + 2, y + 3), C: x = x + 9: RETURN
D: FOR vert = y - 4 TO y + 4: PSET (x - 2, vert), C: NEXT vert
FOR hor = x - 1 TO x + 1: PSET (hor, y - 4), C: NEXT hor
PSET (x + 2, y - 3), C
FOR vert = y - 2 TO y + 2: PSET (x + 2, vert), C: NEXT vert
FOR hor = x - 1 TO x + 1: PSET (hor, y + 4), C: NEXT hor
PSET (x + 2, y + 3), C: x = x + 9: RETURN
E: FOR vert = y - 4 TO y + 4: PSET (x - 2, vert), C: NEXT vert
FOR hor = x - 1 TO x + 3: PSET (hor, y - 4), C: NEXT hor
FOR hor = x - 1 TO x + 1: PSET (hor, y), C: NEXT hor
FOR hor = x - 1 TO x + 3: PSET (hor, y + 4), C: NEXT hor: x = x + 9: RETURN
F: FOR vert = y - 4 TO y + 4: PSET (x - 2, vert), C: NEXT vert
FOR hor = x - 1 TO x + 3: PSET (hor, y - 4), C: NEXT hor
FOR hor = x - 1 TO x + 1: PSET (hor, y), C: NEXT hor: x = x + 9: RETURN
G: PSET (x, y - 4), C: PSET (x + 1, y - 4), C
PSET (x - 1, y - 3), C: PSET (x + 2, y - 3), C
FOR vert = y - 2 TO y + 2: PSET (x - 2, vert), C: NEXT vert
PSET (x + 3, y - 2), C: PSET (x + 3, y + 2), C: PSET (x + 3, y + 1), C
PSET (x, y + 4), C: PSET (x + 1, y + 4), C
PSET (x - 1, y + 3), C: PSET (x + 2, y + 3), C
FOR H = x + 1 TO x + 3: PSET (H, y), C: NEXT H: x = x + 9: RETURN
H: FOR vert = y - 4 TO y + 4: PSET (x - 2, vert), C: PSET (x + 3, vert), C: NEXT vert
FOR hor = x - 1 TO x + 2: PSET (hor, y), C: NEXT hor: x = x + 9: RETURN
I: x = x - 2: FOR V = y - 4 TO y + 4: PSET (x, V), C: NEXT V: x = x + 7: RETURN
L: FOR V = y - 4 TO y + 4: PSET (x - 2, V), C: NEXT V
FOR H = x - 1 TO x + 3: PSET (H, y + 4), C: NEXT H: x = x + 9: RETURN
M: FOR V = y - 4 TO y + 4: PSET (x - 3, V), C: NEXT V
FOR V = y - 4 TO y + 4: PSET (x + 3, V), C: NEXT V
PSET (x - 2, y - 3), C: PSET (x - 1, y - 2), C: PSET (x - 1, y - 2), C
PSET (x, y - 1), C
PSET (x + 2, y - 3), C: PSET (x + 1, y - 2), C: PSET (x + 1, y - 2), C
x = x + 9: RETURN
N: FOR V = y - 4 TO y + 4: PSET (x - 3, V), C: NEXT V
FOR V = y - 4 TO y + 4: PSET (x + 3, V), C: NEXT V
V = y - 3: FOR H = x - 2 TO x + 2: PSET (H, V), C: V = V + 1: NEXT H
x = x + 9: RETURN
K: FOR V = y - 4 TO y + 4: PSET (x - 2, V), C: NEXT V
V = y: FOR H = x - 1 TO x + 3: PSET (H, V), C: V = V - 1: NEXT H
V = y: FOR H = x - 1 TO x + 3: PSET (H, V), C: V = V + 1: NEXT H
x = x + 9: RETURN
O: PSET (x, y - 4), C: PSET (x + 1, y - 4), C
PSET (x - 1, y - 3), C: PSET (x + 2, y - 3), C
FOR V = y - 2 TO y + 2: PSET (x - 2, V), C: PSET (x + 3, V), C: NEXT V
PSET (x, y + 4), C: PSET (x + 1, y + 4), C
PSET (x - 1, y + 3), C: PSET (x + 2, y + 3), C: x = x + 9: RETURN
P: FOR V = y - 4 TO y + 4: PSET (x - 2, V), C: NEXT V
FOR H = x - 1 TO x + 1: PSET (H, y - 4), C: NEXT H
PSET (x + 2, y - 3), C: PSET (x + 3, y - 2), C: PSET (x + 2, y - 1), C
FOR H = x - 1 TO x + 1: PSET (H, y), C: NEXT H: x = x + 9: RETURN
Q: PSET (x, y - 4), C: PSET (x + 1, y - 4), C
PSET (x - 1, y - 3), C: PSET (x + 2, y - 3), C
FOR V = y - 2 TO y + 2: PSET (x - 2, V), C: PSET (x + 3, V), C: NEXT V
PSET (x, y + 4), C: PSET (x + 1, y + 4), C
PSET (x - 1, y + 3), C: PSET (x + 2, y + 3), C
PSET (x + 1, y + 2), C: PSET (x + 3, y + 4), C
PSET (x + 4, y + 4), C: x = x + 9: RETURN
r: FOR V = y - 4 TO y + 4: PSET (x - 2, V), C: NEXT V
FOR H = x - 1 TO x + 1: PSET (H, y - 4), C: NEXT H
PSET (x + 2, y - 3), C: PSET (x + 3, y - 2), C: PSET (x + 2, y - 1), C
FOR H = x - 1 TO x + 1: PSET (H, y), C: NEXT H
FOR V = y + 1 TO y + 4: PSET (x + 2, V), C: NEXT V: x = x + 9: RETURN
S: FOR H = x - 1 TO x + 2: PSET (H, y - 4), C: NEXT H
FOR H = x - 1 TO x + 2: PSET (H, y), C: NEXT H
FOR H = x - 1 TO x + 2: PSET (H, y + 4), C: NEXT H
FOR V = y - 3 TO y - 1: PSET (x - 2, V), C: NEXT V
FOR V = y + 1 TO y + 3: PSET (x + 3, V), C: NEXT V
PSET (x + 3, y - 3), C: PSET (x - 2, y + 3), C: x = x + 9: RETURN
t: FOR V = y - 3 TO y + 4: PSET (x, V), C: NEXT V
FOR H = x - 3 TO x + 3: PSET (H, y - 4), C: NEXT H: x = x + 9: RETURN
U: FOR V = y - 4 TO y + 3: PSET (x - 2, V), C: PSET (x + 3, V), C: NEXT V
FOR H = x - 1 TO x + 2: PSET (H, y + 4), C: NEXT H: x = x + 9: RETURN
V: FOR V = y - 4 TO y + 1: PSET (x - 2, V), C: PSET (x + 3, V), C: NEXT V
FOR V = y + 2 TO y + 3: PSET (x - 1, V), C: PSET (x + 2, V), C: NEXT V
PSET (x, y + 4), C: PSET (x + 1, y + 4), C: x = x + 9: RETURN
y: PSET (x - 3, y - 4), C: PSET (x + 3, y - 4), C
F = x - 3: FOR D = y - 3 TO y: PSET (F, D), C: F = F + 1: NEXT D
F = x + 3: FOR D = y - 3 TO y: PSET (F, D), C: F = F - 1: NEXT D
FOR H = y TO y + 4: PSET (x, H), C: NEXT H: x = x + 9: RETURN
dot: PSET (x, y + 4), C: x = x + 9: RETURN
trt: y = y + 7: FOR hor = x - 3 TO x + 4: PSET (hor, y), C: NEXT hor
FOR hor = x - 3 TO x + 4: PSET (hor, y + 1), C: NEXT hor: y = y - 7: RETURN
tirt: FOR hor = x - 2 TO x + 3: PSET (hor, y + 1), C: NEXT hor
FOR hor = x - 2 TO x + 3: PSET (hor, y), C: NEXT hor: x = x + 9: RETURN
pintr: FOR H = x - 1 TO x + 2: PSET (H, y - 4), C: NEXT H
FOR V = y TO y + 2: PSET (x, V), C: NEXT V
FOR V = y - 2 TO y - 1: PSET (x + 3, V), C: NEXT V
PSET (x - 2, y - 3), C: PSET (x + 3, y - 3), C: PSET (x, y + 4), C
FOR H = x + 1 TO x + 2: PSET (H, y), C: NEXT H: RETURN
x: F = x - 3: FOR D = y - 3 TO y + 3: PSET (F, D), C: F = F + 1: NEXT D
F = x + 3: FOR D = y - 3 TO y + 3: PSET (F, D), C: F = F - 1: NEXT D
PSET (x + 3, y + 4), C: PSET (x + 3, y - 4), C
PSET (x - 3, y + 4), C: PSET (x - 3, y - 4), C: x = x + 9: 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
im: PSET (x, y - 4), C: FOR V = y - 2 TO y + 4: PSET (x, V), C: NEXT V
PSET (x - 1, y - 2), C: PSET (x - 1, y + 4), C: PSET (x + 1, y + 4), C
RETURN
minilab: GOSUB M: GOSUB I: GOSUB N: GOSUB I: GOSUB L: GOSUB a: GOSUB b: RETURN
dbook: GOSUB D: GOSUB a: GOSUB t: GOSUB a: x = x + 9: GOSUB b
GOSUB O: GOSUB O: GOSUB K: RETURN
recher: GOSUB r: GOSUB E: GOSUB C: GOSUB H: GOSUB E: GOSUB r
GOSUB C: GOSUB H: GOSUB E: RETURN
scop: GOSUB S: GOSUB C: GOSUB O: GOSUB P: GOSUB E: RETURN
graf: GOSUB G: GOSUB r: GOSUB a: GOSUB P: GOSUB H: GOSUB E: RETURN
quit: GOSUB Q: GOSUB U: GOSUB I: GOSUB t: GOSUB t: GOSUB E: GOSUB r: RETURN
CI: GOSUB C: GOSUB I: GOSUB r: GOSUB C: GOSUB U: GOSUB I: GOSUB t: GOSUB S
x = x + 8: GOSUB I: GOSUB N: GOSUB t: GOSUB E: GOSUB G: GOSUB r: GOSUB E
GOSUB S: x = x + 8: RETURN
CIL: GOSUB CI: GOSUB L: GOSUB I: GOSUB N: GOSUB E: GOSUB a
GOSUB I: GOSUB r: GOSUB E: GOSUB S: RETURN
CIC: GOSUB CI: GOSUB C: GOSUB tirt: x = x + 1: GOSUB M: GOSUB O: GOSUB S: RETURN
Typecompo: GOSUB t: GOSUB y: GOSUB P: GOSUB E: x = x + 8
GOSUB D: GOSUB E: x = x + 8: GOSUB C: GOSUB O: GOSUB M: GOSUB P
GOSUB O: GOSUB S: GOSUB a: GOSUB N: GOSUB t: x = x + 2: GOSUB pintr: RETURN
transistor: GOSUB t: GOSUB r: GOSUB a: GOSUB N: GOSUB S: GOSUB I: GOSUB S
GOSUB t: GOSUB O: GOSUB r: GOSUB S: RETURN
ref: GOSUB r: GOSUB E: GOSUB F: GOSUB E: GOSUB r: GOSUB E: GOSUB N
GOSUB C: GOSUB E: GOSUB S: RETURN
broch: GOSUB b: GOSUB r: GOSUB O: GOSUB C: GOSUB H: GOSUB a: GOSUB G
GOSUB E: GOSUB S: RETURN
equiv: GOSUB E: GOSUB Q: GOSUB U: GOSUB I: GOSUB V: GOSUB a: GOSUB L
GOSUB E: GOSUB N: GOSUB C: GOSUB E: GOSUB S: RETURN
exemples: GOSUB E: GOSUB x: GOSUB E: GOSUB M: GOSUB P: GOSUB L: GOSUB E
GOSUB S: RETURN
inst: GOSUB U: GOSUB N: x = x + 9: GOSUB I: GOSUB N: GOSUB S: GOSUB t
GOSUB a: GOSUB N: GOSUB t: x = x + 9: GOSUB S: GOSUB V: GOSUB P: RETURN
mem: GOSUB M: GOSUB E: GOSUB M: GOSUB O: RETURN
schm: GOSUB S: GOSUB C: GOSUB H: GOSUB E: GOSUB M: GOSUB a: GOSUB S: RETURN
men: GOSUB M: GOSUB E: GOSUB N: GOSUB U: RETURN
regul: GOSUB r: GOSUB E: GOSUB G: GOSUB U: GOSUB L: GOSUB a: GOSUB t
GOSUB E: GOSUB U: GOSUB r: GOSUB S: RETURN
URI: C = 12: GOSUB U: C = 3: GOSUB egal: C = 2: GOSUB r: C = 9: GOSUB I: RETURN
707 : C = 4: GOSUB dot: GOSUB 7: GOSUB 0: GOSUB 7: RETURN
PUI: C = 13: GOSUB P: GOSUB egal: C = 12: GOSUB U: GOSUB I: RETURN
Sod: C = 12: GOSUB D: x = x - 1: C = 5: GOSUB O: C = 14: GOSUB S: RETURN
TestMouse:
IF y% > 63 AND y% < 97 THEN GOSUB TestIcon
RETURN AttChoix
TestIcon:
IF x% > 35 AND x% < 64 THEN GOTO liste
IF x% > 79 AND x% < 120 THEN GOTO Schemas
IF x% > 133 AND x% < 172 THEN GOTO Memo
IF x% > 179 AND x% < 221 THEN GOTO Scope
IF x% > 230 AND x% < 271 THEN GOTO Graphe
IF x% > 279 AND x% < 321 THEN GOTO Menu
IF x% > 329 AND x% < 366 THEN GOTO RetourDos
RETURN
TestType:
IF x% < 201 OR x% > 438 THEN RETURN
IF y% > 171 AND y% < 199 THEN GOTO cmos
IF y% > 211 AND y% < 239 THEN GOTO lineaire
IF y% > 251 AND y% < 279 THEN GOTO regulat
IF y% > 291 AND y% < 319 THEN GOTO transist
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 debut
MouseData:
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
DATA 8b,76,08,89,0c,8b,76,06,89,14,5f,5e,5d,ca,08,00,#
boite: LINE (a, b)-(aa, bb), 0, B
LINE (a + 11, b + 11)-(aa - 11, bb - 11), cf, BF: PAINT (a + 7, b + 7), 7, 0
LINE (a + 9, bb - 9)-(a + 9, b + 9), 8: LINE -(aa - 9, b + 9), 8
LINE (aa - 9, b + 9)-(aa - 9, bb - 9), 15: LINE -(a + 9, bb - 9), 15: RETURN
DEFSNG A-Z
SUB GetMouse
r% = Interr%(&H33, 3, BX%, CX%, DX%)
b% = BX%
x% = CX%
y% = DX%
END SUB
SUB IconDataBook (a, b)
LINE (a + 10, b)-(a + 23, b + 20), 0, B
LINE (a + 10, b + 7)-(a + 23, b + 20), 0, BF: CIRCLE (a + 16, b + 3), 2, 0
LINE (a + 10, b + 10)-(a + 23, b + 10), 7
LINE (a + 11, b + 21)-(a + 12, b + 30), 7, B
LINE (a + 21, b + 21)-(a + 22, b + 30), 7, B
LINE (a + 16, b + 21)-(a + 17, b + 30), 7, B
LINE (a + 25, b + 12)-(a + 33, b + 18), 7, BF
LINE (a + 25, b + 11)-(a + 33, b + 19), 8, B
LINE (a + 25, b + 19)-(a + 35, b + 19), 8
LINE (a + 27, b + 19)-(a + 24, b + 30), 8
LINE (a + 31, b + 19)-(a + 34, b + 30), 8
LINE (a + 29, b + 20)-(a + 29, b + 30), 8
END SUB
SUB IconGraf (a, b)
LINE (a + 3, b + 1)-(a + 3, b + 30), 0: LINE (a, b + 27)-(a + 40, b + 27), 0
FOR I = b + 24 TO b STEP -6: LINE (a + 2, I)-(a + 3, I), 0: NEXT I
FOR I = a + 6 TO a + 40 STEP 6: LINE (I, b + 27)-(I, b + 28), 0: NEXT I
LINE (a + 7, b + 23)-(a + 18, b + 5), 12: LINE -(a + 25, b + 19), 12
LINE -(a + 36, b + 3), 12
END SUB
SUB IconSchema (a, b)
LINE (a, b)-(a + 40, b + 30), 0, BF
LINE (a + 7, b + 5)-(a + 7, b + 25), 13: LINE -(a + 22, b + 15), 13
LINE -(a + 7, b + 5), 13: LINE (a + 23, b + 15)-(a + 29, b + 15), 14
LINE (a + 30, b + 13)-(a + 30, b + 17), 14
LINE (a + 32, b + 13)-(a + 32, b + 17), 14
LINE (a + 33, b + 15)-(a + 40, b + 15), 14
LINE (a + 35, b)-(a + 35, b + 7), 10: LINE -(a + 37, b + 7), 10
LINE -(a + 37, b), 10: LINE (a + 36, b + 8)-(a + 36, b + 14), 10
LINE (a, b + 9)-(a + 6, b + 9), 12: LINE (a, b + 20)-(a + 6, b + 20), 12
LINE (a + 16, b)-(a + 16, b + 10), 12: LINE (a + 16, b + 20)-(a + 16, b + 30), 12
END SUB
SUB IconScope (a, b)
LINE (a, b)-(a + 40, b + 26), 7, BF
LINE (a + 3, b + 3)-(a + 19, b + 19), 8, B
LINE (a + 4, b + 4)-(a + 18, b + 18), 3, BF
CIRCLE (a + 8, b + 22), 1, 12: CIRCLE (a + 15, b + 22), 1, 0
CIRCLE (a + 25, b + 19), 2, 8: CIRCLE (a + 35, b + 19), 2, 8
CIRCLE (a + 35, b + 9), 2, 8: CIRCLE (a + 25, b + 9), 2, 9
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 Mouse (OnOff%)
IF OnOff% = 0 THEN OnOff% = 2 ELSE OnOff% = 1
r% = Interr%(&H33, OnOff%, BX%, CX%, DX%)
END SUB
SUB MouseSpeed (Curseur%)
r% = Interr%(&H33, 15, BX%, Curseur%, Curseur%)
END SUB
SUB ReadData
RESTORE MouseData
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%)
END SUB