;*****************************************************************************
; Castle.a
;
; Copyright 1987-1995 Readysoft, Punk Jozsef.  All rights reserved.
;
;*****************************************************************************

;-----------------------------------------------------------------------------
; ROM Routine Entry Addresses
;-----------------------------------------------------------------------------

KEY_SCAN        EQU     x028e
BEEPER          EQU     x03b5
SA_BYTES        EQU     x04c2
LD_BYTES        EQU     x0556
CLS             EQU     x0d6b
CHAN_OPEN       EQU     x1601
PR_STRING       EQU     x203c
PIXEL_ADD       EQU     x22aa
PLOT_SUB        EQU     x22e5

;-----------------------------------------------------------------------------
; System Variables
;-----------------------------------------------------------------------------

CHARS           EQU     23606

;-----------------------------------------------------------------------------
; Variables
;-----------------------------------------------------------------------------

ImageY          EQU     x5b00
ImageX          EQU     x5b01
ImageWidth      EQU     x5b02
ImageHeight     EQU     x5b03
ImageData       EQU     x5b04
ImageHStore     EQU     x5b06
ImageClrAttr    EQU     x5b07
EnemydY         EQU     x5b08
EnemydX         EQU     x5b09
EnemyY          EQU     x5b0a
EnemyX          EQU     x5b0b
EnemyCollY      EQU     x5b0c
EnemyCollX      EQU     x5b0d

ImagePos        EQU     ImageY
ImageSize       EQU     ImageWidth
EnemyPos        EQU     EnemyY
Enemydelta      EQU     EnemydY
EnemyColl       EQU     EnemyCollY

;*****************************************************************************
; Code
;*****************************************************************************

;-----------------------------------------------------------------------------
; Information
;-----------------------------------------------------------------------------

                ORG     25000

Information:    call    CLS                             ; cls
                ld      b,18                            ; wait some time
in.Wait:        halt
                djnz    in.Wait
                call    PrintInfoText                   ; print info text
in.WaitForC:    ld      a,xfe                           ; read keyboard
                in      a,(xfe)
                and     x1f
                cp      x17                             ; 'C' pressed ?
                jr      nz,in.WaitForC
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                ret

;-----------------------------------------------------------------------------
; PrintInfoText
;-----------------------------------------------------------------------------

                ORG     25034

PrintInfoText:  ld      a,2
                call    CHAN_OPEN                       ; CHAN-OPEN
                ld      hl,InfoText
pi.Loop:        ld      a,(hl)                          ; get next char
                cp      xff                             ; end of text ?
                ret     z
                push    hl
                rst     16                              ; print
                cp      32
                jr      nc,pi.NoBeep
                ld      de,1
                ld      hl,4608
                call    BEEPER                          ; beep
pi.NoBeep:      pop     hl
                inc     hl
                jr      pi.Loop

;-----------------------------------------------------------------------------
; InfoText
;-----------------------------------------------------------------------------

                ORG     25100

InfoText:       DEFB    x16,x00,x03,x10,x00,x11,x01
                DEFB    x83,x83,x83,x83,x83,x83,x83
                DEFB    x83,x83,x83,x83,x83,x83,x83
                DEFB    x83,x83,x83,x83,x83,x83,x83
                DEFB    x83,x83,x83,x83,x83
                DEFB    x10,x05,x16,x01,x03
                DEFM    ' Welcome to  Ghost Castle '
                DEFB    x10,x00,x16,x02,x03
                DEFB    x8C,x8C,x8C,x8C,x8C,x8C,x8C
                DEFB    x8C,x8C,x8C,x8C,x8C,x8C,x8C
                DEFB    x8C,x8C,x8C,x8C,x8C,x8C,x8C
                DEFB    x8C,x8C,x8C,x8C,x8C
                DEFB    x16,x04,x03,x10,x06,x11,x00
                DEFM    'You are in the  castle  of'
                DEFB    x16,x05,x03
                DEFM    'the Witch.'
                DEFB    x16,x06,x03,x10,x04
                DEFM    'Ghosts  and other monsters'
                DEFB    x16,x07,x03
                DEFM    'keep guard  in their room.'
                DEFB    x16,x08,x03,x10,x07
                DEFM    'If they touch you then you'
                DEFB    x16,x09,x03
                DEFM    'lose a life.'
                DEFB    x16,x0A,x03,x10,x05
                DEFM    'You must collect six discs'
                DEFB    x16,x0B,x03
                DEFM    'in due course.'
                DEFB    x16,x0C,x03,x10,x03
                DEFM    'When you find a disc , you'
                DEFB    x16,x0D,x03
                DEFM    'must  carry away it in the'
                DEFB    x16,x0E,x03
                DEFM    'computer room and place it'
                DEFB    x16,x0F,x03
                DEFM    'in the drive.'
                DEFB    x16,x10,x03,x10,x06
                DEFM    'When you have  six discs ,'
                DEFB    x16,x11,x03
                DEFM    'you must go to the Witch'
                DEFB    x27
                DEFM    's'
                DEFB    x16,x12,x03
                DEFM    'room , and  you must  kill'
                DEFB    x16,x13,x03
                DEFM    'the Witch.'
                DEFB    x16,x15,x0C,x10,x07,x11,x01
                DEFM    'C'
                DEFB    x10,x06,x11,x00
                DEFM    'ontinue'
                DEFB    xFF

;*****************************************************************************
; Amiga Screen Crunched Data
;*****************************************************************************

                ORG     25640

dat.AmigaScr:   DEFB    xFF,xFF,x1C,xFE,xFF,xDF,xFD,xFF
                DEFB    xFF,x03,xC1,xFF,xFF,x18,xFE,xE0
                DEFB    x5D,xF5,xB0,x66,x66,x04,x18,x66
                DEFB    x66,x02,x60,x00,xB1,x00,x18,x06
                DEFB    x66,x66,x02,x00,x30,x66,xD6,xD6
                DEFB    x02,x66,x66,x04,x7E,x00,x18,x66
                DEFB    x60,x00,x01,x8F,x0C,x60,xEC,x38
                DEFB    x3B,x6C,xF8,xF8,x02,x00,xEC,x3C
                DEFB    x3E,x3C,xEC,x66,x3C,x36,x00,x00
                DEFB    x0D,x01,xBF,x00,x1C,x00,x00,x05
                DEFB    x18,x00,xF0,x00,x00,x14,x01,x80
                DEFB    x00,x00,x1E,x01,x80,x00,x00,x1E
                DEFB    x01,x80,x00,x00,x1E,x01,xF3,xFF
                DEFB    xF3,xFF,xFF,x02,x83,xE3,xC3,xFF
                DEFB    xFF,x14,xFE,x83,xD0,x3D,xFF,xFF
                DEFB    x1C,xFE,xFF,xDC,x05,x9B,x66,x7C
                DEFB    x3C,x60,x18,x3C,x66,x68,x00,x9D
                DEFB    x00,x18,x0C,x66,x66,x02,x00,x1B
                DEFB    x66,xC6,xC6,x02,x66,x66,x03,x60
                DEFB    x60,x02,x00,x18,x66,x66,x02,x60
                DEFB    x01,x99,x8C,x60,x76,x18,x66,x76
                DEFB    x61,x80,x00,x76,x66,x60,x66,x76
                DEFB    x66,x66,x02,x6E,x00,x00,x0D,x01
                DEFB    x99,x80,x0C,x00,x00,x05,x38,x01
                DEFB    x98,x00,x00,x14,x01,x80,x00,x00
                DEFB    x1E,x01,x8C,x30,xF8,x7E,x7E,x02
                DEFB    x00,x00,x1A,x01,x80,x00,x00,x03
                DEFB    x3C,xE0,x00,x00,x02,x10,x00,x38
                DEFB    x00,x00,x02,x10,x38,x00,x00,x10
                DEFB    x01,xE1,xFF,xFF,x04,xC9,xC9,x02
                DEFB    x99,x80,x00,x00,x13,x02,xBB,xD0
                DEFB    x3D,xFF,xFF,x20,x8E,x3C,x60,x18
                DEFB    xF0,x3C,xC6,xE6,x30,x00,x81,x00
                DEFB    x7E,x38,x3C,x3C,x02,x00,x0E,x3C
                DEFB    xC6,xC6,x02,x3C,x3B,x3C,xF0,x3C
                DEFB    x00,x7E,x66,x3C,x60,x01,x9F,x8C
                DEFB    x60,x66,x18,x66,x66,x02,x60,xF0
                DEFB    x00,x66,x7E,x3C,x7E,x66,x66,x02
                DEFB    x7E,x66,x00,x00,x0D,x01,x99,x87
                DEFB    x8C,x3C,x78,x3E,x3C,x00,x18,x00
                DEFB    x18,x00,x00,x14,x01,x80,x00,x00
                DEFB    x1E,x01,x9C,x18,x6C,x18,x33,x00
                DEFB    x00,x1A,x01,x80,x00,x00,x03,x66
                DEFB    x60,x00,x00,x02,x30,x00,x6C,x00
                DEFB    x00,x02,x30,x18,x00,x00,x10,x01
                DEFB    xE1,xCC,xE3,xE2,x43,xCC,x9C,x8F
                DEFB    x80,x00,x00,x13,x02,xA0,x50,x05
                DEFB    x80,x00,x00,x1E,x01,x80,x00,xF0
                DEFB    x70,x00,x00,x02,x7C,x00,x00,x03
                DEFB    x7E,x00,x00,x14,x01,xB0,xCC,x60
                DEFB    x60,x02,x18,x3C,x66,x68,x18,x00
                DEFB    x60,x60,x02,x06,x60,x60,x02,x3C
                DEFB    x60,x66,x30,x00,x00,x0C,x01,x9F
                DEFB    x0C,xCC,x66,x0C,x60,x66,x00,x18
                DEFB    x00,x70,x00,x00,x14,x01,x80,x00
                DEFB    x00,x1E,x01,x8C,x0C,x66,x18,x33
                DEFB    x00,x00,x1A,x01,x80,x00,x00,x03
                DEFB    xC0,x6C,x3C,x3E,x7C,x00,xC0,x78
                DEFB    x3E,x7C,x18,x3C,x00,x00,x0F,x01
                DEFB    xCC,xC4,x73,xCC,xF9,xCC,x9C,xC7
                DEFB    xFF,xFF,x14,xFE,xA0,x51,xF5,x8E
                DEFB    x00,x00,x04,x18,x00,xE0,x20,x00
                DEFB    x7E,x00,x18,x3C,x3C,x03,x00,x0E
                DEFB    x00,x00,x04,x0E,x00,x00,x04,x7E
                DEFB    x00,x00,x03,x01,x80,x00,x00,x1E
                DEFB    x01,xB0,xDE,xF0,xF0,x02,x3C,xC6
                DEFB    xE6,x31,xF0,x00,xF0,x3C,x7C,x3C
                DEFB    xF0,x18,x3C,x3B,x30,x00,x00,x0C
                DEFB    x01,x9B,x0F,xCC,x7E,x3C,x3C,x02
                DEFB    x7E,x00,x18,x00,xC0,x00,x00,x14
                DEFB    x01,x80,x00,x00,x1E,x01,x8C,x06
                DEFB    x66,x18,x3E,x00,x00,x1A,x01,x80
                DEFB    x00,x00,x03,xCE,x76,x66,x60,x30
                DEFB    x00,xC0,x0C,x60,x30,x18,x66,x00
                DEFB    x00,x0F,x01,xC0,xCA,x73,xCC,xE1
                DEFB    xCC,x9C,xF1,xFF,xFF,x14,xFE,xA0
                DEFB    x51,xF5,x9B,x00,x00,x06,x60,x60
                DEFB    x02,x00,x81,x00,x38,x66,x66,x03
                DEFB    x00,x1B,x00,x00,x04,x06,x00,x00
                DEFB    x04,x18,x00,x00,x03,x01,x80,x00
                DEFB    x00,x1E,x01,x80,x00,x00,x04,x7C
                DEFB    x00,x00,x19,x01,x99,x8C,x0C,x60
                DEFB    xCC,x06,x60,x00,x18,x31,x98,x00
                DEFB    x00,x14,x01,x80,x00,x00,x1E,x01
                DEFB    x8C,x0C,x66,x18,x36,x00,x00,x1A
                DEFB    x01,x80,x00,x00,x03,xC6,x66,x66
                DEFB    x02,x3C,x30,x00,xC0,x3C,x3C,x02
                DEFB    x30,x18,x7E,x00,x00,x0F,x01,x9E
                DEFB    x4E,x73,xE1,x99,xC9,xC9,x02,x99
                DEFB    x80,x00,x00,x13,x02,x80,x51,xF5
                DEFB    xB0,x3C,xDC,x66,xEC,x38,x3B,x6C
                DEFB    xF8,x00,x9D,x00,x18,x66,x66,x03
                DEFB    x00,x30,x3C,xCC,xCC,x02,x3C,x36
                DEFB    x3C,xEC,x3C,x00,x18,x7C,x3C,x00
                DEFB    x01,x86,x1C,xE0,x00,x18,x00,xE0
                DEFB    x20,x00,x00,x09,x0E,x00,x00,x0D
                DEFB    x01,x80,x00,x00,x1E,x01,xB8,xC7
                DEFB    x9E,x3C,x76,x7C,x3C,x00,x7E,x31
                DEFB    xF8,x00,x00,x14,x01,x80,x00,x00
                DEFB    x1E,x01,x8C,x18,x6C,x18,x33,x00
                DEFB    x00,x1A,x01,x80,x00,x00,x03,x66
                DEFB    x66,x03,x06,x34,x00,x6C,xCC,x06
                DEFB    x34,x18,x60,x00,x00,x0F,x01,x9E
                DEFB    x4E,x61,x9C,xC4,x83,xE3,xC3,x80
                DEFB    x00,x00,x13,x02,xE0,x5D,xF5,xB0
                DEFB    x66,x66,x03,x76,x18,x66,x76,x60
                DEFB    x00,xB1,x00,x18,x3E,x3C,x3C,x02
                DEFB    x00,x30,x66,xEE,xEE,x02,x66,x6E
                DEFB    x66,x76,x66,x00,x18,x66,x66,x02
                DEFB    x00,x01,x8F,x0C,x60,x00,x00,x03
                DEFB    x60,x60,x02,x00,x00,x09,x06,x00
                DEFB    x00,x0D,x01,x80,x00,x00,x1E,x01
                DEFB    x80,x00,x00,x1E,x01,x80,x00,x00
                DEFB    x1E,x01,xBF,x30,xF8,x7E,x71,x80
                DEFB    x00,x00,x19,x01,x80,x00,x00,x03
                DEFB    x3E,xE6,x3C,x7C,x18,x00,x38,x76
                DEFB    x7C,x18,x3C,x3C,x02,x00,x00,x0F
                DEFB    x01,x80,x00,x00,x1E,x01,x80,x00
                DEFB    x7E,x00,x00,x1C,x01,x80,x00,x00
                DEFB    x1E,x01,x80,x00,x00,x1E,x01,x80
                DEFB    x00,x00,x1E,x01,x80,x00,x00,x1E
                DEFB    x01,x80,x00,x00,x1E,x01,x80,x00
                DEFB    x00,x1E,x01,x80,x00,x00,x1E,x01
                DEFB    x8C,x30,x7E,x00,x00,x1C,x01,x80
                DEFB    x00,x00,x1E,x01,x80,x00,x00,x1E
                DEFB    x01,x80,x00,x00,x1E,x01,x80,x00
                DEFB    x00,x1E,x01,x80,x00,x00,x1E,x01
                DEFB    x80,x00,x00,x1E,x01,x80,x00,x00
                DEFB    x1E,x01,x9C,x18,x7E,x00,x00,x1C
                DEFB    x01,x80,x00,x00,x1E,x01,x80,x00
                DEFB    x00,x1E,x01,x80,x00,x00,x1E,x01
                DEFB    x80,x00,x00,x1E,x01,x80,x00,x00
                DEFB    x1E,x01,x80,x00,x00,x1E,x01,x80
                DEFB    x00,x00,x1E,x01,x8C,x0C,x7E,x00
                DEFB    x00,x1C,x01,x80,x00,x00,x1E,x01
                DEFB    x80,x00,x00,x1E,x01,x80,x00,x00
                DEFB    x1E,x01,x80,x00,x00,x1E,x01,x80
                DEFB    x00,x00,x1E,x01,x80,x00,x00,x1E
                DEFB    x01,x80,x00,x00,x1E,x01,x8C,x06
                DEFB    x7E,x00,x00,x1C,x01,x80,x00,x00
                DEFB    x1E,x01,x80,x00,x00,x1E,x01,x80
                DEFB    x00,x00,x1E,x01,x80,x00,x00,x1E
                DEFB    x01,x80,x00,x00,x1E,x01,x80,x00
                DEFB    x00,x1E,x01,x80,x00,x00,x1E,x01
                DEFB    x8C,x0C,x7E,x00,x00,x1C,x01,x80
                DEFB    x00,x00,x1E,x01,x80,x00,x00,x1E
                DEFB    x01,x80,x00,x00,x1E,x01,x80,x00
                DEFB    x00,x1E,x01,x80,x00,x00,x1E,x01
                DEFB    x80,x00,x00,x1E,x01,x80,x00,x00
                DEFB    x1E,x01,x8C,x18,x7E,x00,x00,x1C
                DEFB    x01,x80,x00,x00,x1E,x01,x80,x00
                DEFB    x00,x1E,x01,x80,x00,x00,x1E,x01
                DEFB    x80,x00,x00,x1E,x01,x80,x00,x00
                DEFB    x1E,x01,x80,x00,x00,x1E,x01,x80
                DEFB    x00,x00,x1E,x01,xBF,x30,x7E,x00
                DEFB    x00,x1C,x01,x80,x00,x00,x1E,x01
                DEFB    x80,x00,x00,x1E,x01,x80,x00,x00
                DEFB    x1E,x01,x80,x00,x00,x1E,x01,x80
                DEFB    x00,x00,x1E,x01,x80,x00,x00,x1E
                DEFB    x01,x80,x00,x00,x1E,x01,x80,x00
                DEFB    x00,x1E,x01,x80,x00,x00,x1E,x01
                DEFB    x80,x00,x00,x1E,x01,x80,x00,x00
                DEFB    x1E,x01,x80,x00,x00,x1E,xFF,x00
                DEFB    x00,x40,x80,x00,x00,x1E,x01,x80
                DEFB    x00,x00,x1E,x01,x80,x00,x00,x1E
                DEFB    x01,x80,x00,x00,x1E,x01,x80,x00
                DEFB    x00,x1E,x01,x80,x00,x00,x1E,x8F
                DEFB    x00,x00,x40,x80,x00,x00,x1E,x01
                DEFB    x80,x00,x00,x1E,x01,x80,x00,x00
                DEFB    x1E,x01,x80,x00,x00,x1E,x01,x80
                DEFB    x00,x00,x1E,x01,x80,x00,x00,x1E
                DEFB    xAF,x00,x00,x40,x80,x00,x00,x1E
                DEFB    x01,x80,x00,x00,x1E,x01,x80,x00
                DEFB    x00,x1E,x01,x80,x00,x00,x1E,x01
                DEFB    x80,x00,x00,x1E,x01,x80,x00,x00
                DEFB    x1E,x81,x00,x00,x40,x80,x00,x00
                DEFB    x1E,x01,x80,x00,x00,x1E,x01,x80
                DEFB    x00,x00,x1E,x01,x80,x00,x00,x1E
                DEFB    x01,x80,x00,x00,x1E,x01,x80,x00
                DEFB    x00,x1E,xED,x00,x00,x40,x80,x00
                DEFB    x00,x1E,x01,x80,x00,x00,x1E,x01
                DEFB    x80,x00,x00,x1E,x01,x80,x00,x00
                DEFB    x1E,x01,x80,x00,x00,x1E,x01,x80
                DEFB    x00,x00,x1E,xED,x00,x00,x40,x80
                DEFB    x00,x00,x1E,x01,x80,x00,x00,x1E
                DEFB    x01,x80,x00,x00,x1E,x01,x80,x00
                DEFB    x00,x1E,x01,x80,x00,x00,x1E,x01
                DEFB    x80,x00,x00,x1E,xE1,x00,x00,x40
                DEFB    x80,x00,x00,x1E,x01,x80,x00,x00
                DEFB    x1E,x01,x80,x00,x00,x1E,x01,x80
                DEFB    x00,x00,x1E,x01,x80,x00,x00,x1E
                DEFB    x01,xFF,xFF,x20,x00,x00,x40,x0F
                DEFB    x0F,xFF,x0F,x0F,xFF,x0F,x0F,xFF
                DEFB    x0F,x0F

;-----------------------------------------------------------------------------
; Crunch
;-----------------------------------------------------------------------------

                ORG     27186

Crunch:         ld      hl,16384                        ; source
                ld      bc,6912                         ; screen size
                ld      ix,40000                        ; destination
cr.Loop:        ld      a,(hl)                          ; read source
                ld      e,a
                dec     bc
                ld      a,b                             ; end ?
                or      c
                jr      z,cr.OK
                ld      a,e
                inc     hl
                cp      (hl)                            ; same ?
                jr      z,cr.Same
                ld      (ix+0),a                        ; write destination
                inc     ix
                jr      cr.Loop
cr.Same:        ld      (ix+0),a                        ; write 2 times
                inc     ix
                ld      (ix+0),a
                inc     ix
                ld      d,2                             ; counter start at 2
cr.SameCount:   ld      a,(hl)                          ; read source
                ld      e,a
                inc     hl
                dec     bc
                ld      a,b                             ; end ?
                or      c
                jr      z,cr.OK
                ld      a,e
                cp      (hl)                            ; same ?
                jr      nz,cr.SameEnd
                inc     d
                ld      a,d
                cp      xff                             ; counter = 255 ?
                jr      z,cr.SameOver
                jr      cr.SameCount
cr.SameEnd:     ld      (ix+0),d
                inc     ix
                jr      cr.Loop
cr.SameOver:    inc     hl
                dec     bc
                ld      a,b
                or      c
                jr      z,cr.OK
                jr      cr.SameEnd
cr.OK:          scf
                ccf
                ld      bc,x9c40                        ; calculate size
                push    ix
                pop     hl
                sbc     hl,bc
                push    hl
                pop     bc                              ; size in bc
                ret

;-----------------------------------------------------------------------------
; Decrunch
;-----------------------------------------------------------------------------

                ORG     27275

Decrunch:       ld      hl,16384                        ; destination
                ld      ix,dat.AmigaScr                 ; source
                ld      bc,6912                         ; screen size
de.Loop:        ld      a,(ix+0)                        ; read source
                ld      e,a
                inc     ix
                cp      (ix+0)                          ; same ?
                jr      z,de.Same
                ld      (hl),a                          ; write destination
                inc     hl
                dec     bc
                ld      a,b                             ; end ?
                or      c
                jr      nz,de.Loop
                ret
de.Same:        inc     ix                              ; read count
                ld      d,(ix+0)
de.Fill:        ld      (hl),e                          ; fill
                inc     hl
                dec     bc
                ld      a,b                             ; end ?
                or      c
                ret     z
                dec     d
                jr      nz,de.Fill
                inc     ix
                jr      de.Loop

;-----------------------------------------------------------------------------
; AmigaScreen
;-----------------------------------------------------------------------------

                ORG     27326

AmigaScreen:    call    Decrunch                        ; decrunch screen
as.Loop:        ld      a,1
                out     (xfe),a                         ; border blue
                ld      a,xfe                           ; read keyboard
                in      a,(xfe)
                and     x1f
                cp      x0f                             ; 'V' pressed ?
                jr      nz,as.NoSave
                ld      a,xfd
                in      a,(xfe)
                and     x1f
                cp      x1c                             ; 'A','S' pressed ?
                jr      nz,as.NoSave
                ld      a,xfb
                in      a,(xfe)
                and     x1f
                cp      x1b                             ; 'E' pressed ?
                jr      nz,as.NoSave
                call    x7436
as.NoSave:      ld      a,xbf
                in      a,(xfe)
                and     x1f
                cp      x1e
                jp      nz,as.Loop
                call    DrawRoom
                ret

;------------------------------------------------------------------------------
; Save
;------------------------------------------------------------------------------

                ORG     29750

Save:           ld      a,x00
                ld      (xfc3c),a
                ld      a,x5b
                ld      (xfc3d),a
                scf                                     ; load screen
                ld      a,xff
                ld      hl,16384
                ld      de,5016
                call    LD_BYTES                        ; LD-BYTES
sa.Space:       ld      a,x7f
                in      a,(xfe)
                and     x1f
                cp      x1e                             ; SPACE pressed ?
                jr      nz,sa.Space
                scf                                     ; save basic header
                ld      a,x00
                ld      hl,dat.BasicHead
                ld      de,17
                call    SA_BYTES                        ; SA-BYTES
                ld      b,20                            ; wait some time
sa.Wait1:       halt
                djnz    sa.Wait1
                scf                                     ; save basic program
                ld      a,xff
                ld      hl,23755
                ld      de,595
                call    SA_BYTES                        ; SA-BYTES
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                ld      b,40                            ; wait some time
sa.Wait2:       halt
                djnz    sa.Wait2
                scf                                     ; save screen
                ld      a,xff
                ld      hl,16384
                ld      de,5016
                call    SA_BYTES                        ; SA-BYTES
                nop
                nop
                nop
                nop
                nop
                nop
                ld      b,40                            ; wait some time
sa.Wait3:       halt
                djnz    sa.Wait3
                scf                                     ; save main program
                ld      a,xff
                ld      hl,23296
                ld      de,40868
                jp      SA_BYTES                        ; SA-BYTES

;------------------------------------------------------------------------------
; BasicHeader
;------------------------------------------------------------------------------

                ORG     29892

dat.BasicHead:  DEFB    0                               ; type basic program
                DEFB    22,1,0                          ; name AT 1,0
                DEFM    'CASTLE '
                DEFB    x53,x02                         ; length
                DEFB    x01,x00                         ; start at line 1
                DEFB    x53,x02                         ; total length

;-----------------------------------------------------------------------------
; Variables
;-----------------------------------------------------------------------------

                ORG     29998

Lives:          DEFB    3

;-----------------------------------------------------------------------------
; DrawImage
;-----------------------------------------------------------------------------

                ORG     30000

DrawImage:      ld      a,(ImageHeight)                 ; height in char
                ld      (ImageHStore),a                 ; store
                add     a,a
                add     a,a
                add     a,a
                ld      (ImageHeight),a                 ; number of lines
                call    ImageCoords                     ; ImageCoords
di.Lines:       push    bc                              ; store coordinates
                call    PIXEL_ADD                       ; PIXEL-ADD
                ex      de,hl
                ld      hl,(ImageData)                  ; copy one line
                ld      b,0
                ld      a,(ImageWidth)
                ld      c,a
                ldir
                add     hl,bc                           ; next data line
                ld      (ImageData),hl
                pop     bc                              ; restore coordinates
                dec     b                               ; one line up
                ld      a,(ImageHeight)
                cp      0                               ; more lines ?
                dec     a
                ld      (ImageHeight),a
                jr      nz,di.Lines
                ld      h,0                             ; set attributes
                ld      a,(ImageY)
                ld      l,a
                add     hl,hl
                add     hl,hl
                add     hl,hl
                add     hl,hl
                add     hl,hl                           ; ypos*32
                ld      a,(ImageX)
                ld      d,0
                ld      e,a
                add     hl,de                           ; ypos*32+xpos
                ld      de,22528
                add     hl,de                           ; ypos*32+xpos+22528
                ex      de,hl
di.Attr:        ld      hl,(ImageData)                  ; data address
                ld      b,0
                ld      a,(ImageWidth)                  ; width
                ld      c,a
                push    de
                ldir                                    ; copy one
                pop     de                              ; attribute line
                push    hl
                push    de
                pop     hl
                ld      de,32                           ; next attribute
                add     hl,de                           ; line's address
                ex      de,hl
                pop     hl
                ld      (ImageData),hl                  ; store data address
                ld      a,(ImageHStore)
                cp      0                               ; more attribute
                dec     a                               ; lines ?
                ld      (ImageHStore),a
                jr      nz,di.Attr
                ret

;-----------------------------------------------------------------------------
; ClearImage
;-----------------------------------------------------------------------------

                ORG     30110

ClearImage:     ld      a,(ImageHeight)                 ; height
                push    af                              ; store
                ld      a,(ImageY)                      ; ypos
                ld      h,0
                ld      l,a
                add     hl,hl
                add     hl,hl
                add     hl,hl
                add     hl,hl
                add     hl,hl                           ; ypos*32
                ld      a,(ImageX)
                ld      d,0
                ld      e,a
                add     hl,de                           ; ypos*32+xpos
                ld      de,22528
                add     hl,de                           ; ypos*32+xpos+22528
ci.AttrLoop:    push    hl
                ld      a,(ImageWidth)                  ; width
                ld      b,a
ci.AttrLine:    ld      a,(ImageClrAttr)
                ld      (hl),a
                inc     hl
                djnz    ci.AttrLine
                pop     hl
                ld      de,32                           ; next line
                add     hl,de
                ld      a,(ImageHeight)
                dec     a
                ld      (ImageHeight),a
                cp      0                               ; more lines ?
                jr      nz,ci.AttrLoop
                pop     af                              ; restore height
                ld      (ImageHeight),a
                nop
                nop
                ld      a,(ImageHeight)
                add     a,a
                add     a,a
                rlca                                    ; height*8
                ld      (ImageHStore),a                 ; store number of lines
                call    ImageCoords                     ; ImageCoords
ci.Loop:        push    bc                              ; store coordinates
                call    PIXEL_ADD                       ; PIXEL-ADD
                ld      a,(ImageWidth)                  ; width
                ld      b,a
                ld      c,0
                ld      a,0
ci.Line:        ld      (hl),a                          ; clear line
                inc     hl
                djnz    ci.Line
                pop     bc                              ; restore coordinates
                dec     b
                ld      a,(ImageHStore)
                dec     a
                ld      (ImageHStore),a
                cp      0                               ; more lines ?
                jr      nz,ci.Loop
                ret

;-----------------------------------------------------------------------------
; ImageCoords
;-----------------------------------------------------------------------------

                ORG     30212

ImageCoords:    ld      a,(ImageY)
                ld      b,a
                ld      a,22
                sub     b
                add     a,a
                add     a,a
                add     a,a
                dec     a
                ld      b,a                             ; (22-ypos)*8-1
                ld      a,(ImageX)
                add     a,a
                add     a,a
                add     a,a
                ld      c,a                             ; 8*xpos
                ret

;-----------------------------------------------------------------------------
; Variables
;-----------------------------------------------------------------------------

                ORG     30396

NextDisk:       DEFB    0
DiskPrinted:    DEFB    0
CurrentDisk:    DEFB    0
RoomNumber:     DEFB    1

;-----------------------------------------------------------------------------
; DrawRoom
;-----------------------------------------------------------------------------

                ORG     30400

DrawRoom:       call    CLS                             ; CLS
                ld      a,0                             ; border 0
                out     (xfe),a
                ld      a,(RoomNumber)                  ; get RoomNumber
                ld      b,a
                cp      121                             ; < 121 ?
                jr      c,dr.Less
                ld      hl,x5e56                        ; room prg 121..240
                jr      dr.OK
dr.Less:        ld      hl,prg.Room.1-50                ; room prg 1..120
dr.OK:          ld      de,50                           ; one room's data size
dr.Mul:         add     hl,de
                djnz    dr.Mul                          ; get the address
                ld      (dr.Call+1),hl
dr.Call:        call    prg.Room.1                      ; room program
                ld      a,0
                ld      (dm.Dir),a
                call    mm.Draw                         ; draw man
                call    ShowCurrDisk                    ; show current disk
                call    InitEnemy                       ; init enemy
                nop
                nop
                nop
                ret

;-----------------------------------------------------------------------------
; ShowCurrDisk
;-----------------------------------------------------------------------------

                ORG     30454

ShowCurrDisk:   ld      a,(CurrentDisk)                 ; have I got a disk ?
                cp      0
                jr      z,sc.NoDisk
ShowCurrDisk2:  ld      hl,x0115
                ld      (ImagePos),hl                   ; x=1,y=21
                ld      hl,x0101
                ld      (ImageSize),hl                  ; width=1,height=1
                ld      hl,img.Disk
                ld      (ImageData),hl
                call    DrawImage                       ; DrawImage
                ld      hl,x0015
                ld      (ImagePos),hl                   ; x=0,y=21
                ld      hl,x0101
                ld      (ImageSize),hl                  ; width=1,height=1
                ld      a,(CurrentDisk)
                add     a,a
                add     a,a
                add     a,a
                ld      d,0
                ld      e,a
                ld      hl,dat.HandChars+48*8           ; number data
                add     hl,de
                ld      (ImageData),hl
                call    DrawImage                       ; DrawImage
                ld      a,4
                ld      (x5aa0),a
sc.NoDisk:      ret

;-----------------------------------------------------------------------------
; InitEnemy
;-----------------------------------------------------------------------------

                ORG     30519

InitEnemy:      ld      a,(RoomNumber)                  ; get RoomNumber
                ld      e,a
                ld      d,0
                ld      hl,0
                add     hl,de
                add     hl,hl
                add     hl,hl
                ld      de,xacfc
                add     hl,de                           ; RoomNumber*4+44284
                ld      e,(hl)
                inc     hl
                ld      d,(hl)
                ex      de,hl
                ld      (EnemyPos),hl
                ex      de,hl
                inc     hl
                push    hl
                ld      a,(hl)
                cp      1
                jr      nz,im.VertMove
                ld      hl,x0100                        ; dx = 1; dy = 0;
                jr      im.DeltaOK
im.VertMove:    ld      hl,x0001                        ; dx = 0; dy = 1;
im.DeltaOK:     ld      (Enemydelta),hl
                pop     hl
                inc     hl
                ld      a,(hl)                          ; enemy type
                cp      0                               ; ghost ?
                jr      nz,im.NoGhost
                ld      hl,img.Ghost1
                jr      im.SetEnemy
im.NoGhost:     cp      1                               ; bug ?
                jr      nz,im.NoBug
                ld      hl,img.Bug1
                jr      im.SetEnemy
im.NoBug:       cp      2                               ; head ?
                jr      nz,im.NoHead
                ld      hl,img.Head1
                jr      im.SetEnemy
im.NoHead:      cp      3                               ; devil ?
                jr      nz,im.NoDevil
                ld      hl,img.Devil1
                jr      im.SetEnemy
im.NoDevil:     cp      4                               ; car ?
                jr      nz,im.NoCar
                ld      hl,img.Car1
                jr      im.SetEnemy
im.NoCar:       cp      5                               ; medusa ?
                jr      nz,im.EnemyOK
                ld      hl,img.Medusa1
im.SetEnemy:    ld      (xa38a),hl
                ld      a,l
                ld      (xa3aa),a
                ld      (xa3b2),a
                add     a,54
                ld      (xa3ae),a
im.EnemyOK:     ret

;-----------------------------------------------------------------------------
; SoundEffect
;-----------------------------------------------------------------------------

                ORG     30660

SoundEffect0:   ld      a,x1d
                ld      (so.Type),a                     ; so.Type = dec e
                nop
                nop
                nop
                nop
                nop
SoundEffect1:   ld      de,xff50
so.Loop1:       ld      h,8
                ld      a,(x5c48)
                rra
                rra
                rra
so.Loop2:       ld      c,xfe
                xor     x10
                out     (c),a
                ld      b,e
so.Wait:        djnz    so.Wait
                dec     h
                jr      nz,so.Loop2
so.Type:        inc     e
                dec     d
                jr      nz,so.Loop1
                ret

;-----------------------------------------------------------------------------
; Selection
;-----------------------------------------------------------------------------

                ORG     30700

Selection:      ld      b,72
se.Wait:        halt
                djnz    se.Wait
                nop
                nop
                nop
                ld      a,x1c
                ld      (so.Type),a                     ; so.Type = inc e
                call    SoundEffect1
                ld      hl,x0404                        ; image informations
                ld      (ImagePos),hl
                ld      hl,x030e
                ld      (ImageSize),hl
                ld      hl,xd4ba
                ld      (ImageData),hl
                call    DrawImage
                ld      a,x1d
                ld      (so.Type),a                     ; so.Type = dec e
                call    SoundEffect1
                ld      hl,x120a                        ; image continue
                ld      (ImagePos),hl
                ld      hl,x030a
                ld      (ImageSize),hl
                ld      hl,xd634
                ld      (ImageData),hl
                call    DrawImage
                ld      b,36                            ; wait some time
se.Wait2:       halt
                djnz    se.Wait2
se.Wait3:       call    Music                           ; music
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                ld      a,xfe                           ; read keyborad
                in      a,(xfe)
                and     x1f
                cp      x17                             ; 'C' pressed ?
                jr      nz,se.NoC
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                ret
se.NoC:         ld      a,xdf                           ; read keyborad
                in      a,(xfe)
                and     x1f
                cp      x1b                             ; 'I' pressed ?
                jp      z,Information
                jr      se.Wait3                        ; go back

;-----------------------------------------------------------------------------
; SoundEffect2
;-----------------------------------------------------------------------------

                ORG     30840

SoundEffect2:   ld      a,(x5c48)
                rra
                rra
                rra
                ld      b,x78
                ld      c,xfe
s2.Loop1:       dec     h
                jr      nz,s2.Loop2
                xor     x10
                out     (c),a
                ld      h,x3c
s2.Loop2:       dec     l
                jr      nz,s2.Loop1
                xor     x10
                out     (c),a
                ld      l,x78
                djnz    s2.Loop1
                ret

;-----------------------------------------------------------------------------
; DrawWitch1
;-----------------------------------------------------------------------------

                ORG     30880

DrawWitch1:     ld      hl,x1a04
                ld      (ImagePos),hl
                ld      hl,x0202
                ld      (ImageSize),hl
                ld      hl,img.Witch1
                ld      (ImageData),hl
                call    DrawImage
                ret

;-----------------------------------------------------------------------------
; DrawWitch4
;-----------------------------------------------------------------------------

                ORG     30910

DrawWitch4:     ld      hl,x1a04
                ld      (ImagePos),hl
                ld      hl,x0202
                ld      (ImageSize),hl
                ld      hl,img.Witch4
                ld      (ImageData),hl
                call    DrawImage
                ret

;-----------------------------------------------------------------------------
; DrawHiFi
;-----------------------------------------------------------------------------

                ORG     30940

DrawHiFi:       ld      (ImagePos),hl
                ld      hl,x0503
                ld      (ImageSize),hl
                ld      hl,img.HiFi
                ld      (ImageData),hl
                call    DrawImage
                ret

;-----------------------------------------------------------------------------
; FillReady
;-----------------------------------------------------------------------------

                ORG     31000

FillReady:      ld      b,72                            ; wait some time
fr.Wait:        halt
                djnz    fr.Wait
                ld      a,36
                ld      (x787f),a
                ld      hl,dat.ReadyPos                 ; positions data
                ld      b,22                            ; 22 images
fr.Loop:        push    bc
                ld      a,(hl)
                ld      e,a
                inc     hl
                push    hl
                ld      a,(hl)
                ld      d,a
                ex      de,hl
                ld      (ImagePos),hl
                ld      hl,x0208
                ld      (ImageSize),hl
                ld      hl,img.Ready2                   ; image ready 2
                ld      (ImageData),hl
                call    DrawImage
                pop     hl
                inc     hl
                ld      a,(hl)
                ld      e,a
                inc     hl
                ld      a,(hl)
                inc     hl
                push    hl
                ld      d,a
                ex      de,hl
                ld      (ImagePos),hl
                ld      hl,x0208
                ld      (ImageSize),hl
                ld      hl,img.Ready2                   ; image ready 2
                ld      (ImageData),hl
                call    DrawImage
                call    SoundEffect2
                pop     hl
                pop     bc
                djnz    fr.Loop
                ld      a,x78
                ld      (x787f),a
                ld      b,1
fr.Wait2:       halt
                djnz    fr.Wait2
                nop
                nop
                nop
                ld      hl,x040e
                ld      (ImagePos),hl
                ld      hl,x050b
                ld      (ImageSize),hl
                ld      hl,img.Readysoft                ; image ready soft
                ld      (ImageData),hl
                call    DrawImage
                ret

;-----------------------------------------------------------------------------
; CannotKill
;-----------------------------------------------------------------------------

                ORG     31120

CannotKill:     ld      a,2
                call    CHAN_OPEN                       ; CHAN-OPEN
                nop
                nop
                nop
                nop
                nop
                ld      a,22                            ; AT 21,0
                rst     16
                ld      a,21
                rst     16
                ld      a,0
                rst     16
                ld      a,16                            ; INK 5
                rst     16
                ld      a,5
                rst     16
                ld      de,str.CannotKill
                ld      bc,31
                call    PR_STRING
                jp      ma.Continue

;-----------------------------------------------------------------------------
; CannotKill String
;-----------------------------------------------------------------------------

                ORG     31158

str.CannotKill: DEFM    ' You cannot kill the Witch now.'

;-----------------------------------------------------------------------------
; GotALife
;-----------------------------------------------------------------------------

                ORG     31200

GotALife:       ld      b,18                            ; wait some time
ga.Wait:        halt
                djnz    ga.Wait
                ld      a,x1c
                ld      (so.Type),a                     ; so.Type = inc e
                call    SoundEffect1
                ld      a,2
                call    CHAN_OPEN                       ; CHAN-OPEN
                ld      a,22                            ; AT 21,0
                rst     16
                ld      a,21
                rst     16
                ld      a,0
                rst     16
                ld      a,16                            ; INK 3
                rst     16
                ld      a,3
                rst     16
                ld      de,str.GotALife
                ld      bc,32
                call    PR_STRING
                ld      hl,Lives                        ; one more lives
                inc     (hl)
                ret

;-----------------------------------------------------------------------------
; GotALife String
;-----------------------------------------------------------------------------

                ORG     31250

str.GotALife:   DEFM    '       You  got  a  life.        '

;-----------------------------------------------------------------------------
; Start Game
;-----------------------------------------------------------------------------

                ORG     32600

StartGame:      ld      a,0
                ld      (x5c8d),a
                ld      (x5c48),a
                ld      (DiskPrinted),a
                ld      (CurrentDisk),a
                nop
                nop
                nop
                nop
                nop
                nop
                ld      a,1                             ; start at Room 1
                ld      (RoomNumber),a
                call    DrawRoom                        ; DrawRoom
                ld      a,33
                ld      (x8875),a                       ; restore draw disk
                ld      (x87ad),a                       ; statements in
                ld      (x98ab),a                       ; room programs
                ld      (x99dd),a
                ld      (x8d2b),a
                ld      (x9a73),a
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                jp      MainLoop

;-----------------------------------------------------------------------------
; Open Door Data Buffer
;-----------------------------------------------------------------------------

                ORG     32736

dat.DoorBuffer: DEFS    32

;-----------------------------------------------------------------------------
; Start Program
;-----------------------------------------------------------------------------

                ORG     32768

StartProgram:   ld      b,10                            ; wait some time
st.Wait:        push    bc
                halt
                nop
                nop
                nop
                nop
                nop
                pop     bc
                djnz    st.Wait

;-----------------------------------------------------------------------------
; OpenDoor
;-----------------------------------------------------------------------------
                ld      b,7                             ; 7 door phases
                push    bc
                ld      hl,dat.DoorLeft1
                push    hl
st.OpenLoop:    pop     hl                              ; copy current
                push    hl                              ; door phase
                ld      de,dat.DoorBuffer
                ld      bc,32
                ldir
                ld      a,2
                call    CHAN_OPEN                       ; CHAN-OPEN
                ld      a,22                            ; AT 14,6
                rst     16
                ld      a,14
                rst     16
                ld      a,6
                rst     16
                ld      a,16                            ; INK 6
                rst     16
                ld      a,6
                rst     16
                ld      a,17                            ; PAPER 1
                rst     16
                ld      a,1
                rst     16
                ld      de,xe3cc                        ; two spaces
                ld      bc,2
                call    PR_STRING                       ; PR-STRING
                ld      a,2
                call    CHAN_OPEN                       ; CHAN-OPEN
                ld      a,22                            ; AT 15,6
                rst     16
                ld      a,15
                rst     16
                ld      a,6
                rst     16
                ld      a,16                            ; INK 6
                rst     16
                ld      a,6
                rst     16
                ld      a,17                            ; PAPER 1
                rst     16
                ld      a,1
                rst     16
                ld      de,xe3cc                        ; two spaces
                ld      bc,2
                call    PR_STRING                       ; PR-STRING
                ld      hl,dat.DoorBuffer               ; draw door, left side
                ld      b,16                            ; 16 lines
st.DoorLeft:    ld      c,8                             ; 8 pixel per line
                ld      d,(hl)                          ; get data byte
st.DoorLPix:    sla     d                               ; msb to carry
                jr      c,st.DoorLSet                   ; bit set ?
st.DoorLNext:   dec     c
                jr      nz,st.DoorLPix                  ; next pixel ?
                inc     hl
                djnz    st.DoorLeft                     ; next line ?
                jr      st.DoorLOK
st.DoorLSet:    push    af
                push    bc
                push    de
                push    hl
                ld      hl,x2f32                        ; x=47,y=50
                ld      a,6
                sub     c
                add     a,l
                ld      c,a                             ; x=6-bit+50
                ld      a,b
                add     a,h
                ld      b,a                             ; y=line+47
                call    PLOT_SUB                        ; PLOT-SUB
                pop     hl
                pop     de
                pop     bc
                pop     af
                jr      st.DoorLNext                    ; next pixel
st.DoorLOK:     ld      hl,dat.DoorBuffer+16            ; draw door, right side
                ld      b,16                            ; 16 lines
st.DoorRight:   ld      c,8                             ; 8 pixel per line
                ld      d,(hl)                          ; get data byte
st.DoorRPix:    sla     d                               ; msb to carry
                jr      c,st.DoorRSet                   ; bit set ?
st.DoorRNext:   dec     c
                jr      nz,st.DoorRPix                  ; next pixel ?
                inc     hl
                djnz    st.DoorRight                    ; next line ?
                jr      st.DoorROK
st.DoorRSet:    push    af
                push    bc
                push    de
                push    hl
                ld      hl,x2f3a                        ; x=47,y=58
                ld      a,6
                sub     c
                add     a,l
                ld      c,a                             ; x=6-bit+58
                ld      a,b
                add     a,h
                ld      b,a                             ; y=line+47
                call    PLOT_SUB                        ; PLOT-SUB
                pop     hl
                pop     de
                pop     bc
                pop     af
                jr      st.DoorRNext                    ; next pixel
st.DoorROK:     ld      de,3                            ; door open sound
                ld      hl,5120
                call    BEEPER                          ; BEEPER
                ld      de,3
                ld      hl,2560
                call    BEEPER                          ; BEEPER
                ld      de,3
                ld      hl,10240
                call    BEEPER                          ; BEEPER
                pop     hl
                ld      de,32                           ; next door phase data
                add     hl,de
                pop     bc
                dec     b
                push    bc
                push    hl
                ld      a,0                             ; door opened ?
                cp      b
                jp      nz,st.OpenLoop
                pop     hl
                pop     bc
                nop

;-----------------------------------------------------------------------------
; ControlText
;-----------------------------------------------------------------------------
ControlText:    ld      hl,dat.HandChars                ; Handwrite charset
                ld      (CHARS),hl                      ; set CHARS variable
                jr      ct.Go
ct.Restart:     call    FillReady
                nop
ct.Go:          call    Selection                       ; Selection
                call    CLS                             ; CLS
                ld      bc,0
                push    bc
ct.Loop:        ld      a,7                             ; next color OK ?
                pop     bc
                cp      b
                jr      nz,ct.ColorOK1
                ld      b,0
ct.ColorOK1:    push    bc
                ld      a,2
                call    CHAN_OPEN                       ; CHAN-OPEN
                ld      a,16                            ; INK b
                rst     16
                pop     bc
                ld      a,b
                inc     b
                push    bc
                rst     16
                ld      a,22                            ; AT 1,9
                rst     16
                ld      a,1
                rst     16
                ld      a,9
                rst     16
                ld      de,txt.Castle                   ; GHOST   CASTLE
                ld      bc,14
                call    PR_STRING                       ; PR-STRING
                ld      a,7                             ; next color OK ?
                pop     bc
                cp      b
                jr      nz,ct.ColorOK2
                ld      b,0
ct.ColorOK2:    push    bc
                ld      a,2
                call    CHAN_OPEN                       ; CHAN-OPEN
                ld      a,16                            ; INK b
                rst     16
                pop     bc
                ld      a,b
                inc     b
                push    bc
                rst     16
                ld      a,22                            ; AT 4,13
                rst     16
                ld      a,4
                rst     16
                ld      a,13
                rst     16
                ld      de,txt.Keys                     ; Keys :
                ld      bc,6
                call    PR_STRING                       ; PR-STRING
                ld      a,7                             ; next color OK ?
                pop     bc
                cp      b
                jr      nz,ct.ColorOK3
                ld      b,0
ct.ColorOK3:    push    bc
                ld      a,2
                call    CHAN_OPEN                       ; CHAN-OPEN
                ld      a,16                            ; INK b
                rst     16
                pop     bc
                ld      a,b
                inc     b
                push    bc
                rst     16
                ld      a,22                            ; AT 6,10
                rst     16
                ld      a,6
                rst     16
                ld      a,10
                rst     16
                ld      de,txt.O.Left                   ; O.......Left
                ld      bc,12
                call    PR_STRING                       ; PR-STRING
                ld      a,7                             ; next color OK ?
                pop     bc
                cp      b
                jr      nz,ct.ColorOK4
                ld      b,0
ct.ColorOK4:    push    bc
                ld      a,2
                call    CHAN_OPEN                       ; CHAN-OPEN
                ld      a,16                            ; INK b
                rst     16
                pop     bc
                ld      a,b
                inc     b
                push    bc
                rst     16
                ld      a,22                            ; AT 8,10
                rst     16
                ld      a,8
                rst     16
                ld      a,10
                rst     16
                ld      de,txt.P.Right                  ; P......Right
                ld      bc,12
                call    PR_STRING                       ; PR-STRING
                ld      a,7                             ; next color OK ?
                pop     bc
                cp      b
                jr      nz,ct.ColorOK5
                ld      b,0
ct.ColorOK5:    push    bc
                ld      a,2
                call    CHAN_OPEN                       ; CHAN-OPEN
                ld      a,16                            ; INK b
                rst     16
                pop     bc
                ld      a,b
                inc     b
                push    bc
                rst     16
                ld      a,22                            ; AT 10,10
                rst     16
                ld      a,10
                rst     16
                ld      a,10
                rst     16
                ld      de,txt.M.Jump                   ; M.......Jump
                ld      bc,12
                call    PR_STRING                       ; PR-STRING
                ld      a,7                             ; next color OK ?
                pop     bc
                cp      b
                jr      nz,ct.ColorOK6
                ld      b,0
ct.ColorOK6:    push    bc
                ld      a,2
                call    CHAN_OPEN                       ; CHAN-OPEN
                ld      a,16                            ; INK b
                rst     16
                pop     bc
                ld      a,b
                inc     b
                push    bc
                rst     16
                ld      a,22                            ; AT 12,10
                rst     16
                ld      a,12
                rst     16
                ld      a,10
                rst     16
                ld      de,txt.I.Info                   ; I.......Info
                ld      bc,12
                call    PR_STRING                       ; PR-STRING
                ld      a,7                             ; next color OK ?
                pop     bc
                cp      b
                jr      nz,ct.ColorOK7
                ld      b,0
ct.ColorOK7:    push    bc
                ld      a,2
                call    CHAN_OPEN                       ; CHAN-OPEN
                ld      a,16                            ; INK b
                rst     16
                pop     bc
                ld      a,b
                inc     b
                push    bc
                rst     16
                ld      a,22                            ; AT 14,10
                rst     16
                ld      a,14
                rst     16
                ld      a,10
                rst     16
                ld      de,txt.H.Hold                   ; H.......Hold
                ld      bc,12
                call    PR_STRING                       ; PR-STRING
                ld      a,7                             ; next color OK ?
                pop     bc
                cp      b
                jr      nz,ct.ColorOK8
                ld      b,0
ct.ColorOK8:    push    bc
                ld      a,2
                call    CHAN_OPEN                       ; CHAN-OPEN
                ld      a,16                            ; INK b
                rst     16
                pop     bc
                ld      a,b
                inc     b
                push    bc
                rst     16
                ld      a,22                            ; AT 17,8
                rst     16
                ld      a,17
                rst     16
                ld      a,8
                rst     16
                ld      de,txt.C1988                    ; C 1988 READYSOFT
                ld      bc,16
                call    PR_STRING                       ; PR-STRING
                ld      a,7                             ; next color OK ?
                pop     bc
                cp      b
                jr      nz,ct.ColorOK9
                ld      b,0
ct.ColorOK9:    push    bc
                ld      a,2
                call    CHAN_OPEN                       ; CHAN-OPEN
                ld      a,16                            ; INK b
                rst     16
                pop     bc
                ld      a,b
                inc     b
                push    bc
                rst     16
                ld      a,22                            ; AT 20,6
                rst     16
                ld      a,20
                rst     16
                ld      a,6
                rst     16
                ld      de,txt.Enter                    ; Press ENTER to start
                ld      bc,20
                call    PR_STRING                       ; PR-STRING
                ld      a,xbf
                in      a,(xfe)                         ; read keyboard
                and     x1f
                cp      x1e                             ; enter pressed ?
                jp      nz,ct.Loop
                pop     bc
                call    CLS                             ; CLS
                jp      StartGame                       ; jump to

;-----------------------------------------------------------------------------
; DrawIsle
;-----------------------------------------------------------------------------

                ORG     33400

DrawIsle:       ld      hl,img.Brick1
                jr      is.Do

;-----------------------------------------------------------------------------
; DrawIsle2
;-----------------------------------------------------------------------------
DrawIsle2:      ld      hl,img.Brick2
is.Do:          ld      (is.Data+1),hl
                ld      a,2
                ld      (ImageWidth),a                  ; width=2
is.Times:       ld      b,4                             ; 4 times
is.Loop:        push    bc
is.Data:        ld      hl,img.Brick2                   ; hl stored here
                ld      (ImageData),hl                  ; data addr=hl
                ld      a,1
                ld      (ImageHeight),a                 ; height=1
                call    DrawImage                       ; DrawImage
                ld      a,(ImageX)
                inc     a
                inc     a
                ld      (ImageX),a                      ; xpos=xpos+2
                pop     bc
                djnz    is.Loop                         ; more ?
                ret

;-----------------------------------------------------------------------------
; DrawTop
;-----------------------------------------------------------------------------

                ORG     33450

DrawTop:        ld      a,0                             ; y=0
                jr      DrawHorizWall

;-----------------------------------------------------------------------------
; DrawBottom
;-----------------------------------------------------------------------------
DrawBottom:     ld      a,18                            ; y=18
DrawHorizWall:  ld      (tb.Y1+1),a
                inc     a
                ld      (tb.Y2+1),a
tb.Y1:          ld      a,18                            ; y stored here
                ld      (ImageY),a                      ; ypos=a
                ld      a,0
                ld      (ImageX),a                      ; xpos=0
                ld      b,4                             ; 4 times
tb.Loop1:       push    bc
                call    DrawIsle                        ; DrawIsle
                pop     bc
                djnz    tb.Loop1
tb.Y2:          ld      a,19                            ; y+1 stored here
                ld      (ImageY),a                      ; ypos=a
                ld      a,0
                ld      (ImageX),a                      ; xpos=0
                ld      b,4                             ; 4 times
tb.Loop2:       push    bc
                call    DrawIsle2                       ; DrawIsle2
                pop     bc
                djnz    tb.Loop2
                ret

;-----------------------------------------------------------------------------
; DrawTop2
;-----------------------------------------------------------------------------

                ORG     33510

DrawTop2:       ld      a,0                             ; y=0
                jr      DrawHorizWall2

;-----------------------------------------------------------------------------
; DrawBottom2
;-----------------------------------------------------------------------------
DrawBottom2:    ld      a,18                            ; y=18
DrawHorizWall2: ld      (ImageY),a                      ; ypos=y
                ld      a,0
                ld      (ImageX),a                      ; xpos=0
                ld      a,1
                ld      (is.Times+1),a                  ; Isle's times = 1
                call    DrawIsle                        ; DrawIsle
                ld      a,30
                ld      (ImageX),a                      ; xpos=30
                call    DrawIsle                        ; DrawIsle
                ld      a,(ImageY)
                inc     a
                ld      (ImageY),a                      ; ypos=ypos+1
                ld      a,0
                ld      (ImageX),a                      ; xpos=0
                call    DrawIsle2                       ; DrawIsle2
                ld      a,30
                ld      (ImageX),a                      ; xpos=30
                call    DrawIsle2                       ; DrawIsle2
                ld      a,4
                ld      (is.Times+1),a                  ; reset Isle's times
                ret                                     ; to 4

;-----------------------------------------------------------------------------
; DrawLeft
;-----------------------------------------------------------------------------

                ORG     33570

DrawLeft:       ld      a,0                             ; x=0
                jr      DrawVertWall

;-----------------------------------------------------------------------------
; DrawRight
;-----------------------------------------------------------------------------
DrawRight:      ld      a,30                            ; x=30
DrawVertWall:   ld      (lr.X1+1),a
                ld      (lr.X2+1),a
                ld      (lr.X3+1),a
                ld      a,1
                ld      (is.Times+1),a                  ; set Isle's times to 1
                ld      a,0
                ld      (ImageY),a                      ; ypos=0
lr.X1:          ld      a,0                             ; a stored here
                ld      (ImageX),a                      ; xpos=a
                ld      b,10                            ; 10 times
lr.Loop:        push    bc
                call    DrawIsle                        ; DrawIsle
                ld      a,(ImageY)
                inc     a
                ld      (ImageY),a                      ; ypos=ypos+1
lr.X2:          ld      a,0                             ; a stored here
                ld      (ImageX),a
                call    DrawIsle2                       ; DrawIsle2
                ld      a,(ImageY)
                inc     a
                ld      (ImageY),a                      ; ypos=ypos+1
lr.X3:          ld      a,0                             ; a stored here
                ld      (ImageX),a                      ; xpos=a
                pop     bc
                djnz    lr.Loop                         ; more ?
                ld      a,4
                ld      (is.Times+1),a                  ; reset Isle's times
                ret                                     ; to 4

;-----------------------------------------------------------------------------
; DrawDecors
;-----------------------------------------------------------------------------

                ORG     33650

DrawPicture1:   ld      bc,img.Picture1
                jr      DrawDecor
DrawPicture2:   ld      bc,img.Picture2
                jr      DrawDecor
DrawWardrobe1:  ld      bc,img.Wardrobe1
                jr      DrawDecor
DrawBooks:      ld      bc,img.Books
                jr      DrawDecor
DrawFlower1:    ld      bc,img.Flower1
                jr      DrawDecor
DrawBed:        ld      bc,img.Bed
                jr      DrawDecor
DrawPicture3:   ld      bc,img.Picture3
                jr      DrawDecor
DrawFlower2:    ld      bc,img.Flower2
                jr      DrawDecor
DrawWardrobe2:  ld      bc,img.Wardrobe2
                jr      DrawDecor
DrawTable1:     ld      bc,img.Table1
                jr      DrawDecor
DrawTV1:        ld      bc,img.TV1
                jr      DrawDecor
DrawTV2:        ld      bc,img.TV2
                jr      DrawDecor
DrawLamp1:      ld      bc,img.Lamp1
                jr      DrawDecor
DrawLamp2:      ld      bc,img.Lamp2
                jr      DrawDecor
DrawTable2:     ld      bc,img.Table2
                jr      DrawDecor
DrawCandle1:    ld      bc,img.Candle1
                jr      DrawDecor
DrawCandle2:    ld      bc,img.Candle2
                jr      DrawDecor
DrawFlower3:    ld      bc,img.Flower3
                jr      DrawDecor

;-----------------------------------------------------------------------------
; DrawDecor
;-----------------------------------------------------------------------------
DrawDecor:      ld      (ImageData),bc                  ; set data addr
                ld      (ImagePos),hl                   ; set ypos,xpos
                ld      hl,x0405                        ; width=5,height=4
                ld      (ImageSize),hl
                call    DrawImage                       ; DrawImage
                ret

;-----------------------------------------------------------------------------
; DrawDisk
;-----------------------------------------------------------------------------

                ORG     33760

DrawDisk:       ld      (ImagePos),hl                   ; set ypos,xpos
                ld      hl,x0101                        ; width=1,height=1
                ld      (ImageSize),hl
                ld      hl,img.Disk                     ; disk data
DrawIt:         ld      (ImageData),hl
                call    DrawImage                       ; DrawImage
                ret

;-----------------------------------------------------------------------------
; DrawLiftUp
;-----------------------------------------------------------------------------

                ORG     33780

DrawLiftUp:     ld      hl,x0b12                        ; ypos=18,xpos=11
                ld      (ImagePos),hl
                ld      hl,x0104                        ; width=4,height=1
                ld      (ImageSize),hl
                ld      hl,img.LiftUp
                ld      (ImageData),hl
                call    DrawImage                       ; DrawImage
                ret

;-----------------------------------------------------------------------------
; DrawLiftDown
;-----------------------------------------------------------------------------

                ORG     33810

DrawLiftDown:   ld      hl,x0f12                        ; ypos=18,xpos=15
                ld      (ImagePos),hl
                ld      hl,x0104                        ; width=4,height=1
                ld      (ImageSize),hl
                ld      hl,img.LiftDown
                ld      (ImageData),hl
                call    DrawImage                       ; DrawImage
                ret

;-----------------------------------------------------------------------------
; DrawBeltRight
;-----------------------------------------------------------------------------

                ORG     33840

DrawBeltRight2: ld      a,2
                jr      br.Draw
DrawBeltRight3: ld      a,3
                jr      br.Draw
DrawBeltRight4: ld      a,4
                jr      br.Draw
DrawBeltRight8: ld      a,8
br.Draw:        ld      b,a
br.Loop:        push    bc
                push    hl
                ld      (ImagePos),hl                   ; set ypos,xpos
                ld      hl,x0102                        ; width=2,height=1
                ld      (ImageSize),hl
                ld      hl,img.BeltRight
                ld      (ImageData),hl
                call    DrawImage                       ; DrawImage
                pop     hl
                inc     h
                inc     h                               ; xpos=xpos+2
                pop     bc
                djnz    br.Loop                         ; more ?
                ret

;-----------------------------------------------------------------------------
; DrawBeltLeft
;-----------------------------------------------------------------------------

                ORG     33890

DrawBeltLeft2:  ld      a,2
                jr      bl.Draw
DrawBeltLeft3:  ld      a,3
                jr      bl.Draw
DrawBeltLeft4:  ld      a,4
                jr      bl.Draw
DrawBeltLeft8:  ld      a,8
bl.Draw:        ld      b,a
bl.Loop:        push    bc
                push    hl
                ld      (ImagePos),hl                   ; set ypos,xpos
                ld      hl,x0102                        ; width=2,height=1
                ld      (ImageSize),hl
                ld      hl,img.BeltLeft
                ld      (ImageData),hl
                call    DrawImage                       ; DrawImage
                pop     hl
                inc     h
                inc     h                               ; xpos=xpos+2
                pop     bc
                djnz    bl.Loop                         ; more ?
                ret

;-----------------------------------------------------------------------------
; DrawGameOver
;-----------------------------------------------------------------------------
DrawGameOver:   ld      hl,x0a07                        ; ypos=7,xpos=10
                ld      (ImagePos),hl
                ld      hl,x030c                        ; width=12,height=3
                ld      (ImageSize),hl
                ld      hl,img.GameOver
                jp      DrawIt

;-----------------------------------------------------------------------------
; DrawThickIsle
;-----------------------------------------------------------------------------
DrawThickIsle1: ld      a,1
                jr      ti.Draw
DrawThickIsle2: ld      a,2
                jr      ti.Draw
DrawThickIsle4: ld      a,4
ti.Draw:        push    hl
                ld      (is.Times+1),a                  ; set Isle's times
                call    DrawIslePos                     ; to a
                pop     hl
                inc     l
                call    DrawIslePos2
                ld      a,4
                ld      (is.Times+1),a                  ; reset Isle's times
                ret                                     ; to 4

;-----------------------------------------------------------------------------
; DrawIslePos
;-----------------------------------------------------------------------------

                ORG     33980

DrawIslePos:    ld      (ImagePos),hl
                call    DrawIsle                        ; DrawIsle
                ret

;-----------------------------------------------------------------------------
; DrawIslePos2
;-----------------------------------------------------------------------------

                ORG     33990

DrawIslePos2:   ld      (ImagePos),hl
                call    DrawIsle2                       ; DrawIsle2
                ret

;-----------------------------------------------------------------------------
; Room 1
;-----------------------------------------------------------------------------

                ORG     34000

prg.Room.1:     call    DrawBottom
                call    DrawTop2
                call    DrawLeft
                ld      hl,x1806
                call    DrawThickIsle4
                ld      hl,x0506
                call    DrawPicture1
                ld      hl,x0e0a
                call    DrawFlower1
                ld      hl,x170e
                call    DrawWardrobe1
                ld      hl,x0412
                call    DrawBeltLeft4
                ret

;-----------------------------------------------------------------------------
; Room 2
;-----------------------------------------------------------------------------

                ORG     34050

prg.Room.2:     call    DrawTop
                call    DrawBottom
                ld      a,x06
                call    DrawHorizWall
                ld      hl,x1208
                call    DrawLamp1
                ld      hl,x060e
                call    DrawFlower2
                ret
                ld      hl,x1806
                call    DrawIslePos
                ld      hl,x1207
                call    DrawLamp1
                ld      hl,x060e
                call    DrawFlower2
                ret

;-----------------------------------------------------------------------------
; Room 3
;-----------------------------------------------------------------------------

                ORG     34100

prg.Room.3:     call    DrawBottom
                call    DrawTop2
                ld      a,6
                call    DrawHorizWall
                ld      a,8
                ld      (x8337),a
                ld      a,5
                ld      (x8341),a
                ld      a,12
                call    DrawVertWall
                ld      a,10
                ld      (x8341),a
                ld      a,0
                ld      (x8337),a
                ld      hl,x120e
                call    DrawBooks
                ld      hl,x060d
                call    DrawHiFi
                ret

;-----------------------------------------------------------------------------
; Room 4
;-----------------------------------------------------------------------------

                ORG     34150

prg.Room.4:     call    DrawTop
                call    DrawBottom
                ld      hl,x0006
                call    DrawThickIsle4
                ld      hl,x0c0a
                call    DrawPicture3
                ld      hl,x150e
                call    DrawWardrobe2
                ret

;-----------------------------------------------------------------------------
; Room 5
;-----------------------------------------------------------------------------

                ORG     34200

prg.Room.5:     call    DrawTop
                call    DrawBottom
                ld      hl,x0a0d
                call    DrawThickIsle4
                ld      hl,x0c02
                call    DrawFlower3
                ld      hl,x050e
                call    DrawWardrobe2
                ld      hl,x140e
                call    DrawTable1
                ret

;-----------------------------------------------------------------------------
; Room 6
;-----------------------------------------------------------------------------

                ORG     34250

prg.Room.6:     call    DrawTop
                call    DrawBottom
                ld      hl,x100e
                call    DrawIslePos
                call    DrawIsle
                ld      hl,x1202
                call    DrawLamp1
                ld      hl,x0b0e
                call    DrawFlower2
                ld      hl,x0406
                call    DrawPicture3
                ret

;-----------------------------------------------------------------------------
; Room 7
;-----------------------------------------------------------------------------

                ORG     34300

prg.Room.7:     call    DrawTop
                call    DrawBottom
                ld      hl,x000e
                call    DrawIslePos
                ld      hl,x0602
                call    DrawLamp1
                ld      hl,x1402
                call    DrawLamp1
                ld      hl,x080e
                call    DrawWardrobe1
                ld      a,x07
                ld      (x8341),a
                call    DrawRight
                ld      a,x0a
                ld      (x8341),a
                ret

;-----------------------------------------------------------------------------
; Room 8
;-----------------------------------------------------------------------------

                ORG     34350

prg.Room.8:     call    DrawBottom
                call    DrawTop2
                ld      a,x0c
                call    DrawHorizWall
                ld      a,x06
                ld      (x8341),a
                call    DrawLeft
                call    DrawRight
                ld      a,x0a
                ld      (x8341),a
                ld      hl,x0206
                call    DrawIslePos
                ld      hl,x0e08
                call    DrawTable1
                ld      hl,x1904
                call    DrawPicture3
                ret

;-----------------------------------------------------------------------------
; Room 9
;-----------------------------------------------------------------------------

                ORG     34400

prg.Room.9:     call    DrawTop
                call    DrawBottom
                ld      a,x07
                ld      (x8341),a
                call    DrawLeft
                ld      a,x0a
                ld      (x8341),a
                ld      hl,x1806
                call    DrawIslePos
                ld      hl,x0e02
                call    DrawFlower3
                ld      hl,x070a
                call    DrawTV1
                ld      hl,x100e
                call    DrawBooks
                ret

;-----------------------------------------------------------------------------
; Room 10
;-----------------------------------------------------------------------------

                ORG     34450

prg.Room.10:    call    DrawBottom
                call    DrawTop2
                call    DrawRight
                ld      hl,x0006
                call    DrawIslePos
                ld      hl,x1404
                call    DrawPicture3
                ld      hl,x0c0a
                call    DrawPicture2
                ld      hl,x150e
                call    DrawFlower2
                ret

;-----------------------------------------------------------------------------
; Room 11
;-----------------------------------------------------------------------------

                ORG     34500

prg.Room.11:    call    DrawLeft
                call    DrawRight
                ld      hl,x1600
                call    DrawIslePos
                ld      hl,x1601
                call    DrawIslePos2
                ld      hl,x020c
                call    DrawIslePos
                ld      hl,x1406
                call    DrawIslePos
                ld      hl,x0e08
                call    DrawPicture3
                ld      hl,x0e10
                call    DrawPicture2
                ld      hl,x0204
                call    DrawCandle1
                ret

;-----------------------------------------------------------------------------
; Room 12
;-----------------------------------------------------------------------------

                ORG     34550

prg.Room.12:    call    DrawBottom
                call    DrawTop2
                call    DrawLeft
                ld      hl,x1206
                call    DrawThickIsle1
                ld      hl,x0208
                call    DrawCandle1
                ld      hl,x090a
                call    DrawPicture3
                ld      hl,x110e
                call    DrawTable1
                ld      hl,x180d
                call    DrawThickIsle4
                ld      hl,x1612
                call    DrawBeltRight4
                ret

;-----------------------------------------------------------------------------
; Room 13
;-----------------------------------------------------------------------------

                ORG     34600

prg.Room.13:    call    DrawTop2
                call    DrawBottom2
                ld      hl,x1106
                call    DrawPicture3
                ld      hl,x080a
                call    DrawBooks
                ld      hl,x000d
                call    DrawThickIsle2
                ret

;-----------------------------------------------------------------------------
; Room 14
;-----------------------------------------------------------------------------

                ORG     34650

prg.Room.14:    call    DrawTop
                call    DrawBottom
                call    DrawRight
                ld      hl,x060b
                ld      (ImagePos),hl
                ld      hl,x0714
                ld      (ImageSize),hl
                ld      hl,xc800
                ld      (ImageData),hl
                call    DrawImage
                ret

;-----------------------------------------------------------------------------
; Room 15
;-----------------------------------------------------------------------------

                ORG     34700

prg.Room.15:    call    DrawTop
                call    DrawBottom
                call    DrawLeft
                ld      hl,x120a
                call    DrawFlower2
                ld      hl,x050e
                call    DrawWardrobe2
                ld      hl,x0802
                call    DrawLamp1
                ld      hl,x1502
                call    DrawLamp1
                ld      hl,x0a0f
                call    DrawDisk
                ret

;-----------------------------------------------------------------------------
; Room 16
;-----------------------------------------------------------------------------

                ORG     34750

prg.Room.16:    call    DrawTop
                call    DrawBottom
                ld      hl,x0806
                call    DrawPicture3
                ld      hl,x060e
                call    DrawBed
                ld      hl,x150e
                call    DrawTable1
                ld      hl,x1202
                call    DrawFlower3
                ret

;-----------------------------------------------------------------------------
; Room 17
;-----------------------------------------------------------------------------

                ORG     34800

prg.Room.17:    call    DrawBottom
                call    DrawTop2
                ld      a,x10
                call    DrawVertWall
                ld      hl,x0606
                call    DrawThickIsle1
                ld      hl,x1206
                call    DrawThickIsle2
                ld      hl,x0b0a
                call    DrawPicture1
                ld      hl,x020e
                call    DrawTV1
                ld      hl,x1a0a
                call    DrawPicture2
                ret

;-----------------------------------------------------------------------------
; Room 18
;-----------------------------------------------------------------------------

                ORG     34850

prg.Room.18:    call    DrawTop
                call    DrawBottom2
                call    DrawRight
                ld      hl,x000a
                call    DrawThickIsle2
                ld      hl,x0e12
                call    DrawThickIsle4
                ld      hl,x110e
                call    DrawBooks
                ld      hl,x080a
                call    DrawPicture3
                ld      hl,x1402
                call    DrawLamp1
                ret

;-----------------------------------------------------------------------------
; Room 19
;-----------------------------------------------------------------------------

                ORG     34900

prg.Room.19:    call    DrawBottom
                call    DrawLeft
                call    DrawRight
                ld      hl,x040a
                call    DrawThickIsle4
                ld      hl,x180a
                call    DrawThickIsle1
                ld      hl,x0f06
                call    DrawPicture2
                ld      hl,x0e0e
                call    DrawWardrobe2
                ld      hl,x0207
                call    DrawDisk
                ret

;-----------------------------------------------------------------------------
; Room 20
;-----------------------------------------------------------------------------

                ORG     34950

prg.Room.20:    call    DrawLeft
                call    DrawRight
                ld      hl,x0d06
                call    DrawIslePos
                ld      hl,x160e
                call    DrawIslePos
                ld      hl,x160f
                call    DrawIslePos2
                ld      hl,x0208
                call    DrawFlower1
                ld      hl,x190a
                call    DrawTable1
                ld      hl,x0c10
                call    DrawPicture1
                ret

;-----------------------------------------------------------------------------
; Room 21
;-----------------------------------------------------------------------------

                ORG     35000

prg.Room.21:    call    DrawTop2
                call    DrawLeft
                ld      a,x16
                call    DrawVertWall
                ld      hl,x1812
                call    DrawThickIsle4
                ld      hl,x0c10
                call    DrawThickIsle2
                ld      hl,x1406
                call    DrawThickIsle4
                ld      hl,x140c
                call    DrawThickIsle4
                ld      hl,x0305
                call    DrawFlower2
                ld      hl,x0b08
                call    DrawTV1
                ret

;-----------------------------------------------------------------------------
; Room 22
;-----------------------------------------------------------------------------

                ORG     35050

prg.Room.22:    call    DrawTop
                call    DrawBottom2
                call    DrawRight
                ld      hl,x060e
                call    DrawIslePos
                ld      hl,x120e
                call    DrawThickIsle1
                ld      hl,x1812
                call    DrawThickIsle1
                ld      hl,x1406
                call    DrawPicture1
                ld      hl,x090a
                call    DrawTable1
                ret

;-----------------------------------------------------------------------------
; Room 23
;-----------------------------------------------------------------------------

                ORG     35100

prg.Room.23:    call    DrawTop
                call    DrawBottom2
                call    DrawLeft
                ld      hl,x0c02
                call    DrawLamp1
                ld      hl,x1a08
                call    DrawFlower1
                ld      hl,x0e0c
                call    DrawThickIsle4
                ld      hl,x0810
                call    DrawThickIsle1
                ret

;-----------------------------------------------------------------------------
; Room 24
;-----------------------------------------------------------------------------

                ORG     35150

prg.Room.24:    call    DrawTop
                call    DrawBottom
                ld      hl,x090b
                call    DrawThickIsle1
                ld      hl,x0008
                call    DrawPicture2
                ld      hl,x0f0e
                call    DrawFlower2
                ld      hl,x1602
                call    DrawFlower3
                ret

;-----------------------------------------------------------------------------
; Room 25
;-----------------------------------------------------------------------------

                ORG     35200

prg.Room.25:    call    DrawTop
                call    DrawBottom
                ld      hl,x0b0d
                call    DrawThickIsle4
                ld      hl,x130d
                call    DrawThickIsle2
                ld      hl,x170e
                call    DrawWardrobe1
                ld      hl,x040e
                call    DrawTable1
                ld      hl,x0a02
                call    DrawLamp1
                ret

;-----------------------------------------------------------------------------
; Room 26
;-----------------------------------------------------------------------------

                ORG     35250

prg.Room.26:    call    DrawTop
                call    DrawBottom
                ld      hl,x0f08
                call    DrawPicture1
                ld      hl,x160e
                call    DrawWardrobe2
                ld      hl,x0c0e
                call    DrawBed
                ld      hl,x060e
                call    DrawBed
                ld      hl,x0902
                call    DrawFlower3
                ret

;-----------------------------------------------------------------------------
; Room 27
;-----------------------------------------------------------------------------

                ORG     35300

prg.Room.27:    call    DrawTop
                call    DrawBottom2
                call    DrawRight
                ld      hl,x160e
                call    DrawFlower2
                ld      hl,x0e0a
                call    DrawFlower1
                ld      hl,x060e
                call    DrawThickIsle2
                ld      hl,x1012
                call    DrawThickIsle1
                ld      hl,x1302
                call    DrawLamp1
                ret

;-----------------------------------------------------------------------------
; Room 28
;-----------------------------------------------------------------------------

                ORG     35350

prg.Room.28:    call    DrawBottom
                call    DrawTop2
                call    DrawLeft
                ld      hl,x0e0a
                call    DrawThickIsle1
                ld      hl,x0506
                call    DrawPicture3
                ld      hl,x140e
                call    DrawTable1
                ret

;-----------------------------------------------------------------------------
; Room 29
;-----------------------------------------------------------------------------

                ORG     35400

prg.Room.29:    call    DrawTop2
                call    DrawBottom2
                call    DrawRight
                ld      hl,x180a
                call    DrawThickIsle4
                ld      hl,x120e
                call    DrawThickIsle1
                ld      hl,x1812
                call    DrawThickIsle1
                ld      hl,x0f06
                call    DrawFlower2
                ld      hl,x060a
                call    DrawPicture2
                ret

;-----------------------------------------------------------------------------
; Room 30
;-----------------------------------------------------------------------------

                ORG     35450

prg.Room.30:    call    DrawLeft
                call    DrawRight
                ld      hl,x0b0c
                call    DrawIslePos
                call    DrawIsle
                ld      hl,x0b06
                call    DrawIslePos
                ld      hl,x1608
                call    DrawWardrobe2
                ld      hl,x0210
                call    DrawBooks
                ret

;-----------------------------------------------------------------------------
; Room 31
;-----------------------------------------------------------------------------

                ORG     35500

prg.Room.31:    call    DrawLeft
                call    DrawRight
                ld      hl,x1612
                call    DrawThickIsle1
                ld      hl,x1c0e
                call    DrawThickIsle1
                ld      hl,x020a
                call    DrawIslePos
                ld      hl,x0b06
                call    DrawPicture3
                ld      hl,x130a
                call    DrawBooks
                ret

;-----------------------------------------------------------------------------
; Room 32
;-----------------------------------------------------------------------------

                ORG     35550

prg.Room.32:    call    DrawBottom
                call    DrawTop2
                call    DrawLeft
                ld      hl,x1b06
                call    DrawFlower1
                ld      hl,x120a
                call    DrawPicture2
                ld      hl,x0406
                call    DrawPicture1
                ld      hl,x020e
                call    DrawTable1
                ret

;-----------------------------------------------------------------------------
; Room 33
;-----------------------------------------------------------------------------

                ORG     35600

prg.Room.33:    call    DrawTop
                call    DrawBottom
                ld      hl,x0006
                call    DrawThickIsle2
                ld      hl,x1806
                call    DrawThickIsle1
                ld      hl,x0808
                call    DrawThickIsle1
                ld      hl,x1e0a
                call    DrawThickIsle1
                ld      hl,x0e0c
                call    DrawThickIsle1
                ld      hl,x160e
                call    DrawBed
                ret

;-----------------------------------------------------------------------------
; Room 34
;-----------------------------------------------------------------------------

                ORG     35650

prg.Room.34:    call    DrawTop
                call    DrawBottom
                ld      a,x0a
                call    DrawHorizWall
                ld      hl,x0902
                call    DrawLamp2
                ld      hl,x1206
                call    DrawFlower1
                ld      hl,x0410
                call    DrawThickIsle4
                ld      hl,x0d0e
                call    DrawBed
                ret

;-----------------------------------------------------------------------------
; Room 35
;-----------------------------------------------------------------------------

                ORG     35700

prg.Room.35:    call    DrawTop
                call    DrawBottom
                ld      hl,x000a
                call    DrawThickIsle4
                ld      hl,x080a
                call    DrawIslePos
                ld      hl,x100a
                call    DrawThickIsle1
                ld      hl,x180a
                call    DrawThickIsle4
                ld      hl,x1202
                call    DrawLamp2
                ld      hl,x100e
                call    DrawBed
                ld      hl,x0a0e
                call    DrawBed
                ret

;-----------------------------------------------------------------------------
; Room 36
;-----------------------------------------------------------------------------

                ORG     35750

prg.Room.36:    call    DrawTop
                call    DrawBottom
                ld      a,x0a
                call    DrawHorizWall
                ld      hl,x1402
                call    DrawLamp2
                ld      hl,x0806
                call    DrawTable2
                ld      hl,x120e
                call    DrawBed
                ret

;-----------------------------------------------------------------------------
; Room 37
;-----------------------------------------------------------------------------

                ORG     35800

prg.Room.37:    call    DrawBottom
                call    DrawTop2
                call    DrawRight
                ld      hl,x000a
                call    DrawThickIsle1
                ld      hl,x1006
                call    DrawPicture3
                ld      hl,x070a
                call    DrawTV2
                ld      hl,x100e
                call    DrawWardrobe1
                ret

;-----------------------------------------------------------------------------
; Room 38
;-----------------------------------------------------------------------------

                ORG     35850

prg.Room.38:    call    DrawLeft
                call    DrawRight
                ld      hl,x0200
                call    DrawThickIsle4
                ld      hl,x0800
                call    DrawThickIsle4
                ld      hl,x180c
                call    DrawThickIsle4
                ld      hl,x1c0a
                call    DrawThickIsle1
                ld      hl,x1606
                call    DrawThickIsle1
                ld      hl,x0602
                call    DrawFlower3
                ld      hl,x0f10
                call    DrawTV1
                ret

;-----------------------------------------------------------------------------
; Room 39
;-----------------------------------------------------------------------------

                ORG     35900

prg.Room.39:    call    DrawTop2
                call    DrawBottom2
                call    DrawLeft
                ld      hl,x0806
                call    DrawIslePos
                ld      hl,x1812
                call    DrawThickIsle4
                ld      hl,x0e0e
                call    DrawThickIsle4
                ld      hl,x020a
                call    DrawThickIsle1
                ld      hl,x180a
                call    DrawPicture1
                ld      hl,x080c
                call    DrawFlower1
                ret

;-----------------------------------------------------------------------------
; Room 40
;-----------------------------------------------------------------------------

                ORG     35950

prg.Room.40:    call    DrawTop
                call    DrawBottom2
                call    DrawRight
                ld      hl,x060e
                call    DrawIslePos
                ld      hl,x0c02
                call    DrawLamp1
                ld      hl,x100c
                call    DrawPicture3
                ld      hl,x1910
                call    DrawFlower2
                ret

;-----------------------------------------------------------------------------
; Room 41
;-----------------------------------------------------------------------------

                ORG     36000

prg.Room.41:    call    DrawLeft
                call    DrawRight
                ld      hl,x0210
                call    DrawThickIsle1
                ld      hl,x1806
                call    DrawThickIsle4
                ld      hl,x1008
                call    DrawFlower1
                ld      hl,x0204
                call    DrawFlower2
                ld      hl,x080c
                call    DrawPicture1
                ld      hl,x190c
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 42
;-----------------------------------------------------------------------------

                ORG     36050

prg.Room.42:    call    DrawTop
                call    DrawBottom2
                call    DrawLeft
                ld      hl,x0e02
                call    DrawLamp1
                ld      hl,x0208
                call    DrawCandle1
                ld      hl,x090c
                call    DrawPicture3
                ld      hl,x1210
                call    DrawFlower2
                ret

;-----------------------------------------------------------------------------
; Room 43
;-----------------------------------------------------------------------------

                ORG     36100

prg.Room.43:    call    DrawTop
                call    DrawBottom
                call    DrawRight
                ld      hl,x0e02
                call    DrawLamp2
                ld      hl,x0806
                call    DrawFlower2
                ld      hl,x190a
                call    DrawPicture1
                ld      hl,x060e
                call    DrawBooks
                ld      hl,x100e
                call    DrawTable2
                ld      hl,x150f
                call    DrawDisk
                ret

;-----------------------------------------------------------------------------
; Room 44
;-----------------------------------------------------------------------------

                ORG     36150

prg.Room.44:    call    DrawBottom
                call    DrawTop2
                call    DrawLeft
                ld      hl,x1306
                call    DrawFlower2
                ld      hl,x0a0a
                call    DrawPicture1
                ld      hl,x020e
                call    DrawThickIsle2
                ld      hl,x0812
                call    DrawBeltRight8
                ld      hl,x0204
                call    DrawCandle1
                ret

;-----------------------------------------------------------------------------
; Room 45
;-----------------------------------------------------------------------------

                ORG     36200

prg.Room.45:    call    DrawTop
                call    DrawBottom
                ld      hl,x0602
                call    DrawLamp1
                ld      hl,x1502
                call    DrawLamp1
                ld      hl,x0d0a
                call    DrawPicture2
                ld      hl,x160e
                call    DrawWardrobe1
                ld      hl,x040e
                call    DrawTable2
                ret

;-----------------------------------------------------------------------------
; Room 46
;-----------------------------------------------------------------------------

                ORG     36250

prg.Room.46:    call    DrawTop2
                call    DrawBottom
                call    DrawRight
                ld      hl,x1906
                call    DrawPicture1
                ld      hl,x130a
                call    DrawThickIsle1
                ld      hl,x190e
                call    DrawTable1
                ld      hl,x040e
                call    DrawWardrobe2
                call    DrawLiftUp
                ret

;-----------------------------------------------------------------------------
; Room 47
;-----------------------------------------------------------------------------

                ORG     36300

prg.Room.47:    call    DrawTop
                call    DrawBottom2
                call    DrawLeft
                ld      hl,x0802
                call    DrawLamp2
                ld      hl,x1502
                call    DrawLamp2
                ld      hl,x020a
                call    DrawThickIsle4
                ld      hl,x0e0a
                call    DrawPicture2
                ld      hl,x1910
                call    DrawFlower1
                ld      hl,x020e
                call    DrawCandle1
                ret

;-----------------------------------------------------------------------------
; Room 48
;-----------------------------------------------------------------------------

                ORG     36350

prg.Room.48:    call    DrawTop2
                call    DrawRight
                ld      hl,x0012
                call    DrawThickIsle4
                ld      hl,x0812
                call    DrawThickIsle4
                ld      hl,x1606
                call    DrawPicture1
                ld      hl,x0d0a
                call    DrawFlower2
                ld      hl,x040e
                call    DrawTable2
                ld      hl,x190e
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 49
;-----------------------------------------------------------------------------

                ORG     36400

prg.Room.49:    call    DrawTop
                call    DrawBottom2
                call    DrawLeft
                ld      hl,x0b0e
                call    DrawThickIsle2
                ld      hl,x180e
                call    DrawThickIsle4
                ld      hl,x0e02
                call    DrawLamp1
                ld      hl,x020a
                call    DrawFlower2
                ld      hl,x1310
                call    DrawPicture2
                ret

;-----------------------------------------------------------------------------
; Room 50
;-----------------------------------------------------------------------------

                ORG     36450

prg.Room.50:    call    DrawBottom
                call    DrawTop2
                call    DrawRight
                ld      hl,x1206
                call    DrawPicture3
                ld      hl,x090a
                call    DrawBooks
                ld      hl,x000e
                call    DrawWardrobe2
                ld      hl,x140e
                call    DrawBed
                ld      hl,x190a
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 51
;-----------------------------------------------------------------------------

                ORG     36500

prg.Room.51:    call    DrawTop
                call    DrawLeft
                call    DrawRight
                ld      hl,x180c
                call    DrawThickIsle4
                ld      hl,x0802
                call    DrawFlower3
                ld      hl,x0f10
                call    DrawTV1
                ld      hl,x040a
                call    DrawPicture2
                ld      hl,x1e08
prg.Room.51.C:  ld      (ImagePos),hl
                ld      hl,x0402
                ld      (ImageSize),hl
                call    ClearImage
                ret

;-----------------------------------------------------------------------------
; Room 52
;-----------------------------------------------------------------------------

                ORG     36550

prg.Room.52:    call    DrawTop
                call    DrawBottom
                call    DrawLeft
                call    DrawRight
                ld      hl,x0008
                call    x8eb8
                ld      hl,x1e08
                call    x8eb8
                ld      a,x10
                call    DrawHorizWall
                ld      hl,x0602
                call    DrawLamp1
                ld      hl,x1502
                call    DrawLamp1
                ld      hl,x120c
                call    DrawWardrobe2
                ret

;-----------------------------------------------------------------------------
; Room 53
;-----------------------------------------------------------------------------

                ORG     36600

prg.Room.53:    call    DrawBottom
                call    DrawLeft
                call    DrawRight
                ld      hl,x0008
                call    x8eb8
                ld      hl,x190e
                call    DrawTable1
                ld      hl,x0210
                call    DrawThickIsle1
                ld      hl,x110a
                call    DrawThickIsle2
                ld      hl,x0806
                call    DrawBooks
                ld      hl,x1904
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 54
;-----------------------------------------------------------------------------

                ORG     36650

prg.Room.54:    call    DrawTop
                call    DrawBottom2
                call    DrawLeft
                ld      hl,x0602
                call    DrawLamp2
                ld      hl,x1502
                call    DrawLamp2
                ld      hl,x180c
                call    DrawThickIsle4
                ld      hl,x130c
                call    DrawFlower1
                ld      hl,x0a10
                call    DrawWardrobe1
                ld      hl,x0208
                call    DrawCandle1
                ret

;-----------------------------------------------------------------------------
; Room 55
;-----------------------------------------------------------------------------

                ORG     36700

prg.Room.55:    call    DrawBottom
                call    DrawTop2
                call    DrawRight
                ld      hl,x0c06
                call    DrawFlower2
                ld      hl,x040a
                call    DrawThickIsle2
                ld      hl,x000c
                call    DrawThickIsle2
                ld      hl,x140e
                call    DrawTable1
                ld      hl,x0212
                call    DrawBeltRight8
                ld      hl,x1904
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 56
;-----------------------------------------------------------------------------

                ORG     36750

prg.Room.56:    call    DrawTop2
                call    DrawBottom2
                call    DrawLeft
                ld      hl,x1906
                call    DrawFlower2
                ld      hl,x020a
                call    DrawPicture3
                ld      hl,x160e
                call    DrawThickIsle2
                ld      hl,x0204
                call    DrawCandle1
                ret

;-----------------------------------------------------------------------------
; Room 57
;-----------------------------------------------------------------------------

                ORG     36800

prg.Room.57:    call    DrawTop
                call    DrawBottom
                ld      hl,x0602
                call    DrawLamp2
                ld      hl,x1502
                call    DrawLamp2
                ld      hl,x0608
                call    DrawPicture2
                ld      hl,x120c
                call    DrawThickIsle2
                ld      hl,x090e
                call    DrawBed
                ret

;-----------------------------------------------------------------------------
; Room 58
;-----------------------------------------------------------------------------

                ORG     36850

prg.Room.58:    call    DrawTop
                call    DrawBottom2
                ld      hl,x0602
                call    DrawLamp2
                ld      hl,x1502
                call    DrawLamp2
                ld      hl,x0212
                call    DrawThickIsle4
                ld      hl,x160c
                call    DrawThickIsle4
                ld      hl,x0d10
                call    DrawFlower1
                ret

;-----------------------------------------------------------------------------
; Room 59
;-----------------------------------------------------------------------------

                ORG     36900

prg.Room.59:    call    DrawTop
                call    DrawBottom
                call    DrawRight
                ld      hl,x0a02
                call    DrawFlower3
                ld      hl,x0e08
                ld      (ImagePos),hl
                ld      hl,x050d
                ld      (ImageSize),hl
                ld      hl,xaf3c
                ld      (ImageData),hl
                call    DrawImage
                ld      hl,x060e
                call    DrawBooks
                ret

;-----------------------------------------------------------------------------
; Room 60
;-----------------------------------------------------------------------------

                ORG     36950

prg.Room.60:    call    DrawLeft
                call    DrawRight
                ld      hl,x1806
                call    DrawPicture1
                ld      hl,x0f0a
                call    DrawThickIsle2
                ld      hl,x060e
                call    DrawWardrobe1
                ld      hl,x0612
                call    DrawThickIsle4
                ld      hl,x0204
                call    DrawCandle1
                ret

;-----------------------------------------------------------------------------
; Room 61
;-----------------------------------------------------------------------------

                ORG     37000

prg.Room.61:    call    DrawBottom
                call    DrawTop2
                call    DrawLeft
                ld      hl,x0206
                call    DrawThickIsle2
                ld      hl,x1406
                call    DrawFlower1
                ld      hl,x090a
                call    DrawPicture3
                ld      hl,x120e
                call    DrawWardrobe1
                ret

;-----------------------------------------------------------------------------
; Room 62
;-----------------------------------------------------------------------------

                ORG     37050

prg.Room.62:    call    DrawBottom
                call    DrawTop2
                call    DrawRight
                ld      hl,x1600
                call    DrawThickIsle4
                ld      hl,x0a06
                call    DrawThickIsle1
                ld      hl,x100a
                call    DrawPicture1
                ld      hl,x070e
                call    DrawBooks
                ld      hl,x1908
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 63
;-----------------------------------------------------------------------------

                ORG     37100

prg.Room.63:    call    DrawTop
                call    DrawBottom2
                call    DrawLeft
                ld      hl,x0802
                call    DrawLamp1
                ld      hl,x1a0c
                call    DrawPicture2
                ld      hl,x040a
                call    DrawFlower2
                ld      hl,x1110
                call    DrawThickIsle2
                ret

;-----------------------------------------------------------------------------
; Room 64
;-----------------------------------------------------------------------------

                ORG     37150

prg.Room.64:    call    DrawBottom
                call    DrawTop2
                call    DrawRight
                ld      hl,x090a
                call    DrawThickIsle2
                ld      hl,x120e
                call    DrawThickIsle4
                ld      hl,x000c
                call    DrawFlower1
                ld      hl,x1206
                call    DrawPicture1
                ld      hl,x1908
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 65
;-----------------------------------------------------------------------------

                ORG     37200

prg.Room.65:    call    DrawLeft
                call    DrawRight
                ld      hl,x0206
                call    DrawPicture3
                ld      hl,x0b0a
                call    DrawThickIsle2
                ld      hl,x0f0c
                call    DrawThickIsle1
                ld      hl,x1510
                call    DrawTV1
                ld      hl,x020e
                call    DrawBeltRight3
                ld      hl,x1908
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 66
;-----------------------------------------------------------------------------

                ORG     37250

prg.Room.66:    call    DrawLeft
                call    DrawRight
                ld      hl,x0206
                call    DrawThickIsle2
                ld      hl,x190a
                call    DrawPicture1
                ld      hl,x020e
                call    DrawFlower1
                ld      hl,x1904
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 67
;-----------------------------------------------------------------------------

                ORG     37300

prg.Room.67:    call    DrawBottom
                call    DrawTop2
                call    DrawLeft
                ld      hl,x0206
                call    DrawThickIsle2
                ld      hl,x1406
                call    DrawTV1
                ld      hl,x0b0a
                call    DrawPicture1
                ld      hl,x020e
                call    DrawTable1
                ret

;-----------------------------------------------------------------------------
; Room 68
;-----------------------------------------------------------------------------

                ORG     37350

prg.Room.68:    call    DrawTop
                call    DrawBottom
                ld      hl,x0802
                call    DrawLamp1
                ld      hl,x1608
                call    DrawPicture2
                ld      hl,x060e
                call    DrawFlower1
                ld      hl,x0e0e
                call    DrawBed
                ret

;-----------------------------------------------------------------------------
; Room 69
;-----------------------------------------------------------------------------

                ORG     37400

prg.Room.69:    call    DrawTop
                call    DrawBottom
                ld      hl,x0a02
                call    DrawFlower3
                ld      hl,x160a
                call    DrawPicture3
                ld      hl,x0e0e
                call    DrawTable1
                ld      hl,x040e
                call    DrawFlower2
                ret

;-----------------------------------------------------------------------------
; Room 70
;-----------------------------------------------------------------------------

                ORG     37450

prg.Room.70:    call    DrawTop
                call    DrawBottom2
                call    DrawRight
                ld      hl,x1202
                call    DrawLamp1
                ld      hl,x190a
                call    DrawFlower2
                ld      hl,x0a06
                call    DrawTV1
                ld      hl,x040e
                call    DrawFlower1
                ld      hl,x0c12
                call    DrawThickIsle4
                ret

;-----------------------------------------------------------------------------
; Room 71
;-----------------------------------------------------------------------------

                ORG     37500

prg.Room.71:    call    DrawLeft
                call    DrawRight
                ld      hl,x1006
                call    DrawPicture2
                ld      hl,x190a
                call    DrawTV1
                ld      hl,x130e
                call    DrawThickIsle1
                ld      hl,x0a10
                call    DrawFlower2
                ld      hl,x0208
                call    DrawCandle1
                ret

;-----------------------------------------------------------------------------
; Room 72
;-----------------------------------------------------------------------------

                ORG     37550

prg.Room.72:    call    DrawTop
                call    DrawBottom2
                call    DrawLeft
                ld      hl,x0a02
                call    DrawLamp1
                ld      hl,x1612
                call    DrawThickIsle4
                ld      hl,x1012
                call    DrawThickIsle1
                ld      hl,x0d0a
                call    DrawPicture2
                ld      hl,x160e
                call    DrawTable1
                ld      hl,x0208
                call    DrawCandle1
                ret

;-----------------------------------------------------------------------------
; Room 73
;-----------------------------------------------------------------------------

                ORG     37600

prg.Room.73:    call    DrawTop
                call    DrawBottom
                ld      hl,x0602
                call    DrawLamp1
                ld      hl,x1502
                call    DrawLamp1
                ld      hl,x0a08
                call    DrawFlower1
                ld      hl,x0e0e
                call    DrawBed
                ld      hl,x140e
                call    DrawBed
                ret

;-----------------------------------------------------------------------------
; Room 74
;-----------------------------------------------------------------------------

                ORG     37650

prg.Room.74:    call    DrawTop
                call    DrawBottom2
                call    DrawRight
                ld      hl,x0e02
                call    DrawFlower3
                ld      hl,x0512
                call    DrawThickIsle4
                ld      hl,x190a
                call    DrawFlower2
                ld      hl,x0406
                call    DrawPicture3
                ret

;-----------------------------------------------------------------------------
; Room 75
;-----------------------------------------------------------------------------

                ORG     37700

prg.Room.75:    call    DrawLeft
                call    DrawRight
                ld      hl,x0806
                call    DrawThickIsle2
                ld      hl,x0c08
                call    DrawThickIsle2
                ld      hl,x140c
                call    DrawFlower1
                ld      hl,x0b10
                call    DrawWardrobe2
                ld      hl,x0c08
                call    DrawBeltRight2
                ld      hl,x1904
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 76
;-----------------------------------------------------------------------------

                ORG     37750

prg.Room.76:    call    DrawLeft
                call    DrawRight
                ld      hl,x1a06
                call    DrawThickIsle2
                ld      hl,x020a
                call    DrawPicture2
                ld      hl,x190e
                call    DrawTV2
                ld      hl,x0204
                call    DrawCandle1
                ret

;-----------------------------------------------------------------------------
; Room 77
;-----------------------------------------------------------------------------

                ORG     37800

prg.Room.77:    call    DrawLeft
                call    DrawRight
                ld      hl,x0b0a
                call    DrawThickIsle2
                ld      hl,x1406
                call    DrawPicture3
                ld      hl,x020c
                call    DrawPicture2
                ld      hl,x0b10
                call    DrawFlower1
                ld      hl,x0204
                call    DrawCandle1
                ret

;-----------------------------------------------------------------------------
; Room 78
;-----------------------------------------------------------------------------

                ORG     37850

prg.Room.78:    call    DrawBottom
                call    DrawTop2
                call    DrawLeft
                ld      hl,x0206
                call    DrawPicture1
                ld      hl,x0d06
                call    DrawFlower1
                ld      hl,x160a
                call    DrawPicture2
                ld      hl,x0d0e
                call    DrawTable2
                ret

;-----------------------------------------------------------------------------
; Room 79
;-----------------------------------------------------------------------------

                ORG     37900

prg.Room.79:    call    DrawTop
                call    DrawBottom
                ld      hl,x0602
                call    DrawLamp2
                ld      hl,x1502
                call    DrawLamp2
                ld      hl,x1b0a
                call    DrawTV1
                ld      hl,x120e
                call    DrawFlower1
                ld      hl,x040e
                call    DrawBooks
                ld      hl,x0c0a
                call    DrawThickIsle1
                ret

;-----------------------------------------------------------------------------
; Room 80
;-----------------------------------------------------------------------------

                ORG     37950

prg.Room.80:    call    DrawBottom
                call    DrawTop2
                ld      hl,x1606
                call    DrawThickIsle4
                ld      hl,x0906
                call    DrawFlower2
                ld      hl,x000a
                call    DrawPicture1
                ld      hl,x050e
                call    DrawTable2
                call    DrawRight
                ld      hl,x190a
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 81
;-----------------------------------------------------------------------------

                ORG     38000

prg.Room.81:    call    DrawLeft
                call    DrawRight
                ld      hl,x0906
                call    DrawPicture1
                ld      hl,x120a
                call    DrawThickIsle4
                ld      hl,x100c
                call    DrawThickIsle1
                ld      hl,x0710
                call    DrawFlower1
                ld      hl,x1904
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 82
;-----------------------------------------------------------------------------

                ORG     38050

prg.Room.82:    call    DrawTop
                call    DrawBottom
                call    DrawLeft
                ld      hl,x0602
                call    DrawLamp2
                ld      hl,x1502
                call    DrawLamp2
                ld      hl,x1a12
                call    DrawBeltRight2
                ld      hl,x030c
                ld      (ImagePos),hl
                ld      hl,x060f
                ld      (ImageSize),hl
                ld      hl,xcd58
                ld      (ImageData),hl
                call    DrawImage
                ret

;-----------------------------------------------------------------------------
; Room 83
;-----------------------------------------------------------------------------

                ORG     38100

prg.Room.83:    call    DrawBottom
                call    DrawTop2
                ld      hl,x0306
                call    DrawPicture2
                ld      hl,x0c09
                call    DrawBeltLeft2
                ld      hl,x100a
                call    DrawBeltRight2
                ld      hl,x180e
                call    DrawThickIsle2
                ld      hl,x180e
                call    DrawBeltLeft2
                ld      hl,x0a0e
                call    DrawBed
                ret
                ld      c,x18
                call    DrawBeltLeft2
                ret

;-----------------------------------------------------------------------------
; Room 84
;-----------------------------------------------------------------------------

                ORG     38150

prg.Room.84:    call    DrawTop
                call    DrawBottom
                ld      hl,x0602
                call    DrawLamp1
                ld      hl,x1502
                call    DrawLamp1
                ld      hl,x0e06
                call    DrawPicture1
                ld      hl,x140e
                call    DrawWardrobe1
                ld      hl,x0a0e
                call    DrawTable2
                ret

;-----------------------------------------------------------------------------
; Room 85
;-----------------------------------------------------------------------------

                ORG     38200

prg.Room.85:    call    DrawTop
                call    DrawBottom2
                call    DrawRight
                ld      hl,x0e02
                call    DrawFlower3
                ld      hl,x040c
                call    DrawThickIsle4
                ld      hl,x190c
                call    DrawPicture2
                ld      hl,x1010
                call    DrawFlower1
                ret

;-----------------------------------------------------------------------------
; Room 86
;-----------------------------------------------------------------------------

                ORG     38250

prg.Room.86:    call    DrawLeft
                call    DrawRight
                ld      hl,x0206
                call    DrawFlower1
                ld      hl,x190a
                call    DrawFlower2
                ld      hl,x020e
                call    DrawFlower2
                ld      hl,x1904
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 87
;-----------------------------------------------------------------------------

                ORG     38300

prg.Room.87:    call    DrawLeft
                call    DrawRight
                ld      hl,x1006
                call    DrawBooks
                ld      hl,x0204
                call    DrawPicture1
                ld      hl,x0a0a
                call    DrawThickIsle1
                ld      hl,x020c
                call    DrawThickIsle2
                ld      hl,x0810
                call    DrawThickIsle4
                ld      hl,x190a
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 88
;-----------------------------------------------------------------------------

                ORG     38350

prg.Room.88:    call    DrawTop
                call    DrawBottom2
                call    DrawLeft
                ld      hl,x0602
                call    DrawLamp1
                ld      hl,x1502
                call    DrawLamp1
                ld      hl,x020a
                call    DrawThickIsle4
                ld      hl,x0d0e
                call    DrawPicture3
                ld      hl,x1612
                call    DrawThickIsle4
                ret

;-----------------------------------------------------------------------------
; Room 89
;-----------------------------------------------------------------------------

                ORG     38400

prg.Room.89:    call    DrawBottom
                call    DrawTop2
                call    DrawRight
                ld      hl,x0206
                call    DrawPicture1
                ld      hl,x0b0a
                call    DrawThickIsle4
                ld      hl,x140e
                call    DrawTable2
                ld      hl,x050e
                call    DrawBed
                ld      hl,x1908
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 90
;-----------------------------------------------------------------------------

                ORG     38450

prg.Room.90:    call    DrawLeft
                call    DrawRight
                ld      hl,x0b06
                call    DrawPicture3
                ld      hl,x020a
                call    DrawPicture2
                ld      hl,x190a
                call    DrawFlower2
                ld      hl,x070e
                call    DrawThickIsle4
                ld      hl,x1210
                call    DrawThickIsle1
                ret

;-----------------------------------------------------------------------------
; Room 91
;-----------------------------------------------------------------------------

                ORG     38500

prg.Room.91:    call    DrawTop2
                call    DrawBottom2
                call    DrawLeft
                ld      hl,x1406
                call    DrawPicture1
                ld      hl,x0206
                call    DrawBooks
                ld      hl,x020a
                call    DrawThickIsle4
                ld      hl,x0a0c
                call    DrawThickIsle2
                ld      hl,x1210
                call    DrawFlower2
                ret

;-----------------------------------------------------------------------------
; Room 92
;-----------------------------------------------------------------------------

                ORG     38550

prg.Room.92:    call    DrawBottom
                call    DrawTop2
                call    DrawRight
                ld      hl,x0200
                call    DrawThickIsle4
                ld      hl,x180a
                call    DrawPicture3
                ld      hl,x0c06
                call    DrawThickIsle4
                ld      hl,x0e0e
                call    DrawWardrobe1
                ret

;-----------------------------------------------------------------------------
; Room 93
;-----------------------------------------------------------------------------

                ORG     38600

prg.Room.93:    call    DrawLeft
                call    DrawRight
                ld      hl,x0a06
                call    DrawThickIsle2
                ld      hl,x1408
                call    DrawFlower2
                ld      hl,x040a
                call    DrawThickIsle1
                ld      hl,x080c
                call    DrawThickIsle1
                ld      hl,x120f
                call    DrawBeltRight4
                ld      hl,x0e10
                call    DrawBeltLeft2
                ret

;-----------------------------------------------------------------------------
; Room 94
;-----------------------------------------------------------------------------

                ORG     38650

prg.Room.94:    call    DrawTop
                call    DrawBottom
                call    DrawLeft
                ld      hl,x060b
                ld      (ImagePos),hl
                ld      hl,x0714
                ld      (ImageSize),hl
                ld      hl,xc800
                ld      (ImageData),hl
                call    DrawImage
                ret

;-----------------------------------------------------------------------------
; Room 95
;-----------------------------------------------------------------------------

                ORG     38700

prg.Room.95:    call    DrawTop
                call    DrawBottom
                ld      hl,x0602
                call    DrawLamp2
                ld      hl,x1502
                call    DrawLamp2
                ld      hl,x020e
                call    DrawBed
                ld      hl,x0b0a
                call    DrawFlower1
                ld      hl,x140e
                call    DrawTable1
                ret

;-----------------------------------------------------------------------------
; Room 96
;-----------------------------------------------------------------------------

                ORG     38750

prg.Room.96:    call    DrawTop
                call    DrawBottom2
                call    DrawRight
                ld      hl,x0602
                call    DrawLamp1
                ld      hl,x1502
                call    DrawLamp1
                ld      hl,x190a
                call    DrawPicture3
                ld      hl,x0210
                call    DrawBooks
                ld      hl,x0712
                call    DrawThickIsle2
                call    DrawLiftDown
                call    DrawLiftUp
                ret

;-----------------------------------------------------------------------------
; Room 97
;-----------------------------------------------------------------------------

                ORG     38800

prg.Room.97:    call    DrawTop2
                call    DrawBottom2
                call    DrawLeft
                ld      hl,x1806
                call    DrawPicture3
                ld      hl,x0206
                call    DrawFlower1
                ld      hl,x0b0a
                call    DrawTV1
                ld      hl,x140e
                call    DrawThickIsle1
                ld      hl,x1a12
                call    DrawThickIsle2
                ld      hl,x020e
                call    DrawCandle1
                ret

;-----------------------------------------------------------------------------
; Room 98
;-----------------------------------------------------------------------------

                ORG     38850

prg.Room.98:    call    DrawTop
                call    DrawBottom
                ld      hl,x0602
                call    DrawLamp2
                ld      hl,x1502
                call    DrawLamp2
                ld      hl,x0806
                call    DrawFlower1
                ld      hl,x170a
                call    DrawPicture1
                ld      hl,x040e
                call    DrawTable2
                ld      hl,x0e0e
                call    DrawTable2
                ret

;-----------------------------------------------------------------------------
; Room 99
;-----------------------------------------------------------------------------

                ORG     38900

prg.Room.99:    call    DrawTop
                call    DrawBottom2
                call    DrawRight
                ld      hl,x0602
                call    DrawLamp2
                ld      hl,x1502
                call    DrawLamp2
                ld      hl,x130a
                call    DrawPicture2
                ld      hl,x0a0e
                call    DrawBooks
                ld      hl,x060e
                call    DrawThickIsle2
                ld      hl,x1908
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 100
;-----------------------------------------------------------------------------

                ORG     38950

prg.Room.100:   call    DrawLeft
                call    DrawRight
                ld      hl,x0e06
                call    DrawFlower1
                ld      hl,x050a
                call    DrawTV1
                ld      hl,x0e0e
                call    DrawThickIsle1
                ld      hl,x1410
                call    DrawBooks
                ld      hl,x1908
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 101
;-----------------------------------------------------------------------------

                ORG     39000

prg.Room.101:   call    DrawTop
                call    DrawBottom2
                call    DrawLeft
                ld      hl,x1202
                call    DrawFlower3
                ld      hl,x1c10
                call    DrawThickIsle1
                ld      hl,x140c
                call    DrawFlower1
                ld      hl,x020a
                call    DrawPicture3
                ld      hl,x0b10
                call    DrawTV1
                ret

;-----------------------------------------------------------------------------
; Room 102
;-----------------------------------------------------------------------------

                ORG     39050

prg.Room.102:   call    DrawTop
                call    DrawBottom2
                call    DrawRight
                ld      hl,x0c02
                call    DrawLamp1
                ld      hl,x0212
                call    DrawThickIsle4
                ld      hl,x170a
                call    DrawFlower2
                ld      hl,x0e0e
                call    DrawPicture2
                ld      hl,x1103
                call    DrawDisk
                ret

;-----------------------------------------------------------------------------
; Room 103
;-----------------------------------------------------------------------------

                ORG     39100

prg.Room.103:   call    DrawLeft
                call    DrawRight
                ld      hl,x0206
                call    DrawPicture1
                ld      hl,x0a0a
                call    DrawThickIsle4
                ld      hl,x0c0a
                call    DrawBeltRight2
                ld      hl,x160e
                call    DrawThickIsle1
                ld      hl,x1110
                call    DrawFlower1
                ld      hl,x1904
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 104
;-----------------------------------------------------------------------------

                ORG     39150

prg.Room.104:   call    DrawBottom
                call    DrawTop2
                call    DrawLeft
                ld      hl,x1806
                call    DrawFlower1
                ld      hl,x0e06
                call    DrawPicture1
                ld      hl,x050a
                call    DrawFlower2
                ld      hl,x0e0e
                call    DrawThickIsle4
                ld      hl,x1a12
                call    DrawBeltLeft2
                ret

;-----------------------------------------------------------------------------
; Room 105
;-----------------------------------------------------------------------------

                ORG     39200

prg.Room.105:   call    DrawBottom
                call    DrawTop2
                call    DrawRight
                ld      hl,x0206
                call    DrawFlower2
                ld      hl,x1706
                call    DrawPicture3
                ld      hl,x0f0a
                call    DrawThickIsle2
                ld      hl,x060e
                call    DrawTable1
                ld      hl,x1412
                call    DrawBeltLeft2
                ret

;-----------------------------------------------------------------------------
; Room 106
;-----------------------------------------------------------------------------

                ORG     39250

prg.Room.106:   call    DrawTop
                call    DrawBottom
                call    DrawLeft
                ld      hl,x0802
                call    DrawFlower3
                ld      hl,x1502
                call    DrawFlower3
                ld      hl,x1008
                call    DrawFlower2
                ld      hl,x020e
                call    DrawFlower1
                ld      hl,x120e
                call    DrawBed
                ld      hl,x0208
                call    DrawCandle1
                ret

;-----------------------------------------------------------------------------
; Room 107
;-----------------------------------------------------------------------------

                ORG     39300

prg.Room.107:   call    DrawTop
                call    DrawBottom2
                call    DrawRight
                ld      hl,x0e02
                call    DrawFlower3
                ld      hl,x1c0a
                call    DrawThickIsle1
                ld      hl,x040a
                call    DrawFlower1
                ld      hl,x140e
                call    DrawPicture2
                ld      hl,x0b10
                call    DrawWardrobe1
                ret

;-----------------------------------------------------------------------------
; Room 108
;-----------------------------------------------------------------------------

                ORG     39350

prg.Room.108:   call    DrawTop
                call    DrawBottom
                call    DrawLeft
                ld      hl,x0e02
                call    DrawLamp2
                ld      hl,x1406
                call    DrawPicture3
                ld      hl,x0408
                call    DrawTV1
                ld      hl,x120e
                call    DrawFlower1
                ld      hl,x0a0e
                call    DrawBed
                ld      hl,x020f
                call    DrawDisk
                ret

;-----------------------------------------------------------------------------
; Room 109
;-----------------------------------------------------------------------------

                ORG     39400

prg.Room.109:   call    DrawTop
                call    DrawBottom
                ld      hl,x0602
                call    DrawLamp2
                ld      hl,x1502
                call    DrawLamp2
                ld      hl,x1206
                call    DrawPicture3
                ld      hl,x020a
                call    DrawPicture2
                ld      hl,x140e
                call    DrawFlower2
                ld      hl,x0a0e
                call    DrawTable2
                ret

;-----------------------------------------------------------------------------
; Room 110
;-----------------------------------------------------------------------------

                ORG     39450

prg.Room.110:   call    DrawTop
                call    DrawBottom2
                call    DrawRight
                ld      hl,x0e02
                call    DrawFlower3
                ld      hl,x050a
                call    DrawPicture1
                ld      hl,x0e0e
                call    DrawThickIsle4
                ld      hl,x0212
                call    DrawThickIsle4
                ld      hl,x1908
                call    DrawCandle2
                ret

;-----------------------------------------------------------------------------
; Room 111
;-----------------------------------------------------------------------------

                ORG     39500

prg.Room.111:   call    DrawTop
                call    DrawBottom
                call    DrawLeft
                ld      hl,x0e02
                call    DrawFlower3
                ld      hl,x050a
                call    DrawPicture3
                ld      hl,x0e0e
                call    DrawThickIsle4
                ld      hl,x160e
                call    DrawWardrobe1
                ld      hl,x0a12
                call    DrawBeltLeft2
                ld      hl,x020f
                call    DrawDisk
                ret

;-----------------------------------------------------------------------------
; Room 112
;-----------------------------------------------------------------------------

                ORG     39550

prg.Room.112:   call    DrawTop
                call    DrawBottom
                ld      hl,x0602
                call    DrawLamp2
                ld      hl,x1502
                call    DrawLamp2
                ld      hl,x060a
                call    DrawFlower1
                ld      hl,x0b0a
                call    DrawPicture2
                ld      hl,x140e
                call    DrawWardrobe2
                ld      hl,x0612
                call    DrawBeltLeft2
                ret

;-----------------------------------------------------------------------------
; Room 113
;-----------------------------------------------------------------------------

                ORG     39600

prg.Room.113:   call    DrawTop
                call    DrawBottom2
                ld      hl,x0602
                call    DrawLamp1
                ld      hl,x1502
                call    DrawLamp1
                ld      hl,x170a
                call    DrawFlower2
                ld      hl,x0e0e
                call    DrawBooks
                ld      hl,x0b12
                call    DrawThickIsle4
                ret

;-----------------------------------------------------------------------------
; Room 114
;-----------------------------------------------------------------------------

                ORG     39650

prg.Room.114:   call    DrawTop
                call    DrawBottom2
                call    DrawRight
                ld      hl,x0e02
                call    DrawLamp2
                ld      hl,x190a
                call    DrawWardrobe1
                ld      hl,x160e
                call    DrawThickIsle4
                ld      hl,x0d0a
                call    DrawPicture2
                ld      hl,x040e
                call    DrawTable1
                ld      hl,x0212
                call    DrawThickIsle4
                ret

;-----------------------------------------------------------------------------
; Room 115
;-----------------------------------------------------------------------------

                ORG     39700

prg.Room.115:   call    DrawTop
                call    DrawBottom2
                call    DrawLeft
                ld      hl,x0e02
                call    DrawFlower3
                ld      hl,x1b0e
                call    DrawThickIsle1
                ld      hl,x160a
                call    DrawPicture1
                ld      hl,x0e0a
                call    DrawThickIsle4
                ld      hl,x080c
                call    DrawThickIsle1
                ld      hl,x0e10
                call    DrawFlower1
                ret

;-----------------------------------------------------------------------------
; Room 116
;-----------------------------------------------------------------------------

                ORG     39750

prg.Room.116:   call    DrawTop
                call    DrawBottom
                ld      hl,x0406
                call    DrawPicture1
                ld      hl,x1808
                call    DrawThickIsle4
                ld      hl,x1008
                call    DrawThickIsle4
                ld      hl,x0e0a
                call    DrawThickIsle1
                ld      hl,x0c0c
                call    DrawThickIsle1
                ld      hl,x050e
                call    DrawTable1
                ld      hl,x140e
                call    DrawBed
                ret

;-----------------------------------------------------------------------------
; Room 117
;-----------------------------------------------------------------------------

                ORG     39800

prg.Room.117:   call    DrawTop
                call    DrawBottom
                ld      hl,x0008
                call    DrawThickIsle4
                ld      hl,x0c08
                call    DrawThickIsle4
                ld      hl,x0408
                call    DrawBeltRight2
                ld      hl,x0c08
                call    DrawBeltLeft2
                ld      hl,x1508
                call    DrawFlower2
                ld      hl,x1b08
                call    DrawFlower2
                ld      hl,x0e0e
                call    DrawBooks
                ret

;-----------------------------------------------------------------------------
; Room 118
;-----------------------------------------------------------------------------

                ORG     39850

prg.Room.118:   call    DrawTop
                call    DrawBottom
                ld      hl,x0008
                call    DrawThickIsle1
                ld      hl,x0808
                call    DrawThickIsle4
                ld      hl,x0808
                call    DrawBeltLeft2
                ld      hl,x1008
                call    DrawThickIsle4
                ld      hl,x1808
                call    DrawThickIsle4
                ld      hl,x140e
                call    DrawWardrobe2
                ld      hl,x0c12
                call    DrawBeltRight3
                ret

;-----------------------------------------------------------------------------
; Room 119
;-----------------------------------------------------------------------------

                ORG     39900

prg.Room.119:   call    DrawTop
                call    DrawBottom
                ld      hl,x1202
                call    DrawLamp1
                ld      hl,x0008
                call    DrawThickIsle4
                ld      hl,x0408
                call    DrawBeltRight2
                ld      hl,x0a0a
                call    DrawThickIsle1
                ld      hl,x160a
                call    DrawFlower2
                ld      hl,x0a0e
                call    DrawBooks
                ld      hl,x1012
                call    DrawBeltRight3
                ret

;-----------------------------------------------------------------------------
; Room 120
;-----------------------------------------------------------------------------

                ORG     39950

prg.Room.120:   call    DrawBottom
                ld      hl,x0000
                call    DrawThickIsle4
                ld      hl,x0202
                call    DrawLamp1
                ld      hl,x1109
                ld      (ImagePos),hl
                ld      hl,x090f
                ld      (ImageSize),hl
                ld      hl,xd90d
                ld      (ImageData),hl
                call    DrawImage
                ret


;*****************************************************************************
; Man Variables
;*****************************************************************************

                ORG     39997

Falls:          DEFB    0                               ; number of falls
ManY:           DEFB    15                              ; man y position
ManX:           DEFB    14                              ; man x position

ManPos          EQU     ManY

;------------------------------------------------------------------------------
; DrawMan
;------------------------------------------------------------------------------

                ORG     40000

DrawMan:        ld      hl,(ManPos)                     ; get man position
                ld      (ImagePos),hl
                ld      hl,x0302                        ; height,width
                ld      (ImageSize),hl
                ld      a,x00                           ; attribute for clear
                ld      (ImageClrAttr),a
                call    ClearImage                      ; clear man
                ld      a,(ManX)
                nop
dm.Dir:         inc     a                               ; new x position
                ld      (ManX),a
RedrawMan:      ld      hl,(ManPos)                     ; get man position
                ld      (ImagePos),hl
                ld      hl,x0302                        ; height,width
                ld      (ImageSize),hl
                ld      a,(ManPhase)                    ; get man phase
                ld      b,a
dm.DataAddr:    ld      hl,img.ManLeft1-54              ; phase 1 address-size
                ld      de,54                           ; size
dm.CalcAddr:    add     hl,de
                djnz    dm.CalcAddr                     ; get current address
                ld      (ImageData),hl
                call    DrawImage                       ; draw man
                ret

;------------------------------------------------------------------------------
; ClearMan
;------------------------------------------------------------------------------
ClearMan:       ld      hl,(ManPos)                     ; get man position
                ld      (ImagePos),hl
                ld      hl,x0302                        ; height,width
                ld      (ImageSize),hl
                ld      a,x00                           ; attribute for clear
                ld      (ImageClrAttr),a
                call    ClearImage                      ; clear man
                ret

;------------------------------------------------------------------------------
; ClearEnemy
;------------------------------------------------------------------------------
ClearEnemy:     ld      hl,(EnemyPos)
                ld      (ImagePos),hl
                ld      hl,x0302
                ld      (ImageSize),hl
                call    ClearImage
                ret

;------------------------------------------------------------------------------
; MoveMan
;------------------------------------------------------------------------------

                ORG     40100

MoveMan:        ld      a,(ManPhase)                    ; get man phase
                cp      7                               ; out of range ?
                jr      nc,mm.DrawMan
                ld      a,(dm.Dir)                      ; get man direction
                cp      60                              ; right (inc a) ?
                jr      nz,mm.NoRight
                ld      a,(ManPhase)                    ; get man phase
                cp      4                               ; right : phases 4..6
                jr      c,mm.ROut
                cp      6
                jr      z,mm.ROut
                inc     a
                ld      (ManPhase),a                    ; set new phase
                jr      mm.DrawMan
mm.ROut:        ld      a,4
                ld      (ManPhase),a                    ; set new phase
                jr      mm.DrawMan
mm.NoRight:     ld      a,(dm.Dir)                      ; get man direction
                cp      61                              ; left (dec a) ?
                jr      nz,mm.DrawMan
                ld      a,(ManPhase)                    ; get man phase
                cp      4                               ; left : phases 1..3
                jr      nc,mm.LOut
                cp      3
                jr      z,mm.LOut
                inc     a
                ld      (ManPhase),a                    ; set new phase
mm.Draw:        jr      mm.DrawMan
mm.LOut:        ld      a,1
                ld      (ManPhase),a                    ; set new phase
mm.DrawMan:     jp      DrawMan

;------------------------------------------------------------------------------
; FallEnd
;------------------------------------------------------------------------------
FallEnd:        ld      a,0
                ld      (Falls),a                       ; falls = 0
                ld      a,(ManPhase)
                cp      8
                jr      nz,fe.No8
                ld      a,4
                jr      fe.OK
fe.No8:         ld      a,1
fe.OK:          ld      (ManPhase),a                    ; set phase
                call    RedrawMan                       ; draw man
                ret

;------------------------------------------------------------------------------
; Variables
;------------------------------------------------------------------------------

                ORG     40199

ManPhase:       DEFB    5                               ; phase

;------------------------------------------------------------------------------
; MainLoop
;------------------------------------------------------------------------------

                ORG     40200

MainLoop:       ld      a,xdf                           ; read keyborad
                in      a,(xfe)
                and     x1f
                cp      x1e                             ; 'P' pressed ?
                jr      nz,ma.NoRight
                ld      a,(ManY)                        ; get man y position
                ld      b,a
                ld      a,22
                sub     b
                add     a,a
                add     a,a
                add     a,a
                dec     a                               ; 8*(22-y)-1
                ld      b,a
                ld      a,(ManX)                        ; get man x position
                add     a,2
                add     a,a
                add     a,a
                add     a,a                             ; 8*(x+2)
                ld      c,a
                push    bc
                call    PIXEL_ADD                       ; PIXEL-ADD
                pop     bc
                ld      a,(hl)
                cp      0                               ; can I go right ?
                jr      nz,ma.NoRight
                ld      a,b
                sub     8                               ; 1 char up
                ld      b,a
                push    bc
                call    PIXEL_ADD                       ; PIXEL-ADD
                pop     bc
                ld      a,(hl)
                cp      0                               ; can I go right ?
                jr      nz,ma.NoRight
                ld      a,b
                sub     8                               ; 1 char up
                ld      b,a
                call    PIXEL_ADD                       ; PIXEL-ADD
                ld      a,(hl)
                cp      0                               ; can I go right ?
                jr      nz,ma.NoRight
                ld      a,(ManX)                        ; get man x position
                cp      x1e                             ; x=30 ?
                jr      z,ma.NoRight
                ld      a,x3c                           ; dir = right (inc a)
                ld      (dm.Dir),a
                call    MoveMan                         ; MoveMan
ma.NoRight:     ld      a,xdf                           ; read keyborad
                in      a,(xfe)
                and     x1f
                cp      x1d                             ; 'O' pressed ?
                jr      nz,ma.NoLeft
                ld      a,(ManY)                        ; get man y position
                ld      b,a
                ld      a,22
                sub     b
                add     a,a
                add     a,a
                add     a,a
                dec     a                               ; 8*(22-y)-1
                ld      b,a
                ld      a,(ManX)                        ; get man x position
                dec     a
                add     a,a
                add     a,a
                add     a,a                             ; 8*(x-1)
                ld      c,a
                push    bc
                call    PIXEL_ADD                       ; PIXEL-ADD
                pop     bc
                ld      a,(hl)
                cp      0                               ; can I go left ?
                jr      nz,ma.NoLeft
                ld      a,b
                sub     8                               ; 1 char up
                ld      b,a
                push    bc
                call    PIXEL_ADD                       ; PIXEL-ADD
                pop     bc
                ld      a,(hl)
                cp      0                               ; can I go left ?
                jr      nz,ma.NoLeft
                ld      a,b
                sub     8                               ; 1 char up
                ld      b,a
                call    PIXEL_ADD                       ; PIXEL-ADD
                ld      a,(hl)
                cp      0                               ; can I go left ?
                jr      nz,ma.NoLeft
                ld      a,(ManX)                        ; get man x position
                cp      0                               ; x=0 ?
                jr      z,ma.NoLeft
                ld      a,x3d                           ; dir = left (dec a)
                ld      (dm.Dir),a
                call    MoveMan                         ; MoveMan
ma.NoLeft:      nop
                nop
                nop
                nop
                nop
                nop
                nop
                ld      a,(ManPhase)
                cp      7                               ; phase < 7 ?
                jr      c,ma.PhaseOK
                ld      a,xdf                           ; phase > 7
                in      a,(xfe)                         ; read keyboard
                and     x1f
                cp      x1e                             ; 'P' pressed ?
                jr      nz,ma.PhNoP
                ld      a,8
                jr      ma.SetPhase
ma.PhNoP:       cp      x1d                             ; 'O' pressed ?
                jr      nz,ma.PhaseOK
                ld      a,7
ma.SetPhase:    ld      (ManPhase),a
ma.PhaseOK:     ld      a,xdf
                in      a,(xfe)
                and     x1f
                cp      x1e                             ; 'P' pressed ?
                jr      nz,ma.NoRoomR
                ld      a,(ManX)
                cp      x1e                             ; man x pos = 30 ?
                jr      nz,ma.NoRoomR
                ld      a,0
                ld      (ManX),a                        ; man x pos = 0
                ld      a,(RoomNumber)
                inc     a                               ; inc room number
                ld      (RoomNumber),a
                call    DrawRoom                        ; draw room
ma.NoRoomR:     ld      a,xdf
                in      a,(xfe)
                and     x1f
                cp      x1d                             ; 'O' pressed ?
                jr      nz,ma.NoRoomL
                ld      a,(ManX)
                cp      0                               ; man x pos = 0 ?
                jr      nz,ma.NoRoomL
                ld      a,30
                ld      (ManX),a                        ; man x pos = 30
                ld      a,(RoomNumber)
                dec     a                               ; dec room number
                ld      (RoomNumber),a
                call    DrawRoom                        ; draw room
ma.NoRoomL:     nop
                nop
                nop
                nop
                nop
                nop
                ld      a,(ManY)                        ; man y pos
                inc     a
                inc     a
                inc     a
                ld      b,a
                ld      a,22
                sub     b                               ; 22-(y+3)
                add     a,a
                add     a,a
                add     a,a
                dec     a
                ld      b,a                             ; b = 8*(22-(y+3))-1
                ld      a,(ManX)                        ; man x pos
                add     a,a
                add     a,a
                add     a,a
                ld      c,a                             ; c = 8*x
                call    PIXEL_ADD                       ; PIXEL-ADD
                ld      a,(hl)
                cp      0                               ; is there anything
                jr      nz,ma.OnGround                  ; under man ?
                inc     hl
                ld      a,(hl)
                cp      0
                jr      nz,ma.OnGround
                ld      a,(ManY)
                cp      17                              ; man y pos = 17 ?
                jr      z,ma.RoomD
                ld      a,(ManPhase)
                cp      7                               ; phase >= 7 ?
                jr      nc,ma.Fall
                cp      4                               ; left or right ?
                jr      c,ma.FallLeft
                ld      a,8
                jr      ma.FPhaseOK
ma.FallLeft:    ld      a,7
ma.FPhaseOK:    ld      (ManPhase),a                    ; set phase
ma.Fall:        call    ClearMan                        ; clear man
                ld      a,(ManY)
                inc     a                               ; inc man y pos
                ld      (ManY),a
                ld      de,1
                ld      hl,256
                call    BEEPER                          ; BEEPER
                call    RedrawMan                       ; draw man
                jr      ma.IncFall
ma.RoomD:       ld      a,(RoomNumber)
                sub     10                              ; room = room - 10
                ld      (RoomNumber),a
                ld      a,0
                ld      (ManY),a                        ; man y pos = 0
                call    DrawRoom                        ; draw room
ma.IncFall:     ld      a,(Falls)
                inc     a                               ; inc number of falls
                ld      (Falls),a
                jr      ma.FallOK
ma.OnGround:    ld      a,(Falls)
                cp      10                              ; falls = 10 ?
                jp      nc,DecLives
                cp      0
                jr      z,ma.Fall0                      ; falls = 0 ?
                call    FallEnd                         ; fall end
ma.FallOK:      nop
                nop
                nop
ma.Fall0:       ld      a,(Falls)
                cp      0                               ; falls = 0 ?
                jp      nz,ma.NoJumpR
                ld      a,x7f
                in      a,(xfe)
                and     x1f
                cp      x1b                             ; 'M' pressed ?
                jp      nz,ma.NoJumpR
                ld      a,(ManPhase)
                cp      4                               ; phase right ?
                jp      c,ma.NoJumpR
ma.JumpRStart:  ld      b,4                             ; jump right 4 times
ma.JumpRLoop:   push    bc
                ld      a,(ManX)
                cp      30                              ; man x pos = 30 ?
                jr      nc,ma.JRBreak
                ld      a,(ManY)
                cp      1                               ; man y pos = 1 ?
                jp      z,ma.JRRoomU
                ld      a,(ManY)
                dec     a
                ld      b,a
                ld      a,22
                sub     b
                add     a,a
                add     a,a
                add     a,a
                dec     a
                ld      b,a                             ; b = 8*(22-(y-1))-1
                ld      a,(ManX)
                nop
                inc     a
                add     a,a
                add     a,a
                add     a,a
                ld      c,a                             ; c = 8*(x+1)
                push    bc
                call    PIXEL_ADD                       ; PIXEL-ADD
                pop     bc
                ld      a,(hl)
                cp      0                               ; is there anything ?
                jr      nz,ma.JRBreak
                push    bc
                call    ClearMan                        ; clear man
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                pop     bc
                ld      a,8
                add     a,c
                ld      c,a
                push    bc
                call    PIXEL_ADD                       ; PIXEL-ADD
                pop     bc
                ld      a,(hl)
                cp      0                               ; is there anything ?
                jr      nz,ma.JRNoRight
                ld      a,b
                ld      b,16
                sub     b
                ld      b,a
                push    bc
                call    PIXEL_ADD                       ; PIXEL-ADD
                pop     bc
                ld      a,(hl)
                cp      0                               ; is there anything ?
                jr      nz,ma.JRNoRight
                ld      a,(ManX)
                inc     a                               ; inc man x pos
                ld      (ManX),a
ma.JRNoRight:   ld      a,(ManY)
                dec     a                               ; dec man y pos
                ld      (ManY),a
                ld      a,8
                ld      (ManPhase),a                    ; set phase
                call    RedrawMan                       ; draw man
                nop
                nop
                nop
                nop
                nop
                call    ma.JRBeep                       ; beep
                pop     bc
                djnz    ma.JumpRLoop                    ; next
                jr      ma.JREnd
ma.JRBreak:     pop     bc
ma.JREnd:       jr      ma.JRRedraw
ma.JRBeep:      ld      de,x0028
                ld      hl,x0200
                call    BEEPER                          ; BEEPER
                ret
ma.JRRedraw:    ld      a,4
                ld      (ManPhase),a                    ; set phase
                call    RedrawMan                       ; draw man
                nop
                nop
                nop
ma.NoJumpR:     ld      a,(Falls)
                cp      0                               ; falls = 0 ?
                jp      nz,ma.NoJumpL
                ld      a,x7f
                in      a,(xfe)
                and     x1f
                cp      27                              ; 'M' pressed ?
                jp      nz,ma.NoJumpL
                ld      a,(ManPhase)
                cp      4                               ; phase left ?
                jp      nc,ma.NoJumpL
ma.JumpLStart:  ld      b,4                             ; jump left 4 times
ma.JumpLLoop:   push    bc
                ld      a,(ManX)
                cp      0                               ; man x pos = 0 ?
                jr      z,ma.JLBreak
                ld      a,(ManY)
                cp      1                               ; man y pos = 1 ?
                jp      z,ma.JLRoomU
                ld      a,(ManY)
                dec     a
                ld      b,a
                ld      a,22
                sub     b
                add     a,a
                add     a,a
                add     a,a
                dec     a
                ld      b,a                             ; b = 8*(22-(y-1))-1
                ld      a,(ManX)
                nop
                nop
                add     a,a
                add     a,a
                add     a,a
                ld      c,a                             ; c = 8*(x+1)
                push    bc
                call    PIXEL_ADD                       ; PIXEL-ADD
                pop     bc
                ld      a,(hl)
                cp      0                               ; is there anything ?
                jr      nz,ma.JLBreak
                push    bc
                call    ClearMan                        ; clear man
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                pop     bc
                ld      a,c
                ld      c,8
                sub     c
                ld      c,a
                push    bc
                call    PIXEL_ADD                       ; PIXEL-ADD
                pop     bc
                ld      a,(hl)
                cp      0                               ; is there anything ?
                jr      nz,ma.JLNoLeft
                ld      a,b
                ld      b,16
                sub     b
                ld      b,a
                push    bc
                call    PIXEL_ADD                       ; PIXEL-ADD
                pop     bc
                ld      a,(hl)
                cp      0                               ; is there anything ?
                jr      nz,ma.JLNoLeft
                ld      a,(ManX)
                dec     a                               ; dec man x pos
                ld      (ManX),a
ma.JLNoLeft:    ld      a,(ManY)
                dec     a                               ; dec man y pos
                ld      (ManY),a
                ld      a,7
                ld      (ManPhase),a                    ; set phase
                call    RedrawMan                       ; draw man
                nop
                nop
                nop
                nop
                nop
                call    ma.JLBeep                       ; beep
                pop     bc
                djnz    ma.JumpLLoop                    ; next
                jr      ma.JLEnd
ma.JLBreak:     pop     bc
ma.JLEnd:       jr      ma.JLRedraw
ma.JLBeep:      ld      de,x0028
                ld      hl,x0200
                call    BEEPER                          ; BEEPER
                ret
ma.JLRedraw:    ld      a,3
                ld      (ManPhase),a                    ; set phase
                call    RedrawMan                       ; draw man
                nop
                nop
ma.NoJumpL:     jr      ma.JumpOK
ma.JRRoomU:     pop     bc
                ld      a,17
                ld      (ManY),a                        ; man y pos = 17
                ld      a,(RoomNumber)
                add     a,10                            ; room = room + 10
                ld      (RoomNumber),a
                call    DrawRoom                        ; draw room
                jp      ma.JumpRStart                   ; go back
ma.JLRoomU:     pop     bc
                ld      a,17
                ld      (ManY),a                        ; man y pos = 17
                ld      a,(RoomNumber)
                add     a,10                            ; room = room + 10
                ld      (RoomNumber),a
                call    DrawRoom                        ; draw room
                jp      ma.JumpLStart                   ; go back
ma.JumpOK:      nop
                nop
                nop
                nop
                call    EnemyCollision                  ; enemy
                nop
                ld      a,xdf
                in      a,(xfe)
                and     x1f
                cp      27                              ; 'I' pressed ?
                jr      nz,ma.NoInfo
                call    GameInfo                        ; game info
ma.NoInfo:      call    FlashHeart
                nop
                nop
                nop
                nop
                ld      a,(CurrentDisk)                 ; have I got a disk ?
                cp      0
                jr      nz,ma.NoGetDisk
                ld      a,(DiskPrinted)
                ld      b,a
                add     a,a
                add     a,a
                add     a,b
                ld      d,0
                ld      e,a
                ld      hl,dat.DiskPos
                add     hl,de                           ; DiskPos+dp*5
                ld      a,(hl)
                ld      b,a
                ld      a,(RoomNumber)
                cp      b                               ; am I in that room ?
                jr      nz,ma.NoGetDisk
                ld      a,(ManY)                        ; position OK ?
                ld      b,a
                inc     hl
                ld      a,(hl)
                cp      b
                jr      nz,ma.NoGetDisk
                ld      a,(ManX)
                ld      b,a
                inc     hl
                ld      a,(hl)
                cp      b
                jr      nz,ma.NoGetDisk
                push    hl
                dec     a
                ld      b,a
                dec     hl
                ld      a,(hl)
                ld      l,a
                ld      h,b
                ld      (ImagePos),hl
                ld      hl,x0101
                ld      (ImageSize),hl
                call    ClearImage                      ; clear disk
                pop     hl
                inc     hl
                ld      a,(hl)
                ld      c,a
                inc     hl
                ld      a,(hl)
                ld      b,a
                push    bc
                pop     hl
                ld      a,201
                ld      (hl),a                          ; ret into room prog.
                ld      a,(DiskPrinted)
                inc     a
                ld      (CurrentDisk),a
                call    ShowCurrDisk                    ; show current disk
                ld      de,36
                ld      hl,256
                call    BEEPER                          ; beep
ma.NoGetDisk:   nop
                nop
                nop
                ld      a,(RoomNumber)
                cp      14                              ; computer room 1 ?
                jr      z,ma.Computer
                cp      94                              ; computer room 2 ?
                jp      nz,ma.NoDiskPrint
ma.Computer:    ld      a,(CurrentDisk)                 ; have I got a disk ?
                cp      0
                jp      z,ma.NoDiskPrint
                ld      a,(ManY)                        ; position OK ?
                cp      11
                jr      nz,ma.NoPrintPos
                ld      a,(ManX)
                cp      21
ma.NoPrintPos:  jp      nz,ma.NoDiskPrint
                ld      a,6
                ld      (22951),a                       ; set printer paper
                ld      (22952),a                       ; attributes
                ld      hl,x0015                        ; clear disk info
                ld      (ImagePos),hl
                ld      hl,x0102
                ld      (ImageSize),hl
                call    ClearImage
                ld      a,(CurrentDisk)
                ld      b,a
                ld      (DiskPrinted),a
                ld      a,0
                ld      (CurrentDisk),a
                inc     a
                ld      (NextDisk),a
                ld      bc,x4038                        ; (56,64)
                call    PIXEL_ADD                       ; PIXEL-ADD
                push    hl
                ld      a,(DiskPrinted)
                ld      b,a
                ld      hl,dat.DiskPrint1-16            ; calc data address
                ld      de,16
ma.PrintAddr:   add     hl,de
                djnz    ma.PrintAddr
                ex      de,hl                           ; de : data
                pop     hl                              ; hl : screen
                ld      b,7                             ; 7 times
ma.PrintLoop:   push    bc
                push    de
                push    hl
                ld      a,(de)                          ; copy one line
                ld      (hl),a
                inc     de
                inc     hl
                ld      a,(de)
                ld      (hl),a
                ld      b,18
ma.PrintBeep:   push    bc                              ; beep
                ld      de,1
                ld      hl,256
                call    BEEPER
                halt
                ld      de,1
                ld      hl,2560
                call    BEEPER
                pop     bc
                djnz    ma.PrintBeep
                ld      hl,18343                        ; scroll up
                ld      b,8                             ; 8 lines
ma.PrintScroll: push    bc
                ld      b,2                             ; 2 bytes per line
ma.PrintUp:     push    hl
                ld      de,256
                add     hl,de
                ld      a,(hl)
                pop     hl
                ld      (hl),a
                inc     hl
                djnz    ma.PrintUp
                ld      de,254
                add     hl,de
                pop     bc
                djnz    ma.PrintScroll
                pop     hl
                pop     de
                inc     de                              ; inc data pointer
                inc     de
                pop     bc
                djnz    ma.PrintLoop
                call    GotALife                        ; got a life
                nop
                nop
ma.NoDiskPrint: ld      a,(RoomNumber)
                cp      46                              ; room lift up ?
                jp      nz,ma.NoLiftUp
                ld      a,(ManY)                        ; position OK ?
                cp      15
                jp      nz,ma.NoLiftUp
                ld      a,(ManX)
                cp      12
                jp      nz,ma.NoLiftUp
                call    ma.LiftUp
                ld      b,4
ma.LiftUpLoop:  push    bc
                ld      a,5                             ; calc room number
                sub     b
                ld      b,a
                ld      a,46
ma.LUCalcRoom:  add     a,10
                djnz    ma.LUCalcRoom
                ld      hl,x0c0f
                ld      (ManPos),hl
                ld      (RoomNumber),a
                call    DrawRoom
                call    ma.LiftUp
                pop     bc
                djnz    ma.LiftUpLoop
                ld      hl,x0b12
                ld      (x83f5),hl
                ld      hl,x0c0f
                ld      (ManPos),hl
                ld      a,96
                ld      (RoomNumber),a
                call    DrawRoom
                ld      hl,x0b12
                ld      (x83f5),hl
                ld      hl,x8413
                jp      ma.NoLiftUp
ma.LiftUp:      ld      b,15                            ; lift up one room
ma.LULoop:      push    bc
                ld      a,b
                ld      (ManY),a
                call    RedrawMan                       ; redraw man
                ld      a,(ManY)
                add     a,3
                ld      (x83f5),a
                call    DrawLiftUp                      ; draw lift
                ld      de,18                           ; beep
                ld      hl,2304
                call    BEEPER
                ld      h,11                            ; clear lift and man
                ld      a,(ManY)
                ld      l,a
                ld      (ImagePos),hl
                ld      hl,x0404
                ld      (ImageSize),hl
                call    ClearImage
                pop     bc
                djnz    ma.LULoop
                ret
ma.NoLiftUp:    nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                ld      a,(RoomNumber)
                cp      96                              ; room lift down ?
                jp      nz,ma.NoLiftDown
                ld      a,(ManY)                        ; position OK ?
                cp      15
                jp      nz,ma.NoLiftDown
                ld      a,(ManX)
                cp      16
                jp      nz,ma.NoLiftDown
                ld      a,86
                ld      (RoomNumber),a
                call    DrawRoom
                ld      b,5
ma.LiftDnLoop:  push    bc
                ld      a,36                            ; calc room number
ma.LDCalcRoom:  add     a,10
                djnz    ma.LDCalcRoom
                ld      hl,x1000
                ld      (ManPos),hl
                ld      (RoomNumber),a
                call    DrawRoom
                call    ma.LiftDown
                pop     bc
                djnz    ma.LiftDnLoop
                ld      hl,x0f12
                ld      (x8413),hl
                jp      ma.NoLiftDown
ma.LiftDown:    ld      b,15                            ; lift down one room
ma.LDLoop:      push    bc
                ld      a,16                            ; clear lift and man
                sub     b
                ld      (ManY),a
                ld      h,15
                dec     a
                ld      l,a
                ld      (ImagePos),hl
                ld      hl,x0404
                ld      (ImageSize),hl
                call    ClearImage
                call    RedrawMan                       ; redraw man
                ld      a,(ManY)
                add     a,3
                ld      (x8413),a
                call    DrawLiftDown                    ; draw lift
                ld      de,18                           ; beep
                ld      hl,2304
                call    BEEPER
                pop     bc
                djnz    ma.LDLoop
                ret
ma.NoLiftDown:  ld      a,(ManY)                        ; man positions
                add     a,3
                ld      b,a
                ld      a,22
                sub     b
                add     a,a
                add     a,a
                add     a,a
                dec     a
                ld      b,a
                ld      a,(ManX)
                add     a,a
                add     a,a
                add     a,a
                ld      c,a
                call    PIXEL_ADD                       ; PIXEL-ADD
                ld      a,(hl)
                cp      x55                             ; belt right ?
                jr      z,ma.BeltRight
                inc     hl
                ld      a,(hl)
                cp      xaa
                jr      z,ma.BeltLeft                   ; belt left ?
                jr      ma.NoBelt
ma.BeltRight:   ld      a,x3c                           ; inc a
                jr      ma.BeltOK
ma.BeltLeft:    ld      a,x3d                           ; dec a
ma.BeltOK:      ld      (dm.Dir),a
                call    ManBeep
ma.NoBelt:      nop

                ld      a,(RoomNumber)                  ; room number
                ld      e,a
                ld      d,0
                ld      hl,0
                add     hl,de
                add     hl,hl
                add     hl,hl
                ld      de,dat.EnemyData-4              ; room * 4 + 44284
                add     hl,de
                ld      a,(hl)
                cp      0
                jp      z,ma.NoEnemy
                ld      hl,(EnemyPos)                   ; clear enemy
                ld      (ImagePos),hl
                ld      hl,x0302
                ld      (ImageSize),hl
                call    ClearImage
                ld      a,(EnemyY)
                dec     a                               ; y-1
                ld      l,a
                ld      h,0
                add     hl,hl
                add     hl,hl
                add     hl,hl
                add     hl,hl
                add     hl,hl                           ; (y-1)*32
                ld      a,(EnemyX)
                ld      e,a
                ld      d,0
                add     hl,de                           ; (y-1)*32+x
                ld      de,22528                        ; video attributes
                add     hl,de
                push    hl
                ld      a,(hl)
                cp      0                               ; collision up ?
                jr      nz,ma.EnCollUp
                inc     hl
                ld      a,(hl)
                cp      0
                jr      nz,ma.EnCollUp
                jr      ma.EnNCUp
ma.EnCollUp:    ld      a,1
                ld      (EnemydY),a                     ; dy = 1
ma.EnNCUp:      ld      de,127
                add     hl,de
                ld      a,(hl)
                cp      0                               ; collision down ?
                jr      nz,ma.EnCollDown
                inc     hl
                ld      a,(hl)
                cp      0
                jr      nz,ma.EnCollDown
                jr      ma.EnNCDown
ma.EnCollDown:  ld      a,255
                ld      (EnemydY),a                     ; dy = -1
ma.EnNCDown:    pop     hl
                push    hl
                ld      de,31
                add     hl,de
                inc     de
                ld      a,(hl)
                cp      0                               ; collision left ?
                jr      nz,ma.EnCollLeft
                add     hl,de
                ld      a,(hl)
                cp      0
                jr      nz,ma.EnCollLeft
                add     hl,de
                ld      a,(hl)
                cp      0
                jr      nz,ma.EnCollLeft
                jr      ma.EnNCLeft
ma.EnCollLeft:  ld      a,1
                ld      (EnemydX),a                     ; dx = 1
ma.EnNCLeft:    pop     hl
                ld      de,34
                add     hl,de
                dec     de
                dec     de
                ld      a,(hl)
                cp      0                               ; collision right ?
                jr      nz,ma.EnCollRight
                add     hl,de
                ld      a,(hl)
                cp      0
                jr      nz,ma.EnCollRight
                add     hl,de
                ld      a,(hl)
                cp      0
                jr      nz,ma.EnCollRight
                jr      ma.EnNCRight
ma.EnCollRight: ld      a,255
                ld      (EnemydX),a                     ; dx = -1
ma.EnNCRight:   ld      a,(EnemyY)
                cp      2                               ; collision top ?
                jr      nz,ma.EnNCTop
                ld      a,1
                ld      (EnemydY),a                     ; dy = 1
ma.EnNCTop:     ld      a,(EnemyX)
                cp      2                               ; collision
                jr      nz,ma.EnNCLBord                 ; left border ?
                ld      a,1
                ld      (EnemydX),a                     ; dx = 1
ma.EnNCLBord:   ld      a,(EnemyY)
                cp      15                              ; collision bottom ?
                jr      nz,ma.EnNCBottom
                ld      a,255
                ld      (EnemydY),a                     ; dy = -1
ma.EnNCBottom:  ld      a,(EnemyX)
                cp      28                              ; collision
                jr      nz,ma.EnNCRBord                 ; right border
                ld      a,255
                ld      (EnemydX),a                     ; dx = -1
ma.EnNCRBord:   ld      a,(EnemydY)
                ld      b,a
                ld      a,(EnemyY)
                add     a,b
                ld      (EnemyY),a                      ; new y position
                ld      a,(EnemydX)
                ld      b,a
                ld      a,(EnemyX)
                add     a,b
                ld      (EnemyX),a                      ; new x position
                ld      hl,(EnemyPos)
                ld      (ImagePos),hl
                ld      hl,x0302
                ld      (ImageSize),hl
ma.EnPhData:    ld      hl,xd0b8
                ld      (ImageData),hl
                call    DrawImage                       ; draw enemy
                ld      a,(x5b0e)
                cp      0
                jr      nz,ma.EnPhaseNo0
                ld      a,1
                ld      (x5b0e),a
                jp      ma.EnPhOK
ma.EnPhaseNo0:  ld      a,0
                ld      (x5b0e),a
                ld      a,(ma.EnPhData+1)
                cp      x82
                jr      nz,ma.EnPhOther
                ld      a,xb8
                jr      ma.EnPhSet
ma.EnPhOther:   ld      a,x82
ma.EnPhSet:     ld      (ma.EnPhData+1),a
ma.EnPhOK:      nop
                nop
                nop
                ld      a,(EnemyCollY)
                ld      b,a
                ld      a,(EnemyCollX)
                add     a,b
                cp      2
                jr      nz,ma.NoEnemy
                call    ClearEnemy
                call    InitEnemy
                jp      DecLives
ma.NoEnemy:     nop
                nop
                jp      KillWitch

                nop
ma.Continue:    ld      a,xbf                           ; read keyboard
                in      a,(xfe)
                and     x1f
                cp      x0f                             ; 'H' pressed ?
                jr      nz,ma.NoKeyH
                ld      a,1
                ld      (Lives),a
                jp      z,DecLives
                nop
                nop
ma.NoKeyH:      ld      a,xfb                           ; read keyboard
                in      a,(xfe)
                and     x1f
                cp      x1e                             ; 'Q' pressed ?
                ld      b,2
                jr      z,ma.Timer
                ld      b,6
ma.Timer:       halt
                djnz    ma.Timer
                ld      a,x7f                           ; read keyboard
                in      a,(xfe)
                and     x1f
                cp      x1e                             ; SPACE pressed ?
                jp      nz,MainLoop
                call    AmigaScreen                     ; show Amiga screen
                jp      MainLoop

;-----------------------------------------------------------------------------
; GameInfo
;-----------------------------------------------------------------------------

                ORG     42080

GameInfo:       ld      a,(RoomNumber)
                cp      120                             ; room = 120 ?
                ret     z
                ld      hl,x1f15
                ld      (ImagePos),hl
                ld      hl,x0101
                ld      (ImageSize),hl
                ld      hl,dat.Heart
                ld      (ImageData),hl
                call    DrawImage                       ; print heart
                ld      a,(Lives)                       ; # of lives
                ld      b,a
                ld      hl,dat.HandChars+48*8           ; addr of char '0'
                ld      de,8
gi.NumLoop:     add     hl,de
                djnz    gi.NumLoop
                ld      (ImageData),hl
                ld      hl,x1e15
                ld      (ImagePos),hl
                ld      hl,x0101
                ld      (ImageSize),hl
                call    DrawImage
                ld      hl,22528+702                    ; set ATTR to yellow
                ld      a,6
                ld      (hl),a
                jr      GameInfo2

;-----------------------------------------------------------------------------
; GameInfo2
;-----------------------------------------------------------------------------

                ORG     42176

GameInfo2:      call    ShowCurrDisk2                   ; show disk
                ld      de,36
                ld      hl,1024
                call    BEEPER                          ; beep
                ld      de,36
                ld      hl,1280
                call    BEEPER                          ; beep
                ret

;-----------------------------------------------------------------------------
; Heart Data
;-----------------------------------------------------------------------------

                ORG     42198

dat.Heart:      DEFB    x36,x7f,x7f,x7f,x3e,x1c,x08,x00 ; heart data
                DEFB    x02
HeartCounter:   DEFB    x88

;-----------------------------------------------------------------------------
; DecLives
;-----------------------------------------------------------------------------

                ORG     42250

DecLives:       ld      a,0
                ld      (Falls),a                       ; falls = 0
                call    ClearMan                        ; clear man
                ld      b,5                             ; beep 5 times
dl.BeepLoop:    push    bc
                ld      de,40
                ld      hl,256
                call    BEEPER
                ld      b,18                            ; wait some time
dl.Wait:        halt
                djnz    dl.Wait
                pop     bc
                djnz    dl.BeepLoop
                ld      a,(Lives)                       ; one less lives
                dec     a
                ld      (Lives),a
                cp      0                               ; game over ?
                jr      z,GameOver
                nop
                ld      a,(ManPhase)
                cp      7
                jr      nz,dl.NoPhase7
                ld      a,1
                jr      dl.PhaseOK
dl.NoPhase7:    ld      a,4
dl.PhaseOK:     ld      (ManPhase),a
                call    ClearMessage
                ld      a,x1c
                ld      (so.Type),a                     ; so.Type = inc e
                call    SoundEffect1
                call    RedrawMan
                jp      MainLoop

;-----------------------------------------------------------------------------
; GameOver
;-----------------------------------------------------------------------------

                ORG     42324

GameOver:       call    ClearMessage                    ; game over
                call    SoundEffect0
                call    DrawGameOver
                ld      a,x41                           ; flash text
                ld      b,x48
go.Loop:        push    bc
                ld      b,5                             ; wait some time
go.Wait:        halt
                djnz    go.Wait
                ld      hl,22795
                ld      b,10
go.ColorLoop:   ld      (hl),a
                inc     hl
                inc     a
                cp      x48
                jr      nz,go.ColorOK
                ld      a,x41
go.ColorOK:     djnz    go.ColorLoop
                pop     bc
                djnz    go.Loop
                ld      a,3                             ; reset variables
                ld      (Lives),a
                ld      a,15
                ld      (ManY),a
                ld      a,12
                ld      (ManX),a
                ld      a,4
                ld      (ManPhase),a
                jp      ct.Restart

;-----------------------------------------------------------------------------
; ManBeep
;-----------------------------------------------------------------------------

                ORG     42386

ManBeep:        call    DrawMan
                ld      de,3
                ld      hl,1024
                call    BEEPER
                ret

;-----------------------------------------------------------------------------
; ClearMessage
;-----------------------------------------------------------------------------

                ORG     42400

ClearMessage:   ld      hl,x0015
                ld      (ImagePos),hl
                ld      hl,x0120
                ld      (ImageSize),hl
                call    ClearImage
                ret

;-----------------------------------------------------------------------------
; EnemyCollision
;-----------------------------------------------------------------------------

                ORG     42420

EnemyCollision: ld      a,(EnemyY)                      ; is there enemy ?
                cp      0
                jr      z,ec.Exit
                ld      a,(EnemyX)
                cp      0
                jr      z,ec.Exit
                ld      hl,0                            ; clear collision
                ld      (EnemyColl),hl                  ; variable
                ld      a,(EnemyY)
                ld      b,a
                ld      a,(ManY)
                sub     b
                add     a,3
                cp      7                               ; horizontal
                jr      nc,ec.NoY                       ; collision ?
                ld      a,1
                ld      (EnemyCollY),a
ec.NoY:         ld      a,(EnemyX)
                ld      b,a
                ld      a,(ManX)
                sub     b
                add     a,2
                cp      5                               ; vertical
                jr      nc,ec.Exit                      ; collision ?
                ld      a,1
                ld      (EnemyCollX),a
ec.Exit:        ret

;-----------------------------------------------------------------------------
; KillWitch
;-----------------------------------------------------------------------------

                ORG     42480

KillWitch:      ld      a,(RoomNumber)
                cp      120                             ; room = 120 ?
                jp      nz,ma.Continue
                ld      a,(DiskPrinted)
                cp      6                               ; disks = 6 ?
                jp      nz,CannotKill
                nop
                nop
                nop
                nop
                call    DrawWitch1
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                nop
                ld      b,6                             ; wait some time
kw.Wait:        halt
                djnz    kw.Wait
                ld      hl,img.Witch1
kw.WitchLoop:   push    hl
                ld      (ImageData),hl                  ; draw witch x
                ld      hl,x1a04
                ld      (ImagePos),hl
                ld      hl,x0202
                ld      (ImageSize),hl
                call    DrawImage
                call    SoundEffect2
                call    DrawWitch1                      ; draw witch 1
                call    SoundEffect2
                pop     hl
                ld      de,36
                add     hl,de
                ld      a,l
                cp      x5c
                jr      nz,kw.WitchLoop
                call    DrawWitch4                      ; draw witch 4
                call    SoundEffect2
                ld      b,18                            ; wait some time
kw.Wait2:       halt
                djnz    kw.Wait2
                call    ClearMessage
                call    SoundEffect0
                ld      hl,x0706                        ; congratulations
                ld      (ImagePos),hl
                ld      hl,x0311
                ld      (ImageSize),hl
                ld      hl,img.Congrat
                ld      (ImageData),hl
                call    DrawImage
                ld      a,0                             ; flash
                ld      b,144                           ; congratulations
kw.FlashText:   push    bc                              ; text
                ld      hl,22760
                ld      b,15
kw.TextLoop:    ld      (hl),a
                inc     hl
                inc     a
                cp      8
                jr      nz,kw.ColorOK
                ld      a,0
kw.ColorOK:     djnz    kw.TextLoop
                halt
                halt
                pop     bc
                djnz    kw.FlashText
                ld      hl,22760                        ; blue text
                ld      a,5
                ld      b,15
kw.BlueText:    ld      (hl),a
                inc     hl
                djnz    kw.BlueText
                ld      hl,22528
kw.AndAttr:     ld      a,(hl)
                and     x07
                ld      (hl),a
                inc     hl
                ld      a,x5b
                cp      h
                jr      nz,kw.AndAttr
                ld      b,8
kw.ClrScr:      push    bc                              ; clear screen
                ld      hl,16384
kw.ClrLoop:     ld      c,32
                and     a
kw.ClrLine:     srl     (hl)
                inc     hl
                dec     c
                jr      nz,kw.ClrLine
                ld      a,x58
                cp      h
                jr      nz,kw.ClrLoop
                call    SoundEffect2
                pop     bc
                djnz    kw.ClrScr
                call    FillReady                       ; fill ready
                jp      ct.Go                           ; restart

;-----------------------------------------------------------------------------
; FlashHeart
;-----------------------------------------------------------------------------

                ORG     42700

FlashHeart:     ld      a,(23231)                       ; get heart ATTR
                cp      2                               ; red ?
                jr      nz,fh.NoRed
                ld      a,(HeartCounter)
                cp      4                               ; counter OK ?
                jr      c,fh.NoRed
                ld      a,0                             ; clear counter
                ld      (HeartCounter),a
                ld      a,67                            ; ATTR = magenta
                ld      (23231),a
fh.NoRed:       ld      a,(23231)                       ; get heart ATTR
                cp      67                              ; magenta ?
                jr      nz,fh.NoMagenta
                ld      a,(HeartCounter)
                cp      1                               ; counter OK ?
                jr      c,fh.NoMagenta
                ld      a,0                             ; clear counter
                ld      (HeartCounter),a
                ld      a,2                             ; ATTR = red
                ld      (23231),a
fh.NoMagenta:   ld      a,(HeartCounter)
                inc     a
                ld      (HeartCounter),a
                ld      a,xfe                           ; read keyboard
                in      a,(xfe)
                and     x1f
                cp      x1e                             ; CAPS SHIFT pressed ?
                jr      nz,fh.NoCAPS
                call    Music
fh.NoCAPS:      ld      a,xfe                           ; read keyboard
                in      a,(xfe)
                and     x1f
                cp      x17                             ; 'C' pressed ?
                ret     nz
                ld      a,(dm.DataAddr+1)               ; change man
                cp      x4e
                jr      z,fh.Goblin
                ld      hl,img.ManLeft1-54
                jr      fh.ChangeMan
fh.Goblin:      ld      hl,img.GoblinL1-54
fh.ChangeMan:   ld      (dm.DataAddr+1),hl
                call    ClearMan
                ld      a,x1c
                ld      (so.Type),a                     ; so.Type = inc e
                call    SoundEffect1
                call    RedrawMan
                ret

;-----------------------------------------------------------------------------
; Enemy Data
;-----------------------------------------------------------------------------

                ORG     44288

dat.EnemyData:  DEFB    x0C,x04,x01,x00,x08,x0E,x00,x01
                DEFB    x00,x00,x00,x00,x02,x09,x00,x00
                DEFB    x04,x11,x00,x02,x02,x0C,x00,x01
                DEFB    x0F,x1B,x00,x03,x09,x0B,x00,x01
                DEFB    x02,x02,x00,x00,x09,x02,x01,x04
                DEFB    x07,x16,x00,x02,x00,x00,x00,x00
                DEFB    x0A,x0E,x00,x00,x06,x02,x01,x03
                DEFB    x02,x0E,x00,x02,x02,x0E,x00,x00
                DEFB    x00,x00,x00,x00,x02,x05,x00,x03
                DEFB    x0F,x15,x00,x02,x07,x0F,x00,x03
                DEFB    x09,x06,x00,x03,x02,x0F,x00,x00
                DEFB    x02,x17,x00,x00,x0A,x0B,x01,x03
                DEFB    x03,x0F,x00,x01,x08,x02,x01,x02
                DEFB    x02,x07,x00,x00,x0B,x16,x00,x01
                DEFB    x00,x00,x00,x00,x08,x02,x01,x00
                DEFB    x02,x19,x00,x05,x06,x09,x01,x04
                DEFB    x0F,x12,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x0F,x03,x00,x00,x0A,x02,x01,x02
                DEFB    x0B,x12,x00,x00,x02,x12,x00,x03
                DEFB    x02,x0B,x00,x01,x07,x12,x01,x01
                DEFB    x02,x03,x00,x05,x02,x10,x00,x03
                DEFB    x00,x00,x00,x00,x02,x16,x00,x02
                DEFB    x0D,x1B,x00,x05,x06,x02,x01,x04
                DEFB    x02,x18,x00,x00,x06,x02,x01,x04
                DEFB    x02,x10,x00,x00,x08,x0A,x01,x04
                DEFB    x0F,x0E,x02,x00,x02,x0C,x00,x01
                DEFB    x0F,x09,x00,x05,x00,x00,x00,x00
                DEFB    x02,x0F,x00,x00,x08,x02,x01,x03
                DEFB    x00,x00,x00,x00,x0F,x14,x00,x01
                DEFB    x06,x06,x01,x04,x0F,x0D,x00,x02
                DEFB    x02,x11,x00,x03,x00,x00,x00,x00
                DEFB    x06,x07,x01,x00,x00,x00,x00,x00
                DEFB    x02,x11,x00,x05,x08,x02,x01,x03
                DEFB    x06,x0B,x00,x02,x00,x00,x00,x00
                DEFB    x0D,x0D,x00,x05,x00,x00,x00,x00
                DEFB    x02,x12,x00,x01,x02,x0B,x00,x05
                DEFB    x02,x11,x00,x03,x00,x00,x00,x00
                DEFB    x0F,x11,x00,x00,x0F,x13,x00,x02
                DEFB    x0A,x0E,x01,x04,x0F,x12,x00,x01
                DEFB    x06,x0E,x01,x00,x02,x1B,x00,x03
                DEFB    x00,x00,x00,x00,x06,x06,x00,x02
                DEFB    x02,x06,x00,x01,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x0A,x0A,x01,x05
                DEFB    x02,x16,x00,x03,x06,x10,x01,x04
                DEFB    x09,x0C,x00,x03,x02,x08,x00,x01
                DEFB    x00,x00,x00,x00,x0F,x1B,x00,x02
                DEFB    x0A,x10,x01,x04,x02,x0E,x00,x05
                DEFB    x0B,x14,x00,x01,x02,x0E,x00,x02
                DEFB    x02,x0C,x00,x05,x00,x00,x00,x00
                DEFB    x02,x0C,x00,x02,x0A,x02,x01,x04
                DEFB    x0B,x16,x00,x05,x00,x00,x00,x00
                DEFB    x06,x07,x01,x04,x06,x0A,x00,x02
                DEFB    x0A,x09,x01,x03,x02,x0B,x00,x03
                DEFB    x02,x0D,x00,x02,x02,x14,x00,x05
                DEFB    x0F,x0B,x00,x03,x0F,x11,x00,x01
                DEFB    x02,x10,x00,x00,x02,x16,x00,x02
                DEFB    x02,x08,x00,x00,x00,x00,x00,x00
                DEFB    x02,x09,x00,x03,x02,x04,x00,x02
                DEFB    x0A,x0C,x01,x05,x0E,x13,x00,x00

;-----------------------------------------------------------------------------
; Ready Positions Data
;-----------------------------------------------------------------------------

                ORG     44768

dat.ReadyPos:   DEFB    x08,x08,x10,x10,x0A,x00,x00,x18
                DEFB    x02,x08,x0C,x10,x06,x18,x04,x00
                DEFB    x06,x08,x0A,x10,x0E,x18,x12,x00
                DEFB    x14,x08,x04,x10,x12,x18,x00,x00
                DEFB    x12,x10,x0A,x18,x0C,x00,x0E,x08
                DEFB    x00,x10,x02,x18,x06,x00,x0A,x08
                DEFB    x06,x10,x08,x18,x10,x00,x12,x08
                DEFB    x14,x10,x10,x18,x02,x00,x10,x08
                DEFB    x02,x10,x0C,x18,x0E,x00,x04,x08
                DEFB    x08,x10,x14,x18,x08,x00,x0C,x08
                DEFB    x0E,x10,x04,x18,x14,x00,x00,x08

;-----------------------------------------------------------------------------
; Game Images
;-----------------------------------------------------------------------------

                ORG     44860

img.Library:    DEFB    x80,x00,x3F,xF8,x00,x00,x00,x00 ; (13x5)
                DEFB    x3F,x00,x00,x00,x01,x00,x00,x35
                DEFB    x58,x00,x00,x00,x00,x3F,x00,x00
                DEFB    x00,x00,x00,x00,x2A,xA8,x00,x00
                DEFB    x00,x00,x3F,x00,x00,x00,x00,x00
                DEFB    x00,x37,xD8,x00,x00,x00,x00,x3F
                DEFB    x00,x00,x3F,x00,x00,x00,x2F,xE8
                DEFB    x00,x3F,x00,x00,x3F,x00,x00,x3F
                DEFB    x00,x00,x00,x37,xD8,x00,x33,x00
                DEFB    x00,x3D,x00,x00,x33,x00,x00,x00
                DEFB    x2F,xE8,x00,x21,x00,x00,x3B,x00
                DEFB    x00,x33,x00,x00,x00,x37,xD8,x00
                DEFB    x21,x00,x00,x37,x00,x00,x3F,x00
                DEFB    x80,xFF,x2F,xE8,xFF,x29,x00,xFF
                DEFB    x2D,x00,xFF,x33,x01,x00,xC3,x37
                DEFB    xD8,xFF,x25,x00,x81,x3B,x00,xFF
                DEFB    x3F,x00,x00,x81,x2F,xE8,x81,x29
                DEFB    x3E,xBD,x37,x00,x81,x33,x00,x00
                DEFB    xBD,x36,xD8,xFF,x25,x3E,xBD,x2D
                DEFB    x7C,xFF,x3F,x00,x00,x81,x2E,xE8
                DEFB    x81,x29,x3E,xBD,x3B,x7C,x81,x3F
                DEFB    x00,x00,x81,x37,xD8,x81,x25,x22
                DEFB    xBD,x37,x6C,x81,x3F,x00,x00,x81
                DEFB    x2E,xE8,xFF,x21,x3E,xBD,x2F,x7C
                DEFB    xFF,x3F,x00,x00,x81,x37,xD8,x81
                DEFB    x21,x3E,xBD,x3F,x7C,x81,x3F,x00
                DEFB    x80,x81,x2F,xE8,x81,x21,x3E,xBD
                DEFB    x3F,x7C,x81,x3F,x01,x00,x81,x37
                DEFB    xD8,x81,x21,x3E,xBD,x3F,x7C,x81
                DEFB    x3F,x00,x00,x81,x2E,xE8,xFF,x29
                DEFB    x3E,xBD,x3F,x7C,xFF,x3F,x00,x00
                DEFB    x81,x36,xD8,x81,x25,x3E,xBD,x3F
                DEFB    x7C,x81,x33,x00,x00,x81,x2E,xE8
                DEFB    x81,x29,x3E,xBD,x3F,x7C,x81,x33
                DEFB    x00,x00,x81,x37,xD8,x81,x25,x3E
                DEFB    xBD,x3F,x7C,x81,x3F,x00,x00,xBD
                DEFB    x2E,xE8,x81,x29,x3E,xBD,x3F,x7C
                DEFB    x81,x33,x00,x00,x81,x37,xD8,xFF
                DEFB    x25,x3E,xBD,x3F,x7C,xFF,x3F,x00
                DEFB    x80,xBD,x2E,xE8,x81,x29,x3E,xBD
                DEFB    x3F,x7C,x81,x33,x01,x00,x81,x36
                DEFB    xD8,x81,x25,x3E,xBD,x3F,x7C,x81
                DEFB    x3F,x00,x00,xBD,x2F,xE8,x81,x29
                DEFB    x22,xBD,x3F,x7C,x81,x33,x00,x00
                DEFB    x81,x37,xD8,x81,x25,x3E,xBD,x3F
                DEFB    x7C,x81,x33,x00,x00,xBD,x2A,xA8
                DEFB    x81,x29,x22,xBD,x3F,x7C,x81,x33
                DEFB    x00,x00,x81,x35,x58,xFF,x21,x3E
                DEFB    xBD,x3F,x6C,xFF,x33,x00,x00,xC3
                DEFB    x3F,xF8,xFF,x33,x3E,x81,x3F,x7C
                DEFB    xFF,x3F,x00,x00,xFF,x3F,xF8,xFF
                DEFB    x3F,x3E,xFF,x3F,x7C,xFF,x3F,x00
                DEFB    x80,x80,x80,x80,x80,x80,x80,x80
                DEFB    x80,x80,x80,x80,x01,x7F,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFE,xFF,xFF,xFF,x9F,xE7,x83
                DEFB    x81,x81,x81,x9D,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,x9F,xE7,x9D,x9D,xB9,x9D
                DEFB    x9D,xFF,xFF,xFF,xC0,x00,x03,x9F
                DEFB    xE7,x83,x83,x81,x83,x81,xC0,x00
                DEFB    x03,xFF,xFF,xFF,x9F,xE7,x9D,xB9
                DEFB    xB9,xB9,xE7,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,x81,xE7,x83,xB9,xB9,xB9,xE7
                DEFB    xFF,xFF,xFF,x7F,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFE
                DEFB    x06,x05,x02,x02,x00,x04,x03,x00
                DEFB    x05,x02,x00,x04,x06,x06,x05,x02
                DEFB    x02,x0D,x04,x03,x0E,x05,x02,x16
                DEFB    x04,x06,x06,x05,x02,x02,x0D,x04
                DEFB    x03,x0E,x05,x02,x16,x04,x06,x06
                DEFB    x05,x02,x02,x0D,x04,x03,x0E,x05
                DEFB    x02,x16,x04,x06,x0D,x0D,x0D,x0D
                DEFB    x0D,x0D,x0D,x0D,x0D,x0D,x0D,x0D
                DEFB    x0D

img.HiFi:       DEFB    x1F,xFF,xF8,x20,x00,x04,x3F,xFF ; (3x5)
                DEFB    xFC,x24,xFF,xE4,x3F,xFF,xFC,xC0
                DEFB    x00,x03,xFF,xFF,xFF,x80,x00,x01
                DEFB    xBF,xFF,xFD,xA0,xA4,xED,xA0,xE7
                DEFB    xC5,xA0,xA4,xED,xBF,xFF,xFD,x80
                DEFB    x00,x01,xFF,xFF,xFF,x80,x00,x01
                DEFB    xBF,xFF,xFD,xA9,x3F,x85,xA9,x2A
                DEFB    x85,xBF,xFF,xFD,x80,x00,x01,xFF
                DEFB    xFF,xFF,x80,x00,x01,xBF,xFF,xFD
                DEFB    xA8,x3F,xA5,xA8,x2A,xA5,xBF,xFF
                DEFB    xFD,x80,x00,x01,xFF,xFF,xFF,x80
                DEFB    x00,x01,xC8,x00,x41,xC8,x00,x41
                DEFB    xA4,x81,x21,xA4,x81,x21,x92,x81
                DEFB    x11,x92,x81,x11,x80,x81,x01,xFF
                DEFB    xFF,xFF,x7F,xFF,xFE,x7F,xFF,xFE
                DEFB    x47,x47,x47,x47,x47,x47,x47,x47
                DEFB    x47,x47,x47,x47,x47,x47,x47

;*****************************************************************************
; Music Code and Data
;*****************************************************************************

                ORG     49152

Music:          ld      hl,dat.Ch1                      ; xc1cf
                ld      (Ch1.Ptr),hl
                ld      hl,dat.Ch2                      ; xc361
                ld      (Ch2.Ptr),hl
                di
mu.NoKey:       call    PlayMusic
                call    KEY_SCAN                        ; KEY-SCAN
                inc     e
                jr      z,mu.NoKey                      ; key pressed ?
                ei
                ret                                     ; return

Ch1.Data:       DEFB    x13                             ; ch1 data
Ch2.Data:       DEFB    x29                             ; ch2 data
Sound.Data:     DEFB    0                               ; data to port 254
Ch1.Ptr:        DEFW    dat.Ch1+3                       ; ch1 pointer
Ch1.Start:      DEFW    dat.Ch1+1                       ; ch1 data start
Ch2.Ptr:        DEFW    dat.Ch2+3                       ; ch2 pointer
Ch2.Start:      DEFW    dat.Ch2+1                       ; ch2 data start
Sound.Timer:    DEFB    xe8                             ; timer value

pm.GetNextData: ld      e,(hl)                          ; get pointer
                inc     hl
                ld      d,(hl)
                inc     de                              ; inc pointer
pm.GetData:     ld      a,(de)                          ; get data
                cp      x40                             ; end ?
                jr      z,pm.ResetPtr
                ld      (hl),d                          ; set pointer value
                dec     hl
                ld      (hl),e
                ret
pm.ReadTable:   ld      a,(hl)
                add     a,12
                ld      e,a
                ld      d,0                             ; de = a+12
                ld      hl,dat.pm.Table
                add     hl,de
                ld      h,(hl)                          ; out : hl = xxx01
                ld      l,1
                ret
pm.ResetPtr:    inc     hl                              ; reset pointer
                ld      e,(hl)
                inc     hl
                ld      d,(hl)
                dec     hl
                dec     hl
                jr      pm.GetData
PlayMusic:      ld      hl,Ch1.Ptr                      ; pointer address 1
                call    pm.GetNextData                  ; get data 1 hl=xxx01
                ld      (Ch1.Data),a
                ld      hl,Ch2.Ptr                      ; pointer address 2
                call    pm.GetNextData                  ; get data 2 hl=xxx01
                ld      (Ch2.Data),a
                ld      hl,Ch1.Data                     ; ch1
                call    pm.ReadTable
                rl      e                               ; e = a+12
                jp      c,pm.Extra
                push    hl
                ld      hl,Ch2.Data                     ; ch2
                call    pm.ReadTable
                pop     de                              ; hl : ch2, de : ch1
                ld      a,h
                dec     a
                jr      nz,pm.Do
                ld      a,d
                dec     a
                jr      z,pm.Timer                      ; timer
pm.Do:          ld      a,(Sound.Timer)                 ; timer value
                ld      c,a
                ld      b,0                             ; bc = timer
                ld      a,(Sound.Data)
                ex      af,af
                ld      a,(Sound.Data)
                DEFB    xdd,x62                         ; ld    xh,d
                ld      d,x10                           ; bit 4 of port 254
pm.LoopB:       nop
                nop
pm.LoopC:       ex      af,af
                dec     e                               ; ch1 freq value
                out     (xfe),a
                jr      nz,pm.EOK
                DEFB    xdd,x5c                         ; ld    e,xh
                xor     d                               ; change speaker bit
                ex      af,af
                dec     l                               ; ch2 freq value
                jp      nz,pm.LOK
pm.LoopL:       out     (xfe),a
                ld      l,h
                xor     d
                djnz    pm.LoopB
                inc     c
                jp      nz,pm.LoopC
                ret
pm.Dummy:       ld      h,c
                ld      h,h
                ld      h,c
                ld      l,l
pm.EOK:         jr      z,pm.EOK
                ex      af,af
                dec     l
                jp      z,pm.LoopL
pm.LOK:         out     (xfe),a
                nop
                nop
                djnz    pm.LoopB
                inc     c
                jp      nz,pm.LoopC
                ret
pm.Timer:       ld      a,(Sound.Timer)                 ; timer
                cpl
                ld      c,a
pm.TimerLoop1:  push    bc
                push    af
                ld      b,0
pm.TimerLoop2:  push    hl
                ld      hl,0
                sra     (hl)
                sra     (hl)
                sra     (hl)
                nop
                pop     hl
                djnz    pm.TimerLoop2
                dec     c
                jp      nz,pm.TimerLoop2
                pop     af
                pop     bc
                ret

dat.pm.Table:   DEFB    xFF,xF0,xE3,xD7,xCB,xC0,xB4,xAB
                DEFB    xA1,x97,x90,x88,x80,x79,x72,x6C
                DEFB    x66,x60,x5B,x56,x51,x4C,x48,x44
                DEFB    x40,x3D,x39,x36,x33,x30,x2D,x2B
                DEFB    x28,x26,x24,x22,x20,x1E,x1C,x1B
                DEFB    x19,x18,x17,x15,x14,x13,x12,x11
                DEFB    x10,x0F,x0E,x0D,x0C,x01

pm.Extra:       push    af
                ld      a,(Ch2.Data)
                ld      d,a
                pop     af
                call    pm.Calc
                cp      xff
                jr      z,pm.ExBeep
                cp      xc0
                jp      z,xc17f
                ld      b,4
                ld      c,e
                rla
                rla
                rla
                rla
pm.ExtraLoop:   rla
                call    c,pm.ExBeep
                call    nc,pm.TimerLoop1
                djnz    pm.ExtraLoop
                ret
pm.Calc:        push    af
                ld      a,(Sound.Timer)
                cpl
                ld      b,a
                ld      c,a
                add     a,1
                sra     a
                sra     a
                ld      e,a
                cp      0
                jr      nz,pm.CalcOK
                inc     e
pm.CalcOK:      pop     af
                ret
pm.ExBeep:      push    af
                push    hl
                push    bc
                ld      a,(Sound.Data)
                ld      b,0
                ld      hl,x03e8
pm.eb.Loop:     rrc     d
                jp      nc,pm.eb.Delay
                inc     hl
                bit     0,(hl)
                jp      z,pm.eb.Off
                set     4,a
                xor     x83
                xor     x83
pm.eb.Out:      out     (xfe),a
pm.eb.Next:     nop
                dec     b
                jp      nz,pm.eb.Loop
                dec     c
                jp      nz,pm.eb.Loop
                pop     bc
                pop     hl
                pop     af
                ret
pm.eb.Off:      res     4,a
                jr      pm.eb.Out
pm.eb.Delay:    scf
                jp      nc,x0000
                jp      nc,x0000
                jp      nc,x0000
                nop
                nop
                jr      pm.eb.Next
                ld      e,b
                ld      d,0
                ld      hl,dat.Music
                adc     hl,de
                ld      a,(hl)
                ld      b,a
                ld      hl,3
pm.BeepLoop:    push    bc
                ld      de,1
                push    hl
                call    pm.Beeper
                pop     hl
                ld      de,x00ff
                adc     hl,de
                pop     bc
                djnz    pm.BeepLoop
                ret
pm.Beeper:      ld      a,l                             ; like spectrum ROM
                srl     l                               ; from address x03b5
                srl     l
                cpl
                and     x03
                ld      c,a
                ld      b,0
                ld      ix,x03d1                        ; base address of
                add     ix,bc                           ; timer cycle
                ld      a,(Sound.Data)
                call    x03d4                           ; call BEEPER
                di
                ret

                ORG     49591

dat.Music:      DEFB    x0C,x0C,x0D,x0D,x0E,x0E,x0E,x0F
                DEFB    x0F,x0F,x10,x10,x11,x11,x12,x12
                DEFB    x13,x13,x14,x14,x15,x15,x15,x16
dat.Ch1:        DEFB    x16,x10,x11,x13,x13,x13,x13,x13
                DEFB    x10,x10,x11,x13,x13,x13,x13,x13
                DEFB    x13,x13,x13,x29,x11,x11,x11,x13
                DEFB    x13,x15,x15,x13,x13,x0E,x13,x13
                DEFB    x13,x10,x11,x13,x13,x13,x13,x13
                DEFB    x10,x10,x11,x13,x13,x13,x13,x13
                DEFB    x13,x13,x13,x29,x11,x11,x11,x13
                DEFB    x13,x15,x15,x13,x13,x15,x17,x17
                DEFB    x17,x17,x17,x29,x18,x18,x18,x18
                DEFB    x18,x18,x18,x17,x17,x13,x13,x13
                DEFB    x13,x13,x13,x29,x15,x15,x15,x18
                DEFB    x18,x15,x15,x13,x13,x13,x13,x13
                DEFB    x13,x13,x13,x15,x15,x15,x15,x15
                DEFB    x15,x15,x15,x15,x15,x15,x15,x15
                DEFB    x15,x15,x15,x15,x15,x15,x15,x17
                DEFB    x17,x15,x15,x13,x13,x13,x13,x13
                DEFB    x13,x13,x13,x29,x18,x18,x18,x13
                DEFB    x13,x10,x10,x11,x11,x13,x15,x15
                DEFB    x15,x15,x15,x29,x13,x13,x15,x13
                DEFB    x13,x11,x11,x10,x10,x11,x10,x10
                DEFB    x10,x10,x10,x29,x18,x18,x18,x13
                DEFB    x13,x10,x10,x11,x11,x13,x15,x15
                DEFB    x15,x15,x15,x29,x13,x13,x15,x13
                DEFB    x13,x11,x11,x10,x10,x11,x10,x10
                DEFB    x10,x10,x10,x11,x11,x11,x11,x15
                DEFB    x15,x11,x11,x10,x10,x13,x13,x13
                DEFB    x13,x13,x13,x29,x13,x13,x15,x13
                DEFB    x13,x11,x11,x10,x10,x13,x13,x13
                DEFB    x13,x13,x13,x29,x11,x11,x11,x15
                DEFB    x15,x11,x11,x10,x10,x13,x13,x13
                DEFB    x13,x13,x13,x29,x13,x13,x15,x13
                DEFB    x13,x11,x11,x10,x10,x0C,x0C,x0C
                DEFB    x29,xF3,xEC,xEC,xF3,xF3,xEC,xEC
                DEFB    xF3,xEC,xEC,xF3,xEC,xF3,xF3,xEC
                DEFB    xEE,x13,x1C,x1A,x18,x13,x13,x13
                DEFB    x13,x13,x1C,x1A,x18,x15,x15,x15
                DEFB    x15,x15,x1D,x1C,x1A,x1F,x1F,x1F
                DEFB    x1F,x21,x1F,x1D,x1A,x1C,x1C,x1C
                DEFB    x13,x13,x1C,x1A,x18,x13,x13,x13
                DEFB    x13,x13,x1C,x1A,x18,x15,x15,x15
                DEFB    x15,x15,x1D,x1C,x1A,x1F,x1F,x1F
                DEFB    x1F,x21,x1F,x1D,x1A,x18,x18,x18
                DEFB    x29,x29,x1C,x1C,x1C,x29,x1C,x1C
                DEFB    x1C,x29,x1C,x1F,x18,x1A,x1C,x29
                DEFB    x29,x1C,x1D,x1D,x1D,x1D,x1D,x1C
                DEFB    x1C,x1C,xEE,xEE,xEE,xEE,x1A,x29
                DEFB    x1F,x29,x1C,x1C,x1C,x29,x1C,x1C
                DEFB    x1C,x29,x1C,x1F,x18,x1A,x1C,x29
                DEFB    x29,x1C,x1D,x1D,x1D,x1D,x1D,x1C
                DEFB    x1C,x1C,x1F,x1F,x1D,x1A,x18,x29
                DEFB    xF4,x40
dat.Ch2:        DEFB    xFB,x29,x29,x29,x29,x29,x29,x29
                DEFB    x29,x29,x29,x29,x29,x29,x29,x29
                DEFB    x29,x29,x29,xF9,xF9,x00,x00,xFB
                DEFB    xFB,xF9,xF9,xFB,xF4,xFB,xFB,xFB
                DEFB    xFB,x29,x29,x18,xF4,xFB,xFB,x00
                DEFB    x00,xF8,xF9,xF4,xF4,xFB,xFB,x00
                DEFB    x00,xFB,xFB,xF9,xF9,x00,x00,x05
                DEFB    x05,x00,x00,xFB,xFB,xF9,xFB,xFB
                DEFB    xFB,xFB,xFB,xFB,x00,xF4,x00,xF4
                DEFB    x00,x00,xF4,xFB,xFB,xFB,xFB,x07
                DEFB    x07,xFB,xFB,xFD,xFD,xF9,xF9,xF4
                DEFB    xF4,xF9,xF9,xFB,xFB,x00,x00,xFB
                DEFB    xFB,xF4,xF4,xF9,xF9,x05,x05,xF9
                DEFB    xF9,x05,xF9,xF9,xF9,x05,x05,xF9
                DEFB    xF9,x05,xF9,xF9,xF9,x05,x05,xFB
                DEFB    xFB,xF9,xF9,xFB,xFB,x00,x00,x07
                DEFB    x07,x00,x07,x00,x29,x29,x29,x29
                DEFB    x29,x29,x29,xF9,xF9,x11,xF9,xF9
                DEFB    x11,xF9,x11,xF4,xFB,xFB,xF9,xFB
                DEFB    xFB,xF9,xF9,xF4,xF4,x0C,x00,x00
                DEFB    x00,x00,x00,x29,x29,x29,x29,x29
                DEFB    x29,x29,x29,xF9,xF9,x05,xF9,xF9
                DEFB    xF9,x05,xF9,x07,xFB,x07,x29,xFB
                DEFB    xFB,xF9,xF9,xF4,xF4,x00,xF4,xF4
                DEFB    xF4,x29,x29,xF9,xF9,x00,x00,xF9
                DEFB    x1D,xF9,x1D,xF4,xF4,xFB,xFB,xF4
                DEFB    xFB,xF4,xFB,x29,xFB,xFB,xF8,xF9
                DEFB    xFB,xF9,xFD,xF8,xF8,xF4,xF4,x24
                DEFB    x00,xF4,xF4,x24,x29,x29,x29,x29
                DEFB    x29,x29,x29,xF4,xF4,xFB,xFB,x00
                DEFB    x00,xFB,xFB,xF4,xFB,xFB,xF9,xFB
                DEFB    xFB,xF9,xF9,xF4,xF4,x24,x24,x24
                DEFB    x29,xFF,x01,x01,xFF,xFF,x01,x01
                DEFB    xFF,x01,x01,xFF,x01,xFF,xFF,x01
                DEFB    xFF,x29,x29,x29,x29,x00,x00,x00
                DEFB    x00,x29,x29,x29,x29,x05,x05,x05
                DEFB    x05,x29,x29,x29,x29,x07,x00,x0C
                DEFB    x07,x09,x09,x05,x05,x07,x00,x07
                DEFB    x00,x00,x07,x00,x07,x0C,x0C,x0C
                DEFB    x0C,x0C,x07,x0C,x07,x05,x09,x05
                DEFB    x09,x05,x09,x07,x05,xFB,xFB,xFB
                DEFB    xFB,xFD,xFD,xFF,xFF,xF4,x0C,x07
                DEFB    x29,x29,x29,x29,x29,x00,x29,x29
                DEFB    x29,x00,x29,x29,x29,x29,x29,x00
                DEFB    x00,x29,x29,x05,x05,x29,x29,x04
                DEFB    x04,x29,x29,x29,x29,x29,x29,x29
                DEFB    x29,x29,x29,x29,x29,x00,x29,x29
                DEFB    x29,x00,x29,x29,x29,x29,x29,x00
                DEFB    x00,x29,x29,x05,x05,x29,x29,x00
                DEFB    x00,x29,x29,x07,x29,x02,x29,x00
                DEFB    x0C,x40

;-----------------------------------------------------------------------------
; Goblin Images (2x3)
;-----------------------------------------------------------------------------

                ORG     50420

img.GoblinL1:   DEFB    x40,x08,x40,x08,x6F,x9C,x60,xDC
                DEFB    x00,x1C,x1C,x96,x3E,xB2,x1E,x32
                DEFB    x60,xFE,x7F,xEC,x71,xC8,x3B,x80
                DEFB    x0E,x00,x01,x30,x07,x78,x0F,xC8
                DEFB    x19,xCC,x18,x44,x13,xE6,x03,x76
                DEFB    x06,x30,x06,x30,x0A,x50,x1C,xE0
                DEFB    x06,x06,x06,x06,x06,x06

img.GoblinL2:   DEFB    x00,x00,x40,x08,x40,x08,x6F,x9C
                DEFB    x60,xDC,x00,x1C,x1C,x96,x3E,xB2
                DEFB    x1E,x32,x60,xFE,x7F,xEC,x71,xC8
                DEFB    x3F,x80,x0E,x60,x01,x70,x03,xD0
                DEFB    x07,xD0,x04,x58,x05,xC8,x03,x68
                DEFB    x03,x60,x01,x60,x06,xA0,x0D,xC0
                DEFB    x06,x06,x06,x06,x06,x06

img.GoblinL3:   DEFB    x40,x08,x40,x08,x6F,x9C,x60,xDC
                DEFB    x00,x1C,x1C,x96,x3E,xB2,x1E,x32
                DEFB    x60,xFE,x7F,xEC,x71,xC8,x3B,x80
                DEFB    x0E,x00,x01,xA0,x01,xF0,x02,x50
                DEFB    x02,xD0,x06,xC8,x05,xA8,x03,x60
                DEFB    x03,x60,x03,x20,x05,x50,x0E,xE0
                DEFB    x06,x06,x06,x06,x06,x06

img.GoblinR1:   DEFB    x10,x02,x10,x02,x39,xF6,x3B,x06
                DEFB    x38,x00,x69,x38,x4D,x7C,x4C,x78
                DEFB    x7F,x06,x37,xFE,x13,x8E,x01,xDC
                DEFB    x00,x70,x05,x80,x0F,x80,x0A,x40
                DEFB    x0B,x40,x13,x60,x15,xA0,x06,xC0
                DEFB    x06,xC0,x04,xC0,x0A,xA0,x07,x70
                DEFB    x06,x06,x06,x06,x06,x06

img.GoblinR2:   DEFB    x00,x00,x10,x02,x10,x02,x39,xF6
                DEFB    x3B,x06,x38,x00,x69,x38,x4D,x7C
                DEFB    x4C,x78,x7F,x06,x37,xFE,x13,x8E
                DEFB    x01,xFC,x06,x70,x0E,x80,x0B,xC0
                DEFB    x0B,xE0,x1A,x20,x13,xA0,x16,xC0
                DEFB    x06,xC0,x06,x80,x05,x60,x03,xB0
                DEFB    x06,x06,x06,x06,x06,x06

img.GoblinR3:   DEFB    x10,x02,x10,x02,x39,xF6,x3B,x06
                DEFB    x38,x00,x69,x38,x4D,x7C,x4C,x78
                DEFB    x7F,x06,x37,xFE,x13,x8E,x01,xDC
                DEFB    x00,x70,x0C,x80,x1E,xE0,x13,xF0
                DEFB    x33,x98,x22,x18,x67,xC8,x6E,xC0
                DEFB    x0C,x60,x0C,x60,x0A,x50,x07,x38
                DEFB    x06,x06,x06,x06,x06,x06

img.GoblinJL:   DEFB    x40,x08,x40,x08,x6F,x9C,x60,xDC
                DEFB    x00,x1C,x1C,x96,x3E,xB2,x1E,x32
                DEFB    x60,xFE,x7F,xEC,x71,xC8,x3B,x80
                DEFB    x0E,x00,x01,xA0,x01,xF0,x02,x50
                DEFB    x02,xD0,x06,xC8,x05,xA8,x03,x60
                DEFB    x03,x60,x03,x20,x05,x50,x0E,xE0
                DEFB    x06,x06,x06,x06,x06,x06

img.GoblinJR:   DEFB    x10,x02,x10,x02,x39,xF6,x3B,x06
                DEFB    x38,x00,x69,x38,x4D,x7C,x4C,x78
                DEFB    x7F,x06,x37,xFE,x13,x8E,x01,xDC
                DEFB    x00,x70,x05,x80,x0F,x80,x0A,x40
                DEFB    x0B,x40,x13,x60,x15,xA0,x06,xC0
                DEFB    x06,xC0,x04,xC0,x0A,xA0,x07,x70
                DEFB    x06,x06,x06,x06,x06,x06

;-----------------------------------------------------------------------------
; Game Images
;-----------------------------------------------------------------------------

                ORG     51200

img.Computer:   DEFB    x00,x00,x00,x00,x00,xFF,xFF,xFF ; (20x7)
                DEFB    xFF,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x80,x00,x00,x01,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,xBF,xFF,xFF
                DEFB    xFD,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,xA0,x00,x00,x05,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,xA0,x00,x00
                DEFB    x05,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,xA0,x00,x00,x05,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,xA0,x00,x00
                DEFB    x05,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,xA0,x00,x00,x05,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,xA6,x0C,x00
                DEFB    x05,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x40,x00,x00,x00,x00,x00,x00
                DEFB    x00,xA0,x0C,x00,xC5,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,xA0,x00,x00
                DEFB    x00,x00,x00,x00,x00,xA0,x0C,x06
                DEFB    xC5,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x50,x00,x00,x00,x00,x00,x00
                DEFB    x00,xA0,x0C,x06,xC5,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x28,x00,x00
                DEFB    x00,x00,x00,x00,x00,xA6,x6C,x06
                DEFB    xC5,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x15,x00,x00,x00,x00,x00,x00
                DEFB    x00,xA0,x6D,x86,xC5,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x0B,x00,x00
                DEFB    x00,x00,x00,x00,x00,xA0,x6D,x86
                DEFB    xC5,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x05,x00,x00,x00,x00,x00,x00
                DEFB    x00,xA0,x6D,x86,xC5,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x0F,x00,x00
                DEFB    x00,x00,x00,x00,x00,xA6,x6D,xB6
                DEFB    xC5,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,xA0,x6D,xB6,xC5,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,xA0,x6D,xB6
                DEFB    xC5,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,xA0,x6D,xB6,xC5,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,xA6,x6D,xB6
                DEFB    xC5,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,xA0,x00,x00,x05,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,xA0,x00,x00
                DEFB    x05,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,xA0,x00,x00,x05,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x07,xFF,xFF,xE0,x00,xBF,xFF,xFF
                DEFB    xFD,x00,x07,xFF,xFF,xFF,xFF,xF8
                DEFB    x07,xFF,xFF,xE0,x0D,x55,x55,x50
                DEFB    x00,x80,x00,x00,x01,x00,x08,x00
                DEFB    x00,x00,x00,x18,x08,x00,x00,x10
                DEFB    xFF,xFF,xFF,xFF,x00,xFF,xFF,xFF
                DEFB    xFF,x00,x1F,xFF,xFF,xFF,xFF,xE8
                DEFB    x0B,xFF,xFF,xD0,x80,x00,x00,x01
                DEFB    x00,x80,x00,x00,x01,x00,x25,xB6
                DEFB    xDB,x6D,x8E,x50,x0B,xF0,xFE,xD0
                DEFB    x80,x00,x03,x6D,x00,x80,x00,x1B
                DEFB    x6D,x00,x4B,x6D,xB6,xDB,x1C,x90
                DEFB    x0A,x00,x06,xD0,xBF,x60,x03,x6D
                DEFB    x00,xBF,x60,x1B,x6D,x00,xFF,xFF
                DEFB    xFF,xFF,xFF,x20,x0B,xFF,xFF,xD0
                DEFB    x80,x00,x00,x01,x00,x80,x00,x00
                DEFB    x01,x00,x80,x00,x00,x00,x01,x40
                DEFB    x08,x00,x00,x10,xFF,xFF,xFF,xFF
                DEFB    x00,xFF,xFF,xFF,xFF,x00,xFF,xFF
                DEFB    xFF,xFF,xFF,x80,x07,xFF,xFF,xE0
                DEFB    x80,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x01,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    x80,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x01,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xE0,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x07,xE0,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x07
                DEFB    xE0,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x07,xE0,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x07
                DEFB    xE0,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x07,xE0,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x07
                DEFB    xE0,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x07,xE0,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x07
                DEFB    xE0,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x07,xE0,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x07
                DEFB    xE0,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x07,xE0,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x07
                DEFB    xE0,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x07,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    x45,x45,x45,x45,x45,x45,x45,x45
                DEFB    x45,x45,x45,x45,x45,x45,x45,x45
                DEFB    x45,x45,x45,x45,x45,x45,x45,x45
                DEFB    x45,x45,x42,x43,x45,x45,x45,x45
                DEFB    x45,x45,x45,x45,x45,x42,x45,x45
                DEFB    x45,x45,x45,x45,x45,x45,x42,x43
                DEFB    x45,x45,x45,x45,x45,x45,x45,x45
                DEFB    x45,x45,x45,x45,x44,x44,x44,x44
                DEFB    x40,x45,x45,x45,x45,x40,x47,x47
                DEFB    x47,x47,x47,x47,x46,x46,x46,x46
                DEFB    x41,x41,x41,x41,x41,x41,x41,x41
                DEFB    x41,x41,x41,x41,x41,x41,x41,x41
                DEFB    x41,x41,x41,x41,x41,x41,x41,x41
                DEFB    x41,x41,x41,x41,x41,x41,x41,x41
                DEFB    x41,x41,x41,x41,x41,x41,x41,x41
                DEFB    x41,x41,x41,x41,x41,x41,x41,x41
                DEFB    x41,x41,x41,x41,x41,x41,x41,x41
                DEFB    x41,x41,x41,x41

img.LiftUp:     DEFB    xFF,xFF,xFF,xFF,xFF,xFE,x7F,xFF ; (4x1)
                DEFB    xFF,xFC,x3F,xFF,xFF,xF8,x1F,xFF
                DEFB    xFF,xF0,x0F,xFF,xFF,xFC,x3F,xFF
                DEFB    xFF,xFC,x3F,xFF,xFF,xFC,x3F,xFF
                DEFB    x15,x15,x15,x15

img.LiftDown:   DEFB    xFF,xFC,x3F,xFF,xFF,xFC,x3F,xFF ; (4x1)
                DEFB    xFF,xFC,x3F,xFF,xFF,xF0,x0F,xFF
                DEFB    xFF,xF8,x1F,xFF,xFF,xFC,x3F,xFF
                DEFB    xFF,xFE,x7F,xFF,xFF,xFF,xFF,xFF
                DEFB    x15,x15,x15,x15

img.BeltRight:  DEFB    x55,x55,xFF,xFF,xEF,xEF,xF7,xF7 ; (2x1)
                DEFB    x83,x83,xF7,xF7,xEF,xEF,xFF,xFF
                DEFB    x03,x03

img.BeltLeft:   DEFB    xAA,xAA,xFF,xFF,xF7,xF7,xEF,xEF ; (2x1)
                DEFB    xC1,xC1,xEF,xEF,xF7,xF7,xFF,xFF
                DEFB    x03,x03

img.Kitchen:    DEFB    x00,x00,x00,x00,x00,x03,x81,xC0 ; (15x6)
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x01,xE7,x80,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x7E,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x03,x81,xC0,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x01,xE7,x80,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x7E,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x03
                DEFB    x01,xC0,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x01,xE7
                DEFB    x80,x00,x00,x00,x00,x00,x00,x00
                DEFB    x03,xE0,x0F,x80,x00,x00,x7E,x00
                DEFB    x42,x42,x42,x00,x00,x00,x00,x07
                DEFB    xF0,x1F,xC0,x00,x03,x81,xC0,x7E
                DEFB    x7E,x7E,x00,x00,x00,x00,x7F,xFF
                DEFB    xFF,xFC,x00,x01,xE7,x80,x52,x52
                DEFB    x52,x00,x00,x00,x00,x7F,xFF,xFF
                DEFB    xFC,x00,x00,x7E,x00,x52,x52,x52
                DEFB    x00,x00,x00,x00,x80,x00,x00,x02
                DEFB    x00,x03,x81,xC0,x52,x52,x52,x00
                DEFB    x00,x00,x00,x80,x00,x00,x02,x00
                DEFB    x01,xE7,x80,x52,x52,x52,x00,x00
                DEFB    x00,x00,x84,x21,x08,x42,x00,x00
                DEFB    x7E,x00,x3C,x3C,x3C,x00,x00,x00
                DEFB    x00,x8E,x73,x9C,xE2,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x84,x21,x08,x42,x7F,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xF0,x00,x00,x80
                DEFB    x00,x00,x02,xD5,x55,x55,x55,x55
                DEFB    x55,x55,x55,x58,x00,x00,x80,x00
                DEFB    x00,x02,xAA,xAA,xAA,xAA,xAA,xAA
                DEFB    xAA,xAA,xA8,x00,x00,x9F,xFF,xFF
                DEFB    xF2,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xF8,x00,x00,xA0,x00,x00,x0A
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xF8,x00,x00,xA0,x03,x80,x0A,x7F
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xF0
                DEFB    x00,x00,xA0,x00,x00,x0A,x06,xC0
                DEFB    x00,x00,x00,x00,x00,x17,x00,x00
                DEFB    x00,xA0,x00,x00,x0A,x05,xC0,x00
                DEFB    x00,x00,x00,x00,x1B,x00,x00,x00
                DEFB    xBF,xFF,xFF,xFA,x06,xC0,x00,x00
                DEFB    x00,x00,x00,x17,x00,xF0,x1E,xA0
                DEFB    x00,x00,x0A,x05,xC0,x00,x00,x00
                DEFB    x00,x00,x1B,x01,xFF,xFF,xBF,xFF
                DEFB    xFF,xFA,x06,xC0,x00,x00,x00,x00
                DEFB    x00,x17,x01,xC9,x27,xA0,x00,x00
                DEFB    x0A,x05,xC0,x00,x00,x00,x00,x00
                DEFB    x1B,x01,x36,xDB,xBF,xFF,xFF,xFA
                DEFB    x06,xC0,x00,x00,x00,x00,x00,x17
                DEFB    x00,xB6,xDA,xA0,x00,x00,x0A,x05
                DEFB    xC0,x00,x00,x00,x00,x00,x1B,x00
                DEFB    xB6,xDA,xBF,xFF,xFF,xFA,x06,xC0
                DEFB    x00,x00,x00,x00,x00,x17,x00,xB6
                DEFB    xDA,xA0,x00,x00,x0A,x05,xC0,x00
                DEFB    x00,x00,x00,x00,x1B,x00,xB6,xDA
                DEFB    xBF,xFF,xFF,xFA,x06,xC0,x00,x00
                DEFB    x00,x00,x00,x17,x00,xB6,xDA,xA0
                DEFB    x00,x00,x0A,x05,xC0,x00,x00,x00
                DEFB    x00,x00,x1B,x00,xB6,xDA,xBF,xFF
                DEFB    xFF,xFA,x06,xC0,x00,x00,x00,x00
                DEFB    x00,x17,x00,xB6,xDA,xA0,x00,x00
                DEFB    x0A,x05,xC0,x00,x00,x00,x00,x00
                DEFB    x1B,x00,xB6,xDA,xBF,xFF,xFF,xFA
                DEFB    x06,xC0,x00,x00,x00,x00,x00,x17
                DEFB    x00,xB6,xDA,xA0,x00,x00,x0A,x05
                DEFB    xC0,x00,x00,x00,x00,x00,x1B,x00
                DEFB    xB6,xDA,xBF,xFF,xFF,xFA,x06,xC0
                DEFB    x00,x00,x00,x00,x00,x17,x00,xB6
                DEFB    xDA,xA0,x00,x00,x0A,x05,xC0,x00
                DEFB    x00,x00,x00,x00,x1B,x00,xB6,xDA
                DEFB    x9F,xFF,xFF,xF2,x06,xC0,x00,x00
                DEFB    x00,x00,x00,x17,x00,xB6,xDA,xC0
                DEFB    x00,x00,x06,x05,xC0,x00,x00,x00
                DEFB    x00,x00,x1B,x00,xB6,xDA,xFF,xFF
                DEFB    xFF,xFE,x06,xC0,x00,x00,x00,x00
                DEFB    x00,x17,x00,xB6,xDA,xFF,xFF,xFF
                DEFB    xFE,x05,xC0,x00,x00,x00,x00,x00
                DEFB    x1B,x00,xB6,xDA,x7F,xFF,xFF,xFC
                DEFB    x06,xC0,x00,x00,x00,x00,x00,x17
                DEFB    x01,xB6,xDB,x40,x00,x00,x04,x05
                DEFB    xC0,x00,x00,x00,x00,x00,x1B,x01
                DEFB    xC9,x27,x40,x00,x00,x04,x06,xC0
                DEFB    x00,x00,x00,x00,x00,x1F,x01,xFF
                DEFB    xFF,x3F,xFF,xFF,xF8,x03,x80,x00
                DEFB    x00,x00,x00,x00,x0E,x00,xFF,xFE
                DEFB    x04,x04,x04,x04,x04,x04,x04,x04
                DEFB    x04,x04,x04,x04,x04,x04,x04,x03
                DEFB    x03,x03,x03,x04,x04,x04,x04,x05
                DEFB    x07,x03,x07,x07,x07,x07,x03,x03
                DEFB    x03,x03,x06,x06,x06,x06,x06,x06
                DEFB    x06,x06,x06,x06,x06,x03,x03,x03
                DEFB    x03,x06,x06,x06,x06,x06,x06,x06
                DEFB    x06,x05,x05,x05,x03,x03,x03,x03
                DEFB    x06,x06,x06,x06,x06,x06,x06,x06
                DEFB    x05,x05,x05,x03,x03,x03,x03,x06
                DEFB    x06,x06,x06,x06,x06,x06,x06,x05
                DEFB    x05,x05

;-----------------------------------------------------------------------------
; Enemy Images (2x3)
;-----------------------------------------------------------------------------

                ORG     53378

img.Ghost1:     DEFB    xA1,x80,xA3,x40,xA5,xA0,xAA,x50
                DEFB    xAD,xB0,x4E,x70,x44,x20,x42,x40
                DEFB    x43,xC0,x07,xE0,xCF,xF8,xBF,x5C
                DEFB    xBF,xBE,x7F,xFF,x3F,xFF,x4F,xF3
                DEFB    x47,xE0,x47,xE0,x47,xC0,x03,x80
                DEFB    x03,x80,x03,x00,x07,x00,x0E,x00
                DEFB    x07,x07,x07,x07,x07,x07

img.Ghost2:     DEFB    x01,x00,x02,xC0,xA5,xA0,xAA,x50
                DEFB    xAD,xB0,xAF,xF0,xA6,x60,x43,xC0
                DEFB    x43,xC0,x47,xE0,x5F,xF3,x3F,x1F
                DEFB    x7F,xFF,xBF,xFE,xBF,xFC,xCF,xF0
                DEFB    x07,xE0,x47,xE0,x43,xE0,x41,xC0
                DEFB    x41,xC0,x00,xC0,x00,xE0,x00,x70
                DEFB    x07,x07,x07,x07,x07,x07

                DEFS    36

img.Bug1:       DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x07,xE0,x0F,xF0,x1F,xF8,xFF,xFF
                DEFB    x1F,xF8,x1F,xF8,x21,x8C,x2A,x54
                DEFB    x71,x8E,x9E,xF9,x8D,xF1,x1D,xB8
                DEFB    x32,x4C,x58,x1A,x4C,x32,x07,xE0
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x04,x04,x04,x04,x04,x04

img.Bug2:       DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x07,xE0,x8F,xF1,x5F,xFA,x3F,xFC
                DEFB    x1F,xF8,x11,x88,x2E,x74,x2A,x54
                DEFB    x71,x8E,x5E,xFA,x8D,xF1,x1D,xB8
                DEFB    x12,x48,x78,x1E,x8C,x31,x07,xE0
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x04,x04,x04,x04,x04,x04

img.Head1:      DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x03,xC0,x0B,xF0,x15,x78,x3F,xFC
                DEFB    x50,x0C,x65,xA6,xC7,xE7,xF1,x8F
                DEFB    xBE,x7F,xDD,xF7,x2C,x3A,x5A,x5E
                DEFB    x2C,x3C,x16,x78,x0B,xF0,x03,xC0
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x06,x06,x06,x06,x06,x06

img.Head2:      DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x03,xC0,x0D,xF0,x1A,xF8,x3F,xFC
                DEFB    x51,x8C,x64,x26,xC5,xA7,xB3,xCF
                DEFB    x5D,xBB,xAA,x77,x5F,xFA,x72,x4E
                DEFB    x38,x1C,x1C,x38,x0B,xF0,x02,xC0
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x06,x06,x06,x06,x06,x06

                DEFS    54

img.Devil1:     DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x01,x02,x02,x87,x05,x42,x0A,xE2
                DEFB    x0B,xA2,x15,xF2,x17,xF2,x09,x22
                DEFB    x04,x41,x03,x16,x0A,xA8,x15,x52
                DEFB    x2A,xA2,x55,x42,x22,x80,x00,x00
                DEFB    x0E,xE0,x00,x00,x00,x00,x00,x00
                DEFB    x05,x05,x05,x05,x05,x05

img.Devil2:     DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x01,x00,x02,x80,x05,x40,x0A,xE2
                DEFB    x0B,xA7,x15,xF2,x17,xF2,x09,x20
                DEFB    x04,x42,x03,x81,x0A,xAE,x15,x52
                DEFB    x2A,xA2,x55,x42,x22,x82,x00,x02
                DEFB    x0E,xE2,x00,x00,x00,x00,x00,x00
                DEFB    x05,x05,x05,x05,x05,x05

img.Car1:       DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x07,xE0,x03,x40
                DEFB    x01,x80,x01,x80,x01,x80,x01,x80
                DEFB    x01,x80,x01,x80,x01,x80,x01,x80
                DEFB    x3F,xFC,x01,x80,x00,x00,x1C,x38
                DEFB    x26,x64,x32,x4C,x1C,x38,x00,x00
                DEFB    x03,x03,x03,x03,x03,x03

img.Car2:       DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x07,xE0,x03,xC0
                DEFB    x01,x80,x01,x80,x01,x80,x01,x80
                DEFB    x3F,xFC,x01,x80,x00,x00,x1C,x38
                DEFB    x32,x4C,x26,x64,x1C,x38,x00,x00
                DEFB    x03,x03,x03,x03,x03,x03

                DEFS    18

img.Medusa1:    DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x04,x40,x12,xC0,x0B,x10
                DEFB    x07,xA0,x3F,xC0,x0F,xF8,x3F,xC0
                DEFB    x2F,xF8,x1B,xE0,x22,xA0,x05,x98
                DEFB    x0A,x40,x00,x40,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x02,x02,x02,x02,x02,x02

img.Medusa2:    DEFB    x00,x00,x00,x00,x00,x00,x05,x20
                DEFB    x03,x40,x31,x74,x1D,xCC,x03,x50
                DEFB    x3F,xEC,x07,xF4,x3F,xE0,x67,xFC
                DEFB    x0B,xF3,x12,xAC,x64,xA4,x4B,x10
                DEFB    x1A,xD8,x00,xC0,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x02,x02,x02,x02,x02,x02

;-----------------------------------------------------------------------------
; Game Images
;-----------------------------------------------------------------------------

                ORG     54134

img.GameOver:   DEFB    x00,x00,x00,x00,x00,x00,x00,x00 ; (12x3)
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x0F,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xF0,x18,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x18
                DEFB    x37,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xEC,x37,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xF4
                DEFB    x36,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x74,x34,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x34
                DEFB    x34,x9C,x0C,x42,x5C,x00,x00,x9E
                DEFB    x62,x5C,x7C,x34,x34,x72,x16,x46
                DEFB    x34,x00,x00,x73,xB5,x34,xA2,x34
                DEFB    x34,x7C,x26,x6E,x18,x00,x00,x63
                DEFB    x74,x18,x36,x34,x34,x60,x26,x76
                DEFB    x3C,x00,x00,x63,x34,x3C,x3C,x34
                DEFB    x34,x66,x3E,x56,x60,x00,x00,x63
                DEFB    x34,x60,x36,x34,x34,x3E,xA6,xD7
                DEFB    x63,x00,x00,x62,x18,x63,xA2,x34
                DEFB    x34,x46,x43,x42,x3C,x00,x00,x3C
                DEFB    x08,x3C,x63,x34,x34,x3C,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x34
                DEFB    x34,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x34,x36,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x74
                DEFB    x3B,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xF4,x3C,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x0C
                DEFB    x1F,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xF8,x0F,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xF0
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x45,x45,x45,x45,x45,x45,x45,x45
                DEFB    x45,x45,x45,x45,x45,x45,x45,x45
                DEFB    x45,x45,x45,x45,x45,x45,x45,x45
                DEFB    x45,x45,x45,x45,x45,x45,x45,x45
                DEFB    x45,x45,x45,x45

img.Info:       DEFB    x00,x00,x00,x00,x00,x00,x00,x00 ; (14x3)
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x0F,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xF0,x18,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x18
                DEFB    x37,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xEC,x37,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xF4,x36,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x74,x34,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x34
                DEFB    x34,x2C,x00,x0F,x00,x00,x00,x00
                DEFB    x06,x04,x00,x00,x00,x34,x34,x1C
                DEFB    x00,x19,x00,x20,x00,x00,x0C,x00
                DEFB    x00,x00,x04,x34,x34,x0C,x2C,x12
                DEFB    x1C,x38,x54,x1D,x1F,x08,x1C,x2C
                DEFB    x0C,x34,x34,x0C,x5A,x3C,x26,x48
                DEFB    xAA,x22,x38,x10,x26,x5A,x16,x34
                DEFB    x34,x0C,xB6,xF8,x65,x98,xAA,x64
                DEFB    x58,x30,x65,xB6,x3A,x34,x34,x2D
                DEFB    x27,x57,xB8,x1F,x57,xBF,x8F,xDF
                DEFB    xB8,x27,xDD,x34,x34,x1E,x00,x90
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x34,x34,x00,x00,xE0,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x34
                DEFB    x34,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x34,x36,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x74,x3B,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xF4,x3C,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x0C
                DEFB    x1F,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xF8,x0F,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xF0,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x06,x06,x06,x06,x06,x06,x06,x06
                DEFB    x06,x06,x06,x06,x06,x06,x06,x03
                DEFB    x03,x03,x03,x03,x03,x03,x03,x03
                DEFB    x03,x03,x03,x06,x06,x06,x06,x06
                DEFB    x06,x06,x06,x06,x06,x06,x06,x06
                DEFB    x06,x06

img.Continue:   DEFB    x00,x00,x00,x00,x00,x00,x00,x00 ; (10x3)
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x0F,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xF0,x18,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x18
                DEFB    x37,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xEC,x37,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xF4,x36,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x74,x34,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x34
                DEFB    x34,x5C,x00,x00,x06,x04,x00,x00
                DEFB    x00,x34,x34,xB4,x00,x00,x0C,x00
                DEFB    x00,x00,x00,x34,x34,x78,x1C,x2C
                DEFB    x1F,x08,x2C,x26,x1C,x34,x34,x60
                DEFB    x26,x5A,x38,x10,x5A,x6C,x24,x34
                DEFB    x34,x60,x65,xB6,x58,x30,xB6,xEC
                DEFB    x78,x34,x34,x63,x38,x27,x8F,xDF
                DEFB    x27,x37,x9F,x34,x34,x3C,x00,x00
                DEFB    x00,x00,x00,x00,x00,x34,x34,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x34
                DEFB    x34,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x34,x36,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x74,x3B,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xF4,x3C,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x0C
                DEFB    x1F,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xF8,x0F,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xF0,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x03,x03,x03,x03,x03,x03,x03,x03
                DEFB    x03,x03,x03,x06,x06,x06,x06,x06
                DEFB    x06,x06,x06,x03,x03,x03,x03,x03
                DEFB    x03,x03,x03,x03,x03,x03

img.Congrat:    DEFB    x00,x00,x00,x00,x00,x00,x00,x00 ; (17x3)
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x0F,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xF0,x18,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x18,x37,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xEC,x37,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xF4,x36,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x74,x34
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x34
                DEFB    x34,x5C,x9E,x23,x9C,x7C,x0C,x76
                DEFB    x61,x4C,x0C,x76,x2C,x9E,x23,x4E
                DEFB    x34,x34,xB4,x73,x32,x72,xA2,x16
                DEFB    x9E,xB2,xBC,x16,x9E,x1C,x73,x32
                DEFB    x59,x34,x34,x78,x63,x3A,x7C,x36
                DEFB    x26,x58,x72,x58,x26,x58,x0C,x63
                DEFB    x3A,x3E,x34,x34,x60,x63,x2E,x60
                DEFB    x3C,x26,x18,x32,x18,x26,x18,x0C
                DEFB    x63,x2E,x0C,x34,x34,x60,x63,x26
                DEFB    x66,x36,x3E,x18,x32,x18,x3E,x18
                DEFB    x0C,x63,x26,x06,x34,x34,x63,x62
                DEFB    xA2,x3E,xA2,xA6,x19,x32,x71,xA6
                DEFB    x19,x2D,x62,xA2,x46,x34,x34,x3C
                DEFB    x3C,x43,x46,x63,x43,x0E,x1C,x3E
                DEFB    x43,x0E,x1E,x3C,x43,x3C,x34,x34
                DEFB    x00,x00,x00,x3C,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x34
                DEFB    x34,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x34,x36,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x74,x3B,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xF4,x3C,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x0C,x1F,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xF8,x0F,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xF0,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x42,x42,x42,x42,x42,x42,x42,x42
                DEFB    x42,x42,x42,x42,x42,x42,x42,x42
                DEFB    x42,x42,x45,x45,x45,x45,x45,x45
                DEFB    x45,x45,x45,x45,x45,x45,x45,x45
                DEFB    x45,x42,x42,x42,x42,x42,x42,x42
                DEFB    x42,x42,x42,x42,x42,x42,x42,x42
                DEFB    x42,x42,x42

;-----------------------------------------------------------------------------
; Witch Images
;-----------------------------------------------------------------------------

                ORG     55565

img.WitchRoom:  DEFB    x00,x00,x00,x00,x00,x00,x00,x00 ; (15x9)
                DEFB    x00,x00,x00,x08,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x08,x00,x00,x00,xC0,x03
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x08,x00,x00,x00,xC0,x03,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x08,x00,x00,x00,xC0,x03,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x08
                DEFB    x00,x00,x00,xC0,x03,x00,x00,x00
                DEFB    x00,x7C,x00,x7C,x00,x00,x08,x00
                DEFB    x00,x00,xC0,x03,x00,x00,x00,x00
                DEFB    x83,x60,x83,x60,x00,x08,x00,x00
                DEFB    x00,xFF,xFF,x00,x00,x00,x00,x81
                DEFB    xC0,x81,xC0,x00,x08,x00,x00,x00
                DEFB    xFF,xFF,x00,x00,x00,x00,xFF,x80
                DEFB    xFF,x00,x00,x08,x00,x00,x00,xC0
                DEFB    x03,x00,x00,x00,x00,xDD,x80,xDD
                DEFB    x80,x00,x08,x00,x00,x00,xC0,x03
                DEFB    x00,x00,x00,x00,xEB,x00,xEB,x80
                DEFB    x00,x08,x00,x00,x00,xC0,x03,x00
                DEFB    x00,x00,x00,xF7,x80,xF7,x80,x00
                DEFB    x08,x00,x00,x00,xC0,x03,x00,x00
                DEFB    x00,x00,xEB,x80,xEB,x80,x00,x0C
                DEFB    x00,x00,x00,xC0,x03,x00,x00,x00
                DEFB    x00,xDD,x80,xDD,x80,x00,x18,x00
                DEFB    x00,x00,xC0,x03,x00,x00,x00,x00
                DEFB    xFF,x00,xFF,x80,x00,x0C,x00,x00
                DEFB    x00,xFF,xFF,x00,x00,x00,x00,x7F
                DEFB    x00,x7F,x00,x00,x14,x00,x00,x00
                DEFB    x00,x00,x3F,xFC,x3F,xFC,x3F,xFC
                DEFB    x3F,xFC,x3F,xFC,x3F,xFC,x3F,x27
                DEFB    xFC,x67,xFE,x67,xFE,x67,xFE,x67
                DEFB    xFE,x67,xFE,x67,xFE,x67,x1F,xFC
                DEFB    x5F,xFE,x5F,xFE,x5F,xFE,x5F,xFE
                DEFB    x5F,xFE,x5F,xFE,x5F,x3F,xFC,x7F
                DEFB    xFE,x7F,xFE,x7F,xFE,x7F,xFE,x7F
                DEFB    xFE,x7F,xFE,x7F,x3F,xFC,x7F,xFE
                DEFB    x7F,xFE,x7F,xFE,x7F,xFE,x7F,xFE
                DEFB    x7F,xFE,x7F,x3F,xFC,x7F,xFE,x7F
                DEFB    xFE,x7F,xFE,x7F,xFE,x7F,xFE,x7F
                DEFB    xFE,x7F,x3F,xFC,x3F,xFC,x3F,xFC
                DEFB    x3F,xFC,x3F,xFC,x3F,xFC,x3F,xFC
                DEFB    x3F,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,xFC,x3F,xFC,x3F,xFC,x3F
                DEFB    xFC,x3F,xFC,x3F,xFC,x3F,xFC,x3E
                DEFB    x64,xFE,x67,xFE,x67,xFE,x67,xFE
                DEFB    x67,xFE,x67,xFE,x67,xFE,x3E,x5C
                DEFB    xFE,x5F,xFE,x5F,xFE,x5F,xFE,x5F
                DEFB    xFE,x5F,xFE,x5F,xFE,x3E,x7C,xFE
                DEFB    x7F,xFE,x7F,xFE,x7F,xFE,x7F,xFE
                DEFB    x7F,xFE,x7F,xFE,x3E,x7C,xFE,x7F
                DEFB    xFE,x7F,xFE,x7F,xFE,x7F,xFE,x7F
                DEFB    xFE,x7F,xFE,x3E,x7C,xFE,x7F,xFE
                DEFB    x7F,xFE,x7F,xFE,x7F,xFE,x7F,xFE
                DEFB    x7F,xFE,x3C,x3C,xFC,x3F,xFC,x3F
                DEFB    xFC,x3F,xFC,x3F,xFC,x3F,xFC,x3F
                DEFB    xFC,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    xFF,xFF,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,xFC,x3F,xC0
                DEFB    x03,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,xFE,x67,xC0,x03
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,xFE,x5F,xC0,x03,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,xFE,x7F,xC0,x03,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,xFE,x7F,xC0,x03,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    xFE,x7F,xC0,x03,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,xFC
                DEFB    x3F,xFF,xFF,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    xFF,xFF,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x3F,xFC,xC0
                DEFB    x03,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x67,xFE,xC0,x03
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x5F,xFE,xC0,x03,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x7F,xFE,xC0,x03,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x7F,xFE,xC0,x03,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x7F,xFE,xC0,x03,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x3F
                DEFB    xFC,xFF,xFF,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    xFF,xFF,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,xFC,x3F,xC0
                DEFB    x03,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,xFE,x67,xC0,x03
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,xFE,x5F,xC0,x03,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,xFE,x7F,xC0,x03,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,xFE,x7F,xC0,x03,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    xFE,x7F,xC0,x03,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,xFC
                DEFB    x3F,xFF,xFF,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    xFF,xFF,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x3F,xFC,xC0
                DEFB    x03,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x67,xFE,xC0,x03
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x5F,xFE,xC0,x03,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x7F,xFE,xC0,x03,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x7F,xFE,xC0,x03,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x7F,xFE,xC0,x03,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x3F
                DEFB    xFC,xFF,xFF,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    xFF,xFF,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,xFC,x3F,xC0
                DEFB    x03,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,xFE,x67,xC0,x03
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,xFE,x5F,xC0,x03,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,xFE,x7F,xC0,x03,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,xFE,x7F,xC0,x03,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    xFE,x7F,xC0,x03,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,xFC
                DEFB    x3F,xC0,x03,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x06,x06,x00,x00,x00,x00,x04,x04
                DEFB    x04,x04,x03,x03,x00,x00,x00,x06
                DEFB    x06,x00,x00,x00,x00,x04,x04,x04
                DEFB    x04,x03,x03,x00,x00,x00,x32,x32
                DEFB    x32,x32,x32,x32,x32,x32,x32,x32
                DEFB    x32,x32,x32,x32,x32,x32,x32,x32
                DEFB    x32,x32,x32,x32,x32,x32,x32,x32
                DEFB    x32,x32,x32,x32,x06,x06,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x32,x32,x06,x06,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x32,x32,x06,x06,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x32
                DEFB    x32,x06,x06,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x32,x32
                DEFB    x06,x06,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x32,x32

img.Witch1:     DEFB    x03,xC0,x00,xE0,x0F,xF0,x00,xF8 ; (2x2)
                DEFB    x03,x80,x01,x00,x02,x80,x07,x80
                DEFB    x09,xC0,x11,xC0,x20,xEB,xBF,xFE
                DEFB    x00,x45,x01,xC0,x00,x00,x00,x00
                DEFB    x06,x06,x06,x06

img.Witch2:     DEFB    x01,x80,x00,xA0,x0D,xB0,x00,xB0 ; (2x2)
                DEFB    x01,x80,x01,x00,x00,x80,x05,x80
                DEFB    x09,x80,x01,x80,x20,xA2,xAD,xB6
                DEFB    x00,x04,x01,x80,x00,x00,x00,x00
                DEFB    x06,x06,x06,x06

img.Witch3:     DEFB    x01,x80,x00,x00,x0D,xB0,x00,xB0 ; (2x2)
                DEFB    x00,x00,x01,x00,x00,x80,x00,x00
                DEFB    x09,x80,x01,x80,x00,x00,xAD,xB6
                DEFB    x00,x04,x01,x80,x00,x00,x00,x00
                DEFB    x06,x06,x06,x06

img.Witch4:     DEFB    x00,x80,x00,x00,x0A,xA0,x00,x00 ; (2x2)
                DEFB    x00,x80,x00,x00,x02,x80,x00,x00
                DEFB    x08,x80,x00,x00,x20,xAA,x4A,x00
                DEFB    x00,x05,x00,x00,x01,x00,x00,x00
                DEFB    x06,x06,x06,x06

;-----------------------------------------------------------------------------
; Ready Images
;-----------------------------------------------------------------------------

                ORG     56924

img.Ready1:     DEFB    x00,x00,x00,x00,x00,x00,x00,x00 ; (8x2)
                DEFB    x7F,xC3,xFF,xBF,xC3,xFF,x1F,x7C
                DEFB    x40,x32,x01,xA0,x62,x01,x93,x4C
                DEFB    x4F,x9A,x7F,xA7,x32,x78,xD3,x4C
                DEFB    x4C,x9A,x60,x26,x9A,x64,xD3,x4C
                DEFB    x4F,x9A,x7F,xA7,x9A,x64,xD3,xCC
                DEFB    x40,x1A,x01,xA0,x1A,x64,xD0,x0C
                DEFB    x4F,x3A,x7F,xA7,x9A,x64,xDF,xCC
                DEFB    x4C,x9A,x60,x26,x9A,x64,xC0,x4C
                DEFB    x4C,x9A,x60,x26,x9A,x64,xC0,x4C
                DEFB    x4C,x9A,x60,x26,x9A,x64,xDF,x4C
                DEFB    x4C,x9A,x7F,xA6,x9A,x64,xD3,x4C
                DEFB    x4C,x9A,x7F,xA6,x9A,x78,xD3,xCC
                DEFB    x4C,x9A,x00,xA6,x9A,x01,x90,x0C
                DEFB    x7C,xFB,xFF,xBE,xFB,xFE,x1F,xFC
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x29,x29,x29,x29,x29,x29,x29,x29
                DEFB    x29,x29,x29,x29,x29,x29,x29,x29

img.Ready2:     DEFB    x00,x00,x00,x00,x00,x00,x00,x00 ; (8x2)
                DEFB    x7F,xC3,xFF,xBF,xC3,xFF,x1F,x7C
                DEFB    x40,x32,x01,xA0,x62,x01,x93,x4C
                DEFB    x4F,x9A,x7F,xA7,x32,x78,xD3,x4C
                DEFB    x4C,x9A,x60,x26,x9A,x64,xD3,x4C
                DEFB    x4F,x9A,x7F,xA7,x9A,x64,xD3,xCC
                DEFB    x40,x1A,x01,xA0,x1A,x64,xD0,x0C
                DEFB    x4F,x3A,x7F,xA7,x9A,x64,xDF,xCC
                DEFB    x4C,x9A,x60,x26,x9A,x64,xC0,x4C
                DEFB    x4C,x9A,x60,x26,x9A,x64,xC0,x4C
                DEFB    x4C,x9A,x60,x26,x9A,x64,xDF,x4C
                DEFB    x4C,x9A,x7F,xA6,x9A,x64,xD3,x4C
                DEFB    x4C,x9A,x7F,xA6,x9A,x78,xD3,xCC
                DEFB    x4C,x9A,x00,xA6,x9A,x01,x90,x0C
                DEFB    x7C,xFB,xFF,xBE,xFB,xFE,x1F,xFC
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x05,x05,x05,x05,x05,x05,x05,x05
                DEFB    x05,x05,x05,x05,x05,x05,x05,x05

img.Readysoft:  DEFB    x00,x00,x00,x00,x00,x00,x00,x00 ; (11x5)
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x01,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,x80,x02
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x40,x04,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,x20,x05,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,xA0
                DEFB    x05,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,xA0,x05,x3F,xF8,xFF,xFB
                DEFB    xFF,x0F,xFE,x3E,x7C,xA0,x05,x20
                DEFB    x0C,x80,x1A,x01,x88,x03,x26,x4C
                DEFB    xA0,x05,x27,xE6,x9F,xFA,x7C,xC9
                DEFB    xF1,xA6,x4C,xA0,x05,x26,x26,x98
                DEFB    x02,x62,x69,x89,xA6,x4C,xA0,x05
                DEFB    x27,xE6,x9F,xFA,x7E,x69,x89,xA7
                DEFB    xCC,xA0,x05,x20,x06,x80,x1A,x00
                DEFB    x69,x89,xA0,x0C,xA0,x05,x27,xCE
                DEFB    x9F,xFA,x7E,x69,x89,xBF,xCC,xA0
                DEFB    x05,x26,x26,x98,x02,x62,x69,x89
                DEFB    x80,x4C,xA0,x05,x26,x26,x98,x02
                DEFB    x62,x69,x89,x80,x4C,xA0,x05,x26
                DEFB    x26,x98,x02,x62,x69,x89,xBE,x4C
                DEFB    xA0,x05,x26,x26,x9F,xFA,x62,x69
                DEFB    xF9,xA7,xCC,xA0,x05,x26,x26,x9F
                DEFB    xFA,x62,x69,xF1,xA7,xCC,xA0,x05
                DEFB    x26,x26,x80,x1A,x62,x68,x03,x20
                DEFB    x0C,xA0,x05,x3E,x3E,xFF,xFB,xE3
                DEFB    xEF,xFC,x3F,xFC,xA0,x05,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,xA0
                DEFB    x05,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,xA0,x05,x7E,x7E,x7E,x7E
                DEFB    x42,x3C,x7C,x7E,x7E,xA0,x05,x40
                DEFB    x42,x40,x10,x42,x42,x42,x40,x40
                DEFB    xA0,x05,x7E,x42,x7E,x10,x42,x7E
                DEFB    x7C,x7E,x7E,xA0,x05,x02,x42,x40
                DEFB    x10,x5A,x42,x42,x40,x02,xA0,x05
                DEFB    x7E,x7E,x40,x10,x24,x42,x42,x7E
                DEFB    x7E,xA0,x05,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,xA0,x04,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,x20
                DEFB    x02,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x40,x01,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,x80,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x06,x06,x06,x06,x06,x06,x06,x06
                DEFB    x06,x06,x06,x06,x17,x17,x17,x17
                DEFB    x17,x17,x17,x17,x17,x06,x06,x06
                DEFB    x06,x06,x06,x06,x06,x06,x06,x06
                DEFB    x06,x06,x05,x05,x05,x05,x05,x05
                DEFB    x05,x05,x05,x06,x06,x06,x06,x06
                DEFB    x06,x06,x06,x06,x06,x06,x06

;-----------------------------------------------------------------------------
; Disk Print Data (2x1)
;-----------------------------------------------------------------------------

                ORG     57707

dat.DiskPrint1: DEFB    xFF,xFF,xBF,xED,xFF,xCF,xBF,xED
                DEFB    xFF,xEF,xBF,xED,xFF,xFF,xBF,xFD

dat.DiskPrint2: DEFB    xFF,xFF,xBF,x8D,xFF,xEF,xBF,x8D
                DEFB    xFF,xBF,xBF,x8D,xFF,xFF,xBF,xFD

dat.DiskPrint3: DEFB    xFF,xFF,xBF,x8D,xFF,xEF,xBF,x8D
                DEFB    xFF,xEF,xBF,x8D,xFF,xFF,xBF,xFD

dat.DiskPrint4: DEFB    xFF,xFF,xBF,xAD,xFF,xAF,xBF,x8D
                DEFB    xFF,xEF,xBF,xED,xFF,xFF,xBF,xFD

dat.DiskPrint5: DEFB    xFF,xFF,xBF,x8D,xFF,xBF,xBF,x8D
                DEFB    xFF,xEF,xBF,x8D,xFF,xFF,xBF,xFD

dat.DiskPrint6: DEFB    xFF,xFF,xBF,x8D,xFF,xBF,xBF,x8D
                DEFB    xFF,xAF,xBF,x8D,xFF,xFF,xBF,xFD

;-----------------------------------------------------------------------------
; Door Open Data (1x2)
;-----------------------------------------------------------------------------

                ORG     58124

dat.DoorLeft1:  DEFB    x06,x1E,x3E,x7E,xCA,xCA,xFE,xCA
                DEFB    xCA,xFE,xCA,xCA,xFE,xCA,xCA,xFE

dat.DoorRight1: DEFB    x60,x78,x7C,x7E,x53,x53,x7F,x53
                DEFB    x53,x7F,x53,x53,x7F,x53,x53,x7F

dat.DoorLeft2:  DEFB    x04,x0C,x3C,x7C,xD4,xD4,xFC,xD4
                DEFB    xD4,xFC,xD4,xD4,xFC,xD4,xD4,xFC

dat.DoorRight2: DEFB    x20,x30,x3C,x3E,x2B,x2B,x3F,x2B
                DEFB    x2B,x3F,x2B,x2B,x3F,x2B,x2B,x3F

dat.DoorLeft3:  DEFB    x08,x18,x38,x78,xA8,xA8,xF8,xA8
                DEFB    xA8,xF8,xA8,xA8,xF8,xA8,xA8,xF8

dat.DoorRight3: DEFB    x10,x18,x1C,x1E,x15,x15,x1F,x15
                DEFB    x15,x1F,x15,x15,x1F,x15,x15,x1F

dat.DoorLeft4:  DEFB    x10,x30,x70,x70,xB0,xB0,xF0,xB0
                DEFB    xB0,xF0,xB0,xB0,xF0,xB0,xB0,xF0

dat.DoorRight4: DEFB    x08,x0C,x0E,x0E,x0B,x0B,x0F,x0B
                DEFB    x0B,x0F,x0B,x0B,x0F,x0B,x0B,x0F

dat.DoorLeft5:  DEFB    x20,x20,x60,x60,xA0,xA0,xE0,xA0
                DEFB    xA0,xE0,xA0,xA0,xE0,xA0,xA0,xE0

dat.DoorRight5: DEFB    x04,x04,x06,x06,x05,x05,x07,x05
                DEFB    x05,x07,x05,x05,x07,x05,x05,x07

dat.DoorLeft6:  DEFB    x40,x40,x40,x40,xC0,xC0,xC0,xC0
                DEFB    xC0,xC0,xC0,xC0,xC0,xC0,xC0,xC0

dat.DoorRight6: DEFB    x02,x02,x02,x02,x03,x03,x03,x03
                DEFB    x03,x03,x03,x03,x03,x03,x03,x03

dat.DoorLeft7:  DEFB    x80,x80,x80,x80,x80,x80,x80,x80
                DEFB    x80,x80,x80,x80,x80,x80,x80,x80

dat.DoorRight7: DEFB    x01,x01,x01,x01,x01,x01,x01,x01
                DEFB    x01,x01,x01,x01,x01,x01,x01,x01

;-----------------------------------------------------------------------------
; Control Text
;-----------------------------------------------------------------------------

                ORG     58348

txt.Castle:     DEFM    'GHOST   CASTLE'
txt.Keys:       DEFM    'Keys :'
txt.O.Left:     DEFM    'O.......Left'
txt.P.Right:    DEFM    'P......Right'
txt.M.Jump:     DEFM    'M.......Jump'
txt.I.Info:     DEFM    'I.......Info'
txt.H.Hold:     DEFM    'H.......Hold'
txt.C1988:      DEFM    'C 1988 READYSOFT'
txt.Enter:      DEFM    'Press ENTER to start'

;-----------------------------------------------------------------------------
; Handwrite Charset
;-----------------------------------------------------------------------------

                ORG     58464

dat.HandChars:  DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00 ; ' '
                DEFB    x00,x10,x10,x10,x10,x00,x10,x00 ; '!'
                DEFB    x00,x24,x24,x00,x00,x00,x00,x00 ; '"'
                DEFB    x00,x24,x7E,x24,x24,x7E,x24,x00 ; '#'
                DEFB    x00,x08,x3E,x28,x3E,x0A,x3E,x08 ; '$'
                DEFB    x00,x62,x64,x08,x10,x26,x46,x00 ; '%'
                DEFB    x00,x10,x28,x10,x2A,x44,x3A,x00 ; '&'
                DEFB    x00,x08,x10,x00,x00,x00,x00,x00 ; '''
                DEFB    x00,x04,x08,x08,x08,x08,x04,x00 ; '('
                DEFB    x00,x20,x10,x10,x10,x10,x20,x00 ; ')'
                DEFB    x00,x00,x14,x08,x3E,x08,x14,x00 ; '*'
                DEFB    x00,x00,x08,x08,x3E,x08,x08,x00 ; '+'
                DEFB    x00,x00,x00,x00,x00,x08,x08,x10 ; ','
                DEFB    x00,x00,x00,x00,x3E,x00,x00,x00 ; '-'
                DEFB    x00,x00,x00,x00,x00,x18,x18,x00 ; '.'
                DEFB    x00,x00,x02,x04,x08,x10,x20,x00 ; '/'
                DEFB    x3C,x42,x42,x00,x42,x42,x3C,x00 ; '0'
                DEFB    x04,x04,x04,x00,x04,x04,x04,x00 ; '1'
                DEFB    x3C,x02,x02,x3C,x40,x40,x3C,x00 ; '2'
                DEFB    x3C,x02,x02,x3C,x02,x02,x3C,x00 ; '3'
                DEFB    x22,x22,x22,x1C,x02,x02,x02,x00 ; '4'
                DEFB    x3C,x40,x40,x3C,x02,x02,x3C,x00 ; '5'
                DEFB    x3C,x40,x40,x3C,x42,x42,x3C,x00 ; '6'
                DEFB    x3C,x02,x02,x00,x02,x02,x02,x00 ; '7'
                DEFB    x3C,x42,x42,x3C,x42,x42,x3C,x00 ; '8'
                DEFB    x3C,x42,x42,x3C,x02,x02,x3C,x00 ; '9'
                DEFB    x00,x00,x00,x10,x00,x00,x10,x00 ; ':'
                DEFB    x00,x00,x10,x00,x00,x10,x10,x20 ; ';'
                DEFB    x00,x00,x04,x08,x10,x08,x04,x00 ; '<'
                DEFB    x00,x00,x00,x3E,x00,x3E,x00,x00 ; '='
                DEFB    x00,x00,x10,x08,x04,x08,x10,x00 ; '>'
                DEFB    x00,x3C,x42,x04,x08,x00,x08,x00 ; '?'
                DEFB    x00,x3C,x4A,x56,x5E,x40,x3C,x00 ; '@'
                DEFB    x0C,x16,x26,x26,x3E,xA6,x43,x00 ; 'A'
                DEFB    x3C,x52,x3E,x33,x33,xB3,x6E,x00 ; 'B'
                DEFB    x5C,xB4,x78,x60,x60,x63,x3C,x00 ; 'C'
                DEFB    x7C,x96,x73,x33,x33,xA6,x7C,x00 ; 'D'
                DEFB    x5C,x34,x18,x3C,x60,x63,x3C,x00 ; 'E'
                DEFB    x71,x9E,x70,x3C,x30,xB0,x60,x00 ; 'F'
                DEFB    x9C,x72,x7C,x60,x66,x3E,x46,x3C ; 'G'
                DEFB    xA4,x67,x66,xFE,x66,x66,xC3,x00 ; 'H'
                DEFB    x2C,x1C,x0C,x0C,x0C,x2D,x1E,x00 ; 'I'
                DEFB    x16,x1E,x16,x06,x26,x47,x3C,x00 ; 'J'
                DEFB    xB2,x72,x3C,x32,x32,xB3,x43,x00 ; 'K'
                DEFB    x4C,xBC,x58,x18,x18,x71,x3E,x00 ; 'L'
                DEFB    x42,x46,x6E,x76,x56,xD7,x42,x00 ; 'M'
                DEFB    x23,x32,x3A,x2E,x26,xA2,x43,x00 ; 'N'
                DEFB    x9E,x73,x63,x63,x63,x62,x3C,x00 ; 'O'
                DEFB    x7E,xB3,x73,x3E,x30,xB0,x60,x00 ; 'P'
                DEFB    x9C,x72,x63,x63,x7B,x66,x3E,x03 ; 'Q'
                DEFB    x7C,xA2,x36,x3C,x36,xA2,x63,x00 ; 'R'
                DEFB    x4E,x59,x3E,x0C,x06,x46,x3C,x00 ; 'S'
                DEFB    x76,x9E,x58,x18,x18,x19,x0E,x00 ; 'T'
                DEFB    x61,xB2,x72,x32,x32,x32,x1C,x00 ; 'U'
                DEFB    x62,xB5,x74,x34,x34,x18,x08,x00 ; 'V'
                DEFB    x45,xED,x6D,x7D,x77,x66,x24,x00 ; 'W'
                DEFB    x62,xB5,x3C,x18,x38,xAD,xC6,x00 ; 'X'
                DEFB    x62,xB6,x36,x36,x1E,x46,x46,x3C ; 'Y'
                DEFB    x7E,x8C,x58,x18,x30,x61,xFE,x00 ; 'Z'
                DEFB    x00,x0E,x08,x08,x08,x08,x0E,x00 ; '['
                DEFB    x00,x00,x40,x20,x10,x08,x04,x00 ; '\'
                DEFB    x00,x70,x10,x10,x10,x10,x70,x00 ; ']'
                DEFB    x00,x10,x38,x54,x10,x10,x10,x00 ; '^'
                DEFB    x00,x00,x00,x00,x00,x00,x00,xFF ; '_'
                DEFB    x00,x1C,x22,x78,x20,x20,x7E,x00 ; '`'
                DEFB    x00,x00,x1D,x22,x64,xBF,x00,x00 ; 'a'
                DEFB    x0E,x12,x24,x3A,x62,xBD,x00,x00 ; 'b'
                DEFB    x00,x00,x1C,x24,x60,xBF,x00,x00 ; 'c'
                DEFB    x01,x02,x3C,x48,xC8,x77,x00,x00 ; 'd'
                DEFB    x00,x00,x1C,x24,x78,x9F,x00,x00 ; 'e'
                DEFB    x0F,x19,x12,x3C,xF8,x57,x90,xE0 ; 'f'
                DEFB    x00,x00,x1F,x32,xD4,x3F,x48,x70 ; 'g'
                DEFB    x07,x09,x12,x3C,xE4,x47,x00,x00 ; 'h'
                DEFB    x04,x00,x08,x10,x30,xDF,x00,x00 ; 'i'
                DEFB    x02,x00,x0C,x38,xD8,x7F,x90,xF0 ; 'j'
                DEFB    x0E,x12,x1C,x34,x7C,xA7,x00,x00 ; 'k'
                DEFB    x06,x09,x12,x14,x38,xDF,x00,x00 ; 'l'
                DEFB    x00,x00,x54,xAA,xAA,x57,x00,x00 ; 'm'
                DEFB    x00,x00,x2C,x5A,xB6,x27,x00,x00 ; 'n'
                DEFB    x00,x00,x1C,x26,x65,xB8,x00,x00 ; 'o'
                DEFB    x00,x00,x14,x3A,xF6,x67,x40,xC0 ; 'p'
                DEFB    x00,x00,x1E,x26,xFD,x08,x18,x30 ; 'q'
                DEFB    x00,x20,x38,x48,x98,x1F,x00,x00 ; 'r'
                DEFB    x00,x04,x0C,x16,x3A,xDD,x00,x00 ; 's'
                DEFB    x06,x0C,x1F,x38,x58,x8F,x00,x00 ; 't'
                DEFB    x00,x00,x26,x6C,xEC,x37,x00,x00 ; 'u'
                DEFB    x00,x00,x22,x57,xB4,x38,x00,x00 ; 'v'
                DEFB    x00,x00,x6B,xDA,x5A,x6C,x00,x00 ; 'w'
                DEFB    x00,x00,x12,x2D,x4C,xB3,x00,x00 ; 'x'
                DEFB    x00,x00,x09,x32,xDC,x3F,x48,x70 ; 'y'
                DEFB    x00,x3C,x28,x5C,x9F,x24,x28,x30 ; 'z'
                DEFB    x30,x78,xCC,xCF,xCF,xCC,x78,x30 ; '{'
                DEFB    x00,x00,x00,xFF,xFF,xDB,xDB,xC3 ; '|'
                DEFB    x00,x70,x10,x0C,x10,x10,x70,x00 ; '}'
                DEFB    x00,x14,x28,x00,x00,x00,x00,x00 ; '~'
                DEFB    x3C,x42,x99,xA1,xA1,x99,x42,x3C ; ''

;-----------------------------------------------------------------------------
; Brick Images (2x1)
;-----------------------------------------------------------------------------

                ORG     59488

img.Brick1:     DEFB    x3F,xFC,x67,xFE,x5F,xFE,x7F,xFE
                DEFB    x7F,xFE,x7F,xFE,x3F,xFC,x00,x00
                DEFB    x32,x32

img.Brick2:     DEFB    xFC,x3F,xFE,x67,xFE,x5F,xFE,x7F
                DEFB    xFE,x7F,xFE,x7F,xFC,x3F,x00,x00
                DEFB    x32,x32

;-----------------------------------------------------------------------------
; Man Images (2x3)
;-----------------------------------------------------------------------------

                ORG     59524

img.ManLeft1:   DEFB    x00,x00,x01,xC0,x02,xE0,x05,xF0
                DEFB    x00,x70,x1F,xF8,x00,x00,x06,xF0
                DEFB    x0F,xE0,x01,xC0,x07,x20,x00,x70
                DEFB    x02,x70,x07,x30,x07,x30,x04,x30
                DEFB    x04,x60,x03,xE0,x03,xC0,x00,x00
                DEFB    x00,xC0,x01,xC0,x03,xC0,x00,x00
                DEFB    x07,x07,x07,x07,x07,x07

img.ManLeft2:   DEFB    x00,x00,x01,xC0,x02,xE0,x05,xF0
                DEFB    x00,x70,x1F,xF8,x00,x00,x06,xF0
                DEFB    x0F,xE0,x01,xC0,x07,x20,x00,x70
                DEFB    x03,x78,x02,x7A,x04,x7A,x04,xF8
                DEFB    x03,xF0,x00,xF0,x01,x7C,x01,xBA
                DEFB    x1E,x87,x1F,x1E,x07,x1C,x00,x00
                DEFB    x07,x07,x07,x07,x07,x07

img.ManLeft3:   DEFB    x00,x00,x01,xC0,x02,xE0,x05,xF0
                DEFB    x00,x70,x1F,xF8,x00,x00,x06,xF0
                DEFB    x0F,xE0,x01,xC0,x07,x20,x00,x70
                DEFB    x02,x70,x06,x10,x0F,x10,x0E,x30
                DEFB    x01,x60,x03,xC0,x03,xB0,x03,x08
                DEFB    x3D,x3C,x3E,x78,x0E,xE0,x00,x00
                DEFB    x07,x07,x07,x07,x07,x07

img.ManRight1:  DEFB    x00,x00,x03,x80,x07,x40,x0F,xA0
                DEFB    x0E,x00,x1F,xF8,x00,x00,x0F,x60
                DEFB    x07,xF0,x03,x80,x04,xE0,x0E,x00
                DEFB    x0E,x40,x0C,xE0,x0C,xE0,x0C,x20
                DEFB    x06,x20,x07,xC0,x03,xC0,x00,x00
                DEFB    x03,x00,x03,x80,x03,xC0,x00,x00
                DEFB    x07,x07,x07,x07,x07,x07

img.ManRight2:  DEFB    x00,x00,x03,x80,x07,x40,x0F,xA0
                DEFB    x0E,x00,x1F,xF8,x00,x00,x0F,x60
                DEFB    x07,xF0,x03,x80,x04,xE0,x0E,x00
                DEFB    x1E,xC0,x5E,x40,x5E,x20,x1F,x20
                DEFB    x0F,xC0,x0F,x00,x3E,x80,x5D,x80
                DEFB    xE1,x78,x78,xF8,x38,xE0,x00,x00
                DEFB    x07,x07,x07,x07,x07,x07

img.ManRight3:  DEFB    x00,x00,x03,x80,x07,x40,x0F,xA0
                DEFB    x0E,x00,x1F,xF8,x00,x00,x0F,x60
                DEFB    x07,xF0,x03,x80,x04,xE0,x0E,x00
                DEFB    x0E,x40,x08,x60,x08,xF0,x0C,x70
                DEFB    x06,x80,x03,xC0,x0D,xC0,x10,xC0
                DEFB    x3C,xBC,x1E,x7C,x07,x70,x00,x00
                DEFB    x07,x07,x07,x07,x07,x07

img.ManJumpL:   DEFB    x07,x80,x0B,xC0,x17,xC0,x67,xE0
                DEFB    x38,xE0,x07,xE0,x34,xF0,x3F,x00
                DEFB    x1F,xC0,x3F,xC0,x4C,xC0,x20,xF0
                DEFB    x18,xF0,x07,xF8,x01,xF8,x00,xF8
                DEFB    x01,x7C,x01,xBC,x00,x9F,x00,x67
                DEFB    x00,x16,x00,x16,x00,x16,x00,x08
                DEFB    x07,x07,x07,x07,x07,x07

img.ManJumpR:   DEFB    x01,xE0,x03,xD0,x03,xE8,x07,xE6
                DEFB    x07,x1C,x07,xE0,x0F,x2C,x00,xFC
                DEFB    x03,xF8,x03,xFC,x03,x32,x0F,x04
                DEFB    x0F,x18,x1F,xE0,x1F,x80,x1F,x00
                DEFB    x3E,x80,x3D,x80,xF9,x00,xE6,x00
                DEFB    x68,x00,x68,x00,x68,x00,x10,x00
                DEFB    x07,x07,x07,x07,x07,x07

;-----------------------------------------------------------------------------
; Disk Image (1x1)
;-----------------------------------------------------------------------------

                ORG     59956

img.Disk:       DEFB    xE4,xE6,xE7,xFF,xC3,xC3,xC3,xFF
                DEFB    x05

;-----------------------------------------------------------------------------
; Disk Positions
;-----------------------------------------------------------------------------

                ORG     59965

dat.DiskPos:    DEFB    x13,x07,x03,x75,x88
                DEFB    x0F,x0F,x0B,xAD,x87
                DEFB    x66,x03,x12,xAB,x98
                DEFB    x6C,x0F,x03,xDD,x99
                DEFB    x2B,x0F,x16,x2B,x8D
                DEFB    x6F,x0F,x03,x73,x9A

;-----------------------------------------------------------------------------
; Room Decor Images (5x4)
;-----------------------------------------------------------------------------

                ORG     60900

img.Picture1:   DEFB    xFF,xFF,xFF,xFF,xFF,xC0,x00,x00
                DEFB    x00,x03,xBF,xFF,xFF,xFF,xFD,xA0
                DEFB    x00,x00,x00,x7D,xA0,x60,x00,x01
                DEFB    x7D,xA0,xB0,x00,x04,x3D,xA0,xB0
                DEFB    x00,x10,x1D,xA0,xB0,x00,x40,x85
                DEFB    xA1,xA8,x00,x00,x15,xA1,xA8,x00
                DEFB    x02,x05,xA1,xA8,x00,x00,x25,xA2
                DEFB    xAC,x00,x08,x05,xA2,xAC,x00,x00
                DEFB    x45,xA2,xAC,x00,x00,x05,xA1,xA8
                DEFB    x00,x00,x85,xA1,xA8,x00,x00,x05
                DEFB    xA1,xA8,x00,x00,x05,xA0,xB0,x00
                DEFB    x00,x05,xA0,x60,x00,x00,x05,xA0
                DEFB    x60,x00,x00,x05,xA0,x60,x00,x00
                DEFB    x05,xA0,x60,x01,xFC,x05,xA0,x60
                DEFB    x3F,xFE,x05,xA0,x67,xFF,xFF,x85
                DEFB    xA0,xFF,xFF,xFF,xC5,xBF,xFF,xFF
                DEFB    xFF,xF5,xBF,xFF,xFF,xFF,xFD,xBF
                DEFB    xFF,xFF,xFF,xFD,xBF,xFF,xFF,xFF
                DEFB    xFD,xBF,xFF,xFF,xFF,xFD,xC0,x00
                DEFB    x00,x00,x03,xFF,xFF,xFF,xFF,xFF
                DEFB    x05,x05,x05,x05,x05,x05,x06,x06
                DEFB    x06,x05,x04,x04,x04,x04,x04,x04
                DEFB    x04,x04,x04,x04

img.Picture2:   DEFB    x3F,xFF,xFF,xFF,xFC,x7F,xFF,xFF
                DEFB    xFF,xFE,x40,x00,x00,x00,x02,x7F
                DEFB    xFF,xFF,xFF,xFE,x7C,x00,x00,x00
                DEFB    x3E,x40,x00,x00,x00,x02,x78,x00
                DEFB    x00,x00,x1E,x78,x00,x00,x00,x1E
                DEFB    x78,x00,x18,x00,x1E,x40,x01,x99
                DEFB    x80,x02,x78,x01,x89,xB0,x1E,x78
                DEFB    x0C,x8A,x30,x1E,x78,xCC,x52,x46
                DEFB    x1E,x78,xE3,x22,x46,x1E,x40,x10
                DEFB    x92,x48,x02,x78,x0C,xD4,xB0,x1E
                DEFB    x78,x12,x49,x0C,x1E,x78,x71,x29
                DEFB    x0C,x1E,x78,x67,xFF,xE0,x1E,x78
                DEFB    x07,x7F,xE0,x1E,x40,x03,x7F,xC0
                DEFB    x02,x78,x03,xBF,xC0,x1E,x78,x01
                DEFB    xBF,x80,x1E,x78,x00,xFF,x00,x1E
                DEFB    x7C,x01,x81,x80,x3E,x7F,xFF,xFF
                DEFB    xFF,xFE,x7F,xFF,xFF,xFF,xFE,x40
                DEFB    x00,x00,x00,x02,x7F,xFF,xFF,xFF
                DEFB    xFE,x7F,xFF,xFF,xFF,xFE,x3F,xFF
                DEFB    xFF,xFF,xFC,x00,x00,x00,x00,x00
                DEFB    x45,x45,x45,x45,x45,x05,x04,x04
                DEFB    x04,x05,x43,x06,x06,x06,x43,x03
                DEFB    x03,x03,x03,x03

img.Wardrobe1:  DEFB    x7F,xFF,xFF,xFF,xFE,xFF,xFF,xFF
                DEFB    xFF,xFF,xC0,x00,x00,x00,x03,xDF
                DEFB    xFF,xFF,xFF,xFB,xDF,xFF,xFF,xFF
                DEFB    xFB,xDF,xFF,xFF,xFF,xFB,xDF,xFF
                DEFB    xFF,xFF,xFB,xDF,x00,x00,x00,xFB
                DEFB    xDF,x00,x00,x00,xFB,xDF,xFF,xFF
                DEFB    xFF,xFB,xDF,x00,x00,x00,xFB,xDF
                DEFB    xFF,xFF,xFF,xFB,xDF,xFF,xFF,xFF
                DEFB    xFB,xDF,xFF,xFF,xFF,xFB,xDF,xFF
                DEFB    xFF,xFF,xFB,xC0,x00,x00,x00,x03
                DEFB    xDF,xFF,xE7,xFF,xFB,xDF,xFF,xE7
                DEFB    xFF,xFB,xDF,x03,xE7,xC0,xFB,xDF
                DEFB    xFF,xE7,xFF,xFB,xDF,xFF,xE7,xFF
                DEFB    xFB,xC0,x00,x00,x00,x03,xDF,xFF
                DEFB    xE7,xFF,xFB,xDF,xFF,xE7,xFF,xFB
                DEFB    xDF,x03,xE7,xC0,xFB,xDF,xFF,xE7
                DEFB    xFF,xFB,xDF,xFF,xE7,xFF,xFB,xC0
                DEFB    x00,x00,x00,x03,xFF,xFF,xFF,xFF
                DEFB    xFF,x7F,xFF,xFF,xFF,xFE,x04,x01
                DEFB    x00,x80,x20,x03,xFE,x00,x7F,xC0
                DEFB    x05,x05,x05,x05,x05,x05,x05,x05
                DEFB    x05,x05,x03,x03,x03,x03,x03,x03
                DEFB    x03,x03,x03,x03

img.Books:      DEFB    xFF,xFC,xFC,xFF,x1F,xDB,xBC,x84
                DEFB    xD7,x11,xDB,xBC,x84,xD7,x11,xA4
                DEFB    x44,x8C,xA9,x1F,xA4,x44,x94,xA9
                DEFB    x11,xA4,x44,xAC,xA9,x1F,xA4,x44
                DEFB    xD4,xA9,x11,xA4,x44,xAC,xA9,x1F
                DEFB    xA4,x44,xD4,xA9,x11,xDB,xBC,xAC
                DEFB    xD7,x1F,xDB,xBC,xD4,xD7,x11,xDB
                DEFB    xBC,xA4,xD7,x11,xDB,xBC,xC4,xD7
                DEFB    x11,xDB,xBC,x84,xD7,x11,xDB,xBC
                DEFB    x84,xD7,x11,xDB,xBC,x84,xD7,x11
                DEFB    xDB,xBC,x84,xD7,x11,xDB,xBC,x84
                DEFB    xD7,x11,xDB,xBC,x84,xD7,x11,xDB
                DEFB    xBC,x84,xD7,x11,xDB,xBC,x84,xD7
                DEFB    x11,xDB,xBC,x84,xD7,x11,xFF,xFC
                DEFB    xFC,xFF,x1F,x00,x00,x00,x00,x00
                DEFB    xFF,xFF,xFF,xFF,xFF,xC0,x00,x00
                DEFB    x00,x03,xBF,xFF,xFF,xFF,xFD,xC0
                DEFB    x00,x00,x00,x03,xFF,xFF,xFF,xFF
                DEFB    xFF,x0D,x55,x81,xAA,xB0,x0A,xAA
                DEFB    x81,x55,x50,x0F,xFF,x81,xFF,xF0
                DEFB    x07,x07,x02,x05,x04,x07,x07,x02
                DEFB    x05,x04,x07,x07,x02,x05,x04,x06
                DEFB    x06,x06,x06,x06

img.Flower1:    DEFB    x01,xC0,x03,x81,xC0,x00,x60,x05
                DEFB    xE3,x60,x07,x33,x0F,x76,x80,x0E
                DEFB    xB6,xC6,x1F,x7C,x19,xED,xA4,x3C
                DEFB    xF6,x00,xD8,x70,xEF,xCA,x03,xAE
                DEFB    x31,xE4,x87,x0D,xDD,x81,x47,x85
                DEFB    x1A,xF2,xC2,x83,x03,x3C,x91,xC3
                DEFB    x04,x82,x28,xF0,xE6,x07,x82,x50
                DEFB    x60,xA4,x03,x00,x61,x20,x60,x04
                DEFB    x80,x41,xE0,x00,x07,x80,x00,xC0
                DEFB    x00,x03,x00,x02,x40,x00,x02,x40
                DEFB    x03,xC0,x00,x03,xC0,x01,x80,x00
                DEFB    x01,x80,x02,x40,x00,x02,x40,x03
                DEFB    xC0,x00,x03,xC0,x01,x80,x00,x01
                DEFB    x80,x7F,xFE,x00,x7F,xFE,x7E,x02
                DEFB    x00,x7E,x02,x6F,xFE,x00,x6F,xFE
                DEFB    x6F,xFE,x7E,x6F,xFE,x6F,xFE,x00
                DEFB    x6F,xFE,x37,xFC,x00,x37,xFC,x37
                DEFB    xFC,x00,x37,xFC,x1B,xF8,x00,x1B
                DEFB    xF8,xE4,x07,xFF,xE4,x07,xF0,x0F
                DEFB    xFF,xF0,x0F,x7F,xFF,xFF,xFF,xFE
                DEFB    x06,x06,x06,x06,x06,x44,x44,x44
                DEFB    x44,x44,x04,x04,x04,x04,x04,x03
                DEFB    x03,x03,x03,x03

img.Bed:        DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    xDF,x7F,x7E,x7F,xFB,xE1,xC1,xC3
                DEFB    x80,x07,xC0,x80,x81,x00,x03,xC0
                DEFB    x80,x81,x00,x03,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xC0,x00,x00,x00,x03
                DEFB    xC0,x00,x00,x00,x03,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,x08,x20,x00,x04,x10,x08,x20
                DEFB    x00,x04,x10,x0F,xE0,x00,x07,xF0
                DEFB    x00,x00,x00,x00,x00,x06,x06,x06
                DEFB    x06,x06,x06,x06,x06,x06,x06,x07
                DEFB    x07,x07,x07,x07

img.Picture3:   DEFB    xFF,xFF,xFF,xFF,xFF,xEA,xAA,xAA
                DEFB    xAA,xAF,xF5,x55,x55,x55,x5D,xBF
                DEFB    xFF,xFF,xFF,xFB,xD0,x00,x00,x00
                DEFB    x0D,xB0,x38,x01,x00,x0B,xD3,xFE
                DEFB    x02,x80,x0D,xB1,xFC,x06,xC0,x0B
                DEFB    xD0,xF0,x0E,xC0,x0D,xB0,x00,x1E
                DEFB    xC0,x0B,xD0,x00,x3E,xE0,x0D,xB0
                DEFB    x00,x7E,xE0,x0B,xD0,x00,xFE,xE0
                DEFB    x0D,xB0,x01,xFE,xF0,x0B,xD0,x03
                DEFB    xFE,xF0,x0D,xB0,x00,x01,x00,x0B
                DEFB    xD0,x00,x01,x00,x0D,xB0,x7F,xFF
                DEFB    xF8,x0B,xD0,x55,x55,x58,x0D,xB0
                DEFB    x6A,xAA,xB0,x0B,xD0,x3F,x55,x50
                DEFB    x0D,xB1,xFF,xEA,xA0,x7B,xDF,xFF
                DEFB    xFD,x67,xFD,xBF,xFF,xFF,xFF,xFB
                DEFB    xDF,xFF,xFF,xFF,xFD,xBF,xFF,xFF
                DEFB    xFF,xFB,xDF,xFF,xFF,xFF,xFD,xBF
                DEFB    xFF,xFF,xFF,xFB,xDF,xFF,xFF,xFF
                DEFB    xFD,xBA,xAA,xAA,xAA,xAF,xF5,x55
                DEFB    x55,x55,x57,xFF,xFF,xFF,xFF,xFF
                DEFB    x0D,x0D,x0D,x0D,x0D,x0D,x0E,x0A
                DEFB    x0A,x0D,x0D,x0E,x0E,x0E,x0D,x0D
                DEFB    x0D,x0D,x0D,x0D

img.Flower2:    DEFB    x06,x01,x80,x01,x80,x0B,x03,x40
                DEFB    x03,x40,x3D,x0E,xC0,x02,xC0,x5F
                DEFB    x17,x80,x07,x80,x6D,x9A,xC0,x0B
                DEFB    x60,x7E,x8F,x41,xCD,xD0,x37,x05
                DEFB    x81,x26,xB0,x02,x08,x01,x10,xE0
                DEFB    x02,x08,x00,x91,x80,x01,x10,x00
                DEFB    x72,x00,x1D,x20,x00,x0A,x00,x22
                DEFB    xC0,x00,x04,x00,x1C,x80,x00,x04
                DEFB    x00,x00,x80,x00,x04,x00,x3F,xFF
                DEFB    x01,xFF,xF8,x3F,xFF,x01,xFF,xF8
                DEFB    x3F,xFF,x01,xFF,xF8,x3F,xFF,x01
                DEFB    xFF,xF8,x1F,xFE,x00,xFF,xF0,x1F
                DEFB    xFE,x00,xFF,xF0,x0F,xFC,x00,x7F
                DEFB    xE0,x0F,xFC,x00,x7F,xE0,x07,xF8
                DEFB    x00,x3F,xC0,x07,xF8,x00,x3F,xC0
                DEFB    x83,xF0,x00,x1F,x81,xFF,xFF,xFF
                DEFB    xFF,xFF,x80,x00,x00,x00,x01,x80
                DEFB    x00,x00,x00,x01,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xFF,xFF,x40,x00
                DEFB    x00,x00,x02,x3F,xFF,xFF,xFF,xFC
                DEFB    x02,x06,x04,x02,x02,x04,x04,x04
                DEFB    x04,x04,x05,x05,x05,x05,x05,x03
                DEFB    x03,x03,x03,x03

img.Wardrobe2:  DEFB    x7F,xFF,xFF,xFF,xFE,x80,x00,x00
                DEFB    x00,x01,xBF,xFF,xFF,xFF,xFD,xA8
                DEFB    x9B,x3F,xCD,x15,xBA,xEC,xE8,x73
                DEFB    x5D,xBA,xFF,xDF,x9F,x5D,xBA,xE4
                DEFB    x38,xF9,x55,xBA,xDF,xF7,x17,x5D
                DEFB    xAA,xB3,x9D,xFF,x5D,xBA,xFC,xE6
                DEFB    x33,x5D,xBA,xE7,x7F,xEF,x5D,xA8
                DEFB    x9B,xA1,x19,x15,xBF,xFF,xFF,xFF
                DEFB    xFD,x80,x00,x00,x00,x01,xFF,xFF
                DEFB    xFF,xFF,xFF,x80,x00,x00,x00,x01
                DEFB    xBF,xFF,xFF,xFF,xFD,xA7,x20,xFE
                DEFB    x7E,x3D,xB9,xDF,x83,xA1,xE5,xAE
                DEFB    xF7,x7C,xDF,x1D,xB3,x09,xF7,xF6
                DEFB    xFD,xBD,xFF,x99,xAB,x85,xA6,x70
                DEFB    x7E,xDC,xFD,xBB,xCF,xE3,xF7,xDD
                DEFB    xAE,xF9,xBC,x0F,x6D,xB1,x07,xCF
                DEFB    xF8,xF5,xBF,xFF,xFF,xFF,xFD,x80
                DEFB    x00,x00,x00,x01,xFF,xFF,xFF,xFF
                DEFB    xFF,x7F,xFF,xFF,xFF,xFE,x08,x10
                DEFB    x00,x08,x10,x0F,xF0,x00,x0F,xF0
                DEFB    x46,x46,x46,x46,x46,x06,x06,x06
                DEFB    x06,x06,x44,x44,x44,x44,x44,x04
                DEFB    x04,x04,x04,x04

img.Table1:     DEFB    x7F,xFF,xFF,xFF,xFE,xFF,xFF,xFF
                DEFB    xFF,xFF,xAA,xAA,xAA,xAA,xAB,xD5
                DEFB    x55,x55,x55,x55,xFF,xFF,xFF,xFF
                DEFB    xFF,x7F,xFF,xFF,xFF,xFE,x07,x80
                DEFB    x00,x01,xE0,x0B,x80,x00,x01,xD0
                DEFB    x1D,x00,x00,x00,xB8,x1E,x00,x00
                DEFB    x00,x78,x1F,x00,x00,x00,xF8,x1E
                DEFB    x00,x00,x00,x78,x1D,x00,x00,x00
                DEFB    xB8,x0B,x80,x00,x01,xD0,x07,x80
                DEFB    x00,x01,xE0,x0F,x80,x00,x01,xF0
                DEFB    x07,x80,x00,x01,xE0,x0B,x00,x00
                DEFB    x01,xD0,x1D,x00,x00,x00,xB8,x1E
                DEFB    x00,x00,x00,x78,x1F,x00,x00,x00
                DEFB    xF8,x1E,x00,x00,x00,x78,x1D,x00
                DEFB    x00,x00,xB8,x0B,x80,x00,x01,xD0
                DEFB    x07,x80,x00,x01,xE0,x0F,x80,x00
                DEFB    x01,xF0,x07,x80,x00,x01,xE0,x0B
                DEFB    x80,x00,x01,xD0,x1D,x00,x00,x00
                DEFB    xB8,x3E,x00,x00,x00,x7C,x7E,x00
                DEFB    x00,x00,x7E,x7C,x00,x00,x00,x3E
                DEFB    x04,x04,x04,x04,x04,x05,x05,x05
                DEFB    x05,x05,x05,x05,x05,x05,x05,x05
                DEFB    x05,x05,x05,x05

img.TV1:        DEFB    x7F,xFF,xFF,xFF,xFE,xFF,xFF,xFF
                DEFB    xFF,xFF,xE0,x00,x00,x0F,x53,xDC
                DEFB    x00,x00,x07,x53,xDC,x07,x00,x07
                DEFB    xFF,xD8,x3F,xF0,x07,x53,xC0,xCF
                DEFB    xDC,x07,x53,xC1,x80,x1E,x07,xFF
                DEFB    xC3,xC0,x7F,x07,x53,xC7,xF2,xFF
                DEFB    x87,x53,xC7,xF2,xFF,x87,xFF,xCF
                DEFB    xE1,xF7,xC7,x53,xCB,x83,x1B,x47
                DEFB    x53,xC9,x80,xEB,x47,xFF,xD1,x01
                DEFB    xF1,x27,x53,xD3,x83,xF8,x27,x53
                DEFB    xD7,xC3,xF8,x27,xFF,xD7,xC3,xF0
                DEFB    x27,x53,xCB,xC1,xE0,x47,x53,xCB
                DEFB    x81,xC1,xC7,xFF,xC9,x81,xC3,xC7
                DEFB    x03,xC4,x81,x87,x87,x7B,xC4,x40
                DEFB    x87,x87,x7B,xC2,x00,x07,x07,x7B
                DEFB    xC1,x03,x82,x07,x03,xC0,xCF,xEC
                DEFB    x07,x7B,xC0,x3F,xF0,x07,x7B,xC0
                DEFB    x07,x80,x07,x7B,xE0,x00,x00,x0F
                DEFB    x03,xFF,xFF,xFF,xFF,xFF,x7F,x00
                DEFB    x00,x00,xFE,x7F,xFF,xFF,xFF,xFE
                DEFB    x0D,x0D,x0D,x0D,x05,x0D,x0D,x0D
                DEFB    x0D,x05,x0D,x0D,x0D,x0D,x05,x0D
                DEFB    x0D,x0D,x0D,x05

img.TV2:        DEFB    x3F,xFF,xFF,xFF,xFC,x7F,xFF,xFF
                DEFB    xFF,xFE,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,xF0,x00,x00,x1F
                DEFB    xFF,xE0,x00,x1D,xEF,x57,xE0,x20
                DEFB    x61,xEE,xAB,xE0,x50,x00,xEF,x57
                DEFB    xE0,xA8,x04,x6E,xAB,xE1,x54,x08
                DEFB    x0F,x57,xE0,xA8,x11,x4E,xAB,xE1
                DEFB    x54,x22,x4F,x57,xE0,xA8,x04,x4E
                DEFB    xAB,xE1,x54,x08,x8F,x57,xE0,xA8
                DEFB    x00,x8F,xFF,xE0,x50,x00,x0F,xFF
                DEFB    xE0,x20,x28,x0F,xFF,xE0,x20,x54
                DEFB    x0E,x23,xE0,x20,xAA,x0E,x23,xE0
                DEFB    x20,x54,x0F,xFF,xE0,x20,xAA,x0E
                DEFB    x23,xE0,x20,x54,x0E,x23,xE0,x20
                DEFB    x28,x0F,xFF,xE0,x70,x38,x0E,x23
                DEFB    xE7,xFF,xFF,xCE,x23,xF0,x00,x00
                DEFB    x1F,xFF,xFF,xFF,xFF,xFF,xFF,xFF
                DEFB    xFF,xFF,xFF,xFF,x7F,xFF,xFF,xFF
                DEFB    xFE,x3F,xFF,xFF,xFF,xFC,x0F,x80
                DEFB    x00,x01,xF0,x1F,xC0,x00,x03,xF8
                DEFB    x06,x06,x06,x06,x06,x06,x02,x06
                DEFB    x06,x06,x06,x02,x04,x06,x06,x06
                DEFB    x06,x06,x06,x06

img.Lamp1:      DEFB    x00,x03,xFF,xC0,x00,x00,x00,xFF
                DEFB    x00,x00,x00,x00,x7E,x00,x00,x00
                DEFB    x00,x3C,x00,x00,x00,x00,x18,x00
                DEFB    x00,x00,x00,x18,x00,x00,x00,x00
                DEFB    x18,x00,x00,x00,x00,x18,x00,x00
                DEFB    x00,x00,x18,x00,x00,x00,x1E,x18
                DEFB    x78,x00,x00,x21,x18,x84,x00,x00
                DEFB    x21,x18,x84,x00,x00,x6A,x99,xAA
                DEFB    x00,x00,x55,x99,x56,x00,x00,x6A
                DEFB    x99,xAA,x00,x00,xFF,xDB,xFF,x00
                DEFB    x00,xCC,xDB,x33,x00,x1E,x0C,x18
                DEFB    x30,x78,x21,x0C,x18,x30,x84,x21
                DEFB    x06,x18,x60,x84,x6A,x86,x18,x61
                DEFB    xAA,x55,x83,xDB,xC1,x56,x6A,x81
                DEFB    xFF,x81,xAA,xFF,xC0,x7C,x03,xFF
                DEFB    xCC,xC0,x18,x03,x33,x0C,x00,x3C
                DEFB    x00,x30,x0C,x00,x66,x00,x30,x06
                DEFB    x00,x66,x00,x60,x07,x83,xE7,xC1
                DEFB    xE0,x03,xEF,x81,xF7,xC0,x00,xFE
                DEFB    x00,x7F,x00,x00,x38,x00,x1C,x00
                DEFB    x07,x07,x07,x07,x07,x06,x06,x07
                DEFB    x06,x06,x05,x07,x07,x07,x05,x07
                DEFB    x07,x07,x07,x07

img.Lamp2:      DEFB    x01,x80,x00,x01,x80,xFF,xFF,xFF
                DEFB    xFF,xFF,x80,x00,x00,x00,x01,xFF
                DEFB    xFF,xFF,xFF,xFF,x40,x00,x00,x00
                DEFB    x02,x4A,xAA,xAA,xAA,xAA,x40,x00
                DEFB    x00,x00,x02,x3F,xFF,xFF,xFF,xFC
                DEFB    xFF,xFF,xFF,xFF,xFF,x3F,xFF,xFF
                DEFB    xFF,xFC,x3F,xFF,xFF,xFF,xFC,x15
                DEFB    x55,x55,x55,x54,x2A,xAA,xAA,xAA
                DEFB    xA8,x11,x11,x11,x11,x10,x0A,xAA
                DEFB    xAA,xAA,xA8,x04,x44,x44,x44,x40
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x00,x00
                DEFB    x06,x06,x06,x06,x06,x01,x01,x01
                DEFB    x01,x01,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00

img.Table2:     DEFB    x00,x00,x00,x01,x80,x00,x00,x00
                DEFB    x06,x80,x00,x00,x00,x1F,x08,x00
                DEFB    x00,x00,x3F,x48,x00,x00,x00,x7E
                DEFB    x28,x00,x00,x00,x3E,x18,x00,x00
                DEFB    x00,x1C,x08,x00,x00,x00,x08,x0C
                DEFB    x00,x00,x00,x00,x0A,x00,x00,x00
                DEFB    x00,x08,x00,x00,x00,x00,x08,x00
                DEFB    x00,x00,x00,x08,x00,x00,x00,x00
                DEFB    x08,x00,x00,x00,x00,x08,x00,x00
                DEFB    x00,x00,x08,x00,x00,x00,x00,x08
                DEFB    xFF,xF0,x0F,xFF,xFF,x80,x1F,xF8
                DEFB    x00,x01,x80,x1F,xF8,x00,x01,xFF
                DEFB    xFF,xFF,xFF,xFF,x00,x1F,xF8,x00
                DEFB    x00,x7F,x1F,xF8,xFF,xFE,x41,x1F
                DEFB    xF8,x80,x02,x41,x0F,xF0,xBF,xFA
                DEFB    x7F,x00,x00,xA0,x0A,x41,x1F,xF8
                DEFB    xA0,x6A,x41,x0F,xF0,xA0,x0A,x7F
                DEFB    x01,x80,xA0,x0A,x41,x01,x80,xA0
                DEFB    x0A,x41,x01,x80,xBF,xFA,x7F,x07
                DEFB    xE0,x80,x02,x7F,x38,x1C,xFF,xFE
                DEFB    x00,x00,x00,x02,x06,x00,x00,x00
                DEFB    x02,x06,x05,x05,x05,x05,x05,x06
                DEFB    x04,x04,x06,x06

img.Candle1:    DEFB    x00,x01,x80,x00,x00,x00,x03,x80
                DEFB    x00,x00,x00,x02,xC0,x00,x00,x00
                DEFB    x01,x80,x00,x00,x00,x02,x40,x00
                DEFB    x00,x00,x05,xC0,x00,x00,x00,x05
                DEFB    xA0,x00,x00,x00,x05,xA0,x00,x00
                DEFB    x00,x05,xC0,x00,x00,x00,x05,xC0
                DEFB    x00,x00,x00,x03,xC0,x00,x00,x00
                DEFB    x03,xC0,x00,x00,x00,x03,xC0,x00
                DEFB    x00,x00,x03,xC0,x00,x00,x00,x03
                DEFB    xC0,x00,x00,x00,x00,x00,x00,x00
                DEFB    x00,xFF,xFF,x00,x00,x00,x87,xFF
                DEFB    x00,x00,x00,x87,xFF,x00,x00,x00
                DEFB    xC7,xFF,x00,x00,x00,x63,xFE,x00
                DEFB    x00,x00,x33,xFC,x00,x00,x00,x1F
                DEFB    xF8,x00,x00,x00,x07,xE0,x00,x00
                DEFB    x80,x01,x80,x00,x00,x00,x03,xC0
                DEFB    x00,x00,x80,x01,x80,x00,x00,xC0
                DEFB    x03,x80,x00,x00,xFF,x07,x00,x00
                DEFB    x00,xFF,xFE,x00,x00,x00,xC0,xF8
                DEFB    x00,x00,x00,x80,x00,x00,x00,x00
                DEFB    x02,x02,x02,x00,x00,x02,x02,x02
                DEFB    x00,x00,x06,x06,x06,x00,x00,x05
                DEFB    x05,x05,x00,x00

img.Candle2:    DEFB    x00,x00,x01,x80,x00,x00,x00,x01
                DEFB    xC0,x00,x00,x00,x03,x40,x00,x00
                DEFB    x00,x01,x80,x00,x00,x00,x02,x40
                DEFB    x00,x00,x00,x03,x20,x00,x00,x00
                DEFB    x05,xA0,x00,x00,x00,x05,xA0,x00
                DEFB    x00,x00,x03,x20,x00,x00,x00,x03
                DEFB    x20,x00,x00,x00,x03,xC0,x00,x00
                DEFB    x00,x03,xC0,x00,x00,x00,x03,xC0
                DEFB    x00,x00,x00,x03,xC0,x00,x00,x00
                DEFB    x03,xC0,x00,x00,x00,x00,x00,x00
                DEFB    x00,x00,xFF,xFF,x00,x00,x00,xFF
                DEFB    xE1,x00,x00,x00,xFF,xE1,x00,x00
                DEFB    x00,xFF,xE3,x00,x00,x00,x7F,xC6
                DEFB    x00,x00,x00,x3F,xCC,x00,x00,x00
                DEFB    x1F,xF8,x00,x00,x00,x07,xE0,x00
                DEFB    x00,x00,x01,x80,x01,x00,x00,x03
                DEFB    xC0,x00,x00,x00,x01,x80,x01,x00
                DEFB    x00,x01,xC0,x03,x00,x00,x00,xE0
                DEFB    xFF,x00,x00,x00,x7F,xFF,x00,x00
                DEFB    x00,x1F,x03,x00,x00,x00,x00,x01
                DEFB    x00,x00,x02,x02,x02,x00,x00,x02
                DEFB    x02,x02,x00,x00,x06,x06,x06,x00
                DEFB    x00,x05,x05,x05

img.Flower3:    DEFB    x00,x00,x7E,x00,x00,x00,x00,x00
                DEFB    x00,x00,x00,x00,x3C,x00,x00,x00
                DEFB    x00,x00,x00,x00,x00,x00,x18,x00
                DEFB    x00,x00,x00,x24,x00,x00,x00,x00
                DEFB    x5A,x00,x00,x00,x00,x42,x00,x00
                DEFB    x00,x00,x81,x00,x00,x00,x00,x81
                DEFB    x00,x00,x00,x01,x00,x82,x00,x00
                DEFB    x01,x00,x83,x00,x02,x02,x20,x43
                DEFB    x80,x03,x82,x50,x44,x00,x01,x84
                DEFB    x62,xA8,x00,x03,x64,x23,x30,x00
                DEFB    x00,x18,x23,x90,x00,x00,x08,x42
                DEFB    x30,x00,x00,x14,x42,x48,x00,x00
                DEFB    x12,x42,x4E,x00,x00,x22,x24,x8D
                DEFB    x80,x00,xF1,x24,x94,x40,x01,x48
                DEFB    xA5,x22,x38,x02,x44,xA5,x22,x38
                DEFB    x07,x7F,xFF,xFE,x30,x05,x75,xFF
                DEFB    xFE,x00,x02,x35,xFF,xFC,x00,x00
                DEFB    x3A,xFF,xFC,x00,x00,x1C,xFF,xF8
                DEFB    x00,x00,x07,xFF,xE0,x00,x00,x00
                DEFB    xFF,x00,x00,x00,x00,x00,x00,x00
                DEFB    x06,x06,x06,x06,x06,x04,x04,x04
                DEFB    x04,x04,x04,x04,x04,x04,x04,x04
                DEFB    x05,x05,x05,x04

                DEFS    24

                END