[net.sources] Xmas tree program for IBM-PCs

ghorne@novavax.UUCP (Greg Horne) (12/07/85)

This program for the IBM-PC is an animated Christmas scene
displaying a fireplace, candles, presents, singing birds,
grandfather clock, falling snow, 12 different Christmas
carols and of course a fully-decorated Christmas tree!
Merry Christmas to all of you PC owners on the net!

Greg Horne
Nova University Computer Center
3301 College Avenue, Ft. Lauderdale, FL.
{allegra, ucf-cs, neoucom, usfvax2}!novavax!ghorne

--- cut here ---
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	README
#	tree.bas
#	tree3.bas
# This archive created: Fri Dec  6 15:48:57 1985
# By:	Greg Horne (Nova University, Fort Lauderdale, Florida)
export PATH; PATH=/bin:$PATH
echo shar: extracting "'README'" '(1357 characters)'
if test -f 'README'
then
	echo shar: will not over-write existing file "'README'"
else
sed 's/^	X//' << \SHAR_EOF > 'README'
	XCHRISTMAS TREE PROGRAM FOR THE IBM-PC.
	X
	XSYSTEM REQUIREMENTS:
	X--------------------
	X1.	IBM-PC or compatible with at least 64k of memory 
	X2.	A color graphics monitor 
	X3.	PC-DOS (version 1.0 or higher) and the BASICA interpreter
	X
	XINSTALLATION AND OPERATION:
	X---------------------------
	X1.	Copy both TREE.BAS and TREE3.BAS program files onto a disk(ette)
	X	containing DOS and the BASICA interpreter.
	X
	X2.	Start the program from DOS by typing:   BASICA TREE
	X
	X3.	While the program is running:
	X		The F10 key toggles music on/off.
	X		The F9  key exits to DOS.
	X
	XNOTES:
	X------
	X1.	The software is actually 2 BASIC programs.  TREE.BAS runs
	X	first and then CHAINS to TREE3.BAS. They Need each other!
	X
	X2.	On an IBM PC/XT/AT, you should have no difficulty with the 
	X	programs.  However, you should note that the ticking sound
	X	of the grandfather clock is created by turning the cassette
	X	port on and off. XT's and AT's don't have this port and so
	X	no sound is produced.
	X	On some compatibles, the ticking feature has caused problems.
	X	If this is the case with your machine, try changing lines
	X	1401 and 22130 in TREE3.BAS to REMARK statements and run
	X	again.
	X
	X3.	The Hercules monochrome graphics board has been shown to work.
	X
	X	------------------------------------------------
	X	Merry Christmas from Gregory & Cathleen Horne!!!
	X	------------------------------------------------
SHAR_EOF
if test 1357 -ne "`wc -c < 'README'`"
then
	echo shar: error transmitting "'README'" '(should have been 1357 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'tree.bas'" '(6187 characters)'
if test -f 'tree.bas'
then
	echo shar: will not over-write existing file "'tree.bas'"
else
sed 's/^	X//' << \SHAR_EOF > 'tree.bas'
	X10 DEFINT A-Z : CLS
	X15 PI!=3.141593
	X20 SCREEN 1,0 :COLOR 0,0 :KEY OFF
	X57 CIRCLE (200,10),160,2,-235*PI!/180,-305*PI!/180
	X58 PAINT (200,30),1,2
	X59 LINE (100,130)-(120,165),2,BF
	X60 LINE (190,144)-(230,169),2,BF
	X70 LINE (235,140)-(260,172),3,BF
	X80 LINE (160,155)-(190,185),3,BF
	X140 LINE (279,30)-(310,101),3,B
	X150 LINE (276,27)-(313,104),3,B
	X160 PAINT (311,102),2,3
	X180 LINE (282,115)-(320,115),3
	X190 LINE (285,125)-(315,145),2,BF
	X200 CIRCLE (36,32),30,2,0,2*PI!
	X209 CIRCLE (36,32),13,2,0,2*PI!
	X210 RESTORE 219
	X211 FOR I=1 TO 8
	X212 READ X,Y
	X213 PSET (X,Y),2
	X214 PSET (X,Y+1),2
	X215 PSET (X,Y-1),2
	X216 PSET (X-1,Y),2
	X217 PSET (X+1,Y),2
	X218 NEXT I
	X219 DATA 56,37,36,55,11,32,46,52,26,47,53,25,64,31,19,27
	X220 PAINT (61,32),1,2
	X300 LINE (26,10)-(46,19),3,B
	X305 PAINT (31,12),2,3
	X310 LINE (16,2)-(26,10),3
	X320 LINE (16,27)-(26,19),3
	X330 LINE (16,2)-(16,27),3
	X340 LINE (46,10)-(56,2),3
	X350 LINE (46,19)-(56,27),3
	X360 LINE (56,2)-(56,27),3
	X370 PAINT (17,14),2,3
	X380 PAINT (47,14),2,3
	X390 LINE (285,135)-(315,135),1
	X400 LINE (300,125)-(300,145),1
	X410 LINE (100,147)-(120,147),3
	X420 LINE (110,130)-(110,165),3
	X430 LINE (190,156)-(230,156),3
	X440 LINE (210,144)-(210,169),3
	X450 LINE (235,156)-(260,156),2
	X460 LINE (247,140)-(247,172),2
	X470 LINE (160,170)-(190,170),1
	X480 LINE (175,155)-(175,185),1
	X490 LINE (2,60)-(70,120),3,B
	X500 LINE (0,115)-(2,115),3
	X510 LINE (70,115)-(92,115),3
	X520 LINE (15,95)-(57,120),3,B
	X530 LINE (0,60)-(72,70),3,BF
	X540 LINE (20,114)-(52,120),3,BF
	X550 FOR X=4 TO 68 STEP 11
	X560 LINE (X,72)-(X+9,76),2,BF
	X570 LINE (X,78)-(X+9,82),2,BF
	X580 LINE (X,84)-(X+9,88),2,BF
	X590 LINE (X,90)-(X+9,93),2,BF
	X600 NEXT X
	X610 FOR Y=95 TO 117 STEP 6
	X620 LINE (4,Y)-(13,Y+4),2,BF
	X630 LINE (59,Y)-(68,Y+4),2,BF
	X640 NEXT Y
	X641 LINE(4,118)-(13,118),2
	X642 LINE(59,118)-(68,118),2
	X650 CIRCLE (41,140),30,3,0,2*PI!,5/18
	X660 CIRCLE (41,140),37,1,0,2*PI!,5/18
	X670 CIRCLE (41,140),23,2,0,2*PI!,5/18
	X680 LINE(125,127)-(155,160),3,BF
	X690 LINE(140,127)-(140,160),2
	X700 LINE(125,143)-(155,143),2
	X710 LINE(18,45)-(18,59),2
	X720 LINE(54,45)-(54,59),2
	X730 LINE(19,45)-(19,59),2
	X740 LINE(53,45)-(53,59),2
	X741 LINE(16,57)-(21,59),1,BF
	X742 LINE(51,57)-(56,59),1,BF
	X743 CIRCLE(14,56),2,1,0,2*PI!
	X744 CIRCLE(58,56),2,1,0,2*PI!
	X750 CIRCLE(19,41),2,0
	X755 PAINT(19,41),3,0
	X760 PSET(19,38),0
	X770 CIRCLE(53,41),2,0
	X775 PAINT(53,41),3,0
	X780 PSET(53,38),0
	X910 LINE(280,142)-(290,150),3,BF
	X920 LINE(280,146)-(290,146),0
	X930 LINE(285,142)-(285,150),0
	X940 LINE(279,141)-(291,151),0,B
	X950 LINE(97,34)-(131,112),2,B
	X960 CIRCLE(114,34),15,2,0,PI!
	X970 LINE(92,112)-(135,112),2
	X980 LINE(92,112)-(92,117),2
	X990 LINE-(131,117),2
	X1000 LINE(101,38)-(127,58),2,B
	X1010 LINE(101,61)-(127,108),2,B
	X1020 CIRCLE(114,48),11,3,0,2*PI!
	X1030 LINE(106,67)-(109,92),3,BF
	X1040 LINE(112,67)-(115,87),3,BF
	X1050 LINE(119,67)-(122,92),3,BF
	X1060 CIRCLE(114,99),2,2,0,2*PI!
	X1070 LINE(114,87)-(114,97),3
	X1080 PAINT(114,99),3,2
	X1090 PAINT(129,90),3,2
	X1100 PAINT(108,115),3,2
	X1120 PAINT(108,27),3,2
	X1125 LINE(132,96)-(114,119),0 :LINE-(136,119),0 :LINE-(136,91),0 :PAINT(134,108),1,0 :LINE(136,91)-(136,119),1 :LINE-(114,119),1 :LINE(132,117)-(117,117),1
	X1130 CIRCLE(114,31),8,0,-2*PI!,-PI!
	X1140 PAINT(115,29),2,0
	X1150 LINE(166,134)-(188,154),2,BF
	X1160 LINE(177,134)-(177,154),0
	X1170 LINE(166,150)-(188,150),0
	X1180 LINE(115,155)-(132,170),1,BF
	X1190 LINE(115,163)-(132,163),2
	X1200 LINE(124,155)-(124,170),2
	X1210 LINE(254,126)-(273,147),2,BF
	X1220 LINE(254,140)-(260,147),3,BF
	X1230 LINE(254,136)-(273,136),3
	X1240 LINE(263,126)-(263,147),3
	X1250 LINE(200,166)-(253,174),1,BF
	X1260 LINE(200,170)-(253,170),0
	X1270 LINE(226,166)-(226,174),0
	X1280 LINE(136,158)-(159,166),2,BF
	X1290 LINE(136,162)-(159,162),1
	X1300 LINE(157,158)-(157,166),1
	X1310 CIRCLE(189,39),10,2,PI!,11/6*PI!
	X1320 CIRCLE(211,39),13,2,7/6*PI!,2*PI!
	X1330 CIRCLE(175,66),18,2,PI!,11/6*PI!
	X1340 CIRCLE(200,66),12,2,5/4*PI!,11/6*PI!
	X1350 CIRCLE(231,64),22,2,20/18*PI!,11/6*PI!
	X1360 CIRCLE(150,95),17,2,PI!,34/18*PI!
	X1370 CIRCLE(180,95),15,2,7/6*PI!,11/6*PI!
	X1380 CIRCLE(216,90),27,2,7/6*PI!,11/6*PI!
	X1390 CIRCLE(250,97),10,2,7/6*PI!,7/4*PI!
	X1400 CIRCLE(265,97),11,2,5/4*PI!,7/4*PI!
	X1410 CIRCLE(131,115),12,2,PI!,7/4*PI!
	X1420 CIRCLE(155,115),18,2,7/6*PI!,335/180*PI!
	X1430 CIRCLE(200,113),28,2,20/18*PI!,11/6*PI!
	X1440 CIRCLE(237,121),12,2,7/6*PI!,11/6*PI!
	X1450 CIRCLE(259,117),13,2,5/4*PI!,11/6*PI!
	X1460 CIRCLE(278,117),7,2,7/6*PI!,2*PI!
	X1470 CIRCLE(286,23),3,2
	X1475 CIRCLE(286+4,23-3),2,2
	X1480 LINE(286-7,23-2)-(286-3,23),2
	X1485 LINE(286+6,23-3)-(286+8,23-3),2
	X1490 PAINT(286,23),3,2
	X1495 PAINT(286+4,23-3),3,2
	X1500 CIRCLE(304,23),3,2
	X1505 CIRCLE(304-4,23-3),2,2
	X1510 LINE(304+7,23-2)-(304+3,23),2
	X1515 LINE(304-6,23-3)-(304-8,23-3),2
	X1520 PAINT(304,23),3,2
	X1525 PAINT(304-4,23-3),3,2
	X1527 PSET(290,20),0 :PSET(300,20),0
	X1530 RESTORE 1580
	X1540 FOR I=1 TO 4 'CANDY CANES
	X1545 READ X,Y
	X1550 CIRCLE(X,Y),2,2,2*PI!,PI!
	X1560 LINE(X+2,Y+2)-(X+2,Y+7),2
	X1570 NEXT I
	X1580 DATA 173,69,213,101,200,126,132,113
	X1590 RESTORE 1650
	X1600 FOR I=1 TO 10 'DIAMONDS
	X1610 READ X,Y,C
	X1620 CIRCLE(X,Y),3,0,0,2*PI!,4
	X1630 PAINT(X,Y),C,0
	X1640 NEXT I
	X1650 DATA 195,32,2,224,55,3,199,70,2,152,87,3,195,116,2,179,98,3,226,101,2,252,85,3,258,114,2,225,135,3
	X1660 RESTORE 1730
	X1670 FOR I=1 TO 8 'BALLS
	X1680 READ X,Y,C
	X1690 CIRCLE(X,Y),2,0
	X1700 PSET(X,Y-3),0
	X1710 PAINT(X,Y),C,0
	X1720 NEXT I
	X1730 DATA 208,36,2,227,70,3,177,55,2,152,100,2,207,85,2,259,96,3,237,122,2,158,116,3
	X1740 CIRCLE(178,167),2,1
	X1750 CIRCLE(172,173),2,1
	X1760 CIRCLE(172,167),2,1
	X1770 CIRCLE(178,173),2,1
	X1780 LINE(141,127)-(155,142),3,BF
	X1790 CIRCLE(143,140),2,2
	X1800 CIRCLE(143,146),2,2
	X1810 CIRCLE(137,146),2,2
	X1820 CIRCLE(137,140),2,2
	X1830 CIRCLE(250,153),2,2
	X1840 CIRCLE(250,158),2,2
	X1850 CIRCLE(244,158),2,2
	X1860 CIRCLE(244,153),2,2
	X1870 CIRCLE(303,132),2,1
	X1880 CIRCLE(303,138),2,1
	X1890 CIRCLE(297,132),2,1
	X1900 CIRCLE(297,138),2,1
	X1910 CIRCLE(108,128),2,3
	X1920 CIRCLE(113,128),2,3
	X1930 CIRCLE(108,128),1,3
	X1940 CIRCLE(113,128),1,3
	X1950 CIRCLE(207,153),2,3
	X1960 CIRCLE(207,159),2,3
	X1970 CIRCLE(213,153),2,3
	X1980 CIRCLE(213,159),2,3
	X32767 CHAIN"TREE3.BAS"
	X32770   '       PROGRAM NAME:   TREE.BAS                                                '       WRITTEN BY:     CATHLEEN HORNE                                          '       EDIT DATE:      29-NOV-1983
SHAR_EOF
if test 6187 -ne "`wc -c < 'tree.bas'`"
then
	echo shar: error transmitting "'tree.bas'" '(should have been 6187 characters)'
fi
fi # end of overwriting check
echo shar: extracting "'tree3.bas'" '(14334 characters)'
if test -f 'tree3.bas'
then
	echo shar: will not over-write existing file "'tree3.bas'"
else
sed 's/^	X//' << \SHAR_EOF > 'tree3.bas'
	X5 CLEAR ,,8192 :DEFINT A-Z :PLAY "MB" :GOSUB 19900
	X1090 READ S,O :IF S=32767 THEN GOTO 4990
	X1100 READ N,D :IF N=-1 THEN GOSUB 22320 :GOTO 1090
	X1110 IF MUS.ON THEN SOUND F!(N+O),D :SOUND 32767,S
	X1115 '*** SNOW ***                                                                   '
	X1117 GET (280,31)-(309,99),S
	X1119 PUT (280,31),S,XOR
	X1120 PUT (280,31),S,XOR
	X1122 PUT (280,31),S,XOR
	X1124 PUT (280,32),S,XOR
	X1125 PSET (RND*27+280,31),3
	X1126 '*** MOVE FIRE ***                                                              '
	X1127 FIRE=FIRE+1 :IF FIRE>4 THEN FIRE=1
	X1128 ON FIRE GOTO 1129,1130,1131,1132
	X1129 PUT(22,100),FIRE1,PSET :GOTO 1135
	X1130 PUT(26,100),FIRE2,PSET :GOTO 1135
	X1131 PUT(26,100),FIRE1,PSET :GOTO 1135
	X1132 PUT(22,100),FIRE2,PSET
	X1135 EVENT=EVENT+1 :IF EVENT>MAXEVENT THEN EVENT=1'*** SELECT EVENT ***
	X1140 ON EVENT GOTO 1900,1400,1500,1900,1300,1400,1900,1900
	X1300 '*** MOVE STAR AND BIRDS ***                                                    '
	X1302 STAR=1-STAR :IF STAR THEN PUT(188,0),STAR1,PSET :PUT(276,17),BIRD1,PSET         ELSE PUT(188,0),STAR2,PSET :PUT(276,17),BIRD2,PSET
	X1304 GOTO 1100
	X1400 '*** MOVE CLOCK ***                                                             '
	X1401 IF MUS.ON=0 THEN MOTOR
	X1402 CLOCK=CLOCK+1 :IF CLOCK>4 THEN CLOCK=1
	X1405 ON CLOCK GOTO 1410,1415,1420,1425
	X1410 PUT(104,88),CLOCK1,PSET :GOTO 1100
	X1415 PUT(104,88),CLOCK2,PSET :GOTO 1100
	X1420 PUT(104,88),CLOCK3,PSET :GOTO 1100
	X1425 PUT(104,88),CLOCK2,PSET :GOTO 1100
	X1500 '*** PAINT CANDLES ***                                                          '
	X1502 PAINT(19,41),CANDLE,0
	X1504 CANDLE=-((CANDLE=2)*3+(CANDLE=3)*2)
	X1506 PAINT(53,41),CANDLE,0
	X1508 GOTO 1100
	X1900 '*** BLINK LIGHTS ***
	X1901 LIT=1-LIT :IF LIT THEN GOTO 1910
	X1902 L=L+1 :IF L>30 THEN L=0
	X1905 CIRCLE(LX(L),LY(L)),2,1 :PSET(LX(L),LY(L)),1 :GOTO 1100
	X1910 CIRCLE(LX(L),LY(L)),2,0 :PSET(LX(L),LY(L)),RND*4 :GOTO 1100
	X4990 IF MUS.ON THEN GOSUB 22110 :GOSUB 22110 :MUS.ON=0
	X4992 RESTORE 5000 :GOTO 1090
	X5000 DATA 1,12 :'O TANNENBAUM                                                                   '
	X5001 DATA 39,8,44,6,44,2,44,8,46,8,48,6,48,2,48,12,48,4
	X5002 DATA 46,4,48,4,49,8,43,8,46,8,44,12
	X5003 DATA 39,8,44,6,44,2,44,8,46,8,48,6,48,2,48,12,48,4
	X5004 DATA 46,4,48,4,49,8,43,8,46,8,44,12
	X5005 DATA -12,4,51,4,51,4,48,4,53,10,51,4,51,4,49,4,49,10,49,4
	X5006 DATA 49,4,46,4,51,10,49,4,49,4,48,4,48,8,39,8
	X5007 DATA 44,6,44,2,44,8,46,8,48,6,48,2,48,12
	X5008 DATA 48,4,46,4,48,4,49,8,43,8,46,8,44,16
	X5009 DATA -12,14,-1,-1
	X5010 DATA 1,12 :'HARK THE HAROLD ANGELS SING                                                    '
	X5011 DATA 40,4,45,4,45,5,44,2,45,4,49,4,49,4,47,4
	X5012 DATA 52,4,52,4,52,5,50,2,49,4,47,4,49,8
	X5013 DATA 40,4,45,4,45,5,44,2,45,4,49,4,49,4,47,4
	X5014 DATA 52,4,47,4,47,4,44,4,44,4,42,4,40,8
	X5015 DATA 52,4,52,4,52,4,45,4,50,4,49,4,49,4,47,4
	X5016 DATA 52,4,52,4,52,4,45,4,50,4,49,4,49,4,47,4
	X5017 DATA 54,4,54,4,54,4,52,4,50,4,49,4,50,8
	X5018 DATA 47,4,49,1,50,1,52,5,45,2,45,4,47,4,49,9
	X5019 DATA 54,4,54,4,54,4,52,4,50,4,49,4,50,8
	X5020 DATA 47,4,49,1,50,1,52,5,45,2,45,4,47,4,45,10
	X5021 DATA -12,14,-1,-1
	X5022 DATA 1,12 :'DECK THE HALLS                                                                 '
	X5023 DATA 52,5,50,2,49,4,47,4,45,4,47,4,49,4,45,4
	X5024 DATA 47,2,49,2,50,2,47,2,49,5,47,2,45,4,44,4,45,10
	X5025 DATA 52,5,50,2,49,4,47,4,45,4,47,4,49,4,45,4
	X5026 DATA 47,2,49,2,50,2,47,2,49,5,47,2,45,4,44,4,45,10
	X5027 DATA 47,5,49,2,50,4,47,4,49,5,50,2,52,4,47,4
	X5028 DATA 49,2,51,2,52,4,54,2,56,2,57,4,56,4,54,4,52,10
	X5029 DATA 52,5,50,2,49,4,47,4,45,4,47,4,49,4,45,4
	X5030 DATA 54,2,54,2,54,2,54,2,52,5,50,2,49,4,47,4,45,10
	X5039 DATA -12,14,-1,-1
	X5040 DATA 1,-24 :'UP ON THE HOUSE-TOP                                                            '
	X5041 DATA 52,4,52,2,54,2,52,4,49,2,47,2,45,4,49,4,52,8
	X5042 DATA 54,4,54,4,52,4,49,4,47,4,52,4,52,8
	X5043 DATA 52,4,52,2,54,2,52,4,49,2,47,2,45,4,49,4,52,8
	X5044 DATA 54,4,54,2,54,2,52,2,52,2,49,4,47,4,52,4,45,8
	X5045 DATA 50,4,50,4,54,8,52,4,52,2,52,2,49,8
	X5046 DATA 47,4,50,4,50,8,49,4,52,2,52,2,45,4,49,4
	X5047 DATA 52,4,52,2,54,2,52,4,49,4,50,4,52,4,54,8
	X5048 DATA 52,4,52,2,54,2,52,2,52,2,49,4,47,4,52,4,45,10
	X5049 DATA 24,14,-1,-1
	X5050 DATA 1,-12 :'IT CAME UPON THE MIDNIGHT CLEAR                                                '
	X5051 DATA 47,4,56,8,54,4,54,4,52,4,49,4,47,8,49,4,47,8
	X5052 DATA 47,4,49,4,51,4,52,4,52,4,54,4,56,4,54,20
	X5053 DATA 47,4,56,8,51,4,54,4,52,4,49,4,47,8,49,4,47,8
	X5054 DATA 47,4,49,8,49,4,51,4,49,4,47,4,52,20
	X5055 DATA 56,4,56,8,44,4,44,4,46,4,48,4,49,8,51,4,52,8
	X5056 DATA 56,4,54,4,52,4,51,4,49,4,51,4,49,4,47,20
	X5057 DATA 47,4,56,8,51,4,54,4,52,4,49,4,47,8,49,4,47,8
	X5058 DATA 47,4,49,8,49,4,51,4,49,4,47,4,52,20
	X5059 DATA 12,14,-1,-1
	X5060 DATA 1,0 :'AWAY IN A MANGER (JACK NELSON)                                                 '
	X5061 DATA 40,4,45,4,45,4,49,2,47,2,45,4,45,4,40,4,42,4,45,4,42,4,40,8
	X5062 DATA 40,4,45,4,45,4,47,4,49,4,49,4,52,4,52,4,49,4,45,4,47,8
	X5063 DATA 40,4,45,4,45,4,49,2,47,2,45,4,45,4,40,4,42,4,50,4,42,4,40,8
	X5064 DATA 40,4,45,4,45,4,47,4,49,4,52,4,50,4,49,4,40,4,44,4,45,8
	X5065 DATA 44,2,45,2,47,4,47,4,52,4,47,4,47,4,44,4,47,4,45,4,42,4,40,8
	X5066 DATA 44,2,45,2,47,4,47,4,52,4,47,4,47,4,44,4
	X5067 DATA 45,2,44,2,45,2,47,2,49,2,51,2,52,8
	X5068 DATA 54,4,52,4,49,4,49,2,47,2,45,4,45,4,40,4,42,4,50,4,42,4,40,8
	X5069 DATA 40,4,45,4,45,4,47,4,49,4,52,4,50,4,49,4,40,4,44,4,45,8
	X5070 DATA 0,14,-1,-1
	X5071 DATA 1,0 :'WHAT CHILD IS THIS?                                                            '
	X5072 DATA 44,4,47,8,49,4,51,5,52,2,51,4,49,8
	X5073 DATA 46,4,42,5,44,2,46,4,47,8,44,4,44,5,43,2,44,4,46,12,39,8
	X5074 DATA 44,4,47,8,49,4,51,5,52,2,51,4,49,8
	X5075 DATA 46,4,42,5,44,2,46,4,47,5,46,2,44,4,43,5,41,2,43,4,44,12,44,12
	X5076 DATA 54,12,54,5,52,2,51,4,49,8,46,4,42,5,44,2,46,4,47,8
	X5077 DATA 44,4,44,5,43,2,44,4,46,8,43,4,39,12
	X5078 DATA 54,12,54,5,52,2,51,4,49,8,46,4,42,5,44,2,46,4
	X5079 DATA 47,5,46,2,44,4,43,5,41,2,43,4,44,12,44,8
	X5080 DATA 44,4,47,8,49,4,51,5,52,2,51,4,49,8
	X5081 DATA 46,4,42,5,44,2,46,4,47,8,44,4,44,5,43,2,44,4,46,12,39,8
	X5082 DATA 44,4,47,8,49,4,51,5,52,2,51,4,49,8
	X5083 DATA 46,4,42,5,44,2,46,4,47,5,46,2,44,4,43,5,41,2,43,4,44,12,44,12
	X5084 DATA 54,12,54,5,52,2,51,4,49,8,46,4,42,5,44,2,46,4,47,8
	X5085 DATA 44,4,44,5,43,2,44,4,46,8,43,4,39,12
	X5086 DATA 54,12,54,5,52,2,51,4,49,8,46,4,42,5,44,2,46,4
	X5087 DATA 47,5,46,2,44,4,43,5,41,2,43,4,44,12,44,8
	X5088 DATA 0,14,-1,-1
	X5089 DATA 1,-12 :'JINGLE BELLS                                                                   '
	X5090 DATA 40,4,40,4,49,4,47,4,45,4,40,12,40,2,40,2,40,4,49,4,47,4,45,4,42,12
	X5091 DATA 42,4,42,4,50,4,49,4,47,4,44,12,44,4,52,4,52,4,50,4,47,4,49,12
	X5092 DATA 40,4,40,4,49,4,47,4,45,4,40,12,40,2,40,2,40,4,49,4,47,4,45,4,42,12
	X5093 DATA 42,4,42,4,50,4,49,4,47,4,52,4,52,4,52,4,52,4,54,4,52,4,50,4,47,4,45,16
	X5094 DATA 49,4,49,4,49,8,49,4,49,4,49,8,49,4,52,4,45,4,47,4,49,16
	X5095 DATA 50,4,50,4,50,4,50,4,50,4,49,4,49,4,49,2,49,2,49,4,47,4,47,4
	X5096 DATA 49,4,47,8,52,8
	X5097 DATA 49,4,49,4,49,8,49,4,49,4,49,8,49,4,52,4,45,4,47,4,49,16
	X5098 DATA 50,4,50,4,50,4,50,4,50,4,49,4,49,4,49,2,49,2,52,4,52,4,50,4,47,4,45,12
	X5108 DATA 12,14,-1,-1
	X5109 DATA 1,0:'O LITTLE TOWN OF BETHLEHEM                                                     '
	X5110 DATA 49,4,49,4,49,4,48,4,49,4,52,4,50,4,42,4
	X5111 DATA 47,4,45,4,44,2,45,2,47,4,40,4,49,12
	X5112 DATA 49,4,49,4,49,4,54,4,52,4,52,4,50,4,42,4
	X5113 DATA 47,4,45,4,44,2,45,2,49,4,47,4,45,12
	X5114 DATA 49,4,49,4,49,4,47,4,45,4,44,8,44,4,44,4,42,4,44,4,45,4,47,4,49,12
	X5115 DATA 49,4,49,4,49,4,48,4,49,4,52,4,50,4,42,4
	X5116 DATA 54,4,52,4,45,4,49,4,47,4,45,12
	X5117 DATA 49,4,49,4,49,4,48,4,49,4,52,4,50,4,42,4
	X5118 DATA 47,4,45,4,44,2,45,2,47,4,40,4,49,12
	X5119 DATA 49,4,49,4,49,4,54,4,52,4,52,4,50,4,42,4
	X5120 DATA 47,4,45,4,44,2,45,2,49,4,47,4,45,12
	X5121 DATA 49,4,49,4,49,4,47,4,45,4,44,8,44,4,44,4,42,4,44,4,45,4,47,4,49,12
	X5122 DATA 49,4,49,4,49,4,48,4,49,4,52,4,50,4,42,4
	X5123 DATA 54,4,52,4,45,4,49,4,47,4,45,12
	X5124 DATA 49,4,49,4,49,4,47,4,45,4,44,8
	X5125 DATA 44,4,44,4,42,4,44,4,45,4,47,4,49,12
	X5126 DATA 49,4,49,4,49,4,48,4,49,4,52,4,50,4,42,4
	X5127 DATA 54,4,52,4,45,4,49,4,47,4,45,8
	X5128 DATA 0,14,-1,-1
	X5129 DATA 1,0:'AWAY IN A MANGER (TRADITIONAL)
	X5130 DATA 52,4,52,5,50,2,49,4,49,5,47,2,45,4,45,4,44,4,42,4,40,8
	X5131 DATA 40,4,40,5,42,2,40,4,40,4,47,4,44,4,42,4,40,4,45,4,49,8
	X5132 DATA 52,4,52,5,50,2,49,4,49,5,47,2,45,4,45,4,44,4,42,4,40,8
	X5133 DATA 40,4,50,5,49,2,47,4,49,4,47,4,45,4,47,4,42,4,44,4,45,12
	X5134 DATA 42,4,45,4,50,4,40,4,45,4,49,4,40,4,44,4,47,4,49,12
	X5135 DATA 42,4,45,4,50,4,40,4,45,4,49,4,40,4,44,4,47,4,45,8
	X5136 DATA 52,4,52,5,50,2,49,4,49,5,47,2,45,4,45,4,44,4,42,4,40,8
	X5137 DATA 40,4,40,5,42,2,40,4,40,4,47,4,44,4,42,4,40,4,45,4,49,8
	X5138 DATA 52,4,52,5,50,2,49,4,49,5,47,2,45,4,45,4,44,4,42,4,40,8
	X5139 DATA 40,4,50,5,49,2,47,4,49,4,47,4,45,4,47,4,42,4,44,4,45,12
	X5140 DATA 0,14,-1,-1
	X5150 DATA 1,0 :'GOD REST YE MERRY GENTLEMEN
	X5151 DATA 42,4,42,4,49,4,49,4,47,4,45,4,44,4,42,4,40,4
	X5152 DATA 42,4,44,4,45,4,47,4,49,12
	X5153 DATA 42,4,42,4,49,4,49,4,47,4,45,4,44,4,42,4,40,4
	X5154 DATA 42,4,44,4,45,4,47,4,49,12
	X5155 DATA 49,4,50,4,47,4,49,4,50,4,52,4,54,4,49,4,47,4
	X5156 DATA 45,4,42,4,44,4,45,4,47,8,45,4,47,4,49,8
	X5157 DATA 50,4,49,4,49,4,47,4,45,4,44,4,42,8
	X5158 DATA 45,2,44,2,42,4,47,8
	X5159 DATA 45,4,47,4,49,4,50,4,52,4,54,4
	X5160 DATA 49,4,47,4,45,4,44,4,42,10
	X5161 DATA 0,14,-1,-1
	X5170 DATA 1,0 :'SILENT NIGHT
	X5171 DATA 47,11,49,4,47,8,44,24,47,11,49,4,47,8,44,24
	X5172 DATA 54,16,54,8,51,24,52,16,52,8,47,24
	X5173 DATA 49,16,49,8,52,11,51,4,49,8,47,11,49,4,47,8,44,24
	X5174 DATA 49,16,49,8,52,11,51,4,49,8,47,11,49,4,47,8,44,24
	X5175 DATA 54,16,54,8,57,11,54,4,51,8,52,24,56,24
	X5176 DATA 52,8,47,8,44,8,47,8,45,8,42,8,40,24
	X5177 DATA 0,14,-1,-1
	X5999 DATA 32767,32767
	X19900 '*** INIT PROGRAM ***
	X19910 X=0 :L=0 :MUS.ON=1 :EVENT=0 :MAXEVENT=8 :N=0 :D=0 :O=0 :S=0 :CLOCK=3           :CANDLE=2 :FIRE=1 :X1=0 :LIT=0 :STAR=0 :HAND=11
	X19920 DIM S(278),F!(88),FIRE1(48),FIRE2(48),STAR1(38),STAR2(38),                       CLOCK1(37),CLOCK2(37),CLOCK3(37),LX(30),LY(30),BIRD1(47),BIRD2(47),             HX(11),HY(11)
	X19924 KEY(9) ON :ON KEY(9) GOSUB 30050
	X19925 KEY(10) ON :ON KEY(10) GOSUB 30000
	X19930 '*** INIT MUSICAL NOTES ***
	X19940 FOR X=0 TO 6 :F!(X)=32767 :NEXT X
	X19950 FOR X=7 TO 88 :F!(X)=36.8*(2^(1/12))^(X-6) :NEXT X
	X19960 GOSUB 23000 '*** INIT TREE LIGHTS ***
	X19970 GOSUB 21000 '*** INIT STAR ***
	X19972 GOSUB 21200 '*** INIT BIRDS ***
	X19980 GOSUB 20000 '*** INIT FIRE ***
	X19982 GOSUB 22300 :GOSUB 22320 '*** INIT CLOCK HANDS ***
	X19990 GOSUB 22000 '*** INIT CLOCK ***
	X19992 GOSUB 22100 '*** START CLOCK ***
	X19994 RESTORE 5000 :RETURN' TO  M A I N                                               '
	X20000 LINE(22,112)-(26,104),2 '*** INIT FIRE ***
	X20010 LINE-(30,110),2 :LINE-(33,100),2
	X20020 LINE-(40,103),2 :LINE-(41,110),2
	X20030 LINE-(44,102),2 :LINE-(46,112),2
	X20040 LINE-(22,112),2
	X20050 PAINT(24,110),3,2
	X20060 FOR X=1 TO 12 :PSET(RND*28+22,RND*6+100),2 :NEXT X
	X20070 GET(22,100)-(48,112),FIRE1
	X20080 PUT(22,100),FIRE1,XOR
	X20090 LINE(46,112)-(42,104),3
	X20100 LINE-(38,110),3 :LINE-(35,100),3
	X20110 LINE-(28,103),3 :LINE-(27,110),3
	X20120 LINE-(24,102),3 :LINE-(22,112),3
	X20130 LINE-(46,112),3
	X20140 PAINT(24,110),2,3
	X20150 FOR X=1 TO 12 :PSET(RND*28+22,RND*6+100),3 :NEXT X
	X20160 GET (22,100)-(48,112),FIRE2                                                     '
	X20170 RETURN
	X21000 '*** INIT STAR ***
	X21010 X=2 :GOSUB 21100
	X21020 PAINT(200,4),3,2
	X21030 PSET(193,1),3 :PSET(207,1),3
	X21040 PSET(191,8),3 :PSET(209,8),3
	X21050 GET(188,0)-(210,11),STAR1 :PUT(188,0),STAR1,XOR
	X21060 X=3 :GOSUB 21100
	X21070 PAINT(200,4),2,3
	X21080 PSET(192,0),2 :PSET(208,0),2
	X21090 PSET(190,9),2 :PSET(210,9),2
	X21095 GET(188,0)-(210,11),STAR2 :RETURN
	X21100 LINE(200,0)-(204,4),X
	X21110 LINE-(210,4),X :LINE-(205,7),X
	X21120 LINE-(208,11),X :LINE-(200,8),X
	X21130 LINE-(192,11),X :LINE-(195,7),X
	X21140 LINE-(190,4),X :LINE-(196,4),X
	X21150 LINE-(200,0),X
	X21160 LINE(201,0)-(205,4),X
	X21170 LINE(199,0)-(195,4),X
	X21180 RETURN
	X21200 '*** INIT BIRDS ***
	X21210 GET(276,17)-(312,25),BIRD1
	X21220 LINE(293,20)-(297,20),0 :LINE(279,21)-(282,23),0 :LINE(311,21)-(308,23),0
	X21222 LINE(278,25)-(282,23),2 :LINE(308,23)-(312,25),2
	X21224 LINE(294,17)-(292,19),2 :LINE(296,17)-(298,19),2
	X21226 GET(276,17)-(312,25),BIRD2
	X21230 RETURN
	X22000 '*** INIT CLOCK ***
	X22010 GET(104,88)-(121,101),CLOCK2 :LINE(114,96)-(114,88),0
	X22020 PAINT(114,99),0,2 :CIRCLE(114,99),2,0
	X22030 LINE(110,95)-(114,88),3 :CIRCLE(109,98),2,2 :PAINT(109,98),3,2
	X22040 GET(104,88)-(121,101),CLOCK1
	X22050 LINE(110,95)-(114,88),0 :PAINT(109,98),0,2 :CIRCLE(109,98),2,0
	X22060 LINE(118,95)-(114,88),3 :CIRCLE(119,98),2,2 :PAINT(119,98),3,2
	X22070 GET(104,88)-(121,101),CLOCK3
	X22080 RETURN
	X22100 '*** TICK CLOCK ***
	X22110 FOR X=1 TO 8
	X22130 MOTOR :FOR X1=1 TO 800 :NEXT X1
	X22140 CLOCK=CLOCK+1 :IF CLOCK>4 THEN CLOCK=1
	X22150 ON CLOCK GOTO 22160,22170,22180,22190
	X22160 PUT(104,88),CLOCK1,PSET :GOTO 22200
	X22170 PUT(104,88),CLOCK2,PSET :GOTO 22200
	X22180 PUT(104,88),CLOCK3,PSET :GOTO 22200
	X22190 PUT(104,88),CLOCK2,PSET
	X22200 NEXT X :RETURN
	X22300 '*** INIT CLOCK HANDS ***
	X22310 RESTORE 22312
	X22312 DATA 114,40,119,42,122,44,124,48,122,52,119,54,114,56
	X22313 DATA 109,54,106,52,104,48,106,44,109,42
	X22314 FOR X=0 TO 11 :READ HX(X),HY(X) :NEXT X
	X22318 RETURN
	X22320 LINE(114,48)-(HX(HAND),HY(HAND)),0'*** REDRAW HANDS ***
	X22322 HAND=HAND+1 :IF HAND>11 THEN HAND=0
	X22324 LINE(114,48)-(HX(HAND),HY(HAND)),2
	X22328 RETURN
	X23000 '*** INIT TREE LIGHTS ***
	X23010 RESTORE 23020
	X23020 DATA 219,91,188,27,205,21,214,44,193,54,210,61,243,64,164,62
	X23022 DATA 146,78,168,88,189,88,201,100,237,89,270,99,275,114,257,122
	X23024 DATA 241,111,217,120,189,126,174,114,141,97,118,124,146,121
	X23026 DATA 172,131,209,139,244,134,244,75,185,39,171,46,224,40,185,66
	X23050 FOR X=0 TO 30 :READ LX(X),LY(X) :CIRCLE(LX(X),LY(X)),1,RND*2+2                  :CIRCLE(LX(X),LY(X)),2,0 :PSET(LX(X),LY(X)),RND*2+2 :NEXT X :RETURN
	X30000 '*** TOGGLE MUSIC ON/OFF ***
	X30010 MUS.ON=1-MUS.ON
	X30020 IF MUS.ON THEN LINE(114,48)-(HX(HAND),HY(HAND)),0 :HAND=11                      :GOSUB 22320 :GOSUB 22100 :RESTORE 5000 :RETURN 1090
	X30030 RESTORE :RETURN 1100
	X30050 CLS :SYSTEM
	X32770   '       PROGRAM NAME:   TREE3.BAS                                               '       WRITTEN BY:     GREGORY HORNE                                           '       EDIT DATE:      29-NOV-1983
SHAR_EOF
if test 14334 -ne "`wc -c < 'tree3.bas'`"
then
	echo shar: error transmitting "'tree3.bas'" '(should have been 14334 characters)'
fi
fi # end of overwriting check
#	End of shell archive
exit 0