diff --git a/gfx/logo.chi b/gfx/logo.chi new file mode 100644 index 0000000..8d6c6d8 Binary files /dev/null and b/gfx/logo.chi differ diff --git a/gfx/sd2snes.pal b/gfx/sd2snes.pal new file mode 100644 index 0000000..dde08cc Binary files /dev/null and b/gfx/sd2snes.pal differ diff --git a/gfx/sd2snes.psd b/gfx/sd2snes.psd new file mode 100644 index 0000000..ff6e875 Binary files /dev/null and b/gfx/sd2snes.psd differ diff --git a/gfx/sd2snes_logo_remap.bin b/gfx/sd2snes_logo_remap.bin new file mode 100644 index 0000000..03506ec Binary files /dev/null and b/gfx/sd2snes_logo_remap.bin differ diff --git a/pcb/cart/sd2snes18.brd b/pcb/cart/sd2snes18.brd new file mode 100644 index 0000000..fc39185 Binary files /dev/null and b/pcb/cart/sd2snes18.brd differ diff --git a/pcb/cart/sd2snes18.sch b/pcb/cart/sd2snes18.sch new file mode 100644 index 0000000..8fbcfc7 Binary files /dev/null and b/pcb/cart/sd2snes18.sch differ diff --git a/snes/Makefile b/snes/Makefile new file mode 100644 index 0000000..23a162c --- /dev/null +++ b/snes/Makefile @@ -0,0 +1,17 @@ +OBJS = header.ips reset.o65 main.o65 font.o65 palette.o65 data.o65 const.o65 logo.o65 # gfx.o65 # vars.o65 + +all: menu.bin + +menu.bin: $(OBJS) + sneslink -fsmc -o $@ $^ + +# Generic rule to create .o65 out from .a65 +%.o65: %.a65 + snescom -J -Wall -o $@ $< + +# Generic rule to create .ips out from .a65 +%.ips: %.a65 + snescom -I -J -Wall -o $@ $< + +clean: + rm -f *.ips *.o65 *~ menu.bin diff --git a/snes/const.a65 b/snes/const.a65 new file mode 100644 index 0000000..5758409 --- /dev/null +++ b/snes/const.a65 @@ -0,0 +1,3 @@ +zero .word 0 +hello .byt "Hello World!" +bg2tile .byt $20 diff --git a/snes/data.a65 b/snes/data.a65 new file mode 100644 index 0000000..d87c3e2 --- /dev/null +++ b/snes/data.a65 @@ -0,0 +1,3 @@ +.data +testvar .byt 0 +testvar2 .word 0 diff --git a/snes/font.a65 b/snes/font.a65 new file mode 100644 index 0000000..c016cd9 --- /dev/null +++ b/snes/font.a65 @@ -0,0 +1,512 @@ +font .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $30, $00, $30, $08, $30, $08, $30, $08 + .byt $20, $18, $00, $10, $30, $00, $00, $18 + .byt $6c, $00, $6c, $12, $24, $12, $00, $12 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $6c, $00, $6c, $12, $fe, $00, $6c, $13 + .byt $fe, $00, $6c, $13, $6c, $12, $00, $36 + .byt $10, $00, $7c, $44, $c6, $38, $f0, $03 + .byt $1e, $60, $c6, $09, $7c, $47, $10, $2e + .byt $42, $00, $a4, $01, $48, $12, $10, $24 + .byt $24, $08, $4a, $10, $84, $21, $00, $42 + .byt $70, $40, $c0, $38, $c4, $24, $6e, $4a + .byt $c4, $33, $c4, $22, $7c, $46, $00, $3e + .byt $18, $00, $18, $04, $10, $0c, $00, $08 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $18, $00, $30, $2c, $30, $08, $30, $08 + .byt $30, $08, $30, $28, $18, $00, $00, $0c + .byt $30, $00, $18, $08, $18, $04, $18, $04 + .byt $18, $04, $18, $0c, $30, $0c, $00, $18 + .byt $00, $00, $6c, $00, $38, $06, $7c, $00 + .byt $38, $06, $6c, $12, $00, $36, $00, $00 + .byt $00, $00, $30, $00, $30, $08, $fc, $00 + .byt $30, $4e, $30, $08, $00, $18, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $18, $00, $18, $04, $10, $08 + .byt $00, $00, $00, $00, $00, $00, $fc, $00 + .byt $00, $7e, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $18, $00, $18, $04, $00, $0c + .byt $18, $00, $18, $04, $30, $0c, $30, $08 + .byt $30, $08, $60, $18, $60, $10, $00, $30 + .byt $7c, $44, $e6, $38, $c6, $31, $c6, $21 + .byt $c6, $21, $ce, $29, $7c, $47, $00, $3e + .byt $08, $00, $18, $04, $18, $04, $18, $04 + .byt $18, $04, $18, $04, $18, $04, $00, $0c + .byt $fc, $00, $00, $7e, $06, $00, $7c, $07 + .byt $c0, $be, $c0, $20, $fe, $00, $00, $7f + .byt $fc, $00, $00, $7e, $06, $00, $3c, $07 + .byt $06, $18, $06, $01, $fc, $07, $00, $7e + .byt $c6, $00, $c6, $21, $c0, $23, $7e, $40 + .byt $06, $39, $06, $01, $06, $01, $00, $03 + .byt $fe, $00, $00, $7f, $c0, $00, $fc, $04 + .byt $06, $78, $06, $01, $fc, $07, $00, $7e + .byt $7c, $00, $00, $3e, $c0, $00, $fc, $04 + .byt $c6, $38, $c6, $a1, $7c, $07, $00, $3e + .byt $fe, $00, $00, $7f, $06, $00, $06, $01 + .byt $06, $01, $06, $01, $06, $01, $00, $03 + .byt $7c, $04, $06, $38, $c6, $01, $7c, $47 + .byt $c6, $38, $c6, $21, $7c, $47, $00, $3e + .byt $7c, $04, $06, $38, $c6, $01, $7e, $41 + .byt $06, $39, $06, $01, $7c, $07, $00, $3e + .byt $00, $00, $00, $00, $30, $00, $00, $18 + .byt $00, $00, $30, $00, $00, $18, $00, $00 + .byt $00, $00, $00, $00, $30, $00, $00, $18 + .byt $00, $00, $30, $00, $20, $18, $00, $10 + .byt $00, $00, $18, $00, $30, $0c, $60, $18 + .byt $30, $00, $18, $00, $00, $0c, $00, $00 + .byt $00, $00, $00, $00, $3c, $00, $00, $1e + .byt $00, $00, $3c, $00, $00, $1e, $00, $00 + .byt $00, $00, $30, $00, $18, $00, $0c, $00 + .byt $18, $06, $30, $0c, $00, $18, $00, $00 + .byt $f8, $08, $0c, $70, $0c, $02, $18, $06 + .byt $30, $0c, $00, $18, $30, $00, $00, $18 + .byt $7c, $04, $06, $38, $c6, $01, $de, $21 + .byt $de, $21, $c0, $2f, $7e, $40, $00, $3f + .byt $7c, $04, $06, $38, $c6, $01, $de, $21 + .byt $c6, $29, $c6, $21, $c6, $21, $00, $63 + .byt $fc, $04, $06, $78, $c6, $01, $dc, $27 + .byt $c6, $28, $c6, $21, $fc, $07, $00, $7e + .byt $7e, $00, $00, $3f, $c0, $00, $c0, $20 + .byt $c0, $20, $c0, $20, $7e, $40, $00, $3f + .byt $fc, $00, $06, $7a, $c6, $01, $c6, $21 + .byt $c6, $21, $c6, $23, $fc, $03, $00, $7e + .byt $fe, $00, $00, $7f, $c0, $00, $f8, $00 + .byt $c0, $3c, $c0, $20, $fe, $00, $00, $7f + .byt $fe, $00, $00, $7f, $c0, $00, $f8, $00 + .byt $c0, $3c, $c0, $20, $c0, $20, $00, $60 + .byt $7e, $00, $00, $3f, $c0, $00, $ce, $20 + .byt $c6, $21, $c6, $21, $7c, $47, $00, $3e + .byt $c6, $00, $06, $61, $c6, $01, $de, $21 + .byt $c6, $29, $c6, $21, $c6, $21, $00, $63 + .byt $18, $00, $18, $04, $18, $04, $18, $04 + .byt $18, $04, $18, $04, $18, $04, $00, $0c + .byt $0c, $00, $0c, $02, $0c, $02, $0c, $02 + .byt $0c, $02, $0c, $06, $f8, $06, $00, $7c + .byt $c6, $00, $c6, $21, $c0, $23, $fc, $04 + .byt $c6, $38, $c6, $21, $c6, $21, $00, $63 + .byt $c0, $00, $00, $60, $c0, $00, $c0, $20 + .byt $c0, $20, $c0, $20, $fc, $00, $00, $7e + .byt $fc, $04, $16, $68, $d6, $09, $d6, $29 + .byt $c6, $29, $c6, $21, $c6, $21, $00, $63 + .byt $fc, $04, $06, $78, $c6, $01, $c6, $21 + .byt $c6, $21, $c6, $21, $c6, $21, $00, $63 + .byt $7c, $04, $06, $38, $c6, $01, $c6, $21 + .byt $c6, $21, $c6, $21, $7c, $47, $00, $3e + .byt $fc, $04, $06, $78, $c6, $01, $c6, $01 + .byt $fc, $07, $c0, $3e, $c0, $20, $00, $60 + .byt $7c, $00, $06, $3a, $c6, $01, $c6, $21 + .byt $c6, $21, $ce, $21, $7e, $41, $00, $3f + .byt $fc, $04, $06, $78, $c6, $01, $fc, $06 + .byt $c6, $39, $c6, $21, $c6, $21, $00, $63 + .byt $7e, $00, $00, $3f, $c0, $00, $7c, $44 + .byt $06, $38, $06, $01, $fc, $07, $00, $7e + .byt $fe, $00, $00, $7f, $18, $00, $18, $04 + .byt $18, $04, $18, $04, $18, $04, $00, $0c + .byt $c6, $00, $06, $61, $c6, $01, $c6, $21 + .byt $c6, $21, $c6, $21, $7c, $47, $00, $3e + .byt $c6, $00, $06, $61, $c6, $01, $c6, $21 + .byt $66, $01, $36, $01, $1e, $01, $00, $0f + .byt $c6, $00, $06, $61, $c6, $01, $d6, $21 + .byt $d6, $29, $d6, $29, $7e, $41, $00, $3f + .byt $c6, $00, $06, $61, $c6, $01, $7c, $47 + .byt $c6, $38, $c6, $21, $c6, $21, $00, $63 + .byt $c6, $00, $06, $61, $c6, $01, $7e, $41 + .byt $06, $39, $06, $03, $fc, $03, $00, $7e + .byt $fe, $00, $00, $7f, $06, $00, $7c, $47 + .byt $c0, $3e, $c0, $20, $fe, $00, $00, $7f + .byt $3c, $00, $30, $0e, $30, $08, $30, $08 + .byt $30, $08, $30, $08, $3c, $00, $00, $1e + .byt $30, $00, $30, $08, $18, $00, $18, $04 + .byt $18, $04, $0c, $00, $0c, $02, $00, $06 + .byt $3c, $00, $0c, $12, $0c, $02, $0c, $02 + .byt $0c, $02, $0c, $02, $3c, $02, $00, $1e + .byt $18, $00, $3c, $24, $66, $18, $00, $33 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $fe, $00, $00, $7f + .byt $30, $00, $18, $00, $18, $04, $00, $0c + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $7c, $04, $06, $38 + .byt $7e, $41, $c6, $39, $7e, $41, $00, $3f + .byt $c0, $00, $c0, $20, $fc, $04, $c6, $38 + .byt $c6, $21, $c6, $21, $fc, $07, $00, $7e + .byt $00, $00, $00, $00, $7e, $40, $c0, $3f + .byt $c0, $20, $c0, $20, $7e, $40, $00, $3f + .byt $06, $00, $06, $01, $7e, $41, $c6, $39 + .byt $c6, $21, $c6, $21, $7e, $41, $00, $3f + .byt $00, $00, $00, $00, $7c, $44, $c6, $38 + .byt $de, $21, $c0, $2f, $7e, $40, $00, $3f + .byt $1e, $00, $30, $2f, $30, $08, $3c, $00 + .byt $30, $0e, $30, $08, $30, $08, $30, $08 + .byt $00, $00, $00, $00, $7e, $40, $c6, $38 + .byt $c6, $21, $7e, $41, $06, $39, $7c, $03 + .byt $c0, $00, $c0, $20, $fc, $04, $c6, $38 + .byt $c6, $21, $c6, $21, $c6, $21, $00, $63 + .byt $00, $00, $18, $00, $00, $0c, $18, $00 + .byt $18, $04, $18, $04, $18, $04, $00, $0c + .byt $00, $00, $18, $00, $00, $0c, $18, $00 + .byt $18, $04, $18, $04, $18, $0c, $30, $0c + .byt $c0, $00, $c6, $20, $c6, $21, $fc, $07 + .byt $c6, $38, $c6, $21, $c6, $21, $00, $63 + .byt $30, $00, $30, $08, $30, $08, $30, $08 + .byt $30, $08, $30, $28, $18, $00, $00, $0c + .byt $00, $00, $00, $00, $fc, $04, $d6, $28 + .byt $d6, $29, $d6, $29, $c6, $29, $00, $63 + .byt $00, $00, $00, $00, $fc, $04, $c6, $38 + .byt $c6, $21, $c6, $21, $c6, $21, $00, $63 + .byt $00, $00, $00, $00, $7c, $44, $c6, $38 + .byt $c6, $21, $c6, $21, $7c, $47, $00, $3e + .byt $00, $00, $00, $00, $fc, $04, $c6, $38 + .byt $c6, $21, $fc, $07, $c0, $3e, $c0, $20 + .byt $00, $00, $00, $00, $7e, $40, $c6, $39 + .byt $c6, $21, $7e, $41, $06, $39, $06, $01 + .byt $00, $00, $00, $00, $7c, $40, $c0, $3e + .byt $c0, $20, $c0, $20, $c0, $20, $00, $60 + .byt $00, $00, $00, $00, $7e, $40, $c0, $3f + .byt $7c, $44, $06, $38, $fc, $07, $00, $7e + .byt $30, $00, $30, $08, $3c, $00, $30, $0e + .byt $30, $08, $30, $08, $1e, $10, $00, $0f + .byt $00, $00, $00, $00, $c6, $00, $c6, $21 + .byt $c6, $21, $c6, $21, $7c, $47, $00, $3e + .byt $00, $00, $00, $00, $c6, $00, $c6, $21 + .byt $66, $01, $36, $01, $1e, $01, $00, $0f + .byt $00, $00, $00, $00, $c6, $00, $d6, $21 + .byt $d6, $29, $d6, $29, $7e, $41, $00, $3f + .byt $00, $00, $00, $00, $c6, $00, $c6, $21 + .byt $7c, $47, $c6, $38, $c6, $21, $00, $63 + .byt $00, $00, $00, $00, $c6, $00, $c6, $21 + .byt $7e, $41, $06, $39, $06, $01, $fc, $07 + .byt $00, $00, $00, $00, $fe, $00, $06, $79 + .byt $7c, $47, $c0, $3e, $fe, $00, $00, $7f + .byt $18, $00, $30, $0c, $30, $08, $70, $08 + .byt $30, $08, $30, $08, $18, $00, $00, $0c + .byt $18, $00, $18, $04, $18, $04, $00, $0c + .byt $18, $00, $18, $04, $18, $04, $00, $0c + .byt $30, $00, $18, $00, $18, $04, $1c, $00 + .byt $18, $06, $18, $04, $30, $0c, $00, $18 + .byt $00, $00, $00, $00, $72, $10, $fe, $01 + .byt $9c, $73, $00, $4e, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $30, $00 + .byt $48, $10, $48, $24, $30, $04, $00, $18 + .byt $3c, $00, $30, $0e, $30, $08, $30, $08 + .byt $00, $18, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $0c, $00 + .byt $0c, $02, $0c, $02, $3c, $02, $00, $1e + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $30, $00, $18, $00, $0c, $00 + .byt $00, $00, $00, $00, $00, $00, $60, $00 + .byt $00, $30, $00, $00, $00, $00, $00, $00 + .byt $fe, $00, $02, $7d, $7e, $01, $02, $3d + .byt $02, $01, $04, $03, $78, $06, $00, $3c + .byt $00, $00, $00, $00, $7c, $00, $14, $2a + .byt $18, $02, $10, $0c, $20, $08, $00, $10 + .byt $00, $00, $00, $00, $08, $00, $10, $04 + .byt $70, $08, $10, $28, $10, $08, $00, $08 + .byt $00, $00, $00, $00, $10, $00, $7c, $00 + .byt $44, $3a, $08, $22, $30, $04, $00, $18 + .byt $00, $00, $00, $00, $7c, $00, $10, $2e + .byt $10, $08, $10, $08, $7c, $00, $00, $3e + .byt $00, $00, $00, $00, $08, $00, $7c, $00 + .byt $18, $26, $28, $04, $58, $04, $00, $2c + .byt $00, $00, $00, $00, $20, $00, $7c, $00 + .byt $24, $1a, $28, $12, $20, $14, $00, $10 + .byt $00, $00, $00, $00, $00, $00, $38, $00 + .byt $08, $14, $08, $04, $7c, $00, $00, $3e + .byt $00, $00, $00, $00, $78, $00, $08, $34 + .byt $38, $04, $08, $14, $7c, $00, $00, $3e + .byt $00, $00, $00, $00, $50, $00, $54, $28 + .byt $04, $2a, $08, $02, $30, $04, $00, $18 + .byt $00, $00, $00, $00, $00, $00, $1c, $00 + .byt $e0, $0e, $00, $70, $00, $00, $00, $00 + .byt $fe, $00, $02, $7d, $14, $01, $18, $02 + .byt $10, $0c, $10, $08, $20, $08, $00, $10 + .byt $04, $00, $08, $02, $30, $04, $d0, $08 + .byt $10, $68, $10, $08, $10, $08, $00, $08 + .byt $10, $00, $fe, $00, $82, $7d, $82, $41 + .byt $02, $41, $04, $01, $38, $02, $00, $1c + .byt $00, $00, $7c, $00, $10, $2e, $10, $08 + .byt $10, $08, $10, $08, $fe, $00, $00, $7f + .byt $04, $00, $7e, $00, $0c, $33, $14, $02 + .byt $24, $0a, $44, $12, $0c, $22, $00, $06 + .byt $20, $00, $20, $10, $fe, $00, $22, $5d + .byt $22, $11, $42, $11, $84, $21, $00, $42 + .byt $10, $00, $1c, $00, $70, $0e, $1e, $20 + .byt $78, $07, $08, $34, $08, $04, $00, $04 + .byt $40, $00, $7e, $00, $42, $3d, $82, $21 + .byt $04, $41, $08, $02, $10, $04, $00, $08 + .byt $40, $00, $7e, $00, $48, $37, $88, $24 + .byt $08, $44, $10, $04, $20, $08, $00, $10 + .byt $00, $00, $fe, $00, $02, $7d, $02, $01 + .byt $02, $01, $02, $01, $fe, $01, $00, $7f + .byt $44, $00, $fe, $00, $44, $3b, $44, $22 + .byt $44, $22, $08, $22, $10, $04, $00, $08 + .byt $e0, $00, $00, $70, $e2, $00, $04, $71 + .byt $08, $02, $30, $04, $c0, $18, $00, $60 + .byt $fc, $00, $04, $7a, $04, $02, $08, $02 + .byt $18, $04, $24, $08, $c2, $10, $00, $61 + .byt $20, $00, $20, $10, $fe, $00, $22, $5d + .byt $24, $11, $20, $12, $1c, $00, $00, $0e + .byt $84, $00, $84, $42, $84, $42, $04, $42 + .byt $08, $02, $08, $04, $10, $04, $00, $08 + .byt $40, $00, $7e, $00, $42, $3d, $9a, $21 + .byt $04, $49, $08, $02, $30, $04, $00, $18 + .byt $0c, $00, $70, $0e, $10, $28, $fe, $00 + .byt $10, $6f, $10, $08, $20, $08, $00, $10 + .byt $52, $00, $52, $29, $52, $29, $04, $29 + .byt $04, $02, $08, $02, $10, $04, $00, $08 + .byt $7c, $00, $00, $3e, $fe, $00, $10, $6f + .byt $10, $08, $10, $08, $20, $08, $00, $10 + .byt $20, $00, $20, $10, $30, $00, $28, $10 + .byt $20, $14, $20, $10, $20, $10, $00, $10 + .byt $10, $00, $10, $08, $fe, $00, $10, $6f + .byt $10, $08, $10, $08, $20, $08, $00, $10 + .byt $00, $00, $7c, $00, $00, $3e, $00, $00 + .byt $00, $00, $fe, $00, $00, $7f, $00, $00 + .byt $fc, $00, $04, $7a, $24, $02, $18, $02 + .byt $0c, $00, $12, $04, $e0, $09, $00, $70 + .byt $10, $00, $7c, $00, $04, $3a, $18, $02 + .byt $f6, $08, $10, $6b, $10, $08, $00, $08 + .byt $02, $00, $02, $01, $02, $01, $04, $01 + .byt $04, $02, $08, $02, $10, $04, $00, $08 + .byt $44, $00, $44, $20, $42, $20, $42, $21 + .byt $42, $21, $82, $21, $82, $41, $00, $41 + .byt $80, $00, $80, $40, $98, $40, $e0, $0c + .byt $80, $70, $80, $40, $7e, $00, $00, $3f + .byt $fe, $00, $02, $7d, $02, $01, $04, $01 + .byt $04, $02, $18, $02, $e0, $0c, $00, $70 + .byt $00, $00, $10, $00, $28, $00, $44, $10 + .byt $02, $20, $00, $01, $00, $00, $00, $00 + .byt $10, $00, $10, $08, $fe, $00, $10, $6f + .byt $54, $08, $92, $28, $10, $49, $00, $08 + .byt $fe, $00, $02, $7d, $04, $01, $28, $02 + .byt $10, $04, $08, $00, $00, $04, $00, $00 + .byt $78, $00, $06, $38, $00, $03, $38, $00 + .byt $04, $18, $78, $02, $06, $38, $00, $03 + .byt $20, $00, $20, $10, $20, $10, $48, $10 + .byt $44, $20, $8e, $20, $f2, $05, $00, $79 + .byt $04, $00, $04, $02, $34, $02, $0c, $12 + .byt $0a, $04, $10, $05, $60, $08, $00, $30 + .byt $7c, $00, $20, $1e, $20, $10, $fe, $00 + .byt $20, $5f, $20, $10, $1e, $00, $00, $0f + .byt $40, $00, $4e, $20, $f2, $05, $24, $59 + .byt $20, $12, $10, $00, $10, $08, $00, $08 + .byt $00, $00, $7c, $00, $04, $3a, $04, $02 + .byt $04, $02, $fe, $00, $00, $7f, $00, $00 + .byt $fe, $00, $02, $7d, $02, $01, $1e, $01 + .byt $02, $0d, $02, $01, $7e, $01, $00, $3f + .byt $7c, $00, $00, $3e, $fe, $00, $02, $7d + .byt $02, $01, $04, $01, $38, $02, $00, $1c + .byt $44, $00, $44, $22, $44, $22, $44, $22 + .byt $04, $22, $08, $02, $10, $04, $00, $08 + .byt $28, $00, $28, $14, $28, $14, $28, $14 + .byt $28, $14, $4a, $14, $8c, $21, $00, $46 + .byt $80, $00, $80, $40, $80, $40, $84, $40 + .byt $88, $42, $90, $44, $e0, $08, $00, $70 + .byt $00, $00, $fe, $00, $82, $7d, $82, $41 + .byt $82, $41, $82, $41, $fe, $01, $00, $7f + .byt $fe, $00, $82, $7d, $82, $41, $02, $41 + .byt $04, $01, $08, $02, $30, $04, $00, $18 + .byt $e0, $00, $02, $70, $02, $01, $02, $01 + .byt $04, $01, $18, $02, $e0, $0c, $00, $70 + .byt $20, $00, $90, $00, $40, $08, $00, $20 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $60, $00, $90, $20, $90, $48, $60, $08 + .byt $00, $30, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 diff --git a/snes/header.a65 b/snes/header.a65 new file mode 100644 index 0000000..5348227 --- /dev/null +++ b/snes/header.a65 @@ -0,0 +1,73 @@ +; This file is part of the snescom-asm demo - a demo of how to build a SNES program. +; See http://bisqwit.iki.fi/source/snescom.html for details. + +; Begin assembling to this address. +*= $C0FF00 + +RESET: + sei: clc: xce + jmp @GAME_MAIN + +NMI_16bit: + php + rep #$30 + pha: phx: phy: phd: phb + jsl @NMI_ROUTINE + rep #$30 +int_exit: + plb: pld: ply: plx: pla + plp + rti + +IRQ_16bit: + php + rep #$30 + pha: phx: phy: phd: phb + jsl @IRQ_ROUTINE + bra int_exit + +;error vectors +ABT_8bit: ABT_16bit: +BRK_8bit: BRK_16bit: +COP_8bit: COP_16bit: +IRQ_8bit: +NMI_8bit: + - lda $ABCDEF : bra - + +*= $C0FFB0 + ; Zero the area from $FFB0 - $FFFF + ; to ensure that the linker won't get clever + ; and fill it with small pieces of code. + .word 0,0,0,0, 0,0,0,0 + .word 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 + .word 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 + +*= $C0FFB0 + +.byt "01" ;2 bytes - company id +.byt "SNSD" ;4 bytes - rom id + +*= $C0FFC0 +.byt "SD2SNES MAIN MENU " + ;123456789012345678901; - max 21 chars + +*= $C0FFD5 .byt $31 ;rom speed +*= $C0FFD6 .byt $02 ;rom type +*= $C0FFD7 .byt $06 ;rom size 64 kByte +*= $C0FFD8 .byt $03 ;sram size 8 kBit +*= $C0FFD9 .byt $09 ;rom region 4 = Finland +*= $C0FFDA .byt $33 ;company id flag + +*= $C0FFDC .word 0,0 ;checksums + +*= $C0FFE4 .word COP_16bit +*= $C0FFE6 .word BRK_16bit +*= $C0FFE8 .word ABT_16bit +*= $C0FFEA .word NMI_16bit +*= $C0FFEE .word IRQ_16bit +*= $C0FFF4 .word COP_8bit +*= $C0FFF8 .word ABT_8bit +*= $C0FFFA .word NMI_8bit +*= $C0FFFC .word RESET +*= $C0FFFE .word BRK_8bit +*= $C0FFFE .word IRQ_8bit diff --git a/snes/logo.a65 b/snes/logo.a65 new file mode 100644 index 0000000..3f12852 --- /dev/null +++ b/snes/logo.a65 @@ -0,0 +1,2496 @@ +logomap .byt $40, $00, $41, $00, $42, $00, $43, $00 + .byt $44, $00, $45, $00, $46, $00, $47, $00 + .byt $48, $00, $49, $00, $4a, $00, $4b, $00 + .byt $4c, $00, $4d, $00, $4e, $00, $4f, $00 + .byt $50, $00, $51, $00, $52, $00, $53, $00 + .byt $54, $00, $55, $00, $56, $00, $57, $00 + .byt $58, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $4a, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $59, $00, $5a, $00, $5b, $00, $5c, $00 + .byt $5d, $00, $5e, $00, $5f, $00, $60, $00 + .byt $61, $00, $62, $00, $63, $00, $64, $00 + .byt $65, $00, $66, $00, $67, $00, $68, $00 + .byt $69, $00, $6a, $00, $6b, $00, $6c, $00 + .byt $6d, $00, $6e, $00, $6f, $00, $70, $00 + .byt $71, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $4a, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $72, $00, $73, $00, $74, $00, $75, $00 + .byt $76, $00, $77, $00, $78, $00, $79, $00 + .byt $7a, $00, $7b, $00, $7c, $00, $7d, $00 + .byt $7e, $00, $7f, $00, $80, $00, $81, $00 + .byt $82, $00, $83, $00, $84, $00, $85, $00 + .byt $86, $00, $87, $00, $88, $00, $89, $00 + .byt $8a, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $4a, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $8b, $00, $8c, $00, $8d, $00, $8e, $00 + .byt $8f, $00, $90, $00, $91, $00, $92, $00 + .byt $93, $00, $94, $00, $95, $00, $96, $00 + .byt $97, $00, $98, $00, $99, $00, $9a, $00 + .byt $9b, $00, $9c, $00, $9d, $00, $9e, $00 + .byt $9f, $00, $a0, $00, $a1, $00, $a2, $00 + .byt $a3, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $4a, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $a4, $00, $a5, $00, $a6, $00, $a7, $00 + .byt $a8, $00, $a9, $00, $aa, $00, $ab, $00 + .byt $ac, $00, $ad, $00, $ae, $00, $af, $00 + .byt $b0, $00, $b1, $00, $b2, $00, $b3, $00 + .byt $b4, $00, $b5, $00, $b6, $00, $b7, $00 + .byt $b8, $00, $b9, $00, $ba, $00, $bb, $00 + .byt $bc, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $4a, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $bd, $00, $be, $00, $bf, $00, $c0, $00 + .byt $c1, $00, $c2, $00, $c3, $00, $c4, $00 + .byt $c5, $00, $c6, $00, $c7, $00, $c8, $00 + .byt $c9, $00, $ca, $00, $cb, $00, $cc, $00 + .byt $cd, $00, $ce, $00, $cf, $00, $d0, $00 + .byt $d1, $00, $d2, $00, $d3, $00, $d4, $00 + .byt $d5, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $4a, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $d6, $00, $d7, $00, $d8, $00, $d9, $00 + .byt $da, $00, $db, $00, $dc, $00, $dd, $00 + .byt $de, $00, $df, $00, $e0, $00, $e1, $00 + .byt $e2, $00, $e3, $00, $e4, $00, $e5, $00 + .byt $e6, $00, $e7, $00, $e8, $00, $e9, $00 + .byt $ea, $00, $eb, $00, $ec, $00, $ed, $00 + .byt $ee, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $4a, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $ef, $00, $f0, $00, $f1, $00, $f2, $00 + .byt $f3, $00, $f4, $00, $f5, $00, $f6, $00 + .byt $f7, $00, $f8, $00, $f9, $00, $fa, $00 + .byt $fb, $00, $fc, $00, $fd, $00, $fe, $00 + .byt $ff, $00, $00, $01, $01, $01, $02, $01 + .byt $03, $01, $04, $01, $05, $01, $06, $01 + .byt $07, $01, $4a, $00, $4a, $00, $4a, $00 + .byt $4a, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $08, $01, $09, $01, $0a, $01, $0b, $01 + .byt $0c, $01, $0d, $01, $0e, $01, $0f, $01 + .byt $10, $01, $11, $01, $12, $01, $13, $01 + .byt $14, $01, $15, $01, $16, $01, $17, $01 + .byt $18, $01, $19, $01, $1a, $01, $1b, $01 + .byt $1c, $01, $1d, $01, $1e, $01, $1f, $01 + .byt $20, $01, $4a, $00, $4a, $00, $4a, $00 + .byt $4a, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $21, $01, $22, $01, $23, $01, $24, $01 + .byt $25, $01, $26, $01, $27, $01, $28, $01 + .byt $29, $01, $2a, $01, $2b, $01, $2c, $01 + .byt $2d, $01, $2e, $01, $2f, $01, $30, $01 + .byt $31, $01, $32, $01, $33, $01, $34, $01 + .byt $35, $01, $36, $01, $37, $01, $38, $01 + .byt $39, $01, $4a, $00, $4a, $00, $4a, $00 + .byt $4a, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $3a, $01, $3b, $01, $3c, $01, $3d, $01 + .byt $3e, $01, $3f, $01, $40, $01, $41, $01 + .byt $42, $01, $43, $01, $44, $01, $45, $01 + .byt $46, $01, $47, $01, $48, $01, $49, $01 + .byt $4a, $01, $4b, $01, $4c, $01, $4d, $01 + .byt $4e, $01, $4f, $01, $50, $01, $51, $01 + .byt $52, $01, $4a, $00, $4a, $00, $4a, $00 + .byt $4a, $00, $4a, $00, $4a, $00, $4a, $00 + .byt $53, $01, $54, $01, $55, $01, $56, $01 + .byt $57, $01, $58, $01, $59, $01, $5a, $01 + .byt $5b, $01, $5c, $01, $5d, $01, $5e, $01 + .byt $5f, $01, $60, $01, $61, $01, $62, $01 + .byt $63, $01, $64, $01, $65, $01, $66, $01 + .byt $67, $01, $68, $01, $69, $01, $6a, $01 + .byt $6b, $01, $4a, $00, $4a, $00, $4a, $00 + .byt $4a, $00, $4a, $00, $4a, $00, $4a, $00 +logo .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $01, $00, $00, $01 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $01, $00, $01, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $01, $00, $01, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $01, $01, $01, $01 + .byt $00, $00, $00, $00, $00, $00, $2f, $10 + .byt $67, $2f, $c3, $47, $82, $80, $00, $03 + .byt $00, $00, $00, $00, $00, $00, $30, $0f + .byt $62, $1d, $c1, $3f, $82, $7e, $07, $ff + .byt $00, $00, $00, $00, $00, $00, $3f, $00 + .byt $7f, $00, $ff, $00, $fe, $01, $ff, $00 + .byt $00, $00, $00, $00, $00, $00, $3f, $3f + .byt $7f, $7f, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $00, $00, $00, $00, $00, $40, $c0 + .byt $b0, $40, $00, $a0, $00, $f8, $04, $f8 + .byt $00, $00, $00, $00, $00, $00, $a0, $00 + .byt $30, $00, $28, $00, $f0, $f0, $fc, $f8 + .byt $00, $00, $00, $00, $00, $00, $80, $60 + .byt $00, $f0, $00, $f8, $f0, $08, $f8, $04 + .byt $00, $00, $00, $00, $00, $00, $e0, $e0 + .byt $f0, $f0, $f8, $f8, $f8, $f8, $fc, $fc + .byt $00, $01, $06, $06, $08, $00, $00, $00 + .byt $30, $38, $3c, $0c, $27, $49, $3c, $03 + .byt $00, $00, $02, $05, $06, $07, $03, $1f + .byt $31, $0f, $04, $1b, $13, $1f, $b3, $3f + .byt $00, $01, $03, $04, $01, $0e, $0c, $13 + .byt $1e, $21, $0f, $30, $11, $6e, $3d, $c2 + .byt $01, $01, $07, $07, $0f, $0f, $1f, $1f + .byt $3f, $3f, $3f, $3f, $7f, $7f, $ff, $ff + .byt $c0, $60, $58, $e4, $58, $e0, $54, $4f + .byt $00, $5e, $e1, $ee, $06, $d0, $08, $f0 + .byt $c8, $00, $00, $f0, $08, $f8, $3a, $f8 + .byt $b6, $f2, $6d, $24, $17, $00, $ff, $80 + .byt $80, $68, $d8, $2c, $dc, $26, $f4, $0f + .byt $6a, $9d, $14, $fb, $00, $ff, $87, $7f + .byt $e8, $e8, $fc, $fc, $fe, $fe, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $03, $01, $80, $06 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $80, $00, $80, $00, $c3, $00, $c5, $03 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $80, $00, $80, $03, $c1, $c6, $c5 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $80, $80, $80, $80, $c3, $c3, $c7, $c7 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $df, $42, $0c, $9a, $0d, $1a + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $80, $20, $0d, $f7, $8c, $f7 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $a1, $7f, $f9, $06, $79, $86 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $00, $00, $00, $00, $00, $01, $00 + .byt $02, $01, $84, $82, $ca, $60, $d7, $2c + .byt $00, $00, $00, $00, $00, $00, $00, $01 + .byt $00, $03, $84, $03, $6a, $e7, $65, $fb + .byt $00, $00, $00, $00, $00, $00, $01, $01 + .byt $03, $02, $07, $80, $e9, $06, $de, $21 + .byt $00, $00, $00, $00, $00, $00, $01, $01 + .byt $03, $03, $87, $87, $ef, $ef, $ff, $ff + .byt $00, $00, $7f, $1c, $5f, $fe, $0f, $9c + .byt $04, $08, $08, $07, $10, $0f, $20, $1f + .byt $00, $00, $5c, $23, $c3, $3d, $07, $fa + .byt $00, $f8, $07, $ff, $0f, $e9, $9f, $d1 + .byt $00, $00, $63, $3f, $ff, $80, $fe, $01 + .byt $f8, $07, $ff, $00, $e9, $16, $51, $ae + .byt $00, $00, $7f, $7f, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $00, $00, $00, $00, $00, $00, $80 + .byt $00, $e0, $10, $e0, $08, $f0, $00, $f0 + .byt $00, $00, $00, $00, $c0, $00, $20, $00 + .byt $c0, $c0, $f0, $e0, $f8, $f0, $f4, $f0 + .byt $00, $00, $00, $00, $00, $c0, $00, $e0 + .byt $c0, $20, $e0, $10, $f0, $08, $f0, $0c + .byt $00, $00, $00, $00, $c0, $c0, $e0, $e0 + .byt $e0, $e0, $f0, $f0, $f8, $f8, $fc, $fc + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $01, $00, $00, $00, $00 + .byt $00, $0e, $0c, $07, $1e, $1f, $0f, $23 + .byt $00, $00, $01, $00, $00, $03, $00, $07 + .byt $08, $07, $0c, $0b, $12, $1d, $1d, $1e + .byt $00, $00, $01, $01, $03, $02, $07, $04 + .byt $0f, $08, $07, $08, $1f, $00, $13, $2c + .byt $00, $00, $01, $01, $03, $03, $07, $07 + .byt $0f, $0f, $0f, $0f, $1f, $1f, $3f, $3f + .byt $08, $68, $1b, $b1, $1a, $11, $0c, $10 + .byt $05, $1b, $22, $13, $80, $bf, $00, $fe + .byt $21, $18, $1f, $ef, $df, $ef, $c0, $fe + .byt $e2, $fa, $11, $f0, $bf, $31, $fe, $c0 + .byt $20, $7d, $f6, $89, $36, $c9, $35, $cb + .byt $11, $ef, $ee, $1f, $f1, $4e, $40, $bf + .byt $7d, $7d, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $00, $80, $00, $80, $c0, $a0, $c1 + .byt $00, $c2, $10, $a4, $3c, $4a, $d2, $18 + .byt $00, $00, $80, $00, $00, $80, $61, $80 + .byt $d2, $41, $9c, $83, $38, $07, $f4, $0f + .byt $00, $00, $00, $80, $80, $c0, $81, $e0 + .byt $43, $b0, $87, $78, $03, $fc, $0f, $f0 + .byt $00, $00, $80, $80, $c0, $c0, $e1, $e1 + .byt $f3, $f3, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $00, $7e, $3c, $3c, $fd, $19, $38 + .byt $00, $0d, $18, $1b, $20, $1f, $40, $3f + .byt $00, $00, $3c, $42, $26, $da, $1d, $e4 + .byt $05, $fd, $03, $fb, $3f, $eb, $7f, $d1 + .byt $00, $00, $42, $7f, $7e, $81, $fc, $03 + .byt $f5, $0a, $fb, $0c, $cb, $34, $91, $6e + .byt $00, $00, $7f, $7f, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $00, $00, $00, $00, $00, $40, $80 + .byt $00, $80, $00, $c0, $00, $f0, $08, $f0 + .byt $00, $00, $00, $00, $80, $00, $c0, $80 + .byt $a0, $80, $d0, $c0, $e0, $e0, $f8, $f0 + .byt $00, $00, $00, $00, $00, $80, $80, $40 + .byt $80, $60, $c0, $30, $e0, $10, $f0, $08 + .byt $00, $00, $00, $00, $80, $80, $c0, $c0 + .byt $e0, $e0, $f0, $f0, $f0, $f0, $f8, $f8 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $0b, $04, $01, $02, $01, $21, $00, $21 + .byt $e1, $f0, $f4, $9d, $60, $19, $70, $8f + .byt $0c, $01, $01, $1f, $39, $1e, $0c, $7f + .byt $a5, $5f, $b5, $ea, $01, $f8, $ff, $f8 + .byt $0d, $06, $1e, $11, $27, $18, $33, $4c + .byt $7a, $85, $9c, $63, $64, $9f, $70, $8f + .byt $0f, $0f, $1f, $1f, $3f, $3f, $7f, $7f + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $88, $87, $90, $4f, $80, $1f, $c0, $5f + .byt $40, $3f, $50, $d7, $10, $ff, $00, $ff + .byt $87, $7c, $af, $f8, $1f, $e0, $7f, $d0 + .byt $ef, $c8, $87, $10, $ef, $14, $ff, $00 + .byt $fc, $03, $d8, $27, $80, $7f, $10, $ef + .byt $c8, $37, $70, $ff, $14, $fb, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $02, $fc, $00, $fe, $01, $f0, $00, $e1 + .byt $00, $e1, $00, $ff, $00, $f7, $00, $ff + .byt $fe, $fc, $fd, $7c, $f1, $30, $e0, $20 + .byt $e0, $00, $f0, $10, $f0, $00, $f8, $08 + .byt $fc, $02, $7c, $83, $30, $cf, $20, $df + .byt $00, $ff, $10, $ef, $00, $ff, $08, $f7 + .byt $fe, $fe, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $06, $4b, $02, $7f, $02, $3f, $02, $7f + .byt $ba, $43, $3e, $c3, $3e, $c3, $3c, $c3 + .byt $fd, $7d, $fd, $7e, $3d, $3c, $bd, $3e + .byt $bd, $3c, $41, $60, $6d, $2e, $47, $74 + .byt $77, $ba, $42, $bf, $02, $7f, $02, $ff + .byt $3e, $c7, $62, $9f, $2e, $d3, $74, $8b + .byt $ff, $ff, $ff, $ff, $7f, $7f, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $08, $f3, $00, $f9, $05, $fc, $02, $f9 + .byt $01, $fc, $01, $fc, $01, $fc, $02, $fc + .byt $fc, $00, $f3, $06, $fb, $01, $fb, $03 + .byt $ff, $05, $ff, $04, $ff, $00, $ff, $00 + .byt $04, $ff, $02, $ff, $05, $ff, $03, $ff + .byt $07, $fb, $05, $fb, $01, $ff, $01, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $08, $c8, $30, $d4, $c0, $06, $9c, $4f + .byt $fe, $37, $d6, $29, $68, $21, $3c, $23 + .byt $01, $0f, $f0, $1f, $e0, $1f, $ec, $d3 + .byt $e3, $7d, $e1, $3e, $f5, $1d, $e7, $3c + .byt $06, $c9, $1f, $f0, $ef, $f0, $cf, $f0 + .byt $f6, $e9, $e2, $dd, $df, $e2, $dc, $e3 + .byt $cf, $cf, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $0d, $18, $19, $14, $73, $3f, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $8e, $f7, $f2, $ef, $ad, $f1, $ff, $b2 + .byt $ff, $80, $ff, $00, $ff, $00, $ff, $08 + .byt $7b, $84, $13, $ec, $33, $de, $32, $cd + .byt $80, $7f, $00, $ff, $00, $ff, $08, $f7 + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $c3, $34, $93, $46, $88, $52, $76, $eb + .byt $10, $e7, $00, $ff, $00, $ff, $00, $ff + .byt $69, $7f, $ea, $fd, $c9, $df, $89, $79 + .byt $f7, $14, $ff, $00, $ff, $00, $ff, $00 + .byt $45, $ba, $87, $78, $a7, $78, $62, $ff + .byt $1c, $eb, $00, $ff, $00, $ff, $00, $ff + .byt $ff, $ff, $df, $df, $f7, $f7, $f7, $f7 + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $c0, $bf, $00, $ff, $c0, $bf, $c0, $1f + .byt $20, $df, $10, $ff, $00, $ff, $00, $ff + .byt $3f, $e0, $ff, $c0, $ff, $a0, $9f, $80 + .byt $9f, $10, $ef, $10, $ff, $00, $ff, $00 + .byt $e0, $1f, $c0, $3f, $20, $df, $c0, $7f + .byt $70, $ef, $10, $ff, $00, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $04, $e0, $00, $c4, $02, $84, $00, $c6 + .byt $01, $de, $00, $ff, $00, $ef, $00, $ff + .byt $e4, $e0, $c2, $40, $82, $00, $c1, $40 + .byt $c1, $00, $e0, $20, $e0, $00, $f0, $10 + .byt $e0, $1c, $40, $be, $00, $fe, $40, $bf + .byt $00, $ff, $20, $df, $00, $ff, $10, $ef + .byt $fc, $fc, $fe, $fe, $fe, $fe, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $80, $00, $03, $83 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $80, $00, $80, $01, $43, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $80, $01, $81, $01, $c2 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $80, $80, $81, $81, $c3, $c3 + .byt $00, $00, $00, $00, $00, $06, $1d, $3a + .byt $02, $44, $03, $84, $83, $c4, $c6, $e1 + .byt $00, $00, $00, $00, $00, $00, $3c, $07 + .byt $73, $3f, $b2, $7f, $98, $7f, $c5, $3d + .byt $00, $00, $00, $00, $00, $06, $39, $26 + .byt $4d, $32, $cd, $32, $e5, $1a, $f8, $07 + .byt $00, $00, $00, $00, $06, $06, $3f, $3f + .byt $7f, $7f, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $00, $00, $00, $00, $00, $80, $c0 + .byt $80, $60, $20, $a0, $40, $f8, $00, $f0 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $f0, $e0, $88, $a0, $b0, $90, $6c, $20 + .byt $00, $00, $00, $00, $00, $00, $00, $c0 + .byt $a0, $50, $60, $f8, $50, $e8, $a4, $dc + .byt $00, $00, $00, $00, $00, $00, $c0, $c0 + .byt $f0, $f0, $f8, $f8, $f8, $f8, $fc, $fc + .byt $1f, $22, $2e, $10, $06, $39, $40, $3f + .byt $42, $0b, $04, $83, $64, $87, $fc, $87 + .byt $24, $1f, $04, $1e, $01, $3e, $03, $3f + .byt $35, $3f, $7f, $7c, $9f, $7e, $03, $7c + .byt $23, $3c, $01, $3f, $02, $7d, $41, $7e + .byt $37, $4a, $7c, $83, $fe, $81, $7c, $87 + .byt $3f, $3f, $3f, $3f, $7f, $7f, $7f, $7f + .byt $7f, $7f, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $fe, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $fe, $00, $ff, $81, $ff, $01, $ff, $00 + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $00, $ff, $81, $7e, $01, $fe, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $06, $14, $65, $06, $43, $25, $1d, $24 + .byt $50, $6f, $60, $3f, $40, $5f, $a0, $3f + .byt $ef, $1b, $d4, $3a, $e3, $0f, $d9, $39 + .byt $df, $78, $ff, $20, $df, $50, $df, $00 + .byt $47, $f8, $ed, $f3, $fd, $d2, $a7, $de + .byt $f8, $c7, $c0, $bf, $f0, $ef, $a0, $ff + .byt $ff, $ff, $ff, $ff, $ef, $ef, $ef, $ef + .byt $ff, $ff, $df, $df, $ff, $ff, $ff, $ff + .byt $80, $7f, $00, $7f, $80, $3f, $00, $bf + .byt $80, $bf, $20, $ff, $00, $ff, $00, $ff + .byt $ff, $a1, $7f, $00, $bf, $00, $bf, $a0 + .byt $3f, $00, $df, $20, $ff, $00, $ff, $00 + .byt $21, $de, $00, $ff, $00, $ff, $20, $df + .byt $c0, $ff, $20, $ff, $00, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $e8, $04, $80, $00, $84, $02, $ac + .byt $00, $fe, $01, $de, $00, $ff, $00, $ef + .byt $e4, $e0, $84, $80, $82, $80, $82, $00 + .byt $c1, $40, $c1, $00, $e0, $20, $e0, $00 + .byt $e0, $1c, $80, $7c, $80, $7e, $00, $fe + .byt $40, $bf, $00, $ff, $20, $df, $00, $ff + .byt $fc, $fc, $fc, $fc, $fe, $fe, $fe, $fe + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $80, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $80, $00, $80, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $80, $00, $80 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $80, $80, $80, $80 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $08, $0f, $40, $ff, $00, $7f, $00, $ff + .byt $80, $7f, $00, $3f, $40, $3f, $00, $1d + .byt $07, $00, $bf, $00, $7f, $08, $7f, $08 + .byt $ff, $7c, $bf, $3e, $ff, $3e, $5d, $1d + .byt $f8, $ff, $40, $ff, $08, $f7, $08, $f7 + .byt $7c, $83, $3e, $c1, $3e, $c1, $1d, $62 + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $7f, $7f + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $03 + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $03, $fc + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $fb, $00, $ff, $01, $fe, $01, $fe + .byt $00, $ff, $00, $fe, $00, $ff, $00, $ff + .byt $f8, $00, $fc, $04, $fd, $00, $ff, $02 + .byt $fe, $00, $fe, $00, $ff, $01, $ff, $00 + .byt $00, $ff, $04, $fb, $00, $ff, $02, $fd + .byt $00, $ff, $00, $ff, $01, $fe, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $04, $93, $c8, $77, $6c, $9f, $28, $97 + .byt $70, $df, $40, $df, $60, $df, $40, $1f + .byt $2f, $3c, $c7, $7e, $3b, $36, $2f, $7c + .byt $4f, $78, $7f, $60, $7f, $70, $1f, $00 + .byt $2c, $d3, $32, $cd, $0e, $f5, $0c, $f3 + .byt $58, $b7, $60, $9f, $70, $8f, $60, $ff + .byt $ff, $ff, $ff, $ff, $cf, $cf, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $fc, $00, $fe, $01, $fe, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $fd, $00, $ff, $02, $ff, $02, $fe, $00 + .byt $ff, $01, $ff, $00, $ff, $00, $ff, $00 + .byt $01, $ff, $02, $fd, $02, $fd, $00, $ff + .byt $01, $fe, $00, $ff, $00, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $18, $37, $18, $03, $00, $3b, $40, $2b + .byt $f4, $17, $44, $b7, $44, $2f, $04, $ef + .byt $ff, $3c, $db, $18, $db, $18, $cb, $08 + .byt $eb, $18, $53, $10, $43, $00, $8b, $80 + .byt $e8, $d7, $1c, $e7, $04, $ff, $14, $ff + .byt $14, $ff, $1c, $ef, $0c, $ff, $84, $7f + .byt $ef, $ef, $ff, $ff, $ff, $ff, $ff, $ff + .byt $f7, $f7, $ff, $ff, $ff, $ff, $ff, $ff + .byt $0c, $e1, $06, $fc, $05, $f8, $0c, $e1 + .byt $07, $e1, $06, $f0, $0a, $f1, $03, $f8 + .byt $e5, $04, $e2, $00, $ef, $0c, $ef, $0d + .byt $ee, $00, $fe, $10, $ff, $11, $f6, $00 + .byt $0c, $ff, $0e, $ff, $0e, $ff, $0d, $fe + .byt $0d, $ff, $15, $ef, $14, $ef, $04, $ff + .byt $f7, $f7, $f3, $f3, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $80, $ff, $00, $ff, $c0, $7f, $c0, $7f + .byt $ff, $00, $ff, $00, $ff, $80, $ff, $80 + .byt $7f, $00, $ff, $a0, $bf, $c0, $3f, $c0 + .byt $00, $ff, $00, $ff, $80, $7f, $80, $7f + .byt $80, $ff, $20, $df, $c0, $7f, $c0, $7f + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $fb, $00, $fb + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $ff, $00, $ff, $00, $fb, $08, $f9, $01 + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $08, $f7, $01, $fe + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $f7, $00, $ff, $00, $fb, $00, $ff + .byt $00, $ff, $00, $ff, $00, $fe, $00, $ff + .byt $f0, $00, $f8, $08, $f8, $00, $fc, $04 + .byt $fc, $00, $fe, $02, $fe, $00, $ff, $01 + .byt $00, $ff, $08, $f7, $00, $ff, $04, $fb + .byt $00, $ff, $02, $fd, $00, $ff, $01, $fe + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $43, $81, $07, $c3, $27, $c3, $27, $cc + .byt $0f, $a4, $0f, $34, $0f, $0c, $18, $6e + .byt $41, $02, $20, $03, $24, $07, $3b, $07 + .byt $03, $07, $1b, $0f, $0b, $17, $39, $37 + .byt $03, $c0, $07, $e4, $03, $e4, $0c, $fb + .byt $04, $fb, $04, $fb, $0c, $f3, $2f, $d0 + .byt $c3, $c3, $e7, $e7, $e7, $e7, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $f0, $e7, $b0, $ff, $e0, $df, $80, $ff + .byt $80, $7f, $00, $7e, $03, $fe, $00, $fe + .byt $f1, $10, $8f, $69, $7f, $b1, $3f, $c0 + .byt $ff, $e0, $fe, $80, $fd, $c2, $ff, $00 + .byt $e8, $1f, $f9, $16, $f1, $0e, $80, $7f + .byt $20, $df, $80, $7f, $42, $bf, $01, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $20, $80, $dc, $61, $05, $82, $a1, $09 + .byt $ad, $4b, $71, $91, $58, $31, $c2, $04 + .byt $bc, $00, $bc, $38, $be, $80, $d9, $86 + .byt $bd, $a6, $51, $06, $fe, $0f, $88, $3c + .byt $1c, $fc, $fc, $fd, $ba, $bf, $ff, $f8 + .byt $eb, $f4, $ff, $f8, $f1, $fe, $f5, $fb + .byt $fc, $fc, $bd, $bd, $87, $87, $87, $87 + .byt $bb, $bb, $17, $17, $07, $07, $2f, $2f + .byt $78, $07, $f0, $0f, $f0, $07, $f8, $0f + .byt $f8, $8f, $b0, $4f, $a0, $df, $80, $af + .byt $0f, $f8, $0f, $78, $07, $b4, $07, $90 + .byt $37, $f8, $9f, $f0, $1f, $f0, $2f, $20 + .byt $78, $87, $70, $8f, $bc, $4b, $18, $ef + .byt $f8, $0f, $30, $cf, $a0, $5f, $d0, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $ff, $00, $fe, $00, $ff + .byt $02, $fe, $00, $ff, $06, $fc, $01, $fe + .byt $ff, $00, $ff, $01, $fe, $00, $fe, $00 + .byt $fd, $02, $ff, $01, $fb, $04, $f9, $00 + .byt $00, $ff, $01, $fe, $00, $ff, $00, $ff + .byt $03, $ff, $01, $ff, $05, $ff, $03, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $fe, $fe, $fc, $fc + .byt $c0, $3f, $40, $bf, $c0, $7f, $00, $5f + .byt $c0, $1f, $c0, $3f, $e0, $17, $60, $13 + .byt $ff, $80, $ff, $c0, $3f, $20, $9f, $00 + .byt $9f, $08, $9f, $08, $b7, $04, $b3, $00 + .byt $c0, $ff, $c0, $ff, $e0, $df, $c0, $ff + .byt $c8, $f7, $c8, $f7, $c4, $fb, $c0, $ff + .byt $ff, $ff, $ff, $ff, $3f, $3f, $3f, $3f + .byt $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $f7, $00, $fd + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $ff, $00, $ff, $00, $f7, $04, $f9, $08 + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $04, $fb, $08, $f7 + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $ff, $00, $f7, $00, $ff + .byt $00, $fb, $00, $fc, $00, $ff, $00, $fe + .byt $f0, $10, $f0, $00, $f0, $00, $f8, $08 + .byt $f8, $00, $fc, $04, $fe, $02, $fe, $00 + .byt $10, $ef, $00, $ff, $00, $ff, $08, $f7 + .byt $00, $ff, $04, $fb, $02, $fd, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $80, $00, $40, $80, $00, $c0, $20, $c0 + .byt $00, $20, $10, $00, $00, $10, $00, $08 + .byt $c0, $00, $40, $00, $20, $00, $20, $00 + .byt $10, $00, $10, $00, $08, $00, $00, $00 + .byt $00, $c0, $00, $c0, $00, $e0, $00, $e0 + .byt $00, $f0, $00, $f0, $00, $f8, $00, $f8 + .byt $c0, $c0, $c0, $c0, $e0, $e0, $e0, $e0 + .byt $f0, $f0, $f0, $f0, $f8, $f8, $f8, $f8 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $20, $18, $00, $00, $10, $00, $00, $0e + .byt $08, $06, $0f, $08, $08, $06, $00, $0f + .byt $78, $18, $20, $00, $30, $00, $10, $00 + .byt $1e, $06, $0f, $07, $08, $0f, $00, $1f + .byt $18, $67, $00, $3f, $00, $3f, $00, $1f + .byt $06, $19, $00, $0f, $07, $08, $1f, $10 + .byt $7f, $7f, $3f, $3f, $3f, $3f, $1f, $1f + .byt $1f, $1f, $0f, $0f, $0f, $0f, $1f, $1f + .byt $01, $fe, $00, $fe, $00, $7f, $00, $bf + .byt $00, $5f, $60, $bf, $00, $1f, $80, $bf + .byt $ff, $02, $fe, $80, $7f, $00, $3f, $00 + .byt $1f, $00, $3f, $e0, $9f, $d0, $3f, $a0 + .byt $02, $fd, $80, $7f, $00, $ff, $00, $ff + .byt $00, $ff, $60, $9f, $70, $af, $e0, $5f + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $80, $7f, $40, $1f, $00, $9f + .byt $00, $df, $00, $e7, $18, $ff, $04, $fe + .byt $ff, $80, $ff, $40, $5f, $00, $af, $00 + .byt $cf, $48, $e7, $04, $e7, $04, $fa, $04 + .byt $80, $7f, $40, $bf, $00, $ff, $00, $ff + .byt $48, $b7, $14, $fb, $1c, $fb, $04, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $3c, $ff, $04, $e1, $12, $e3, $05, $f9 + .byt $01, $e5, $15, $c1, $0c, $d1, $94, $03 + .byt $c3, $bd, $df, $40, $de, $02, $f6, $13 + .byt $ea, $03, $d6, $12, $8e, $06, $8e, $02 + .byt $bd, $7e, $5e, $bf, $1f, $ff, $11, $ef + .byt $09, $ff, $15, $f7, $1d, $df, $1d, $9f + .byt $ff, $ff, $ff, $ff, $f3, $f3, $fd, $fd + .byt $fd, $fd, $f5, $f5, $c5, $c5, $87, $87 + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $fb, $00, $ff + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $ff, $00, $ff, $00, $fb, $02, $f9, $00 + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $02, $fd, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $04, $bf, $06, $ff, $02, $e7, $02, $e7 + .byt $00, $f3, $01, $f3, $01, $fb, $00, $fd + .byt $8b, $08, $c9, $4e, $e5, $22, $e5, $06 + .byt $f3, $10, $f2, $01, $fa, $0b, $fd, $04 + .byt $0c, $f7, $4e, $b7, $22, $df, $06, $fb + .byt $10, $ef, $01, $ff, $0b, $f5, $04, $fb + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $03, $f0, $03, $f8, $07, $f8, $03, $fc + .byt $03, $fa, $00, $fa, $01, $fd, $80, $ff + .byt $f7, $01, $fe, $09, $fe, $01, $fa, $01 + .byt $fb, $03, $f8, $00, $fc, $05, $7f, $82 + .byt $05, $fe, $09, $f6, $01, $fe, $01, $fe + .byt $03, $fe, $01, $ff, $05, $fb, $82, $fd + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $80, $7f, $80, $7e, $00, $fd, $81, $ff + .byt $01, $fb, $00, $fa, $04, $fa, $04, $fb + .byt $7f, $83, $fd, $80, $ff, $c1, $7e, $42 + .byt $f8, $01, $ff, $01, $fd, $03, $f3, $07 + .byt $83, $7c, $81, $7f, $41, $bf, $c3, $bf + .byt $03, $ff, $03, $ff, $06, $ff, $05, $fe + .byt $ff, $ff, $ff, $ff, $ff, $ff, $fe, $fe + .byt $fc, $fc, $fc, $fc, $fc, $fc, $fb, $fb + .byt $01, $fc, $00, $ff, $00, $ff, $80, $ff + .byt $00, $3f, $00, $7f, $00, $ff, $00, $ff + .byt $fd, $00, $fe, $00, $ff, $01, $7f, $80 + .byt $bf, $a0, $7f, $40, $ff, $80, $ff, $00 + .byt $00, $ff, $00, $ff, $01, $fe, $80, $ff + .byt $60, $df, $c0, $bf, $80, $7f, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $3f, $00, $bf, $00, $df + .byt $20, $8f, $21, $fe, $00, $f8, $00, $f8 + .byt $ff, $80, $bf, $00, $7f, $20, $df, $90 + .byt $cf, $40, $df, $0a, $fe, $08, $e7, $00 + .byt $80, $7f, $00, $ff, $20, $df, $90, $6f + .byt $20, $ff, $2a, $f5, $0a, $f6, $0f, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $bf, $bf, $ff, $ff, $fe, $fe, $f0, $f0 + .byt $08, $52, $2e, $81, $38, $ff, $20, $df + .byt $10, $bf, $40, $3f, $60, $3f, $c0, $1f + .byt $0c, $3e, $97, $bf, $c7, $1a, $bf, $00 + .byt $4f, $10, $7f, $40, $5f, $00, $5c, $1c + .byt $13, $ed, $bb, $44, $3a, $fd, $00, $ff + .byt $50, $ff, $40, $7f, $60, $7f, $dc, $e3 + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $7f, $7f, $7f, $7f, $7f, $7f + .byt $00, $ff, $00, $ff, $00, $fe, $00, $fc + .byt $02, $fc, $02, $fd, $00, $ff, $00, $fe + .byt $ff, $81, $fe, $02, $fd, $00, $fe, $00 + .byt $ff, $02, $ff, $04, $fe, $00, $ff, $00 + .byt $81, $7f, $03, $fd, $01, $ff, $00, $fe + .byt $03, $ff, $05, $fb, $00, $ff, $00, $ff + .byt $ff, $ff, $fe, $fe, $fe, $fe, $fe, $fe + .byt $fe, $fe, $ff, $ff, $ff, $ff, $ff, $ff + .byt $40, $2f, $e0, $2f, $a0, $2f, $a0, $9f + .byt $00, $3f, $c0, $9f, $00, $7f, $e0, $7f + .byt $47, $7a, $ff, $54, $0f, $68, $5f, $60 + .byt $ff, $60, $1f, $10, $df, $50, $df, $c1 + .byt $72, $4d, $f4, $eb, $b8, $d7, $e0, $9f + .byt $40, $bf, $b0, $ef, $b0, $ef, $e1, $be + .byt $7f, $7f, $1f, $1f, $7f, $7f, $7f, $7f + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $80, $7f, $00, $df, $10, $ff + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $ff, $00, $bf, $00, $df, $c0, $ef, $f0 + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $c0, $ff, $f0, $df + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $3c, $c0, $18, $80, $00, $b0, $21, $b8 + .byt $27, $be, $64, $b8, $60, $bc, $40, $bc + .byt $bb, $28, $ff, $00, $cf, $00, $d6, $10 + .byt $d9, $18, $de, $1c, $de, $1c, $ff, $3c + .byt $3f, $ff, $3f, $ff, $3f, $ff, $7f, $ff + .byt $7f, $ff, $7e, $fe, $7e, $fe, $7e, $ff + .byt $f8, $f8, $c0, $c0, $c0, $c0, $d0, $d0 + .byt $d9, $d9, $de, $de, $de, $de, $ff, $ff + .byt $60, $13, $60, $11, $20, $52, $3c, $8b + .byt $20, $18, $31, $3e, $fe, $3d, $fc, $0b + .byt $b3, $12, $b1, $11, $f0, $50, $3b, $19 + .byt $20, $3f, $31, $4f, $df, $63, $3b, $76 + .byt $d2, $ed, $d1, $ee, $d0, $ef, $9f, $a6 + .byt $1f, $20, $3f, $40, $bf, $40, $0e, $f1 + .byt $3f, $3f, $3f, $3f, $7f, $7f, $3f, $3f + .byt $3f, $3f, $7f, $7f, $ff, $ff, $ff, $ff + .byt $02, $fd, $00, $fc, $00, $fe, $00, $ff + .byt $80, $7f, $00, $ff, $00, $ff, $00, $ff + .byt $fe, $04, $fd, $00, $fe, $00, $ff, $01 + .byt $7f, $c0, $ff, $80, $ff, $00, $ff, $00 + .byt $04, $fb, $00, $ff, $00, $ff, $01, $fe + .byt $c0, $3f, $80, $7f, $00, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $80, $7f, $80, $7f, $00, $9f + .byt $00, $3f, $60, $fe, $04, $f8, $15, $e0 + .byt $ff, $01, $ff, $00, $bf, $00, $9f, $80 + .byt $3f, $31, $9d, $70, $f7, $00, $fe, $30 + .byt $01, $fe, $00, $ff, $00, $ff, $80, $7f + .byt $f1, $ce, $70, $ef, $04, $ff, $3f, $df + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $f0, $f0 + .byt $00, $90, $00, $20, $00, $e0, $5c, $a0 + .byt $44, $00, $40, $04, $84, $04, $80, $04 + .byt $14, $10, $2c, $20, $de, $40, $de, $90 + .byt $ba, $00, $fa, $00, $f8, $80, $7c, $04 + .byt $10, $ec, $24, $dc, $48, $be, $fc, $7e + .byt $7e, $fe, $fe, $fe, $fc, $fc, $fc, $fc + .byt $fc, $fc, $fc, $fc, $fe, $fe, $de, $de + .byt $82, $82, $82, $82, $80, $80, $04, $04 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $01 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $01, $01 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $01, $01 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $1f, $3b, $ff, $80 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $11, $11, $80, $80 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $11, $11, $80, $80 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $6e, $00, $7f, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $f0, $20 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $80, $00, $30, $20 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $20, $20 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $c0, $00, $d0, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $3b, $0f, $3c, $23, $64, $5b, $42, $45 + .byt $38, $41, $7c, $43, $fc, $43, $b8, $47 + .byt $3a, $15, $01, $1f, $41, $5e, $7b, $3f + .byt $45, $3d, $43, $7c, $f7, $7c, $ff, $7c + .byt $2f, $10, $00, $3f, $40, $7f, $3b, $44 + .byt $7f, $42, $7c, $03, $7c, $83, $38, $c7 + .byt $3f, $3f, $3f, $3f, $7f, $7f, $7f, $7f + .byt $7f, $7f, $7f, $7f, $ff, $ff, $ff, $ff + .byt $00, $7f, $00, $ff, $00, $ff, $06, $f9 + .byt $08, $fc, $06, $f4, $06, $e0, $00, $f0 + .byt $7f, $40, $ff, $80, $ff, $82, $ff, $00 + .byt $f2, $00, $fa, $02, $ee, $00, $ee, $00 + .byt $c0, $bf, $80, $7f, $82, $7d, $00, $ff + .byt $08, $ff, $06, $ff, $0e, $ff, $0e, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $fb, $fb, $f3, $f3, $f3, $f3 + .byt $00, $ff, $01, $fa, $00, $fe, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $bf + .byt $fa, $02, $fe, $02, $fe, $06, $ff, $03 + .byt $ff, $01, $ff, $81, $7f, $40, $3f, $00 + .byt $03, $ff, $03, $ff, $06, $f9, $03, $fc + .byt $01, $fe, $81, $7e, $40, $bf, $00, $ff + .byt $fe, $fe, $fe, $fe, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $84, $e2, $84, $00, $b8, $02, $02, $ba + .byt $00, $f6, $08, $ce, $00, $8e, $00, $8a + .byt $7e, $62, $fe, $02, $fe, $8e, $ce, $8e + .byt $f6, $e6, $c6, $ce, $8e, $86, $8a, $0a + .byt $fd, $ff, $fb, $ff, $f9, $ff, $bf, $75 + .byt $e9, $1f, $c9, $3f, $81, $7f, $0d, $f7 + .byt $67, $67, $07, $07, $8b, $8b, $cf, $cf + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $f9, $02, $f8, $03, $f8, $02, $fc + .byt $03, $fc, $03, $fc, $03, $fc, $02, $fd + .byt $fb, $00, $fa, $00, $fb, $00, $ff, $06 + .byt $ff, $04, $ff, $05, $ff, $05, $ff, $05 + .byt $00, $ff, $02, $ff, $02, $ff, $07, $fb + .byt $07, $fb, $07, $fb, $07, $fb, $07, $fb + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $fd, $00, $fe, $00, $fe, $00, $ff + .byt $00, $7f, $00, $ff, $80, $7f, $00, $7f + .byt $fd, $01, $fe, $02, $fe, $00, $ff, $81 + .byt $7f, $40, $7f, $40, $ff, $60, $ff, $60 + .byt $01, $fe, $02, $fd, $00, $ff, $81, $7e + .byt $40, $bf, $40, $bf, $60, $9f, $60, $9f + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $80, $ff, $80, $ff, $40, $ff, $30, $4f + .byt $78, $cf, $58, $2f, $70, $bf, $20, $cf + .byt $7f, $80, $7f, $80, $bf, $40, $3f, $08 + .byt $07, $10, $67, $1c, $ff, $b8, $8f, $08 + .byt $80, $ff, $80, $ff, $40, $ff, $08, $f7 + .byt $78, $ff, $2c, $fb, $a8, $57, $38, $f7 + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $8f, $8f, $ff, $ff, $ef, $ef, $ff, $ff + .byt $06, $f7, $04, $e7, $0c, $e7, $14, $ef + .byt $30, $cf, $20, $c7, $30, $97, $38, $8f + .byt $fd, $02, $eb, $04, $fb, $00, $fb, $28 + .byt $f7, $10, $ff, $2c, $97, $04, $c7, $00 + .byt $02, $ff, $0c, $ff, $04, $ff, $3c, $d7 + .byt $18, $ff, $24, $fb, $2c, $fb, $78, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $f7, $f7, $df, $df, $df, $df + .byt $00, $ff, $00, $f7, $10, $eb, $08, $eb + .byt $28, $cf, $30, $ee, $34, $eb, $20, $d9 + .byt $ff, $00, $ff, $14, $f3, $10, $d3, $02 + .byt $e1, $01, $d0, $00, $c4, $40, $fc, $78 + .byt $00, $ff, $14, $eb, $18, $ff, $1a, $fd + .byt $29, $ee, $38, $ff, $78, $bf, $78, $bf + .byt $ff, $ff, $ff, $ff, $f7, $f7, $e7, $e7 + .byt $e7, $e7, $c7, $c7, $c7, $c7, $ff, $ff + .byt $09, $e2, $01, $fe, $00, $ff, $00, $fd + .byt $00, $fe, $00, $fe, $00, $ff, $00, $ff + .byt $ed, $00, $fd, $01, $ff, $0f, $fd, $05 + .byt $fe, $02, $fe, $00, $ff, $81, $7f, $40 + .byt $07, $ff, $01, $ff, $0f, $f0, $05, $fa + .byt $02, $fd, $00, $ff, $81, $7e, $40, $bf + .byt $fc, $fc, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $99, $43, $cc, $05, $a9, $41, $0b, $e1 + .byt $1e, $21, $0c, $03, $1c, $01, $0c, $99 + .byt $26, $03, $39, $03, $ba, $0e, $be, $af + .byt $33, $1a, $03, $0e, $01, $0d, $99, $88 + .byt $ff, $ff, $fc, $ff, $7b, $fd, $bf, $71 + .byt $1a, $e5, $1c, $f3, $1f, $f2, $82, $7f + .byt $03, $03, $03, $03, $8f, $8f, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $f7, $f7 + .byt $80, $fe, $01, $fe, $01, $fe, $00, $ff + .byt $00, $ff, $00, $fe, $00, $fe, $00, $fe + .byt $7f, $80, $ff, $80, $ff, $80, $fe, $80 + .byt $fe, $00, $fe, $00, $fe, $00, $fe, $00 + .byt $80, $ff, $80, $7f, $80, $7f, $80, $7f + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $a0, $3f, $a0, $3f, $a0, $3f, $a0, $3f + .byt $e0, $7f, $a0, $7f, $20, $7f, $20, $7f + .byt $9f, $21, $9f, $21, $9f, $21, $9f, $21 + .byt $9f, $61, $df, $21, $df, $21, $df, $01 + .byt $e1, $fe, $e1, $fe, $e1, $fe, $e1, $fe + .byt $e1, $fe, $a1, $fe, $a1, $fe, $a1, $fe + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $90, $1f, $90, $1f, $90, $1f, $90, $1f + .byt $90, $3f, $90, $3f, $90, $3f, $90, $3f + .byt $ef, $b0, $ef, $b0, $ef, $b0, $ef, $b0 + .byt $ef, $b0, $ef, $30, $ef, $30, $ef, $30 + .byt $f0, $ff, $b0, $ff, $b0, $ff, $b0, $ff + .byt $90, $ff, $90, $ff, $90, $ff, $d0, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $40, $bc, $5c, $a0, $55, $a8, $5c, $a0 + .byt $5f, $a0, $39, $81, $3c, $81, $38, $80 + .byt $fe, $3c, $fe, $bc, $fe, $bc, $fe, $bd + .byt $fe, $b9, $fd, $b9, $fd, $b9, $fd, $39 + .byt $7e, $fe, $fc, $7f, $fd, $7f, $fc, $7f + .byt $fd, $7e, $fc, $7f, $fc, $7f, $7d, $ff + .byt $fe, $fe, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $fe, $fe, $ff, $ff, $ff, $ff + .byt $bc, $47, $98, $27, $40, $07, $f0, $0f + .byt $e0, $1f, $f0, $1f, $10, $ff, $10, $ff + .byt $93, $fa, $cf, $fc, $b7, $f4, $0f, $70 + .byt $1f, $f0, $ef, $e0, $ef, $f0, $ef, $f0 + .byt $06, $fd, $4c, $b3, $fc, $0b, $70, $8f + .byt $e0, $1f, $f0, $1f, $10, $ff, $10, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $10, $ef, $10, $e7, $08, $e3 + .byt $08, $c5, $20, $87, $38, $82, $28, $b7 + .byt $ff, $00, $f7, $00, $cf, $00, $fb, $20 + .byt $b9, $00, $f9, $01, $c8, $00, $d8, $10 + .byt $00, $ff, $00, $ff, $10, $ff, $30, $ff + .byt $30, $ff, $31, $fe, $78, $ff, $38, $ff + .byt $ff, $ff, $ff, $ff, $ef, $ef, $ef, $ef + .byt $cf, $cf, $cf, $cf, $cf, $cf, $df, $df + .byt $10, $e4, $00, $fd, $00, $ff, $00, $fd + .byt $00, $fd, $00, $fe, $00, $fe, $00, $7f + .byt $ff, $24, $fe, $04, $fe, $0e, $fd, $05 + .byt $fd, $05, $fe, $02, $fe, $00, $7f, $01 + .byt $27, $df, $05, $fb, $0e, $f1, $05, $fa + .byt $05, $fa, $02, $fd, $00, $ff, $01, $fe + .byt $fc, $fc, $fe, $fe, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $04, $08, $80, $10, $40, $00, $00, $e0 + .byt $10, $00, $00, $00, $00, $08, $04, $00 + .byt $f4, $00, $f8, $10, $e0, $00, $c0, $c0 + .byt $10, $00, $08, $00, $00, $00, $04, $00 + .byt $fc, $fc, $f8, $f8, $e0, $e0, $c0, $20 + .byt $00, $f0, $00, $f8, $00, $f8, $00, $fc + .byt $04, $04, $18, $18, $e0, $e0, $e0, $e0 + .byt $f0, $f0, $f8, $f8, $f8, $f8, $fc, $fc + .byt $01, $02, $07, $00, $07, $00, $0f, $08 + .byt $0f, $10, $0f, $10, $1f, $10, $1f, $10 + .byt $00, $02, $00, $04, $00, $08, $08, $00 + .byt $10, $00, $00, $00, $10, $00, $10, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $03, $00, $07, $00, $0f, $00, $0f, $00 + .byt $1f, $00, $1f, $00, $1f, $00, $1f, $00 + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $f0, $08, $f8, $00, $fc, $02, $fe, $0a + .byt $fe, $01, $ff, $00, $ff, $01, $ff, $00 + .byt $00, $08, $04, $04, $02, $00, $00, $08 + .byt $01, $00, $01, $01, $01, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $f8, $00, $fc, $00, $fe, $00, $fe, $00 + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $80 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $80, $80 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $80, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $88, $73, $80, $7b, $80, $2f, $c4, $07 + .byt $84, $47, $3c, $7f, $3c, $7f, $3c, $3f + .byt $fb, $78, $fb, $78, $bb, $38, $83, $00 + .byt $c3, $00, $c3, $40, $c3, $44, $83, $1c + .byt $0c, $f7, $04, $ff, $44, $ff, $7c, $ff + .byt $3c, $ff, $7c, $bf, $7c, $bf, $3c, $ff + .byt $ff, $ff, $ff, $ff, $ef, $ef, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $12, $ec, $16, $e9, $0f, $f0, $08, $e0 + .byt $00, $f0, $00, $f0, $08, $f0, $01, $f0 + .byt $f2, $00, $fe, $0c, $ef, $08, $ef, $00 + .byt $ff, $10, $ff, $10, $ff, $00, $f7, $00 + .byt $0e, $ff, $0e, $ff, $0e, $ff, $0e, $ff + .byt $1e, $ef, $14, $ef, $04, $ff, $00, $ff + .byt $f3, $f3, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $ff, $00, $ef, $00, $ff + .byt $00, $f7, $80, $63, $00, $43, $c0, $01 + .byt $3f, $20, $1f, $10, $0f, $00, $0f, $08 + .byt $07, $00, $83, $00, $83, $02, $c1, $00 + .byt $20, $df, $10, $ef, $00, $ff, $08, $f7 + .byt $00, $ff, $00, $ff, $02, $fd, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $04, $c3, $00, $c7, $00, $e7, $00, $f9 + .byt $02, $f7, $00, $ff, $00, $fd, $00, $fa + .byt $c3, $43, $c7, $03, $e7, $27, $f1, $11 + .byt $f1, $03, $fb, $09, $f9, $01, $f8, $00 + .byt $44, $bf, $00, $ff, $24, $db, $12, $ef + .byt $02, $ff, $08, $f7, $00, $ff, $01, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $02, $fd, $82, $fd, $82, $fd, $80, $fd + .byt $80, $fd, $80, $fd, $80, $fd, $80, $fd + .byt $ff, $05, $7f, $85, $7f, $85, $7f, $85 + .byt $7f, $85, $7f, $85, $7f, $85, $7f, $05 + .byt $07, $fb, $87, $fb, $87, $fb, $87, $fb + .byt $87, $fb, $87, $fb, $87, $fb, $87, $fb + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $80, $7f, $80, $7f, $b0, $3f, $80, $1f + .byt $80, $2f, $a8, $1f, $f8, $4f, $d8, $0f + .byt $ff, $40, $ff, $40, $8f, $90, $8f, $80 + .byt $af, $a0, $b7, $bc, $d7, $fc, $b7, $bc + .byt $c0, $bf, $c0, $bf, $b0, $ff, $b0, $ff + .byt $90, $ff, $ac, $db, $bc, $cb, $fc, $cb + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $10, $bf, $00, $df, $00, $ff, $00, $ff + .byt $00, $fe, $00, $ff, $00, $fe, $00, $fe + .byt $af, $10, $df, $40, $ff, $60, $ff, $01 + .byt $fe, $00, $fe, $00, $fe, $00, $fe, $00 + .byt $10, $ff, $40, $bf, $60, $9f, $01, $fe + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $28, $ef, $20, $9f, $f0, $0f, $f0, $ef + .byt $e0, $3f, $c0, $1f, $80, $bf, $40, $7f + .byt $87, $88, $7f, $30, $df, $34, $2f, $18 + .byt $5f, $60, $9f, $10, $ff, $c0, $3f, $40 + .byt $f8, $7f, $60, $ff, $e4, $fb, $f8, $c7 + .byt $e0, $df, $b0, $ef, $c0, $ff, $40, $ff + .byt $9f, $9f, $bf, $bf, $bf, $bf, $3f, $3f + .byt $3f, $3f, $ff, $ff, $ff, $ff, $ff, $ff + .byt $38, $c3, $18, $c3, $02, $c1, $20, $c1 + .byt $00, $e1, $01, $c0, $17, $e0, $07, $f0 + .byt $fc, $58, $fc, $40, $fe, $00, $fe, $00 + .byt $de, $00, $df, $00, $ff, $20, $ef, $00 + .byt $7c, $bf, $7c, $bf, $1c, $ff, $1c, $ff + .byt $10, $ff, $00, $ff, $20, $df, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $bf, $00, $ff, $00, $ff, $00, $ef + .byt $00, $0f, $00, $07, $00, $87, $80, $03 + .byt $3f, $00, $3f, $20, $1f, $10, $0f, $00 + .byt $0f, $08, $07, $00, $07, $04, $83, $00 + .byt $00, $ff, $20, $df, $10, $ef, $00, $ff + .byt $08, $f7, $00, $ff, $04, $fb, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $0e, $93, $06, $eb, $04, $c3, $04, $fb + .byt $00, $ff, $00, $f3, $04, $f7, $00, $f7 + .byt $99, $9c, $cd, $4e, $c7, $04, $ef, $24 + .byt $ef, $0c, $f3, $10, $f3, $04, $f7, $04 + .byt $9e, $63, $46, $bb, $0c, $fb, $24, $db + .byt $08, $f7, $14, $ef, $04, $ff, $04, $fb + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $ff, $01, $ff, $01, $ff, $00, $ff, $00 + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $01, $fe, $01, $fe, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $20, $7f, $00, $3f, $00, $3f, $c0, $7f + .byt $c0, $3f, $60, $bf, $20, $3f, $20, $bf + .byt $df, $41, $9f, $00, $9f, $00, $df, $40 + .byt $df, $00, $5f, $00, $5f, $20, $df, $a0 + .byt $e1, $be, $20, $ff, $20, $ff, $60, $ff + .byt $20, $ff, $20, $ff, $20, $ff, $a0, $7f + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $10, $1f, $10, $1f, $10, $1f, $40, $1f + .byt $60, $1f, $60, $0f, $c0, $2f, $c0, $2f + .byt $ef, $30, $cf, $00, $cf, $08, $cf, $00 + .byt $cf, $00, $cf, $00, $ef, $40, $ef, $60 + .byt $d0, $ff, $f0, $ff, $f8, $f7, $70, $ff + .byt $70, $ff, $70, $ff, $50, $ff, $70, $df + .byt $df, $df, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $38, $80, $3c, $82, $3c, $82, $7c, $80 + .byt $7c, $80, $3c, $c0, $3c, $c0, $3c, $82 + .byt $fd, $39, $fd, $29, $fd, $29, $fd, $29 + .byt $fd, $21, $bd, $21, $bd, $21, $bd, $01 + .byt $7d, $ff, $3d, $ff, $3d, $ff, $3d, $ff + .byt $3d, $ff, $3d, $ff, $3d, $ff, $3d, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $10, $ff, $10, $ff, $10, $ff, $10, $ff + .byt $10, $ff, $10, $ff, $00, $ff, $00, $ff + .byt $ef, $f0, $ef, $f0, $ef, $f0, $ef, $f0 + .byt $ef, $f0, $ef, $f0, $ff, $e0, $ff, $e0 + .byt $10, $ff, $10, $ff, $10, $ff, $10, $ff + .byt $10, $ff, $10, $ff, $00, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $38, $87, $74, $83, $20, $c3, $00, $82 + .byt $02, $c0, $22, $c1, $0e, $e1, $1f, $e0 + .byt $f8, $30, $fc, $00, $bc, $00, $bc, $00 + .byt $fe, $40, $fe, $00, $de, $00, $ff, $20 + .byt $38, $ff, $38, $ff, $38, $ff, $38, $ff + .byt $50, $bf, $00, $ff, $00, $ff, $20, $df + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $bf, $00, $ff, $00, $df + .byt $00, $2f, $00, $0f, $00, $07, $00, $87 + .byt $7f, $40, $3f, $00, $3f, $20, $1f, $10 + .byt $0f, $00, $0f, $08, $07, $00, $07, $04 + .byt $40, $bf, $00, $ff, $20, $df, $10, $ef + .byt $00, $ff, $08, $f7, $00, $ff, $04, $fb + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $84, $02, $84, $00, $ee, $01, $de + .byt $00, $df, $00, $ff, $01, $ee, $00, $ff + .byt $82, $80, $82, $80, $c1, $40, $c1, $00 + .byt $c0, $00, $e0, $00, $e1, $00, $f0, $00 + .byt $80, $7e, $80, $7e, $40, $bf, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $fe, $fe, $fe, $fe, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $0b, $06, $00, $01, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $80, $00, $c0, $40 + .byt $02, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $80, $00, $80, $00, $c0, $40 + .byt $18, $00, $01, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $80, $00, $80, $00, $80 + .byt $1f, $00, $01, $00, $00, $00, $00, $00 + .byt $00, $00, $80, $80, $80, $80, $c0, $80 + .byt $ff, $00, $ff, $80, $3f, $00, $1f, $20 + .byt $1f, $00, $0f, $08, $07, $08, $07, $04 + .byt $00, $00, $80, $00, $40, $00, $00, $20 + .byt $00, $10, $08, $00, $00, $00, $04, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $08, $00, $00, $00 + .byt $ff, $00, $ff, $00, $7f, $00, $3f, $00 + .byt $1f, $00, $0f, $00, $0f, $00, $07, $00 + .byt $ff, $00, $ff, $01, $ff, $01, $ff, $00 + .byt $fe, $01, $fe, $0a, $fe, $00, $fc, $04 + .byt $00, $00, $00, $00, $01, $00, $01, $01 + .byt $01, $00, $02, $08, $02, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $04, $00 + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $ff, $00, $fe, $00, $fe, $00, $fc, $00 + .byt $00, $80, $02, $06, $08, $00, $10, $10 + .byt $20, $00, $00, $60, $40, $60, $80, $00 + .byt $80, $80, $86, $07, $08, $0f, $08, $1f + .byt $10, $3f, $40, $3f, $40, $3f, $80, $7f + .byt $00, $01, $87, $00, $0f, $00, $1f, $00 + .byt $3f, $00, $7f, $00, $7f, $00, $ff, $00 + .byt $81, $00, $87, $00, $0f, $00, $1f, $00 + .byt $3f, $00, $7f, $00, $7f, $00, $ff, $00 + .byt $a8, $70, $02, $01, $00, $01, $01, $01 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $04, $00, $03, $fc, $00, $ff, $01, $fe + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $fc, $fc, $03, $ff, $00, $fe, $01 + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $fc, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $00, $00, $00, $00, $c0, $80, $00, $60 + .byt $10, $10, $10, $30, $00, $00, $08, $00 + .byt $00, $00, $00, $80, $80, $40, $00, $e0 + .byt $00, $f0, $10, $e0, $18, $f8, $08, $f8 + .byt $00, $00, $00, $80, $80, $40, $c0, $20 + .byt $e0, $10, $f0, $00, $f0, $08, $f0, $08 + .byt $00, $00, $80, $00, $c0, $00, $e0, $00 + .byt $f0, $00, $f0, $00, $f8, $00, $f8, $00 + .byt $3c, $7f, $40, $3f, $00, $3f, $00, $3f + .byt $20, $1f, $00, $0f, $30, $0f, $10, $07 + .byt $83, $3c, $7f, $00, $7f, $20, $5f, $00 + .byt $7f, $01, $2f, $07, $3f, $1f, $07, $07 + .byt $3c, $ff, $00, $7f, $20, $5f, $00, $7f + .byt $01, $7e, $07, $38, $3f, $30, $17, $18 + .byt $ff, $ff, $7f, $7f, $7f, $7f, $7f, $7f + .byt $7f, $7f, $3f, $3f, $1f, $1f, $0f, $0f + .byt $07, $f8, $07, $f8, $02, $f9, $00, $ff + .byt $00, $fd, $00, $fe, $00, $ff, $00, $7f + .byt $ff, $08, $ff, $00, $fa, $00, $fc, $04 + .byt $fc, $00, $fe, $02, $ff, $81, $7f, $40 + .byt $08, $f7, $00, $ff, $00, $ff, $04, $fb + .byt $00, $ff, $02, $fd, $81, $7e, $40, $bf + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $c0, $21, $e0, $01, $20, $c1, $00, $f7 + .byt $00, $d7, $00, $07, $00, $1f, $00, $3f + .byt $c1, $01, $e1, $01, $21, $01, $07, $07 + .byt $07, $07, $07, $07, $1f, $1f, $3f, $38 + .byt $01, $fe, $01, $fe, $01, $fe, $07, $f8 + .byt $07, $f8, $07, $f8, $1f, $e0, $38, $c7 + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $fd, $00, $fe, $00, $fe + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $fd, $04, $fd, $01, $fe, $82, $fe, $80 + .byt $ff, $81, $ff, $c0, $ff, $00, $ff, $00 + .byt $04, $fb, $01, $fe, $82, $7d, $80, $7f + .byt $81, $7e, $c0, $3f, $00, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $80, $fd, $82, $fd, $83, $fd, $03, $fd + .byt $02, $fd, $03, $fc, $02, $fc, $02, $fd + .byt $7f, $05, $7f, $05, $7e, $80, $fe, $00 + .byt $ff, $01, $ff, $05, $ff, $04, $ff, $05 + .byt $87, $fb, $87, $fb, $83, $ff, $03, $ff + .byt $03, $ff, $07, $fb, $07, $fb, $06, $fb + .byt $ff, $ff, $ff, $ff, $fe, $fe, $fe, $fe + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $fe + .byt $b0, $0f, $60, $0f, $20, $4f, $c0, $5f + .byt $a0, $df, $c0, $7f, $c0, $bf, $81, $fe + .byt $9f, $f0, $af, $38, $af, $68, $bf, $60 + .byt $3f, $f0, $3f, $c0, $3f, $e1, $7f, $a0 + .byt $90, $ef, $88, $f7, $18, $f7, $e0, $1f + .byt $70, $8f, $c0, $3f, $e1, $1e, $a0, $5f + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $df, $00, $ff, $00, $bf, $40, $9f + .byt $40, $ff, $40, $3f, $20, $ff, $80, $7f + .byt $df, $41, $9f, $00, $df, $00, $df, $40 + .byt $3f, $20, $bf, $00, $1f, $00, $df, $40 + .byt $41, $be, $00, $ff, $00, $ff, $40, $ff + .byt $60, $df, $c0, $ff, $e0, $ff, $e0, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $bf, $bf, $bf, $bf, $3f, $3f, $7f, $7f + .byt $00, $7f, $00, $ff, $00, $ff, $02, $f9 + .byt $03, $f9, $06, $f9, $00, $ff, $04, $ff + .byt $7f, $00, $ff, $80, $ff, $00, $fb, $00 + .byt $fe, $01, $ff, $06, $ff, $06, $fb, $0b + .byt $00, $ff, $80, $7f, $00, $ff, $00, $ff + .byt $03, $ff, $06, $ff, $06, $ff, $0f, $f6 + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $fb, $fb + .byt $0f, $e0, $04, $fb, $00, $f7, $00, $fe + .byt $00, $f8, $00, $fc, $00, $ff, $00, $ff + .byt $ef, $00, $f4, $10, $f0, $00, $f8, $08 + .byt $f8, $00, $fc, $00, $ff, $03, $ff, $81 + .byt $00, $ff, $10, $ef, $00, $ff, $08, $f7 + .byt $00, $ff, $00, $ff, $03, $fc, $81, $7e + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $80, $47, $00, $cf, $00, $df, $00, $1f + .byt $00, $3f, $00, $ff, $00, $ff, $00, $ff + .byt $87, $06, $0f, $0e, $1f, $1f, $1f, $1f + .byt $3f, $3f, $ff, $f8, $ff, $e0, $ff, $c0 + .byt $06, $f9, $0e, $f1, $1f, $e0, $1f, $e0 + .byt $3f, $c0, $f8, $07, $e0, $1f, $c0, $3f + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $fb, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $fb, $08, $ff, $04, $ff, $00, $ff, $00 + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $08, $f7, $04, $fb, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ef + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $ff, $00, $ff, $00, $ff, $18, $ef, $08 + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $18, $e7, $08, $f7 + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $bf, $40, $bf, $50, $bf, $50, $9f + .byt $10, $df, $10, $df, $10, $bf, $00, $bf + .byt $ff, $80, $ff, $80, $ef, $30, $cf, $10 + .byt $8f, $10, $8f, $10, $8f, $10, $9f, $00 + .byt $80, $7f, $80, $7f, $30, $df, $10, $ff + .byt $10, $ff, $10, $ff, $10, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $40, $af, $40, $8f, $60, $af, $60, $8f + .byt $68, $0f, $48, $1f, $58, $1f, $78, $1f + .byt $6f, $60, $4f, $40, $6f, $60, $6f, $40 + .byt $67, $48, $67, $48, $67, $40, $67, $50 + .byt $70, $df, $50, $ff, $70, $ff, $50, $ff + .byt $58, $ff, $58, $ff, $78, $ff, $78, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $3c, $82, $1e, $c3, $16, $c1, $16, $c1 + .byt $36, $c0, $00, $e0, $00, $c0, $01, $e0 + .byt $bd, $01, $ff, $43, $ff, $41, $ff, $01 + .byt $fe, $00, $de, $00, $de, $00, $fe, $20 + .byt $3d, $ff, $7e, $bf, $5c, $bf, $1c, $ff + .byt $1d, $ff, $1d, $ff, $1d, $ff, $2d, $df + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $10, $7f, $10, $7f, $10, $ff + .byt $ff, $e0, $ff, $e0, $ff, $e0, $ff, $e0 + .byt $ff, $e0, $ef, $f0, $ef, $f0, $ef, $f0 + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $90, $ff, $90, $ff, $10, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $0d, $f2, $08, $e7, $00, $ff, $00, $f4 + .byt $00, $f8, $00, $fd, $00, $ff, $00, $ff + .byt $ed, $20, $e8, $00, $f0, $10, $f0, $00 + .byt $f8, $08, $fd, $05, $ff, $03, $ff, $01 + .byt $20, $df, $00, $ff, $10, $ef, $00, $ff + .byt $08, $f7, $05, $fa, $03, $fc, $01, $fe + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $87, $00, $9f, $00, $ff, $00, $1f + .byt $00, $3f, $00, $ff, $00, $ff, $00, $ff + .byt $07, $04, $1f, $1e, $3f, $3e, $1f, $1e + .byt $3f, $3e, $ff, $e8, $ff, $c0, $ff, $80 + .byt $04, $fb, $1e, $e1, $3e, $c1, $1e, $e1 + .byt $3e, $c1, $e8, $17, $c0, $3f, $80, $7f + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $07, $f0, $07, $f8, $03, $fc, $01, $f8 + .byt $02, $fc, $02, $fc, $00, $fe, $00, $fc + .byt $f7, $00, $ff, $08, $fb, $00, $fb, $00 + .byt $ff, $04, $ff, $00, $fd, $00, $fd, $00 + .byt $00, $ff, $08, $f7, $00, $ff, $00, $ff + .byt $04, $fb, $00, $ff, $00, $ff, $01, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $f4, $62, $81, $1d, $fe, $1f, $9f, $7f + .byt $2f, $2f, $1f, $2f, $0f, $3f, $1f, $1f + .byt $c0, $50, $a2, $1e, $a0, $1f, $a0, $1f + .byt $f0, $1f, $d0, $1f, $d0, $1f, $d0, $3f + .byt $30, $f0, $7f, $ff, $7f, $ff, $7f, $ff + .byt $3f, $ff, $3f, $ff, $3f, $ff, $3f, $ff + .byt $f0, $8e, $ff, $80, $ff, $80, $ff, $80 + .byt $ff, $c0, $ff, $c0, $ff, $c0, $ff, $c0 + .byt $07, $00, $83, $80, $63, $e4, $80, $e0 + .byt $c0, $e8, $e8, $f8, $e0, $f0, $d0, $e0 + .byt $00, $04, $84, $80, $00, $87, $10, $e0 + .byt $18, $e0, $08, $f0, $00, $f8, $10, $e0 + .byt $00, $00, $00, $80, $c0, $c0, $e0, $e0 + .byt $f0, $f0, $f0, $f0, $f0, $f0, $e0, $e0 + .byt $03, $04, $87, $00, $c0, $27, $e0, $10 + .byt $f0, $08, $f0, $08, $f0, $08, $e0, $10 + .byt $f8, $08, $e0, $10, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $10, $30, $80, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $08, $00, $10, $10, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $f8, $00, $c0, $20, $c0, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $80, $80, $00, $00, $60, $a8, $18, $2a + .byt $05, $03, $00, $00, $00, $00, $00, $00 + .byt $00, $ff, $80, $ff, $e0, $df, $38, $2b + .byt $00, $00, $01, $00, $00, $00, $00, $00 + .byt $7f, $00, $7f, $00, $bf, $00, $17, $00 + .byt $07, $00, $01, $00, $00, $00, $00, $00 + .byt $7f, $80, $7f, $80, $bf, $40, $13, $2c + .byt $00, $07, $00, $01, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $80, $80, $40, $00, $60 + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $80, $7f, $40, $3f + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $ff, $00, $ff, $00, $ff, $00, $7f, $00 + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $ff, $00, $ff, $00, $7f, $80, $3f, $40 + .byt $08, $08, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $08, $08, $38, $38, $00, $00 + .byt $08, $f0, $00, $f8, $00, $f8, $00, $f8 + .byt $00, $f8, $08, $f0, $28, $c0, $10, $f0 + .byt $f0, $08, $f8, $00, $f8, $00, $f8, $00 + .byt $f8, $00, $f0, $08, $d8, $20, $f0, $00 + .byt $f8, $00, $f8, $00, $f8, $00, $f8, $00 + .byt $f8, $00, $f8, $00, $e0, $18, $f0, $00 + .byt $00, $06, $10, $08, $04, $00, $08, $06 + .byt $02, $01, $02, $00, $01, $01, $00, $00 + .byt $1e, $06, $10, $00, $0c, $00, $08, $00 + .byt $06, $02, $01, $00, $02, $00, $01, $00 + .byt $1e, $19, $18, $1f, $0c, $0f, $0c, $0f + .byt $06, $07, $02, $03, $03, $03, $01, $01 + .byt $0f, $0f, $07, $07, $07, $07, $03, $03 + .byt $03, $03, $01, $01, $00, $00, $00, $00 + .byt $00, $7f, $00, $3f, $00, $1f, $00, $6f + .byt $00, $ff, $10, $ef, $38, $c7, $f8, $03 + .byt $7f, $40, $3f, $20, $1f, $00, $0f, $00 + .byt $0f, $08, $17, $04, $3b, $00, $fd, $80 + .byt $40, $bf, $20, $df, $00, $ff, $00, $ff + .byt $08, $f7, $04, $fb, $00, $ff, $80, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $ff, $03, $ff, $07, $ff + .byt $07, $ff, $04, $fe, $02, $fe, $00, $ff + .byt $ff, $f0, $ff, $60, $fc, $03, $f8, $06 + .byt $f8, $00, $f8, $04, $fc, $02, $ff, $00 + .byt $f0, $0f, $60, $9f, $03, $ff, $07, $ff + .byt $07, $ff, $07, $ff, $03, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $ff, $60, $ff, $e0, $ff + .byt $70, $ff, $10, $3f, $10, $1f, $00, $6f + .byt $ff, $00, $ff, $00, $9f, $60, $1f, $60 + .byt $0f, $10, $0f, $10, $0f, $00, $6f, $60 + .byt $00, $ff, $00, $ff, $60, $ff, $e0, $ff + .byt $f0, $ff, $f0, $ff, $f0, $ff, $90, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $03, $fd, $03, $fc, $03, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $fe, $04, $fe, $04, $fe, $04, $ff, $00 + .byt $ff, $00, $ff, $00, $ff, $00, $ff, $00 + .byt $06, $fb, $04, $fb, $05, $fb, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $81, $7f, $01, $fc, $01, $fe, $06, $f8 + .byt $00, $f8, $0c, $f8, $18, $e0, $00, $e0 + .byt $fe, $c2, $ff, $00, $fd, $84, $ff, $00 + .byt $f7, $00, $f7, $10, $ff, $00, $df, $00 + .byt $c3, $3d, $01, $ff, $87, $7b, $07, $ff + .byt $07, $ff, $1f, $ef, $1f, $ff, $1f, $ff + .byt $fe, $fe, $fe, $fe, $fc, $fc, $fc, $fc + .byt $f8, $f8, $f0, $f0, $f0, $f0, $e0, $e0 + .byt $d0, $3f, $10, $1f, $50, $1f, $90, $1f + .byt $10, $ff, $50, $ff, $98, $3f, $a8, $3f + .byt $cf, $10, $cf, $10, $cf, $10, $0f, $10 + .byt $4f, $10, $8f, $80, $87, $08, $c7, $48 + .byt $f0, $ff, $b0, $ff, $b0, $ff, $b0, $ff + .byt $b0, $ff, $f0, $ff, $f8, $ff, $38, $ff + .byt $7f, $7f, $7f, $7f, $7f, $7f, $7f, $7f + .byt $7f, $7f, $ff, $ff, $ff, $ff, $bf, $bf + .byt $06, $f7, $03, $fe, $08, $f6, $09, $f6 + .byt $04, $f3, $0c, $f3, $07, $f8, $04, $f8 + .byt $f0, $00, $f1, $00, $f9, $00, $f9, $01 + .byt $f9, $01, $f8, $00, $fc, $18, $f7, $10 + .byt $06, $ff, $06, $ff, $07, $ff, $07, $ff + .byt $07, $ff, $0f, $ff, $1f, $ef, $1f, $ef + .byt $f9, $f9, $f9, $f9, $f9, $f9, $f9, $f9 + .byt $f9, $f9, $f8, $f8, $f8, $f8, $f0, $f0 + .byt $00, $ff, $00, $7f, $00, $7f, $00, $ff + .byt $a0, $5f, $30, $4f, $b0, $47, $f0, $83 + .byt $ff, $80, $7f, $40, $3f, $20, $1f, $00 + .byt $af, $00, $b7, $00, $bb, $80, $7d, $00 + .byt $80, $7f, $40, $bf, $20, $df, $00, $ff + .byt $00, $ff, $00, $ff, $80, $ff, $80, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $7f, $7f + .byt $04, $ff, $0f, $ff, $1f, $ff, $1c, $fd + .byt $08, $f8, $04, $fc, $00, $fe, $00, $ff + .byt $fb, $04, $f0, $0b, $e0, $18, $e0, $10 + .byt $f0, $08, $f8, $04, $fe, $00, $ff, $00 + .byt $04, $ff, $0f, $ff, $1f, $ff, $1f, $ff + .byt $0f, $ff, $07, $ff, $01, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $80, $ff, $c0, $ff, $c0, $ff + .byt $00, $7f, $20, $3f, $20, $ff, $00, $df + .byt $ff, $00, $7f, $80, $3f, $c0, $3f, $00 + .byt $3f, $00, $1f, $20, $df, $c0, $5f, $40 + .byt $00, $ff, $80, $ff, $c0, $ff, $c0, $ff + .byt $c0, $ff, $e0, $ff, $20, $ff, $a0, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $e7, $00, $e7, $00, $e7 + .byt $00, $e7, $00, $e7, $00, $e7, $00, $e7 + .byt $ff, $18, $e7, $00, $e7, $00, $e7, $00 + .byt $e7, $00, $e7, $00, $e7, $00, $e7, $00 + .byt $18, $e7, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $bf, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $df, $00, $ff, $00, $ff + .byt $9f, $00, $df, $40, $df, $40, $df, $40 + .byt $df, $40, $df, $00, $ff, $20, $ff, $20 + .byt $00, $ff, $40, $bf, $40, $bf, $40, $bf + .byt $40, $bf, $00, $ff, $20, $df, $20, $df + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $60, $1f, $60, $1f, $08, $6f, $08, $7f + .byt $60, $6f, $60, $ef, $b0, $6f, $40, $35 + .byt $77, $60, $77, $70, $67, $60, $67, $68 + .byt $1f, $00, $1f, $06, $9f, $0e, $95, $15 + .byt $68, $ff, $78, $ef, $68, $ff, $68, $ff + .byt $60, $ff, $76, $f9, $7e, $f1, $75, $fa + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $9f, $9f, $9f, $9f, $9f, $9f, $9f, $9f + .byt $10, $e1, $06, $f1, $0e, $f0, $00, $fe + .byt $00, $fc, $00, $f9, $00, $ff, $00, $ff + .byt $ff, $00, $ef, $01, $fe, $10, $f0, $00 + .byt $f8, $08, $f9, $01, $ff, $07, $ff, $00 + .byt $00, $ff, $01, $fe, $10, $ef, $00, $ff + .byt $08, $f7, $01, $fe, $07, $f8, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $df, $00, $df, $10, $7f + .byt $90, $ff, $10, $ff, $30, $df, $30, $df + .byt $ff, $e0, $df, $c8, $df, $c0, $6f, $70 + .byt $6f, $60, $ef, $60, $ef, $60, $ef, $60 + .byt $00, $ff, $28, $f7, $20, $ff, $90, $ff + .byt $90, $ff, $10, $ff, $30, $df, $30, $df + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $40, $9f + .byt $00, $9f, $20, $9f, $08, $a7, $24, $a3 + .byt $ff, $00, $ff, $00, $bf, $00, $df, $80 + .byt $ff, $00, $ef, $20, $ff, $24, $df, $02 + .byt $00, $ff, $00, $ff, $00, $ff, $80, $7f + .byt $20, $ff, $20, $ff, $64, $fb, $72, $fd + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $df, $df + .byt $08, $ff, $1f, $ff, $3f, $ff, $19, $fd + .byt $00, $f8, $00, $f8, $02, $ff, $01, $ff + .byt $f7, $08, $e0, $13, $c0, $31, $e0, $00 + .byt $f0, $00, $f8, $00, $fd, $01, $fe, $01 + .byt $08, $ff, $1f, $ff, $3f, $ff, $1f, $ff + .byt $0f, $ff, $07, $ff, $02, $ff, $01, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $fe, $80, $fe, $81, $fe, $81, $fe + .byt $40, $ff, $40, $7e, $00, $be, $00, $fe + .byt $ff, $02, $7f, $80, $7f, $80, $7f, $00 + .byt $3e, $40, $3e, $00, $be, $80, $fe, $c0 + .byt $02, $fd, $80, $ff, $80, $ff, $80, $ff + .byt $c0, $ff, $c0, $ff, $40, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $07, $07, $18, $07, $8d, $0b, $80, $10 + .byt $f8, $08, $f8, $08, $f8, $08, $08, $f8 + .byt $e8, $17, $e8, $17, $e7, $1f, $e8, $18 + .byt $f0, $00, $f0, $90, $f0, $f0, $f0, $f0 + .byt $ff, $ef, $ff, $ef, $ff, $f0, $f8, $e0 + .byt $f8, $f8, $f8, $f8, $f8, $f8, $f8, $f8 + .byt $ef, $f0, $ef, $f0, $f0, $ef, $e0, $f8 + .byt $f0, $f0, $f0, $f0, $f0, $f0, $f0, $f0 + .byt $00, $c0, $40, $00, $00, $00, $02, $06 + .byt $18, $17, $20, $18, $00, $70, $40, $60 + .byt $20, $c0, $00, $00, $00, $00, $01, $07 + .byt $17, $08, $38, $07, $30, $0f, $20, $1f + .byt $c0, $e0, $00, $c0, $00, $00, $00, $07 + .byt $00, $1f, $00, $3f, $00, $7f, $00, $7f + .byt $c0, $20, $00, $c0, $00, $00, $00, $07 + .byt $00, $1f, $00, $3f, $00, $7f, $00, $7f + .byt $00, $00, $00, $00, $ac, $61, $00, $7b + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $e0, $e0, $7b, $84 + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $00, $00, $00, $1f, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $00, $00, $00, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $00, $00, $00, $a0, $80, $08, $d8 + .byt $04, $1a, $00, $06, $00, $01, $00, $00 + .byt $00, $00, $00, $00, $60, $00, $d8, $24 + .byt $18, $e6, $07, $f9, $01, $fe, $00, $ff + .byt $00, $00, $00, $00, $e0, $e0, $1c, $fc + .byt $06, $fe, $00, $ff, $00, $ff, $00, $ff + .byt $00, $00, $00, $00, $00, $e0, $00, $fc + .byt $00, $fe, $00, $ff, $00, $ff, $00, $ff + .byt $00, $00, $20, $00, $00, $20, $20, $20 + .byt $02, $01, $00, $00, $80, $80, $00, $c0 + .byt $40, $7f, $20, $3f, $20, $3f, $20, $3f + .byt $00, $0c, $00, $80, $00, $80, $80, $00 + .byt $7f, $40, $3f, $20, $3f, $20, $3f, $20 + .byt $1c, $00, $80, $80, $80, $80, $00, $c0 + .byt $3f, $40, $1f, $20, $1f, $20, $1f, $20 + .byt $0f, $13, $08, $88, $00, $80, $00, $c0 + .byt $10, $00, $30, $00, $40, $c0, $80, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $30, $f0, $30, $c0, $20, $80, $80, $80 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $f0, $10, $c0, $20, $80, $00, $80, $80 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $e0, $10, $f0, $10, $e0, $60, $40, $c0 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $78, $01, $50, $00, $20, $00, $00, $10 + .byt $0c, $00, $06, $00, $03, $00, $00, $00 + .byt $fe, $00, $3f, $00, $5f, $00, $3f, $00 + .byt $17, $00, $03, $00, $01, $01, $01, $00 + .byt $c0, $ff, $61, $7f, $71, $7f, $29, $2f + .byt $1f, $1f, $07, $07, $03, $03, $01, $01 + .byt $7f, $7f, $3f, $3f, $1f, $1f, $1f, $1f + .byt $07, $07, $03, $03, $01, $01, $00, $00 + .byt $00, $ff, $80, $7f, $40, $3f, $00, $0f + .byt $38, $07, $38, $01, $be, $00, $fe, $81 + .byt $ff, $00, $ff, $00, $ff, $20, $ef, $00 + .byt $ff, $00, $fd, $08, $ff, $06, $7f, $0f + .byt $00, $ff, $00, $ff, $a0, $df, $e0, $ff + .byt $f0, $ff, $fc, $ff, $fe, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $7f, $7f + .byt $00, $ff, $20, $ef, $00, $ff, $00, $ff + .byt $00, $ff, $01, $ff, $66, $fe, $60, $89 + .byt $bf, $30, $cf, $20, $ff, $00, $ff, $00 + .byt $ff, $00, $fe, $01, $98, $e6, $ea, $88 + .byt $40, $ff, $30, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $01, $ff, $e6, $7f, $cb, $f7 + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $fe, $fe + .byt $00, $ff, $00, $ff, $3b, $fc, $18, $c4 + .byt $58, $80, $40, $80, $c0, $80, $00, $00 + .byt $ff, $00, $ff, $00, $c7, $3d, $bf, $04 + .byt $df, $40, $3f, $00, $7f, $00, $ff, $00 + .byt $00, $ff, $00, $ff, $3d, $fb, $07, $ff + .byt $5f, $df, $7f, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $fc, $fc + .byt $c0, $c0, $80, $80, $00, $00, $00, $00 + .byt $90, $e0, $41, $40, $02, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $5f, $c0, $3e, $00, $fe, $00, $fd, $00 + .byt $fd, $00, $f8, $00, $e0, $00, $80, $00 + .byt $ff, $bf, $7f, $ff, $fe, $fe, $fd, $fd + .byt $fd, $fd, $f8, $f8, $e0, $e0, $80, $80 + .byt $c0, $c0, $80, $80, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $0f, $00, $7f, $10, $ff, $c9, $7e + .byt $b9, $fc, $83, $78, $40, $60, $60, $00 + .byt $c7, $40, $ff, $70, $e7, $c0, $87, $c2 + .byt $46, $0c, $3d, $38, $ef, $20, $3f, $00 + .byt $78, $ff, $70, $8f, $d8, $bf, $fa, $fd + .byt $bf, $fb, $bf, $c7, $af, $9f, $5f, $7f + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $7e, $7e, $7c, $7c, $78, $78, $30, $30 + .byt $00, $f0, $08, $e0, $58, $e0, $48, $30 + .byt $e0, $00, $00, $00, $00, $00, $00, $00 + .byt $ef, $00, $ff, $00, $bf, $50, $cf, $00 + .byt $1f, $00, $ff, $00, $fe, $00, $fc, $00 + .byt $0f, $ff, $0f, $ff, $5f, $ff, $9f, $ff + .byt $ff, $ff, $ff, $ff, $fe, $fe, $fc, $fc + .byt $f0, $f0, $f0, $f0, $f0, $f0, $e0, $e0 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $e1, $00, $40, $00, $00, $20, $00, $10 + .byt $0e, $00, $05, $02, $01, $01, $00, $00 + .byt $7f, $00, $bf, $00, $9f, $00, $af, $00 + .byt $97, $00, $0b, $02, $02, $00, $01, $00 + .byt $c2, $ff, $c3, $ff, $b7, $bf, $bf, $bf + .byt $9f, $9f, $0f, $0f, $03, $03, $01, $01 + .byt $7f, $7f, $3f, $3f, $1f, $1f, $0f, $0f + .byt $07, $07, $03, $03, $00, $00, $00, $00 + .byt $00, $ff, $00, $7f, $80, $1f, $f0, $0f + .byt $f0, $07, $fe, $00, $fb, $06, $b8, $46 + .byt $ff, $00, $ff, $40, $df, $00, $ff, $00 + .byt $fb, $10, $fe, $1c, $fc, $1c, $7d, $7c + .byt $00, $ff, $40, $bf, $c0, $ff, $e0, $ff + .byt $f8, $ff, $fe, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $fc, $fc, $7c, $7c + .byt $60, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $fe, $8b, $18, $03 + .byt $9f, $60, $ff, $00, $ff, $00, $ff, $00 + .byt $ff, $00, $ff, $04, $75, $52, $ff, $0c + .byt $60, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $04, $fb, $fa, $ff, $f8, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $77, $77, $0b, $0b + .byt $00, $e7, $00, $e7, $00, $e7, $00, $f7 + .byt $00, $ef, $00, $ff, $00, $ff, $00, $ff + .byt $e7, $00, $e7, $00, $e7, $00, $e7, $00 + .byt $e7, $00, $e7, $00, $e7, $00, $e7, $00 + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $fe, $00, $ff, $00, $fe, $03, $fc + .byt $ff, $20, $ff, $20, $ff, $01, $fe, $00 + .byt $ff, $00, $ff, $01, $fd, $00, $ff, $02 + .byt $20, $df, $20, $df, $01, $fe, $00, $ff + .byt $01, $ff, $01, $ff, $01, $ff, $03, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $fe, $fe, $fe, $fe + .byt $a0, $1c, $40, $85, $08, $87, $80, $0b + .byt $04, $0b, $81, $06, $01, $00, $02, $00 + .byt $c4, $04, $fc, $84, $7c, $04, $78, $08 + .byt $fc, $00, $fd, $04, $ff, $00, $f1, $00 + .byt $f4, $fb, $f4, $fb, $fc, $fb, $f8, $ff + .byt $f0, $f7, $fc, $ff, $fe, $ff, $f3, $f3 + .byt $8f, $8f, $8f, $8f, $0f, $0f, $0f, $0f + .byt $0f, $0f, $07, $07, $03, $03, $01, $01 + .byt $00, $ff, $00, $7f, $00, $ff, $00, $ff + .byt $e0, $1f, $d0, $0f, $80, $03, $0c, $01 + .byt $ff, $00, $7f, $00, $7f, $40, $3f, $20 + .byt $ff, $00, $ff, $08, $fb, $00, $ff, $01 + .byt $00, $ff, $00, $ff, $40, $bf, $20, $df + .byt $00, $ff, $08, $f7, $10, $ff, $3d, $fe + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $b0, $9f, $b0, $df, $40, $ff, $00, $ff + .byt $00, $ff, $01, $fe, $04, $fd, $74, $fa + .byt $0f, $b8, $4f, $f0, $bf, $20, $ff, $00 + .byt $ff, $00, $ff, $00, $f8, $04, $8d, $70 + .byt $f8, $d7, $b0, $df, $40, $ff, $00, $ff + .byt $00, $ff, $00, $ff, $05, $ff, $73, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $fe, $fe, $fc, $fc + .byt $50, $a1, $40, $d0, $41, $08, $40, $08 + .byt $4d, $80, $05, $00, $01, $02, $01, $00 + .byt $df, $51, $af, $80, $3f, $08, $f7, $00 + .byt $f7, $80, $fb, $00, $fb, $01, $f8, $00 + .byt $75, $fe, $fb, $7f, $7b, $ff, $7f, $ff + .byt $ff, $ff, $ff, $ff, $f9, $f9, $f9, $f9 + .byt $df, $df, $8f, $8f, $8f, $8f, $87, $87 + .byt $87, $87, $03, $03, $03, $03, $00, $00 + .byt $00, $ff, $00, $7f, $c0, $3f, $c0, $0f + .byt $fa, $07, $fe, $01, $ff, $04, $f6, $8c + .byt $ff, $00, $7f, $00, $ff, $00, $ef, $00 + .byt $fd, $36, $ff, $3c, $f8, $78, $79, $78 + .byt $00, $ff, $00, $ff, $80, $ff, $e0, $ff + .byt $f6, $fb, $fc, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $f8, $f8, $78, $78 + .byt $40, $ff, $00, $fe, $01, $fe, $01, $fc + .byt $01, $fe, $06, $f8, $78, $80, $00, $00 + .byt $be, $00, $ff, $00, $ff, $01, $fc, $00 + .byt $ff, $02, $ff, $0c, $f7, $90, $ff, $00 + .byt $40, $ff, $00, $ff, $01, $ff, $01, $ff + .byt $03, $ff, $0f, $f7, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $fe, $fe + .byt $fe, $fe, $fc, $fc, $f0, $f0, $00, $00 + .byt $70, $f8, $78, $00, $80, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $80, $00, $f8, $00, $f8, $00 + .byt $f8, $00, $f0, $00, $e0, $00, $e0, $00 + .byt $f8, $f8, $f8, $f8, $f8, $f8, $f8, $f8 + .byt $f8, $f8, $f0, $f0, $e0, $e0, $e0, $e0 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $20, $40, $20, $10, $30, $18, $16 + .byt $04, $05, $01, $00, $00, $00, $00, $00 + .byt $20, $5f, $20, $5f, $00, $3f, $06, $19 + .byt $0b, $0e, $01, $01, $00, $00, $00, $00 + .byt $00, $3f, $00, $3f, $00, $0f, $08, $1f + .byt $00, $07, $00, $00, $00, $00, $00, $00 + .byt $40, $7f, $40, $7f, $30, $3f, $00, $1f + .byt $08, $0f, $01, $01, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $e1, $8c, $9e, $00, $00, $00, $00 + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $e1, $1e, $bf, $ff, $00, $00, $00, $00 + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $00, $a1, $00, $00, $00, $00 + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $00, $ff, $5e, $ff, $00, $00, $00, $00 + .byt $00, $00, $00, $01, $00, $03, $02, $0f + .byt $00, $e8, $70, $e0, $00, $00, $00, $00 + .byt $00, $ff, $01, $fe, $03, $fc, $0c, $f3 + .byt $e8, $10, $90, $50, $00, $00, $00, $00 + .byt $00, $ff, $00, $ff, $00, $ff, $02, $ff + .byt $0c, $f8, $a0, $f0, $00, $00, $00, $00 + .byt $00, $ff, $00, $ff, $00, $ff, $00, $ff + .byt $04, $fc, $00, $f0, $00, $00, $00, $00 + .byt $c0, $80, $40, $00, $80, $80, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $40, $80, $00, $80, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $40, $40, $80, $80, $80, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $80, $c0, $40, $c0, $00, $80, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $3e, $41, $3d, $13, $0c, $07, $03, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $bf, $3f, $4e, $0e, $12, $02, $04, $00 + .byt $01, $00, $00, $00, $00, $00, $00, $00 + .byt $ff, $ff, $7f, $7f, $1f, $1f, $07, $07 + .byt $01, $01, $00, $00, $00, $00, $00, $00 + .byt $3f, $3f, $0e, $0e, $02, $02, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $4a, $9c, $80, $00, $80, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $63, $00, $7f, $00, $7f, $00, $ff, $00 + .byt $ff, $00, $3c, $00, $00, $00, $00, $00 + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $3c, $3c, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $fe, $00, $f8, $00, $f0, $00, $e0, $00 + .byt $80, $00, $00, $00, $00, $00, $00, $00 + .byt $fe, $fe, $f8, $f8, $f0, $f0, $e0, $e0 + .byt $80, $80, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $18, $20, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $4f, $00, $1f, $00, $01, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $7f, $7f, $1f, $1f, $01, $01, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $f8, $00, $e0, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $f8, $f8, $e0, $e0, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $04, $3e, $16, $0c, $04, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $59, $18, $21, $00, $0b, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $7f, $5f, $3f, $37, $0f, $0f, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $38, $38, $08, $08, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $38, $1f, $10, $33, $e0, $4b, $c0, $1b + .byt $c0, $7b, $c0, $7b, $40, $3b, $40, $3b + .byt $ef, $0c, $fb, $38, $9b, $18, $7b, $38 + .byt $7b, $78, $7b, $38, $bb, $38, $bb, $38 + .byt $f8, $f7, $fc, $ef, $f4, $ff, $e4, $bf + .byt $84, $ff, $84, $ff, $44, $ff, $44, $ff + .byt $0f, $0f, $3f, $3f, $3f, $3f, $7f, $7f + .byt $7f, $7f, $7f, $7f, $ff, $ff, $ff, $ff + .byt $08, $f7, $08, $f7, $00, $f7, $08, $f7 + .byt $08, $f3, $02, $f9, $06, $f9, $0f, $e0 + .byt $ef, $00, $ef, $00, $ef, $00, $ef, $00 + .byt $eb, $08, $ef, $09, $ef, $0d, $ee, $02 + .byt $00, $ff, $00, $ff, $00, $ff, $08, $ff + .byt $08, $ff, $0d, $fe, $0f, $ff, $0f, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $ff, $ff, $ff, $ff, $fe, $fe + .byt $0a, $f8, $04, $f8, $0c, $f8, $08, $f0 + .byt $00, $e0, $18, $d0, $61, $c0, $02, $01 + .byt $f7, $08, $f3, $00, $f7, $10, $e7, $00 + .byt $ff, $00, $cf, $00, $1e, $00, $fd, $01 + .byt $0b, $ff, $07, $ff, $1f, $ef, $0f, $ff + .byt $0f, $ff, $1f, $ff, $ff, $ff, $ff, $ff + .byt $fc, $fc, $f8, $f8, $f0, $f0, $f0, $f0 + .byt $f0, $f0, $e0, $e0, $00, $00, $01, $01 + .byt $00, $01, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $80, $00, $80, $00, $00, $00 + .byt $f2, $00, $e1, $00, $e0, $00, $c0, $00 + .byt $80, $00, $00, $00, $80, $00, $00, $00 + .byt $f3, $f3, $e1, $e1, $e0, $e0, $c0, $c0 + .byt $80, $80, $80, $80, $80, $80, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $80, $80, $00, $00 + .byt $9f, $03, $d8, $06, $5a, $24, $2c, $1c + .byt $0c, $00, $02, $00, $00, $00, $00, $00 + .byt $fc, $04, $7d, $0c, $3d, $2c, $03, $00 + .byt $13, $00, $05, $00, $00, $00, $00, $00 + .byt $bf, $ff, $ff, $ff, $7f, $7f, $3f, $3f + .byt $1f, $1f, $07, $07, $00, $00, $00, $00 + .byt $fc, $fc, $7c, $7c, $3c, $3c, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $d6, $08, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $40, $00, $00, $00, $00, $00 + .byt $fb, $88, $ff, $00, $ff, $00, $ff, $00 + .byt $ff, $00, $be, $00, $00, $00, $00, $00 + .byt $ff, $ff, $ff, $ff, $ff, $ff, $ff, $ff + .byt $ff, $ff, $fe, $fe, $00, $00, $00, $00 + .byt $f8, $f8, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $f0, $00, $f0, $00, $e0, $00, $c0, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $f0, $f0, $f0, $f0, $e0, $e0, $c0, $c0 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $40, $7c, $2c, $18, $04, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $bb, $38, $43, $00, $0b, $00, $01, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $ff, $bf, $7f, $7f, $0f, $0f, $01, $01 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $78, $78, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $ff, $00, $ff, $00, $ff, $00, $f8, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $ff, $ff, $ff, $ff, $ff, $ff, $f8, $f8 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $c0, $00, $80, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $c0, $c0, $80, $80, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $40, $fb, $40, $fb, $40, $fb, $40, $fb + .byt $40, $fb, $fd, $03, $42, $20, $32, $00 + .byt $7b, $38, $7b, $38, $7b, $38, $7b, $78 + .byt $7b, $38, $7e, $02, $3d, $20, $1d, $10 + .byt $84, $ff, $84, $ff, $84, $ff, $84, $ff + .byt $84, $ff, $c3, $ff, $67, $7f, $37, $3f + .byt $7f, $7f, $7f, $7f, $7f, $7f, $7f, $7f + .byt $7f, $7f, $7e, $7e, $3c, $3c, $1c, $1c + .byt $07, $f0, $04, $ff, $0b, $ef, $00, $ff + .byt $0f, $ff, $2f, $d0, $01, $00, $02, $00 + .byt $fe, $16, $fa, $1a, $e0, $00, $e0, $00 + .byt $e0, $00, $f0, $f0, $fe, $00, $fc, $00 + .byt $1f, $ef, $1f, $ef, $0f, $ff, $0f, $ff + .byt $0f, $ff, $ff, $ff, $ff, $ff, $fe, $fe + .byt $fe, $fe, $fa, $fa, $f0, $f0, $f0, $f0 + .byt $f0, $f0, $f0, $f0, $00, $00, $00, $00 + .byt $01, $00, $06, $00, $8c, $00, $70, $80 + .byt $00, $80, $80, $00, $00, $00, $00, $00 + .byt $fe, $00, $f8, $00, $70, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $ff, $ff, $fe, $fe, $fc, $fc, $f0, $f0 + .byt $80, $80, $80, $80, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $0a, $10, $0a, $0c, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $0d, $08, $05, $04, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $1f, $1f, $0f, $07, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $0c, $0c, $0c, $0c, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $04, $00, $d8, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $f8, $00, $20, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $fc, $fc, $f8, $d8, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $20, $20, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 + .byt $00, $00, $00, $00, $00, $00, $00, $00 diff --git a/snes/main.a65 b/snes/main.a65 new file mode 100644 index 0000000..0eb5a34 --- /dev/null +++ b/snes/main.a65 @@ -0,0 +1,249 @@ + +GAME_MAIN: + jsr snes_init + jsr font_dma + jsr tests + - wai + bra - + +font_dma: + sep #$20 : .as + rep #$10 : .xl + stz $420b + stz $420c + lda #$01 ;A to B; (direct); non-fixed, inc, two reg + sta $4300 ;to DMA ch.0 ctrl + lda #^font ;font source bank + ldy #!font ;font source address + sty $4302 ;address -> 4302,4303 + sta $4304 ;bank -> 4304 + ldx #$1000 ;transfer size + stx $4305 ;to reg + stz $2116 ;VRAM address 0 + stz $2117 ; + lda #$18 ;VRAM data port + sta $4301 ;to channel 0 tgt address + lda #$01 ;ch 0 enable + sta $420b ;GPDMA GO! + lda #$09 ;A to B; fixed, two reg + sta $4300 + lda #^zero + ldy #!zero + sty $4302 + sta $4304 + ldx #$1000 + stx $4305 ;zero 4096b of VRAM + ldx #$3000 + stx $2116 ;from 0x6000-0x6fff + lda #$18 ;VRAM data port + sta $4301 ;to channel 0 tgt address + lda #$01 + sta $420b + +; copy logo + lda #$01 ;A to B; (direct); non-fixed, inc, two reg + sta $4300 ;to DMA ch.0 ctrl + lda #^logo ;font source bank + ldy #!logo ;font source address + sty $4302 ;address -> 4302,4303 + sta $4304 ;bank -> 4304 + ldx #$4b00 ;transfer size + stx $4305 ;to reg + ldx #$800 ;after font + stx $2116 ;VRAM address 0x1000 + lda #$18 ;VRAM data port + sta $4301 ;to channel 0 tgt address + lda #$01 ;ch 0 enable + sta $420b ;GPDMA GO! + +; copy logo tilemap + lda #$01 ;A to B; (direct); non-fixed, inc, two reg + sta $4300 ;to DMA ch.0 ctrl + lda #^logomap ;font source bank + ldy #!logomap ;font source address + sty $4302 ;address -> 4302,4303 + sta $4304 ;bank -> 4304 + ldx #$300 ;transfer size + stx $4305 ;to reg + ldx #$3400 ;BG1 tilemap + stx $2116 ;VRAM address 0x6800 + lda #$18 ;VRAM data port + sta $4301 ;to channel 0 tgt address + lda #$01 ;ch 0 enable + sta $420b ;GPDMA GO! + +;copy test text + lda #$00 ;A->B, inc, 1 reg + sta $4300 + lda #^hello + ldy #!hello + sty $4302 + sta $4304 + ldx #$c ;24 bytes + stx $4305 + ldx #$3020 + stx $2116 + lda #$18 + sta $4301 + stz $2115 ;increment after LOW byte (write to 2118) + lda #$01 + sta $420b + + lda #$08 ;A->B, fixed, 1 reg + sta $4300 + lda #^bg2tile + ldy #!bg2tile + sty $4302 + sta $4304 + ldx #$c ;24 bytes + stx $4305 + ldx #$3020 + stx $2116 + lda #$19 + sta $4301 + lda #$80 + sta $2115 ;increment after HIGH byte (write to 2119) + lda #$01 + sta $420b + + + stz $2121 ;palette index 0 + lda #$00 + sta $4300 + lda #^palette + ldy #!palette + sty $4302 + sta $4304 + ldx #$200 + stx $4305 + lda #$22 ;CG RAM port + sta $4301 + lda #$01 + sta $420b + rts + +tests: + sep #$30 : .as : .xs ;8-bit accumulator and index + lda #$0f + sta $2100 ;screen on, full brightness + lda #$04 ;mode 4, mode 5 is a bitch :( + sta $2105 + lda #$34 ;Tilemap addr 0x6800 + sta $2107 ;for BG1 + lda #$30 ;Tilemap addr 0x6000 + sta $2108 ;for BG2 + lda #$03 ;enable BG1+BG2 + sta $212c ;BG Main + sta $212d ;BG Sub + lda #$00 ;224 + sta $2133 ; + lda #$00 + sta $2130 + stz $2121 + lda #$0 + ldx #$0 + ldy #$0 + - bra - +- + inx + bne + + iny ++ + stz $2121 + stx $2122 + sty $2122 +bra - + rts + +snes_init: + sep #$20 : .as ;8-bit accumulator + lda #$01 + sta $420d ; FAAAAAST + lda #$8f + sta $2100 ;INIDISP: force blank + stz $2101 ; + stz $2102 ; + stz $2103 ; + stz $2104 ; (OAM Data?!) + stz $2104 ; (OAM Data?!) + stz $2105 ; + stz $2106 ; + stz $2107 ; + stz $2108 ; + stz $2109 ; + stz $210a ; + stz $210b ; + stz $210c ; + stz $210d ; + stz $210d ; + stz $210e ; + stz $210e ; + stz $210f ; + stz $210f ; + lda #$00 + sta $2110 ; + stz $2110 ; + stz $2111 ; + stz $2111 ; + stz $2112 ; + stz $2112 ; + stz $2113 ; + stz $2113 ; + stz $2114 ; + stz $2114 ; + lda #$80 + sta $2115 ; + stz $2116 ; + stz $2117 ; + stz $2118 ;(VRAM Data?!) + stz $2119 ;(VRAM Data?!) + stz $211a ; + stz $211b ; + lda #$01 + sta $211b ; + stz $211c ; + stz $211c ; + stz $211d ; + stz $211d ; + stz $211e ; + sta $211e ; + stz $211f ; + stz $211f ; + stz $2120 ; + stz $2120 ; + stz $2121 ; + stz $2122 ; (CG Data?!) + stz $2123 ; + stz $2124 ; + stz $2125 ; + stz $2126 ; + stz $2127 ; + stz $2128 ; + stz $2129 ; + stz $212a ; + stz $212b ; + stz $212c ; + stz $212d ; + stz $212e ; + lda #$30 + sta $2130 ; + stz $2131 ; + lda #$e0 + sta $2132 ; + stz $2133 ; + stz $4200 ; + lda #$ff + sta $4201 ; + stz $4202 ; + stz $4203 ; + stz $4204 ; + stz $4205 ; + stz $4206 ; + stz $4207 ; + stz $4208 ; + stz $4209 ; + stz $420a ; + stz $420b ; + stz $420c ; + rts + diff --git a/snes/palette.a65 b/snes/palette.a65 new file mode 100644 index 0000000..19c44a1 --- /dev/null +++ b/snes/palette.a65 @@ -0,0 +1,64 @@ +palette .byt $00, $00, $ff, $7f, $00, $00, $18, $63 + .byt $60, $2d, $df, $6b, $70, $05, $7f, $4f + .byt $10, $42, $10, $42, $10, $42, $10, $42 + .byt $10, $42, $10, $42, $10, $42, $10, $42 + .byt $10, $42, $10, $42, $10, $42, $10, $42 + .byt $10, $42, $10, $42, $10, $42, $10, $42 + .byt $10, $42, $10, $42, $10, $42, $10, $42 + .byt $10, $42, $10, $42, $10, $42, $10, $42 + .byt $10, $42, $10, $42, $10, $42, $10, $42 + .byt $10, $42, $10, $42, $10, $42, $10, $42 + .byt $10, $42, $10, $42, $10, $42, $10, $42 + .byt $83, $52, $ae, $77, $8e, $73, $c5, $5a + .byt $ce, $7b, $81, $10, $a1, $14, $c1, $18 + .byt $61, $0c, $41, $08, $23, $25, $6b, $6f + .byt $ad, $77, $63, $2d, $66, $4e, $27, $46 + .byt $49, $6b, $e6, $3d, $e3, $41, $c6, $72 + .byt $04, $4e, $05, $7f, $a6, $66, $e5, $7a + .byt $86, $62, $05, $46, $26, $52, $e6, $76 + .byt $26, $4e, $87, $5e, $65, $5a, $06, $7f + .byt $67, $5a, $a7, $6a, $c2, $41, $a2, $2d + .byt $c4, $41, $24, $5a, $05, $52, $26, $56 + .byt $a2, $3d, $4a, $2d, $6c, $31, $dc, $1c + .byt $bf, $14, $35, $29, $9f, $14, $37, $29 + .byt $7f, $10, $31, $29, $6a, $2d, $17, $25 + .byt $67, $2d, $2f, $25, $11, $21, $11, $25 + .byt $4a, $29, $bc, $18, $31, $25, $bf, $18 + .byt $65, $31, $6c, $2d, $6d, $2d, $8b, $31 + .byt $51, $29, $fb, $20, $c4, $39, $68, $2e + .byt $e4, $2d, $a1, $31, $81, $2d, $0d, $2b + .byt $2e, $27, $eb, $26, $67, $2a, $c4, $29 + .byt $61, $29, $ec, $2a, $6f, $23, $6f, $27 + .byt $4e, $27, $0c, $27, $a9, $26, $06, $2a + .byt $cb, $2e, $69, $2e, $e5, $2d, $06, $32 + .byt $28, $36, $ac, $26, $c4, $31, $28, $32 + .byt $67, $19, $c6, $6e, $c3, $3d, $4f, $29 + .byt $f4, $20, $f8, $20, $45, $29, $53, $29 + .byt $bd, $18, $88, $31, $18, $21, $9f, $10 + .byt $73, $2d, $d1, $18, $d9, $1c, $fa, $1c + .byt $a3, $29, $82, $29, $41, $25, $89, $26 + .byt $23, $1d, $0e, $27, $6b, $22, $87, $19 + .byt $2e, $23, $c9, $1d, $cd, $21, $f6, $1e + .byt $ac, $22, $30, $22, $ff, $17, $8a, $15 + .byt $ff, $1b, $5a, $1f, $ac, $19, $b4, $1e + .byt $7b, $1f, $28, $15, $cd, $19, $71, $1e + .byt $b5, $1e, $d5, $1a, $73, $1e, $ee, $1d + .byt $8b, $19, $e6, $10, $39, $1f, $31, $22 + .byt $28, $19, $df, $1b, $93, $1a, $9c, $1f + .byt $ca, $18, $d7, $1c, $ce, $18, $aa, $14 + .byt $88, $10, $b8, $18, $cc, $18, $9b, $14 + .byt $c8, $18, $a6, $14, $81, $14, $01, $1d + .byt $f7, $1e, $0f, $1e, $18, $23, $ff, $13 + .byt $48, $15, $8a, $1d, $9c, $1b, $bd, $1b + .byt $30, $1e, $48, $19, $a1, $18, $a1, $10 + .byt $61, $10, $c3, $39, $c8, $5a, $2a, $67 + .byt $6c, $6f, $c6, $5a, $4b, $6b, $29, $67 + .byt $e7, $5e, $a5, $56, $e1, $3d, $64, $4e + .byt $c1, $39, $a6, $56, $a1, $35, $65, $4e + .byt $61, $2d, $81, $31, $01, $42, $e3, $3d + .byt $85, $52, $08, $63, $e8, $5e, $25, $46 + .byt $8d, $73, $09, $63, $84, $52, $03, $42 + .byt $63, $4e, $23, $46, $62, $4e, $22, $46 + .byt $41, $29, $21, $25, $04, $42, $a8, $56 + .byt $87, $52, $e4, $3d, $0a, $63, $21, $46 + .byt $a4, $56, $01, $21, $e1, $1c, $a3, $35 diff --git a/snes/reset.a65 b/snes/reset.a65 new file mode 100644 index 0000000..e4ef457 --- /dev/null +++ b/snes/reset.a65 @@ -0,0 +1,132 @@ +; This file is part of the snescom-asm demo - a demo of how to build a SNES program. +; See http://bisqwit.iki.fi/source/snescom.html for details. + +#include "memmap.i65" + + +#define TILE_ADDR_REG_VAL(addr, scsize) \ + (((addr & $FC00) >> 8) + scsize) +#define BMAP_ADDR_REG_VAL(addr, addr2) \ + (((addr & $F000) >> 12) | (((addr2 & $F000) >> 12) << 4)) + +; NMI - called once per screen refresh (or something like that) +NMI_ROUTINE: + sep #$20 : .as + lda $4210 + rtl + +; IRQ - called when triggered (which is..?) +IRQ_ROUTINE: + sep #$20 : .as + lda $4211 ;Acknowledge irq + rtl + +; To be called regularly - updated screen contents +; Sends the palette structure to PPU +PaletteDMA: + .xl : .as + lda #$00 : sta $4300 ;dma type + lda #$22 : sta $4301 ;address $2122 + + lda #^(PALETTE_ADDRESS) : sta $4304 + ldx #!(PALETTE_ADDRESS) : stx $4302 + + ldx #512 : stx $4305 ; size: 16*2*16 bytes. + + lda #$00 : sta $2121 ;Write CGRAM address (0) + + lda #$01 : sta $420B ;Activate dma 0 + rts + +; Sends the video buffer contents to PPU +VRAMdma: + sty $2116 ;Write VRAM address + + sty $4302 : sta $4304 ;Write DMA address + stx $4305 ;Write size + + lda #$80 : sta $2115 ;PPU programming + + lda #$01 : sta $4300 ;dma type + lda #$18 : sta $4301 ;address $2118 + + lda #$01 : sta $420B ;Activate DMA 0 + rts + +; Jumped to from snesheader.a65 - when the game is reseted. +RESET_GAME: + rep #$30 : .al : .xl + + lda #$0400 : tcd + ldx #$03FE : txs + + sep #$20 : .as + + pha + plb + + lda #$01 + sta $420D ; set "fast" mode + + ; Next initialize screen + + jsr InitializeScreen + jsr InitializeIRQ + + sep #$20 : .as + + ;lda #$17 + lda #$03 + sta $212C ; put screens on + sta $212D ; put screens on + + lda #$00: sta $2121 + lda #$E0: sta $2122 + lda #$7C: sta $2122 + + jmp @GAME_MAIN + +InitializeIRQ: + sep #$20 : .as + + lda #$B1 : sta $4200 + ldx #0 : stx $4207 + ldx #211 : stx $4209 + + sei + + lda $4211 + - lda $4210 ;: bpl - + + rts + +InitializeScreen: + rep #$10 : .xl + sep #$20 : .as + + lda #$00 : sta $2101 + + ldx #$0000 : stx $2102 + + lda #$09 : sta $2105 ; select screen mode 1. + + lda #$00 : sta $2106 + + lda #TILE_ADDR_REG_VAL(BG1_TILE_ADDR, 0) : sta $2107 + lda #TILE_ADDR_REG_VAL(BG2_TILE_ADDR, 0) : sta $2108 + lda #TILE_ADDR_REG_VAL(BG3_TILE_ADDR, 0) : sta $2109 + lda #TILE_ADDR_REG_VAL(BG4_TILE_ADDR, 0) : sta $210A + + lda #BMAP_ADDR_REG_VAL(BG1_BMAP_ADDR, BG2_BMAP_ADDR) : sta $210B + lda #BMAP_ADDR_REG_VAL(BG3_BMAP_ADDR, BG4_BMAP_ADDR) : sta $210C + + ; Set scrolling to 0,0 to all bgs + lda #$00 : sta $210D : sta $210D + lda #$00 : sta $210E : sta $210E + lda #$00 : sta $210F : sta $210F + lda #$00 : sta $2110 : sta $2110 + lda #$00 : sta $2111 : sta $2111 + lda #$00 : sta $2112 : sta $2112 + lda #$00 : sta $2113 : sta $2113 + lda #$00 : sta $2114 : sta $2114 + rts diff --git a/src/Makefile b/src/Makefile index 694511f..ba810d6 100644 --- a/src/Makefile +++ b/src/Makefile @@ -308,10 +308,10 @@ endif # Type: avrdude -c ? # to get a full listing. # -AVRDUDE_PROGRAMMER = stk200 +AVRDUDE_PROGRAMMER = dragon_isp # com1 = serial port. Use lpt1 to connect to parallel port. -AVRDUDE_PORT = /dev/parport0 # programmer connected to serial device +AVRDUDE_PORT = usb # programmer connected to serial device AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex # AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep diff --git a/src/config b/src/config index 6bae32e..e402dff 100644 --- a/src/config +++ b/src/config @@ -35,7 +35,7 @@ CONFIG_UART_BAUDRATE=38400 CONFIG_UART_BUF_SHIFT=7 CONFIG_HARDWARE_NAME=sd2snes CONFIG_SD_AUTO_RETRIES=10 -CONFIG_SD_DATACRC=y +#CONFIG_SD_DATACRC=y CONFIG_EEPROM_SIZE=512 CONFIG_EEPROM_OFFSET=512 CONFIG_MAX_PARTITIONS=1 diff --git a/src/ff.c b/src/ff.c index da8ec95..0eb4e36 100644 --- a/src/ff.c +++ b/src/ff.c @@ -1488,7 +1488,6 @@ FRESULT f_open ( dir[DIR_Attr] = 0; /* Reset attribute */ ps = get_fattime(); ST_DWORD(&dir[DIR_CrtTime], ps); /* Created time */ - sync(fs); /* not sure if this is needed in all cases, but kept */ mode |= FA__WRITTEN; /* Set file changed flag */ } } @@ -1504,6 +1503,8 @@ FRESULT f_open ( } fp->dir_sect = FSBUF.sect; /* Pointer to the directory entry */ + /* Moved sync from mode & FA_CREATE_ALWAYS because it can reset FSBUF.sect */ + sync(fs); /* not sure if this is needed in all cases, but kept */ fp->dir_ptr = dir; #endif fp->flag = mode; /* File access mode */ @@ -1533,6 +1534,26 @@ FRESULT l_opencluster ( return FR_OK; } +FRESULT l_openfilebycluster ( + FATFS *fs, /* Pointer to file system object */ + FIL *fp, /* Pointer to the blank file object */ + const UCHAR *path, + DWORD clust, /* Cluster number to be opened */ + DWORD fsize /* File size to be assumed */ +) +{ + auto_mount(&path, &fs, 0); + fp->flag = FA_READ; + fp->org_clust = clust; + fp->fsize = fsize; + fp->fptr = 0; + fp->csect = 1; + fp->fs = fs; + + return FR_OK; +} + + /*-----------------------------------------------------------------------*/ diff --git a/src/ff.h b/src/ff.h index b761a1f..6f44794 100644 --- a/src/ff.h +++ b/src/ff.h @@ -315,6 +315,7 @@ FRESULT f_chdir (const UCHAR*); /* Change current di /* Low Level functions */ FRESULT l_opendir(FATFS* fs, DWORD cluster, DIR *dirobj); /* Open an existing directory by its start cluster */ FRESULT l_opencluster(FATFS *fs, FIL *fp, DWORD clust); /* Open a cluster by number as a read-only file */ +FRESULT l_openfilebycluster(FATFS *fs, FIL *fp, const UCHAR *path, DWORD clust, DWORD fsize); /* Open a file by its start cluster using supplied file size */ FRESULT l_getfree (FATFS*, const UCHAR*, DWORD*, DWORD); /* Get number of free clusters on the drive, limited */ #if _USE_STRFUNC diff --git a/src/fileops.c b/src/fileops.c index 6797290..6c7fadb 100644 --- a/src/fileops.c +++ b/src/fileops.c @@ -1,6 +1,7 @@ // insert cool lengthy disclaimer here // fileops.c: convenience +#include #include "config.h" #include "uart.h" #include "ff.h" @@ -14,6 +15,9 @@ void file_init() { f_mount(0, &fatfs); } +void file_open_by_filinfo(FILINFO* fno) { + file_res = l_openfilebycluster(&fatfs, &file_handle, (UCHAR*)"", fno->clust, fno->fsize); +} void file_open(char* filename, BYTE flags) { file_res = f_open(&file_handle, (unsigned char*)filename, flags); } @@ -37,8 +41,12 @@ UINT file_write() { UINT file_readblock(void* buf, uint32_t addr, uint16_t size) { UINT bytes_read; file_res = f_lseek(&file_handle, addr); - if(file_res) return 0; + if(file_handle.fptr != addr) { + return 0; + } + if(file_res) { dprintf("no lseek %d\n", file_res); _delay_ms(30); return 0;} file_res = f_read(&file_handle, buf, size, &bytes_read); + if(file_res) { dprintf("no read %d\n", file_res); _delay_ms(30); } return bytes_read; } diff --git a/src/fileops.h b/src/fileops.h index 27881ea..2974dfc 100644 --- a/src/fileops.h +++ b/src/fileops.h @@ -12,6 +12,7 @@ FRESULT file_res; void file_init(void); void file_open(char* filename, BYTE flags); +void file_open_by_filinfo(FILINFO* fno); void file_close(void); UINT file_read(void); UINT file_write(void); diff --git a/src/filetypes.c b/src/filetypes.c new file mode 100644 index 0000000..42f8043 --- /dev/null +++ b/src/filetypes.c @@ -0,0 +1,127 @@ +// insert cool lengthy disclaimer here + +#include +#include +#include +#include +#include "config.h" +#include "uart.h" +#include "filetypes.h" +#include "ff.h" +#include "smc.h" +#include "fileops.h" +#include "crc16.h" +#include "memory.h" + +uint16_t scan_dir(char* path, char mkdb) { + DIR dir; + FILINFO fno; + FRESULT res; + int len; + unsigned char* fn; + static unsigned char lfn[256]; + static unsigned char depth = 0; + static uint16_t crc; + static uint32_t db_tgt; + if(depth==0) { + crc = 0; + db_tgt = SRAM_WORK_ADDR+0x10; + } +// dprintf("path=%s depth=%d ptr=%lx\n", path, depth, db_tgt); +// _delay_ms(50); + fno.lfn = lfn; + res = f_opendir(&dir, (unsigned char*)path); + if (res == FR_OK) { + len = strlen((char*)path); + for (;;) { + res = f_readdir(&dir, &fno); + if (res != FR_OK || fno.fname[0] == 0) break; + fn = *fno.lfn ? fno.lfn : fno.fname; +// dprintf("%s\n", fn); +// _delay_ms(100); + if (*fn == '.') continue; + if (fno.fattrib & AM_DIR) { + path[len]='/'; + strncpy(path+len+1, (char*)fn, sizeof(fs_path)-len); + depth++; + scan_dir(path, mkdb); + depth--; + path[len]=0; +// if (res != FR_OK) { +// break; +// } + } else { + SNES_FTYPE type = determine_filetype((char*)fn); + if(type != TYPE_UNKNOWN) { + if(mkdb) { + snes_romprops_t romprops; + path[len]='/'; + strncpy(path+len+1, (char*)fn, sizeof(fs_path)-len); + switch(type) { + case TYPE_SMC: + file_open_by_filinfo(&fno); + if(file_res){ + dprintf("ZOMG NOOOO %d\n", file_res); + _delay_ms(30); + } + smc_id(&romprops); + file_close(); + dprintf("%lx\n", db_tgt); +// _delay_ms(30); + sram_writeblock((uint8_t*)&romprops, db_tgt, sizeof(romprops)); + sram_writeblock(path, db_tgt + sizeof(romprops), 256); + db_tgt += 0x140; + break; + case TYPE_UNKNOWN: + default: + break; + } + path[len]=0; +// dprintf("%s ", path); +// _delay_ms(30); + } + unsigned char* sfn = fno.fname; + while(*sfn != 0) { + crc += crc16_update(crc, sfn++, 1); + } + } +// dprintf("%s/%s\n", path, fn); +// _delay_ms(50); +// _delay_ms(10); + } + } + } else uart_putc(0x30+res); +// dprintf("%x\n", crc); +// _delay_ms(50); + sram_writeblock(&db_tgt, SRAM_WORK_ADDR+4, sizeof(db_tgt)); + return crc; +} + + +SNES_FTYPE determine_filetype(char* filename) { + char* ext = strrchr(filename, '.'); + if(ext == NULL) + return TYPE_UNKNOWN; + if(!strcasecmp_P(ext+1, PSTR("SMC"))) { + return TYPE_SMC; + }/* later + if(!strcasecmp_P(ext+1, PSTR("SRM"))) { + return TYPE_SRM; + } + if(!strcasecmp_P(ext+1, PSTR("SPC"))) { + return TYPE_SPC; + }*/ + return TYPE_UNKNOWN; +} + +FRESULT get_db_id(uint16_t* id) { + file_open("/sd2snes/sd2snes.db", FA_READ); + if(file_res == FR_OK) { + file_readblock(id, 0, 2); +/* XXX */// *id=0xdead; + file_close(); + } else { + *id=0xdead; + } + return file_res; +} diff --git a/src/filetypes.h b/src/filetypes.h new file mode 100644 index 0000000..b8229d0 --- /dev/null +++ b/src/filetypes.h @@ -0,0 +1,22 @@ +// insert cool lengthy disclaimer here +// filetypes.h: fs scanning and file identification + +#ifndef FILETYPES_H +#define FILETYPES_H + +#include "ff.h" +typedef enum { + TYPE_UNKNOWN = 0, /* 0 */ + TYPE_SMC, /* 1 */ + TYPE_SRM, /* 2 */ + TYPE_SPC /* 3 */ +} SNES_FTYPE; + + +char fs_path[256]; +SNES_FTYPE determine_filetype(char* filename); +//uint32_t scan_fs(); +uint16_t scan_dir(char* path, char mkdb); +FRESULT get_db_id(uint16_t*); + +#endif diff --git a/src/fpga_spi.c b/src/fpga_spi.c index 0d7ff44..d7affbf 100644 --- a/src/fpga_spi.c +++ b/src/fpga_spi.c @@ -37,6 +37,11 @@ void spi_sd(void) { SPI_SS_LOW(); } +void spi_none(void) { + FPGA_SS_HIGH(); + SPI_SS_HIGH(); +} + void fpga_spi_init(void) { DDRC = _BV(PC7); FPGA_SS_HIGH(); @@ -48,7 +53,7 @@ void set_avr_addr(uint32_t address) { spiTransferByte((address>>16)&0xff); spiTransferByte((address>>8)&0xff); spiTransferByte((address)&0xff); - spi_sd(); + spi_none(); } void set_saveram_mask(uint32_t mask) { @@ -57,7 +62,7 @@ void set_saveram_mask(uint32_t mask) { spiTransferByte((mask>>16)&0xff); spiTransferByte((mask>>8)&0xff); spiTransferByte((mask)&0xff); - spi_sd(); + spi_none(); } void set_rom_mask(uint32_t mask) { @@ -66,5 +71,5 @@ void set_rom_mask(uint32_t mask) { spiTransferByte((mask>>16)&0xff); spiTransferByte((mask>>8)&0xff); spiTransferByte((mask)&0xff); - spi_sd(); + spi_none(); } diff --git a/src/fpga_spi.h b/src/fpga_spi.h index 568ab62..c5ece17 100644 --- a/src/fpga_spi.h +++ b/src/fpga_spi.h @@ -7,6 +7,7 @@ void fpga_spi_init(void); void fpga_spi_test(void); void spi_fpga(void); void spi_sd(void); +void spi_none(void); void set_avr_addr(uint32_t); void set_saveram_mask(uint32_t); void set_rom_mask(uint32_t); diff --git a/src/main.c b/src/main.c index de6100c..99cff0f 100644 --- a/src/main.c +++ b/src/main.c @@ -127,7 +127,7 @@ int main(void) { #ifdef CLOCK_PRESCALE clock_prescale_set(CLOCK_PRESCALE); #endif - + spi_none(); snes_reset(1); uart_init(); sei(); // suspected to reset the AVR when inserting an SD card @@ -145,20 +145,14 @@ int main(void) { uart_putc('W'); fpga_init(); fpga_pgm("/sd2snes/main.bit"); + _delay_ms(100); fpga_spi_init(); uart_putc('!'); _delay_ms(100); set_avr_ena(0); snes_reset(1); - uart_putc('('); - load_rom("/test.smc"); - uart_putc(')'); - - uart_putc('['); - load_sram("/test.srm"); - uart_putc(']'); - *fs_path=0; + *fs_path=0; uint16_t curr_dir_id = scan_dir(fs_path, 0); // generate files footprint dprintf("curr dir id = %x\n", curr_dir_id); uint16_t saved_dir_id; @@ -169,10 +163,21 @@ int main(void) { dprintf("rebuilding database..."); _delay_ms(50); curr_dir_id = scan_dir(fs_path, 1); // then rebuild database - sram_writeblock(&curr_dir_id, 0x600000, 2); - save_sram("/sd2snes/sd2snes.db", 0x10000, 0x600000); + sram_writeblock(&curr_dir_id, SRAM_WORK_ADDR, 2); + uint32_t endaddr; + sram_readblock(&endaddr, SRAM_WORK_ADDR+4, 4); + dprintf("%lx\n", endaddr); + save_sram("/sd2snes/sd2snes.db", endaddr-SRAM_WORK_ADDR, SRAM_WORK_ADDR); dprintf("done\n"); } + uart_putc('['); + load_sram("/test.srm"); + uart_putc(']'); + + uart_putc('('); + load_rom("/test.smc"); + uart_putc(')'); + set_busy_led(0); set_avr_ena(1); @@ -211,7 +216,7 @@ while(1) { } // set_avr_bank(3); } - spi_sd(); + spi_none(); } while(1); } diff --git a/src/memory.c b/src/memory.c index 325c2fd..18c1f4e 100644 --- a/src/memory.c +++ b/src/memory.c @@ -29,20 +29,22 @@ void sram_readblock(void* buf, uint32_t addr, uint16_t size) { while(count--) { *(tgt++) = spiTransferByte(0x00); } - spi_sd(); + spi_none(); } void sram_writeblock(void* buf, uint32_t addr, uint16_t size) { - uint16_t count=size; - uint8_t* src = buf; + uint16_t count=size>>1; + uint16_t* src = buf; set_avr_addr(addr); spi_fpga(); spiTransferByte(0x91); // WRITE while(count--) { - spiTransferByte(*src++); + spiTransferByte((*src)>>8); + spiTransferByte((*src)&0xff); + src++; } spiTransferByte(0x00); // dummy - spi_sd(); + spi_none(); } uint32_t load_rom(char* filename) { @@ -79,13 +81,14 @@ uint32_t load_rom(char* filename) { FPGA_SS_HIGH(); } file_close(); + spi_none(); set_avr_mapper(romprops.mapper_id); uart_puthex(romprops.header.map); uart_putc(0x30+romprops.mapper_id); uint32_t rammask; uint32_t rommask; - + if(filesize > (romprops.romsize_bytes + romprops.offset)) { romprops.romsize_bytes <<= 1; } @@ -141,7 +144,7 @@ void save_sram(char* filename, uint32_t sram_size, uint32_t base_addr) { uint32_t count = 0; uint32_t num = 0; - spi_sd(); + spi_none(); file_open(filename, FA_CREATE_ALWAYS | FA_WRITE); if(file_res) { uart_putc(0x30+file_res); @@ -155,7 +158,7 @@ void save_sram(char* filename, uint32_t sram_size, uint32_t base_addr) { file_buf[j] = spiTransferByte(0x00); count++; } - spi_sd(); + spi_none(); num = file_write(); if(file_res) { uart_putc(0x30+file_res); @@ -171,15 +174,13 @@ uint32_t calc_sram_crc(uint32_t base_addr, uint32_t size) { uint16_t crc; crc=0; set_avr_addr(base_addr); - SPI_SS_HIGH(); - FPGA_SS_HIGH(); - FPGA_SS_LOW(); + spi_fpga(); spiTransferByte(0x81); spiTransferByte(0x00); for(count=0; countheader); for(uint8_t num = 0; num < 6; num++) { - file_readblock(header, hdr_addr[num], sizeof(snes_header_t)); - if(file_res) { + if(!file_readblock(header, hdr_addr[num], sizeof(snes_header_t)) + || file_res) { +// dprintf("uh oh... %d\n", file_res); +// _delay_ms(30); score = 0; } else { score = smc_headerscore(header); } +// dprintf("%d: offset = %lX; score = %d\n", num, hdr_addr[num], score); +// _delay_ms(100); if(score>=maxscore) { score_idx=num; maxscore=score; @@ -77,6 +81,8 @@ void smc_id(snes_romprops_t* props) { } // restore the chosen one +// dprintf("winner is %d\n", score_idx); +// _delay_ms(30); file_readblock(header, hdr_addr[score_idx], sizeof(snes_header_t)); switch(header->map & 0xef) { case 0x20: diff --git a/src/smc.h b/src/smc.h index affff25..c19a96b 100644 --- a/src/smc.h +++ b/src/smc.h @@ -29,6 +29,7 @@ typedef struct _snes_header { typedef struct _snes_romprops { uint16_t offset; // start of actual ROM image uint8_t mapper_id; // FPGA mapper + uint8_t pad1; // for alignment uint32_t expramsize_bytes; // ExpRAM size in bytes uint32_t ramsize_bytes; // CartRAM size in bytes uint32_t romsize_bytes; // ROM size in bytes (rounded up) diff --git a/src/snes.c b/src/snes.c index c050102..98b789f 100644 --- a/src/snes.c +++ b/src/snes.c @@ -47,7 +47,7 @@ void snes_reset(int state) { void snes_main_loop() { if(initloop) { saveram_crc_old = calc_sram_crc(saveram_base_addr, saveram_size); - save_sram("/quite a long test filename.srm", saveram_size, saveram_base_addr); + save_sram("/test.srm", saveram_size, saveram_base_addr); initloop=0; } saveram_crc = calc_sram_crc(saveram_base_addr, saveram_size); @@ -56,7 +56,7 @@ void snes_main_loop() { uart_puthexshort(saveram_crc); uart_putcrlf(); set_busy_led(1); - save_sram("/quite a long test filename.srm", saveram_size, saveram_base_addr); + save_sram("/test.srm", saveram_size, saveram_base_addr); set_busy_led(0); } saveram_crc_old = saveram_crc; diff --git a/utils/bin2asm.c b/utils/bin2asm.c new file mode 100644 index 0000000..0211271 --- /dev/null +++ b/utils/bin2asm.c @@ -0,0 +1,32 @@ +#include +#include + +int main(int argc, char **argv) { + size_t count; + + if(argc<1) { + fprintf(stderr, "Usage: %s \n", argv[0]); + return 1; + } + FILE* in; + if((in=fopen(argv[1], "rb"))==NULL) { + perror("could not open input file"); + return 1; + } + printf("chgme "); + count=0; + while(1) { + uint8_t c = fgetc(in); + if(feof(in)) break; + if(!(count%8)) { + if(count) printf("\n "); + printf(".byt $%02x", c); + } else { + printf(", $%02x", c); + } + count++; + } + fclose(in); + return 0; + +} diff --git a/utils/chili2chr.c b/utils/chili2chr.c new file mode 100644 index 0000000..2b3c7f3 --- /dev/null +++ b/utils/chili2chr.c @@ -0,0 +1,78 @@ +#include +#include +#include +#include + +int main(int argc, char** argv) { + if(argc<2) { + printf("Usage: %s \nCurrently only 4-to-2-bit supported\n", argv[0]); + } + FILE *in, *out; + size_t in_off = 0, out_off = 0; + uint8_t pixperbyte, mask_shift, mask, depth, planeidx; + uint8_t current_pixel, current_in_tile; + int i,j; + if((in=fopen(argv[1], "rb"))==NULL) { + perror("Could not open input file"); + return 1; + } + if((out=fopen(argv[2], "wb"))==NULL) { + perror("Could not open output file"); + return 1; + } + size_t fsize, dsize; + + fseek(in, 0, SEEK_END); + fsize = ftell(in); + fseek(in, 0, SEEK_SET); + +// pixperbyte = 2; +// mask_shift = 4; +// mask = 0x03; +// depth = 2; +// 4->2 + + pixperbyte = 1; + mask_shift = 0; + mask = 0xff; + depth = 8; +// 8->8 + + dsize = fsize / pixperbyte; + uint16_t *obuf; + + if((obuf=malloc(dsize))==NULL) { + perror("Could not reserve memory"); + fclose(out); + fclose(in); + return 1; + } + memset(obuf, 0, dsize); + while (!feof(in)) { + uint8_t chunk = fgetc(in); + printf("%lX\n", out_off); + for(i=0; i>= mask_shift; + for(planeidx=0; planeidx < depth/2; planeidx++) { + for(j=0; j<2; j++) { + obuf[out_off+planeidx*8] |= ((bits & (1<<(j+2*planeidx))) >> (j+2*planeidx) << ((8*j+7)-current_pixel)); + } + } + } + in_off++; + } + free(obuf); + fwrite(obuf, dsize, 1, out); + fclose(out); + fclose(in); +} diff --git a/utils/gentilemap.c b/utils/gentilemap.c new file mode 100644 index 0000000..8151ddf --- /dev/null +++ b/utils/gentilemap.c @@ -0,0 +1,23 @@ +#include +#include + +int main(void) { +uint16_t tile=64; +uint16_t pad=0xa+64; + int i,j; + FILE *out; + if((out=fopen("tilemap", "wb"))==NULL) { + perror("Could not open output file 'tilemap'"); + return 1; + } + for(i=0; i<12; i++) { + for(j=0; j<25; j++) { + fwrite(&tile, 2, 1, out); + tile++; + } + for(j=25; j<32; j++) { + fwrite(&pad, 2, 1, out); + } + } + fclose(out); +} diff --git a/utils/palremap.c b/utils/palremap.c new file mode 100644 index 0000000..fad7297 --- /dev/null +++ b/utils/palremap.c @@ -0,0 +1,29 @@ +#include +#include + +int main(int argc, char **argv) { + if(argc<3) { + fprintf(stderr, "Usage: %s \n", argv[0]); + return 1; + } + FILE *in, *out; + if((in=fopen(argv[1], "rb"))==NULL) { + perror("Could not open input file"); + return 1; + } + if((out=fopen(argv[2], "wb"))==NULL) { + perror("Could not open output file"); + return 1; + } + while(1) { + uint8_t c=fgetc(in); + if(feof(in))break; + if(c>=1 && c<=43) { + c+=212; + } + fputc(c, out); + } + fclose(out); + fclose(in); + return 0; +} diff --git a/verilog/sd2snes/dcm.v b/verilog/sd2snes/dcm.v index 7916673..ff64fb0 100644 --- a/verilog/sd2snes/dcm.v +++ b/verilog/sd2snes/dcm.v @@ -20,12 +20,10 @@ ////////////////////////////////////////////////////////////////////////////////// module my_dcm ( input CLKIN, - input CLKFB, - output CLK2X, output CLKFX, - output CLK0, output LOCKED, - input RST + input RST, + output[7:0] STATUS ); // DCM: Digital Clock Manager Circuit @@ -39,10 +37,10 @@ module my_dcm ( .CLKFX_DIVIDE(1), // Can be any integer from 1 to 32 .CLKFX_MULTIPLY(4), // Can be any integer from 2 to 32 .CLKIN_DIVIDE_BY_2("FALSE"), // TRUE/FALSE to enable CLKIN divide by two feature - .CLKIN_PERIOD(46.561), // Specify period of input clock + .CLKIN_PERIOD(47.000), // Specify period of input clock .CLKOUT_PHASE_SHIFT("NONE"), // Specify phase shift of NONE, FIXED or VARIABLE .CLK_FEEDBACK("NONE"), // Specify clock feedback of NONE, 1X or 2X - .DESKEW_ADJUST("SYSTEM_SYNCHRONOUS"), // SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or + .DESKEW_ADJUST("SOURCE_SYNCHRONOUS"), // SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or // an integer from 0 to 15 .DFS_FREQUENCY_MODE("LOW"), // HIGH or LOW frequency mode for frequency synthesis .DLL_FREQUENCY_MODE("LOW"), // HIGH or LOW frequency mode for DLL @@ -50,7 +48,7 @@ module my_dcm ( .FACTORY_JF(16'hC080), // FACTORY JF values // .LOC("DCM_X0Y0"), .PHASE_SHIFT(0), // Amount of fixed phase shift from -255 to 255 - .STARTUP_WAIT("FALSE") // Delay configuration DONE until DCM LOCK, TRUE/FALSE + .STARTUP_WAIT("TRUE") // Delay configuration DONE until DCM LOCK, TRUE/FALSE ) DCM_inst ( .CLK0(CLK0), // 0 degree DCM CLK output .CLK180(CLK180), // 180 degree DCM CLK output diff --git a/verilog/sd2snes/main.ucf b/verilog/sd2snes/main.ucf index 4bace8f..7fae137 100644 --- a/verilog/sd2snes/main.ucf +++ b/verilog/sd2snes/main.ucf @@ -74,7 +74,6 @@ NET "SNES_REFRESH" IOSTANDARD = LVCMOS33; NET "SPI_MISO" IOSTANDARD = LVCMOS33; NET "SPI_MOSI" IOSTANDARD = LVCMOS33; NET "SPI_SCK" IOSTANDARD = LVCMOS33; -NET "SPI_SS" IOSTANDARD = LVCMOS33; NET "SRAM_DATA[10]" IOSTANDARD = LVCMOS33; NET "SRAM_DATA[11]" IOSTANDARD = LVCMOS33; NET "SRAM_DATA[12]" IOSTANDARD = LVCMOS33; @@ -181,8 +180,7 @@ NET "SRAM_DATA[7]" LOC = P116; NET "SRAM_DATA[8]" LOC = P96; NET "SRAM_DATA[9]" LOC = P98; NET "SRAM_OE" LOC = P93; -NET "CLKIN" IOSTANDARD = LVCMOS33; -TIMESPEC TS_test = FROM "FFS" TO "FFS" 10 ns; +TIMESPEC TS_test = FROM FFS TO FFS 10 ns; NET "SNES_ADDR<0>" MAXDELAY = 10 ns; NET "SNES_ADDR<0>" MAXSKEW = 5 ns; NET "SNES_ADDR<1>" MAXDELAY = 10 ns; @@ -231,3 +229,13 @@ NET "SNES_ADDR<22>" MAXDELAY = 10 ns; NET "SNES_ADDR<22>" MAXSKEW = 5 ns; NET "SNES_ADDR<23>" MAXDELAY = 10 ns; NET "SNES_ADDR<23>" MAXSKEW = 5 ns; +NET "CLKIN" IOSTANDARD = LVCMOS33; +NET "CLKIN" PULLUP; +NET "SPI_SS" IOSTANDARD = LVCMOS33; +NET "SPI_SS" PULLUP; +NET "DCM_FX_STOPPED" LOC = P44; +NET "DCM_FX_STOPPED" IOSTANDARD = LVCMOS33; +NET "DCM_IN_STOPPED" LOC = P41; +NET "DCM_IN_STOPPED" IOSTANDARD = LVCMOS33; +//NET "DCM_RST" LOC = P46; +//NET "DCM_RST" IOSTANDARD = LVCMOS33; diff --git a/verilog/sd2snes/main.v b/verilog/sd2snes/main.v index ff27a16..9ee6679 100644 --- a/verilog/sd2snes/main.v +++ b/verilog/sd2snes/main.v @@ -49,10 +49,12 @@ module main( output SPI_MISO, input SPI_SS, input SPI_SCK, - input AVR_ENA + input AVR_ENA, /* debug */ - + output DCM_IN_STOPPED, + output DCM_FX_STOPPED + //input DCM_RST ); wire [7:0] spi_cmd_data; wire [7:0] spi_param_data; @@ -107,15 +109,49 @@ avr_cmd snes_avr_cmd( .rom_mask_out(ROM_MASK) ); +wire [7:0] DCM_STATUS; +assign DCM_FX_STOPPED = DCM_STATUS[2]; +assign DCM_IN_STOPPED = DCM_STATUS[1]; my_dcm snes_dcm(.CLKIN(CLKIN), - .CLK2X(CLK), - .CLKFB(CLKFB), .CLKFX(CLK2), - .CLK0(CLK0), .LOCKED(DCM_LOCKED), - .RST(DCM_RST) + .RST(DCM_RST), + .STATUS(DCM_STATUS) ); +assign DCM_RST = 1'b0; + +/*always @(posedge CLKIN) begin + if(DCM_FX_STOPPED) + DCM_RST <= 1'b1; + else + DCM_RST <= 1'b0; +end +*/ +/*reg DO_DCM_RESET, DCM_RESETTING; +reg DCM_RSTr; +assign DCM_RST = DCM_RSTr; +reg [2:0] DCM_RESET_CNT; +initial DO_DCM_RESET = 1'b0; +initial DCM_RESETTING = 1'b0; +always @(posedge CLKIN) begin + if(!DCM_LOCKED && !DCM_RESETTING) begin + DCM_RSTr <= 1'b1; + DO_DCM_RESET <= 1'b1; + DCM_RESET_CNT <= 3'b0; + end else if (DO_DCM_RESET) begin + DCM_RSTr <= 1'b0; + DCM_RESET_CNT <= DCM_RESET_CNT + 1; + end +end + +always @(posedge CLKIN) begin + if (DO_DCM_RESET) + DCM_RESETTING <= 1'b1; + else if (DCM_RESET_CNT == 3'b110) + DCM_RESETTING <= 1'b0; +end +*/ wire SNES_RW; reg [1:0] SNES_READr; reg [1:0] SNES_WRITEr; diff --git a/verilog/sd2snes/sd2snes.xise b/verilog/sd2snes/sd2snes.xise index 9f378ec..62923c1 100644 --- a/verilog/sd2snes/sd2snes.xise +++ b/verilog/sd2snes/sd2snes.xise @@ -101,6 +101,7 @@ +