So, I took some of the ideas from the various toys and books friends have given us, and made a small program for the VIC-20 to display similar patterns. It also chooses from one of 5 random colors for the background.
Andreas will look at them for a little while, but he's probably too far from the TV at this age to really get any enjoyment from them. Maybe in a couple more months he will be able to focus past a couple of feet.
The VIC is perfect for this, the blocks are nice and big, with mostly primary colors available. In fact, I have no idea how you would do something like this on a PC. With Powerpoint maybe?
The program is here and listed below if anyone wants to check it out. Maybe use it as a VIC screen saver . Obviously there's an infinite number of ways to do this, but I thought this was sufficient.
I cheated and used a tiny ML routine to set background color to black, but it's 99% BASIC.
Code: Select all
10 poke36879,27:gosub2000
99 :
100 print"{clr}{black}";
110 fort=1to22
120 print"MNMNMNMNMNMNMNMNMNMNMN";
130 next
140 gosub3000
199 :
200 print"{clr}";
210 fort=1to22
220 print"{rvson} {right} {right} {right} {right} {right} {right} {right} {right} {right} {right} "
230 next
240 gosub3000
299 :
300 print"{clr}";:fort=1to11
310 print"{rvson}{black} {white} {black} {white} {black} {white} {black} {white} {black} {white} {black} {white} {black} {white} {black} {white} {black} {white} {black} {white} {black} {white} ";
320 print"{rvson}{white} {black} {white} {black} {white} {black} {white} {black} {white} {black} {white} {black} {white} {black} {white} {black} {white} {black} {white} {black} "
330 next
340 gosub3000
399 :
400 print"{clr}";:sys828
410 fort=1to100
420 x=rnd(1)*23:y=rnd(1)*24
430 poke7680+x+22*y,127
440 next
450 gosub3000
499 :
500 print"{clr}{black}";
510 fort=1to22
520 foru=1to11:print"{rvson}{A9}{rvsoff}{A9}";:next
530 next
540 gosub3000
599 :
600 print"{clr}{black}";
610 fort=1to22
615 if(t/2)=int(t/2)thenprint"{right}";
620 foru=1to10:print"{rvson}{A9}{rvsoff}{A9}";:next:print
630 next
640 gosub3000
700 print"{clr}{black}";
710 fort=1to11
720 print"{rvson}{DF}{A9}{DF}{A9}{DF}{A9}{DF}{A9}{DF}{A9}{DF}{A9}{DF}{A9}{DF}{A9}{DF}{A9}{DF}{A9}{DF}"
730 print"{rvsoff}{DF}{A9}{DF}{A9}{DF}{A9}{DF}{A9}{DF}{A9}{DF}{A9}{DF}{A9}{DF}{A9}{DF}{A9}{DF}{A9}{DF}"
740 next
750 gosub3000
799 :
800 print"{clr}";:sys828
810 fors=21to1step-4
820 xy=10-int(s/2)
830 fort=0tos-1
840 poke7680+xy*23+t,160
850 poke8142-xy*21+t,160
860 poke7680+xy*23+t*22,160
870 poke7700+(xy*21)+t*22,160
880 nextt
890 nexts
895 gosub3000
1999 goto100
2000 fort=828to841:readd:poket,d:next
2010 data169,0,160,0,153,0,150,153,250,150,200,208,247,96
2100 fort=0to4:readc:cl(t)=c:next
2110 data27,42,76,93,127
2200 return
3000 fort=1to1500:geta$:ifa$=" "then3020
3010 nextt
3020 poke36879,cl(rnd(1)*5)
3030 return