' *****************************************************************************************************
' / KEYBOARD ROUTINE COMPLETE (SHIFT + DIRECTION = MAGIC KEY) AND (ESCAPE WILL restart level when trapped. continued pressing will return to main menu)
' / FIREFLY COMPLETE AND BUTTERFLY COMPLETE
' * AMOBE (NOT COMPLETE - BUT WITH CHARACTER POSITIONS)
' SOUND (NEED TO UPDATE ALL INCLUDING MUSIC) MUSIC LOOP BORING, SOME SOUNDS ARE SHIT (music fixed)
' GRAPHICS NEED NEW COLOURS - BUT ARE WORKING COMPLETE
' ALL EXITS ON LEVELS TO BE PUT IN PLACE
' TIMER FOR LENGTH OF LEVEL TO BE IMPLIMENTED
' LEVEL EXIT TO FLASH WITH BONUS TO FLASH (BONUS IS BLACK TO WHITE FLASH
' BOULDERS TO KILL PLAYER WHEN SQUASHED (boulders to kill player not detecting) maybe rewrite routine FPS
' level exit only when collect (x) amount of diamonds
' *****************************************************************************************************

' ================================================================================================================================================================================================= CONFIGURE ALL VARIABLES TO BE USED DURING RUNTIME


DIM PLAYER(1 TO 500), BOULDER(1 TO 500), DIRT(1 TO 500), BRICK(1 TO 500), WALL(1 TO 500), SPACE(1 TO 500), REXIT(1 TO 500), MAJIC1(1 TO 500), MAJIC2(1 TO 500), MAJIC3(1 TO 500), MAJIC4(1 TO 500), MAJIC5(1 TO 100), MAJIC6(1 TO 500), MAJIC7(1 TO 500), MAJIC8(1 TO 500)
DIM FUNGUS1(1 TO 500), FUNGUS2(1 TO 500), FUNGUS3(1 TO 500), FUNGUS4(1 TO 500), FUNGUS5(1 TO 500), FUNGUS6(1 TO 500), FUNGUS7(1 TO 500), FUNGUS8(1 TO 500), PICKUPKEY(1 TO 500), DOORCLOSE(1 TO 500), DOOROPEN(1 TO 500)
DIM BOXER1(1 TO 500), BOXER2(1 TO 500), BOXER3(1 TO 500), BOXER4(1 TO 500), BOXER5(1 TO 500), BOXER6(1 TO 500), BOXER7(1 TO 500), BOXER8(1 TO 500)
DIM DIAMOND1(1 TO 500), DIAMOND2(1 TO 500), DIAMOND3(1 TO 500), DIAMOND4(1 TO 500), DIAMOND5(1 TO 500), DIAMOND6(1 TO 500), DIAMOND7(1 TO 500), DIAMOND8(1 TO 500)
DIM FLUTTER1(1 TO 500), FLUTTER2(1 TO 500), FLUTTER3(1 TO 500), FLUTTER4(1 TO 500), FLUTTER5(1 TO 500), FLUTTER6(1 TO 500), FLUTTER7(1 TO 500), FLUTTER8(1 TO 500)
DIM BOOMRANG1(1 TO 500), BOOMRANG2(1 TO 500), BOOMRANG3(1 TO 500), BOOMRANG4(1 TO 500), BOUNCER1(1 TO 500), BOUNCER2(1 TO 500), BOUNCER3(1 TO 500), BOUNCER4(1 TO 500)
DIM BOOM1(1 TO 500), BOOM2(1 TO 500), BOOM3(1 TO 500), BOOM4(1 TO 500), BOOM5(1 TO 500): DIM SCREENMEM%(22, 42), BOXERX(50), BOXERY(50), BOXERD(50), FLUTTERFLYX(50), FLUTTERFLYY(50), FLUTTERFLYD(50), STORE$(22)
DIM TEMPRAM AS STRING * 40, K AS STRING * 8: SCREEN _NEWIMAGE(42 * 8, 25 * 16, 256): _FULLSCREEN: COLOR 14: PRINT: PRINT: PRINT "LOADING GAME.....": COLOR 15: PRINT "Û";: GOSUB BLOCKLOAD: BG = _SNDOPEN("grafx/back.ogg"): GOSUB BLOCKLOAD: DIAMONDWAV = _SNDOPEN("grafx/pickupgem.ogg"): GOSUB BLOCKLOAD
DIAMONDDROP = _SNDOPEN("grafx/diamonddrop.ogg"): GOSUB BLOCKLOAD: MUSICTITLE = _SNDOPEN("grafx/titletogame.ogg"): GOSUB BLOCKLOAD: BOOMSOUND = _SNDOPEN("BOOM.WAV"): GOSUB BLOCKLOAD: PUSHROCK = _SNDOPEN("grafx/rockmove.ogg"): GOSUB BLOCKLOAD: DIG = _SNDOPEN("DIG.WAV"): GOSUB BLOCKLOAD
AMOB = _SNDOPEN("AMOB.OGG"): GOSUB BLOCKLOAD: POP = _SNDOPEN("POP.OGG"): GOSUB BLOCKLOAD
CONST WALL = 1, DIRT = 2, BRICK = 3, DIAMOND = 4, BOULDER = 5, MAN = 6, EXITLEVEL = 7, SPACE = 8, FUNGUS = 9, FLUTTERFLY = 10, BOXER = 11, BOULDERF = 12, EXPLODEA = 13, EXPLODEB = 14, BOOMRANG = 15, BOUNCER = 16, MAJIC = 17, MAJICROCK = 18, PICKUPKEY = 19, DOORCLOSE = 20, DOOROPEN = 21, SPECIALEXPLODE = 255: GOSUB BLOCKLOAD
GOSUB LOADSPRITES: MAJICTIMER% = _FREETIMER: DIAMONDANI% = _FREETIMER: SCREENANI% = _FREETIMER: AMOB% = _FREETIMER: BOXMOVE% = _FREETIMER: KEYGET% = _FREETIMER: ON TIMER(MAJICTIMER%, 1) GOSUB MAJICTIMER: ON TIMER(DIAMONDANI%, .06) GOSUB TIMER1: ON TIMER(SCREENANI%, .04) GOSUB TIMER2: ON TIMER(AMOB%, .4) GOSUB TIMER3: ON TIMER(BOXMOVE%, .2) GOSUB TIMER4: ON TIMER(FLUMOVE%, .2) GOSUB TIMER5: ON TIMER(KEYGET%, .05) GOSUB GETKEY
' ================================================================================================================================================================================================= TITLE SCREEN
TITLE: _SNDLOOP MUSICTITLE: _KEYCLEAR

CLS
SCREEN _NEWIMAGE(78 * 8, 35 * 16, 256): _DISPLAY
LOCATE 1, 1
COLOR 64: PRINT "ÜÜÜÜ   ÜÜÜ  Ü   Ü Ü     ÜÜ    ÜÜÜÜÜ ÜÜÜÜ               ÜÜÜÜ  ÜÜÜÜÜ ÜÜÜÜÜ  ÜÜÜÜ";
COLOR 65: PRINT "Û   Û Û   Û Û   Û Û     Û Û   Û     Û   Û              Û   Û   Û     Û   Û";
COLOR 66: PRINT "Û   Û Û   Û Û   Û Û     Û  Û  Û     Û   Û              Û   Û   Û     Û   Û";
COLOR 66: PRINT "ÛÜÜÛ  Û   Û Û   Û Û     Û   Û ÛÜÜ   ÛÜÜÜß              ÛÜÜÜß   Û     Û    ÛÛÛ";
COLOR 78: PRINT "Û   Û Û   Û Û   Û Û     Û   Û Û     Û   Û              Û       Û     Û       Û";
COLOR 77: PRINT "Û   Û Û   Û Û   Û Û     Û  Ûß Û     Û   Û              Û       Û     Û       Û";
COLOR 76: PRINT "Û   Û Û   Û Û   Û Û     Û Ûß  Û     Û   Û              Û       Û     Û   Û   Û";
COLOR 75: PRINT "ÛÜÜÛ  ßÛÜÛß ßÛÜÛß ÛÛÛÛÛ ÛÛß   ÛÛÛÛÛ Û   Û              Û     ÜÜÛÜÜ   Û    ÛÜÜß";
COLOR 72: PRINT: PRINT "CODE WRITTEN BY"
COLOR 70: PRINT "                  PAUL MACKAY 2019            COMPILED IN QB64 FOR LINUX 64BIT";
COLOR 68: PRINT: PRINT: PRINT "  This is just a demo version. it is not complete and still in progress.": COLOR 67: PRINT: PRINT "  This is free software and comes as is. Use at your own risk."
COLOR 64: PRINT: PRINT " Use the CURSOR KEYS to navigate the maps, Killing the Monsters and Collecting";: COLOR 63: PRINT "all the Diamonds. Hold the SHIFT Key in while press direction to either PickUp"
COLOR 62: PRINT "a Diamond or Remove a Piece of Soil. The game moves quiet fast. Boulders do   not kill ";: COLOR 61: PRINT "you if they land on top of you, But will kill Monsters."
COLOR 60: PRINT: PRINT " These are the things not implimented at present but will be in future updates": COLOR 56: PRINT: PRINT: PRINT " * Timer for Level to be completed by"
PRINT " * Extra Lives After exceeding a big Bonus / extra life after 2000 points": PRINT " * More Characters (Monsters) boomerang chasser will follow you to kill you"
PRINT " * Keys and Doors - trapped areas require key to open doors": PRINT " * Screen Flip routine - Turn screen upside down so all boulder drop again"
PRINT " * Amobe routine to be fixed. partly working.": PRINT " * Title Screen. Not This screen."
PRINT: COLOR 50: PRINT " Press any key to play game. This is only a DEMO and incomplete with bugs.": LOCATE 1, 1
_DISPLAY
DO
    I$ = INKEY$
    IF I$ = "Q" OR I$ = "q" THEN _SNDSTOP MUSICTITLE: SCREEN 0: CLS: END
    IF I$ <> "" THEN _SNDSTOP MUSICTITLE: SCREEN _NEWIMAGE(42 * 8, 25 * 16, 256): GOTO START
LOOP
' ================================================================================================================================================================================================= INITIALISE GAME
START: ANIMATION% = 1: RANDOMIZE TIMER: RESTORE: LEVEL = 1: SCORE% = 0: LIVES = 7: GOSUB STORELEVEL: GOSUB LOADLEVEL: _SNDLOOP BG
' ================================================================================================================================================================================================= GAME LOOP
PLAYERLOOP: GOSUB FPS: TIMER(DIAMONDANI%) ON: TIMER(SCREENANI%) ON: TIMER(BOXMOVE%) ON: TIMER(FLUMOVE%) ON: TIMER(MAJICTIMER%) ON: IF AM% = 1 THEN TIMER(AMOB%) ON
TIMER(KEYGET%) ON: DO: _LIMIT 30: GOSUB FPS: LOOP UNTIL ESC% = -1 OR REXIT% = 2 OR MANDIED% = -1
ESC% = 1: IF REXIT% = 2 THEN REXIT% = 0: LEVEL = LEVEL + 1: TIMER(KEYGET%) OFF: GOSUB SCREENCLOSE: GOSUB STORELEVEL: GOSUB LOADLEVEL: TIMER(KEYGET%) ON: GOTO PLAYERLOOP
LIVES = LIVES - 1: TIMER(KEYGET%) OFF: IF LIVES > 0 THEN GOSUB LOADLEVEL: _KEYCLEAR: GOTO PLAYERLOOP
TIMER(SCREENANI%) OFF: TIMER(AMOB%) OFF: TIMER(BOXMOVE%) OFF: TIMER(FLUMOVE%) OFF: TIMER(DIAMONDANI%) OFF: _SNDSTOP BG: GOTO TITLE
_SNDSTOP BG: _SNDCLOSE BG: _SNDCLOSE DIAMONDWAV: _SNDCLOSE BOOMSOUND: _SNDCLOSE PUSHROCK: _SNDCLOSE DIG: _SNDCLOSE AMOB: _SNDCLOSE POP
' ================================================================================================================================================================================================= kEYBOARD iNPUT / FAST
GETKEY: SHFT% = _KEYDOWN(100303) OR _KEYDOWN(100304): ESC% = _KEYDOWN(27): KUP% = _KEYDOWN(18432): KDN% = _KEYDOWN(20480): KLT% = _KEYDOWN(19200): KRT% = _KEYDOWN(19712)
IF KUP% = -1 AND SHFT% = -1 THEN
    Z1% = SCREENMEM%(MJ% - 1, MI%)
    IF Z1% = DIRT THEN SCREENMEM%(MJ% - 1, MI%) = SPACE: _SNDPLAYCOPY PUSHMOVE: GOTO NEXTM
    IF Z1% = DIAMOND THEN SCREENMEM%(MJ% - 1, MI%) = SPACE: _SNDPLAY DIAMONDWAV: GOSUB CALCUATESCORE: GOTO NEXTM
    IF Z1% = PICKUPKEY THEN SCREENMEM%(MJ% - 1, MI%) = SPACE: OPENDOOR% = 1: _SNDPLAYCOPY PUSHMOVE: GOTO NEXTM
    GOTO NEXTM
END IF
IF KUP% = -1 THEN
    Z% = SCREENMEM%(MJ% - 1, MI%)
    IF Z% = DIRT THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ% - 1, MI%) = MAN: MJ% = MJ% - 1: GOSUB SOUNDMOVE: GOTO NEXTM
    IF Z% = SPACE THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ% - 1, MI%) = MAN: MJ% = MJ% - 1: GOTO NEXTM
    IF Z% = DIAMOND THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ% - 1, MI%) = MAN: MJ% = MJ% - 1: _SNDPLAY DIAMONDWAV: GOSUB CALCUATESCORE: GOTO NEXTM
    IF Z% = EXITLEVEL AND COLLECTED% >= COLLECTED% THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ% - 1, MI%) = MAN: REXIT% = 2: GOSUB FPS: GOTO NEXTM
END IF
IF KDN% = -1 AND SHFT% = -1 THEN
    Z1% = SCREENMEM%(MJ% + 1, MI%)
    IF Z1% = DIRT THEN SCREENMEM%(MJ% + 1, MI%) = SPACE: _SNDPLAYCOPY PUSHMOVE: GOTO NEXTM
    IF Z1% = DIAMOND THEN SCREENMEM%(MJ% + 1, MI%) = SPACE: _SNDPLAY DIAMONDWAV: GOSUB CALCUATESCORE: GOTO NEXTM
    IF Z1% = PICKUPKEY THEN SCREENMEM%(MJ% + 1, MI%) = SPACE: OPENDOOR% = 1: _SNDPLAYCOPY PUSHMOVE: GOTO NEXTM
    GOTO NEXTM
END IF
IF KDN% = -1 THEN
    Z% = SCREENMEM%(MJ% + 1, MI%)
    IF Z% = DIRT THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ% + 1, MI%) = MAN: MJ% = MJ% + 1: GOSUB SOUNDMOVE: GOTO NEXTM
    IF Z% = SPACE THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ% + 1, MI%) = MAN: MJ% = MJ% + 1: GOTO NEXTM
    IF Z% = DIAMOND THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ% + 1, MI%) = MAN: MJ% = MJ% + 1: _SNDPLAY DIAMONDWAV: GOSUB CALCUATESCORE: GOTO NEXTM
    IF Z% = EXITLEVEL AND COLLECTED% >= COLLECTED% THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ% + 1, MI%) = MAN: REXIT% = 2: GOSUB FPS: GOTO NEXTM
END IF
IF KLT% = -1 AND SHFT% = -1 THEN
    Z1% = SCREENMEM%(MJ%, MI% - 1)
    IF Z1% = DIRT THEN SCREENMEM%(MJ%, MI% - 1) = SPACE: _SNDPLAYCOPY PUSHMOVE: GOTO NEXTM
    IF Z1% = DIAMOND THEN SCREENMEM%(MJ%, MI% - 1) = SPACE: _SNDPLAY DIAMONDWAV: GOSUB CALCUATESCORE: GOTO NEXTM
    GOTO NEXTM
END IF
IF KLT% = -1 THEN
    Z% = SCREENMEM%(MJ%, MI% - 1)
    IF Z% = DIRT THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ%, MI% - 1) = MAN: MI% = MI% - 1: GOSUB SOUNDMOVE: GOTO NEXTM
    IF Z% = SPACE THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ%, MI% - 1) = MAN: MI% = MI% - 1: SCY1% = SCY1% - 1: GOTO NEXTM
    IF Z% = DIAMOND THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ%, MI% - 1) = MAN: MI% = MI% - 1: _SNDPLAY DIAMONDWAV: GOSUB CALCUATESCORE: GOTO NEXTM
    IF Z% = BOULDER AND SCREENMEM%(MJ%, MI% - 2) = SPACE THEN SCREENMEM%(MJ%, MI% - 2) = BOULDER: SCREENMEM%(MJ%, MI% - 1) = MAN: SCREENMEM%(MJ%, MI%) = SPACE: MI% = MI% - 1: _SNDPLAYCOPY PUSHROCK: GOTO NEXTM
    IF Z% = EXITLEVEL AND COLLECTED% >= COLLECTED% THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ%, MI% - 1) = MAN: REXIT% = 2: GOSUB FPS: GOTO NEXTM
END IF
IF KRT% = -1 AND SHFT% = -1 THEN
    Z1% = SCREENMEM%(MJ%, MI% + 1)
    IF Z1% = DIRT THEN SCREENMEM%(MJ%, MI% + 1) = SPACE: _SNDPLAYCOPY PUSHMOVE: GOTO NEXTM
    IF Z1% = DIAMOND THEN SCREENMEM%(MJ%, MI% + 1) = SPACE: _SNDPLAY DIAMONDWAV: GOSUB CALCUATESCORE: GOTO NEXTM
    GOTO NEXTM
END IF
IF KRT% = -1 THEN
    Z% = SCREENMEM%(MJ%, MI% + 1)
    IF Z% = DIRT THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ%, MI% + 1) = MAN: MI% = MI% + 1: GOSUB SOUNDMOVE: GOTO NEXTM
    IF Z% = SPACE THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ%, MI% + 1) = MAN: MI% = MI% + 1: GOTO NEXTM
    IF Z% = DIAMOND THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ%, MI% + 1) = MAN: MI% = MI% + 1: _SNDPLAY DIAMONDWAV: GOSUB CALCUATESCORE: GOTO NEXTM
    IF Z% = BOULDER AND SCREENMEM%(MJ%, MI% + 2) = SPACE THEN SCREENMEM%(MJ%, MI% + 2) = BOULDER: SCREENMEM%(MJ%, MI% + 1) = MAN: SCREENMEM%(MJ%, MI%) = SPACE: MI% = MI% + 1: _SNDPLAYCOPY PUSHROCK: GOTO NEXTM
    IF Z% = EXITLEVEL AND COLLECTED% >= COLLECTED% THEN SCREENMEM%(MJ%, MI%) = SPACE: SCREENMEM%(MJ%, MI% + 1) = MAN: REXIT% = 2: GOSUB FPS: GOTO NEXTM
END IF
NEXTM: RETURN
' ================================================================================================================================================================================================= MAN EXPLODE
MANEXPLODE: TIMER(GETKEY%) OFF: MANDIED% = 1: FOR MANEXX% = MJ% - 1 TO MJ% + 1: FOR MANEXY% = MI% - 1 TO MI% + 1
        IF SCREENMEM%(MANEXX%, MANEXY%) <> WALL THEN SCREENMEM%(MANEXX%, MANEXY%) = EXPLODEB
NEXT MANEXY%: NEXT MANEXX%: ANIMATION% = 1: RETURN
' ================================================================================================================================================================================================= DISPLAY ON FRAME / INCLUDING ANIMATE SPRITES
FPS: CLS: FOR I% = 1 TO 40: FOR J% = 1 TO 22: B% = SCREENMEM%(J%, I%): SELECT CASE B%
        CASE WALL: PUT (I% * 8 - 1, J% * 16 - 16), WALL(): CASE SPACE: PUT (I% * 8 - 1, J% * 16 - 16), SPACE()
        CASE DIRT: PUT (I% * 8 - 1, J% * 16 - 16), DIRT(): CASE MAN: PUT (I% * 8 - 1, J% * 16 - 16), PLAYER()
        CASE BOULDER: PUT (I% * 8 - 1, J% * 16 - 16), BOULDER(): CASE BOULDERF: PUT (I% * 8 - 1, J% * 16 - 16), BOULDER()
        CASE BRICK: PUT (I% * 8 - 1, J% * 16 - 16), BRICK(): CASE EXITLEVEL: IF COLLECTED% >= TOCOLLECT% THEN PUT (I% * 8 - 1, J% * 16 - 16), REXIT(): REXIT% = 1 ELSE PUT (I% * 8 - 1, J% * 16 - 16), WALL()
            CASE PICKUPKEY: PUT (I% * 8 - 1, J% * 16 - 16), PICKUPKEY()
            CASE DOORCLOSE: PUT (I% * 8 - 1, J% * 16 - 16), DOORCLOSE()
            CASE DOOROPEN: PUT (I% * 8 - 1, J% * 16 - 16), DOOROPEN()
            END SELECT: SELECT CASE ANIMATION%
            CASE 1
                IF B% = SPECIALEXPLODE THEN GOSUB NEWEXPLODE: PUT (I% * 8 - 1, J% * 16 - 16), BOOM1(): _SNDPLAY BOOMSOUND: SCREENMEM%(J%, I%) = DIAMOND
                IF B% = DIAMOND THEN PUT (I% * 8 - 1, J% * 16 - 16), DIAMOND1()
                IF B% = FUNGUS THEN PUT (I% * 8 - 1, J% * 16 - 16), FUNGUS1()
                IF B% = FLUTTERFLY THEN PUT (I% * 8 - 1, J% * 16 - 16), FLUTTER1()
                IF B% = BOXER THEN PUT (I% * 8 - 1, J% * 16 - 16), BOXER1()
                IF B% = EXPLODEA THEN PUT (I% * 8 - 1, J% * 16 - 16), BOOM1()
                IF B% = EXPLODEB THEN PUT (I% * 8 - 1, J% * 16 - 16), BOOM1(): _SNDPLAY BOOMSOUND
                IF B% = MAJIC THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC1()
                IF B% = MAJICROCKROCK THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC1()
            CASE 2
                IF B% = SPECIALEXPLODE THEN GOSUB NEWEXPLODE: PUT (I% * 8 - 1, J% * 16 - 16), BOOM1(): _SNDPLAY BOOMSOUND: SCREENMEM%(J%, I%) = DIAMOND
                IF B% = DIAMOND THEN PUT (I% * 8 - 1, J% * 16 - 16), DIAMOND2()
                IF B% = FUNGUS THEN PUT (I% * 8 - 1, J% * 16 - 16), FUNGUS2()
                IF B% = FLUTTERFLY THEN PUT (I% * 8 - 1, J% * 16 - 16), FLUTTER2()
                IF B% = BOXER THEN PUT (I% * 8 - 1, J% * 16 - 16), BOXER2()
                IF B% = EXPLODEA THEN PUT (I% * 8 - 1, J% * 16 - 16), BOOM1()
                IF B% = EXPLODEB THEN PUT (I% * 8 - 1, J% * 16 - 16), BOOM1()
                IF B% = MAJIC THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC2()
                IF B% = MAJICROCK THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC2()
            CASE 3
                IF B% = SPECIALEXPLODE THEN GOSUB NEWEXPLODE: PUT (I% * 8 - 1, J% * 16 - 16), BOOM1(): _SNDPLAY BOOMSOUND: SCREENMEM%(J%, I%) = DIAMOND
                IF B% = DIAMOND THEN PUT (I% * 8 - 1, J% * 16 - 16), DIAMOND3()
                IF B% = FUNGUS THEN PUT (I% * 8 - 1, J% * 16 - 16), FUNGUS3()
                IF B% = FLUTTERFLY THEN PUT (I% * 8 - 1, J% * 16 - 16), FLUTTER3()
                IF B% = BOXER THEN PUT (I% * 8 - 1, J% * 16 - 16), BOXER3()
                IF B% = EXPLODEA THEN PUT (I% * 8 - 1, J% * 16 - 16), BOOM2()
                IF B% = EXPLODEB THEN PUT (I% * 8 - 1, J% * 16 - 16), BOOM2()
                IF B% = MAJIC THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC3()
                IF B% = MAJICROCK THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC3()
            CASE 4
                IF B% = SPECIALEXPLODE THEN GOSUB NEWEXPLODE: PUT (I% * 8 - 1, J% * 16 - 16), BOOM1(): _SNDPLAY BOOMSOUND: SCREENMEM%(J%, I%) = DIAMOND
                IF B% = DIAMOND THEN PUT (I% * 8 - 1, J% * 16 - 16), DIAMOND4()
                IF B% = FUNGUS THEN PUT (I% * 8 - 1, J% * 16 - 16), FUNGUS4()
                IF B% = FLUTTERFLY THEN PUT (I% * 8 - 1, J% * 16 - 16), FLUTTER4()
                IF B% = BOXER THEN PUT (I% * 8 - 1, J% * 16 - 16), BOXER4()
                IF B% = EXPLODEA THEN PUT (I% * 8 - 1, J% * 16 - 16), BOOM3()
                IF B% = EXPLODEB THEN PUT (I% * 8 - 1, J% * 16 - 16), BOOM3()
                IF B% = MAJIC THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC4()
                IF B% = MAJICROCK THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC4()
            CASE 5
                IF B% = SPECIALEXPLODE THEN GOSUB NEWEXPLODE: PUT (I% * 8 - 1, J% * 16 - 16), BOOM1(): _SNDPLAY BOOMSOUND: SCREENMEM%(J%, I%) = DIAMOND
                IF B% = DIAMOND THEN PUT (I% * 8 - 1, J% * 16 - 16), DIAMOND5()
                IF B% = FUNGUS THEN PUT (I% * 8 - 1, J% * 16 - 16), FUNGUS4()
                IF B% = FLUTTERFLY THEN PUT (I% * 8 - 1, J% * 16 - 16), FLUTTER5()
                IF B% = BOXER THEN PUT (I% * 8 - 1, J% * 16 - 16), BOXER5()
                IF B% = EXPLODEA THEN PUT (I% * 8 - 1, J% * 16 - 16), BOOM3()
                IF B% = EXPLODEB THEN PUT (I% * 8 - 1, J% * 16 - 16), BOOM3()
                IF B% = MAJIC THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC5()
                IF B% = MAJICROCK THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC5()
            CASE 6
                IF B% = SPECIALEXPLODE THEN GOSUB NEWEXPLODE: PUT (I% * 8 - 1, J% * 16 - 16), BOOM1(): _SNDPLAY BOOMSOUND: SCREENMEM%(J%, I%) = DIAMOND
                IF B% = DIAMOND THEN PUT (I% * 8 - 1, J% * 16 - 16), DIAMOND6()
                IF B% = FUNGUS THEN PUT (I% * 8 - 1, J% * 16 - 16), FUNGUS6()
                IF B% = FLUTTERFLY THEN PUT (I% * 8 - 1, J% * 16 - 16), FLUTTER6()
                IF B% = BOXER THEN PUT (I% * 8 - 1, J% * 16 - 16), BOXER6()
                IF B% = EXPLODEA THEN PUT (I% * 8 - 1, J% * 16 - 16), BOOM2()
                IF B% = EXPLODEB THEN PUT (I% * 8 - 1, J% * 16 - 16), BOOM2()
                IF B% = MAJIC THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC6()
                IF B% = MAJICROCK THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC6()
            CASE 7
                IF B% = SPECIALEXPLODE THEN GOSUB NEWEXPLODE: PUT (I% * 8 - 1, J% * 16 - 16), BOOM1(): _SNDPLAY BOOMSOUND: SCREENMEM%(J%, I%) = DIAMOND
                IF B% = DIAMOND THEN PUT (I% * 8 - 1, J% * 16 - 16), DIAMOND7()
                IF B% = FUNGUS THEN PUT (I% * 8 - 1, J% * 16 - 16), FUNGUS7()
                IF B% = FLUTTERFLY THEN PUT (I% * 8 - 1, J% * 16 - 16), FLUTTER7()
                IF B% = BOXER THEN PUT (I% * 8 - 1, J% * 16 - 16), BOXER7()
                IF B% = EXPLODEA THEN PUT (I% * 8 - 1, J% * 16 - 16), BOOM1()
                IF B% = EXPLODEB THEN PUT (I% * 8 - 1, J% * 16 - 16), BOOM1()
                IF B% = MAJIC THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC7()
                IF B% = MAJICROCK THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC7()
            CASE 8
                IF B% = SPECIALEXPLODE THEN GOSUB NEWEXPLODE: PUT (I% * 8 - 1, J% * 16 - 16), BOOM1(): _SNDPLAY BOOMSOUND: SCREENMEM%(J%, I%) = DIAMOND
                IF B% = DIAMOND THEN PUT (I% * 8 - 1, J% * 16 - 16), DIAMOND8()
                IF B% = FUNGUS THEN PUT (I% * 8 - 1, J% * 16 - 16), FUNGUS8()
                IF B% = FLUTTERFLY THEN PUT (I% * 8 - 1, J% * 16 - 16), FLUTTER8()
                IF B% = BOXER THEN PUT (I% * 8 - 1, J% * 16 - 16), BOXER8()
                IF B% = EXPLODEA THEN PUT (I% * 8 - 1, J% * 16 - 16), DIAMOND1(): SCREENMEM%(J%, I%) = DIAMOND
                IF B% = EXPLODEB THEN PUT (I% * 8 - 1, J% * 16 - 16), SPACE(): SCREENMEM%(J%, I%) = SPACE
                IF B% = MAJIC THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC8()
                IF B% = MAJICROCK THEN PUT (I% * 8 - 1, J% * 16 - 16), MAJIC8()

                IF MANDIED% = 1 THEN MANDIED% = -1
END SELECT: NEXT J%: NEXT I%: COLOR 34: LOCATE 23, 1: PRINT "CAVE - "; LEVEL; "     SCORE - "; SCORE%: PRINT "      LIVES - "; LIVES; " TIMER:"; MAJICCOUNT%;: LOCATE 1, 1: _DISPLAY: RETURN
' ================================================================================================================================================================================================= ANIMATION COUNTER FOR SPRITES
TIMER1: ANIMATION% = ANIMATION% + 1: IF ANIMATION% > 8 THEN ANIMATION% = 1: RETURN ELSE RETURN
' ================================================================================================================================================================================================= BOULDERS AND DIAMONDS MOVEMENT / SPRITE DETECTION
TIMER2: FOR BI% = 39 TO 2 STEP -1: FOR BJ% = 22 TO 2 STEP -1
        BD1% = SCREENMEM%(BJ% - 1, BI%): BD2% = SCREENMEM%(BJ%, BI%)
        BDL1% = SCREENMEM%(BJ% - 1, BI% - 1): BDR1% = SCREENMEM%(BJ% - 1, BI% + 1)
        BDL2% = SCREENMEM%(BJ%, BI% - 1): BDR2% = SCREENMEM%(BJ%, BI% + 1)

        IF BD1% = MAJICROCK AND BD2% = SPACE THEN SCREENMEM%(BJ% - 1, BI%) = MAJIC: SCREENMEM%(BJ%, BI%) = DIAMOND
        IF BD1% = MAJICROCK AND BD2% <> SPACE THEN SCREENMEM%(BJ% - 1, BI%) = MAJIC: ' SCREENMEM%(BJ%, BI%) = DIAMOND
        IF BD1% = MAJIC AND MAJICCOUNT% > 40 THEN TIMER(MAJICTIMER%) OFF: SCREENMEM%(BJ% - 1, BI%) = BRICK
        IF BD1% = FUNGUS AND AMOBCOUNT% > 30 THEN SCREENMEM%(BJ% - 1, BI%) = DIRT
        IF BD1% = BOULDER AND BD2% = MAJIC THEN SCREENMEM%(BJ% - 1, BI%) = SPACE: SCREENMEM%(BJ%, BI%) = MAJICROCK
        IF BD1% = BOULDER AND BD2% = SPACE THEN SCREENMEM%(BJ% - 1, BI%) = SPACE: SCREENMEM%(BJ%, BI%) = BOULDER: _SNDPLAY PUSHROCK
        IF BD1% = BOULDER AND BD2% = BOULDER AND BDR1% = SPACE AND BDR2% = SPACE THEN SWAP SCREENMEM%(BJ%, BI%), SCREENMEM%(BJ% - 1, BI% + 1): _SNDPLAY PUSHROCK
        IF BD1% = BOULDER AND BD2% = BOULDER AND BDL1% = SPACE AND BDL2% = SPACE THEN SWAP SCREENMEM%(BJ%, BI%), SCREENMEM%(BJ% - 1, BI% - 1): _SNDPLAY PUSHROCK
        IF BD1% = BOULDER AND BD2% = DIAMOND AND BDR1% = SPACE AND BDR2% = SPACE THEN SWAP SCREENMEM%(BJ%, BI%), SCREENMEM%(BJ% - 1, BI% + 1): _SNDPLAY PUSHROCK
        IF BD1% = BOULDER AND BD2% = DIAMOND AND BDL1% = SPACE AND BDL2% = SPACE THEN SWAP SCREENMEM%(BJ%, BI%), SCREENMEM%(BJ% - 1, BI% - 1): _SNDPLAY PUSHROCK
        IF BD1% = BOULDER AND BD2% = BOXER THEN SCREENMEM%(BJ% - 1, BI%) = DIRT: ANIMATION% = 1: GOSUB EXPLODE
        IF BD1% = BOULDER AND BD2% = FLUTTERFLY THEN SCREENMEM%(BJ% - 1, BI%) = DIRT: ANIMATION% = 1: GOSUB EXPLODE

        IF BD1% = DIAMOND AND BD2% = MAJIC THEN SCREENMEM%(BJ% - 1, BI%) = SPACE: SCREENMEM%(BJ%, BI%) = MAJICROCK
        IF BD1% = DIAMOND AND BD2% = SPACE THEN SCREENMEM%(BJ% - 1, BI%) = SPACE: SCREENMEM%(BJ%, BI%) = DIAMOND: _SNDPLAY PUSHROCK
        IF BD1% = DIAMOND AND BD2% = DIAMOND AND BDR1% = SPACE AND BDR2% = SPACE THEN SWAP SCREENMEM%(BJ%, BI%), SCREENMEM%(BJ% - 1, BI% + 1): _SNDPLAY DIAMONDDROP
        IF BD1% = DIAMOND AND BD2% = DIAMOND AND BDL1% = SPACE AND BDL2% = SPACE THEN SWAP SCREENMEM%(BJ%, BI%), SCREENMEM%(BJ% - 1, BI% - 1): _SNDPLAY DIAMONDDROP
        IF BD1% = DIAMOND AND BD2% = BOULDER AND BDR1% = SPACE AND BDR2% = SPACE THEN SWAP SCREENMEM%(BJ%, BI%), SCREENMEM%(BJ% - 1, BI% + 1): _SNDPLAY DIAMONDDROP
        IF BD1% = DIAMOND AND BD2% = BOULDER AND BDL1% = SPACE AND BDL2% = SPACE THEN SWAP SCREENMEM%(BJ%, BI%), SCREENMEM%(BJ% - 1, BI% - 1): _SNDPLAY DIAMONDDROP
        IF BD1% = DIAMOND AND BD2% = BOXER THEN SCREENMEM%(BJ% - 1, BI%) = SPACE: GOSUB EXPLODE
        IF BD1% = DIAMOND AND BD2% = FLUTTERFLY THEN SCREENMEM%(BJ% - 1, BI%) = SPACE: GOSUB EXPLODE





NEXT BJ%: NEXT BI%: RETURN
' ================================================================================================================================================================================================= AMOBE / TO BE REWORKED





' ================================================================================================================================================================================================= FIREFLYS AND BUTTERFLIES
TIMER4: TID% = 1: FOR TID% = 1 TO 50: SELECT CASE BOXERD(TID%): CASE 0: GOTO PASSMOVE
        CASE 1 ' UP
            BUT% = SCREENMEM%((BOXERY(TID%)), BOXERX(TID%) - 1): CUT% = SCREENMEM%((BOXERY(TID%) - 1), BOXERX(TID%)): DUT% = SCREENMEM%((BOXERY(TID%) + 1), BOXERX(TID%))
            IF BUT% = MAN THEN BOXERD(TID%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF DUT% = MAN THEN BOXERD(TID%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF CUT% = SPACE THEN SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = SPACE: BOXERY(TID%) = BOXERY(TID%) - 1: SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = BOXER: BOXERD(TID%) = 2: GOTO PASSMOVE
            IF BUT% = SPACE THEN SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = SPACE: BOXERX(TID%) = BOXERX(TID%) - 1: SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = BOXER: BOXERD(TID%) = 1: GOTO PASSMOVE
            IF DUT% = SPACE THEN SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = SPACE: BOXERY(TID%) = BOXERY(TID%) + 1: SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = BOXER: BOXERD(TID%) = 4: GOTO PASSMOVE
            BOXERD(TID%) = 3
        CASE 2 ' LEFT
            BUT% = SCREENMEM%((BOXERY(TID%) - 1), BOXERX(TID%)): CUT% = SCREENMEM%((BOXERY(TID%)), BOXERX(TID%) + 1): DUT% = SCREENMEM%((BOXERY(TID%)), BOXERX(TID%) - 1)
            IF BUT% = MAN THEN BOXERD(TID%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF DUT% = MAN THEN BOXERD(TID%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF CUT% = SPACE THEN SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = SPACE: BOXERX(TID%) = BOXERX(TID%) + 1: SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = BOXER: BOXERD(TID%) = 3: GOTO PASSMOVE
            IF BUT% = SPACE THEN SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = SPACE: BOXERY(TID%) = BOXERY(TID%) - 1: SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = BOXER: BOXERD(TID%) = 2: GOTO PASSMOVE
            IF DUT% = SPACE THEN SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = SPACE: BOXERX(TID%) = BOXERX(TID%) - 1: SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = BOXER: BOXERD(TID%) = 1: GOTO PASSMOVE
            BOXERD(TID%) = 4
        CASE 3 'DOWN
            BUT% = SCREENMEM%((BOXERY(TID%)), BOXERX(TID%) + 1): CUT% = SCREENMEM%((BOXERY(TID%) + 1), BOXERX(TID%)): DUT% = SCREENMEM%((BOXERY(TID%) - 1), BOXERX(TID%))
            IF BUT% = MAN THEN BOXERD(TID%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF DUT% = MAN THEN BOXERD(TID%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF CUT% = SPACE THEN SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = SPACE: BOXERY(TID%) = BOXERY(TID%) + 1: SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = BOXER: BOXERD(TID%) = 4: GOTO PASSMOVE
            IF BUT% = SPACE THEN SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = SPACE: BOXERX(TID%) = BOXERX(TID%) + 1: SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = BOXER: BOXERD(TID%) = 3: GOTO PASSMOVE
            IF DUT% = SPACE THEN SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = SPACE: BOXERY(TID%) = BOXERY(TID%) - 1: SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = BOXER: BOXERD(TID%) = 2: GOTO PASSMOVE
            BOXERD(TID%) = 1
        CASE 4 'RIGHT
            BUT% = SCREENMEM%((BOXERY(TID%) + 1), BOXERX(TID%)): CUT% = SCREENMEM%((BOXERY(TID%)), BOXERX(TID%) - 1): DUT% = SCREENMEM%((BOXERY(TID%)), BOXERX(TID%) + 1)
            IF BUT% = MAN THEN BOXERD(TID%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF DUT% = MAN THEN BOXERD(TID%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF CUT% = SPACE THEN SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = SPACE: BOXERX(TID%) = BOXERX(TID%) - 1: SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = BOXER: BOXERD(TID%) = 1: GOTO PASSMOVE
            IF BUT% = SPACE THEN SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = SPACE: BOXERY(TID%) = BOXERY(TID%) + 1: SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = BOXER: BOXERD(TID%) = 4: GOTO PASSMOVE
            IF DUT% = SPACE THEN SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = SPACE: BOXERX(TID%) = BOXERX(TID%) + 1: SCREENMEM%(BOXERY(TID%), BOXERX(TID%)) = BOXER: BOXERD(TID%) = 3: GOTO PASSMOVE
            BOXERD(TID%) = 2
PASSMOVE: END SELECT: NEXT TID%: RETURN
TIMER5: TUD% = 1: FOR TUD% = 1 TO 20
    SELECT CASE FLUTTERFLYD(TUD%): CASE 0: GOTO MOVEPASS
        CASE 1 ' UP
            BUT% = SCREENMEM%((FLUTTERFLYY(TUD%)), FLUTTERFLYX(TUD%) - 1): CUT% = SCREENMEM%((FLUTTERFLYY(TUD%) + 1), FLUTTERFLYX(TUD%)): DUT% = SCREENMEM%((FLUTTERFLYY(TUD%) - 1), FLUTTERFLYX(TUD%))
            IF BUT% = MAN THEN FLUTTERFLYD(TUD%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF DUT% = MAN THEN FLUTTERFLYD(TUD%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF CUT% = SPACE THEN SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = SPACE: FLUTTERFLYY(TUD%) = FLUTTERFLYY(TUD%) + 1: SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = FLUTTERFLY: FLUTTERFLYD(TUD%) = 4: GOTO MOVEPASS
            IF BUT% = SPACE THEN SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = SPACE: FLUTTERFLYX(TUD%) = FLUTTERFLYX(TUD%) - 1: SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = FLUTTERFLY: FLUTTERFLYD(TUD%) = 1: GOTO MOVEPASS
            IF DUT% = SPACE THEN SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = SPACE: FLUTTERFLYY(TUD%) = FLUTTERFLYY(TUD%) - 1: SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = FLUTTERFLY: FLUTTERFLYD(TUD%) = 2: GOTO MOVEPASS
            FLUTTERFLYD(TUD%) = 3
        CASE 2 ' LEFT
            BUT% = SCREENMEM%((FLUTTERFLYY(TUD%) - 1), FLUTTERFLYX(TUD%)): CUT% = SCREENMEM%((FLUTTERFLYY(TUD%)), FLUTTERFLYX(TUD%) - 1): DUT% = SCREENMEM%((FLUTTERFLYY(TUD%)), FLUTTERFLYX(TUD%) + 1)
            IF BUT% = MAN THEN FLUTTERFLYD(TUD%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF DUT% = MAN THEN FLUTTERFLYD(TUD%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF CUT% = SPACE THEN SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = SPACE: FLUTTERFLYX(TUD%) = FLUTTERFLYX(TUD%) - 1: SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = FLUTTERFLY: FLUTTERFLYD(TUD%) = 1: GOTO MOVEPASS
            IF BUT% = SPACE THEN SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = SPACE: FLUTTERFLYY(TUD%) = FLUTTERFLYY(TUD%) - 1: SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = FLUTTERFLY: FLUTTERFLYD(TUD%) = 2: GOTO MOVEPASS
            IF DUT% = SPACE THEN SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = SPACE: FLUTTERFLYX(TUD%) = FLUTTERFLYX(TUD%) + 1: SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = FLUTTERFLY: FLUTTERFLYD(TUD%) = 3: GOTO MOVEPASS
            FLUTTERFLYD(TUD%) = 4
        CASE 3 'DOWN
            BUT% = SCREENMEM%((FLUTTERFLYY(TUD%)), FLUTTERFLYX(TUD%) + 1): CUT% = SCREENMEM%((FLUTTERFLYY(TUD%) - 1), FLUTTERFLYX(TUD%)): DUT% = SCREENMEM%((FLUTTERFLYY(TUD%) + 1), FLUTTERFLYX(TUD%))
            IF BUT% = MAN THEN FLUTTERFLYD(TUD%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF DUT% = MAN THEN FLUTTERFLYD(TUD%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF CUT% = SPACE THEN SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = SPACE: FLUTTERFLYY(TUD%) = FLUTTERFLYY(TUD%) - 1: SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = FLUTTERFLY: FLUTTERFLYD(TUD%) = 2: GOTO MOVEPASS
            IF BUT% = SPACE THEN SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = SPACE: FLUTTERFLYX(TUD%) = FLUTTERFLYX(TUD%) + 1: SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = FLUTTERFLY: FLUTTERFLYD(TUD%) = 3: GOTO MOVEPASS
            IF DUT% = SPACE THEN SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = SPACE: FLUTTERFLYY(TUD%) = FLUTTERFLYY(TUD%) + 1: SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = FLUTTERFLY: FLUTTERFLYD(TUD%) = 4: GOTO MOVEPASS
            FLUTTERFLYD(TUD%) = 1
        CASE 4 'RIGHT
            BUT% = SCREENMEM%((FLUTTERFLYY(TUD%) + 1), FLUTTERFLYX(TUD%)): CUT% = SCREENMEM%((FLUTTERFLYY(TUD%)), FLUTTERFLYX(TUD%) + 1): DUT% = SCREENMEM%((FLUTTERFLYY(TUD%)), FLUTTERFLYX(TUD%) - 1)
            IF BUT% = MAN THEN FLUTTERFLYD(TUD%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF DUT% = MAN THEN FLUTTERFLYD(TUD%) = 0: GOSUB MANEXPLODE: GOTO PASSMOVE
            IF CUT% = SPACE THEN SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = SPACE: FLUTTERFLYX(TUD%) = FLUTTERFLYX(TUD%) + 1: SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = FLUTTERFLY: FLUTTERFLYD(TUD%) = 3: GOTO MOVEPASS
            IF BUT% = SPACE THEN SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = SPACE: FLUTTERFLYY(TUD%) = FLUTTERFLYY(TUD%) + 1: SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = FLUTTERFLY: FLUTTERFLYD(TUD%) = 4: GOTO MOVEPASS
            IF DUT% = SPACE THEN SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = SPACE: FLUTTERFLYX(TUD%) = FLUTTERFLYX(TUD%) - 1: SCREENMEM%(FLUTTERFLYY(TUD%), FLUTTERFLYX(TUD%)) = FLUTTERFLY: FLUTTERFLYD(TUD%) = 1: GOTO MOVEPASS
            FLUTTERFLYD(TUD%) = 2
MOVEPASS: END SELECT: NEXT TUD%: RETURN
' ================================================================================================================================================================================================= EXPLODE ON ROCK OR DIAMOND FALL / FIREFLY AND BUTTERFLY
TIMER3: AM% = 0: FOR BI% = 39 TO 2 STEP -1: FOR BJ% = 21 TO 2 STEP -1
        IF SCREENMEM%(BJ%, BI%) = FUNGUS THEN
            AM% = 1: D% = INT(RND(1) * 4) + 1
            SELECT CASE D%
                CASE 1
                    BJ1% = BJ% - 1: BI1% = BI%
                    IF SCREENMEM%(BJ1%, BI1%) = SPACE OR SCREENMEM%(BJ1%, BI1%) = DIRT THEN SCREENMEM%(BJ1%, BI1%) = FUNGUS: _SNDPLAY POP
                    IF SCREENMEM%(BJ1%, BI1%) = BOXER THEN GOSUB BOXERKILL
                    IF SCREENMEM%(BJ1%, BI1%) = FLUTTERFLY THEN GOSUB BUTTERFLYKILL
                CASE 2
                    BJ1% = BJ% + 1: BI1% = BI%
                    IF SCREENMEM%(BJ1%, BI1%) = SPACE OR SCREENMEM%(BJ1%, BI1%) = DIRT THEN SCREENMEM%(BJ1%, BI1%) = FUNGUS: _SNDPLAY POP
                    IF SCREENMEM%(BJ1%, BI1%) = BOXER THEN GOSUB BOXERKILL
                    IF SCREENMEM%(BJ1%, BI1%) = FLUTTERFLY THEN GOSUB BUTTERFLYKILL
                CASE 3
                    BJ1% = BJ%: BI1% = BI% + 1
                    IF SCREENMEM%(BJ1%, BI1%) = SPACE OR SCREENMEM%(BJ1%, BI1%) = DIRT THEN SCREENMEM%(BJ1%, BI1%) = FUNGUS: _SNDPLAY POP
                    IF SCREENMEM%(BJ1%, BI1%) = BOXER THEN GOSUB BOXERKILL
                    IF SCREENMEM%(BJ1%, BI1%) = FLUTTERFLY THEN GOSUB BUTTERFLYKILL
                CASE 4
                    BJ1% = BJ%: BI1% = BI% - 1
                    IF SCREENMEM%(BJ1%, BI1%) = SPACE OR SCREENMEM%(BJ1%, BI1%) = DIRT THEN SCREENMEM%(BJ1%, BI1%) = FUNGUS: _SNDPLAY POP
                    IF SCREENMEM%(BJ1%, BI1%) = BOXER THEN GOSUB BOXERKILL
                    IF SCREENMEM%(BJ1%, BI1%) = FLUTTERFLY THEN GOSUB BUTTERFLYKILL
            END SELECT
        END IF
NEXT BJ%: NEXT BI%
IF AM% = 1 THEN GOSUB SOUNDAMOEBA
RETURN


MAJICTIMER: MAJICCOUNT% = MAJICCOUNT% + 1: AMOBCOUNT% = AMOBCOUNT% + 1: RETURN
KILLBOXER: FOR CHK5% = 1 TO 50: IF BOXERY(CHK5%) = BJ% AND BOXERX(CHK5%) = BI% THEN BOXERD(CHK5%) = 0
NEXT CHK5%: RETURN
KILLBOXER1: FOR CHK5% = 1 TO 50: IF BOXERY(CHK5%) = AMOX% AND BOXERX(CHK5%) = AMOY% THEN BOXERD(CHK5%) = 0
NEXT CHK5%: RETURN
KILLBUTTERFLY: FOR CHK5% = 1 TO 50: IF FLUTTERFLYY(CHK5%) = BJ% AND FLUTTERFLYX(CHK5%) = BI% THEN FLUTTERFLYD(CHK5%) = 0
NEXT CHK5%: RETURN
KILLBUTTERFLY1: FOR CHK5% = 1 TO 50: IF FLUTTERFLYY(CHK5%) = AMOX% AND FLUTTERFLYX(CHK5%) = AMOY% THEN FLUTTERFLYD(CHK5%) = 0
NEXT CHK5%: RETURN

EXPLODE: FOR CHK1% = 1 TO 50: IF BOXERY(CHK1%) = BJ% AND BOXERX(CHK1%) = BI% THEN BOXERD(CHK1%) = 0: SCREENMEM%(BJ%, BI%) = SPECIALEXPLODE
    IF FLUTTERFLYY(CHK1%) = BJ% AND FLUTTERFLYX(CHK1%) = BI% THEN FLUTTERFLYD(CHK1%) = 0: SCREENMEM%(BJ%, BI%) = SPECIALEXPLODE
NEXT CHK1%: RETURN
NEWEXPLODE: FOR DETECTX% = I% - 1 TO I% + 1: FOR DETECTY% = J% - 1 TO J% + 1: MEMBLOCK% = SCREENMEM%(DETECTY%, DETECTX%): SELECT CASE MEMBLOCK%: CASE SPACE, DIRT, BRICK: MEMBLOCK% = DIAMOND: END SELECT: SCREENMEM%(DETECTY%, DETECTX%) = MEMBLOCK%: NEXT DETECTY%, DETECTX%: RETURN
SOUNDMOVE: PLAY "T255L50MBO1A": RETURN
SOUNDAMOEBA: FOR I = 1 TO 8: PLAY "MBT255L22O2" + CHR$(65 + INT(RND(1) * 5 + 1)): NEXT I: RETURN
CALCUATESCORE: COLLECTED% = COLLECTED% + 1: IF COLLECTED% = TOCOLLECT% THEN SCORE% = SCORE% + BONUS%: RETURN ELSE SCORE% = SCORE% + POINTS%: RETURN

BOXERKILL:
FOR AMOX% = BJ1% - 1 TO BJ1% + 1
    FOR AMOY% = BI1% - 1 TO BI1% + 1
        BR% = SCREENMEM%(AMOX%, AMOY%): BRS% = BOULDER
        SELECT CASE BR%
            CASE BOXER
                BRS% = BOULDER: GOSUB KILLBOXER1: GOTO ES
            CASE WALL
                BRS% = WALL: GOTO ES
            CASE DIRT, SPACE
                BRS% = BOULDER: GOTO ES
            CASE BOULDER, BOULDERF
                BRS% = DIAMOND: GOTO ES
            CASE BRICK
                BRS% = BRICK: GOTO ES
            CASE EXITLEVEL
                BRS% = EXITLEVEL: GOTO ES
                ES:
        END SELECT
        SCREENMEM%(AMOX%, AMOY%) = BRS%
    NEXT AMOY%
NEXT AMOX%
RETURN

BUTTERFLYKILL:
FOR AMOX% = BJ1% - 1 TO BJ1% + 1
    FOR AMOY% = BI1% - 1 TO BI1% + 1
        BR% = SCREENMEM%(AMOX%, AMOY%)
        SELECT CASE BR%
            CASE FLUTTERFLY
                BRS% = BOULDER: GOSUB KILLBUTTERFLY1: GOTO ET
            CASE WALL
                BRS% = WALL: GOTO ET
            CASE DIRT, SPACE
                BRS% = BOULDER: GOTO ET
            CASE BOULDER, BOULDERF
                BRS% = DIAMOND: GOTO ET
            CASE BRICK
                BRS% = BRICK: GOTO ET
            CASE EXITLEVEL
                BRS% = EXITLEVEL: GOTO ET
                ET:
        END SELECT
        SCREENMEM%(AMOX%, AMOY%) = BRS%
    NEXT AMOY%
NEXT AMOX%
RETURN

' ================================================================================================================================================================================================= LOAD SPRITES / CREATE CHARCTERS
LOADSPRITES:
OPEN "grafx/player_2002.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 12: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), PLAYER(): GOSUB BLOCKLOAD
OPEN "grafx/boulder2004.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 20: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOULDER(): GOSUB BLOCKLOAD
OPEN "grafx/dirt___2006.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 16: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), DIRT(): GOSUB BLOCKLOAD
OPEN "grafx/brckwal120a.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BRICK(): GOSUB BLOCKLOAD
OPEN "grafx/wallfra120c.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 24: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), WALL(): GOSUB BLOCKLOAD
OPEN "grafx/blank__2008.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), SPACE(): GOSUB BLOCKLOAD
OPEN "grafx/exit___200a.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), REXIT(): GOSUB BLOCKLOAD
'                             READ IN ANIMATING BLOCKS
OPEN "grafx/fungusa3000.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 8: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FUNGUS1(): GOSUB BLOCKLOAD
OPEN "grafx/fungusb3002.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 8: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FUNGUS2(): GOSUB BLOCKLOAD
OPEN "grafx/fungusc3004.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 8: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FUNGUS3(): GOSUB BLOCKLOAD
OPEN "grafx/fungusd3006.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 8: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FUNGUS4(): GOSUB BLOCKLOAD
OPEN "grafx/funguse3008.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 8: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FUNGUS5(): GOSUB BLOCKLOAD
OPEN "grafx/fungusf300a.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 8: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FUNGUS6(): GOSUB BLOCKLOAD
OPEN "grafx/fungusg300c.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 8: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FUNGUS7(): GOSUB BLOCKLOAD
OPEN "grafx/fungush3000.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 8: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FUNGUS8(): GOSUB BLOCKLOAD
OPEN "grafx/boxer_a4000.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOXER1(): GOSUB BLOCKLOAD
OPEN "grafx/boxer_b4002.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOXER2(): GOSUB BLOCKLOAD
OPEN "grafx/boxer_c4004.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOXER3(): GOSUB BLOCKLOAD
OPEN "grafx/boxer_d4006.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOXER4(): GOSUB BLOCKLOAD
OPEN "grafx/boxer_e4008.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOXER5(): GOSUB BLOCKLOAD
OPEN "grafx/boxer_f400a.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOXER6(): GOSUB BLOCKLOAD
OPEN "grafx/boxer_g400c.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOXER7(): GOSUB BLOCKLOAD
OPEN "grafx/boxer_h4000.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOXER8(): GOSUB BLOCKLOAD
OPEN "grafx/diamona5000.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 4: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), DIAMOND1(): GOSUB BLOCKLOAD
OPEN "grafx/diamonb5002.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 4: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), DIAMOND2(): GOSUB BLOCKLOAD
OPEN "grafx/diamonc5004.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 4: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), DIAMOND3(): GOSUB BLOCKLOAD
OPEN "grafx/diamond5006.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 4: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), DIAMOND4(): GOSUB BLOCKLOAD
OPEN "grafx/diamone5008.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 4: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), DIAMOND5(): GOSUB BLOCKLOAD
OPEN "grafx/diamonf500a.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 4: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), DIAMOND6(): GOSUB BLOCKLOAD
OPEN "grafx/diamong500c.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 4: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), DIAMOND7(): GOSUB BLOCKLOAD
OPEN "grafx/diamonh5000.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)) + 4: NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), DIAMOND8(): GOSUB BLOCKLOAD
OPEN "grafx/fluttra6000.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FLUTTER1(): GOSUB BLOCKLOAD
OPEN "grafx/fluttrb6002.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FLUTTER2(): GOSUB BLOCKLOAD
OPEN "grafx/fluttrc6004.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FLUTTER3(): GOSUB BLOCKLOAD
OPEN "grafx/fluttrd6006.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FLUTTER4(): GOSUB BLOCKLOAD
OPEN "grafx/fluttre6008.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FLUTTER5(): GOSUB BLOCKLOAD
OPEN "grafx/fluttrf600a.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FLUTTER6(): GOSUB BLOCKLOAD
OPEN "grafx/fluttrg600c.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FLUTTER7(): GOSUB BLOCKLOAD
OPEN "grafx/fluttrh6000.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), FLUTTER8(): GOSUB BLOCKLOAD
'                             EXPLODING BLOCKS / CRUSH
OPEN "grafx/explode1200.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOOM1(): GOSUB BLOCKLOAD
OPEN "grafx/explode1202.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOOM2(): GOSUB BLOCKLOAD
OPEN "grafx/explode1204.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOOM3(): GOSUB BLOCKLOAD
OPEN "grafx/explode1206.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOOM4(): GOSUB BLOCKLOAD
OPEN "grafx/explode1208.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOOM5(): GOSUB BLOCKLOAD
'                             EXTRAS
OPEN "grafx/boomrang300c.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOOMRANG1(): GOSUB BLOCKLOAD
OPEN "grafx/boomrang300d.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOOMRANG2(): GOSUB BLOCKLOAD
OPEN "grafx/boomrang300e.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOOMRANG3(): GOSUB BLOCKLOAD
OPEN "grafx/boomrang300f.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOOMRANG4(): GOSUB BLOCKLOAD
OPEN "grafx/extrac300 5.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOUNCER1(): GOSUB BLOCKLOAD
OPEN "grafx/extrac300 6.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOUNCER2(): GOSUB BLOCKLOAD
OPEN "grafx/extrac300 7.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOUNCER3(): GOSUB BLOCKLOAD
OPEN "grafx/extrac300 8.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), BOUNCER4(): GOSUB BLOCKLOAD
OPEN "grafx/extrac400 4.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), MAJIC1(): GOSUB BLOCKLOAD
OPEN "grafx/extrac400 5.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), MAJIC2(): GOSUB BLOCKLOAD
OPEN "grafx/extrac400 6.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), MAJIC3(): GOSUB BLOCKLOAD
OPEN "grafx/extrac400 7.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), MAJIC4(): GOSUB BLOCKLOAD
OPEN "grafx/extrac400 8.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), MAJIC5(): GOSUB BLOCKLOAD
OPEN "grafx/extrac400 9.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), MAJIC6(): GOSUB BLOCKLOAD
OPEN "grafx/extrac400 10.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), MAJIC7(): GOSUB BLOCKLOAD
OPEN "grafx/extrac400 11.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), MAJIC8(): GOSUB BLOCKLOAD
OPEN "grafx/extrac400 1.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), PICKUPKEY(): GOSUB BLOCKLOAD
OPEN "grafx/extrac400 2.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), DOORCLOSE(): GOSUB BLOCKLOAD
OPEN "grafx/extrac400 3.grfx" FOR INPUT AS #1: FOR I = 1 TO 16: INPUT #1, K: FOR J = 1 TO 8: PSET (J - 1, I - 1), VAL(MID$(K, J, 1)): NEXT J: NEXT I: CLOSE 1: GET (0, 0)-(16, 16), DOOROPEN(): GOSUB BLOCKLOAD

RETURN: GOSUB BLOCKLOAD
' ================================================================================================================================================================================================= MAP COLOURS / ALL
'DATA FOR PALETTE SETS
PAL1: _PALETTECOLOR 0, _RGB32(0, 0, 0): _PALETTECOLOR 1, _RGB32(222, 128, 0): _PALETTECOLOR 2, _RGB32(33, 4, 197): _PALETTECOLOR 3, _RGB32(126, 125, 126): _PALETTECOLOR 4, _RGB32(0, 0, 0): _PALETTECOLOR 5, _RGB32(255, 255, 255): _PALETTECOLOR 6, _RGB32(206, 243, 41): _PALETTECOLOR 7, _RGB32(140, 61, 0): _PALETTECOLOR 8, _RGB32(0, 0, 0): _PALETTECOLOR 9, _RGB32(206, 85, 49): _PALETTECOLOR 10, _RGB32(0, 128, 0): _PALETTECOLOR 11, _RGB32(149, 174, 8): _PALETTECOLOR 12, _RGB32(0, 0, 0): _PALETTECOLOR 13, _RGB32(164, 162, 164): _PALETTECOLOR 14, _RGB32(33, 4, 197): _PALETTECOLOR 15, _RGB32(132, 24, 0): _PALETTECOLOR 16, _RGB32(11, 28, 0): _PALETTECOLOR 17, _RGB32(66, 100, 0): _PALETTECOLOR 18, _RGB32(150, 100, 28): _PALETTECOLOR 19, _RGB32(166, 100, 116): _PALETTECOLOR 20, _RGB32(0, 0, 0): _PALETTECOLOR 21, _RGB32(211, 227, 61): _PALETTECOLOR 22, _RGB32(164, 162, 164): _PALETTECOLOR 23, _RGB32(107, 105, 107): _PALETTECOLOR 24, _RGB32(139, 89, 0): _PALETTECOLOR 25, _RGB32(0, 105, 6): _PALETTECOLOR 27, _RGB32(105, 255, 0): RETURN
PAL2: _PALETTECOLOR 0, _RGB32(0, 0, 0): _PALETTECOLOR 1, _RGB32(249, 216, 116): _PALETTECOLOR 2, _RGB32(205, 200, 49): _PALETTECOLOR 3, _RGB32(233, 243, 227): _PALETTECOLOR 4, _RGB32(0, 0, 0): _PALETTECOLOR 5, _RGB32(255, 255, 255): _PALETTECOLOR 6, _RGB32(72, 55, 255): _PALETTECOLOR 7, _RGB32(33, 4, 255): _PALETTECOLOR 8, _RGB32(49, 53, 49): _PALETTECOLOR 9, _RGB32(66, 40, 0): _PALETTECOLOR 10, _RGB32(206, 85, 49): _PALETTECOLOR 12, _RGB32(0, 0, 0): _PALETTECOLOR 13, _RGB32(233, 233, 233): _PALETTECOLOR 14, _RGB32(67, 111, 197): _PALETTECOLOR 15, _RGB32(205, 67, 67): _PALETTECOLOR 16, _RGB32(11, 11, 139): _PALETTECOLOR 18, _RGB32(28, 28, 28): _PALETTECOLOR 19, _RGB32(67, 67, 67): _PALETTECOLOR 20, _RGB32(0, 0, 0): _PALETTECOLOR 21, _RGB32(255, 200, 238): _PALETTECOLOR 22, _RGB32(255, 50, 67): _PALETTECOLOR 23, _RGB32(122, 6, 94): _PALETTECOLOR 24, _RGB32(161, 161, 161): _PALETTECOLOR 25, _RGB32(61, 61, 61): _PALETTECOLOR 27, _RGB32(111, 111, 111): RETURN
PAL3: _PALETTECOLOR 0, _RGB32(0, 0, 0): _PALETTECOLOR 1, _RGB32(33, 4, 197): _PALETTECOLOR 2, _RGB32(74, 194, 230): _PALETTECOLOR 3, _RGB32(140, 20, 189): _PALETTECOLOR 4, _RGB32(0, 0, 0): _PALETTECOLOR 5, _RGB32(206, 0, 0): _PALETTECOLOR 6, _RGB32(255, 255, 255): _PALETTECOLOR 7, _RGB32(164, 162, 164): _PALETTECOLOR 8, _RGB32(255, 255, 255): _PALETTECOLOR 9, _RGB32(140, 255, 90): _PALETTECOLOR 10, _RGB32(206, 61, 0): _PALETTECOLOR 12, _RGB32(0, 0, 0): _PALETTECOLOR 13, _RGB32(206, 85, 49): _PALETTECOLOR 15, _RGB32(140, 255, 90): _PALETTECOLOR 14, _RGB32(74, 194, 230): _PALETTECOLOR 16, _RGB32(166, 0, 0): _PALETTECOLOR 19, _RGB32(105, 53, 49): _PALETTECOLOR 18, _RGB32(172, 105, 107): _PALETTECOLOR 20, _RGB32(0, 0, 0): _PALETTECOLOR 22, _RGB32(233, 255, 116): _PALETTECOLOR 21, _RGB32(49, 50, 166): _PALETTECOLOR 23, _RGB32(255, 28, 67): _PALETTECOLOR 24, _RGB32(0, 0, 94): _PALETTECOLOR 25, _RGB32(33, 4, 197): _PALETTECOLOR 27, _RGB32(74, 166, 230): RETURN
PAL4: _PALETTECOLOR 0, _RGB32(0, 0, 0): _PALETTECOLOR 1, _RGB32(206, 85, 49): _PALETTECOLOR 2, _RGB32(254, 254, 254): _PALETTECOLOR 3, _RGB32(132, 24, 0): _PALETTECOLOR 4, _RGB32(0, 0, 0): _PALETTECOLOR 5, _RGB32(206, 85, 49): _PALETTECOLOR 6, _RGB32(132, 24, 0): _PALETTECOLOR 7, _RGB32(206, 243, 41): _PALETTECOLOR 8, _RGB32(255, 255, 255): _PALETTECOLOR 9, _RGB32(49, 174, 8): _PALETTECOLOR 10, _RGB32(206, 61, 0): _PALETTECOLOR 12, _RGB32(0, 0, 0): _PALETTECOLOR 13, _RGB32(111, 111, 197): _PALETTECOLOR 15, _RGB32(238, 128, 28): _PALETTECOLOR 14, _RGB32(255, 255, 255): _PALETTECOLOR 16, _RGB32(39, 0, 39): _PALETTECOLOR 18, _RGB32(94, 0, 94): _PALETTECOLOR 19, _RGB32(67, 61, 116): _PALETTECOLOR 20, _RGB32(0, 0, 0): _PALETTECOLOR 22, _RGB32(139, 94, 255): _PALETTECOLOR 21, _RGB32(216, 172, 255): _PALETTECOLOR 23, _RGB32(244, 255, 255): _PALETTECOLOR 24, _RGB32(188, 188, 188): _PALETTECOLOR 25, _RGB32(0, 0, 197): _PALETTECOLOR 27, _RGB32(0, 83, 194): RETURN
PAL5: _PALETTECOLOR 0, _RGB32(0, 0, 0): _PALETTECOLOR 1, _RGB32(255, 72, 72): _PALETTECOLOR 2, _RGB32(255, 255, 255): _PALETTECOLOR 3, _RGB32(44, 155, 230): _PALETTECOLOR 4, _RGB32(0, 0, 0): _PALETTECOLOR 5, _RGB32(249, 244, 249): _PALETTECOLOR 6, _RGB32(72, 243, 0): _PALETTECOLOR 7, _RGB32(49, 116, 255): _PALETTECOLOR 8, _RGB32(255, 255, 255): _PALETTECOLOR 9, _RGB32(49, 174, 8): _PALETTECOLOR 10, _RGB32(206, 61, 0): _PALETTECOLOR 12, _RGB32(0, 0, 0): _PALETTECOLOR 13, _RGB32(211, 111, 155): _PALETTECOLOR 15, _RGB32(227, 83, 90): _PALETTECOLOR 14, _RGB32(227, 227, 227): _PALETTECOLOR 16, _RGB32(89, 155, 61): _PALETTECOLOR 19, _RGB32(44, 183, 39): _PALETTECOLOR 18, _RGB32(33, 100, 33): _PALETTECOLOR 20, _RGB32(0, 0, 0): _PALETTECOLOR 23, _RGB32(222, 222, 155): _PALETTECOLOR 21, _RGB32(132, 24, 0): _PALETTECOLOR 22, _RGB32(238, 85, 49): _PALETTECOLOR 24, _RGB32(0, 105, 0): _PALETTECOLOR 25, _RGB32(255, 116, 0): _PALETTECOLOR 27, _RGB32(183, 0, 0): RETURN
PAL6: _PALETTECOLOR 0, _RGB32(0, 0, 0): _PALETTECOLOR 1, _RGB32(244, 55, 33): _PALETTECOLOR 2, _RGB32(33, 4, 197): _PALETTECOLOR 3, _RGB32(33, 133, 230): _PALETTECOLOR 4, _RGB32(0, 0, 0): _PALETTECOLOR 5, _RGB32(74, 194, 230): _PALETTECOLOR 6, _RGB32(206, 85, 49): _PALETTECOLOR 7, _RGB32(206, 243, 41): _PALETTECOLOR 8, _RGB32(255, 255, 255): _PALETTECOLOR 9, _RGB32(49, 174, 8): _PALETTECOLOR 10, _RGB32(206, 61, 0): _PALETTECOLOR 12, _RGB32(0, 0, 0): _PALETTECOLOR 13, _RGB32(205, 205, 205): _PALETTECOLOR 15, _RGB32(211, 61, 28): _PALETTECOLOR 14, _RGB32(194, 128, 39): _PALETTECOLOR 16, _RGB32(188, 122, 155): _PALETTECOLOR 18, _RGB32(49, 83, 105): _PALETTECOLOR 19, _RGB32(89, 116, 90): _PALETTECOLOR 20, _RGB32(0, 0, 0): _PALETTECOLOR 22, _RGB32(140, 255, 90): _PALETTECOLOR 21, _RGB32(49, 174, 8): _PALETTECOLOR 23, _RGB32(33, 4, 197): _PALETTECOLOR 24, _RGB32(0, 0, 0): _PALETTECOLOR 25, _RGB32(206, 85, 49): _PALETTECOLOR 27, _RGB32(206, 205, 41): RETURN

' ================================================================================================================================================================================================= SCREEN OPEN AND CLOSE
SCREENOPEN: MAJICCOUNT% = 0: AMOBCOUNT% = 0: CLS: K% = 2: FOR I% = 21 TO 1 STEP -2: _LIMIT 35: FOR J% = 1 TO 40: B% = SCREENMEM%(I%, J%)
SELECT CASE B%: CASE WALL: PUT (J% * 8 - 1, I% * 16 - 16), WALL(): CASE SPACE: PUT (J% * 8 - 1, I% * 16 - 16), SPACE(): CASE DIRT: PUT (J% * 8 - 1, I% * 16 - 16), DIRT()
CASE MAN: PUT (J% * 8 - 1, I% * 16 - 16), PLAYER(): CASE BOULDER: PUT (J% * 8 - 1, I% * 16 - 16), BOULDER(): CASE PICKUPKEY: PUT (J% * 8 - 1, I% * 16 - 16), PICKUPKEY(): CASE DOORCLOSE: PUT (J% * 8 - 1, I% * 16 - 16), DOORCLOSE()
    CASE BRICK, MAJIC: PUT (J% * 8 - 1, I% * 16 - 16), BRICK(): CASE EXITLEVEL: PUT (J% * 8 - 1, I% * 16 - 16), WALL(): CASE DIAMOND: PUT (J% * 8 - 1, I% * 16 - 16), DIAMOND1()
    CASE FUNGUS: PUT (J% * 8 - 1, I% * 16 - 16), FUNGUS1(): CASE FLUTTERFLY: PUT (J% * 8 - 1, I% * 16 - 16), FLUTTER1(): CASE BOXER: PUT (J% * 8 - 1, I% * 16 - 16), BOXER1(): END SELECT
    B% = SCREENMEM%(K%, J%): SELECT CASE B%: CASE WALL: PUT (J% * 8 - 1, K% * 16 - 16), WALL(): CASE SPACE: PUT (J% * 8 - 1, K% * 16 - 16), SPACE()
    CASE DIRT: PUT (J% * 8 - 1, K% * 16 - 16), DIRT(): CASE MAN: PUT (J% * 8 - 1, K% * 16 - 16), PLAYER(): CASE BOULDER: PUT (J% * 8 - 1, K% * 16 - 16), BOULDER()
    CASE BOULDERF: PUT (J% * 8 - 1, K% * 16 - 16), BOULDER(): CASE BRICK: PUT (J% * 8 - 1, K% * 16 - 16), BRICK(): CASE EXITLEVEL: PUT (J% * 8 - 1, K% * 16 - 16), WALL()
    CASE DIAMOND: PUT (J% * 8 - 1, K% * 16 - 16), DIAMOND1(): CASE FUNGUS: PUT (J% * 8 - 1, K% * 16 - 16), FUNGUS1(): CASE FLUTTERFLY: PUT (J% * 8 - 1, K% * 16 - 16), FLUTTER1()
CASE BOXER: PUT (J% * 8 - 1, K% * 16 - 16), BOXER1(): END SELECT: NEXT J%: _DISPLAY: K% = K% + 2: NEXT I%: RETURN
SCREENCLOSE: K% = 2: FOR I% = 21 TO 1 STEP -2: _LIMIT 32: FOR J% = 1 TO 40: PUT (J% * 8 - 1, I% * 16 - 16), SPACE(), PSET: PUT (J% * 8 - 1, K% * 16 - 16), SPACE(), PSET: NEXT J%: _DISPLAY: K% = K% + 2: NEXT I%: RETURN
' ================================================================================================================================================================================================= LOAD MAP INTO MEMORY
LOADLEVEL: FOR I% = 1 TO 50: BOXERD(I%) = 0: FLUTTERFLYD(I%) = 0: NEXT I%: BXE% = 0: BXF% = 0: FOR I% = 1 TO 22: TEMPRAM$ = STORE$(I%): FOR J% = 1 TO 40: B$ = MID$(TEMPRAM$, J%, 1): SELECT CASE B$
CASE "W": B% = WALL: CASE ".": B% = DIRT: CASE IS = "w": B% = BRICK: CASE "d": B% = DIAMOND: CASE "r": B% = BOULDER: CASE "X": B% = MAN: MJ% = I%: MI% = J%: CASE "m": B% = MAJIC: CASE "0": B% = PICKUPKEY: CASE "1": B% = DOORCLOSE
CASE "P": B% = EXITLEVEL: EJ% = I%: IE% = J%: CASE " ": B% = SPACE: CASE "a": B% = FUNGUS: AM% = 1: CASE "B": B% = FLUTTERFLY: BXF% = BXF% + 1: FLUTTERFLYD(BXF%) = 3: FLUTTERFLYY(BXF%) = I%: FLUTTERFLYX(BXF%) = J%
CASE "q": B% = BOXER: BXE% = BXE% + 1: BOXERD(BXE%) = 1: BOXERY(BXE%) = I%: BOXERX(BXE%) = J%: END SELECT: SCREENMEM%(I%, J%) = B%: NEXT J%: NEXT I%: COLLECTED% = 0: MANDIED% = 0: GOSUB SCREENOPEN: RETURN
' ================================================================================================================================================================================================= GET MAP FROM DATA
STORELEVEL: READ PAL: ON PAL GOSUB PAL1, PAL2, PAL3, PAL4, PAL5, PAL6: READ TOCOLLECT%, POINTS%, BONUS%: FOR I% = 1 TO 22: READ TEMPRAM: STORE$(I%) = TEMPRAM: NEXT I%: RETURN
BLOCKLOAD: PRINT "°";: RETURN
' ================================================================================================================================================================================================= MAP DATA FIRST=COLOUR, SECOND=TO COLLECT, THIRD=POINT, FOURTH=BONUS

DATA 1,15,10,20
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA W...... ..d.r .....r.r....... ....r....W
DATA W.rXr...... .........rd..r.... ..... ..W
DATA W.......... ..r.....r.r..r........r....W
DATA Wr.rr.........r......r..r....r...r.....W
DATA Wr. r......... r..r........r......r.rr.W
DATA W... ..r........r.....r. r........r.rr.W
DATA Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww...r..r.W
DATA W. ...r..d. ..r.r..........d.rd...... .W
DATA W..d.....r..... ........rr r..r....r...W
DATA W...r..r.r..............r .r..r........W
DATA W.r.....r........rrr.......r.. .d....r.W
DATA W.d.. ..r.  .....r.rd..d....r...r..d. .W
DATA W. r..............r r..r........d.....rW
DATA W........wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwW
DATA W r.........r...d....r.....r...r.......W
DATA W r......... r..r........r......r.rr..PW
DATA W. ..r........r.....r.  ....d...r.rr...W
DATA W....rd..r........r......r.rd......r...W
DATA W... ..r. ..r.rr.........r.rd...... ..rW
DATA W.d.... ..... ......... .r..r....r...r.W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 2,137,8,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA W......r.r.W.....d.rW..ddr..rr..d......W
DATA W...d...d.dW.d.r...rWd....d.d.d......d.W
DATA Wr......rrdr.d.r.r.dW...ddd..r.......drW
DATA W.d.......dWr.d.r.r.W...d.rdrdr.....rddW
DATA W......d..Wrdrd..r.dW.rr...d..........dW
DATA W......r..Wrrrr.rd.rWdd.d....rr.....d.rW
DATA Wr........Wd.d...d..Wd.r..d...dd..d..d.W
DATA Wdr.r..r..Wr.dd.ddr.W.r.d.r.r...d...r..W
DATA W.d...r...Wd.r.d...rWWWWd..dr..d......rW
DATA W.d...r...W......ddddr.WWWWrWWWWWWWWWWWW
DATA Wddd.rd...Wr.rW.W....r.W.rd....r...r..dW
DATA W.....d.d.d.d.W.Wdd....W.....d.....d..dW
DATA W..r..rddr....W.W.dd.d.Wrr.........d...W
DATA WWWWWWWWWWWWWWW.WWWWWW.W...r.........r.W
DATA Wr....d....d..W.X....W.W.d.d..ddrr..dddW
DATA W...r.d.dd..d.W.....PW.Wrd.r...rddr.r..W
DATA W..r.d.rdWWWWdWWWWWWWW.Wdr.d.r.rr...dd.W
DATA Wdr...dWWWdrr.....dd...Wdrr..dddd.rdd..W
DATA Wrr...dW.r...............dd.dr.d..d.dddW
DATA W......W....r.r..ddr.r.rd.d.r.r.d....ddW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 3,16,10,20
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA W.r..r..w.r...d.w... .r.wr......w..rr..W
DATA W.......w......rwrr. ...w ..d...w....r.W
DATA W                                      W
DATA Wd......w.r....rw... .. w..r..d.w..r.r.W
DATA W.......w.r....rw.r. r..w.....r.w... ..W
DATA Wwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwW
DATA W....rr.w..r....w... ..rw....r..w.....rW
DATA W.......w.. ....w... ...w....r. w.....rW
DATA W                                      W
DATA Wr..r...w....r..w..r ...w......dwr.....W
DATA Wr....r.w..r..r.w... . rw.......wr...r.W
DATA W.r.....w...r...w... . rw.......w r..r.W
DATA Wwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwW
DATA Wr.  q..w....r.rw... ...w.rd..r.w......W
DATA W.....r.wr......w..d ...w ..r...w.r.rr.W
DATA W                                      W
DATA Wd.. .r.wr....r.w.r. ..rw.r.r...w......W
DATA W.....r.wr..d...w... r..w..r....w...rr W
DATA W.d... rw..r....w.Xd r..w. .....w...rr W
DATA W.r.... w.. ..r.w.P. ...w....r.rw.... .W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
'

DATA 4,15,10,20
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA W.......r.....r.w..r...w               W
DATA W.r....rw.......w.....PwB  wwwwwwwwwww W
DATA W...r...w....r..w.rr...w   wrrrrrrrrrw W
DATA W.......w.r.....w......wB  wwwwwwwwwrw W
DATA Wqq     wqqqq   wqqq   w   wrwrrrwrwrw W
DATA W.r.....w.....rrw......wB  wrwrwwwrwrw W
DATA W.....r.w.......w...r..w   wrwrwrwrwrw W
DATA W..r....w..r..r.w......wB  wrwrwrwrwrw W
DATA W...r...w.............rw   wrwrwrwrwrw W
DATA W.wwwwwwwwwwwwwwwwwwwwwwB  wrwrwrwrwrw W
DATA Wr..................r.rwr  wrwrwrwrwrw W
DATA W...r........r..r......w. qwrwrwrwrwrw W
DATA W...........r.r.r......w   wrwrwrwrwrw W
DATA W...................r..w  qwrwrwrwrwrw W
DATA W.r.............r......w.  wrwwwwwrwrw W
DATA Wr...r.......r.........w  qwrwrrrrrwrw W
DATA W..r...r.rr.r..........w   wrwwwwwwwrw W
DATA Wr............r...r..r.w  qwrrrrrrrwrw W
DATA W.........r............w   wwwwwwwwwww W
DATA W....rrr..r........r...w. qX           W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW


DATA 6,32,5,15
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA W.......W...........W....q.............W
DATA Wq......W..q.q.......W.q.......W.......W
DATA W...d...W...d.d.......W.......WWWWWWW..W
DATA Wd......W......X.....d.W.....W.W.......W
DATA W.......W.....W.........Wd..W..W.......W
DATA W...qq..W....W...........W.W...W.......W
DATA W.......W...W............qW....Wd....d.W
DATA W.......W..W.q..d..............Wq......W
DATA W.......W.W................P...W...d...W
DATA W.......WW...d.d..........W....W.......W
DATA W.......W..........q.....W.....q.......W
DATA WW......W....d.d........W..............W
DATA WaW...d....q...........W...........q...W
DATA W..W......q.......d..qW.........W......W
DATA W...W..........d.d..dW.....q..dW.d.....W
DATA W...dW..d..d........Wq........W........W
DATA W.....W............W.........W..d......W
DATA W......W..........W.........W..d.......W
DATA W.......W........W.........W...........W
DATA W.......d.......W.........W............W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 1,102,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA W.....r...r...............q..r.r.......W
DATA W..rr...r....r........r................W
DATA W.....q.r...........M.........q.q...dddW
DATA W....................M.q.......M....dPdW
DATA W.....r.............q.M.....r.M.....dddW
DATA W.........M.M........q.M.....M.........W
DATA W........Mr..M..........Mq..M..........W
DATA W.......M..r..M.......r.rM.M.r....M...dW
DATA W...q..M.......Mq.........M.....rM.... W
DATA W.....M.........M...............M..... W
DATA W.........r...q..M..r......r...M...... W
DATA Wr.............r...................... W
DATA W..............q.......r..qMr......r.. W
DATA Wr.....r.r.Mr.............M...rr..r... W
DATA W..q...q..M.M.....rrqr...M.......r.... W
DATA W........M...M.rr.......M...q...r...r. W
DATA W.......M.....q.....r..M...r.......... W
DATA W......M.......q......M......r........ W
DATA W...r..........M.r...M....r..........  W
DATA WX..r....................MMrMMMMMMMMMqMW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 2,24,7,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA Wr.ww.wrr.w...rwr..r....w...r.....rw.d.W
DATA W..Xw.d.r.w...www..w.r....r..r.r...w.wrW
DATA W....w..rd..r....w.....r.wwr.......w.wwW
DATA Wd.w..wrwr..r....w...r......r.rr......wW
DATA Wr.w...w..r.ww..r.wwd.......r.rr......wW
DATA Wrr..r....w...r......r.rr......r..dww..W
DATA W..r.ww..r.rr...w....r.rr......w..r.w.rW
DATA W..w...d......d.r..wwr..r.w.wr..wr..d.rW
DATA Wr.r....w.ww..d.r..wwr..r..d.w...w..r.wW
DATA W.r.ww.....rrwr..d.w.wr..wr...wr..d.r..W
DATA Ww.ww......rrwr..r.w.ww...w..r.ww..r.wwW
DATA W.w.r.r.w...wwr..r....w...r.....ww.r.wwW
DATA W.w.r.r.w.d.w.wr..wr....r..r.rr....w...W
DATA Ww..wrwr..r....w...d...w.rw......w.ww.dW
DATA Ww...wwr..w.d...wr..r.r...r.Pr......w..W
DATA Ww.d....r.ww..r.wwr.......r.wr......w..W
DATA W..r....w...r......r.rr......w..r.w...wW
DATA Wr.ww..r.ww...w....r.rr......w..rd..r..W
DATA Ww...r......r.rd......r...ww..wr..d.w..W
DATA Wrr...w.....r.rd......w..r.wd.d.rw.r...W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
'
DATA 3,12,20,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WX.....r....................r........r.W
DATA W.....r..............r.................W
DATA W........r..r..........................W
DATA Wr.....................................W
DATA W...................r..................W
DATA W.r.....................r.........r....W
DATA W..r.....r...........r..r.............rW
DATA W......r......r.....................r..W
DATA W.......  B ..r.  B ....  B ....  B ...W
DATA W.......    ..r.    ....    ....    r..W
DATA W......................................W
DATA W...r..............................r...W
DATA W...r.....r............................W
DATA W......r...........r..................rW
DATA W...........r.......r..................W
DATA W..r..............r....................W
DATA W.....................r.........r......W
DATA W................................r..r..W
DATA W....r......r.rr..................r....W
DATA W...........r.rr.........r..r.r.......PW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 4,40,5,9
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA Wddw.rr.r.rXdddwddr......r..wdrddddr...W
DATA Wddw...r....dddwdd...rP...r.wddr.rr....W
DATA Wrrw.r.........w......rrr...wrrr.rr...rW
DATA W.r..rrr.....rrwrr.r...r....wdr..r....rW
DATA W..r.r....r..r.w.r...rr...rrwwwwwwww...W
DATA W.rrr...r......wr...........r...rr...r.W
DATA Wwwwrwrwwr..r..w...r.rrr.r...rr.r.r....W
DATA Wrr..r...rrr..rwr.....r.....rr........rW
DATA Wr...r..r......w.r.r.r..r......www..wwwW
DATA Wr......r.r....w.....r........wwrwwwwrrW
DATA W....r.r.rr....w.rr...rr...r.wwrrdddddrW
DATA W.r......r.r.....wwwwwwwwwww.wr.r.rr.r.W
DATA W.rr.r.r.............rrwrdrw.r...r.....W
DATA Wr..rr.................wdddw.r.rr...r..W
DATA Wwwwwwwwwwwww......r...wddrw.r.........W
DATA Wd....rrr...........rr.wrdrw...rrr.r.r.W
DATA Wd...r..rrr....r.r.r...w.r...r.r..r.r..W
DATA Wdr....r...r...r.......wr....r..rwwwwwwW
DATA Wd....r....r...r.....r.wrr.....www..rr.W
DATA Wdddr....r....r...r....w..r....ddd.....W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 5,8,10,25
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WX.....................................W
DATA W......................................W
DATA W......................................W
DATA W......................................W
DATA W......................................W
DATA W......................................W
DATA W......................................W
DATA W.......  q.....  q.....  q.....  q....W
DATA W.......   .....   .....   .....   ....W
DATA W....... d ..... d ..... d ..... d ....W
DATA W......................................W
DATA W......................................W
DATA W......................................W
DATA W.......  q.....  q.....  q.....  q....W
DATA W.......   .....   .....   .....   ....W
DATA W....... d ..... d ..... d ..... d ....W
DATA W......................................W
DATA W......................................W
DATA W......................................W
DATA W.....................................PW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 6,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA Wwwwwwwwww....r.r..r........r.wwwwwwwwwW
DATA W   q     ...........r....r...         W
DATA W      d  ..r..........r...r..     qd  W
DATA Wwwwwwwwww..r........r......r.wwwwwwwwwW
DATA W   q     ......r...r.......r.         W
DATA W      d  ....r......r.rr.....     qd  W
DATA Wwwwwwwwww.rr........r.rr.....wwwwwwwwwW
DATA W   q     ....r.r....r..r.....         W
DATA W      d  ....r.r....r..r..r..     qd  W
DATA Wwwwwwwwww.rr.r..r....r...r...wwwwwwwwwW
DATA W   q     .rr.r..r............         W
DATA W      d  ....r..r........r...     qd  W
DATA Wwwwwwwwww.....r...r....r..r..wwwwwwwwwW
DATA W....r.r..r........r.....r............rW
DATA W......r....r....r..r.r...r..r.........W
DATA W..r....r.....r...r.......r..r.........W
DATA W..r........r......r.rr.........r......W
DATA Wr.X...r...........r.rr.........rr..r.PW
DATA W....r......r.rr......r........r..r....W
DATA Wrr.........r.rr.........r..r.r.r..r...W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 1,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA W. .. .rr..... ..r. XP... rr r..r. .  .W
DATA W ..r. .. .  .... .r.r. ...  r..r.d.. .W
DATA Wr.....  .q.  ... .r.r. ... wwwwwwwwwwwW
DATA W.r.d... .  ...... ..rr..r.... . ... . W
DATA Wwwwwwwwwwwww.r. ..   r.. .... ...r....W
DATA Wr. r...... ..r. ... ..r.  ..r.  q.....W
DATA Wr. r...... .. r..r.... ...r......r.rr.W
DATA W... ..r  ... ..r.  ..r.  ... ....r.rr.W
DATA W... ..r. .r.... ...q......r.r..  r..r.W
DATA W  .. r.... ..r.r.... .  .......  d.. .W
DATA W. ... .. .  .. .  .....rr r..r. . r.. W
DATA W.. d..r.r.... .  ......r  r..r. .  ...W
DATA W.r.  ..r.  ... .r.r. ...  r.. .... ...W
DATA W....  .r.  ... .r.r. .r. . r.. r.... .W
DATA W.  .... ....  .. r r..r.... ...r... .rW
DATA W..... .  .rr. ...  r.. .r... r..r.r...W
DATA W r...... ..r. .r.... .  ..r.  r.......W
DATA W r...... .. r..r.... ...r......r.rr...W
DATA W. ..r. ... ..r.  .aa.  ... ....r.rr...W
DATA W. .drq..r.... ...r......r.rq.....dr...W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 2,45,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA W.d.r.d.r d.r.d.     ...      .........W
DATA W.r.r.r.r r.r.r.   . ...      .........W
DATA W.r.r.r.rrr.rrr.     ...      .........W
DATA WXr.d.r.d.. d.r.   qq...   q q.........W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW.W
DATA W.d.r.d.r.d.r.d.     .r..........r...W.W
DATA W.r.r.r.r.r.r.r.     .r..........d...W.W
DATA W.r.r.r.r.r.r.r.     .r.........r.r..W.W
DATA W.r.d.r.drr.d.r.   qq.r.........d.d..W.W
DATA W.WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW.W.W
DATA W                qqqqqqqqqqqqqqqqqqP.W.W
DATA W                                 qW.W.W
DATA W                                  W.W.W
DATA W   ............................  qW.W.W
DATA W   .dddddddddddddddddddddddddd.   W.W.W
DATA W   ............................  qW.W.W
DATA W   ............................   W.W.W
DATA W                                 qW.W.W
DATA W                                  W.W.W
DATA W                                  W...W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 3,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WX.....................................W
DATA WWW....WWWr.r.WWW.mmmWWWWWWWWrrrrrrr.w.W
DATA W.W....W.W.rr W.W....W      W........W W
DATA W.W..rrW.WrrrqW.Wmmm.W      W.......qW W
DATA W.W....W.Wrrr.W.W    W      W........W W
DATA W.Wr. .W.Wdrr.W.WB  rW      W.....q..W W
DATA W.WdrqrW.Wddr.W.WB  .W      W........W W
DATA W.W..rrW.Wrd..W.WB   w      W........W W
DATA W.W  ..W.Wrr..W.WB   W      W..q.....W W
DATA W.W q.dW.WrrrrW.W    W      .........W W
DATA W.WWWWWW.WWWWWW.WWWWWWWWWWWWWWWWWWWWWW W
DATA W..........................WWWWWWWWW.. W
DATA W..........................WWWWWWWW... W
DATA W..........................WWWWWWW..WW W
DATA W..........................W.......WWWqW
DATA W..........................W.WWWWWWWWW W
DATA W..........................W.WWWWWWWWWWW
DATA W..........................W.WWWWWWWWWWW
DATA W..........................W.........PWW
DATA W..........................WWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 4,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WXrrrrrrrrw.....................w      W
DATA W.rrrrdddrw.wrww.w..............w      W
DATA W.r.rd.drdw.w..w.w.rrrrrrrrrrrr.w      W
DATA W.rqrrrdrdw.w.rw.w.rddddddrrddr.w      W
DATA W.rrdddrddw.w..w.w.rddddrrddrrr.w      W
DATA W.rrdddrddw.w..w.w.rdrrrddddrrr.w      W
DATA W.rrrrddddw.w..w.w.rrdrddrrdrdr.w      W
DATA W.wwwwwwwww.w..w.w..............w      W
DATA W...........w..w.wmmmmmmmmmmmmm.w      W
DATA Wmwwwwwwwwwww..w.w            q.w      W
DATA W...w............w             .w      W
DATA W................w q           .w      W
DATA Wq  wwwwwwwwwwwwwwwwwwwwwwwwwwwww      W
DATA Wwwww.q. ... .q..w..............w      W
DATA W.q. . . ... . ..w..............w      W
DATA W. . . . ... . ..w..............w      W
DATA W. . . . ... . ..w.mmmmmmmmmmmmmw      W
DATA W. . . . ... . ..w              w      W
DATA W. . . . ... . ..               w      W
DATA WP .q. .q...q. ..w              w      W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 5,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA W . r.. . .. ..r. ..XP..r.  ..r. r... .W
DATA W.r.rr...... ..r...r.... ...r.....dr.r.W
DATA W r..r...  ...r..r. ..r.r...wwwwwwwwwwwW
DATA W...d ..r. q.....r..... ........rr r..rW
DATA Wwwwwwwwwwwww..r.r.... .  ......r  r..rW
DATA W.  ... ..r.  ..r.  .... rrr.....  r.. W
DATA W... r... q.. ..r.  .....r.rr..r. . r..W
DATA W..r. ..r. r.... ..... ...r r..r.... ..W
DATA W.....r ...... .  qrr. ...  r.. .r....rW
DATA Wr.r... . r...... ..r...r....r....dr.  W
DATA W......r. r......... r..r...wwwwwwwwwwwW
DATA W.rr...... ..r. ... ..r.  ..r.  ... r..W
DATA Wwwwwwwwwwwwwr........ ...r......r.rr..W
DATA W..r...  ...d..r. ..r.rr.........r.rr..W
DATA W.. ..r. .r...mmmmmmmm.........  r..r..W
DATA Wr.. r....r..r r...d .. .......  r..r..W
DATA W ... ..r. ...r.  .....rrrr..r. . r.. rW
DATA W. r..q.r.... .  ......rr r..r...  ...rW
DATA Wr.  ..r.  .....r.r. ...  r..r.... ...rW
DATA W...  .r.r .....r.r.....   .. .r....r..W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 6,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA Wdddrrddrddr.rrrrdrdd.ddrddrddddrrdrdrrW
DATA Wdrrdddrrrdrddrrrrrrdrrd.drdrrrrdrddrrdW
DATA Wddrrrrrrrdrddrr.rrrdrrdddrdr.rrdrrrddrW
DATA Wrrdrddrrrrrrdrrddd..ddrrdrddrrdrdd.rrdW
DATA Wrrdrddrrrrrrdrrd.drdrrrrdrdrdrrddrrdrdW
DATA Wdddrrdrd.ddrrddrrdddrrdrdrrr.drddrrdrdW
DATA Wrrrrrdrrdddd..rrrdrdd.rdrddr.rrddddddrW
DATA Wdrddwwwwwww.wwwwwdrrrrdrwwwwww.wwwwwwrW
DATA Wd.dd             rddrrrd             rW
DATA Wdrdr  XP         rddrrrd             rW
DATA Wdrrd             r.rrddr             rW
DATA Wdrrd             ddddrdr             dW
DATA Wrddd             drrd.dr             dW
DATA Wrrrr             drrddrr             rW
DATA Wdrdd             .rdrrdr             rW
DATA Wdrdd            wwwwwwwww            rW
DATA Wrrrd                                 rW
DATA Wrrrd             dd.rdrd             rW
DATA Wddrr             rrrdrdd             rW
DATA Wdd..wwwwwwwwwwwwwdrrrdddwwwwwwwwwwwwwdW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 1,12,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA W............X.........................W
DATA Wwwwwwwwwwwww wwwwwwww.................W
DATA Ww....d.............dw.................W
DATA Ww.w w.wwwwww wwwwww.w.................W
DATA Ww.qqq.wd.........dw.w.................W
DATA Ww.qqq.w.wwww wwww.w.w.................W
DATA Ww.qqq.w.wd.....dw.w.w.................W
DATA Ww.qqq.w.w.ww ww.w.w.w.................W
DATA Ww.qqq w w w   w w w w.................W
DATA Ww.qqqqwqwqwqqqwqwqwqw.................W
DATA Ww.qqq w w w   w w w w.................W
DATA Ww.qqq.w.w.wwwww.w.w.w.................W
DATA Ww.qqq.w.wd.....dw.w.w.................W
DATA Ww.qdq.w.wwwwwwwww.w.w.................W
DATA Ww.qdq.wd.........dw.w.................W
DATA Ww.qdq.wwwwwwwwwwwww.w.................W
DATA Ww.qdqd.............dw.................W
DATA Wwwwwwwwwwwwwwwwwwwwww.................W
DATA W.....P................................W
DATA W......................................W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 2,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA Wr.rd.rrr.w...drr..rw...d...r.w...dr.r.W
DATA W... .r.r.w...r r..rwr....r..rwr...r.rrW
DATA W.... ..rrw.r....r..w..r. rr..w....r.rrW
DATA Wr.r.. rrrw.r.... ..wr......r.wr......rW
DATA Wr. ...r..w.  ..r.rrw.......r.wr...... W
DATA Wrr..r....w...r.....wr.rr.....wr..r r..W
DATA W..r.rr..rwrr...r...wr.rr.....wr..r. .PW
DATA W..r...r..w...r.r..rwr..r. .rrw. r..qwrW
DATA Wr.r.wwwwwwwwwqwwwwwwwwwrwwwwwwwww..w. W
DATA W.r.  .....rrrr..r.r.rr..rr... r...wr..W
DATA Wr.rr......rrrr..r. . r...r..r.rr.wr.rrW
DATA W. .r.r. w..rrr..r.... ...r.....rw.r.rrW
DATA W. .r.r. wr.wwwwwwwwwwwwwwwwwrr.w..r...W
DATA Wr.. rrr.wr....r...r... .rr....w.r.rr.rW
DATA Wr...rrr.wr.r... r..r.r...r.rrw.....r.PW
DATA W .r....rw  ..r.rrr.......r.rw...... ..W
DATA W..r.... w..r......r.rr.....wr..r.r...rW
DATA Wr.rr..r.wr...r....rXrr......r..rq..r..W
DATA Wr...r...w..r.rq......r... r.. r..rdr..W
DATA Wrr.d. ..w..r.rr......r..r. r.q.rr.r...W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 3,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA Wr. ...rr.....r.r..r........r.....r..d.W
DATA W.....d.r....... ....r....r..r..... ..rW
DATA W.......rdw.r.w.. w...wr...r..  q . .. W
DATA WdwPwwwwwwwww.w...w..rw.....r.    .....W
DATA Wr........w...w.r.w d.w.....r..........W
DATA Wrr..r....w...w...w..rwrr......r..d....W
DATA W..r.....rwrr.w...w..rwrr.........r...rW
DATA W.wwwwwwwwwww.w.r.w .rw.r....r  q ..d.rW
DATA Wr.r......w...w.r.w..rw.r..d..    ..r..W
DATA W.r.......wrr w..dw.. w...r.......d.r..W
DATA W ........wrr w..rw...w... ..r.....r...W
DATA W.wwwwwwwwwwwwwwwrw...w...r........r.  W
DATA W...r.r...w...wr..wr..w.r..r.r  q .....W
DATA W....r r..w...w...wd..w..r ...    ....dW
DATA W.... .r..w.d.w..rw.r.w...r. r.........W
DATA W.wwwwwwwwwww.w...w...w...r. r.........W
DATA W..r......w.r.w...wr.rw...... ..r......W
DATA Wr.X...r. w...w...wr.rw.........rd..r..W
DATA W....r....w.r.wd..w...w.... ...r..d. ..W
DATA Wrr.......w.r.wd..w...w..r..d.d.r..r...W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 4,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA Wr.....rr.P.....r.Xra.......r........r.W
DATA W.....r.r............r....r..r.r.......W
DATA W........r..r..............r...........W
DATA Wr.......r...........r......r..r.......W
DATA Wr........r.....r...r.......r..r.......W
DATA W.r..r........r......r.rr.........r....W
DATA W..r.....r...........r.rr.........r...rW
DATA W......r......r.r....r..r........r..r..W
DATA Wr.r..........r.r..........r...........W
DATA W..........rr.r..r....r...r....r..r.r..W
DATA W..........r..r..r...........r.....r...W
DATA W...r.r.......r...........r........r...W
DATA W...r.r...r....r...r.......r...........W
DATA W....r.r..r........r.....r............rW
DATA W......r....r....r..r.r......r.........W
DATA W..r.wwwwwwwwwwwwwwwwwwwwwwwwwwwwww....W
DATA W..r.BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB....W
DATA Wr...rrrrrrrrrrrrrrrrrrrrrrrrrrrrrr.r..W
DATA W......................................W
DATA W.r................................r...W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 5,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA W..X...................................W
DATA W......................................W
DATA W......................................W
DATA W......................................W
DATA W.....................q.q.q.q.q.q......W
DATA W.....................r.r.r.r.r.r......W
DATA W......................................W
DATA W......................................W
DATA W......... B. . . . . .................W
DATA W.........  . . . . . .................W
DATA W.........  .B. . . . .................W
DATA W.........  . . . . . .................W
DATA W.........  . .B. . . .................W
DATA W.........  . . . . . .................W
DATA W.........  . . .B. . .................W
DATA W.........  . . . . . .................W
DATA W.........  . . . .B. .................W
DATA W.........  . . . . . .................W
DATA W.........  . . . . .B.................W
DATA W.....................................PW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 6,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA Wr.rr..  r..r..r.r.PXr..r.rr..r.rr...r.W
DATA W.w.rr......r..r...r....w...r......r.r.W
DATA Wrrw.r... r.. r..r.r..rwr.... .. ..r.rqW
DATA W...wr..r. q.....r. ..wr.  .....rrrr..rW
DATA W.rr.wrr... r..r.r...wr. r......rrrr..rW
DATA W. r..wr..r.r ..r.rrw... rrr. ...rrr..rW
DATA W...rr.w. q..r..r.rw.....r.rr..r.r.rr..W
DATA W..r.r..w.rr.... .w...r.. rrr..r....r..W
DATA W... .rr.w....r. wqrr. ...rrr..r.r... rW
DATA Wr.r...r.rw.....wr..r. .r....r.  ..r.rrW
DATA W......r.rrw...w. ..rr..r.... ...r.....W
DATA W.rr......r....r...r..r.r ..r.rr... r..W
DATA W.rr......r.mmm..r....r...r......r.rr..W
DATA W..r... r...r..r.r..r.rr... .....r.rr..W
DATA W..r..r. .r....r.....r.  ......rrr..r. W
DATA Wr.. r....r..r.r....r.  .......rrr..r..W
DATA Wr...r..r.  ..r.  .... rrrr..r.r.rr..rrW
DATA W. r..q r....r.rr......rrrr..r. .rr.. rW
DATA Wr.rr..r.rr... .r.r. ...rrr..r.... ...rW
DATA W...rr.r.rr... .r.r.P...r r..r.r....r..W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 1,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WX..r..........r........r.....r..r....PW
DATA W.r.rr.........r...r........r......r.r.W
DATA W.r..r........r..r....r.r..........r.rrW
DATA W.......r..r.....r..............rr.r..rW
DATA W..r...r....r..r.r..............r..r..rW
DATA W.........r.....r........rrr.......r...W
DATA W....r....r.....r........r.rr..r....r..W
DATA W..r...mmmmmm..mmmmmm.....r.r..r.......W
DATA W.....rw....w..w..rrw.......r....r....rW
DATA Wr.r...w..r.w..w....w...r....r.....r...W
DATA W......w..r.w..w....wr..r........r.....W
DATA W.rr...w....wr.w....w.r.....r.......r..W
DATA W.rr...w....wrrw.r..w.....r......r.rr..W
DATA W..r...w....w..w....w.rr.........r.rr..W
DATA W.....rwwwwww..wwwwww............r..r..W
DATA Wr...r....r..r.r.................r..r..W
DATA W.............r........r.....r........rW
DATA W..r..r.  q ....  q ...r  q .r..  q ..rW
DATA Wr.....r    ....    ....    .r..    ..rW
DATA W......r.......................r....r..W
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 2,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WwwwwwwwwwwwwwwwwwwwwwwwwwwwwWwwwwwwwwwW
DATA Wwrrrw.........wddddddddddddwWw.drdrd.wW
DATA Ww...w...PX....wrrrrrrrrrrrrwWw..drd..wW
DATA Ww...w.........wrrrrrrrrrrrrwWw...d...wW
DATA Ww...w.........wrrrrrrrrrrrrwWw......wwW
DATA Ww.wwwwwwwwwww.wwww.wwwwwwwwwww.wwww.wWW
DATA Ww r r r r r.W........w              wWW
DATA Ww . . . . ..W.w....w.w ..d.d.d.d.d. wWW
DATA Ww . . . . ..W.w....w.. ............ wWW
DATA Ww            .w....w.wq   q   q   q wWW
DATA Wwwwwwwwwwwwww.w....w.wwwwwwwwwww.wwwwwW
DATA Ww........wWWw.w....w.wwwwwwwwwwW     wW
DATA Ww.r....r.wwww.w....w. q      qwW .r. wW
DATA Ww....................w r.rr.r wW .r. wW
DATA Ww........wwwwwwww.wwww ...... wW .r. wW
DATA Ww.r....r.wB B B B BwWw r.rr.r wW .r. wW
DATA Ww........w ....... wWw ...... wW .r. wW
DATA Ww........wB.......BwWw        wW .r. wW
DATA Ww........w B B B B wWwwwwwwwwwww     wW
DATA WwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWwwwwwwwW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 3,6,30,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA W                   WWWWWWWWWWWWWWWWWWWW
DATA W         r         WWWWWWWWWWWWWWWWWWWW
DATA W  X      .         WWWWWWWWWWWWWWWWWWWW
DATA W                   WWWWWWWWWWWWWWWWWWWW
DATA W                   WWWWWWWWWWWWWWWWWWWW
DATA W                   WWWWWWWWWWWWWWWWWWWW
DATA W                   WWWWWWWWWWWWWWWWWWWW
DATA W                   WWWWWWWWWWWWWWWWWWWW
DATA W                   WWWWWWWWWWWWWWWWWWWW
DATA W         B       P WWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 4,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA Wrq...............r.WWWWWWWWWWWWWWWWWWWW
DATA WXrq.............rP.WWWWWWWWWWWWWWWWWWWW
DATA Wd.rq...........r.d.WWWWWWWWWWWWWWWWWWWW
DATA Wrd.rq.........r.dr.WWWWWWWWWWWWWWWWWWWW
DATA W.rd.rq.......r.dr..WWWWWWWWWWWWWWWWWWWW
DATA W..rd.rq.....r.dr...WWWWWWWWWWWWWWWWWWWW
DATA W...rd.rq...r.dr....WWWWWWWWWWWWWWWWWWWW
DATA W....rd.rq.r.dr.....WWWWWWWWWWWWWWWWWWWW
DATA W.....rd.rr.dr......WWWWWWWWWWWWWWWWWWWW
DATA W......rd..dr.......PWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 5,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA W       X           WWWWWWWWWWWWWWWWWWWW
DATA W                   WWWWWWWWWWWWWWWWWWWW
DATA W                   WWWWWWWWWWWWWWWWWWWW
DATA W                   WWWWWWWWWWWWWWWWWWWW
DATA W                 P WWWWWWWWWWWWWWWWWWWW
DATA W                   WWWWWWWWWWWWWWWWWWWW
DATA W              qqqq WWWWWWWWWWWWWWWWWWWW
DATA W              qqqq WWWWWWWWWWWWWWWWWWWW
DATA W              qqqq WWWWWWWWWWWWWWWWWWWW
DATA Wddddddddddddddqqqq WWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

DATA 6,48,3,0
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA W..X.......rrr......WWWWWWWWWWWWWWWWWWWW
DATA W..........rrr......WWWWWWWWWWWWWWWWWWWW
DATA W...................WWWWWWWWWWWWWWWWWWWW
DATA W..........mmm......WWWWWWWWWWWWWWWWWWWW
DATA W.......r..   ......WWWWWWWWWWWWWWWWWWWW
DATA W........r.   ......WWWWWWWWWWWWWWWWWWWW
DATA W.........r   ......WWWWWWWWWWWWWWWWWWWW
DATA W........P.mmm......WWWWWWWWWWWWWWWWWWWW
DATA W..........   ......WWWWWWWWWWWWWWWWWWWW
DATA W..........   ......WWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
DATA WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW







