10 '***** Nguyen Phil *****
20 ' ***** pour CPC ***** 30 MODE 2:INK 0,26:INK 1,0:BORDER 26 40 DEF FNcom(x)=INT(x*213/639/8)+1 50 GOSUB 980 60 DEG 70 FOR j=160 TO 288 STEP 32:FOR i=80 TO 200 STEP 24:g%=i-2:d%=i+18:b%=j-4:h%=j+20:GOSUB 920:NEXT:NEXT 80 g%=78:d%=218:b%=316:h%=340:GOSUB 920 90 g%=70:d%=226:h%=356:b%=140:GOSUB 920 100 g%=66:d%=232:b%=132:h%=364:GOSUB 920 110 PRINT CHR$(23)"1";:MOVE 10.5*8,302:TAG:PRINT"7 8 9 : x +"; 120 MOVE 10.5*8,270:PRINT"4 5 6 - ^ %"; 130 MOVE 10.5*8,238:PRINT"1 2 3 "CHR$(254)" "CHR$(250)" "CHR$(248); 140 MOVE 10.5*8,206:PRINT"0 . C S "CHR$(249)" T"; 150 MOVE 10.5*8,174:PRINT CHR$(253)" "CHR$(252)" "CHR$(251)" "CHR$(255)" # ="; 160 WINDOW#1,12,26,5,5 170 PRINT#1,STRING$(14,".")"0"; 180 x=340:y=200:ax=x:ay=y:pasx=8:pasy=16 190 MOVE x,y:TAG:PRINTCHR$(247);:TAGOFF 200 LOCATE 50,3:PRINT"NNH research presente:":LOCATE 50,5:PRINT"Calculatrice de poche":LOCATE 50,7:PRINTCHR$(164)" 1986..." 210 LOCATE 56,9:PRINT" Fonctions ":LOCATE 50,11:PRINT"#=fin C=cos S=sin":LOCATE 50,12:PRINT"L=log T=tan At=arctan":LOCATE 50,13:PRINT"CE=clear M+=memoire ":LOCATE 50,14:PRINT"M-=vide mem Mrc=affiche mem" 220 LOCATE 50,15:PRINT"Ex=expon. ^=puiss." 230 LOCATE 50,16:PRINT"+=add -=soust. =egal.":LOCATE 50,17:PRINT"x=multi. :=divis. %=pourc." 240 LOCATE 50,18:PRINT"Deplac. souris ou Joystick" 250 g%=48*8:d%=78*8:h%=17.5*16:b%=6*16:GOSUB 920 260 g%=48*8-4:d%=78*8+6:h%=17.5*16+4:b%=6*16-6:GOSUB 920 270 feu=0:WHILE feu=0:souri$=BIN$(JOY(0),5):IF souri$<>"00000" THEN GOSUB 310 280 WEND 290 IF (x<218 AND x>78) AND (y<308 AND y>156) THEN GOSUB 400 ELSE GOTO 270 300 GOTO 270 310 IF MID$(souri$,1,1)="1" THEN feu=1:RETURN 320 IF MID$(souri$,2,1)="1" THEN x=x+pasx 330 IF MID$(souri$,3,1)="1" THEN x=x-pasx 340 IF MID$(souri$,4,1)="1" THEN y=y-pasy 350 IF MID$(souri$,5,1)="1" THEN y=y+pasy 360 IF x>614 THEN x=614 ELSE IF x<5 THEN x=5 370 IF y>397 THEN y=397 ELSE IF y<31 THEN y=31 380 PRINTCHR$(23)"1";:TAG:MOVE ax,ay:PRINTCHR$(247);:MOVE x,y:PRINTCHR$(247);:TAGOFF 390 PRINTCHR$(23)"0";:ax=x:ay=y:RETURN 400 SOUND 1,x+y,10:FOR i=1 TO 100:NEXT 410 com=FNcom(x)-3 420 FOR qw=1 TO 100:CLEAR INPUT:NEXT 430 IF y>156 AND y<180 THEN 490:'5eme ligne 440 IF y>188 AND y<212 THEN 630:'4eme ligne 450 IF y>220 AND y<244 THEN 710:'3eme ligne 460 IF y>252 AND y<276 THEN 780:'2eme ligne 470 IF y>288 AND y<312 THEN 850:'1ere ligne 480 GOTO 270 490 ON com GOTO 500,510,520,530,540,550 500 GOSUB 1090:M=T:RETURN 510 m=0:RETURN 520 nb=m:nb$=STR$(nb):GOTO 1080 530 nb=0:nb$="":t=0:flag=0:OP$="":PRINT#1,STRING$(14,".")"0";::RETURN 540 END 550 IF op$="/" THEN t=t/nb 560 IF op$="X" THEN t=t*nb 570 IF op$="+" THEN t=t+nb 580 IF op$="-" THEN t=t-nb 590 IF op$="^" THEN t=t^nb 600 IF op$="exp" THEN t=t^nb 610 flag=1 620 t$=STR$(t):PRINT#1,STRING$(15-LEN(t$),".");t$;:nb$="":RETURN 630 ON com GOTO 640,650,670,680,690,700 640 nb$=nb$+"0":GOTO 1080 650 IF flag=1 THEN RETURN ELSE IF nb$="" THEN nb$="0." :flag=1:RETURN:ELSE flag=1:nb$=nb$+"." ELSE RETURN 660 GOTO 1080 670 GOSUB 1110:T1=COS(T1):GOSUB 1130:NB=T1:RETURN 680 GOSUB 1110:T1=SIN(T1):GOSUB 1130:NB=T1:RETURN 690 GOSUB 1110:T1=ATN(T1):GOSUB 1130:NB=T1:RETURN 700 GOSUB 1110:T1=TAN(T1):GOSUB 1130:NB=T1:RETURN 710 ON com GOTO 720,730,740,750,760,770 720 nb$=nb$+"1":GOTO 1080 730 nb$=nb$+"2":GOTO 1080 740 nb$=nb$+"3":GOTO 1080 750 op$="exp":GOTO 1090 760 GOSUB 1110:T1=LOG(T1):GOSUB 1130:NB=T1:RETURN 770 GOSUB 1110:T1=SQR(T1):GOSUB 1130:NB=T1:RETURN 780 ON com GOTO 790,800,810,820,830,840 790 nb$=nb$+"4":GOTO 1080 800 nb$=nb$+"5":GOTO 1080 810 nb$=nb$+"6":GOTO 1080 820 IF nb=0 THEN nb$="-0"+nb$:GOTO 1080 ELSE op$="-":GOTO 1090 830 op$="^":GOTO 1090 840 GOSUB 1110:T1=T1/100:GOSUB 1130:NB=T1:RETURN 850 ON com GOTO 860,870,880,890,900,910 860 nb$=nb$+"7":GOTO 1080 870 nb$=nb$+"8":GOTO 1080 880 nb$=nb$+"9":GOTO 1080 890 op$="/":GOTO 1090 900 op$="X":GOTO 1090 910 op$="+":GOTO 1090 920 MOVE G%,B%:DRAW G%,H%,1:DRAW D%,H%,1 930 DRAW D%,B%,1:DRAW G%,B%,1:MOVE G%+2,B%-2 940 DRAW D%+1,B%-2,1:DRAW D%+1,H%-2,1:MOVE D%+2,B%-2 950 DRAW D%+2,H%-4,1:MOVE D%+3,B%-2:DRAW D%+3,H%-6,1 960 MOVE G%-1,B%:DRAW G%-1,H% 970 RETURN 980 SYMBOL 255,0,119,68,70,68,68,119 990 SYMBOL 254,0,224,128,201,134,134,233 1000 SYMBOL 253,0,144,242,146,151,146,146 1010 SYMBOL 252,0,144,240,144,151,144,144 1020 SYMBOL 251,151,245,150,149,144,151,148,151 1030 SYMBOL 250,0,142,138,138,138,138,238 1040 SYMBOL 249,0,232,172,232,168,168,164 1050 SYMBOL 248,0,7,136,136,80,80,32 1060 SYMBOL 247,255,130,132,132,130,177,203,134 1070 RETURN 1080 nb=VAL(nb$):PRINT#1,STRING$(15-LEN(nb$),".");nb$;:RETURN 1090 IF flag=1 THEN flag=0 ELSE t=nb 1100 nb=0:nb$="":RETURN 1110 IF flag=1 THEN FLAG=0:T1=T ELSE T1=NB 1120 RETURN 1130 T1$=STR$(t1):PRINT#1,STRING$(15-LEN(t1$),".");t1$;:RETURN |