home *** CD-ROM | disk | FTP | other *** search
- 10 poke53281,0:poke53280,0
- 20 poke55,0:poke56,150:clr
- 22 dv=peek(186):if dv<8 then dv=8
- 30 rem load ml
- 40 open 8,dv,8,"ff,p,r":poke 780,0:sys 65493:close8
- 50 open 8,dv,8,"fs1,p,r":poke 780,0:sys 65493:close8
- 60 open 8,dv,8,"fm,p,r":poke 780,0:sys 65493:close8
- 70 print"[147]":poke53272,31:poke788,52
- 71 print"[155] [195][204][201][206][212][207][206]\[207]'[206][197][201][204][204]'[211]"
- 72 print" [176][192][174] [178] [174] [174] [174][192][174] [174] [176][192][174] [176][174][176] [174] [176] [176][192][174]"
- 73 print" [221] [221] [221] [221] [221] [221] [221] [221] [221] [221][221][221] [221][176][189] [221]
- 74 [153]" -< (NULL) (NULL) (NULL) (NULL)left$val -tan< (NULL) -tan< (NULL)(NULL)(NULL) -< /tan^
- 75 print" [221] [221] [221] [221] [221] [221] [221] [221] [221] [221][221][221] [221][173][174] [221]
- 76 [153]" exp > /tanexp/tanexp exptanexp /tanexp exp / exp/exp exp / /tanexp"
- 80 [129]i[178]1[164]9:[153][163]12)""i"cmdcmdcmd\\cont - \(NULL)(NULL)(NULL)(NULL)(NULL)val"i"cmdcmdcmd\\":[130]
- 82 [153][163]12)"\0\cont - \(NULL)(NULL)(NULL)(NULL)(NULL)val\10\"
- 84 [153][163]12)"\(NULL)\cont - \quit\
- 86 geta$:ifa$=""then86
- 87 ifa$="q"then40000
- 88 ifa$="0"thenpn=10:goto92
- 89 ifa$<"1"ora$>"9"then86
- 90 pn=val(a$)
- 92 poke767,pn:pn$=str$(pn)
- 100 dv=peek(186):if dv<8 then dv=8
- 110 open 8,dv,8,"fs2,p,r":poke 780,0:sys 65493:close8
- 120 open 8,dv,8,"fill"+pn$+",p,r":poke 780,0:sys 65493:close8
- 130 open 8,dv,8,"sw"+pn$+",p,r":poke 780,0:sys 65493:close8
- 140 poke 841,95:poke 51611,12:poke 51991,14
- 150 poke 646,14:print chr$(147):poke 53280,0:poke 53281,0:poke53272,31:sys 51288
- 160 get s$:if s$="" then160
- 170 print"[147]":poke 657,128
- 180 :
- 190 poke53265,11:r=0:c=0:gosub600:print tab(11)"[156] fill the blanks ";
- 200 n$=str$(peek(767)):l=len(n$):printright$(n$,l-1)"*"
- 210 gosub1470:poke 698,0:poke 699,192:gosub660:sys 51424:poke 53265,27
- 220 :
- 230 r1=2:c1=1:r=r1:c=c1:gosub600:if peek(r*40+c+1024)=32 then gosub810
- 240 if tg=0 then poke 55296,3:poke1024,31:rem lf/rt
- 250 if tg=1 then poke 55296,3:poke1024,30:rem up/dn
- 260 get a$:gosub550:if a$="" then240
- 270 if b>127 then gosub560
- 280 if a$=""then gosub870:goto240
- 290 if a$=""then230
- 300 if a$=chr$(20)thenpoke766,0:gosub1750:goto240
- 310 if a$=""thengosub810:goto240
- 320 if a$=" "then a$="?":goto460
- 330 if a$="[145]"thengosub930:goto240
- 340 if a$="[147]"then190
- 350 if a$=chr$(148)thenpoke766,1:rr=1:gosub1750:goto240
- 360 if a$="[157]"then gosub750:goto240
- 370 if a$=chr$(133) then tg=1-tg:goto240
- 380 ifa$<>chr$(134)then390
- 382 dg=1-dg:gosub2980
- 384 ifdg=0then388
- 386 geta$:ifa$=""then386
- 387 dg=0:gosub2980
- 388 goto240
- 390 if a$=chr$(135) then gosub1380:goto240
- 400 if a$=chr$(136) then gosub1420:goto240
- 410 if a$=chr$(137) then gosub1900:goto240
- 420 if a$=chr$(138) then240
- 430 if a$=chr$(139) then240
- 440 if a$=chr$(140) then70
- 450 if a$<"0" or a$>"z" or a$>"9" and a$<"a" then240
- 460 print a$;:sys 52087
- 470 if tg=0 then gosub690
- 480 if tg=1 then gosub1310
- 490 gosub520:goto240
- 500 :
- 510 rem find crsr
- 520 poke 783,peek(783) or 1:sys 65520:r=peek(781):c=peek(782):return
- 530 :
- 540 rem flash crsr
- 550 gosub520:a=((r*40)+(c+1024)-0):b=peek(a)
- 560 b=(b or 128) and not (b and 128)
- 570 poke a,b:return
- 580 :
- 590 rem put crsr
- 600 poke 781,r:poke 782,c:poke783,peek(783) and 254:sys 65520:return
- 610 :
- 620 rem get char
- 630 p=peek((r*40)+(c+1024)):return
- 640 :
- 650 rem print puzzle
- 660 sys 50522:return
- 670 :
- 680 rem board limits
- 690 if a$="?" then gosub810: goto720
- 700 gosub520:gosub630:if p=32 then rr=12:gosub2250:gosub2460
- 710 gosub520:gosub630:if p=93 then rr=12:gosub2250:c=c-1:gosub600
- 720 return
- 730 :
- 740 rem crsr left
- 750 gosub990:if peek(cp-1)=32 and peek(cp-2)=93 then c=c+1
- 760 c=c-1:gosub600:gosub1140: gosub520:gosub630:if p=32 then c=c-1:gosub600
- 770 gosub520:gosub630:if p=93 then c=c+1:gosub600
- 780 return
- 790 :
- 800 rem crsr right
- 810 c=c+1:gosub600
- 820 gosub1080:gosub520:gosub630:if p=32 then c=c+1:gosub600
- 830 gosub520:gosub630:if p=93 then c=c-1:gosub600
- 840 return
- 850 :
- 860 rem crsr down
- 870 r=r+1:gosub600
- 880 gosub1200:gosub520:gosub630:if p=32 then r=r+1:gosub600
- 890 gosub520:gosub630:if p=64 then r=r-1:gosub600
- 900 return
- 910 :
- 920 rem crsr up
- 930 r=r-1:gosub600
- 940 gosub1260:gosub520:gosub630:if p=32 then r=r-1:gosub600
- 950 gosub520:gosub630:if p=64 then r=r+1:gosub600
- 960 return
- 970 :
- 980 rem crsr address
- 990 cp=((r*40)+(c+1024)):return
- 1000 :
- 1010 rem check for print rt spaces
- 1020 sc=0
- 1030 gosub990:if peek(cp+1)=32 then sc=sc+1:c=c+1:gosub600:goto1030
- 1040 gosub630:if p=32 and peek(cp+1)=93 then c=c-sc:gosub600
- 1050 return
- 1060 :
- 1070 rem check for crsr rt spaces
- 1080 sc=0:p=0
- 1090 gosub990:if peek(cp)=32 then sc=sc+1:c=c+1:gosub600:goto1090
- 1100 gosub630:if p=93 and peek(cp-1)=32 then c=c-1-sc:gosub600
- 1110 return
- 1120 :
- 1130 rem check for crsr lf spaces
- 1140 sc=0:p=0
- 1150 gosub990:if peek(cp)=32 then sc=sc-1:c=c-1:gosub600:goto1090
- 1160 gosub630:if p=93 and peek(cp+1)=32 then c=c+1+sc:gosub600
- 1170 return
- 1180 :
- 1190 rem check for crsr dn spaces
- 1200 sc=0:p=0
- 1210 gosub990:if peek(cp)=32 then sc=sc+1:r=r+1:gosub600:goto1210
- 1220 gosub630:if p=64 and peek(cp-40)=32 then r=r-1-sc:gosub600
- 1230 return
- 1240 :
- 1250 rem check for crsr up spaces
- 1260 sc=0:p=0
- 1270 gosub990:if peek(cp)=32 then sc=sc+1:r=r-1:gosub600:goto1270
- 1280 gosub630:if p=64 and peek(cp+40)=32 then r=r+1+sc:gosub600
- 1290 return
- 1292 :
- 1300 rem check for crsr up or down
- 1310 if a$="?" then gosub520:c=c-1:r=r+1:gosub600:goto1330
- 1320 gosub520:c=c-1:r=r+1:gosub600:gosub990:p=peek(cp):if p=32 orp=64then gosub2570
- 1330 gosub880:return
- 1340 rem get filename
- 1350 f$="fil"+str$(peek(767)):return
- 1360 :
- 1370 rem save current puzzle
- 1380 gosub1350:open15,dv,15,"s0:"+f$:close15
- 1382 sys57812f$,dv:poke193,0:poke194,4:poke174,232:poke175,7
- 1390 sys62954:return
- 1400 :
- 1410 rem load old puzzle
- 1420 poke53265,11:gosub1350:open 8,dv,8,+f$+",p,r":poke780,.:sys65493:close8
- 1430 if st<>64 then open 8,dv,15,"i":close8
- 1440 sys 51424:poke 53265,27:return
- 1450 :
- 1460 rem print list
- 1470 sys50812:gosub2830:return
- 1480 :
- 1490 rem save search word
- 1500 if peek(766)=0 and tg=0 then rr=12:goto2670
- 1510 if peek(766)=1 and tg=0 then rr=14:goto2670
- 1520 if peek(766)=0 and tg=1 then:rr=12:goto2750
- 1530 if peek(766)=1 and tg=1 then:rr=14:goto2750
- 1540 stop
- 1550 :
- 1560 rem search screen list
- 1570 sys 830
- 1580 sys 851
- 1590 a=peek(680)+peek(681)*256
- 1600 b=peek(682)+peek(683)*256
- 1610 if b=2024 then return
- 1620 for x=0 to 20
- 1630 if peek(b+x)=peek(a+x) then next
- 1640 if peek(a+x)=0 then1660
- 1650 b=b+1:q=b:gosub1870:poke682,lb:poke683,h%:goto1580
- 1660 if peek(b+x)<129 then1680
- 1670 goto1650
- 1680 if peek(b-1)<129 then1700
- 1690 goto1650
- 1700 if peek(b-1)=122 then return
- 1710 if peek(b-1)<> 32 then1600
- 1720 return
- 1730 :
- 1740 rem delete word
- 1750 for x=740to760:pokex,255:next:rem clr word buffer
- 1760 :
- 1770 r2=r:c2=c:r5=r:c5=c:rem save crsr position
- 1790 :
- 1800 gosub1500
- 1810 if b=2024 then r=r5:c=c5:gosub2410:goto1840
- 1820 if peek(766)=0 then poke b-1+54272,0:poke b-1,122:r=12:gosub2050
- 1830 if peek(766)=1 then poke b-1+54272,0:poke b-1,32:r=1:gosub2050
- 1840 c=c2:r=r2:gosub600:return
- 1850 :
- 1860 rem calc addr bytes
- 1870 h%=q/256:lb=q-h%*256:return
- 1880 :
- 1890 rem display menu
- 1900 sys 51015:rem save board
- 1910 poke 53265,11:sys 51921:sys 51288:poke 53265,27:rem display menu
- 1920 get s$
- 1930 if s$=chr$ (137) then1950
- 1940 goto1920
- 1950 poke53265,11:sys 51151:gosub2830:sys51424:poke53265,27
- 1960 return
- 1970 rem end routine
- 1980 print"solve another puzzle? (y/n)":poke 646,peek(53281)
- 1990 get a$:if a$="" then1990
- 2000 if a$="n" then 3090
- 2010 if a$="y" then print chr$(147):goto 70
- 2020 goto1990
- 2040 :
- 2050 o=b:p=0
- 2060 q=peek(o)
- 2070 if q=122 then2130
- 2080 if q=32 then2130
- 2090 p=p+1
- 2100 o=o+1:if o=2024 then return
- 2110 goto2060
- 2120 rem color word
- 2130 for s=b to b+p-1:poke s+54272,rr:next:return
- 2140 rem find and color all marks
- 2150 o=1119
- 2160 q=peek(o)
- 2170 if q=122 then poke o+54272,1:o=o+1:goto2200
- 2180 o=o+1:if o=2024 then return
- 2190 goto2160
- 2200 b=o:p=0:r=12
- 2210 gosub2060
- 2220 if o<>2024 then2160
- 2230 return
- 2240 rem get letter count
- 2250 e=(r*40)+(c+1024):q=e-1:ee=q:l=0
- 2260 if peek(q)=93 then2310
- 2270 if peek(q)=32 then2310
- 2280 l=l+1:q=q-1:goto2260
- 2290 :
- 2300 rem put word in buffer
- 2310 i=740:for s=e-l to e-1:poke i,peek(s)+128:i=i+1:next:l=l-1:poke i,0
- 2330 :
- 2340 c9=c:r9=r:gosub1570
- 2350 if b=2024 then gosub2410:goto2380
- 2360 poke b-1+54272,0:poke b-1,122
- 2370 gosub2050
- 2380 c=c9:r=r9:gosub600:return
- 2390 :
- 2400 rem word not in list error
- 2410 i=50975:for x=1024 to1063:q=peek(x):poke i,q:i=i+1:next
- 2420 r2=r:c2=c:poke781,0:sys59903:r=0:c=1:gosub600
- 2430 print" word*not*in*list!! [156]hitanykeytocont[146]"
- 2440 gosub2920:get s$:if s$="" then2440
- 2450 gosub2950:return
- 2460 gosub990:if peek(cp)=32 and peek(cp+1)=93 then c=c-1:gosub600:return
- 2470 :sc=0:if peek(cp+1)=32 then sc=0:goto2510
- 2480 c=c+1:gosub600:return
- 2500 :
- 2510 gosub990:if peek(cp+1)=32 then sc=sc+1:c=c+1:gosub600:goto2510
- 2520 gosub630:if p=32 and peek(cp+1)=93 then c=c-sc-1:gosub600:return
- 2530 if p=32 and peek(cp+1)=63 then2480
- 2540 return
- 2550 :
- 2560 rem get u/d word
- 2570 rr=12:gosub520:e=(r*40)+(c+1024):q=e-40:l=0
- 2580 if peek(q)=64 then2630
- 2590 if peek(q)=32 then2630
- 2600 l=l+1:q=q-40:goto2580
- 2610 :
- 2620 rem put word in buffer
- 2630 i=740:for s=e-l*40 to e-40 step40:poke i,peek(s)+128:i=i+1:next:l=l-1
- 2640 pokei,0:gosub2340:return
- 2650 :
- 2670 i=740:gosub520:e=r*40+c+1024:ee=e
- 2680 q=peek(e)
- 2690 if q=32 or q=93 then poke i,0:gosub1570:return
- 2700 rem if peek(766)=1 then poke e,63
- 2710 poke i,q+128
- 2720 i=i+1:e=e+1
- 2730 goto2680
- 2740 :
- 2750 i=740:gosub520:e=r*40+c+1024:ee=e
- 2760 q=peek(e)
- 2770 if q=32 or q=64 then poke i,0:gosub1570:return
- 2780 poke i,q+128
- 2790 i=i+1:e=e+40
- 2800 goto2760
- 2810 :
- 2820 rem set word list color
- 2830 poke714,14:poke715,0:sys 52003
- 2840 :
- 2850 rem set grid color
- 2860 poke12406,40:poke12408,4:poke12463,1:poke12492,15:poke12554,16:sys12405
- 2870 :
- 2880 rem set help color
- 2890 poke12406,72:poke12408,7:poke12463,2:poke12492,16:poke12554,4:sys12405
- 2900 :return
- 2910 rem error buzzer
- 2920 poke54296,15:poke54277,45:poke54278,165
- 2930 poke54276,33:poke54273,6:poke54272,5
- 2940 fort=1to200:next:poke54276,32:poke54273,.:poke54272,.:return
- 2950 sys12288:c=c2:r=r2:return:rem return top line
- 2960 :
- 2970 rem display solution
- 2980 if dg=0 then3030
- 2990 if dg=1 then3060
- 3000 stop
- 3010 :
- 3020 rem return puzzle
- 3030 poke 53265,11:sys 51151:gosub2830:sys51424:poke53265,27:return
- 3040 :
- 3050 rem display solution
- 3060 sys51015:poke698,225:poke 699,192:sys50522:return
- 3070 stop
- 3080 :
- 10000 dv=peek(186):n$="blanks":open15,dv,15,"s0:"+n$:close15:saven$,dv:end
- 40000 fori=0to21:poke828+i,8+i:next
- 40010 ifdv<8ordv>29ordv=8then40030
- 40020 a=peek(828):b=peek(828+dv-8):poke828,b:poke828+dv-8,a
- 40030 a$="hello connect":forj=8to29:i=peek(828+j-8):ifi=14thennext
- 40040 close2:open2,i,2:close2:ifstthen40060
- 40050 close15:open15,i,15,"r0:"+a$+"="+a$:input#15,er:close15:ifer=63then40070
- 40060 next:print"[147]":poke53272,23:poke186,8:end
- 40070 q$=chr$(34):poke646,peek(53281):print"[147]":poke53272,23
- 40080 print"[147]p[207]2048,0:p[207]44,8:p[207]43,1:p[207]56,160:p[207]55,0:clr:l[207]"q$a$q$","i
- 40090 print"run:":poke631,13:poke632,13:poke198,2:end
-