10 REM ******************* 20 REM * SHRINKSPRITE 64 * 30 REM * DEMO * 40 REM * WRITTEN BY * 50 REM * BURKHARD REIKE * 60 REM * IN MARCH '86 * 70 REM ******************* 80 POKE53280,0:POKE53281,0 90 PRINT"[147] BITTE WARTEN !":POKE55,0:POKE56,60 100 FORX=0TO318:READA:POKE16064+X,A:NEXT 110 CLR:V=53248:AD=49152:FORX=0TO9:POKEV+X,0:NEXT:POKEV+23,0:POKEV+29,0 120 FORX=0TO4:S(X)=251+X:S1(X)=246+X:POKEV+39+X,X+1:NEXTX 130 PRINT"[147]":FORX=0TO3:POKEV+2*X,45*X+100:NEXTX 140 FORX=0TO3:SYSAD,S(X),S1(X),10,10,X:POKEV+21,PEEK(V+21)OR2^X 150 FORY=1TO100:POKEV+2*X+1,Y:NEXTY 160 FORY=9TO0STEP-1:SYSAD,S(X),S1(X),Y,Y,X:NEXTY:NEXTX 170 PRINT" FUER 'SHRINKSPRITE 64'" 180 PRINT" TASTE DRUECKEN[146]" 190 FORS=0TO3:FORX=1TO23:SYSAD,S(S),S1(S),0,X,S:GETA$:IFA$<>""THEN220 200 NEXTX:FORX=23TO0STEP-1:SYSAD,S(S),S1(S),0,X,S:GETA$:IFA$<>""THEN220 210 NEXTX,S:GOTO190 220 FORX=0TO7:POKEV+X,0:NEXTX:PRINT"[147]" 230 PRINTSPC(12)"SHRINKSPRITE 64" 240 PRINTSPC(12)"***************" 250 PRINT"SHRINKSPRITE 64 HAT DIE FAEHIGKEIT,DURCHEINEN SYS-AUFRUF UND PARA"; 260 PRINT"METERUEBERGABE EINEN SPRITE HORIZONTAL UND VERTIKAL ZU STAUCHEN"; 270 PRINT",WOBEI DER URSPRUENGLICHE SPRITEERHALTEN BLEIBT,DA DER GESTAUCHTE"; 280 PRINT" SPRITEIN EINEM NEUEN SPRITEBLOCK ABGELEGT WIRD.DAS PROGRAMM "; 290 PRINT"KANN AUF WUNSCH DEN SPRITEZEIGER AUF DEN NEUEN BLOCK SETZEN.":PRINT 300 GOSUB1060:PRINT"[147]":PRINTSPC(13)"DIE PARAMETER[146]" 310 PRINT"DER AUFRUF DER ROUTINE SIEHT FOLGENDERMASSEN AUS:" 320 A$(1)="ROUTINE":A$(2)="SPRITE1":A$(3)="SPRITE2":A$(4)="VERTIKAL" 330 A$(5)="HORIZONTAL":A$(6)="NUMMER" 340 PRINT:PRINT:Q=7:GOSUB1070:GOSUB1060:PRINT"[147]" 350 Q=1:GOSUB1070 360 PRINT"DIE ADRESSE NACH DEM SYSAUFRUF IST STETSDER ANFANG DER ROUTINE "; 370 PRINT"'SHRINKSPRITE 64'":PRINT:GOSUB1060:PRINT"[147]":Q=2:GOSUB1070 380 PRINT"NACH DEM ERSTEN KOMMA KOMMT DIE NUMMER DES SPRITEBLOCKS,DER "; 390 PRINT"VERAENDERT WERDEN SOLL (0-255).":PRINT:GOSUB1060:PRINT"[147]":Q=3 400 GOSUB1070:PRINT"HIERNACH FOLGT DIE NUMMER DES SPRITE- BLOCKS"; 410 PRINT",IN DEM DER VERAENDERTE SPRITE AB-GELEGT WERDEN SOLL.DIESER BLOCK"; 420 PRINT" DARF MITDEM ERSTEN BLOCK IDENTISCH SEIN.":PRINT:GOSUB1060 430 PRINT"[147]":Q=4:GOSUB1070:PRINT"ES FOLGEN NUN ZWEI PARAMETER,DIE"; 440 PRINT" FUER DAS AUSMASS DER STAUCHUNG VERANTWORTLICHSIND.ZUERST KOMMT "; 450 PRINT"GRAD DER VERTIKALEN STAUCHUNG (0-20).":PRINT:GOSUB1060:Q=5:PRINT"[147]" 460 GOSUB1070:PRINT"DANN DER GRAD DER HORIZONTALEN STAUCHUNG(0-23).ZU DEN "; 470 PRINT"PARAMETERN DER STAUCHUNGENGIBT ES SPAETER NOCH WEITERE AUSFUEHRUNGEN." 480 GOSUB1060:PRINT"[147]":Q=6:GOSUB1070 490 PRINT"DIE SPRITENUMMER (0-7) BEWIRKT,DASS DER ENTSPRECHENDE ZEIGER AUF "; 500 PRINT"DEN SPRITEBLOCKDES SPRITES,DER VERAENDERT WERDEN SOLL, AUF DEN NEUEN"; 510 PRINT" BLOCK GESCHALTET WIRD(BEI 0 WUERDE ZUM BEISPIEL DER ZEIGER 2040" 520 PRINT"VERAENDERT WERDEN)." 530 PRINT"IST DIE NUMMER GROESSER ALS 7,SO WIRD  DIESE UMSCHALTUNG UNTERDRUE"; 540 PRINT"CKT.":GOSUB1060 550 PRINT"[147]VERAENDERN SIE NUN MIT HILFE DER FUNKTIONSTASTEN DEN SPRITE:" 560 PRINT"F1[146] - DER GRAD DER VERTIKALEN STAUCHUNG WIRD ERHOEHT (BIS 20)" 570 PRINT"F3[146] - DER GRAD DER VERTIKALEN STAUCHUNG WIRD NIEDRIGER (BIS 0)" 580 PRINT"F5[146] - DER GRAD DER HORIZONTALEN STAUCHUNG WIRD ERHOEHT (BIS 23)" 590 PRINT"F7[146] - DER GRAD DER HORIZONTALEN STAUCHUNG WIRD NIEDRIGER (BIS 0)" 600 PRINT"RETURN[146] - VERLASSEN DIESES PROGRAMMTEILS" 610 POKEV+8,170:POKEV+9,180:POKE2044,S(4):POKEV+21,16:POKEV+43,4 620 PRINT"":A$="00":B$="00":A=0:B=0 630 PRINT"[145] VERTIKAL:"+A$+"[146] HORIZONTAL:"+B$+"[146]" 640 C$="":GETC$:IFC$=""THEN640 650 IFASC(C$)=13THEN730 660 IFC$="[133]"THENIFA<20THENA=A+1 670 IFC$="[134]"THENIFA>0THENA=A-1 680 IFC$="[135]"THENIFB<23THENB=B+1 690 IFC$="[136]"THENIFB>0THENB=B-1 700 SYSAD,S(4),S1(4),A,B,4:A$=RIGHT$(STR$(A),2):IFA<10THENA$="0"+RIGHT$(A$,1) 710 B$=RIGHT$(STR$(B),2):IFB<10THENB$="0"+RIGHT$(B$,1) 720 GOTO630 730 POKEV+8,0:PRINT"[147]MIT SHRINKSPRITE 64 KANN MAN ALSO OHNE GROSSEN AUFWAND "; 740 PRINT"EINEN SPRITE EFFEKTVOLL VERAENDERN:ER VERAENDERT SEINE GROESSE" 750 PRINT"(SEINE ENTFERNUNG),WIRD DUENNER ODER DREHT SICH SOGAR." 760 PRINT"DURCH DIE EINFACHE UND SCHNELLE PARA- METERUEBERGABE KANN JEDER "; 770 PRINT"ANWENDER SHRINKSPRITE 64 IN SEINEN EIGENEN PRO- GRAMMEN VERWE"; 780 PRINT"NDEN.":GOSUB1060:PRINT"[147]WUSSTEN SIE SCHON,WIE DIE WELT AUS DER" 790 PRINT"SICHT VON PACMAN AUSSIEHT ?" 800 FORX=1TO4000:NEXTX 810 PRINT"[147][183][183][183][183][183][183][183][183][183][183][183][183][208][205] [206][207][183][183][183][183][183][183][183][183][183][183][183]"; 820 PRINT" [170] [205] [206] [180]" 830 PRINT" [170] [205] [206] [180]" 840 PRINT" [170] [170] [206] [180]" 850 PRINT" [170] [170][208][205] [206] [180]" 860 PRINT" [170] [170][170] [205] [206] [180]" 870 PRINT" [170] [170][170] [205] [206] [180]" 880 PRINT" [170] [170][170] [170] [180] [180]" 890 PRINT" [170] [170][170] [206] [205] [180]" 900 PRINT" [170] [170][170] [206] [205] [180]" 910 PRINT" [170] [170][186][206] [205] [180]" 920 PRINT" [170] [170] [205] [180]" 930 PRINT" [170] [206] [205] [180]" 940 PRINT" [170] [206] [205] [180]" 950 PRINT"[175][175][175][175][175][175][175][175][175][175][175][175][186][206] [205][204][175][175][175][175][175][175][175][175][175][175][175]":FORX=1TO800:NEXTX 960 SYSAD,S(4),S1(0),4,5,0:SYSAD,S(4),S1(4),10,10,4:POKEV+8,175:POKEV+9,140:A=0 970 FORX=9TO0STEP-1 980 A=A+1.3:SYSAD,S(4),S1(4),X,X,4:POKEV+9,140+A:NEXTX:POKE198,0 990 POKEV+23,1:POKEV+29,1:POKEV,164:POKEV+1,147 1000 POKEV+39,4:POKEV+21,1:POKE198,0 1010 A=0:FORX=3TO0STEP-1:A=A+3:SYSAD,S(4),S1(0),X,X+1,0:POKE198,0 1020 POKEV+1,147+A:NEXTX:SYSAD,S(4),S1(0),0,0,0:X=0 1030 FORQ=1TO25:SYSAD,S(4),S1(0),0,X,0:X=23-X:FORY=1TO50:NEXTY:NEXTQ:PRINT"[147]" 1040 GOTO110 1050 END 1060 PRINTSPC(17)"TASTE[146]":POKE198,0:WAIT198,255:RETURN 1070 FORX=1TO6:EN$(X)="":AN$(X)="":NEXT:AN$(Q)="":EN$(Q)="[146]" 1080 PRINT"SYS ";:FORX=1TO6:PRINT",";AN$(X)A$(X)EN$(X);:NEXT:PRINT:PRINT:RETURN 1090 DATA0,0,0,127,254,0,127,255,128,127,255,192,63,255,224,63,255,240,63,7 1100 DATA240,62,1,248,62,1,248,62,0,248,62,0,248,62,0,248,62,1,248,62,3,248 1110 DATA63,7,240,63,255,240,127,255,224,127,255,192,127,255,128,127,254,0,0 1120 DATA0,0,0,0,0,0,63,255,240,127,255,248,127,255,248,63,255,240,62,0,0,62 1130 DATA0,0,62,0,0,63,255,192,63,255,224,63,255,224,63,255,192,62,0,0,62,0 1140 DATA0,62,0,0,62,0,0,63,255,240,127,255,248,127,255,248,63,255,240,0,0,0 1150 DATA0,0,0,0,60,0,60,127,0,254,127,195,254,127,255,254,127,255,254,125,255 1160 DATA190,124,126,62,124,126,62,124,60,62,124,24,62,124,0,62,124,0,62,124 1170 DATA0,62,124,0,62,124,0,62,124,0,62,124,0,62,124,0,62,124,0,62,56,0,28 1180 DATA0,0,0,0,0,254,0,3,255,128,7,255,192,15,255,224,31,255,240,31,199,240 1190 DATA63,129,248,63,1,248,62,0,248,62,0,248,62,0,248,63,1,248,63,3,248,31 1200 DATA199,240,31,255,240,15,255,224,7,255,192,3,255,128,0,254,0,0,0,0,0,1 1210 DATA255,128,15,255,240,31,255,248,63,255,252,60,126,60,121,188,30,115 1220 DATA216,14,241,153,143,240,27,207,248,61,159,252,126,63,255,255,255,254 1230 DATA237,207,252,76,143,248,0,15,250,49,47,255,51,191,255,255,255 1240 DATA247,60,239,226,24,71,66,24,66