home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Run Magazine ReRun 1986 July & August
/
rerun-1986-07-08.d64
/
needlegraph
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-09-20
|
5KB
|
170 lines
10 dimpl$(16),pc$(16):ford=0to15:readpl$(d),pc$(d):next:ak$="***************"
20 p=55629:cm=p:ec=cm+(560):cc(1)=3:cc(2)=4:cc(3)=5:cc(4)=6
30 cd=54272:n=1:n1=1:n2=2:ty=31:sp=32:as=42:sb=60:rs=160
40 fr=14:ft=15:fy=40:fs=560:sh=600:s1=55483:s2=55494:dl$="":ml$=dl$+""
50 poke53280,2:poke53281,0:poke808,225
60 print"[147][159] [146] press '1' for color 1 (f1 to change)":x(1)=55297:pokex(1),3
70 print"[150][209] press '2' for color 2 (f3 to change)":x(2)=x(1)+40:pokex(2),4
80 print"[153][209] press '3' for color 3 (f5 to change)":x(3)=x(2)+40:pokex(3),5
90 print"[154][209] press '4' for color 4 (f7 to change)":x(4)=x(3)+40:pokex(4),6
100 print"[156]* shift 'x' for all color 1[146] to color 2[146]":pokes1,3:pokes2,4
110 print"[155]* shift 'p' prints design on printer":print:print
120 print" shift clr"
130 print" to clear"
140 print" shift m"
150 print" to move"
160 print" shift l"
170 print" to load"
180 print"[158] shift s"
190 print" to save"
200 print"[156] shift q"
210 print" to quit[155]"
220 print" [172][175][185][162][158]needlegraph[146][162][185][175][187]"
230 print"":forv=1to17:printtab(11)"[182]"tab(29)"[181]":next
240 print" [188][184][158]doug[184][158]&[184][158]deb[184][158]1985[184][190]";
250 print"":forv=1to15:printtab(13)ak$:next:print"[155]"
270 cc=cc(n):iffc=0thenfc=cc-((cc=0)*11):goto290
280 iffc>0thenfc=0
290 ifpeek(p-cd)=asthenpokep,fc
300 ifpeek(p-cd)=rsthenpokep-cd,sp:goto270
310 ifpeek(p-cd)=spthenpokep-cd,rs
320 getk$:ch=peek(p-cd)
330 ifk$=""then390
340 ifk$="[157]"then430
350 ifk$=""then470
360 ifk$="[145]"then510
370 ifk$=" "then550
380 goto630
390 ifch=asthenpokep,n1
400 p=p+n1:ifpeek(p-cd)=spthenp=p-ft
410 m$="[157]":ifpeek(203)=sbthench=peek(p-cd):goto550
420 goto270
430 ifch=asthenpokep,n1
440 p=p-n1:ifpeek(p-cd)=spthenp=p+ft
450 m$="":ifpeek(203)=sbthench=peek(p-cd):goto550
460 goto270
470 ifch=asthenpokep,n1
480 p=p+fy:ifpeek(p-cd)=spthenp=p-sh
490 m$="[145]":ifpeek(203)=sbthench=peek(p-cd):goto550
500 goto270
510 ifch=asthenpokep,n1
520 p=p-fy:ifpeek(p-cd)=spthenp=p+sh
530 m$="":ifpeek(203)=sbthench=peek(p-cd):goto550
540 goto270
550 pokep-cd,rs:pokep,cc(n)
560 fortt=1to100:next
570 ch=peek(p-cd):ifpeek(203)<>sbthen270
580 ifm$="[145]"thenm$="":goto470
590 ifm$=""thenm$="":goto510
600 ifm$=""thenm$="":goto430
610 ifm$="[157]"thenm$="":goto390
620 goto270
630 fk=abs(asc(k$+chr$(0))-132):on(k$>"[129]"andk$<"[137]")+1goto680
640 cc(fk)=cc(fk)+1:ifcc(fk)=16thencc(fk)=0
650 pokex(fk),cc(fk)
660 iffk=1thenpokes1,cc(fk)
670 iffk=2thenpokes2,cc(fk)
680 ifk$>"0"andk$<"5"thenpokex(n)-cd,81:n=val(k$):cc=cc(n):fc=0:pokex(n)-cd,rs
690 ifk$="[216]"thengosub1000
700 ifk$="[208]"thengosub2000
710 ifk$=""thengosub3000
720 ifk$="[147]"thengosub5000
730 ifk$="[211]"thengosub6000
740 ifk$="[204]"thengosub7000
750 ifk$="[205]"thengosub8000
760 ifk$="[209]"thenpoke808,237:end
770 goto270
1000 forvv=cmtoecstepfy:forhh=0tofr:cp=vv+hh
1010 if(peek(cp)andft)=cc(n1)thenpokecp,cc(n2)
1020 next:next:return
2000 nn=1:printml$;:input" title ";pt$:pt$=left$(pt$,16)
2010 open4,4:print#4,chr$(27)chr$(66)chr$(2)
2020 print#4,chr$(27)chr$(87)chr$(1)
2030 print#4,chr$(27)chr$(51)chr$(23)
2040 print#4,pt$:print#4," "pl$(0)"-"pc$(0)
2050 forml=cmtoecstep40:forby=mltoml+fr
2060 print#4,pl$(peek(by)andft);:next:print#4," ";pl$(nn)"-"pc$(nn)
2070 nn=nn+n1:next
2080 print#4,chr$(27)chr$(64)
2090 print#4:close4
2100 print" [181][155]"
2110 return
3000 ifpeek(p-cd)=asthenpokep,n1:
3010 p=cm:return
4000 s=1:open2,8,2,"#"
4010 print#15,"u1:"2;0;18;s:input#15,e:ife>0thenclose2:return
4020 printdl$:foren=1to8
4030 get#2,tt$,ss$,pt$,l1$,l2$:ifen=1thentl=asc(tt$+chr$(0)):s=asc(ss$+chr$(0))
4040 ifasc(pt$+chr$(0))<>129thenforby=1to27:get#2,ch$:next:goto4120
4050 get#2,i1$,i2$:id$=i1$+i2$
4060 ifid$<>"n."thenforby=1to25:get#2,ch$:next:goto4120
4070 forby=1to8:get#2,ch$:printtab(30)ch$;:next
4080 ifasc(ch$+chr$(0))<>32thenprint"-"
4090 ifasc(ch$+chr$(0))=32thenforby=1to6:get#2,ch$:next:print:print:goto4110
4100 forby=1to6:get#2,ch$:printtab(30)ch$;:next:print
4110 forby=1to11:get#2,ch$:next
4120 next
4130 printtab(30)"hit a key[155]";:wait198,1:poke198,0:gosub4200
4140 iftl>0thengoto4010
4150 close2:close15:return
4200 printdl$:forer=1to17:printtab(30)" ":next:return
5000 printml$" erase? (y/n)[155]"
5010 wait198,1:getan$:ifan$<>"y"then5040
5020 forml=cmtoecstepfy:forer=mltoml+fr
5030 pokeer,n1:pokeer-cd,as:next:next:p=cm
5040 print" [181][155]"
5050 return
6000 input"filename";sf$:sf$=left$(sf$,14):sf$="n."+sf$
6010 pokep-cd,160:open15,8,15,"i"
6020 open8,8,8,sf$+",s,w":input#15,e
6030 ife=63thenclose8:gosub6100:on(rf+1)goto6020,6080
6040 ife<>0thenprintml$tab(12)" disk error [155]":fortt=1to3000:next:goto6080
6050 forml=cmtoecstepfy:forby=mltoml+fr:by$=str$(peek(by)andft)
6060 fc$=right$(by$,len(by$)-1)
6070 print#8,fc$:next:next
6080 close8:close15:print" [181][155]"
6090 return
6100 rf=0:printml$" replace? (y/n)[155]"
6110 getan$:ifan$<>"y"andan$<>"n"then6110
6120 ifan$="n"thenrf=1:return
6130 printml$" o.k., replacing [155]"
6135 print#15,"s0:"+sf$
6140 return
7000 input"filename";sf$:sf$=left$(sf$,14):sf$="n."+sf$
7010 open15,8,15,"i":ifmid$(sf$,3,1)="$"thengosub4000:one+1goto7060:goto7030
7020 open8,8,8,sf$+"*,s,r":input#15,e
7030 ife<>0thenprintml$tab(12)" disk error [155]":fortt=1to2999:next:goto7060
7040 forml=cmtoecstepfy:forby=mltoml+fr:input#8,fc$:fc=val(fc$)
7050 pokeby-cd,rs:pokeby,fc:next:next
7060 close8:close15:print" [181][155]"
7070 return
8000 getsh$:ifsh$=""then8000
8010 ifsh$<>""andsh$<>"[157]"andsh$<>""andsh$<>"[145]"thenreturn
8020 ifsh$=""thengosub8100:goto8000
8030 ifsh$="[157]"thengosub8200:goto8000
8040 ifsh$=""thengosub8300:goto8000
8050 ifsh$="[145]"thengosub8400:goto8000
8100 forvv=cmtoecstepfy:forhh=vv+frtovvstep-n1
8110 ifhh=vv+frthenpp=peek(hh)andft
8120 ifhh=vvthenpokehh,pp:goto8140
8130 pokehh,peek(hh-n1)andft
8140 next:next:return
8200 forvv=cmtoecstepfy:forhh=vvtovv+fr
8210 ifhh=vvthenpp=peek(hh)andft
8220 ifhh=vv+frthenpokehh,pp:goto8140
8230 pokehh,peek(hh+n1)andft
8240 next:next:return
8300 forhh=cmtocm+fr:forvv=hh+fstohhstep-fy
8310 ifvv=hh+fsthenpp=peek(vv)andft
8320 ifvv=hhthenpokevv,pp:goto8340
8330 pokevv,peek(vv-fy)andft
8340 next:next:return
8400 forhh=cmtocm+fr:forvv=hhtohh+fsstepfy
8410 ifvv=hhthenpp=peek(vv)andft
8420 ifvv=hh+fsthenpokevv,pp:goto8340
8430 pokevv,peek(vv+fy)andft
8440 next:next:return
9000 data k,black,w,white,r,red,c,cyan,v,violet,g,green,b,blue,y,yellow
9010 data o,orange,t,tan,p,pink,1,dk. gray,2,med. gray,l,lime,s,sky blue
9020 data 3,lt. gray