Login

Subversion Repositories NedoOS

Rev

Rev 1545 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

DrawMASK
       call SetPgMask
        ld hl,(MOUSEX)
        ld a,l
        srl h
        rra
        srl h
        rra
        srl h
        rra
        srl h
        rra
        ld de,SCRTOP
        ld hl,MASK
       cp MASKWID-SCRWID
       jr c,$+4
       ld a,MASKWID-SCRWID
        ld c,a
        ld b,0
        add hl,bc
        ld b,MASKHGT;SCRHGT
DrawMASK0
        push bc
        push de
        ld bc,SCRWID
        ldir
        ld bc,MASKWID-SCRWID
        add hl,bc
        pop de
        call DDE
        pop bc
        djnz DrawMASK0
        ret

DrawMapGfx
        ld a,0xfe
        in a,(0xfe)
        rra
        rra
        jp nc,DrawMASK

        ld iy,0
        add iy,sp

       LD A,PGMAP;16
       call OUTME
        LD DE,MAPWID
        LD hl,(MOUSEY-1) ;h ;8bit
        ld L,0
        LD B,8
mULH00E ADD HL,HL
        JR NC,$+3
        ADD HL,DE
        DJNZ mULH00E
        LD BC,MAPDO
        ADD HL,BC
        LD BC,(MOUSEX)
        DUP 3
        SRL B
        RR C
        EDUP
        ADD HL,BC
;HL=mapadr=MAP+MOUSEY*MAPWID+(MOUSEX>3)
          ;^^^^^^^^^^^^^^^^╨╕╨╗╨╕ ╨┐╨╛ ╤В╨░╨▒╨╗

;visiblehgt = SCRHGT
        ld de,SCRTOP
        ld b,SCRHGT
;skyhgt = DOMAP-MOUSEY
;if skyhgt>=0 then visiblehgt = visiblehgt-skyhgt; y=skyhgt
        ld a,(MOUSEY)
        sub SKYHGT
        jp nc,DrawMap_nosky
        push af
        push bc
        neg
        ld b,a ;skyhgt
         ;ld a,e
         ;add a,SCRWID-1
         ;ld e,a
         
         push bc
         push de
         push hl
         
         ld hl,skysprlist
         ld de,skysprlist+1
         ld bc,SKYHGT*6-1
         ld (hl),0
         ldir

        ld ix,WORMXY
prskyworms0
        ld a,(ix+5)
        cp SPRLIST_END
        jp z,prskyworms0q
         ld a,(MOUSEY)
         sub (ix+3) ;y
         cpl
         ;add a,7+1 ;c-MOUSEY+7 = 0..SKYHGT+6
         ;cp SKYHGT+7
         add a,4+1 ;╤Б ╨╖╨░╨┐╨░╤Б╨╛╨╝ ╤Б╨▓╨╡╤А╤Е╤Г ╨╜╨░ 4 (╨╜╨╡ ╤Е╨▓╨░╤В╨╕╨╗╨╛ ╨╜╨░ ╨▓╤Л╤Б╨╛╤В╤Г ╤З╨╡╤А╨▓╤П)
         cp SKYHGT+4
        jp nc,prskyworms_skip
        ld l,a
        ld h,0
        ld b,h
        ld c,l
        add hl,hl ;*2
        add hl,bc ;*3
        add hl,hl ;*6
        ld bc,skysprlist-(6*4) ;╤Б ╨╖╨░╨┐╨░╤Б╨╛╨╝ ╤Б╨▓╨╡╤А╤Е╤Г ╨╜╨░ 4 (╨╜╨╡ ╤Е╨▓╨░╤В╨╕╨╗╨╛ ╨╜╨░ ╨▓╤Л╤Б╨╛╤В╤Г ╤З╨╡╤А╨▓╤П)
        add hl,bc
        ex de,hl
       
         ;ld hl,(4+(SCRWID*8))*64 ;x ;XXXXXXXX XXx????? (TODO >>2)
         ld a,(ix+0) ;x
         ld l,(ix+2) ;X ;XXXXXXXX XXx????? (TODO >>2)
         ld h,0
         rla
         adc hl,hl
         rla
         adc hl,hl ;000000XX XXXXXXXX
         ld bc,(MOUSEX)
         or a
         sbc hl,bc
         ld bc,8
         add hl,bc
         ld  c,8*(SCRWID+1)
         or a
         sbc hl,bc
         add hl,bc
         jr nc,prskyworms_skip

         ld a,l ;l = x ╨╛╤В╨╜╨╛╤Б╨╕╤В╨╡╨╗╤М╨╜╨╛ ╤Н╨║╤А╨░╨╜╨░!!! 0=╨╜╨░ ╨╖╨╜╨░╨║╨╛╨╝╨╡╤Б╤В╨╛ ╨╗╨╡╨▓╨╡╨╡ ╤Н╨║╤А╨░╨╜╨░
         rra
         rra
         rra
         and 31
         sub SCRWID+1
         ld (prskywormx),a ;(X/8)-(SCRWID+1) !=0
         
         ld a,l
         and 7
         ld (prskywormrlpatch),a

         ld b,(ix+1) ;sprite HSB
         ld a,(ix) ;sprite LSB
         add a,a
         add a,a
         add a,a
         ld c,a
prskyworm0
         ld a,(bc) ;gfx
         ld l,a
         ld h,0
prskywormrlpatch=$+1
         jr $+2
         dup 7
         add hl,hl
         edup
         ld a,(de) ;X/8-(SCRWID+1) == 0 ╨╖╨╜╨░╤З╨╕╤В ╤Б╨▓╨╛╨▒╨╛╨┤╨╜╨╛, ╨╕╨╜╨░╤З╨╡ ╨╖╨░╨╜╤П╤В╨╛
         or a
prskywormx=$+1
         ld a,0
         jr nz,prskyworm0tryspr2
         ld (de),a
         inc e
         ld a,h
         ld (de),a
         inc e
         ld a,l
         ld (de),a
         inc e
         inc e
         jr z,prskyworms_skip ;╨▓╤Л╤Е╨╛╨┤ ╨╖╨░ ╨┐╤А╨╡╨┤╨╡╨╗╤Л skysprlist
         inc e
         jp prskyworm0tryspr2q
prskyworm0tryspr2
         inc e
         inc e
         inc e
         ld (de),a
         inc e
         jr z,prskyworms_skip ;╨▓╤Л╤Е╨╛╨┤ ╨╖╨░ ╨┐╤А╨╡╨┤╨╡╨╗╤Л skysprlist
         ld a,h
         ld (de),a
         inc e
         ld a,l
         ld (de),a
prskyworm0tryspr2q
         inc de
         inc c
         ld a,c
         and 7
         jr nz,prskyworm0
         
prskyworms_skip
        ld bc,6
        add ix,bc
         jp prskyworms0
prskyworms0q
         
         pop hl
         pop de
         pop bc
         
         
         ld hl,skysprlist ;80 ╤Б╤В╤А╨╛╨║ ╨┐╨╛ 6 ╨▒╨░╨╣╤В
         
DrawMap_sky0
        push bc
        push de
       push hl
        ld h,d
        ld l,e
        inc de
        ld bc,SCRWID-1
        ld (hl),b;0
        ldir
;TODO ╨╜╨░╨┤╨┐╨╡╤З╨░╤В╨░╤В╤М ╤Б╨┐╤А╨░╨╣╤В╤Л (╨┤╨╗╤П MEM128=0)
;╨┤╨╛╨┐╤Г╤Б╤В╨╕╨╝, ╤Г╨╢╨╡ ╤Б╨╛╤Б╤В╨░╨▓╨╗╨╡╨╜ ╤Б╨┐╨╕╤Б╨╛╨║, ╨▓ ╨║╨░╨║╨╕╤Е ╤Б╤В╤А╨╛╨║╨░╤Е ╤З╤В╨╛ ╨┐╨╡╤З╨░╤В╨░╤В╤М
;╤Б╨╕╤Б╤В╨╡╨╝╨░ y,x,data16,pnext (╨▒╨╡╨╖ pnext ╨┐╤А╨╛╨▒╨╗╨╡╨╝╨░ ╤Б ╤Б╨╛╤А╤В╨╕╤А╨╛╨▓╨║╨╛╨╣) ╨╖╨░╨╣╨╝╤С╤В ╤Б╨╗╨╕╤И╨║╨╛╨╝ ╨╝╨╜╨╛╨│╨╛ ╨╝╨╡╤Б╤В╨░ (20*6*8=960)
;╨┐╨╛╤Н╤В╨╛╨╝╤Г ╨╜╨░ ╨║╨░╨╢╨┤╤Л╨╣ "y" ╨╜╨╡╨▒╨░ (╨▓╤Б╨╡╨│╨╛ 80) 2 ╤Б╨┐╤А╨░╨╣╤В╨░ ╨┐╨╛ 3 ╨▒╨░╨╣╤В╨░: (X/8)-(SCRWID+1),data16 (╨╕╤В╨╛╨│╨╛ 480, ╨┐╨╗╤О╤Б ╨╖╨░╨┐╨░╤Б╤Л ╤Б╨▓╨╡╤А╤Е╤Г ╨╕ ╤Б╨╜╨╕╨╖╤Г ╨╜╨░ ╨▓╤Л╤Б╨╛╤В╤Г ╤З╨╡╤А╨▓╤П)
       pop hl
       if 1
       ;╨┐╨╡╤А╨▓╤Л╨╣ ╤Б╨┐╤А╨░╨╣╤В
        ld a,e ;lineaddr+SCRWID
        add a,(hl) ;(X/8)-(SCRWID+1)
        ld e,a
        inc l
        ld a,(de)
        xor (hl)
        ld (de),a
        inc l
        inc e
        ld a,(de)
        xor (hl)
        ld (de),a
        inc l
       ;╨▓╤В╨╛╤А╨╛╨╣ ╤Б╨┐╤А╨░╨╣╤В
        ld a,e
        or 0x1f ;FIXME - ╤А╨░╨▒╨╛╤В╨░╨╡╤В ╤В╨╛╨╗╤М╨║╨╛ ╨┐╤А╨╕ SCRWID=30!
        add a,(hl) ;(X/8)-(SCRWID+1)
        ld e,a
        inc l
        ld a,(de)
        xor (hl)
        ld (de),a
        inc l
        inc e
        ld a,(de)
        xor (hl)
        ld (de),a
        inc hl
       endif
       
        pop de
        pop bc
        call DDE
        djnz DrawMap_sky0
         ;ld a,e
         ;sub SCRWID-1
         ;ld e,a
        ld hl,MAP
        LD BC,(MOUSEX)
        DUP 3
        SRL B
        RR C
        EDUP
        ADD HL,BC
        pop bc
        pop af
        add a,b
        ld b,a
DrawMap_nosky

;waterhgt = MOUSEY-waterYwin
;if waterhgt>=0 then visiblehgt = visiblehgt-waterhgt
        ld a,(MOUSEY)
        sub waterYwin
        jr c,DrawMap_nowater
        neg
        add a,b
        ld b,a
DrawMap_nowater

        LD A,(MOUSEX)
        rra
        jp nc,DrawMap_x0246
        rra
        jp nc,DrawMap_x15
        rra
        jp c,DrawMap_x7
        ld a,Tshift/256 ;x=3
DrawMap_x35_a
        inc hl
        inc hl
        push hl
        pop ix
        ld h,a ;shift table
        ld a,b ;hgt
        ld b,d
        ld c,e;LD bc,SCRTOP;SHADOW
MAPOUT0
;ix=mapadr
;sp=mapadr
;hl=tab
;bc=screen
;a=hgt
        ex af,af' ;'
        ld e,(ix-2)
        ld d,(ix-1)
       ld sp,ix
         ld l,e    ;%abcdefgh
       DUP SCRWID/2
        ld a,(hl) ;%defgh000
        ld l,d    ;%ijklmnop
        inc h
        or (hl)   ;%defghijk
        dec h
        ld (bc),a
        inc c
        ld a,(hl) ;%lmnop000
        pop de
        ld l,e    ;%qrstuvwx
        inc h
        or (hl)   ;%lmnopqrs
        dec h
        ld (bc),a
        inc c
       EDUP
        org $-1
        ld a,c
        sub SCRWID-1
        ld c,a
        inc b
        ld a,b
        and 7
        jr z,MAPOUT0_chr
MAPOUT0_chrq
       ld sp,iy;SPOILSTACK
        LD de,MAPWID
        ADD ix,de
        ex af,af' ;'
        dec a
        jp nz,MAPOUT0
        ;ld sp,iy
        ret
MAPOUT0_chr
        ld a,c
        sub -32
        ld c,a
        sbc a,a
        and -8
        add a,b
        ld b,a
        jp MAPOUT0_chrq

DrawMap_x0
        ;LD de,SCRTOP;SHADOW
DrawMap_x0line
       PUSH bc
       PUSH de
;HL=mapadr
        ld bc,SCRWID-1
        ldir
        ld a,(hl)
        ld (de),a
       POP de
        CALL DDE
        LD bc,MAPWID-SCRWID+1
        ADD HL,bc
       POP bc
        djnz DrawMap_x0line
        ret

DrawMap_x15
        rra
        ld a,Tshift/256+2 ;x=5
        jp c,DrawMap_x35_a
DrawMap_x1
;hl=mapadr
        ld a,b
        ld bc,SCRWID
        add hl,bc
       push de;SCRTOP
        exx
        LD b,a;SCRHGT
       pop de
       ld hl,SCRWID
       add hl,de ;LD hl,SCRTOP+SCRWID;SHADOW
DrawMap_x1line
;hl'=mapadr (end)
;hl=scr (end)
        ld sp,hl
        exx
        ld a,(hl)
        rla
        dec hl
       dup SCRWID/4
        ld b,(hl)
        dec hl
        ld c,(hl)
        dec hl
        ld d,(hl)
        dec hl
        ld e,(hl)
        rl b
        rl c
        rl d
        rl e
        push bc
        push de
        dec hl
       edup
       if (SCRWID/2)&1
        ld b,(hl)
        dec hl
        ld c,(hl)
        rl b
        rl c
        push bc
        dec hl
       endif
        org $-1
        ld bc,MAPWID+SCRWID
        add hl,bc
        exx
        inc h
        ld a,h
        and 7
        jr z,DrawMap_x1line_chr
;DrawMap_x1line_chrq
        dec b
        jp nz,DrawMap_x1line
        ld sp,iy
        ret
DrawMap_x1line_chr
        ld a,l
        sub -32
        ld l,a
        sbc a,a
        and -8
        add a,h
        ld h,a
        dec b
        jp nz,DrawMap_x1line
        ld sp,iy
        ret

DrawMap_x2
;hl=mapadr
        ld a,b
        ld bc,SCRWID
        add hl,bc
       push de;SCRTOP
        exx
        LD b,a;SCRHGT
       pop de
       ld hl,SCRWID
       add hl,de ;LD hl,SCRTOP+SCRWID;SHADOW
DrawMap_x2line
;hl'=mapadr (end)
;hl=scr (end)
        ld sp,hl
        exx
        ld a,(hl)
        rla ;6??????? CY="d7"
        dec hl
       dup SCRWID/4
        ld b,(hl)
        dec hl
        ld c,(hl)
        dec hl
        ld d,(hl)
        dec hl
        ld e,(hl)
        rl b
        rl c
        rl d
        rl e
        rla;ex af,af' ;'
        rl b
        rl c
        rl d
        rl e
        push bc
        push de
        rra;ex af,af' ;'
        dec hl
       edup
        org $-2
       if (SCRWID/2)&1
        rra;ex af,af' ;'
        dec hl
        ld b,(hl)
        dec hl
        ld c,(hl)
        rl b
        rl c
        rla;ex af,af' ;'
        rl b
        rl c
        push bc
       endif
        ld bc,MAPWID+SCRWID
        add hl,bc
        exx
        inc h
        ld a,h
        and 7
        jr z,DrawMap_x2line_chr
;DrawMap_x2line_chrq
        dec b
        jp nz,DrawMap_x2line
        ld sp,iy
        ret
DrawMap_x2line_chr
        ld a,l
        sub -32
        ld l,a
        sbc a,a
        and -8
        add a,h
        ld h,a
        dec b
        jp nz,DrawMap_x2line
        ld sp,iy
        ret

DrawMap_x04
        rra
        jp nc,DrawMap_x0
DrawMap_x4
;╨╡╤Б╨╗╨╕ ╨▒╨╛╨╗╨╡╨╡ 5 ╤Д╤А╨╡╨╣╨╝╨╛╨▓ ╨╛╤В╨┐╤Г╤Й╨╡╨╜╤Л ╨║╨╜╨╛╨┐╨║╨╕ ╨╕ ╨╝╤Л╤И╤М, ╤В╨╛ ╨┐╨╡╤А╨╡╤Е╨╛╨┤╨╕╨╝ ╨╜╨░ DrawMap_x5 (╤З╤В╨╛╨▒╤Л ╨╜╨╡ ╨╝╨╡╤А╤Ж╨░╨╗╨╛) (TODO ╨┐╨╛ ╨╜╨░╨┐╤А╨░╨▓╨╗╨╡╨╜╨╕╤О ╨┤╨▓╨╕╨╢╨╡╨╜╨╕╤П ╨╜╨░ 3 ╨╕╨╗╨╕ 5, ╨░ ╨┐╤А╨╕ ╨▓╨╡╤А╤В╨╕╨║╨░╨╗╤М╨╜╨╛╨╝ ╨┤╨▓╨╕╨╢╨╡╨╜╨╕╨╕ ╨┐╨╡╤А╨╡╨┐╤А╨╕╤Б╨▓╨╛╨╕╤В╤М X?)
       ;ld a,(nokeytimer) ;╤Б╤З╤С╤В╤З╨╕╨║ ╤Д╤А╨╡╨╣╨╝╨╛╨▓, ╨│╨┤╨╡ ╨╜╨╡ ╨╕╤Б╨┐╨╛╨╗╤М╨╖╨╛╨▓╨░╨╗╨╛╤Б╤М ╤Г╨┐╤А╨░╨▓╨╗╨╡╨╜╨╕╨╡
       ;cp 5
       ;ld a,Tshift/256+2 ;x=5
       ;jp nc,DrawMap_x35_a
        ex de,hl;LD hl,SCRTOP;SHADOW
        ld ix,3
        add ix,de
DrawMap_x4line
;ix=mapadr
        ld a,(ix-3)
        ld e,(ix-2)
        ld d,(ix-1)
       ld sp,ix ;mapadr+3, de is ready
        ld c,l
       dup SCRWID/2
        ld (hl),e
        rrd ;18t
        inc l
        ld (hl),d
        rrd ;18t
        inc l
        pop de
       edup
        org $-2
       ld sp,iy;SPOILSTACK
       LD de,MAPWID
       add ix,de
        inc h
        ld a,h
        and 7
        jr z,DrawMap_x4line_chr
        ld l,c
;DrawMap_x4line_chrq
        dec b
        jp nz,DrawMap_x4line
        ;ld sp,iy
        ret
DrawMap_x4line_chr
        ld a,c
        sub -32
        ld l,a
        sbc a,a
        and -8
        add a,h
        ld h,a
        dec b
        jp nz,DrawMap_x4line
        ;ld sp,iy
        ret

DrawMap_x0246
        rra
        jp nc,DrawMap_x04
        rra
        jp nc,DrawMap_x2
DrawMap_x6
        ex de,hl;LD hl,SCRTOP;SHADOW
        ld ix,3
        add ix,de
        ld a,b
DrawMap_x6line
;ix=mapadr
        ex af,af' ;'
        ld a,(ix-3)
        ld e,(ix-2)
        ld d,(ix-1)
       ld sp,ix ;mapadr+3, de is ready
        rra ;???????1 CY="d0"
x6line_startcritical=$+1
       dup SCRWID/4
        pop bc
        rr e ;restore: -
        rr d ;restore: -
        rr c ;restore: rl c
        rr b ;restore: rl b:rl c
        rra ;restore: rla:rl b:rl c
        rr e ;restore: rl e:rla:rl b:rl c
        rr d ;restore: rl d:rl e:rla:rl b:rl c
        rr c ;restore: rl c:rl d:rl e:rla:rl b:rl c
        rr b ;restore: rl b:rl c:rl d:rl e:rla:rl b:rl c
        ld (hl),e
        inc l
        ld (hl),d
        inc l
        ld (hl),c
        inc l
        ld (hl),b
        rla ;restore: rra:rl b:rl c:rl d:rl e:rla:rl b:rl c
        inc l ;20+88+28 = 136/4 = 34
        pop de ;restore: -
       edup
        org $-3
       if (SCRWID/2)&1
        rla
        inc l
        pop de ;restore: -
        rr e ;restore: rl e
        rr d ;restore: rl d:rl e
        rra ;restore: rla:rl d:rl e
        rr e ;restore: rl e:rla:rl d:rl e
        rr d ;restore: rl d:rl e:rla:rl d:rl e
        ld (hl),e
        inc l
        ld (hl),d
       endif
       ld sp,iy;SPOILSTACK
x6line_endcritical
       LD de,MAPWID
       add ix,de
        ld a,l
        sub SCRWID-1
        ld l,a
        inc h
        ld a,h
        and 7
        jr z,DrawMap_x6line_chr
;DrawMap_x6line_chrq
        ex af,af' ;'
        dec a
        jp nz,DrawMap_x6line
        ;ld sp,iy
        ret
DrawMap_x6line_chr
        ld a,l
        sub -32
        ld l,a
        sbc a,a
        and -8
        add a,h
        ld h,a
        ex af,af' ;'
        dec a
        jp nz,DrawMap_x6line
        ;ld sp,iy
        ret

       if (SCRWID/2)&1
;after ld (hl)
        nop
        nop
        nop
;after rr d
        rl d
        rl e
        rla
;after rr d
        rl d
        rl e
       endif
       dup SCRWID/4
;after pop de
        jp (hl) ;restore de
;after inc l
        nop
;after rla
        rra
;after ld (hl)
        nop
        nop
        nop
        nop
        nop
        nop
        nop
;after rr b
        rl b
        rl c
        rl d
        rl e
        rla
;after rr b
        rl b
        rl c
        rl d
        rl e
;after pop bc
;for x6line_startcritical
        ret ;restore bc
       edup
x6line_restorede_startcritical=$-1

DrawMap_x7
        ex de,hl;LD hl,SCRTOP;SHADOW
        ld ix,3
        add ix,de
DrawMap_x7line
;ix=mapadr
        ld a,(ix-3)
        ld e,(ix-2)
        ld d,(ix-1)
       ld sp,ix ;mapadr+3, de is ready
        ld c,l
        rra
       dup SCRWID/2
        ld a,e
        rra
        ld (hl),a
        inc l
        ld a,d
        rra
        ld (hl),a
        inc l
        pop de
       edup
        org $-2
       ld sp,iy;SPOILSTACK
       LD de,MAPWID
       add ix,de
        inc h
        ld a,h
        and 7
        jr z,DrawMap_x7line_chr
        ld l,c
;DrawMap_x7line_chrq
        dec b
        jp nz,DrawMap_x7line
        ;ld sp,iy
        ret
DrawMap_x7line_chr
        ld a,c
        sub -32
        ld l,a
        sbc a,a
        and -8
        add a,h
        ld h,a
        dec b
        jp nz,DrawMap_x7line
        ;ld sp,iy
        ret

DrawWater_Amhgt_DEgfx
        ld (DrawWaterSP),sp
       ld c,a ;-32..-1
        and 7
        add a,0x50
        LD H,A
       ld a,c
       and 0x18
       add a,a
       add a,a
       add a,0x1f
       ld l,a
        ;LD L,#7F
PRWAT0  LD A,(DE)
        INC E
        LD C,A
        LD A,(DE)
        LD B,A
       ld a,e
        inc e
       xor e
       and 0xf0
       jr z,$+2+4
         ld a,e
         add a,32
         ld e,a
       
        LD SP,HL
        DUP 15
        PUSH BC
        EDUP
        ;ld l,0x7e
        ;dup 15
        ;ld (hl),b
        ;dec l
        ;ld (hl),c
        ;dec l
        ;edup
        ;org $-1
       ;ld a,l
       ;sub 30
       ;ld l,a
       ;ld (hl),c
       ;inc l
       ;ld (hl),b ;╨╕╨╜╨░╤З╨╡ ╨╖╨░╨┐╨░╤А╤Л╨▓╨░╨╡╤В 56ff ╨╕ ╤В.╨┐.
       ;add a,30
       ;ld l,a
       
        INC H
        BIT 3,H
        JR Z,PRWAT0
        res 3,h
        ld a,l
        sub -32
        ld l,a
        jp p,PRWAT0
DrawWaterSP=$+1
        LD SP,0
        RET  

       if 1
DDE
        INC D
        LD A,D
        AND 7
        RET NZ
        LD A,E
        ADD A,32
        LD E,A
        RET C
        LD A,D
        ADD A,-8
        LD D,A
        RET
       endif
       if 0
DBC
        INC B
        LD A,B
        AND 7
        RET NZ
        LD A,C
        ADD A,32
        LD C,A
        RET C
        LD A,B
        ADD A,-8
        LD B,A
        RET
       endif

        display "drawmapsize=",$-DrawMap,"+0x400 shifts"