1 REM CREIMAGE POUR 464 PAR JEAN-LUC JOUD ET CLAUDE VIVIER. AMSTRAD JEU D'AVENTURE EDITE PAR SYBEX 5 ON ERROR GOTO 62000 10 MEMORY 9724:MODE 1:DATA 33,0,0,205,5,188,201,0,62,,33,,,17,,,205,68,188,201,0,0,33,0,192,1,91,102,22,1,94,35,125,238,255,194,42,102,124,238,255,202,66,102,123,190,194,57,102,20,202,54,102,195,29,102,22,255,0,3,123,2,122,3,2,195 20 DATA 26,102,3,2,122,3,2,237,67,77,102,201,0,,,0,1,0,64,17,,,33,,,237,176,201,0,33,0,192,1,91,134,3,10,87,3,10,114,35,61,194,104,166,125,238,255,194,99,166,124,238,255,194,99,166,201,0 30 FOR I=26110 TO 42619:READ A:POKE I,A:NEXT:FOR I=42588 TO 42619:READ A:POKE I,A:NEXT:SPEDD KEY 10,1:E$=" " 40 B=1:I0=1:I1=24:I2=8:I3=26:P=0:BORDER=1:GOSUB 14050:LOCATE 12,1:PRINT "CREATION D'IMAGES":LOCATE 15,12:PRINT "EXPLICATIONS":LOCATE 17,20:PRINT "TAPEZ ":WHILE INKEY$="":WEND:CLS 1000 GOSUB 14050:BORDER B:INK 0,I0:INK 1,I1:INK 2,I2:INK 3,I3:PLOT X,Y,P 1100 CALL 26110:A$="":WHILE A$="":A$=INKEY$:WEND:A=ASC(UPPER$(A$)):IF A>47 AND A<52 THEN P=A-48 1110 X=X-2*((A=243)-(A=242)):IF X<0 THEN X=0 1120 IF X>638 THEN X=638 1130 Y=Y-2*((A=240)-(A=242)):IF Y<0 THEN Y=0 1140 IF Y>398 THEN Y=398 1150 IF A<65 OR A>90 THEN 1000 1160 ON A-64 GOTO 28000,12000,23000,16000,29000,24000,1100,1100,14000,25000,1100,19000,15000,26000,1100,13000,1100,21000,18000,27000,1100,1100,1100,22000,17000,20000 12000 GOSUB 60030:LOCATE 1,24:PRINT "BORDURE ="; 12010 LOCATE 11,24:INPUT "",B:IF B<0 OR B>26 THEN LOCATE 11,24:PRINT E$:GOTO 12010:ELSE GOSUB 60040:GOTO 1000 13000 GOSUB 60030:LOCATE 1,24:PRINT "POSITION : X= ";XPOS/2;" Y= ";YPOS/2 13010 WHILE INKEY$="":WHEND:GOSUB 60040:GOTO 1100 14000 GOSUB 60030:LOCATE 16,22:PRINT "PALETTE :":LOCATE 1,24:PRINT "I0= I1= I2= I3= (0-26)"; 14010 LOCATE 4,24:INPUT "",I0:IF I0<0 OR I0>26 THEN LOCATE 4,24:PRINT E$:GOTO 14010 14020 LOCATE 12,24:INPUT "",I1:IF I1<0 OR I1>26 THEN LOCATE 12,14:PRINT E$:GOTO 14020 14030 LOCATE 20,24:INPUT "",I2:IF I2<0 OR I2>26 THEN LOCATE 20,24:PRINT E$:GOTO 14030 14040 LOCATE 28,24:INPUT "",I3:IF I3<0 OR I3>26 THEN LOCATE 28,24:PRINT E$:GOTO 14040:ELSE GOSUB 60040:GOTO 1000 14050 POKE 65530,I0:POKE 65531,I1:POKE 65532,I2:POKE 65533,I3:POKE 65529,B:RETURN 15000 GOSUB 60030:LOCATE 1,24:PRINT "DEPLACEMENT":GOSUB 61100:X=2*X1:Y=2*Y1:GOTO 1000 16000 GOSUB 60030:LOCATE 18,25:PRINT "COORDONNEES ABSOLUES":GOSUB 61000:DRAW 2*X1,2*Y1,P:GOTO 1100 17000 GOSUB 60030:LOCATE 18,25:PRINT "COORDONNEES RELATIVES":GOSUB 61000:DRAWR 2*X1,2*Y1,P:GOTO 1100 18000 GOSUB 60000:GOSUB 60030:LOCATE 1,23:PRINT "SAUVEGARDE NORMALE (1) COMPRESSEE (2) :";:GOSUB 19100:INPUT "NOM :",B$:GOSUB 60040:IF A=50 THEN CALL 26132:C=PEEK(26189)+256*PEEK(26190)-26203:ELSE GOSUB 60050:SAVE B$,B,26236,16384:GOTO 18030 18010 LOCATE 1,24:PRINT C;:IF C>8192 THEN PRINT " IMAGE > 8K":WHILE INKEY$="":WEND:GOSUB 60040:GOTO 1100 18020 FOR I=0 TO 500:NEXT:POKE 26191,32:POKE 26196,92:POKE 26197,134:POKE 26199,92:POKE 26200,102:CALL 26192:POKE 26194,64:GOSUB 60040:GOSUB 60050:SAVE B$,B,34396,C:GOSUB 60000 18030 GOSUB 60060:GOTO 1100 19000 GOSUB 60040:LOCATE 1,23:PRINT "CHARGEMENT NORMAL <1> DECOMPRESSE <2> :";:GOSUB 19100:INPUT "NOM :",B$:GOSUB 60050:LOAD B$:IF A=50 THEN CALL 42589:GOSUB 60000:ELSE GOSUB 60010 19010 GOSUB 60060:I0=PEEK(65530):I1=PEEK(65531):I2=PEEK(65532):I3=PEEK(65533):B=PEEK(65529):GOTO 1000 19100 A$=INKEY$:IF A$="" THEN 19100:ELSE A=ASC(A$):IF A<49 OR A>50 THEN GOSUB 60040:GOTO 1100:ELSE PRINT A$;:RETURN 20000 GOSUB 60030:LOCATE 17,22:PRINT "ZONE":LOCATE 1,24:PRINT "RECTANGLE (1) TRIANGLE (2) CERCLE (3) GRAND RECTANGLE(4)" 20010 A$=INKEY$:IF A$="" THEN 20010 ELSE A=ASC(A$):GOSUB 60040:IF A<48 OR A>52 THEN 1100:ELSE ON A-48 GOTO 20100,20200,20300,20400 20100 GOSUB 60030:LOCATE 15,22:PRINT "RECTANGLE":LOCATE 1,24:PRINT "UNIFORME (1) RAYE HORIZONTAL (2)";:LOCATE 1,25:PRINT "RAYE VERTICAL (3) COULEURS ALTERNEES (4)"; 20110 A$="":WHILE A$="":A$=INKEY$:WEND:A=ASC(A$):GOSUB 60040:IF A<48 OR A>52 THEN 1100:ELSE LOCATE 1,24:PRINT "COULEUR 1= COULEUR 2 =":LOCATE 1,25:PRINT "X1= Y1= X3= Y3="; 20130 LOCATE 13,24:INPUTE "",P1:IF P1<0 OR P1>3 THEN LOCATE 13,24: PRINT E$:GOTO20130 20140 LOCATE 28,24:INPUT "",P2:IF P2<0 OR P2>3 THEN LOCATE 28,24:PRINT E$:GOTO 20140 20150 LOCATE 5,25:INPUT "",X1:LOCATE 15,25:INPUT "",Y1:LOCATE 25,25:INPUT "",X3:LOCATE 35,25:INPUT "",Y3:GOSUB 60040:ON A-48 GOTO 20160,20170,20180,20190 20160 FOR I=Y1 TO Y3:MOVE 2*X1,2*I:DRAW 2*X3,2*I,P1:NEXT:GOTO 1100 20170 FOR I=Y1 TO Y3 STEP 2:MOVE 2*X1,2*I:DRAW 2*X3,2*P,P1:MOVE 2*X1,2*(I+1):DRAW 2*X3,2*(I+1),P2:NEXT:GOTO 1100 20180 FOR I=X1 TO X3 STEP 2:MOVE 2*I,2*Y1:DRAW 2*I,2*Y3,P1:MOVE 2*(I+1),2*Y1:DRAW 2*(I+1),2*Y3,P2::NEXT:GOTO 1100 20190 FOR I=Y1 TO Y3:FOR K=X1 TO X3 STEP 2:PLOT 2*K,2*I,P1:PLOT 2*(K+1),2*I,P2,NEXT:P=P2:P2=P1:P1=P:NEXT:GOTO 1100 20200 GOSUB 61300:L=SQR((X3-X2)^2+(Y3-Y2)^2):DX=(X3-X2)/2/L:DY=(Y3-Y2)/2/L:A=4*INT(L):MOVE 2*X1,2*Y1:I=2*X2:K=2*Y2:DRAW I,K,P:FOR J=1 YO A:MOVE 2*X1,2*Y1:I=I+DX:K=K+DY:DRAW I,K,P:NEXT:GOTO 1100 20300 GOSUB 61200:FOR I=-PI/2 TO PI/2 STEP 1/R:K=2.2*R*COS(I):ORIGIN 2*XC-K,2*YC+2*R*SIN(I):DRAW 2*K,0,P:NEXT:ORIGIN 0,0:GOTO 1100 20400 GOSUB 60040:LOCATE 1,24:PRINT "COULEUR = X1= Y1=":LOCATE 18,25:PRINT "X2= Y2=" 20410 LOCATE 11,24:INPUT "",P1:IF P1<0 OR P1>255 THEN LOCATE 11,24:PRINT E$:GOTO 20410 20420 LOCATE 22,24:INPUT "",X1:IF X1<0 OR X1>39 THEN LOCATE 22,24:PRINT E$:GOTO 20420 20430 LOCATE 33,24:INPUT "" ,Y1:IF Y1<0 OR Y1>24 THEN LOCATE 33,24:PRINT E$:GOTO 20430 20440 LOCATE 22,55:INPUT "",X2:IF X2<0 OR X2>39 THEN LOCATE 22,25:PRINT E$:GOTO 20440 O "ееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее