10 REM Program Twelve Days Of Christmas 20 REM Version B 0.4 30 REM Author Douglas Nunn 40 REM BEEBUG December 1992 50 REM Program subject to Copyright 60 : 70 REMISS OF ME NOT TO WISH EVERYONE A VERY MERRY XMAS AND A HAPPY NEW YEAR 80 : 90 REMARKABLY WELL PUT - Ed. 100 : 110 MODE 7:ON ERROR ON ERROR OFF:MODE7:REPORT:PRINT" at line ";ERL:END 120 PROCstart 130 PROCmusic 140 VDU28,0,24,39,0 150 VDU23;11,255,0;0;0; 160 END 170 : 1000 DEF PROCstart 1010 PROCinit 1020 PROCdata 1030 PROCfrontpage 1040 VDU23;11,0,0;0;0; 1050 ENDPROC 1060 : 1070 DEF PROCinit 1080 DIM A$(10),S$(2),P$(11) 1090 Z%=4:WIDTH0 1100 FOR E%=6TO8:REPEAT UNTIL ADVAL(-E%)=15:NEXT 1110 ENDPROC 1120 : 1130 DEF PROCdata 1140 FOR E%=0TO10:READS$:A$(E%)=S$+","+CHR$10+CHR$13:NEXT 1150 A$(3)="Five"+CHR$131+"gold"+CHR$135+"rings,"+CHR$10+CHR$13 1160 FOR E%=0TO11:READ P$(E%):NEXT 1170 T%=139 1180 ENDPROC 1190 : 1200 DEF PROCfrontpage 1210 FORI%=0TO1:PRINTTAB(0,I%);:VDU129,157,130,141:PRINTTAB(8,I%);"Twelve Days of Christmas";:NEXT I%:VDU28,2,24,39,2 1220 REPEAT:CLS:INPUT'"Enter volume ( 1=soft : 15=loud )"V%:UNTIL V%<16 AND V%>0:CLS 1230 ENDPROC 1240 : 1250 DEF PROCmusic 1260 FOR D%=1TO12 1270 IF D%=12THEN PROCtwelve:GOTO1310 1280 PROCfirst:IF D%=1THEN1330 1290 IF D%<5 PROCplay("@-","7-","$-"):FOR E%=D%TO2STEP-1:PROCunder5:PRINTA$(E%-2);:NEXT:PROCplay("@-",";-","7-"):GOTO1330 1300 PROCplay("@-","7-","$-") 1310 IF D%>5 THEN FOR E%=D%TO6STEP-1:PROCover5:NEXT 1320 PROCfive 1330 IF D%=12 PROCplay("@-C-H-H-H!","4-<-@-@-@!","+-(-$-$-$!"):PRINT'TAB(14)"< THE END "; ELSE PROClast:IF (D%+1)MOD3=0 PROCplay("<-<-","6-6-",",-,-"):T%=T%-4 ELSE PROCplay("<-<-","4-4-","$-$-") 1340 NEXT D% 1350 ENDPROC 1360 : 1370 DEF PROCtwelve 1380 Z%=8:PROCplay(" -7!7!7-7-->-@-@-A-A->->-","9-;-9-7-8-:-8-6-",")-+-)-(-)-+-,-.-"):Z%=Z%*3:PROCplay("@-@-@-@-@-@-@-@-","7-;-9-<-6-6-6-6-","0!0-0---&-&-&-&-") 1410 PROCplay(" -"," -"," -"):Z%=2 1420 ENDPROC 1430 : 1440 DEFPROCfirst 1450 PROCplay("7!7!7-7-"," - -4-4-"," - -$-$-") 1460 PRINT''"On the"CHR$(129+D%MOD6)P$(D%-1)CHR$135"day of Christmas"'" my true love gave to me," 1470 PROCplay("-@-A->-@-@-@-"," - -4-4- -;-9-9- -5-7-7-7-"," - -$-$- - -$-$- -+-$-$-$-") 1480 ENDPROC 1490 : 1500 DEFPROClast 1510 PROCplay("A-C-C-E-",";-<-;-9-","&-(-(-)-") 1520 IFD%-1PRINT"and "; 1530 PRINT"a partridge in a pear tree." 1540 PROCplay("A-@-<->->-<-<-<-<-",">-<-7-7-5-4-4-4-4-",")-+-+-+-+-$-$-$-$-") 1550 ENDPROC 1560 : 1570 DEFPROCunder5 1580 PROCplay("C-C->-@-A-A-","<-<->-<-;-;-","(-(-)-)-+-+-") 1590 ENDPROC 1600 : 1610 DEFPROCfive 1620 IFD%=12 THEN Z%=4 1630 PROCplay("C-C-C-C-E-",";-;-;-;-9-","(-(-(-(-&-"):PRINTA$(3);:PROCplay("B-B-B-C-C-C-C-C-C-C-C-","6->-<-;-9-;-<->-<-;-9-","&-&-&-+-&-+---/---+-)-") 1640 IF D%=12 THEN Z%=6 1650 PROCplay("C-A-@->-<-<-",";-;-7-;-9-9-","(-(-(-(-----"):PRINTA$(2);:PROCplay("A-A-9-9-<-<-"," - -5-5-7-7-"," - -&-&-(-(-"):PRINTA$(1);:IF D%=12 GOTO1670 ELSE PROCplay(">-<-;-9-7-","6-4-2-0-/-","*-*-&-&-+!"):PRINTA$(0);:PROCplay("7-@-","2-7-","+-+-") 1660 ENDPROC 1670 PROCplay(">-<-;-9-7-","2-7-7-0-/-","&-'-(-*-+!"):PRINTA$(0);:PROCplay(" -@-A-C-C-E-A-"," -7-9-:!:-9-<-","+-+-)-(-(-)-&-") 1680 PRINT"and a partridge in a pear tree." 1690 PROCplay("@-<->->-<-<-<-<--@-A-","<-9-9-:-;-","(-)-)-*-+-"):PRINTA$(E%-2);:PROCplay(">-",";!","+-") 1740 ENDPROC 1750 : 1760 DEFPROCplay(S$(0),S$(1),S$(2)) 1770 LOCAL E%,F%,N%,P%,Q%,N%,V 1780 FOR E%=1TOLENS$(0)STEP2 1790 FOR F%=0TO2 1800 P%=ASC(MID$(S$(F%),E%)):Q%=ASC(MID$(S$(F%),E%+1)) 1810 N%=4*P%-T%:V=V%*(P%<>32) 1820 IF Q%=ASC"|" SOUND1+F%,0,0,1:GOTO1840 1830 IF Q%=ASC"-" SOUND1+F%,V,N%,Z% ELSE SOUND1+F%,V,N%,Z%-1:SOUND1+F%,0,0,1 1840 NEXT F%:NEXT E% 1850 ENDPROC 1860 : 1870 DATATwo turtle doves,Three french hens,Four calling birds,!,Six geese a-laying,Seven swans a-swimming,Eight maids a-milking,Nine ladies dancing,Ten lords a-leaping,Eleven pipers piping,Twelve drummers drumming 1880 DATAfirst,second,third,fourth,fifth,sixth,seventh,eighth,ninth,tenth,eleventh,twelfth