home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er Special 30
/
64er_Magazin_Sonderheft_30_19xx_Markt__Technik_de_Side_B.d64
/
pisten-editor
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
7KB
|
261 lines
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 <j/n> ? ";
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