10 REM@ \FASTFOR:\SHORTIF:\DATATYPE BYTE 12 REM@ \WORD #,I=FAST,X=FAST 13 REM@ \CONSTANT VIC,BACK,PAPER,SPRON, PRIOR,SCOL,XHI,IRQ,OFF,VOL,MEM 15 REM@ \BYTE A,X1,X2,Y1,Y2,XA,XE,YA,YE,CO,CC,SX,SY,V1,H1,V2,H2,Y(,YS(,CO( 16 REM@ \BYTE P2(,SN 17 DIM SC(24),CO(23),X(7),Y(7),XS(7),YS(7),P2(7) 20 VIC=53248:BACK=VIC+32:PAPER=VIC+33: SPREN=VIC+21:OFF=VIC+17:IRQ=56333 21 XHI=VIC+16:SCOL=VIC+39:PRI=VIC+27: MEM=2040 22 VOL=54272+24 28 GOSUB13000:REM VORBEREITUNG 29 POKE BACK,0:POKE PAPER,0:POKE SPREN,0 30 PRINT"[147] *** [194]ASIC-[194]OSS *** 32 [153]"(null)ROGRAMMIEREN IN PEEKASIC MIT DER 34 PRINT"[199]ESCHWINDIGKEIT VON [205]ASCHINENSPRACHE ! 40 [153]"PRINT#(null)NMOEGLICH? (null)EIN! 42 PRINT"[196]IESES [208]ROGRAMM WURDE VON VORNE BIS 44 [153]"HINTEN IN PEEKASIC PROGRAMMIERT. 50 PRINT"[196]ANN WURDE ES VOM [194]ASIC-[194]OSS IN REINE 52 [153]"(null)ASCHINENSPRACHE UEBERSETZT. 60 PRINT"[194]ITTE UEBERZEUGEN [211]IE SICH VON SEINER 70 [153]"CHR$ESCHWINDIGKEIT ! 90 GOTO20000 100 PRINT"[147] [211]O SIEHT ES AUS, WENN DIE [194]ILD- 110 [153]" SCHIRMFARBE IN SCHNELLER ASCOLGE 120 PRINT" VERAENDERT WIRD:":GOSUB10020 130 POKE IRQ,127:REM INTERRUPT AUS 135 POKE OFF,0:REM BILDSCHIRM AUS 150 FOR I=0 TO60000 180 POKE BACK,14 190 POKE BACK,3 200 POKE BACK,3 210 POKE BACK,14 220 POKE BACK,6 240 NEXTI 250 POKE IRQ,129:POKE OFF,27 253 PRINT"[147] ODER SO:":GOSUB10020 265 POKE IRQ,127:REM INTERRUPT AUS 266 POKE OFF,0:REM BILDSCHIRM AUS 270 FOR I=0 TO 30000 271 POKE BACK,0 272 POKE BACK,2 273 POKE BACK,2 274 POKE BACK,2 275 POKE BACK,8 276 POKE BACK,8 277 POKE BACK,8 280 POKE BACK,7 281 POKE BACK,1 282 POKE BACK,1 283 POKE BACK,7 284 POKE BACK,8 285 POKE BACK,8 286 POKE BACK,8 287 POKE BACK,2 288 POKE BACK,2 289 POKE BACK,2 290 POKE BACK,2 291 POKE BACK,0 295 NEXT 300 POKE IRQ,129:POKE OFF,27:RETURN 305 : 310 PRINT"[147] [215]ENN EIN MIT DEM [194]ASIC-[194]OSS 320 [153]" COMPILIERTES PEEKASICPROGRAMM DEN 330 PRINT" [194]ILDSCHIRM BEARBEITET, SIEHT DAS 340 [153]" SO AUS: 350 GOSUB10020:X1=10:X2=1:Y1=14:Y2=4 355 GOSUB11000 360 I=0 370 X1=X1+33:IFX1>=40THENX1=X1-40 375 X2=X2+17:IFX2>=40THENX2=X2-40 380 Y1=Y1+21:IFY1>=25THENY1=Y1-25 385 Y2=Y2+7 :IFY2>=25THENY2=Y2-25 390 CO=(CO+1AND15) 395 GOSUB12000 400 I=I+1 405 IF I<1000 AND PEEK(198)=0 THEN370 410 MU=11:GOSUB14000:PRINT" ODER SO:" 415 GOSUB10020 420 GOSUB11000:H1=1:V1=2:H2=2:V2=1:I=0 425 X1=1:Y1=2:X2=37:Y2=22:CC=1 430 IF X1 =0 THEN H1=-H1 440 IF X2<=1 THEN H2=-H2 450 IF Y1 =0 THEN V1=-V1 460 IF Y2 =0 THEN V2=-V2 470 IF X1 =39 THEN H1=-H1 480 IF X2>=38 THEN H2=-H2 490 IF Y1 =24 THEN V1=-V1 500 IF Y2 =24 THEN V2=-V2 510 X1=X1+H1:X2=X2+H2 520 Y1=Y1+V1:Y2=Y2+V2 525 CO=CO(CC):CC=CC+1:IFCC>23THENCC=0 530 GOSUB12000 540 I=I+1:IFI<1000ANDPEEK(198)=0THEN430 550 MU=500:GOSUB14000:RETURN 560 : 570 PRINT"[147][206]UN HUEPFEN EIN PAAR [211]PRITES UEBER 580 [153]"DEN PEEKILDSCHIRM. ATNLLERDINGS ERGIBT SICH 590 PRINT"HIER EIN [208]ROBLEM: [196]AS [208]ROGRAMM IST 600 [153]"ZU SCHNELL. VALS MUSS ALSO GEBREMST 605 PRINT"WERDEN:":GOTO1000 610 : 620 FOR I=0 TO 7 630 POKE MEM+I,13 640 POKE SCOL+I,I+1 645 X(I)=130+I*25:Y(I)=50+I*18 647 XS(I)=-I:YS(I)=I 650 NEXT I 660 POKE PRI,0:POKE SPREN,255 662 A=0:C=0 665 : 670 FOR I=0 TO 7 690 IF X(I)AND256 THEN POKE XHI,PEEK(XHI) OR P2(I):GOTO710 700 POKE XHI,PEEK(XHI)AND (255-P2(I)) 710 POKE VIC+I+I,X(I)AND255 715 POKE VIC+1+I+I,Y(I) 720 X(I)=X(I)+XS(I) 730 Y(I)=Y(I)+YS(I) 740 IF X(I)>320 THEN X(I)=640-X(I):XS(I)=-XS(I):GOSUB950 750 IF X(I)<24 THEN X(I)=48-X(I):XS(I)=-XS(I):GOSUB950 760 IF Y(I)<50 THEN Y(I)=100-Y(I):YS(I)=-YS(I):GOSUB950 770 IF Y(I)>229 THEN Y(I)=458-Y(I):YS(I)=-YS(I):GOSUB950 800 REM BESCHLEUNIGUNG X UND Y 810 IF A<3 THEN 880 820 XS(I)=XS(I)-1:YS(I)=YS(I)+1 880 NEXT I 882 IFA=3 THEN A=0 883 A=A+1 886 REM AUF RASTERSTRAHL WARTEN 887 IF B THEN IF (PEEK(53248+17)AND128)=0 THEN 887 890 IF PEEK(198)=0 THEN 670 900 POKE198,0: RETURN 950 POKE VOL,SN:SN=15-SN:RETURN 990 END 999 : 1000 GOSUB10600:B=0:GOSUB610 1010 PRINT"JETZT IST ES GEBREMST UND WIRD 1020 [153]"MIT DEM (null)ASTERSTRAHL SYNCHRONISIERT. 1030 GOSUB10600 1050 B=-1:GOSUB610 1090 RETURN 9999 : 10000 TI$="000000":GOTO10100 10010 TI$="000030":GOTO10100 10020 TI$="000035":GOTO10100 10100 GOSUB10600:GOTO10500 10500 POKE198,0 10510 GET A$:IFA$=""ANDTI$<"000040"THEN10510 10520 RETURN 10600 PRINT" - [212]ASTE -":RETURN 10998 : 11000 FORI=1024TO2023:POKEI,160:NEXT 11010 RETURN 11997 : 11998 REM RECHTECK ZEICHNEN MIT FARBE (X1,Y1,X2,Y2,CH,CO) 11999 REM (X1,Y1,X2,Y2,CH,CO) 12000 IF X2>=X1 THEN XA=X1:XE=X2:GOTO12002 12001 XA=X2:XE=X1 12002 IF Y2>=Y1 THEN YA=Y1:YE=Y2:GOTO12050 12003 YA=Y2:YE=Y1 12050 FOR Y=SC(YA) TO SC(YE) STEP 40 12060 FOR X=Y+XA TO Y+XE 12070 POKE X,CO:NEXT X,Y 12090 RETURN 12998 : 12999 REM MULTIPLIKATIONSTABELLE 13000 FOR I=0 TO 24:SC(I)=55296+I*40:NEXT 13010 REM FARBEN EINLESEN 13020 FOR A=0 TO 23:READ CO(A):NEXT 13030 MP=0 13040 FOR A=0 TO 7:P2(A)=2^A:NEXT 13050 FOR I=832 TO 832+62 13060 READ A:POKE I,A:NEXT I 13090 RETURN 13499 REM FARBDATEN 13500 DATA 0,6,14,3,1,3,14,6,0,2,8,7,1,7,8,2,0,11,5,13,1,13,5,11 13599 REM SPRITEDATEN 13600 DATA 0,255, 0, 3,255,192, 15 13601 DATA 255,240, 31,255,248, 63,255 13602 DATA 252,127,255,254,127,255,254 13603 DATA 255,255,255,255,255,255,255 13604 DATA 255,255,255,255,255,255,255 13605 DATA 255,255,255,255,255,255,255 13606 DATA 127,255,254,127,255,254, 63 13607 DATA 255,252, 31,255,248, 15,255 13608 DATA 240, 3,255,192, 0,255, 0 13998 : 13999 REM BILDSCHIRM LOESCHEN (MU) 14000 I=1024:A=21 14010 FOR A=1TO5:NEXT A 14020 POKEI,32:I=I+MU 14030 IFI>=2045THENI=I-1021 14040 IFI<>1024THEN14010 14050 RETURN 20000 : 20010 PRINT"[215]AEHLEN [211]IE: 20020 [153]" 1...PEEKILDSCHIRMDEMO 20030 PRINT" 2...[211]PRITEDEMO 20040 [153]" 3...LEFT$INTERGRUNDDEMO 20050 PRINT" 4...[206]OCH WAS 20090 [153]"((null)HILO LEFT$ERRMANN, 1988) 20092 : 20094 : 20100 TI$="000000":GOSUB10500 20110 IF A$>="1" AND A$<="4" THEN MP=VAL(A$):GOTO20130 20120 IF A$<>""THEN20100 20125 MP=MP+1:IF MP>4 THEN MP=1 20130 ON MP GOSUB 310,570,100,21000 20140 GOTO29 21000 PRINT"[147][211]IE SOLLTEN ZUM [214]ERGLEICH MAL DIE 21010 [153]"PEEKASIC-(null)ERSION DIESES (null)ROGRAMMS 21015 PRINT"ABLAUFEN LASSEN ! 21020 [153]"STR$AS PEEKASICPROGRAMM ZEIGT AUCH, DASS 21030 PRINT"DER [208]ROGRAMMIERER ALLE [205]OEGLICHKEITEN 21040 [153]"VON PEEKASIC AUSREIZEN KANN, OHNE DASS ER 21050 PRINT"UNNOETIG EINGESCHRAENKT WIRD. 21060 [153]"STR$ENN AUSSER SOLCHEN PEEKILDSCHIRM- 21070 PRINT"SPIELEREIEN KANN MAN AUCH ERNSTERE 21080 [153]"ATNNWENDUNGEN PROGRAMMIEREN, DA DER 21090 PRINT"[194]ASIC-[194]OSS Z.[194]. EINE WESENTLICH 21100 [153]"LEISTUNGSFAEHIGERE (null)TRINGVERWALTUNG 21110 PRINT"BESITZT ALS DER [194]ASICINTERPRETER. [196]ARUM 21120 [153]"IST NUN AUCH DIE CHR$ARBAGE-LENOLLECTION 21130 PRINT"UM EINIGES SCHNELLER.":GOSUB10000 21140 PRINT"[147][215]AS DAS HEISST, WERDEN [211]IE MERKEN, 21150 [153]"WENN (null)IE FOLGENDES (null)ROGRAMM ABLAUFEN 21160 PRINT"LASSEN: 21170 [153]"10 DIM A$(2000) 21180 PRINT"20 FOR I=1 TO 2000 21190 [153]"30 A$(I)=CHR$(65):NEXT I 21200 PRINT"40 TI$="000000":PRINT"CHR$(34)"FREI"CHR$(34)"FRE(0);TI/60 21210 [153]"ATNLLEIN DER ASC(null)VAL-PEEKEFEHL BENOETIGT CA. 21220 PRINT"339 [211]EKUNDEN, DA ER EINE [199]ARBAGE- 21230 [153]"LENOLLECTION AUSLOEST. 21240 PRINT"[196]AS GLEICHE [208]ROGRAMM KOENNEN [211]IE NUN 21250 [153]"IN DER COMPILIERTEN (null)ERSION STARTEN: ":[141]10000 21260 [153]"LOAD GESTARTET... 21300 DIM A$(2000) 21310 FOR I=1 TO 2000 21320 A$(I)=CHR$(65):NEXT I 21330 TI$="000000":PRINT"FREI"FRE(0);TI/60 21335 PRINT"[196]AMIT IST DIE [199]ARBAGE-[195]OLLECTION 21336 [153]"IN DIESEM ASCALL ETWA 680 MAL SCHNELLER ! 21340 GOSUB10010 21400 PRINT"[147][196]IE [204]EISTUNGSDATEN DES [194]ASIC-[194]OSS: 21410 [153]"- KURZE LENOMPILATE 21420 PRINT"- OPTIMIERTER UND EFFIZIENTER [195]ODE 21430 [153]"- SEHR SCHNELLE (null)ARIABLENTYPEN 21440 PRINT"- EXTREM KURZE [195]OMPILIERZEITEN 21450 [153]"- EINE HOCHFLEXIBLE LENOMPILERARCHITEKTUR 21460 PRINT"- 62 [203][194]YTE [194]ASICSPEICHER 21470 [153]"- EINE SCHNELLE ASC(null)(null)-(null)VAL(null)(null)-(null)CHLEIFE 21480 PRINT"- GEPACKTE UND SCHNELLE [196]ATEN BEI [196][193][212][193] 21490 [153]"- STARK BESCHLEUNIGTE ATNRRAYS 21500 PRINT"- BELIEBIG LANGE [214]ARIABLENNAMEN 21510 [153]"- GENAUE DEUTSCHE ASCEHLERMELDUNGEN 21520 PRINT"- [197]RZEUGUNG ECHTEN [205]ASCHINENCODES 21525 [153]"- KEIN (null)OPIERSCHUTZ 21530 PRINT" UND NOCH EINIGES MEHR... 21540 [141]10000 21550 [153]"LOAD RIGHT$CH BIN JEDEM DANKBAR, DER DIESES 21560 PRINT" [196]EMOPROGRAMM WEITERVERBREITET. 21570 [137]10000