By manoeuvering Santa's sleigh left and right you can catch the presents as they are thrown down from above by the elves. Presents can then be dropped down the chimneys by pressing the M key. Each time a present is successfully delivered, the inhabitants of the house awake and switch on the lights, which causes the snow on the roof to melt at a rate proportional to the activity in the house. The more work Santa does the more he has to hurry, in order to complete his work without being seen.
10 MODE2 20 VDU23,1,0;0;0;0; 30 GOSUB500 40 hs=0:q=10 50 COLOUR132:CLS 60 GOSUB680 70 sk=.98:s=0:t=5 80 a$=CHR$224:b$=CHR$225:c$=CHR$226:x=17 90 g=1:h=RND(18) 100 PRINTTAB(12,0)"HI-SC:";hs 110 p=0 120 PRINTTAB(0,0)"PRESENTS:";s 130 IFINKEY(-67) x=x-2*(x<17):a$=CHR$227:b$ =CHR$228:c$=CHR$229 140 IFs=t t=t+5:GOSUB850 150 IFINKEY(-98) x=x+2*(x>-1):a$=CHR$224:b$ =CHR$225:c$=CHR$226 160 IFx<2 GOTO180 170 PRINTTAB(x-2,10)" ":COLOUR1:PRINT TAB(x,10)a$;TAB(x+2,10)c$:COLOUR3:PRINTTAB(x+ 1,10)b$:GOTO200 180 PRINTTAB(x+2,10)" ":COLOUR1:PRIN TTAB(x,10)a$;TAB(x+2,10)c$:COLOUR3:PRINTTAB(x +1,10)b$ 190 IFx=1 PRINTTAB(0,10)" " 200 g=g+1:IFg>1 PRINTTAB(h,g-1)" ":COLOUR3: PRINTTAB(h,g)CHR$230 210 IFg=10 AND(h=x+2 ORh=x+1 ORh=x) p=1 220 IFp>0 g=0 230 Z%=0 240 IFg=20 ANDFNATTR(h,g+1)=":" GOTO290 250 IFg=20 PRINTTAB(h,20)" ":g=1:h=RND(17) 260 IFp>0 ANDINKEY(-102) g=10:h=x-1-(a$=CHR $227)-3*(c$=CHR$226):p=0 270 IFRND(1)>sk q=RND(20)-1:IFFNATTR(q,27)< >"_" COLOUR133:PRINTTAB(q,24)" ":COLOUR132:GO TO390 280 GOTO130 290 PRINTTAB(h,20)" " 300 IFFNATTR(h,27)<>"_" GOTO90 310 s=s+1:PRINTTAB(0,0);"PRESENTS:";s 320 COLOUR0:COLOUR131:PRINTTAB(h,26);"__";T AB(h,27);"__" 330 FORf=1 TO3:SOUND1,-15,f,1:NEXTf 340 COLOUR132 350 C%=0:FORf=1 TO17 STEP4:IFFNATTR(f,26)=" _" C%=C%+1 360 NEXT 370 IFC%=5 sk=sk-.02:CLS:GOSUB710:GOTO80 380 GOTO90 390 q=((q)DIV4)*4+1:COLOUR133:F=1:FORI=0TO3 :IFFNATTR(q+I,24)<>" " F=0 400 NEXT:COLOUR132:IFF=0 GOTO130 410 a$=CHR$227:b$=CHR$228:c$=CHR$229:IFx<0 X=0 420 FORf=10 TO1 STEP-.5:COLOUR1:PRINTTAB(x, f)a$;TAB(x+2,f)c$:COLOUR3:PRINTTAB(x+1,f)b$:P RINTTAB(x,f+1)" ":SOUND1,-15,f*10,2:FORJ=0 TO200:NEXT, 430 IFs>hs hs=s 440 PRINTTAB(x,1)" " 450 PRINTTAB(h,g)" " 460 COLOUR8:*FX15 470 PRINTTAB(5,8)"GAME OVER" 480 PRINTTAB(2,12)"ANY KEY TO PLAY"TAB(7, 13)"AGAIN" 490 X=GET:CLS:GOTO60 500 PRINT" CHRISTMAS EVE" 510 PRINT'"It is approaching midnight o n Xmas Eveand Santa is late. You play the pa rt ofSanta and you must deliver presents which are thrown down to you by your elves . Having caughta present (by flyingdirectly b elow it)" 520 PRINT"you must move over achimney and drop a present down it." 530 PRINT''''"ANY KEY FOR MORE" 540 X=GET:CLS 550 PRINT'"When a present has been dropp ed down a chimney the family in the house im medi-ately start work on opening the present and they will turn the light on." 560 PRINT"Dropping another present dow n the chimney of a lit house will not c ount" 570 PRINT'"Beneath each roof you will s ee a patchof snow which melts as time elapses . This melts at a ratewhich is proportional to the activity in the house ." 580 PRINT''''"ANY KEY FOR MORE" 590 X=GET:CLS 600 PRINT'"As the presents mustbe placed down the chimney before anyone sees you , if all the snow has melted under any roof without a present being dropp ed before this occurs,it will indicate t hat the" 610 PRINT"family is awake,and you will ha ve" 620 PRINT"to return at once." 630 PRINT'" Z LEFT" 640 PRINT'" X RIGHT" 650 PRINT'" M DROP PRESENT" 660 PRINT'"ANY KEY TO START" 670 X=GET:CLS:RETURN 680 VDU23,224,0,0,1,0,0,0,0,0 690 VDU23,225,192,64,160,224,127,126,99,8 2 700 VDU23,226,8,28,8,124,156,72,63,128 710 VDU23,227,16,56,16,62,56,18,252,1 720 VDU23,228,3,2,5,7,254,126,198,74 730 VDU23,229,0,0,128,0,0,0,0,0 740 VDU23,230,0,0,0,54,54,0,54,54 750 VDU23,231,0,1,3,7,15,31,63,127 760 VDU23,232,0,128,192,224,240,248,252,2 54 770 VDU23,233,255,220,73,65,64,0,0,0 780 VDU23,234,24,60,86,60,24,126,255,255 790 VDU23,255,255,255,255,255,255,255,255 ,255 800 FORx=0 TO16 STEP4 810 COLOUR5:PRINTTAB(x+1,21)":":COLOUR1 33:COLOUR6:PRINTTAB(x+1,22)CHR$231:COLOUR132: PRINTTAB(x+2,22)CHR$232:PRINTTAB(x,23)CHR$231 ;CHR$255;CHR$255;CHR$232:COLOUR7:COLOUR133:PR INTTAB(x,24)CHR$233;CHR$233;CHR$233;CHR$233:C OLOUR132 820 COLOUR5:PRINTTAB(x,25)CHR$255;CHR$2 55;CHR$255;CHR$255;TAB(x,26)CHR$255" "CHR$25 5;TAB(x,27)CHR$255" "CHR$255;TAB(x,28)CHR$25 5;CHR$255;CHR$255;CHR$255;TAB(x,29)CHR$255;CH R$255;CHR$255;CHR$255 830 NEXTx 840 GCOL0,0:FORI=255TO1023STEP256:MOVEI,6 4:DRAWI,223:NEXT 850 COLOUR7 860 FORI=1TO17STEP4:PRINTTAB(I,26)" ";TA B(I,27)"__":NEXT 870 RETURN 880 DEFFNATTR(X%,Y%) 890 VDU31,X%,Y% 900 A%=135:A%=USR&FFF4 AND&FFFF 910 =CHR$(A% DIV256)