10 ON ERROR 890 :: ON WARNING NEXT
20 CALL CLEAR :: CALL SCREEN(2) :: CALL MAGNIFY(3) :: RANDOMIZE
25 FOR I=1 TO 8 :: CALL COLOR(I,9,1) :: NEXT I
26 A$=">>>> PRESS ANY KEY TO BEGIN <<<< >>>> PLAY HASE <<<< "
30 DISPLAY AT(3,12):"********";TAB(14);"HASE";TAB(12);"********"
40 DISPLAY AT(9,3):"(C) BY HEIKO ERNST 1985";:;:;:;:;TAB(10);"FROHE OSTERN !"
41 FOR I=1 TO 53
42 D$=SEG$(SEG$(A$,I,28)&SEG$(A$,1,28),1,28)
43 DISPLAY AT(20,1):D$
44 CALL KEY(0,K,S) :: IF S=0 THEN 45 ELSE 55
45 NEXT I
50 GOTO 41
55 CALL CLEAR :: FOR I=1 TO 8 :: CALL COLOR(I,1,1) :: NEXT I
60 CALL CHAR(96,"0001010101030703010F010303030F3FC0C0F0F0E060E0E0C0FEEEEEEEFEECF")
70 CALL CHAR(40,"FBFBFB00DFDFDF",112,"FF020408102040FF")
80 CALL CHAR(120,"7777777777777777",121,"6060606060606060",122,"0303030303030303")
90 CALL CHAR(123,"8040201008040201",124,"0102040810204080",125,"6060607068646261",126,"616264687060606")
100 CALL CHAR(127,"0303070B13234383",128,"834323130B070303")
110 CALL CHAR(129,"FFFF",130,"037FFFCF03030303",131,"04FE")
120 CALL CHAR(136,"03070F0D1F1E0F07",137,"C0E0F0B0F878F0E",138,"030F173777777777",139,"C0F0E8ECEEEEEEEE")
130 CALL CHAR(140,"777737170F0F0703",141,"EEEEECE8F0F0E0C")
140 CALL CHAR(64,"7C6C7F7F7C70783",104,"000000000030387C",33,"0000000000010101",34,"000000000080808")
150 CALL CHAR(105,"010303071F7F7F0F",106,"80C0C0E0F8FFFEF",132,"0303030303030303",133,"C0C0C0C0C0C0C0C")
160 CALL CHAR(135,"000000000000FFFF",142,"08181E1E3C6C3818")
170 CALL CHAR(68,"0000000000000000FF3F1F1F081C141C0000000010187EF7FCF0FCE02070507")
180 CALL CHAR(72,"00020822882208020000000000000000800080008000800080")
190 CALL CHAR(76,"000000183C3C3C1800000000000000000000000000000000000000000000")
200 CALL CHAR(100,"03030F0F07060707037F7777777F370F0080808080C0E0C080F080C0C0C0F0FC")
210 CALL CHAR(88,"000000183C3C3C18",89,"7E7E7E7E7E7E7E3C")
211 CALL CHAR(35,"00ED89E929ED",36,"00DD555D59D5",37,"00C0088000C8",38,"00A9AAEAAAAB",39,"00A829B8A8A9")
220 CALL HCHAR(12,9,112,24) :: CALL HCHAR(18,1,112,32) :: CALL HCHAR(24,1,112,32)
230 FOR I=1 TO 6 :: CALL HCHAR(17+I,1,40,I) :: CALL HCHAR(11+I,33-I,40,I) :: NEXT I
240 CALL VCHAR(13,9,40,5) :: CALL VCHAR(13,10,40,5)
250 CALL VCHAR(10,2,121,8) :: CALL VCHAR(10,5,122,8) :: CALL HCHAR(9,2,120,4) :: CALL HCHAR(12,2,120,4) :: CALL HCHAR(13,2,120,4)
260 CALL HCHAR(14,2,125) :: CALL HCHAR(15,3,123) :: CALL HCHAR(16,4,123) :: CALL HCHAR(17,5,128)
270 CALL HCHAR(14,5,127) :: CALL HCHAR(15,4,124) :: CALL HCHAR(16,3,124) :: CALL HCHAR(17,2,126)
280 CALL HCHAR(6,1,129,32)
290 FOR I=13 TO 23 STEP 2 :: CALL HCHAR(3,I,136) :: CALL HCHAR(3,I+1,137) :: CALL HCHAR(4,I,138) :: CALL HCHAR(4,I+1,139) :: CALL HCHAR(5,I,140)
300 CALL HCHAR(5,I+1,141) :: CALL HCHAR(2,I,33) :: CALL HCHAR(2,I+1,34) :: NEXT I
310 CALL HCHAR(11,4,64) :: CALL HCHAR(10,4,104) :: CALL HCHAR(11,5,130) :: CALL HCHAR(11,6,131)
320 FOR I=11 TO 23 STEP 2 :: CALL VCHAR(14,I,105,3) :: CALL VCHAR(14,I+1,106,3) :: CALL HCHAR(17,I,132) :: CALL HCHAR(17,I+1,133) :: NEXT I
330 FOR I=21 TO 23 :: CALL HCHAR(I,21,40,10) :: NEXT I
340 CALL HCHAR(21,31,123) :: CALL HCHAR(22,32,123) :: CALL HCHAR(21,20,124) :: CALL HCHAR(22,19,124) :: CALL HCHAR(23,18,124)
350 CALL HCHAR(23,16,135,2)
360 DISPLAY AT(1,1):"$%   0  L00   &'      0"
370 CALL HCHAR(23,31,89) :: CALL HCHAR(1,2,35)
380 CALL COLOR(1,7,1,2,7,15,3,8,1,4,8,1,5,10,1,6,16,1,8,6,1,10,13,1,11,5,1,12,7,1)
390 CALL COLOR(13,7,1,14,16,1)
400 CALL SPRITE(#3,68,11,121,1,0,5,#4,68,11,121,129,0,5,#5,68,11,169,65,0,5,#6,68,11,169,193,0,5)
410 CALL SPRITE(#1,96,16,169,129)
420 LE=5
430 A=169 :: B=121
440 CALL JOYST(2,X,Y)
450 IF X=-4 THEN CALL PATTERN(#1,96)ELSE IF X=4 THEN CALL PATTERN(#1,100)
460 B=B+X*2
470 IF B<49 AND X=-4 THEN A=A-8
480 IF B<57 AND X=4 THEN A=A+8
490 IF EI>0 AND B=121 THEN 960
500 CALL LOCATE(#1,A-4,B-X)
510 CALL COINC(ALL ,C) :: IF C THEN 890
520 CALL LOCATE(#1,A,B)
530 CALL COINC(ALL ,C) :: IF C THEN 890
540 IF A=121 THEN 620
550 GOSUB 570
560 GOTO 440
570 CALL KEY(2,K,S) :: IF S=0 THEN RETURN
580 CALL COINC(ALL ,C) :: IF C THEN 890
590 CALL LOCATE(#1,A-16,B+X)
600 FOR I=110 TO 550 STEP 110 :: FOR J=0 TO 30 STEP 6 :: CALL SOUND(-100,I,J) :: NEXT J :: NEXT I
610 RETURN
620 CALL JOYST(2,X,Y)
630 IF X=-4 THEN CALL PATTERN(#1,96)ELSE IF X=4 THEN CALL PATTERN(#1,100)
640 B=B+X*2
650 IF B=1 AND X=-4 THEN A=A+8 :: B=B+8 :: CALL PATTERN(#1,100) :: GOTO 480
660 IF B>193 AND X=4 THEN A=A-8
670 IF B>185 AND X=-4 THEN A=A+8
680 IF B<1 THEN 890
690 CALL LOCATE(#1,A-4,B-X) :: CALL COINC(ALL ,C) :: IF C THEN 890
700 CALL LOCATE(#1,A,B) :: CALL COINC(ALL ,C) :: IF C THEN 890
710 IF A=73 THEN 740
720 GOSUB 570
730 GOTO 620
740 CALL JOYST(2,X,Y)
750 IF X=-4 THEN CALL PATTERN(#1,96)ELSE IF X=4 THEN CALL PATTERN(#1,100)
760 B=B+X*2 :: IF B<57 OR B>248 THEN 890
770 D=D+1
780 CALL LOCATE(#1,A-4,B-X)
790 IF B>240 AND X=4 THEN A=A+8 :: B=B-8 :: CALL LOCATE(#1,A,B) :: CALL DELSPRITE(#2,#7) :: CALL PATTERN(#1,96) :: GOTO 620
800 CALL LOCATE(#1,A,B)
810 CALL COINC(#1,#2,10,C) :: IF C THEN 890
820 IF RND*3<.5 THEN CALL SPRITE(#2,72,16,78,49,0,20) :: CALL SOUND(-100,-5,0)
830 IF D>4 THEN CALL SPRITE(#7,76,15,41,101+INT(RND*6)*16,3,0) :: D=0
840 CALL KEY(2,K,S) :: IF S=0 THEN 740
850 CALL LOCATE(#1,A-16,B)
860 FOR I=0 TO 30 STEP 3 :: CALL SOUND(-100,110+I*10,I) :: CALL COINC(ALL ,C) :: IF C THEN 930
870 NEXT I :: CALL COINC(#1,#2,10,C) :: IF C THEN 890
880 GOTO 740
890 CALL DELSPRITE(#1,#2,#7) :: FOR I=0 TO 30 STEP 4 :: CALL SOUND(-100,-3,I) :: CALL SOUND(-100,110,I) :: NEXT I
900 EI=0 :: FA=0 :: DISPLAY AT(1,10)SIZE(2):"0" :: CALL COLOR(#1,16) :: CALL HCHAR(20,21,32,10)
910 LE=LE-1 :: IF LE=0 THEN 1110 ELSE CALL HCHAR(1,16,32,5) :: CALL HCHAR(1,16,142,LE)
920 CALL KEY(2,K,S) :: IF S=0 THEN 920 ELSE 430
930 EI=EI+1 :: IF EI>10 THEN EI=10 ELSE P=P+10
940 DISPLAY AT(1,10)SIZE(2):STR$(EI) :: DISPLAY AT(1,3)SIZE(5):USING "#####":P
950 CALL DELSPRITE(#7) :: GOTO 740
960 CALL HCHAR(20,21,76,EI)
970 CO=INT(RND*12)+3 :: CALL COLOR(8,CO,1)
980 CALL JOYST(2,X,Y)
990 IF X=-4 THEN CALL PATTERN(#1,96)ELSE IF X=4 THEN CALL PATTERN(#1,100)
1000 B=B+X*2
1010 IF B<121 THEN 440
1020 IF B=241 THEN CALL COLOR(#1,CO) :: FA=1
1030 CALL LOCATE(#1,A-4,B-X) :: CALL COINC(ALL ,C) :: IF C THEN 890
1040 CALL LOCATE(#1,A,B) :: CALL COINC(ALL ,C) :: IF C THEN 890
1050 CALL KEY(2,K,S) :: IF S=0 THEN 980
1060 CALL LOCATE(#1,A-16,B)
1070 IF FA<1 THEN 1100
1080 CALL GCHAR(20,INT(B/8)+1,W) :: IF W=76 THEN CALL HCHAR(20,INT(B/8)+1,88) :: P=P+100 :: DISPLAY AT(1,3)SIZE(5):USING "#####":P ELSE 1100
1090 Z=Z+1 :: IF Z=EI THEN Z=0 :: EI=0 :: DISPLAY AT(1,10)SIZE(2):"0" :: CALL COLOR(#1,16) :: CALL HCHAR(20,21,32,10)
1100 FOR I=30 TO 0 STEP-3 :: CALL SOUND(-100,-5,I,440,I) :: NEXT I :: FOR I=110 TO 880 STEP 58 :: CALL SOUND(-100,I,0) :: NEXT I :: GOTO 980
1110 CALL SOUND(-100,330,0,110,0,550,0)
1120 IF P>HI THEN HI=P :: DISPLAY AT(1,23):USING "#####":HI
1130 DISPLAY AT(1,3)SIZE(5):"     0" :: P=0
1140 LE=5 :: CALL HCHAR(1,16,142,5)
1150 CALL KEY(0,K,S) :: IF S=0 THEN 1150 ELSE 430
