home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 12
/
CD_ASCQ_12_0294.iso
/
maj
/
2364
/
minilab
/
graf.bas
< prev
next >
Wrap
BASIC Source File
|
1994-02-15
|
22KB
|
467 lines
REM W. Prévost 1993 : MINILAB GRAF
DECLARE SUB Mouse (OnOff%)
DECLARE SUB ResetMouse ()
DECLARE SUB GetMouse ()
DECLARE SUB MouseSpeed (Curseur%)
DECLARE SUB SetMouse (x%, y%)
DECLARE SUB ReadData ()
DECLARE FUNCTION Interr% (Num%, AX%, Bx%, CX%, DX%)
DIM SHARED MS%(45)
CLEAR
ReadData
DIM SHARED 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
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 = 297: GOSUB graf: x = 298: GOSUB graf
LINE (3, 31)-(636, 60), 7, BF: LINE (3, 61)-(636, 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 Typede: GOSUB graf
x = 31: GOSUB Typede: GOSUB graf
c = 9: x = 182: GOSUB trt: x = 172: GOSUB schm: x = 173: GOSUB schm
x = 247: GOSUB trt: GOSUB mem: x = 248: GOSUB mem
x = 294: GOSUB trt: GOSUB scop: x = 295: GOSUB scop
x = 350: GOSUB trt: GOSUB dbook: x = 351: GOSUB dbook
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
A = 230: B = 65: GOSUB IconDatabook
A = 80: B = 65: GOSUB IconSchemas
x = 135: y = 70: GOSUB URI: x = 136: GOSUB URI 'Icone MEMO
x = 135: y = 81: GOSUB 707: x = 136: GOSUB 707
y = 90: x = 143: GOSUB PUI: x = 144: GOSUB PUI
A = 180: B = 65: GOSUB IconScope
A = 30: B = 65: GOSUB IconGraf
A = 280: B = 65: GOSUB IconMenu
A = 330: B = 65: GOSUB IconQuit
ResetMouse
Curseur% = VitesseSouris
MouseSpeed Curseur%
AttChoix: Mouse 1
DO: GetMouse: F$ = INKEY$: F$ = UCASE$(F$): LOOP UNTIL B% <> Bx% OR LEN(F$)
Mouse 0
IF B% = 1 THEN GOSUB TestMouse
IF F$ = "T" THEN GOTO LisTe
IF F$ = "S" THEN GOTO Scope
IF F$ = "D" THEN GOTO Databook
IF F$ = "C" 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 = 345: cf = 7: GOSUB boite
FOR I = 20 TO 160 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), 2, BF
x = A + 78: y = B - 10: c = 15: GOSUB Typede: GOSUB graf: GOSUB pintr
x = A + 79: GOSUB Typede: GOSUB graf: GOSUB pintr
c = 0: y = B + 36: x = A + 30: GOSUB Sig: GOSUB Sinus: x = A + 88: GOSUB trt
c = 0: y = B + 76: x = A + 30: GOSUB Sig: GOSUB Carre: x = x + 14
c = 15: GOSUB NE555: c = 0: x = A + 88: GOSUB trt
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$ = "S" THEN GOTO GrafSinus
IF F$ = "C" THEN GOTO GrafCarre
LINE (170, 130)-(460, 390), CoulZoneTravail, BF: GOTO AttChoix
GOTO ChoixType: END
REM ................................................................
GrafSinus: GOSUB interf1: GOSUB charge: CHAIN "minilab\graf1.bas"
GrafCarre: GOSUB interf2: GOSUB charge: CHAIN "minilab\graf2.bas"
Scope: GOSUB charge: CHAIN "minilab\scope2.bas"
Databook: GOSUB charge: CHAIN "minilab\dtbook.bas"
meNu: GOSUB charge: CHAIN "minilab\minilab2.bas"
sChemas: GOSUB charge: CHAIN "minilab\schemas.bas"
Memo: GOSUB charge: CHAIN "minilab\memo.bas"
REM .....................INTERFACE pour CHAIN.......................
interf1: GOSUB interf: GOSUB interf1bis
c = 0: y = 44: x = 255: GOSUB Sig: GOSUB Sinus: x = 256: GOSUB Sig: GOSUB Sinus
RETURN
interf2: GOSUB interf: GOSUB interf2bis
c = 0: y = 44: x = 276: GOSUB Sig: GOSUB Carre: x = 277: GOSUB Sig: GOSUB Carre
RETURN
interf: Mouse 0
LINE (0, 0)-(639, 479), 0, B: LINE (1, 1)-(638, 478), 7, B
LINE (2, 2)-(637, 477), 0, B
LINE (3, 3)-(636, 28), CoulBarreTitre, BF: LINE (3, 29)-(636, 29), 15
c = CoulLettresTitre: x = 25: y = 14: GOSUB minilab: x = 26: GOSUB minilab
x = 300: GOSUB graf: x = 301: GOSUB graf
LINE (3, 61)-(636, 476), cf, BF: LINE (3, 31)-(636, 60), 15, BF
LINE (3, 60)-(636, 60), 0
' barre bas + icones
LINE (3, 415)-(636, 476), 15, BF: LINE (3, 415)-(636, 415), 0
LINE (3, 417)-(636, 417), 0
RETURN
interf1bis:
c = 0: y = 427
x = 50: GOSUB refaire: c = 9: x = 130: GOSUB dbook: x = 218: GOSUB schm
x = 300: GOSUB scop: x = 360: GOSUB mem: x = 411: GOSUB men
c = 0: x = 51: GOSUB refaire: c = 9: x = 131: GOSUB dbook: x = 219: GOSUB schm
x = 301: GOSUB scop: x = 361: GOSUB mem: x = 412: GOSUB men
c = 4: x = 480: GOSUB quit: x = 481: GOSUB quit
A = 50: B = 440: GOSUB IconRefaire
A = 120: B = 440: GOSUB IconDatabook
A = 170: B = 440: GOSUB IconSchemas
A = 220: B = 440: GOSUB IconScope
x = 270: y = 445: GOSUB URI: x = 271: GOSUB URI
x = 278: y = 456: GOSUB 707: x = 279: GOSUB 707
y = 467: x = 275: GOSUB PUI: x = 276: GOSUB PUI
A = 320: B = 440: GOSUB IconMenu
A = 370: B = 440: GOSUB IconQuit
RETURN
interf2bis: c = 0: y = 427
A = 50: B = 440: GOSUB IconRefaire
A = 320: B = 440: GOSUB IconMenu
A = 370: B = 440: GOSUB IconQuit
RETURN
REM .....................................................................
charge: Mouse 0: A = 200: aa = 440: B = 130: bb = 180: cf = 3: GOSUB box
x = 260: y = 155: c = 0: GOSUB inst: x = 261: GOSUB inst: RETURN
RetourDos: A = 175: aa = 485: B = 150: bb = 200: cf = 12: GOSUB box
x = 210: y = 175: c = 0: GOSUB retdos: x = 211: GOSUB retdos
choix: Mouse 1
DO: GetMouse: F$ = INKEY$: F$ = UCASE$(F$): LOOP UNTIL B% <> Bx% OR LEN(F$)
Mouse 0
IF F$ = "O" THEN SYSTEM
IF F$ = "N" THEN LINE (170, 149)-(490, 201), CoulZoneTravail, BF: GOTO AttChoix
IF B% = 1 THEN GOSUB Testquit
GOTO choix
Testquit:
IF y% < 170 OR y% > 185 THEN RETURN choix
IF x% > 343 AND x% < 381 THEN SYSTEM
IF x% > 398 AND x% < 441 THEN LINE (170, 149)-(490, 201), CoulZoneTravail, BF: GOTO AttChoix
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
REM = Chiffres & lettres & messages graphiques
5 : FOR h = x - 2 TO x + 3: PSET (h, y - 4), c: NEXT h
FOR V = y - 3 TO y - 1: PSET (x - 2, V), c: NEXT V
FOR h = x - 1 TO x + 2: PSET (h, y), c: NEXT h
FOR V = y + 1 TO y + 3: PSET (x + 3, V), c: NEXT V
FOR h = x - 1 TO x + 2: PSET (h, y + 4), c: NEXT h
PSET (x - 2, y + 3), c: x = x + 9: 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
REM ========================================================================
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 'G
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 'N
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 'S
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
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
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
REM ========================================================================
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
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
' minuscules
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: GOSUB B: GOSUB O: GOSUB O: GOSUB K: 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
refaire: GOSUB r: GOSUB E: GOSUB F: GOSUB A: GOSUB I: GOSUB r: GOSUB E: RETURN
Sig: GOSUB S: GOSUB I: GOSUB G: GOSUB N: GOSUB A: GOSUB L: x = x + 8: RETURN
Sinus: GOSUB S: GOSUB I: GOSUB N: GOSUB U: GOSUB S: GOSUB O: GOSUB I: GOSUB D
GOSUB A: GOSUB L: RETURN
Carre: GOSUB c: GOSUB A: GOSUB r: GOSUB r: GOSUB E: RETURN
NE555: GOSUB N: GOSUB E: x = x + 8: GOSUB 5: GOSUB 5: GOSUB 5: RETURN
Typede: GOSUB T: GOSUB y: GOSUB P: GOSUB E: x = x + 8
GOSUB D: GOSUB E: x = x + 8: RETURN
SOD: c = 12: GOSUB D: x = x - 1: c = 5: GOSUB O: c = 14: 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
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
'........................... ICONES ............................
IconDatabook: 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: RETURN
IconSchemas: 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
c = 13: x = A + 24: y = B + 22: GOSUB Im: y = y + 1: x = x + 5: GOSUB cm: RETURN
IconScope: 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: RETURN
IconGraf: 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: RETURN
IconMenu: LINE (A, B)-(A + 40, B + 30), 0, B
LINE (A + 2, B + 2)-(A + 38, B + 11), 9, BF
x = A + 6: y = B + 6: c = 15: GOSUB men: x = A + 7: GOSUB men
LINE (A + 2, B + 13)-(A + 38, B + 24), 7, BF: RETURN
IconQuit: LINE (A + 1, B + 8)-(A + 23, B + 22), 7, BF
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: RETURN
IconRefaire:
LINE (A, B)-(A + 40, B + 30), 9, B 'Icon REFAIRE
LINE (A + 3, B + 3)-(A + 37, B + 27), 7, BF
PSET (A + 2, B + 2), 12: DRAW "c12 R15 G5 F15 G5 H15 G5 U15"
PSET (A + 3, B + 1), 4: DRAW "c4 R16 G5 F15 G5"
PAINT (A + 5, B + 4), 12, 12: RETURN
REM ..................
TestMouse:
IF y% > 63 AND y% < 97 THEN GOSUB TestIcon
RETURN
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 Databook
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 GrafSinus
IF y% > 211 AND y% < 239 THEN GOTO GrafCarre
'IF Y% > 251 AND Y% < 279 THEN GOTO
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
MS.Data:
DATA 55,8b,ec,56,57,8b,76,0c,8b,04,8b,76,0a,8b,1c
DATA 8b,76,08,8b,0c,8b,76,06,8b,14,cd,21
DATA 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,#
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
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 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%)
END SUB