home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compute! Gazette 1984 July
/
1984-07.d64
/
bc
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-09-20
|
6KB
|
211 lines
10 rem quilt squares
20 goto 310
30 poke a,103:poke a+1,103:poke a+40,103:poke a+41,103:cc=c(1):return
40 poke a,103:poke a+1,100:poke a+40,100:poke a+41,96:cc=c(1):return
50 poke a,102:poke a+1,103:poke a+40,96:poke a+41,102:cc=c(1):return
60 poke a,101:poke a+1,96:poke a+40,103:poke a+41,101:cc=c(1):return
70 poke a,96:poke a+1,99:poke a+40,99:poke a+41,103:cc=c(1):return
80 poke a,96:poke a+1,96:poke a+40,96:poke a+41,96:cc=c(1):return
90 poke a,160:poke a+1,160:poke a+40,160:poke a+41,160:cc=c(1):return
100 poke a,160:poke a+1,163:poke a+40,163:poke a+41,103:cc=c(1):return
110 poke a,160:poke a+1,163:poke a+40,163:poke a+41,103:cc=c(2):return
120 poke a,165:poke a+1,160:poke a+40,167:poke a+41,165:cc=c(1):return
130 poke a,167:poke a+1,164:poke a+40,164:poke a+41,160:cc=c(2):return
140 poke a,167:poke a+1,164:poke a+40,164:poke a+41,160:cc=c(1):return
150 poke a,166:poke a+1,167:poke a+40,160:poke a+41,166:cc=c(1):return
160 poke a,166:poke a+1,167:poke a+40,160:poke a+41,166:cc=c(2):return
170 poke a,165:poke a+1,160:poke a+40,167:poke a+41,165:cc=c(2):return
180 poke a,224:poke a+1,224:poke a+40,224:poke a+41,224:cc=c(1):return
190 poke a,224:poke a+1,227:poke a+40,227:poke a+41,231:cc=c(1):return
200 poke a,224:poke a+1,227:poke a+40,227:poke a+41,231:cc=c(2):return
210 poke a,224:poke a+1,227:poke a+40,227:poke a+41,231:cc=c(3):return
220 poke a,229:poke a+1,224:poke a+40,231:poke a+41,229:cc=c(1):return
230 poke a,229:poke a+1,224:poke a+40,231:poke a+41,229:cc=c(2):return
240 poke a,229:poke a+1,224:poke a+40,231:poke a+41,229:cc=c(3):return
250 poke a,231:poke a+1,228:poke a+40,228:poke a+41,224:cc=c(3):return
260 poke a,231:poke a+1,228:poke a+40,228:poke a+41,224:cc=c(2):return
270 poke a,231:poke a+1,228:poke a+40,228:poke a+41,224:cc=c(1):return
280 poke a,230:poke a+1,231:poke a+40,224:poke a+41,230:cc=c(1):return
290 poke a,230:poke a+1,231:poke a+40,224:poke a+41,230:cc=c(2):return
300 poke a,230:poke a+1,231:poke a+40,224:poke a+41,230:cc=c(3):return
310 print "[147]":print "transferring character set"
320 print "please wait..."
330 rem transfer character set to ram
340 poke 56334,0:poke 1,51
350 for c=2048 to 6143
360 poke c,peek(c+51200)
370 next c
380 poke 1,55:poke 56334,129:poke 53272,19
390 rem
400 poke 53281,15
410 print "[147][151]":print tab(13)"quilt squares"
420 dim s(16),q(28),r(28)
430 print "use f1 to move to the quilt square"
440 print "desired, then press <return>."
450 print "fill in the sample squares."
460 rem redefine characters
470 for c=2048+8*35 to 2048+8*42-1
480 read g:poke c,g
490 next c
500 for c=2048+27*8 to 2048+30*8-1:read g:poke c,g:next c
510 data 0,1,3,7,15,31,63,127
520 data 255,254,252,248,240,224,192,128
530 data 128,192,224,240,248,252,254,255
540 data 127,63,31,15,7,3,1,0
550 data 255,255,255,255,255,255,255,255
560 data 255,128,128,128,128,128,128,128
570 data 255,1,1,1,1,1,1,1
580 data 128,128,128,128,128,128,128,255
590 data 255,129,129,129,129,129,129,255
600 data 1,1,1,1,1,1,1,255
610 rem sound
620 for c=54272 to 54296:poke c,0:next
630 poke 54296,15:poke 54277,190:poke 54278,248
640 hf=54273:lf=54272:w=54276
650 a$="()()()()"
660 b$="[][][][]"
670 for i=1 to 16:read s(i):next i
680 data 1352,1354,1356,1358,1432,1434,1436,1438
690 data 1512,1514,1516,1518,1592,1594,1596,1598
700 for i=1 to 28:read q(i),r(i):next i
710 data 1142,103,1262,100,1382,102,1379,101,1259,99,1139,96
720 data 1136,160,1256,163,1376,163,1496,165,1499,164,1502,164
730 data 1622,166,1619,166,1616,165
740 data 1133,224,1253,227,1373,227,1493,227,1613,229,1733,229,1853,229
750 data 1856,228,1859,228,1862,228,1742,230,1739,230,1736,230
760 qq(2)=6:qq(3)=15:qq(4)=28
770 print "choose number of colors: 2, 3, or 4"
780 gosub 2020
790 get e$:if e$<"2" or e$>"4" then 790
800 n=val(e$)
810 for i=1 to n
820 print "choose color ";i
830 print "[144] [146] [146] [146] [159] [146] [156] [146] [146] [146] [158] [146] [129] [151]"
840 print "0 1 2 3 4 5 6 7 8"
850 gosub 2020
860 get e$:if e$<"0" or e$>"8" then 860
870 c(i)=val(e$)
880 print tab(3*c(i))"^"
890 next i
900 print "[147]"
910 poke 53282,c(2):poke 53283,c(3):poke 53284,c(4)
920 poke 53265,peek(53265) or 64
930 rem print possible squares
940 rem two colors
950 cc=c(1)
960 poke 1139,96:poke 1139+lf,cc
970 poke 1142,103:poke 1142+lf,cc
980 poke 1259,99:poke 1259+lf,cc
990 poke 1262,100:poke 1262+lf,cc
1000 poke 1379,101:poke 1379+lf,cc
1010 poke 1382,102:poke 1382+lf,cc
1020 if n=2 then 1260
1030 poke 1136,160:poke 1136+lf,cc
1040 poke 1256,163:poke 1256+lf,cc
1050 poke 1376,163:poke 1376+lf,c(2)
1060 poke 1496,165:poke 1496+lf,cc
1070 poke 1499,164:poke 1499+lf,c(2)
1080 poke 1502,164:poke 1502+lf,cc
1090 poke 1616,165:poke 1616+lf,c(2)
1100 poke 1619,166:poke 1619+lf,c(2)
1110 poke 1622,166:poke 1622+lf,cc
1120 if n=3 then 1260
1130 poke 1133,224:poke 1133+lf,cc
1140 poke 1253,227:poke 1253+lf,cc
1150 poke 1373,227:poke 1373+lf,c(2)
1160 poke 1493,227:poke 1493+lf,c(3)
1170 poke 1613,229:poke 1613+lf,cc
1180 poke 1733,229:poke 1733+lf,c(2)
1190 poke 1853,229:poke 1853+lf,c(3)
1200 poke 1736,230:poke 1736+lf,c(3)
1210 poke 1739,230:poke 1739+lf,c(2)
1220 poke 1742,230:poke 1742+lf,c(1)
1230 poke 1856,228:poke 1856+lf,c(3)
1240 poke 1859,228:poke 1859+lf,c(2)
1250 poke 1862,228:poke 1862+lf,cc
1260 print ""
1270 for i=1 to 4
1280 print tab(8)a$:print tab(8)b$
1290 next i
1300 for t=1 to 16
1310 gosub 2020
1320 poke s(t),63
1330 for i=1 to qq(n)
1340 gosub 2020
1350 pp=0
1360 p=peek(q(i)+lf):if p=0 then pp=1
1370 poke q(i),28:poke q(i)+lf,pp:poke q(i),r(i):poke q(i)+lf,p
1380 get e$:if e$="" then 1370
1390 if asc(e$)=13 then 1430
1400 if e$<>"[133]" then 1370
1410 next i
1420 goto 1330
1430 a=s(t)
1440 if i>14 then 1470
1450 on i gosub 30,40,50,60,70,80,90,100,110,120,130,140,150,160
1460 goto 1480
1470 on i-14 gosub 170,180,190,200,210,220,230,240,250,260,270,280,290,300
1480 gosub 2040
1490 next t
1500 print ""
1510 print "press f1 to change"
1520 print " f7 to print quilt"
1530 gosub 2020
1540 get e$:if e$="[136]" then 1880
1550 if e$<>"[133]" then 1540
1560 for i=1744 to 1766:poke i,32:poke i+40,32:next i
1570 print "[145][145]press return--no change"
1580 print tab(6)"f1 to change, then"
1590 print tab(9)"proceed as before"
1600 for t=1 to 16
1610 ps=0:a=s(t):gosub 2020
1620 pt=peek(a+lf):if pt=0 then ps=1
1630 gosub 2050
1640 poke a,40:poke a+1,41:poke a+40,27:poke a+41,29
1650 gosub 2060
1660 get e$:if e$="" then 1640
1670 if asc(e$)=13 then 1850
1680 if e$<>"[133]" then 1640
1690 poke a,40:poke a+1,41:poke a+40,27:poke a+41,29
1700 for i=1 to qq(n)
1710 gosub 2020
1720 pp=0
1730 p=peek(q(i)+lf):if p=0 then pp=1
1740 poke q(i),28:poke q(i)+lf,pp:poke q(i),r(i):poke q(i)+lf,p
1750 get e$:if e$="" then 1740
1760 if asc(e$)=13 then 1800
1770 if e$<>"[133]" then 1740
1780 next i
1790 goto 1700
1800 if i>14 then 1830
1810 on i gosub 30,40,50,60,70,80,90,100,110,120,130,140,150,160
1820 goto 1840
1830 on i-14 gosub 170,180,190,200,210,220,230,240,250,260,270,280,290,300
1840 gosub 2040
1850 next t
1860 for i=1744 to 1769:poke i,32:poke i+40,32:poke i+80,32:next i
1870 goto 1500
1880 for t=1 to 16
1890 a=s(t)
1900 gosub 2050
1910 cc=peek(a+lf)
1920 for b=s(t)-320 to s(t)+320 step 320
1930 for a=b-8 to b+24 step 8
1940 gosub 2060:gosub 2040
1950 next a,b
1960 next t
1970 print "press f7 to end program.";
1980 gosub 2020
1990 get e$:if e$="[136]" then 2070
2000 goto 1990
2010 stop
2020 poke 198,0:poke hf,84:poke lf,125
2030 poke w,17:for d=1 to 60:next d:poke w,0:return
2040 l=a+lf:poke l,cc:poke l+1,cc:poke l+40,cc:poke l+41,cc:return
2050 a1=peek(a):a2=peek(a+1):a3=peek(a+40):a4=peek(a+41):return
2060 poke a,a1:poke a+1,a2:poke a+40,a3:poke a+41,a4:return
2070 print"[147]"
2080 print "press run/stop - restore"
2090 print "before running program again."
2100 end