User Tools

Site Tools


en:haunted_burrow

HAUNTED BURROW

Info

Author Phil Lawson
Computer Amstrad PCW 8256 / 8512 / 9512
Year 1988
Gender Arcade
Controls Keyboard
Languages English
Status Preserved

Screenshots

Description

It's Easter, and all the bunnies have gone pretty crazy. Instead of collecting eggs and delivering them to the people who deserve them, as they have always traditionally done, this year they stole and hid the batch in their network of underground tunnels.

Legend has it that if such sacrilege ever occurred, the former ghost of Robin the Rabbit, protector of Easter eggs, would return to save the day.

Robin must collect all 200 eggs before he wakes up, but to help him, if he manages to find a clock, time will slow down a bit. Sensing the imminent appearance of Robin, the Militant Leftist Tendency of the Bunnies, the Militant Leftist Tendency of the Nies (Democratically Elected Rabbits Under Control) have booby-trapped the lair with a system of special doors that can only be passed through one time.

Luckily they forgot about the magic keys that will open all locked doors immediately. If Robin manages to find all 200 eggs, he will go to another burrow, and so on until dawn.

Your task is to guide Robin's spectral head, collecting as many eggs as you can before sunrise. The time before sunrise is shown as a bar at the bottom of the screen, and you'll have a few graceful moments before the countdown begins.

Haunted Burrow is a fun game where our friend Robin the rabbit will have to find the way out of the maze to pass the level. It has good graphics quality and is easy to use. Our mission is to go into the depths of a maze and collect all the eggs we can to increase our score and the keys that are found anywhere in it. The only catch is that time flies and we won't be able to stop because Robin's time is running out.

Along the way we will find a series of objects that will help us or make our lives impossible. Among the objects we will find eggs: they will add points and will be needed to complete the mission. Clock: It will increase the time we have left. Disk: This acts as an open door, but be careful that once we go through it it will become a closed door, hindering the return from where we came to it. Key: This will allow us to complete the mission and get out of the maze before time runs out.

The movement is controlled with the keys Z, X, K and M corresponding to left, right, up and down, respectively. The number of eggs collected is displayed at the top of the screen.

When you have completed a level, you will move on to the next. Although the layout of the maze will be the same, the eggs are placed in different positions.

Don't expect to finish level one on your first try, as the playing area is 50 times larger than what is shown on the screen.

Listing

  • Listing - BUNNY.BAS
10 REM       Haunted Burrow
20 REM       by Phil Lawson
30 REM (c) Computing with the Amstrad
40 REM --------------PCW-------------
50 MEMORY &HCF00
60 e$=CHR$(27):cls$=e$+"E"+e$+"H"
70 DEF FNat$(x,y)=e$+"Y"+CHR$(32+y)+CHR$(32+x)
80 GOSUB 1990:lev=1
90 WHILE -1
100 POKE time,60:CALL keyboard
110 PRINT cls$:CALL screen
120 PRINT FNat$(20,0);"Eggs collected"
130 PRINT FNat$(60,0);"Level"
140 PRINT FNat$(26,2);0
150 PRINT FNat$(61,2);lev
160 POKE posit,&HF9:POKE posit+1,&HD9
170 GOSUB 500:POKE &HD9F9,5
180 PRINT e$+"p"
190 PRINT FNat$(23,5);SPACE$(40)
200 FOR a=6 TO 23
210 PRINT FNat$(23,a);"  "
220 PRINT FNat$(61,a);"  ":NEXT
230 PRINT FNat$(23,24);SPACE$(40)
240 PRINT e$+"q":PRINT FNat$(12,26);CHR$(134)+STRING$(60,CHR$(138))+CHR$(140)
250 PRINT FNat$(12,27);CHR$(133);FNat$(73,27);CHR$(133)
260 PRINT FNat$(12,28);CHR$(131)+STRING$(60,CHR$(138))+CHR$(137)
270 PRINT e$+"p":PRINT FNat$(13,27);SPACE$(60):PRINT e$+"q"
280 PRINT FNat$(3,27);"T I M E"
290 GOSUB 1190:REM eggs,keys & clocks
300 CALL drawmap
310 POKE dead,0:POKE parameter3,255
320 POKE eggs,0:oldegg=0
330 WHILE PEEK(dead)<>255 AND PEEK(eggs)<>200:i$=""
340 WHILE i$="":i$=INKEY$
350 CALL timer:i$=UPPER$(i$+" "):WEND
360 POKE parameter1,ASC(i$)
370 IF oldegg<>PEEK(eggs) THEN oldegg=oldegg+1:PRINT FNat$(26,2);oldegg
380 CALL moverabbit:CALL timer
390 WEND
400 addr=PEEK(posit+1)*256+PEEK(posit)
410 IF PEEK(eggs)=200 THEN FOR a=1 TO 15:POKE addr,5:CALL drawmap:FOR b=1 TO 50:NEXT:POKE addr,8:CALL drawmap:FOR b=1 TO 50:NEXT:NEXT:lev=lev+1
420 PRINT e$+"p"
430 FOR a=6 TO 23:PRINT FNat$(23,a);SPACE$(38):NEXT
440 IF PEEK(eggs)=200 THEN a$="C O N G R A T U L A T I O N S":PRINT FNat$(27,12);a$
450 PRINT e$+"q":a$="Press spacebar to play"
460 PRINT FNat$(31,14);a$
470 WHILE INKEY$<>" ":WEND
480 CALL resetscreen
490 WEND
500 REM setup graphics characters
510 addr=&HE21C
520 FOR a=0 TO 63:POKE addr+a,0:REM path
530 POKE addr+a+64,170:NEXT:REM wall
540 RESTORE 570:FOR a=128 TO 575
550 READ b:POKE addr+a,b:NEXT:RETURN
560 REM data for egg character
570 DATA 0,0,0,1,3,6,13,15
580 DATA 0,15,117,235,85,171,85,255
590 DATA 0,240,222,171,213,170,213,255
600 DATA 0,0,0,128,192,224,112,240
610 DATA 14,13,6,3,1,0,0,0
620 DATA 171,85,171,85,235,117,15,0
630 DATA 170,213,170,213,171,222,240,0
640 DATA 176,112,224,192,128,0,0,0
650 REM data for closed door
660 DATA 0,3,3,3,3,3,3,3
670 DATA 0,255,255,170,213,170,213,170
680 DATA 0,255,255,170,213,170,213,170
690 DATA 0,192,192,192,192,192,192,192
700 DATA 3,3,3,3,3,3,3,0
710 DATA 191,160,160,191,213,255,255,0
720 DATA 253,5,5,253,85,255,255,0
730 DATA 192,192,192,192,192,192,192,0
740 REM data for key character
750 DATA 0,0,1,6,29,58,53,59
760 DATA 0,0,224,184,86,235,53,43
770 DATA 0,0,0,0,0,0,255,255
780 DATA 0,0,0,0,0,0,248,248
790 DATA 53,26,7,1,0,0,0,0
800 DATA 215,174,88,224,0,0,0,0
810 DATA 6,6,0,0,0,0,0,0
820 DATA 176,48,0,0,0,0,0,0
830 REM bunny right
840 DATA 0,0,0,0,0,0,0,7
850 DATA 0,0,0,0,0,0,255,0
860 DATA 0,0,7,24,96,199,25,2
870 DATA 0,224,16,28,234,50,204,112
880 DATA 24,32,116,50,15,0,0,0
890 DATA 112,32,128,64,183,152,0,0
900 DATA 7,4,8,112,128,0,0,0
910 DATA 128,0,0,0,0,0,0,0
920 REM data for clock character
930 DATA 0,1,6,24,48,96,96,96
940 DATA 0,255,0,1,1,1,1,1
950 DATA 0,255,0,128,128,128,128,128
960 DATA 0,192,48,24,12,6,6,6
970 DATA 96,96,96,48,12,3,0,0
980 DATA 6,24,96,0,0,0,255,0
990 DATA 0,0,0,0,0,0,255,0
1000 DATA 6,6,6,12,24,96,0,0
1010 REM data for open door
1020 DATA 0,3,3,3,3,3,3,3
1030 DATA 0,255,0,0,1,14,13,14
1040 DATA 0,255,7,58,213,170,93,230
1050 DATA 0,192,192,192,192,192,192,192
1060 DATA 3,3,3,3,3,3,3,0
1070 DATA 13,14,15,1,0,0,255,0
1080 DATA 133,230,93,234,58,7,255,0
1090 DATA 192,192,192,192,192,192,192,0
1100 REM bunny left
1110 DATA 0,7,8,56,87,76,51,14
1120 DATA 0,0,224,24,6,227,152,64
1130 DATA 0,0,0,0,0,0,255,0
1140 DATA 0,0,0,0,0,0,0,224
1150 DATA 1,0,0,0,0,0,0,0
1160 DATA 224,32,16,14,1,0,0,0
1170 DATA 14,4,1,2,237,25,0,0
1180 DATA 24,4,46,76,240,0,0,0
1190 REM set up eggs,doors & keys
1200 RESTORE 1340:FOR a=1 TO 12
1210 READ door$:door$="&H"+door$
1220 POKE VAL(door$),7:NEXT
1230 FOR a=1 TO 4
1240 READ key$:key$="&H"+key$
1250 POKE VAL(key$),4:NEXT
1260 FOR a=1 TO 12
1270 READ clock$:clock$="&H"+clock$
1280 POKE VAL(clock$),6:NEXT
1290 FOR a=1 TO 200
1300 x=INT(RND*4180)
1310 IF PEEK(&HD000+x)<>0 THEN 1300
1320 POKE &HD000+x,2:NEXT:RETURN
1330 REM data for doors
1340 DATA D398,D24D,D246
1350 DATA D376,D37D,D488
1360 DATA D735,DB66,DD7A
1370 DATA DF8C,E0BB,DF9E
1380 REM data for keys
1390 DATA D68E,D251,DF59,DC4B
1400 REM data for clocks
1410 DATA D1B2,D490,D4CB,D606
1420 DATA D83B,D8B6,D9C5,DC4B
1430 DATA DF02,DF16,E019,E0A4
1440 REM data for map
1450 DATA 3E0000000004220800,06C
1460 DATA 007FEFF4A77402EB0E,478
1470 DATA F7020114B73422A900,2C4
1480 DATA 413E7D17A1B5FA0800,36B
1490 DATA 7F1EE1B237B402A902,3C8
1500 DATA 43C28C227097BEA902,423
1510 DATA 407AB8E6E4C402A806,4B0
1520 DATA 4302A20CCE75FAE902,41B
1530 DATA 77FE8FF89F04020902,3AC
1540 DATA 0608F803BFF7EFE802,498
1550 DATA D0EB8DF60004020802,34E
1560 DATA 5FA80117FFF5FAFF0E,51A
1570 DATA 10ABBDD00095000002,2DF
1580 DATA 76AA051F00957FFF0A,361
1590 DATA 048AF5007E90200102,2B4
1600 DATA F5AE05EF40DFAFF906,564
1610 DATA 15ABDC085E10240100,237
1620 DATA 552A07FFC3D774050E,3A6
1630 DATA 557AF4000011144500,22D
1640 DATA 750A05EF7FF574E507,447
1650 DATA 45EBBD094024144500,2B3
1660 DATA 6D08017B5FAFC40502,2CA
1670 DATA 2D7BFF4140A07C8502,3CB
1680 DATA 8D0A005F7EAFC7BD0E,3B5
1690 DATA 2DEAEFD002A0100000,388
1700 DATA 2508281F7EBDFFFF0F,3BC
1710 DATA 757FFAC140A5002000,3B4
1720 DATA 2508825B5FA16FA30E,32A
1730 DATA 2DEAEFF1502F24380A,3DC
1740 DATA 890A080157A1E40A0A,28C
1750 DATA 39EB7BFF542F2EEA0A,443
1760 DATA 000940005701002A0A,0D5
1770 DATA 3F7DE7FFD1FFFFA202,615
1780 DATA 0C080C001C1104AE0A,109
1790 DATA EFCF79DDFFD7242C0A,544
1800 DATA 085803040013AEAE0A,1E0
1810 DATA 7B53FE76FDF020A30A,4FC
1820 DATA 435002228017FFA802,2F7
1830 DATA 5F5FFAFABFD0222B0A,498
1840 DATA 51400202841FAAE902,2CD
1850 DATA 557FFFDEF5F02A090A,4D3
1860 DATA 554200008515EAFD02,31A
1870 DATA 544ABF6CBD55080506,2EE
1880 DATA 13CABC4C85542FFF00,3EC
1890 DATA FBC881C0F454A00407,4F7
1900 DATA 090AFFFD85D7BDF504,521
1910 DATA 604BA0048510E01504,2DD
1920 DATA 3FEA2FF7EF77BDF506,56D
1930 DATA 024808100200801504,0FD
1940 DATA 4ADFC99FFFF6FDF505,67D
1950 DATA 6A104BD10712801504,248
1960 DATA 2AF77BD5D05FFDF506,598
1970 DATA 2A0000041FC0001100,11E
1980 DATA END,END
1990 REM set up machine code data
2000 l=1:addr=&HE641:RESTORE 2250
2010 READ a$,c$:WHILE a$<>"END"
2020 FOR a=1 TO 23 STEP 2
2030 POKE addr,VAL("&H"+MID$(a$,a,2))
2040 check=check+PEEK(addr):addr=addr+1
2050 NEXT
2060 IF check<>VAL("&H"+c$) THEN PRINT"Error in data line";l*10+2210:END
2070 check=0:READ a$,c$:l=l+1:WEND
2080 REM game variables
2090 screen=&HE641:map=&HD000
2100 fillmap=&HE66B:posit=&HE45C
2110 drawmap=&HE6B4:pathdata=&HE21C
2120 moverabbit=&HE70B:time=&HE461
2130 parameter1=&HE45E:parameter2=&HE45F
2140 keyboard=&HE7AE:timer=&HE7B8
2150 parameter3=&HE460:dead=&HE640
2160 eggs=&HE63F:resetscreen=&HE815
2170 REM poke map
2180 addr=&HE462:RESTORE 1440:READ a$,c$
2190 WHILE a$<>"END"
2200 FOR a=1 TO 17 STEP 2
2210 POKE addr,VAL("&H"+MID$(a$,a,2))
2220 addr=addr+1:NEXT:READ a$,c$:WEND
2230 CALL fillmap:RETURN
2240 REM machine code data
2250 DATA CD64E611982C2100B6016801,42D
2260 DATA 3E20F5D53E0873237223133D,3E9
2270 DATA 20F8D1EB09EBF13D20ECC9C1,78C
2280 DATA CD5AFCE900C92100D0011C12,4F5
2290 DATA 3601230B78B120F82134D1FD,4C9
2300 DATA 2162E406350E081608FD7E00,351
2310 DATA CB273600CB16231520F60DFD,461
2320 DATA 2320ECFD7E00878787871604,4E0
2330 DATA CB273600CB16231520F6FD23,477
2340 DATA 1108001910CFC9CD64E6E5D5,5AB
2350 DATA 2A5CE401CCFE09FD21D86A06,5A4
2360 DATA 090E09E56E26002929292929,266
2370 DATA 29111CE219C506207EFD7700,42E
2380 DATA 23FD2310F711B002FD190620,449
2390 DATA 7EFD770023FD2310F71130FD,57A
2400 DATA FD19C1E1230D20CB118004FD,565
2410 DATA 191143001910BED1E1C93A5E,467
2420 DATA E42A5CE4EB2A5CE4EBFE5828,70C
2430 DATA 13FE4D2817FE4B2818FE5AC0,53E
2440 DATA 01FFFF3E051218100101003E,2BC
2450 DATA 08121808014C00180301B4FF,256
2460 DATA 097EFE01C8FE03C8C5FE0628,608
2470 DATA 28FE04284EFE02CC7CE7C12A,5BA
2480 DATA 5CE4563A5FE4FE07280F3600,485
2490 DATA 09225CE47E72325FE4CDB4E6,637
2500 DATA C9360318EFCD84E73E3C3261,54E
2510 DATA E418D73A3FE63C323FE6C9CD,65B
2520 DATA 64E62188A516FF01E0017223,524
2530 DATA 0B78B120F93E013260E4C921,4EC
2540 DATA 00D0011C123E03EDB120AB2B,3D4
2550 DATA 03360718F6260A2E02CD5AFC,3D1
2560 DATA E000C9CD64E63A60E43D3260,60D
2570 DATA E4C03E083260E43A61E43D6F,58B
2580 DATA 26002929290188A5097ECB27,348
2590 DATA 0608772310FCA7C03A61E43D,4D7
2600 DATA 3261E43CC03EFF3240E6C9CD,69E
2610 DATA 64E62188A216AACD0AE801D0,5E5
2620 DATA 0009CD0AE801D00009CD0AE8,461
2630 DATA C901000272230B78B120F9C9,477
2640 DATA 2100D0011C127E3D28023600,23B
2650 DATA 0B2378B120F4C90000000000,334
2660 DATA END,END

Controls

   K = UP 
   M = DOWN 
   X = RIGHT 
   Z = LEFT

Loading the program

 1.- Insert the CP/M disc on side 2
 2.- Write BASIC and wait for it to load
 3.- Remove the CP/M disk and insert the disk containing the Haunted Burrow game
 4.- Type run "Bunny" and press the "ENTER" key

Extras

  • Listing of the program in a large-circulation magazine of the time

haunted_burrow_01.jpg haunted_burrow_02.jpg haunted_burrow_03.jpg

Download

Video

en/haunted_burrow.txt · Last modified: 2022/06/29 11:13 by jevicac