10 REM *********************** 20 REM *** PISTEN-EDITOR *** 30 REM ***-----------------*** 40 REM *** (W) 1987 BY *** 50 REM *** N.BERGERHOFF *** 60 REM *********************** 70 : 80 POKE51,0:POKE52,96:POKE55,0:POKE56,96 85 ZZ=0:SZ=0:RP=32:ZP=24:SP=36864:SL=36877:FL=-1:PP=25057 90 DIM T(13,1) 100 POKE53280,0:POKE53281,6:PRINT"[147]"CHR$(142)CHR$(8) 105 PRINTTAB(7)"INITIALIZING DATASPACE ..." 110 NA$="EDIT":AD=49152:GOSUB200 120 NA$="CHAR":AD=14336:GOSUB200 130 NA$="START":AD=24576:GOSUB200:GOTO230 200 SYS(57812)NA$,8:POKE782,INT(AD/256):POKE781,AD-PEEK(782)*256:POKE780,0:SYS65493 210 RETURN 230 SYS49643,25057,36863,32:SYS49643,36864,40959,0 231 FORI=1TO13:READA,B:T(I,0)=A:T(I,1)=B:NEXT 232 DATA 9,6,9,7,9,8,9,9,9,10,9,11,9,12,23,6,23,7,35,6,35,7,35,8,35,9 233 FORI=0TO12:READA:POKE36864+I,A:NEXT 234 DATA 1,1,1,1,1,1,2,1,2,1,2,2,2 249 POKE53272,30 250 PRINT"[147]":POKE49556,5:POKE49555,30:SYS49454 260 FORI=30TO154:POKE49555,I:FORT=0TO10:NEXTT,I 270 PRINT"[147][158]----------------------------------------"; 275 PRINT" 'PISTEN-EDITOR' BY N.BERGERHOFF" 280 PRINT"----------------------------------------" 285 PRINT" STEIGUNG RUNDUNG SONSTIGES" 290 PRINT" -45 [154]RUNTER [153]SPRUNG " 295 PRINT" [154]-25 [150]HOCH [153]TANNE " 300 PRINT" -15 [153]HAUS " 305 PRINT" [153] 0 POINTER: [153]ZIEL " 310 PRINT"  15  FREI:" 315 PRINT" [150] 25 SPALTEN:" 320 PRINT" [158] 45  ZEILEN:" 330 SYS49425:POKE49152,225:POKE49153,97:POKE56075,0:GOTO370 340 : 345 BP=PEEK(49152)+256*PEEK(49153):RETURN 350 POKE1024+40*Y+X,31:RETURN 360 POKE1024+40*Y+X,32:RETURN 370 K=1:X=T(K,0):Y=T(K,1):GOSUB350 400 POKE53280,0:GOSUB345:PRINT"[158]"TAB(21);BP 410 I=36863-BP:IFI<1500THEN:IFCO=0THENPRINT""TAB(21)I;"[157] ":CO=1:GOTO421 420 PRINTTAB(21)I;"[157] ":CO=0 421 PRINTTAB(21)SZ"[157] " 422 PRINTTAB(21)ZZ"[157] " 423 IFI<850THEN2240 425 GETA$:IFA$=" "THENGOSUB750 426 IFA$="[133]"THENGOSUB2500 430 Z=PEEK(56320) 440 IF(ZAND1)=0THENR=K-1:GOTO480 450 IF(ZAND2)=0THENR=K+1:GOTO480 460 IF(ZAND16)=0THEN505 470 GOTO400 480 IFR<1THENR=1 490 IFR>13THENR=13 500 X=T(K,0):Y=T(K,1):GOSUB360:K=R:X=T(K,0):Y=T(K,1):GOSUB350:GOTO400 505 POKE53280,11 510 ONKGOSUB530,800,860,950,990,2000,2040,2080,2120,2170,2180,2200,2240 520 GOTO400 530 GOSUB600:FL=-1 535 RP=RP+1 540 IF(PEEK(SL-1)AND15)=1THEN550 545 ZP=ZP+1 550 GOSUB620 555 POKE1024+40*ZP+RP,64 560 GOSUB680 565 GOSUB930:RETURN 600 IFFL=-1THENPOKESL,2:GOTO610 605 POKESL,1 610 SL=SL+1:RETURN 620 IFRP<40ANDZP<25ANDZP>12THENRETURN 625 X=(PEEK(SP)AND15) 630 IFX<>1ANDX<>2ANDX<>3THENPOKE53280,2:FORT=0TO50:NEXT:RETURN 635 ONXGOSUB650,660,670 640 RP=RP-1:SP=SP+1:SZ=SZ+1:GOTO620 650 SYS49192:PP=PP+12:RETURN 660 SYS49324:PP=PP+52:ZP=ZP-1:ZZ=ZZ+1:GOSUB1060:RETURN 670 SYS49359:PP=PP+12:ZP=ZP+1:RETURN 680 IFRP<39ORZP>23THENRETURN 690 POKE2023,160 699 BR=0 701 FORI=1983TO1583STEP-40 705 IFPEEK(I)<>32THENBR=1 710 IFBR=0THENPOKEI,160 715 NEXTI:RETURN 720 FORA=1583TO2023STEP40 725 SYS49560,A,PP:PP=PP+1:NEXT:RETURN 730 GOSUB720 735 FORA=1984TO2023 740 SYS49560,A,PP:PP=PP+1:NEXT:RETURN 745 : 750 POKE53280,11:IFSP<36866THENRETURN 755 SYS49425:X=6:GOSUB1090:POKE49152,225:POKE49153,97:FORT=1TO500:NEXTT 760 FORI=36864TOSP-1 765 POKE53280,11:X=(PEEK(I)AND15) 770 IFX<>1ANDX<>2ANDX<>3THENRETURN 771 IF(PEEK(I)AND16)THENPOKE53280,13 775 ONXGOSUB785,790,795 780 NEXT:X=1:GOSUB1090:RETURN 785 SYS49192:RETURN 790 SYS49324:RETURN 795 SYS49359:RETURN 800 GOSUB600:FL=-1 805 RP=RP+1 810 IF(PEEK(SL-1)AND15)=1THEN820 815 ZP=ZP+1 820 GOSUB620:GOSUB920:POKEX,66:GOSUB680:GOSUB930 825 RP=RP+1:GOSUB620:GOSUB920:POKEX,67 830 GOSUB680:GOSUB930 835 POKESL,1:SL=SL+1:RETURN 860 GOSUB600:FL=-1 865 RP=RP+1 870 IF(PEEK(SL-1)AND15)=1THEN880 875 ZP=ZP+1 880 GOSUB620:GOSUB920:POKEX,70:GOSUB680:GOSUB930 885 RP=RP+1:GOSUB620:GOSUB920:POKEX,71:GOSUB680:GOSUB930 890 RP=RP+1:GOSUB620:GOSUB920:POKEX,72:GOSUB680:GOSUB930 895 RP=RP+1:GOSUB620:GOSUB920:POKEX,73:GOSUB680:GOSUB930 900 FORI=SLTOSL+2:POKEI,1:NEXT:SL=SL+3:RETURN 920 X=1024+40*ZP+RP:RETURN 930 IF(PEEK(SP-1)AND15)=2THEN940 935 PP=PP-12:GOSUB720:RETURN 940 PP=PP-52:GOSUB730:RETURN 950 GOSUB600:FL=0 955 RP=RP+1 960 IF(PEEK(SL-1)AND15)=1THEN970 965 ZP=ZP+1 970 GOSUB620 975 GOSUB920:POKEX,160 980 GOSUB680:GOSUB930:RETURN 990 IFRP<38THEN2003 991 IFZP<14AND(PEEK(SP)AND15)<>3THEN2003 994 GOSUB1040:FL=1 995 RP=RP+1 1000 IF(PEEK(SL-1)AND15)=1THEN1010 1005 ZP=ZP-1 1010 GOSUB620:GOSUB920:POKEX,74:GOSUB680:GOSUB930 1015 RP=RP+1:GOSUB620:GOSUB920:POKEX,75:GOSUB680:GOSUB930 1020 RP=RP+1:GOSUB620:GOSUB920:POKEX,76:GOSUB680:GOSUB930 1025 RP=RP+1:GOSUB620:GOSUB920:POKEX,77:GOSUB680:GOSUB930 1030 FORI=SLTOSL+2:POKEI,1:NEXT:SL=SL+3:RETURN 1040 IFFL=-1THENPOKESL,1:GOTO1050 1045 POKESL,3 1050 SL=SL+1:RETURN 1060 X=1983 1065 IFPEEK(X)<>32THEN1075 1070 X=X-1:GOTO1065 1075 X=X+40 1080 FORI=1984TOX:POKEI,160:NEXT 1085 IFZP<25THENRETURN 1086 I=X-1983:SL=SL+1-((ZP-24)*(RP-I))/(ZP-24):ZP=24:RP=I+1:RETURN 1090 FORI=55855TO56295STEP40 1095 POKEI,X:NEXT:RETURN 2000 IFRP<38THEN2003 2001 IFZP<14AND(PEEK(SP)AND15)<>3THEN2003 2002 GOTO2005 2003 POKE53280,2:FORT=1TO50:NEXT:RETURN 2005 GOSUB1040:FL=1 2010 RP=RP+1 2015 IF(PEEK(SL-1)AND15)=1THEN2025 2020 ZP=ZP-1 2025 GOSUB620:GOSUB920:POKEX,68:GOSUB680:GOSUB930 2030 RP=RP+1:GOSUB620:GOSUB920:POKEX,69:GOSUB680:GOSUB930 2035 POKESL,1:SL=SL+1:RETURN 2040 IFRP<38THEN2003 2045 IFZP<14AND(PEEK(SP)AND15)<>3THEN2003 2050 GOSUB1040:FL=1 2055 RP=RP+1 2060 IF(PEEK(SL-1)AND15)=1THEN2070 2065 ZP=ZP-1 2070 GOSUB620:GOSUB920:POKEX,65:GOSUB680:GOSUB930 2075 RETURN 2080 GOSUB600:FL=-1 2085 RP=RP+1 2090 IF(PEEK(SL-1)AND15)=1THEN2100 2095 ZP=ZP+1 2100 GOSUB620:GOSUB920:POKEX,78:GOSUB680:GOSUB930 2105 RP=RP+1:GOSUB620:GOSUB920:POKEX,79:GOSUB680:GOSUB930 2110 RP=RP+1:GOSUB620:GOSUB920:POKEX,80:GOSUB680:GOSUB930 2115 POKESL,1:POKESL+1,1:SL=SL+2:RETURN 2120 IFRP<38THEN2003 2125 IFZP<14AND(PEEK(SP)AND15)<>3THEN2003 2130 GOSUB1040:FL=1 2135 RP=RP+1 2140 IF(PEEK(SL-1)AND15)=1THEN2150 2145 ZP=ZP-1 2150 GOSUB620:GOSUB920:POKEX,81:GOSUB680:GOSUB930 2155 RP=RP+1:GOSUB620:GOSUB920:POKEX,82:GOSUB680:GOSUB930 2160 RP=RP+1:GOSUB620:GOSUB920:POKEX,83:GOSUB680:GOSUB930 2165 POKESL,1:POKESL+1,1:SL=SL+2:RETURN 2170 POKESL-1,(PEEK(SL-1)OR16):FORT=0TO100:NEXT:RETURN 2180 IFRP<38THEN2003 2181 IFZP>16ANDFL=-1THEN2185 2182 IFZP<18THEN2003 2185 GOSUB950:GOSUB920:POKEX-80,85:POKEX-120,88:GOSUB930 2190 GOSUB950:GOSUB920:POKEX-40,84:POKEX-80,86:POKEX-120,89:POKEX-160,91:GOSUB930 2195 GOSUB950:GOSUB920:POKEX-80,87:POKEX-120,90:GOSUB930:RETURN 2200 IFRP<38THEN2003 2205 IFZP>16ANDFL=-1THEN2215 2210 IFZP<18THEN2003 2215 GOSUB950:GOSUB920:POKEX-40,104:POKEX-80,100:POKEX-120,95:POKEX-160,92:GOSUB930 2220 GOSUB950:GOSUB920:POKEX-40,105:POKEX-80,101:POKEX-120,96:POKEX-160,93:GOSUB930 2225 GOSUB950:GOSUB920:POKEX-40,106:POKEX-80,102:POKEX-120,97:POKEX-160,94:GOSUB930 2230 GOSUB950:GOSUB920:POKEX-40,107:POKEX-80,103:POKEX-120,98:GOSUB930 2235 GOSUB950:GOSUB920:POKEX-120,99:GOSUB930:RETURN 2240 FORN=1TO21:GOSUB950:NEXT:POKESL,1:POKESL+1,4:SL=SL+2 2245 GOSUB920:POKEX-40,122:POKEX-80,122:POKEX-120,122:POKEX-160,119 2250 POKEX-200,116:POKEX-240,113:GOSUB930 2255 GOSUB950:GOSUB920:POKEX-160,120:POKEX-200,117:POKEX-240,114:GOSUB930 2260 GOSUB950:GOSUB920:POKEX-160,121:POKEX-200,118:POKEX-240,115:GOSUB930 2265 FORN=1TO5:GOSUB950:NEXT 2270 GOSUB920:POKEX-40,110:GOSUB930:GOSUB950:GOSUB920:POKEX-40,111 2275 POKEX-80,109:GOSUB930:GOSUB950:GOSUB920:POKEX-40,112:GOSUB930 2280 FORN=1TO4:GOSUB950:NEXT:GOSUB2200 2285 FORN=1TO3:GOSUB950:NEXT 2290 FORI=1TO1000:NEXT:GOSUB750:FORI=1TO1000:NEXT:SYS49486 2295 POKE53280,0:POKE53281,6:PRINT"[147]" 2300 PRINT"PISTE ABSPEICHERN ? "; 2305 GETA$:IFA$<>"J"ANDA$<>"N"THEN2305 2310 PRINTA$:PRINT"SICHER ?" 2315 GETB$:IFB$<>"J"ANDB$<>"N"THEN2315 2320 IFB$="N"THEN2295 2325 IFA$="N"THENPOKE53272,20:RUN 2330 PRINT:INPUT"NAME:";A$:NA$=LEFT$(A$,13)+".PI" 2335 SYS(57812)NA$,8:POKE193,0:POKE194,96 2336 POKE174,PEEK(49152):POKE175,PEEK(49153):SYS62957:GOTO2400 2340 OPEN15,8,15:INPUT#15,A,B$,C,D:CLOSE15:RETURN 2350 PRINT"FEHLER !!!":PRINTA,B$,C,D:FORI=1TO2000:NEXT:RETURN 2400 GOSUB2340:IFA<>0THENGOSUB2350:GOTO2295 2410 NA$=LEFT$(A$,13)+".SL":SYS(57812)NA$,8:POKE193,0:POKE194,144 2420 POKE175,(SP+1)/256:POKE174,SP+1-PEEK(175)*256:SYS62957 2430 GOSUB2340:IFA<>0THENGOSUB2350:GOTO2295 2440 PRINT"[147]":END 2500 POKE53280,11:IFSP<36866THENRETURN 2501 ZZ=0:SZ=0:PP=25057 2505 SYS49425:X=1:GOSUB1090:POKE49152,225:POKE49153,97 2510 FORI=36864TOSP-1 2511 FORT=0TO10:NEXTT 2515 POKE53280,11:X=(PEEK(I)AND15) 2525 IF(PEEK(I)AND16)THENPOKE53280,13 2530 ONXGOSUB2560,2565,2570 2531 SZ=SZ+1 2535 IF(PEEK(56320)AND16)=16THEN2545 2540 X=I+1:I=SP:SP=X:GOTO2550 2545 IF(PEEK(56320)AND8)<>0THEN2535 2550 NEXTI 2555 X=1:GOSUB1090:GOSUB2580:RETURN 2560 SYS49192:PP=PP+12:RETURN 2565 SYS49324:PP=PP+52:ZZ=ZZ+1:RETURN 2570 SYS49359:PP=PP+12:RETURN 2580 FORT=1583TO2023STEP40 2590 IFPEEK(T)<>32THENGOSUB2620:T=2024:GOTO2610 2595 NEXTT 2600 FORT=2022TO1984STEP-1 2605 IFPEEK(T)<>32THENGOSUB2620:T=1983 2610 NEXTT 2615 SYS49643,PP,36863,32:SL=SP+RP-19:RETURN 2620 T=T-1024:ZP=INT(T/40):RP=T-ZP*40:RETURN