; ; PIAglobe.128 -- Globe spinner for the C5128 and the C1028. ; ; Original C64 version by Georg Schwarz ; Reverse engineered, relocated and ported to C128 by Marko Mäkelä ; DASM source generated by Marko Mäkelä #processor 6502 #seg code ; some KERNAL definitions PRIMM = $FF7D ; PRint IMMediate Flag80 = $D7 ; 80 columns mode flag ; color definitions cBg = 0 ; background color: black cSea = 6 ; water color: dark blue cLand = 5 ; land color: dark green ; some I/O definitions PIABASE = $D7C0 ; the PIA base address MMUCR = $FF00 ; MMU Configuration Register MMUSCA = $FF01 ; MMU Select Configuration A MMUSCB = $FF02 ; MMU Select Configuration A MMUSCC = $FF03 ; MMU Select Configuration A MMUSCD = $FF04 ; MMU Select Configuration A MMUPCRA = $D501 ; MMU Preconfiguration Register A MMUPCRB = $D502 ; MMU Preconfiguration Register B MMUPCRC = $D503 ; MMU Preconfiguration Register C MMUPCRD = $D504 ; MMU Preconfiguration Register D MMUMCR = $D505 ; MMU Mode Configuration Register MMURCR = $D506 ; MMU RAM Configuration Register MMUP0L = $D507 ; MMU zeropage relocation page MMUP0H = $D508 ; MMU zeropage relocation bank MMUP1L = $D509 ; MMU stack page relocation page MMUP1H = $D50A ; MMU stack page relocation bank CIA1ICR = $DC0D ; CIA 1 Interrupt Control Register CIA2TAL = $DD04 ; CIA 2 Timer A low byte CIA2TAH = $DD05 ; CIA 2 Timer A high byte CIA2ICR = $DD0D ; CIA 1 Interrupt Control Register CIA2CRA = $DD0E ; CIA 2 Control Register A NMILO = $FFFA ; NMI vector low byte NMIHI = $FFFB ; NMI vector high byte IRQLO = $FFFE ; IRQ vector low byte IRQHI = $FFFF ; IRQ vector high byte #org $1c01 ; The BASIC line .word nl$ ; link to next line .word 6502 ; line number .byte $fe,$02,"0",":",$de,$9c,":" ; bank switching instructions .byte $9e ; SYS token ; SYS digits .if (* + 8) / 10000 .byte $30 + (* + 8) / 10000 .endif .if (* + 7) / 1000 .byte $30 + (* + 7) % 10000 / 1000 .endif .if (* + 6) / 100 .byte $30 + (* + 6) % 1000 / 100 .endif .if (* + 5) / 10 .byte $30 + (* + 5) % 100 / 10 .endif .byte $30 + (* + 4) % 10 0$: .byte 0 nl$: .word 0 ; end of BASIC program ; The program sei lda #0 sta MMUCR ; RAM bank 0, BASIC, I/O and KERNAL bit Flag80 ; Is the computer in the 80 column mode? bpl begin$ ; No, skip the message jsr PRIMM .byte $13,$13,$93,$1b,$4e,$1b,$4f,$7,$e,$5 .byte "PLEASE SWITCH TO THE 40 COLUMN SCREEN!",0 begin$: ldx #0 lda #$7f sta CIA1ICR,x ; acknowledge and disable CIA 1 interrupts sta CIA2ICR,x ; acknowledge and disable CIA 2 interrupts stx CIA2CRA ; stop timer A on CIA 2 stx CIA2TAH ldy #1 sty CIA2TAL lda #cont$ sta NMIHI lda #$3e sta MMUCR ; RAM bank 0 and I/O lda #$81 sta CIA2ICR ; enable the CIA 2 timer A interrupts lda #$19 sta CIA2CRA ; force load timer A, one shot, start timer A cont$: ; (disable NMI by causing one) stx MMUP1H sty MMUP1L ; reset the stack relocation stx MMUP0H stx MMUP0L ; reset the zeropage relocation lda #$f ; set common RAM: sta MMURCR ; force bank 0 RAM at $0000-$3FFF and at $C000-$FFFF sty MMUMCR ; ensure that the computer is in the 128 mode sta 0 ; disable character ROM sta 1 ; (and set the color RAM pointers) sty $d030 ; turn the 2 MHz mode on stx $d011 ; blank the screen stx $d01a ; disable video interrupts sta $d019 ; acknowledge video interrupts stx $d01c ; disable the sprite multicolor mode stx $d017 ; disable the vertical sprite expansion lda #cBg sta $d020 ; set screen to background color ldy #8 sty $d016 ; initialize the X scroll register lda #cSea ; initialize the sprite colors (water color) color$: dey sta $d027,y bne color$ ldx #$a ; initialize the PIA registers pia$: lda PIAtable,x sta PIABASE+1,x dex bpl pia$ ldx #$3f ; Memory configuration: 64 kB RAM in bank 0 stx MMUPCRA ; set the Preconfiguration A stx MMUCR ; activate the memory configuration meminit: ; initialize the data structures ; variable definitions ;; vectors m0 = $4c m1 = $4e m2 = $50 m3 = $52 m4 = $54 m5 = $56 m6 = $58 m7 = $5a m8 = $5c m9 = $5e ma = $60 ;; 8-bit variables mt = $62 mu = $63 mv = $64 mw = $65 mx = $66 my = $67 mz = $68 three = $69 ; this variable will contain a constant 3 carry = $6a ; this variable holds a carry flag (a bit that rotates right) l0 = $6b l1 = $6c l2 = $6d l3 = $6e l4 = $6f l5 = $70 l6 = $71 l7 = $72 ; ; Decompress the sinus table ($d800-$e67f, $e680-$f4ff) from nybbles to bytes. ; sininit: st$ = m0 sl$ = m1 sh$ = m3 sintbl = $d800 sinlo$ = sintbl sinhi$ = sinlo$ + $e80 ldy #$80 lda #<(sintab - $80) sta st$ lda #>(sintab - $80) sta st$ + 1 lda #<(sinlo$ - $80) sta sl$ lda #>(sinlo$ - $80) sta sl$ + 1 lda #<(sinhi$ - $80) sta sh$ lda #>(sinhi$ - $80) sta sh$ + 1 ldx #$f depack$: lda (st$),y and #$f sta (sl$),y lda (st$),y lsr lsr lsr lsr sta (sh$),y iny bne depack$ inc st$ + 1 inc sl$ + 1 inc sh$ + 1 dex bne depack$ sprites: ; generate the globe edge sprites from packed data (1:2 compression) st$ = m0 sl$ = m1 sh$ = m2 cnt$ = mt lda #spritab sta st$ + 1 lda #3 sta three ; initialize the constant sta cnt$ ; Generate the sprites at $200 - $7ff lda #2 sty sl$ sta sl$ + 1 lda #5 sty sh$ sta sh$ + 1 loop$: lda (st$),y and #$f tax lda fills,x sta (sl$),y lda (st$),y lsr lsr lsr lsr tax lda fills,x sta (sh$),y iny bne loop$ inc st$ + 1 inc sl$ + 1 inc sh$ + 1 dec cnt$ bne loop$ copy: src$ = m0 tgt$ = m3 ; copy some data to $f500-$f7ff ; lda #data ; sta src$+1 sty tgt$ ldx #3 loop$: lda (src$),y sta (tgt$),y iny bne loop$ inc src$ + 1 inc tgt$ + 1 dex bne loop$ sinadj: ; adjust the sinus tables adj$ = m0 ldx #sintahi - sintalo loop$: lda sintalo - 1,x sta adj$ lda sintahi - 1,x sta adj$ + 1 lda (adj$),y ora #$10 sta (adj$),y dex bne loop$ map: ; decompress the map (run length encoded) tgt$ = m0 ldx #0 stx tgt$ ; initialize low address ldy #$80 sty carry loop$: sty tgt$ + 1 ; initialize high address (to $8000) maplen$ = * + 2 loop2$: lda maplen,x pha tay mapdata$ = * + 2 lda mapdata,x fill$: dey sta (tgt$),y bne fill$ inx bne noinc$ inc maplen$ inc mapdata$ noinc$: pla clc adc tgt$ sta tgt$ bcc loop2$ ldy tgt$ + 1 iny cpy #$d8 bcc loop$ colors: ;decompress the color memory (text matrix) to $800-$be7 tgt$ = m0 cnt$ = mt ldx #0 stx tgt$ lda #8 sta tgt$ + 1 ldx #coltae - 1 - coltab loop$: stx cnt$ lda coltab,x ldx #cBg * $11 ; default: background color lsr bcc nobw$ ldx #cLand * $10 + cBg ; land and background (sea will be made with sprites) nobw$: lsr bcc nowb$ ldx #cLand * $10 + cSea ; land and sea nowb$: pha ; store amount of this color tay ; and move it to index txa ; get the color loop2$: sta (tgt$),y dey bpl loop2$ pla sec adc tgt$ sta tgt$ bcc noinc$ inc tgt$ + 1 noinc$: ldx cnt$ dex bpl loop$ calc: ; calculate the frames frame$ = mt ; frame number rot$ = mu ; counter for updating the viewing angle page$ = mv page2$ = mw indx$ = mx cnt$ = my base$ = m0 ; viewing angle tgt$ = m1 sp0$ = m2 sp1$ = m3 sp2$ = m4 sp3$ = m5 gf0$ = m6 gf1$ = m7 gf2$ = m8 gf3$ = m9 tab$ = ma t0$ = l0 t1$ = l1 t2$ = l2 t3$ = l3 u0$ = l4 u1$ = l5 i0$ = l6 i1$ = l7 lda #1 sta rot$ ldx #0 lda #$82 stx base$ sta base$ + 1 next$: stx frame$ lda base$ + 1 sta page$ lda #$3e sta MMUCR ; enable full RAM configuration (4 kB I/O) inc $d020 ; change screen color lda #87 sta indx$ lda frame$ ; calculate the MMU configuration for the frame lsr and #$20 bne noch1$ lda #$80 noch1$: and #$80 ror ora #$3e sta MMUPCRB lda frame$ ora #3 asl asl sta PIABASE sta MMUSCB lda frame$ and #2 beq noch2$ lda #$20 noch2$: sta page2$ ; set the graphics base page (0 or $20) ora #$5e ; clear the graphics buffer sta tgt$ + 1 ldy #0 sty tgt$ ldx #$1b tya clrl$: dey sta (tgt$),y bne clrl$ dec tgt$ + 1 dex bne clrl$ loop$: sta MMUSCA ; loop for calculating the frame ldy #$0 sty t0$ sty t1$ sty t2$ sty t3$ sty i1$ iny sty u0$ lda #$80 sta u1$ lda #$f8 sta i0$ ldy base$ sty sp0$ iny sty sp1$ lda page$ sta sp0$ + 1 sta sp1$ + 1 clc adc #$2c sta sp2$ + 1 sta sp3$ + 1 ldx indx$ lda $f5cc,x sta tab$ lda $f624,x sta tab$ + 1 lda coords,x sta gf0$ sta gf1$ lda $f6f8,x ora page2$ sta gf0$ + 1 adc #1 sta gf1$ + 1 lda $f750,x sta gf2$ sta gf3$ lda $f7a8,x ora page2$ sta gf2$ + 1 adc #1 sta gf3$ + 1 ldy $f67c,x inloop$: sty cnt$ lda (tab$),y adc sp1$ sta sp1$ sta sp3$ bcc noc$ lda sp1$ + 1 adc #0 bit three bne noz$ sbc #3 clc noz$: sta sp1$ + 1 adc #$2c sta sp3$ + 1 noc$: sec lda sp0$ sbc (tab$),y sta sp0$ sta sp2$ bcs cs$ lda sp0$ + 1 bit three bne noz2$ adc #4 noz2$: sbc #0 sta sp0$ + 1 adc #$2b sta sp2$ + 1 cs$: ldy #0 ldx carry txa and (sp0$),y beq nos0$ lda t0$ ora u0$ sta t0$ nos0$: txa and (sp1$),y beq nos1$ lda t1$ ora u1$ sta t1$ nos1$: txa and (sp2$),y beq nos2$ lda t2$ ora u0$ sta t2$ nos2$: txa and (sp3$),y beq nos3$ lda t3$ ora u1$ sta t3$ nos3$: sta MMUSCB asl u0$ lsr u1$ bcc noset$ lda #$80 sta u1$ ldy i0$ lda t0$ sta (gf0$),y lda t2$ sta (gf2$),y tya sbc #8 sta i0$ ldy i1$ lda t1$ sta (gf1$),y lda t3$ sta (gf3$),y tya adc #7 sta i1$ ldy #1 sty u0$ dey sty t0$ sty t1$ sty t2$ sty t3$ noset$: ldy cnt$ dey bmi skip2$ sta MMUSCA jmp inloop$ skip2$: ldy i0$ lda t0$ sta (gf0$),y lda t2$ sta (gf2$),y ldy i1$ lda t1$ sta (gf1$),y lda t3$ sta (gf3$),y lsr carry bcc nochg$ lda #$80 sta carry lda page$ adc #3 sta page$ nochg$: dec indx$ bmi skip0$ jmp loop$ skip0$: lsr rot$ bne skip1$ lda #$40 sta rot$ skip1$: lda base$ adc #9 sta base$ lda base$ + 1 adc #0 and #$fb sta base$ + 1 ldx frame$ inx cpx #112 ; calculate 112 frames bcs vidinit jmp next$ vidinit: ; copy the sprite and color data to each video bank src$ = m0 tgt$ = m1 cnt$ = mt ldy #$0 sty src$ sty tgt$ lda #56 - 1 ; there are 56 video banks of 16 kilobytes each loop$: sta cnt$ lsr and #$10 bne 0$ lda #$80 0$: ror ora #$3e sta MMUCR lda cnt$ lsr sta PIABASE+2 ; switch the video bank in at $8000-$bfff lda #$2 sta src$ + 1 lda #$9f ldx #$5 jsr vcopy$ ; sprite data: 5 pages at $9f00-a3ff lda #$bf ldx #$1 jsr vcopy$ ; sprite data: 1 page at $bf00-$bfff lda #$80 ldx #$4 jsr vcopy$ ; color data: 4 pages at $8000-$83ff dec cnt$ lda cnt$ bpl loop$ ldx #$3e stx MMUCR sta $d015 ; enable all sprites sta $d01b ; behind the graphics lda #$dc sta PIABASE jmp irqinit vcopy$: sta tgt$ + 1 ; copy x pages of data from src$ to tgt$ vloop$: lda (src$),y sta (tgt$),y iny bne vloop$ inc src$ + 1 inc tgt$ + 1 dex bne vloop$ rts sintab: .byte $00,$17,$26,$25,$15,$24,$24,$14 .byte $24,$23,$14,$23,$13,$23,$23,$13 .byte $23,$22,$03,$52,$93,$82,$63,$52 .byte $52,$53,$42,$42,$42,$43,$32,$42 .byte $32,$32,$32,$32,$32,$32,$22,$32 .byte $32,$22,$31,$22,$32,$22,$32,$21 .byte $22,$22,$32,$22,$21,$22,$22,$21 .byte $32,$22,$22,$21,$22,$21,$22,$22 .byte $21,$12,$22,$21,$22,$21,$22,$22 .byte $21,$12,$21,$22,$22,$21,$12,$21 .byte $22,$21,$12,$21,$22,$21,$12,$21 .byte $22,$21,$12,$21,$22,$12,$21,$22 .byte $11,$22,$21,$12,$21,$22,$11,$22 .byte $21,$12,$21,$22,$10,$29,$17,$26 .byte $25,$15,$24,$24,$14,$24,$23,$04 .byte $c3,$93,$73,$63,$53,$52,$43,$43 .byte $42,$43,$42,$33,$32,$32,$43,$32 .byte $32,$22,$33,$32,$32,$22,$32,$22 .byte $32,$22,$32,$22,$22,$32,$21,$22 .byte $22,$22,$32,$22,$21,$22,$22,$22 .byte $22,$21,$22,$22,$21,$22,$22,$22 .byte $21,$22,$11,$22,$22,$21,$22,$22 .byte $11,$22,$21,$22,$22,$11,$22,$21 .byte $22,$11,$22,$22,$21,$12,$21,$22 .byte $11,$22,$21,$12,$21,$22,$21,$12 .byte $21,$22,$12,$21,$12,$21,$22,$11 .byte $22,$21,$12,$21,$22,$11,$22,$21 .byte $12,$20,$2a,$07,$a6,$85,$65,$64 .byte $54,$54,$44,$43,$44,$43,$33,$43 .byte $33,$33,$32,$33,$33,$32,$33,$22 .byte $33,$32,$22,$33,$22,$32,$22,$22 .byte $33,$22,$22,$22,$32,$22,$22,$22 .byte $22,$22,$22,$21,$22,$22,$22,$22 .byte $22,$21,$22,$22,$22,$22,$21,$22 .byte $22,$11,$22,$22,$21,$22,$12,$21 .byte $22,$22,$21,$12,$22,$21,$22,$11 .byte $22,$22,$11,$22,$21,$22,$11,$22 .byte $22,$11,$22,$21,$12,$21,$22,$11 .byte $22,$21,$12,$21,$22,$11,$22,$22 .byte $11,$22,$21,$12,$21,$22,$01,$d2 .byte $91,$72,$61,$52,$51,$52,$40,$49 .byte $47,$36,$46,$35,$44,$34,$34,$34 .byte $33,$24,$33,$33,$23,$33,$33,$22 .byte $33,$23,$22,$33,$22,$23,$32,$22 .byte $23,$22,$22,$22,$32,$23,$22,$22 .byte $22,$22,$22,$22,$22,$22,$22,$12 .byte $21,$22,$22,$22,$22,$22,$21,$12 .byte $22,$22,$22,$21,$12,$22,$21,$22 .byte $12,$21,$22,$22,$11,$22,$22,$21 .byte $12,$22,$21,$12,$21,$22,$12,$21 .byte $22,$21,$12,$21,$22,$12,$21,$22 .byte $11,$22,$21,$12,$21,$22,$11,$22 .byte $21,$02,$b1,$82,$71,$52,$52,$51 .byte $52,$41,$42,$41,$32,$41,$32,$31 .byte $32,$31,$32,$30,$3a,$37,$26,$36 .byte $24,$35,$24,$34,$23,$34,$23,$24 .byte $33,$23,$23,$22,$23,$33,$23,$22 .byte $23,$22,$23,$22,$22,$23,$22,$22 .byte $22,$22,$22,$23,$22,$12,$22,$22 .byte $22,$22,$22,$22,$11,$22,$22,$22 .byte $22,$12,$22,$21,$22,$12,$22,$21 .byte $22,$12,$22,$21,$12,$22,$21,$22 .byte $12,$21,$22,$12,$21,$22,$12,$21 .byte $22,$11,$22,$22,$11,$22,$21,$12 .byte $21,$22,$22,$01,$22,$91,$82,$61 .byte $62,$51,$42,$41,$52,$31,$42,$41 .byte $32,$31,$42,$32,$31,$32,$21,$32 .byte $31,$32,$21,$32,$21,$32,$21,$32 .byte $20,$29,$38,$26,$25,$25,$35,$24 .byte $24,$23,$24,$23,$23,$24,$23,$22 .byte $23,$23,$23,$22,$23,$23,$22,$22 .byte $23,$22,$22,$13,$22,$22,$22,$22 .byte $23,$12,$22,$22,$22,$22,$12,$22 .byte $21,$22,$12,$22,$22,$22,$12,$22 .byte $21,$12,$22,$22,$21,$12,$22,$22 .byte $11,$22,$22,$11,$22,$22,$11,$22 .byte $22,$11,$22,$22,$21,$02,$d1,$82 .byte $72,$61,$62,$41,$52,$41,$42,$42 .byte $41,$32,$41,$32,$31,$32,$31,$32 .byte $31,$32,$21,$32,$31,$22,$31,$22 .byte $31,$22,$22,$31,$22,$21,$22,$31 .byte $22,$21,$22,$21,$22,$30,$2a,$27 .byte $26,$26,$25,$24,$24,$24,$24,$14 .byte $23,$23,$23,$23,$23,$23,$23,$13 .byte $22,$23,$22,$23,$22,$13,$22,$22 .byte $23,$12,$22,$22,$22,$22,$12,$23 .byte $22,$12,$22,$22,$21,$12,$22,$22 .byte $12,$22,$22,$22,$11,$22,$22,$12 .byte $22,$21,$12,$22,$22,$21,$02,$b2 .byte $81,$62,$62,$51,$52,$52,$41,$42 .byte $41,$32,$42,$31,$32,$32,$31,$32 .byte $31,$32,$31,$32,$22,$31,$22,$31 .byte $22,$31,$22,$31,$22,$21,$32,$21 .byte $22,$21,$22,$21,$32,$21,$22,$21 .byte $22,$21,$22,$22,$21,$22,$21,$22 .byte $21,$22,$20,$2b,$18,$26,$25,$25 .byte $25,$24,$24,$14,$23,$24,$23,$23 .byte $13,$23,$23,$23,$12,$23,$23,$22 .byte $13,$22,$22,$23,$12,$22,$23,$22 .byte $12,$22,$22,$12,$22,$22,$22,$12 .byte $22,$22,$12,$22,$22,$22,$02,$12 .byte $a2,$71,$72,$52,$52,$51,$42,$42 .byte $42,$41,$42,$32,$32,$41,$32,$32 .byte $31,$32,$22,$31,$32,$31,$22,$32 .byte $21,$32,$21,$22,$32,$21,$22,$31 .byte $22,$21,$22,$32,$21,$22,$21,$22 .byte $21,$22,$21,$22,$21,$22,$21,$22 .byte $21,$22,$21,$22,$21,$22,$21,$22 .byte $11,$22,$21,$22,$21,$22,$12,$20 .byte $2b,$28,$26,$16,$25,$24,$25,$14 .byte $23,$24,$23,$14,$23,$23,$23,$13 .byte $22,$23,$23,$12,$23,$22,$13,$22 .byte $23,$22,$12,$22,$23,$22,$02,$e2 .byte $82,$72,$62,$62,$52,$42,$52,$42 .byte $42,$32,$42,$32,$42,$31,$32,$32 .byte $32,$32,$31,$22,$32,$32,$21,$32 .byte $22,$31,$22,$32,$22,$21,$32,$21 .byte $22,$22,$31,$22,$22,$21,$22,$21 .byte $22,$22,$31,$22,$21,$22,$21,$22 .byte $12,$21,$22,$21,$22,$21,$22,$21 .byte $22,$21,$12,$21,$22,$21,$22,$21 .byte $12,$21,$22,$21,$22,$11,$22,$21 .byte $22,$11,$22,$22,$20,$1c,$28,$27 .byte $25,$15,$25,$24,$24,$14,$24,$23 .byte $23,$13,$24,$23,$22,$03,$b3,$93 .byte $62,$63,$52,$53,$52,$42,$43,$42 .byte $42,$32,$43,$32,$32,$32,$32,$32 .byte $32,$32,$32,$22,$32,$32,$22,$32 .byte $22,$31,$22,$22,$32,$22,$22,$21 .byte $32,$22,$22,$21,$22,$22,$31,$22 .byte $22,$21,$22,$22,$21,$22,$22,$21 .byte $22,$22,$21,$22,$11,$22,$22,$21 .byte $22,$21,$22,$21,$12,$21,$22,$22 .byte $21,$12,$21,$22,$21,$22,$11,$22 .byte $21,$22,$21,$12,$21,$22,$21,$12 .byte $21,$22,$21,$12,$21,$22,$21,$12 .byte $22,$20,$2d,$08,$b7,$76,$75,$64 .byte $55,$54,$44,$53,$44,$33,$43,$33 .byte $43,$33,$33,$33,$32,$33,$32,$33 .byte $32,$23,$32,$33,$22,$32,$22,$32 .byte $23,$22,$32,$22,$22,$32,$22,$22 .byte $22,$22,$32,$22,$22,$21,$22,$22 .byte $22,$22,$22,$21,$22,$22,$22,$21 .byte $22,$22,$22,$21,$22,$12,$21,$22 .byte $22,$21,$22,$22,$11,$22,$21,$22 .byte $22,$21,$12,$21,$22,$22,$21,$12 .byte $21,$22,$21,$12,$22,$21,$22,$11 .byte $22,$21,$22,$11,$22,$21,$22,$21 .byte $02,$01,$a2,$71,$72,$51,$52,$51 .byte $52,$41,$42,$41,$32,$42,$30,$3f .byte $39,$47,$36,$25,$35,$34,$34,$34 .byte $24,$33,$23,$34,$23,$33,$23,$33 .byte $22,$23,$33,$22,$23,$22,$23,$32 .byte $22,$23,$22,$22,$22,$22,$22,$23 .byte $22,$22,$22,$22,$22,$22,$22,$22 .byte $22,$21,$22,$22,$22,$22,$12,$21 .byte $22,$22,$22,$22,$21,$12,$22,$21 .byte $22,$22,$12,$21,$22,$22,$21,$12 .byte $21,$22,$22,$21,$12,$22,$21,$22 .byte $11,$22,$22,$21,$22,$01,$e2,$91 .byte $72,$61,$62,$52,$41,$52,$41,$42 .byte $41,$32,$41,$32,$31,$42,$31,$32 .byte $31,$22,$31,$32,$31,$22,$31,$22 .byte $31,$22,$32,$20,$3a,$27,$26,$35 .byte $25,$24,$25,$33,$24,$24,$23,$23 .byte $23,$23,$33,$23,$23,$23,$22,$23 .byte $22,$23,$22,$23,$12,$22,$23,$22 .byte $22,$22,$22,$22,$22,$23,$12,$22 .byte $22,$22,$21,$22,$22,$12,$22,$22 .byte $22,$22,$11,$22,$22,$22,$22,$11 .byte $22,$22,$22,$21,$12,$22,$21,$22 .byte $22,$01,$d2,$82,$71,$62,$62,$51 .byte $42,$52,$41,$42,$41,$32,$41,$32 .byte $32,$41,$32,$31,$32,$21,$32,$32 .byte $31,$22,$31,$32,$21,$32,$21,$22 .byte $31,$22,$31,$22,$21,$22,$31,$22 .byte $21,$22,$21,$22,$31,$22,$22,$20 .byte $2a,$28,$26,$25,$25,$25,$24,$24 .byte $24,$23,$23,$24,$23,$13,$23,$23 .byte $23,$22,$23,$22,$23,$12,$23,$22 .byte $23,$22,$22,$22,$13,$22,$22,$22 .byte $22,$12,$22,$22,$22,$22,$12,$22 .byte $22,$22,$22,$22,$02,$b1,$92,$62 .byte $62,$62,$51,$52,$42,$42,$41,$42 .byte $32,$42,$31,$32,$42,$31,$32,$32 .byte $21,$32,$32,$31,$22,$31,$32,$22 .byte $31,$22,$31,$22,$22,$31,$22,$21 .byte $22,$31,$22,$21,$22,$22,$31,$22 .byte $21,$22,$21,$22,$21,$22,$21,$22 .byte $21,$22,$21,$22,$21,$22,$21,$22 .byte $21,$22,$22,$20,$1b,$27,$27,$25 .byte $25,$25,$24,$24,$14,$23,$24,$23 .byte $23,$23,$13,$23,$23,$23,$22,$23 .byte $13,$22,$23,$22,$22,$23,$02,$b2 .byte $82,$73,$52,$62,$52,$42,$52,$42 .byte $42,$42,$32,$42,$32,$32,$32,$42 .byte $31,$32,$22,$32,$32,$32,$21,$32 .byte $32,$22,$31,$22,$32,$21,$22,$32 .byte $22,$21,$32,$22,$21,$22,$21,$32 .byte $22,$21,$22,$22,$21,$22,$21,$22 .byte $21,$22,$22,$21,$22,$21,$22,$21 .byte $22,$21,$22,$22,$21,$22,$21,$22 .byte $21,$22,$11,$22,$21,$22,$21,$22 .byte $21,$22,$11,$22,$21,$22,$22,$20 .byte $1c,$28,$27,$25,$25,$25,$24,$04 .byte $b4,$84,$63,$64,$63,$53,$43,$53 .byte $43,$42,$33,$43,$42,$33,$32,$33 .byte $32,$32,$33,$32,$32,$32,$32,$23 .byte $32,$32,$22,$32,$22,$32,$22,$22 .byte $32,$22,$21,$32,$22,$22,$22,$32 .byte $22,$21,$22,$22,$22,$21,$32,$22 .byte $22,$21,$22,$22,$21,$22,$22,$21 .byte $22,$22,$21,$22,$22,$21,$12,$21 .byte $22,$22,$21,$22,$21,$22,$22,$21 .byte $12,$21,$22,$21,$22,$21,$22,$22 .byte $11,$22,$21,$22,$21,$22,$21,$02 .byte $61,$b2,$81,$62,$61,$52,$51,$52 .byte $41,$42,$42,$40,$4f,$38,$47,$36 .byte $35,$35,$35,$34,$33,$34,$34,$33 .byte $23,$33,$23,$33,$33,$23,$33,$22 .byte $23,$32,$23,$22,$33,$22,$22,$32 .byte $23,$22,$22,$22,$22,$32,$22,$22 .byte $23,$22,$21,$22,$22,$22,$22,$22 .byte $22,$22,$22,$21,$22,$22,$22,$22 .byte $21,$22,$22,$22,$21,$12,$22,$22 .byte $21,$22,$22,$21,$22,$22,$11,$22 .byte $21,$22,$22,$21,$22,$21,$22,$02 .byte $31,$a2,$81,$72,$62,$51,$52,$51 .byte $42,$41,$42,$41,$32,$42,$31,$42 .byte $31,$32,$31,$32,$31,$32,$31,$22 .byte $31,$32,$21,$32,$31,$22,$32,$20 .byte $2a,$37,$26,$25,$35,$25,$24,$34 .byte $23,$24,$23,$24,$33,$23,$23,$23 .byte $22,$23,$23,$22,$23,$22,$23,$22 .byte $22,$23,$22,$22,$23,$22,$22,$22 .byte $22,$22,$22,$22,$22,$22,$22,$22 .byte $22,$22,$22,$22,$12,$21,$22,$22 .byte $22,$22,$21,$22,$22,$22,$01,$32 .byte $a2,$82,$61,$62,$62,$41,$52,$52 .byte $41,$42,$32,$41,$42,$32,$31,$42 .byte $31,$32,$32,$31,$32,$21,$32,$31 .byte $32,$22,$31,$22,$31,$22,$31,$22 .byte $31,$22,$22,$31,$22,$21,$32,$21 .byte $22,$21,$32,$21,$22,$21,$22,$21 .byte $22,$32,$20,$2b,$27,$27,$25,$25 .byte $25,$24,$24,$24,$23,$24,$23,$23 .byte $23,$23,$23,$23,$22,$23,$23,$12 .byte $23,$22,$23,$22,$22,$23,$22,$22 .byte $22,$22,$23,$22,$02,$32,$a2,$82 .byte $62,$62,$62,$52,$52,$42,$41,$42 .byte $42,$42,$32,$42,$31,$32,$32,$32 .byte $42,$21,$32,$32,$31,$32,$22,$32 .byte $31,$22,$32,$21,$32,$22,$31,$22 .byte $21,$32,$22,$21,$32,$21,$22,$22 .byte $31,$22,$21,$22,$22,$31,$22,$21 .byte $22,$21,$22,$21,$22,$22,$21,$22 .byte $21,$22,$21,$22,$21,$22,$21,$22 .byte $21,$22,$21,$22,$22,$20,$2c,$28 .byte $27,$26,$25,$24,$25,$24,$24,$23 .byte $24,$03,$43,$b3,$83,$73,$63,$53 .byte $53,$52,$43,$42,$53,$32,$43,$42 .byte $32,$42,$33,$32,$32,$32,$32,$32 .byte $32,$33,$22,$32,$32,$31,$22,$32 .byte $22,$32,$22,$32,$22,$22,$31,$22 .byte $22,$32,$22,$21,$32,$22,$22,$21 .byte $22,$32,$21,$22,$22,$21,$22,$22 .byte $21,$32,$22,$21,$22,$22,$21,$22 .byte $21,$22,$22,$21,$22,$21,$22,$21 .byte $22,$22,$21,$22,$21,$22,$21,$22 .byte $21,$22,$22,$21,$22,$01,$a2,$91 .byte $62,$71,$52,$51,$52,$41,$52,$42 .byte $40,$3f,$49,$47,$36,$35,$45,$35 .byte $34,$34,$33,$34,$23,$33,$34,$33 .byte $23,$32,$33,$23,$33,$22,$33,$22 .byte $23,$32,$22,$33,$22,$22,$22,$33 .byte $22,$22,$22,$32,$22,$22,$22,$22 .byte $22,$32,$22,$22,$22,$22,$22,$21 .byte $22,$22,$22,$22,$22,$21,$22,$32 .byte $22,$21,$22,$22,$21,$22,$22,$22 .byte $21,$22,$22,$21,$22,$21,$22,$02 .byte $c1,$82,$72,$61,$62,$51,$52,$52 .byte $41,$42,$41,$42,$31,$42,$32,$41 .byte $32,$31,$32,$31,$32,$31,$32,$32 .byte $31,$22,$31,$32,$21,$32,$21,$32 .byte $21,$32,$22,$30,$2a,$37,$27,$25 .byte $25,$34,$25,$24,$33,$24,$23,$24 .byte $23,$33,$23,$23,$23,$22,$23,$23 .byte $32,$23,$22,$22,$23,$22,$22,$23 .byte $22,$22,$22,$22,$23,$22,$22,$22 .byte $22,$22,$22,$22,$22,$22,$22,$31 .byte $02,$c2,$82,$82,$62,$61,$52,$52 .byte $52,$42,$41,$42,$42,$42,$31,$42 .byte $32,$31,$42,$32,$31,$32,$32,$31 .byte $22,$32,$31,$32,$21,$32,$32,$21 .byte $32,$21,$32,$22,$31,$22,$21,$32 .byte $22,$31,$22,$21,$22,$31,$22,$21 .byte $22,$32,$21,$22,$21,$22,$31,$22 .byte $21,$22,$21,$22,$22,$20,$2b,$38 .byte $27,$25,$26,$24,$24,$25,$23,$24 .byte $23,$24,$23,$23,$23,$23,$23,$33 .byte $02,$d3,$92,$83,$62,$63,$62,$53 .byte $42,$52,$42,$43,$42,$42,$32,$42 .byte $32,$42,$32,$32,$32,$32,$32,$32 .byte $32,$32,$32,$22,$32,$32,$21,$32 .byte $32,$22,$32,$21,$32,$22,$22,$31 .byte $22,$32,$21,$22,$32,$21,$22,$22 .byte $31,$22,$22,$21,$32,$22,$21,$22 .byte $22,$21,$32,$21,$22,$22,$21,$22 .byte $21,$22,$31,$22,$22,$21,$22,$21 .byte $22,$21,$22,$21,$22,$22,$31,$02 .byte $f1,$a2,$81,$62,$61,$62,$52,$50 .byte $4e,$59,$47,$46,$45,$35,$44,$34 .byte $44,$34,$33,$34,$43,$33,$33,$23 .byte $33,$33,$33,$32,$23,$32,$33,$22 .byte $33,$22,$32,$23,$32,$22,$32,$23 .byte $32,$22,$22,$32,$22,$22,$32,$22 .byte $22,$22,$32,$22,$22,$21,$22,$32 .byte $22,$22,$22,$21,$32,$22,$22,$22 .byte $21,$22,$22,$21,$32,$22,$22,$21 .byte $22,$22,$21,$22,$32,$01,$32,$b2 .byte $81,$72,$71,$52,$52,$51,$52,$41 .byte $52,$42,$41,$32,$41,$32,$41,$32 .byte $42,$31,$32,$31,$32,$31,$32,$32 .byte $21,$32,$31,$32,$21,$32,$31,$22 .byte $32,$20,$3a,$28,$36,$25,$35,$25 .byte $24,$34,$24,$23,$34,$23,$23,$33 .byte $23,$23,$23,$33,$22,$23,$23,$32 .byte $23,$22,$22,$23,$32,$22,$23,$22 .byte $22,$22,$22,$32,$22,$23,$22,$22 .byte $22,$32,$01,$b2,$92,$82,$62,$62 .byte $62,$52,$42,$51,$42,$42,$42,$42 .byte $41,$32,$42,$31,$42,$32,$32,$31 .byte $32,$32,$31,$32,$32,$31,$32,$22 .byte $31,$32,$22,$31,$32,$21,$32,$22 .byte $31,$22,$31,$22,$22,$31,$22,$31 .byte $22,$22,$31,$22,$21,$32,$21,$22 .byte $21,$32,$22,$21,$22,$31,$22,$21 .byte $22,$22,$30,$2b,$28,$27,$26,$35 .byte $24,$25,$24,$24,$33,$04,$e3,$a3 .byte $83,$73,$63,$53,$63,$53,$42,$53 .byte $42,$43,$42,$43,$32,$43,$32,$42 .byte $32,$32,$33,$32,$42,$32,$22,$32 .byte $32,$32,$32,$32,$22,$32,$32,$22 .byte $32,$21,$32,$32,$22,$32,$22,$31 .byte $22,$22,$32,$21,$32,$22,$22,$31 .byte $22,$22,$31,$22,$22,$22,$31,$22 .byte $21,$32,$22,$21,$22,$22,$31,$22 .byte $22,$21,$32,$21,$22,$22,$31,$02 .byte $41,$b2,$81,$82,$62,$61,$52,$51 .byte $52,$51,$42,$42,$41,$42,$41,$42 .byte $31,$42,$32,$30,$30,$49,$37,$36 .byte $35,$35,$34,$34,$24,$34,$34,$33 .byte $23,$33,$33,$23,$33,$23,$33,$33 .byte $22,$33,$22,$23,$32,$23,$32,$22 .byte $32,$23,$22,$32,$22,$22,$32,$23 .byte $22,$32,$22,$22,$32,$22,$22,$21 .byte $32,$22,$22,$22,$32,$22,$21,$32 .byte $02,$d2,$92,$81,$72,$62,$62,$51 .byte $52,$52,$42,$41,$52,$42,$31,$42 .byte $42,$31,$42,$32,$31,$42,$32,$31 .byte $32,$31,$32,$32,$31,$32,$21,$32 .byte $32,$31,$22,$31,$32,$22,$31,$22 .byte $31,$32,$21,$32,$22,$31,$22,$21 .byte $32,$21,$32,$22,$30,$2a,$28,$36 .byte $26,$25,$35,$24,$24,$34,$23,$24 .byte $33,$23,$23,$33,$23,$23,$33,$03 .byte $32,$b3,$82,$73,$72,$63,$52,$63 .byte $42,$52,$42,$52,$43,$42,$42,$32 .byte $42,$32,$42,$32,$42,$32,$32,$32 .byte $32,$32,$32,$32,$31,$32,$32,$32 .byte $22,$32,$31,$22,$32,$32,$21,$32 .byte $32,$22,$31,$22,$32,$21,$32,$22 .byte $31,$22,$32,$21,$22,$32,$21,$32 .byte $22,$21,$32,$21,$32,$22,$21,$32 .byte $21,$22,$32,$21,$32,$01,$e2,$92 .byte $81,$72,$71,$52,$61,$52,$52,$41 .byte $52,$41,$42,$42,$40,$3d,$48,$37 .byte $46,$35,$45,$34,$34,$34,$34,$34 .byte $33,$33,$33,$33,$33,$33,$33,$23 .byte $32,$33,$33,$22,$33,$32,$22,$33 .byte $22,$32,$33,$22,$32,$22,$32,$22 .byte $33,$22,$32,$22,$22,$32,$22,$32 .byte $21,$32,$22,$22,$32,$22,$32,$22 .byte $31,$02,$72,$b2,$92,$81,$72,$62 .byte $62,$51,$52,$52,$41,$52,$42,$42 .byte $41,$42,$32,$41,$32,$41,$32,$42 .byte $31,$32,$32,$31,$42,$32,$31,$32 .byte $21,$32,$32,$31,$32,$31,$22,$32 .byte $31,$32,$21,$32,$31,$22,$32,$21 .byte $32,$31,$22,$32,$20,$3a,$27,$37 .byte $25,$35,$25,$34,$24,$34,$23,$34 .byte $23,$33,$23,$33,$03,$03,$a3,$93 .byte $72,$73,$62,$53,$62,$53,$42,$52 .byte $43,$52,$42,$42,$33,$42,$42,$32 .byte $42,$32,$42,$32,$32,$32,$42,$32 .byte $32,$32,$32,$32,$31,$32,$32,$22 .byte $32,$32,$31,$32,$22,$32,$32,$21 .byte $32,$32,$21,$32,$32,$22,$31,$22 .byte $32,$31,$22,$32,$21,$32,$22,$31 .byte $22,$32,$21,$32,$31,$02,$e2,$a1 .byte $92,$71,$62,$62,$61,$52,$51,$52 .byte $52,$41,$42,$41,$42,$42,$41,$42 .byte $31,$42,$32,$40,$3c,$38,$47,$36 .byte $35,$35,$34,$34,$34,$34,$33,$34 .byte $33,$33,$33,$23,$33,$33,$33,$32 .byte $23,$33,$32,$23,$32,$32,$23,$32 .byte $32,$23,$32,$32,$22,$32,$22,$32 .byte $33,$22,$32,$32,$02,$d2,$a2,$81 .byte $72,$72,$62,$52,$62,$52,$42,$51 .byte $42,$52,$42,$42,$41,$42,$32,$42 .byte $41,$32,$42,$32,$31,$42,$32,$31 .byte $32,$32,$41,$32,$32,$31,$32,$32 .byte $21,$32,$32,$31,$32,$31,$32,$22 .byte $31,$32,$32,$21,$32,$31,$32,$22 .byte $31,$32,$21,$32,$32,$21,$32,$31 .byte $32,$02,$d0,$a4,$8a,$77,$76,$66 .byte $55,$64,$55,$54,$43,$54,$43,$44 .byte $43,$43,$43,$43,$43,$33,$42,$43 .byte $33,$32,$43,$32,$33,$42,$32,$33 .byte $32,$32,$32,$32,$33,$32,$32,$32 .byte $32,$32,$32,$32,$32,$22,$32,$32 .byte $32,$32,$32,$21,$32,$32,$32,$22 .byte $32,$31,$32,$32,$02,$a2,$d1,$a2 .byte $82,$72,$71,$62,$62,$51,$62,$52 .byte $41,$52,$42,$52,$41,$42,$41,$42 .byte $32,$41,$42,$32,$41,$32,$42,$31 .byte $42,$31,$32,$32,$41,$32,$31,$32 .byte $32,$31,$32,$32,$31,$32,$31,$32 .byte $32,$30,$3c,$38,$37,$35,$26,$34 .byte $35,$34,$34,$33,$34,$33,$04,$d3 .byte $a3,$93,$73,$73,$62,$63,$63,$52 .byte $53,$52,$53,$42,$52,$43,$42,$42 .byte $43,$42,$42,$42,$32,$42,$32,$42 .byte $32,$42,$32,$42,$32,$32,$32,$42 .byte $32,$32,$32,$32,$32,$31,$42,$32 .byte $32,$32,$31,$32,$32,$32,$32,$31 .byte $32,$32,$31,$32,$32,$02,$f1,$b2 .byte $82,$81,$72,$72,$61,$62,$52,$51 .byte $52,$52,$51,$42,$51,$42,$42,$41 .byte $42,$42,$41,$42,$41,$32,$42,$41 .byte $32,$41,$32,$32,$41,$32,$32,$40 .byte $33,$39,$48,$36,$35,$35,$35,$34 .byte $44,$34,$33,$34,$33,$33,$34,$33 .byte $33,$42,$03,$13,$c3,$92,$93,$72 .byte $73,$62,$63,$62,$52,$63,$52,$42 .byte $52,$52,$43,$42,$52,$42,$42,$42 .byte $42,$32,$42,$42,$42,$32,$42,$42 .byte $31,$42,$32,$42,$32,$32,$41,$32 .byte $32,$42,$32,$31,$42,$32,$32,$31 .byte $42,$32,$32,$31,$42,$02,$d1,$e2 .byte $b2,$91,$82,$72,$71,$62,$62,$61 .byte $52,$52,$51,$52,$52,$51,$42,$51 .byte $42,$42,$41,$42,$42,$41,$42,$41 .byte $42,$32,$41,$42,$42,$30,$4c,$38 .byte $47,$36,$45,$35,$44,$34,$44,$34 .byte $33,$44,$33,$43,$33,$43,$03,$33 .byte $d3,$a3,$92,$83,$72,$73,$62,$63 .byte $62,$62,$53,$52,$52,$52,$53,$42 .byte $52,$42,$42,$52,$42,$42,$42,$42 .byte $42,$42,$42,$42,$42,$32,$42,$42 .byte $42,$31,$42,$42,$32,$42,$41,$32 .byte $42,$32,$42,$41,$02,$12,$d2,$a1 .byte $92,$82,$71,$72,$72,$62,$61,$62 .byte $52,$51,$62,$52,$51,$42,$52,$51 spritab: ; sprite shape data .byte $00,$00,$11,$00,$00,$3f,$00,$05 .byte $4f,$01,$0f,$6f,$05,$0f,$7f,$0f .byte $1f,$ff,$0f,$2f,$ff,$0f,$3f,$ff .byte $0f,$5f,$ff,$0f,$6f,$ff,$0f,$7f .byte $ff,$0f,$ff,$ff,$1f,$ff,$ff,$2f .byte $ff,$ff,$4f,$ff,$ff,$5f,$ff,$ff .byte $6f,$ff,$ff,$7f,$ff,$ff,$ff,$ff .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff .byte $f0,$f7,$af,$f0,$f7,$af,$f0,$ff .byte $af,$f0,$ff,$af,$f1,$ff,$af,$f1 .byte $ff,$af,$f1,$ff,$af,$f2,$ff,$af .byte $f2,$ff,$af,$f2,$ff,$af,$f3,$ff .byte $af,$f3,$ff,$9f,$f3,$ff,$9f,$f3 .byte $ff,$9f,$f4,$ff,$9f,$f4,$ff,$9f .byte $f4,$ff,$8f,$f4,$ff,$8f,$f4,$ff .byte $8f,$f5,$ff,$8f,$f5,$ff,$0f,$ff .byte $ff,$ff,$fd,$ff,$ff,$fd,$ff,$ff .byte $fc,$ff,$ff,$fc,$ff,$ff,$fb,$ff .byte $ff,$fa,$ff,$ff,$fa,$ff,$ff,$f9 .byte $ff,$ff,$f9,$ff,$ff,$f8,$ff,$ff .byte $f0,$ff,$ff,$e0,$ff,$fe,$c0,$ff .byte $fd,$a0,$ff,$fc,$90,$ff,$ec,$00 .byte $ff,$cb,$00,$ff,$aa,$00,$ff,$89 .byte $00,$df,$08,$00,$af,$00,$00,$ff .byte $88,$00,$00,$af,$00,$00,$bf,$0c .byte $00,$df,$0f,$08,$ef,$0f,$0c,$ff .byte $8f,$0f,$ff,$9f,$0f,$ff,$af,$0f .byte $ff,$cf,$0f,$ff,$df,$0f,$ff,$ef .byte $0f,$ff,$ff,$0f,$ff,$ff,$8f,$ff .byte $ff,$9f,$ff,$ff,$bf,$ff,$ff,$cf .byte $ff,$ff,$df,$ff,$ff,$ef,$ff,$ff .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff .byte $3f,$fe,$f0,$3f,$fe,$f0,$3f,$ff .byte $f0,$3f,$ff,$f0,$3f,$ff,$f8,$3f .byte $ff,$f8,$3f,$ff,$f8,$3f,$ff,$f9 .byte $3f,$ff,$f9,$3f,$ff,$f9,$3f,$ff .byte $fa,$2f,$ff,$fa,$2f,$ff,$fa,$2f .byte $ff,$fa,$2f,$ff,$fb,$2f,$ff,$fb .byte $1f,$ff,$fb,$1f,$ff,$fb,$1f,$ff .byte $fb,$1f,$ff,$fc,$0f,$ff,$fc,$ff .byte $f6,$ff,$ff,$f6,$ff,$ff,$f5,$ff .byte $ff,$f5,$ff,$ff,$f4,$ff,$ff,$f3 .byte $ff,$ff,$f3,$ff,$ff,$f2,$ff,$ff .byte $f2,$ff,$ff,$f1,$ff,$ff,$f0,$ff .byte $ff,$70,$ff,$ff,$50,$f7,$ff,$30 .byte $f6,$ff,$20,$f5,$ff,$00,$75,$ff .byte $00,$54,$ff,$00,$33,$ff,$00,$12 .byte $ff,$00,$01,$6f,$00,$00,$3f,$ff .byte $f0,$80,$03,$f0,$90,$06,$f0,$a1 .byte $0f,$f0,$b3,$0f,$f0,$c5,$0f,$f0 .byte $c7,$0f,$f2,$df,$0f,$f3,$ef,$0f .byte $f5,$ff,$0f,$f7,$ff,$0f,$ff,$ff .byte $8f,$ff,$ff,$9f,$ff,$ff,$9f,$ff .byte $ff,$af,$ff,$ff,$af,$ff,$ff,$bf .byte $ff,$ff,$cf,$ff,$ff,$cf,$ff,$ff .byte $df,$ff,$ff,$df,$ff,$ff,$ef,$00 .byte $f1,$ff,$cf,$f1,$ff,$bf,$f1,$ff .byte $bf,$f1,$ff,$bf,$f2,$ff,$bf,$f2 .byte $ff,$bf,$f2,$ff,$af,$f2,$ff,$af .byte $f2,$ff,$af,$f3,$ff,$af,$f3,$ff .byte $9f,$f3,$ff,$9f,$f3,$ff,$9f,$f3 .byte $ff,$8f,$f3,$ff,$8f,$f3,$ff,$8f .byte $f3,$ff,$0f,$f3,$ff,$0f,$f3,$ef .byte $0f,$f3,$ef,$0f,$f3,$ef,$0f,$00 .byte $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff .byte $fe,$ff,$ff,$fd,$ff,$ff,$fc,$ff .byte $ff,$fb,$ff,$ff,$f9,$ff,$ff,$f8 .byte $ff,$ff,$f0,$ff,$fe,$f0,$ff,$fd .byte $f0,$ff,$fc,$f0,$ff,$fa,$f0,$ff .byte $f9,$f0,$ff,$f8,$f0,$fe,$f0,$f0 .byte $fd,$f0,$c0,$fb,$f0,$80,$fa,$c0 .byte $00,$f8,$00,$00,$80,$00,$00,$00 .byte $0a,$10,$f0,$0d,$20,$f0,$0f,$38 .byte $f0,$0f,$4a,$f0,$0f,$5c,$f0,$0f .byte $5e,$f0,$0f,$6f,$f9,$0f,$7f,$fa .byte $0f,$ff,$fc,$0f,$ff,$fe,$1f,$ff .byte $ff,$2f,$ff,$ff,$2f,$ff,$ff,$3f .byte $ff,$ff,$3f,$ff,$ff,$4f,$ff,$ff .byte $5f,$ff,$ff,$5f,$ff,$ff,$6f,$ff .byte $ff,$6f,$ff,$ff,$7f,$ff,$ff,$00 .byte $5f,$ff,$f8,$4f,$ff,$f8,$4f,$ff .byte $f8,$4f,$ff,$f8,$4f,$ff,$f9,$4f .byte $ff,$f9,$3f,$ff,$f9,$3f,$ff,$f9 .byte $3f,$ff,$f9,$3f,$ff,$fa,$2f,$ff .byte $fa,$2f,$ff,$fa,$2f,$ff,$fa,$1f .byte $ff,$fa,$1f,$ff,$fa,$1f,$ff,$fa .byte $0f,$ff,$fa,$0f,$ff,$fa,$0f,$7f .byte $fa,$0f,$7f,$fa,$0f,$7f,$fa,$00 .byte $ff,$ff,$ff,$ff,$ff,$ff,$f7,$ff .byte $ff,$f6,$ff,$ff,$f5,$ff,$ff,$f4 .byte $ff,$ff,$f2,$ff,$ff,$f1,$ff,$ff .byte $f0,$ff,$ff,$f0,$f7,$ff,$f0,$f6 .byte $ff,$f0,$f5,$ff,$f0,$f3,$ff,$f0 .byte $f2,$ff,$f0,$f1,$ff,$f0,$f0,$f7 .byte $50,$f0,$f6,$10,$f0,$f4,$00,$50 .byte $f3,$00,$00,$f1,$00,$00,$10,$00 data: .byte $04,$04,$05,$04,$04,$05,$04,$04 .byte $04,$04,$04,$04,$04,$04,$04,$04 .byte $03,$04,$04,$04,$04,$04,$04,$00 .byte $12,$0d,$0b,$0a,$08,$08,$07,$07 .byte $06,$06,$06,$06,$06,$05,$05,$05 .byte $05,$05,$05,$05,$05,$04,$05,$04 .byte $05,$04,$04,$05,$04,$04,$04,$05 .byte $04,$04,$04,$04,$04,$04,$05,$00 .byte $19,$0f,$0c,$0a,$09,$08,$08,$07 .byte $07,$07,$06,$06,$06,$06,$06,$05 .byte $05,$06,$05,$05,$05,$05,$05,$04 .byte $05,$05,$05,$04,$05,$04,$05,$04 .byte $05,$04,$05,$05,$00,$15,$0f,$0c .byte $0a,$0a,$08,$08,$08,$07,$07,$07 .byte $06,$07,$06,$06,$06,$05,$06,$05 .byte $06,$05,$06,$05,$05,$05,$05,$05 .byte $05,$05,$05,$05,$06,$00,$1c,$11 .byte $0d,$0c,$0a,$0a,$09,$08,$08,$08 .byte $07,$07,$07,$07,$06,$07,$06,$06 .byte $07,$06,$06,$06,$05,$06,$06,$06 .byte $06,$06,$00,$23,$14,$0f,$0d,$0c .byte $0b,$0a,$09,$09,$09,$09,$08,$08 .byte $07,$08,$07,$08,$07,$07,$07,$07 .byte $07,$08,$00,$20,$16,$11,$10,$0e .byte $0d,$0c,$0b,$0c,$0a,$0b,$0a,$0a .byte $0b,$0a,$0a,$00,$bb,$a3,$86,$65 .byte $40,$18,$ed,$bf,$8e,$5b,$26,$ef .byte $b5,$7a,$3d,$fe,$bd,$7a,$36,$f0 .byte $a9,$60,$16,$cb,$7e,$30,$e1,$91 .byte $40,$ee,$9a,$45,$ef,$98,$40,$e8 .byte $8f,$35,$da,$7e,$21,$c4,$66,$07 .byte $a7,$47,$e6,$84,$22,$bf,$5c,$f8 .byte $93,$2e,$c8,$62,$fb,$94,$2d,$c5 .byte $5d,$f4,$8b,$22,$b8,$4e,$e4,$79 .byte $0e,$a3,$38,$cc,$60,$f4,$88,$1c .byte $af,$42,$d5,$68,$fb,$8e,$21,$b4 .byte $47,$da,$6d,$00,$f5,$f5,$f5,$f5 .byte $f5,$f5,$f4,$f4,$f4,$f4,$f4,$f3 .byte $f3,$f3,$f3,$f2,$f2,$f2,$f2,$f1 .byte $f1,$f1,$f1,$f0,$f0,$f0,$ef,$ef .byte $ef,$ee,$ee,$ee,$ed,$ed,$ed,$ec .byte $ec,$ec,$eb,$eb,$eb,$ea,$ea,$ea .byte $e9,$e9,$e8,$e8,$e8,$e7,$e7,$e6 .byte $e6,$e6,$e5,$e5,$e4,$e4,$e4,$e3 .byte $e3,$e2,$e2,$e2,$e1,$e1,$e0,$e0 .byte $e0,$df,$df,$de,$de,$dd,$dd,$dd .byte $dc,$dc,$db,$db,$da,$da,$da,$d9 .byte $d9,$d8,$d8,$d8,$10,$17,$1c,$20 .byte $24,$27,$2a,$2d,$30,$32,$34,$36 .byte $39,$3a,$3c,$3e,$40,$42,$43,$45 .byte $46,$48,$49,$4a,$4c,$4d,$4e,$4f .byte $50,$51,$53,$54,$55,$56,$57,$57 .byte $58,$59,$5a,$5b,$5c,$5c,$5d,$5e .byte $5f,$5f,$60,$61,$61,$62,$62,$63 .byte $64,$64,$65,$65,$66,$66,$66,$67 .byte $67,$68,$68,$68,$69,$69,$69,$6a .byte $6a,$6a,$6a,$6b,$6b,$6b,$6b,$6b .byte $6c,$6c,$6c,$6c,$6c,$6c,$6c,$6c .byte $6c,$6c,$6c,$6c,$08,$b9,$50,$b9 .byte $f8,$cd,$60,$cd,$e0,$d7,$78,$d7 .byte $c8,$dd,$90,$dd,$01,$3b,$32,$00 .byte $00,$ff,$c8,$00,$18,$00,$81,$ff .byte $00,$00,$00,$00,$00,$00,$00,$00 .byte $43,$43,$43,$43,$43,$43,$43,$43 .byte $44,$44,$44,$44,$44,$44,$44,$44 .byte $45,$45,$45,$45,$45,$45,$45,$45 .byte $47,$47,$47,$47,$47,$47,$47,$47 .byte $48,$48,$48,$48,$48,$48,$48,$48 .byte $49,$49,$49,$49,$49,$49,$49,$49 .byte $4a,$4a,$4a,$4a,$4a,$4a,$4a,$4a .byte $4c,$4c,$4c,$4c,$4c,$4c,$4c,$4c .byte $4d,$4d,$4d,$4d,$4d,$4d,$4d,$4d .byte $4e,$4e,$4e,$4e,$4e,$4e,$4e,$4e .byte $4f,$4f,$4f,$4f,$4f,$4f,$4f,$4f .byte $a7,$a6,$a5,$a4,$a3,$a2,$a1,$a0 .byte $67,$66,$65,$64,$63,$62,$61,$60 .byte $27,$26,$25,$24,$23,$22,$21,$20 .byte $e7,$e6,$e5,$e4,$e3,$e2,$e1,$e0 .byte $a7,$a6,$a5,$a4,$a3,$a2,$a1,$a0 .byte $67,$66,$65,$64,$63,$62,$61,$60 .byte $27,$26,$25,$24,$23,$22,$21,$20 .byte $e7,$e6,$e5,$e4,$e3,$e2,$e1,$e0 .byte $a7,$a6,$a5,$a4,$a3,$a2,$a1,$a0 .byte $67,$66,$65,$64,$63,$62,$61,$60 .byte $27,$26,$25,$24,$23,$22,$21,$20 .byte $5d,$5d,$5d,$5d,$5d,$5d,$5d,$5d .byte $5c,$5c,$5c,$5c,$5c,$5c,$5c,$5c .byte $5b,$5b,$5b,$5b,$5b,$5b,$5b,$5b .byte $59,$59,$59,$59,$59,$59,$59,$59 .byte $58,$58,$58,$58,$58,$58,$58,$58 .byte $57,$57,$57,$57,$57,$57,$57,$57 .byte $56,$56,$56,$56,$56,$56,$56,$56 .byte $54,$54,$54,$54,$54,$54,$54,$54 .byte $53,$53,$53,$53,$53,$53,$53,$53 .byte $52,$52,$52,$52,$52,$52,$52,$52 .byte $51,$51,$51,$51,$51,$51,$51,$51 fills: .byte $0,$1,$3,$7,$f,$1f,$3f,$7f .byte $80,$c0,$e0,$f0,$f8,$fc,$fe,$ff PIAtable: .byte $34,$fe,$04,$ff,$00,$ff,$00 .byte $dc,$04,$fe,$04 coords: .byte $60,$61,$62,$63,$64,$65,$66,$67 .byte $a0,$a1,$a2,$a3,$a4,$a5,$a6,$a7 .byte $e0,$e1,$e2,$e3,$e4,$e5,$e6,$e7 .byte $20,$21,$22,$23,$24,$25,$26,$27 .byte $60,$61,$62,$63,$64,$65,$66,$67 .byte $a0,$a1,$a2,$a3,$a4,$a5,$a6,$a7 .byte $e0,$e1,$e2,$e3,$e4,$e5,$e6,$e7 .byte $20,$21,$22,$23,$24,$25,$26,$27 .byte $60,$61,$62,$63,$64,$65,$66,$67 .byte $a0,$a1,$a2,$a3,$a4,$a5,$a6,$a7 .byte $e0,$e1,$e2,$e3,$e4,$e5,$e6,$e7 sintalo: .byte <(sintbl+$0e93),<(sintbl+$1084),<(sintbl+$11a7),<(sintbl+$1321) .byte <(sintbl+$1540),<(sintbl+$1598),<(sintbl+$15ef),<(sintbl+$1645) .byte <(sintbl+$169a),<(sintbl+$187e),<(sintbl+$1960),<(sintbl+$0af4) .byte <(sintbl+$19f0),<(sintbl+$1a7a),<(sintbl+$1abd),<(sintbl+$0cfb) .byte <(sintbl+$1bb5),<(sintbl+$0dc8),<(sintbl+$1c5b),<(sintbl+$1c8e) .byte <(sintbl+$1cbf),<(sintbl+$1ced) sintahi: .byte >(sintbl+$0e93),>(sintbl+$1084),>(sintbl+$11a7),>(sintbl+$1321) .byte >(sintbl+$1540),>(sintbl+$1598),>(sintbl+$15ef),>(sintbl+$1645) .byte >(sintbl+$169a),>(sintbl+$187e),>(sintbl+$1960),>(sintbl+$0af4) .byte >(sintbl+$19f0),>(sintbl+$1a7a),>(sintbl+$1abd),>(sintbl+$0cfb) .byte >(sintbl+$1bb5),>(sintbl+$0dc8),>(sintbl+$1c5b),>(sintbl+$1c8e) .byte >(sintbl+$1cbf),>(sintbl+$1ced) coltab: .byte $34,$0d,$0e,$0d,$64,$05,$2e,$65 .byte $3e,$59,$46,$51,$4e,$49,$56,$41 .byte $5e,$3d,$5e,$39,$66,$35,$66,$35 .byte $66,$35,$66,$35,$66,$35,$66,$39 .byte $5e,$3d,$5e,$41,$56,$49,$4e,$51 .byte $46,$59,$3e,$65,$2e,$7d,$0e,$0d .byte $00,$10,$fc,$fc coltae: maplen: .byte $8c,$01,$01,$03,$01,$02,$02,$01 .byte $02,$01,$01,$01,$01,$02,$01,$02 .byte $1e,$01,$01,$01,$04,$05,$04,$14 .byte $05,$01,$01,$01,$03,$01,$06,$01 .byte $01,$01,$01,$01,$01,$ac,$01,$01 .byte $01,$01,$01,$01,$01,$07,$01,$01 .byte $7a,$01,$01,$01,$02,$01,$01,$01 .byte $01,$05,$02,$1e,$03,$01,$02,$02 .byte $01,$01,$03,$02,$01,$02,$02,$01 .byte $01,$02,$02,$01,$01,$04,$04,$0f .byte $02,$90,$01,$02,$02,$01,$01,$02 .byte $01,$01,$ff,$4d,$03,$03,$01,$04 .byte $02,$01,$01,$03,$01,$03,$01,$43 .byte $06,$01,$03,$0d,$01,$01,$04,$03 .byte $02,$01,$c1,$01,$01,$02,$04,$02 .byte $02,$07,$01,$03,$21,$01,$0a,$02 .byte $09,$08,$08,$01,$02,$01,$01,$01 .byte $02,$04,$04,$01,$04,$01,$01,$02 .byte $01,$02,$01,$03,$02,$01,$27,$04 .byte $c7,$01,$02,$01,$01,$0d,$01,$01 .byte $01,$03,$03,$01,$01,$01,$01,$01 .byte $02,$01,$01,$01,$02,$03,$01,$02 .byte $02,$02,$02,$01,$01,$ff,$13,$01 .byte $01,$01,$01,$01,$02,$7e,$01,$03 .byte $05,$02,$04,$04,$b0,$01,$01,$04 .byte $02,$03,$0a,$02,$01,$01,$01,$05 .byte $01,$10,$01,$01,$02,$02,$01,$01 .byte $04,$01,$02,$02,$02,$02,$01,$02 .byte $01,$01,$03,$01,$03,$01,$01,$01 .byte $02,$01,$01,$01,$03,$01,$01,$01 .byte $01,$05,$03,$01,$02,$01,$02,$03 .byte $01,$02,$01,$07,$02,$01,$09,$05 .byte $18,$01,$01,$02,$06,$01,$01,$01 .byte $01,$01,$b9,$01,$02,$01,$03,$01 .byte $01,$05,$02,$03,$01,$01,$01,$04 .byte $01,$01,$03,$07,$01,$03,$08,$01 .byte $02,$01,$01,$02,$02,$01,$01,$01 .byte $02,$01,$01,$ff,$0a,$01,$01,$96 .byte $01,$02,$06,$06,$02,$01,$01,$01 .byte $03,$02,$01,$03,$01,$0f,$01,$81 .byte $01,$01,$0f,$04,$0e,$02,$0a,$03 .byte $01,$01,$01,$01,$03,$02,$01,$01 .byte $01,$03,$01,$01,$01,$01,$01,$02 .byte $01,$03,$01,$02,$01,$02,$17,$01 .byte $01,$03,$02,$06,$01,$01,$02,$01 .byte $02,$02,$02,$01,$01,$02,$02,$01 .byte $04,$01,$02,$01,$12,$01,$01,$02 .byte $05,$01,$01,$03,$02,$02,$01,$0e .byte $01,$01,$01,$01,$01,$01,$01,$01 .byte $c2,$01,$01,$02,$01,$04,$01,$02 .byte $01,$03,$01,$02,$0a,$01,$02,$01 .byte $02,$01,$01,$01,$01,$01,$fa,$01 .byte $01,$02,$02,$02,$01,$02,$7e,$01 .byte $22,$02,$06,$02,$05,$07,$01,$02 .byte $01,$01,$01,$01,$03,$01,$01,$03 .byte $01,$7d,$04,$08,$02,$01,$01,$01 .byte $02,$02,$01,$01,$08,$01,$01,$03 .byte $52,$01,$0f,$04,$22,$03,$01,$03 .byte $f3,$02,$02,$01,$02,$01,$03,$01 .byte $02,$01,$01,$01,$27,$01,$68,$02 .byte $04,$02,$01,$01,$02,$03,$03,$4b .byte $01,$01,$01,$03,$02,$02,$05,$72 .byte $0d,$01,$01,$01,$01,$02,$03,$01 .byte $01,$01,$01,$02,$30,$03,$03,$01 .byte $01,$04,$02,$80,$01,$01,$03,$02 .byte $02,$01,$01,$01,$02,$01,$01,$01 .byte $01,$01,$01,$02,$02,$02,$03,$02 .byte $01,$01,$01,$01,$07,$01,$01,$02 .byte $01,$01,$02,$02,$01,$01,$03,$01 .byte $01,$01,$01,$01,$02,$01,$02,$01 .byte $03,$01,$04,$07,$03,$03,$ff,$47 .byte $03,$04,$08,$02,$01,$01,$01,$03 .byte $01,$25,$01,$01,$01,$01,$02,$03 .byte $03,$01,$02,$01,$45,$01,$0a,$03 .byte $01,$02,$01,$02,$03,$02,$02,$01 .byte $03,$03,$02,$01,$01,$01,$01,$02 .byte $02,$03,$01,$02,$04,$01,$01,$01 .byte $01,$01,$01,$01,$01,$02,$05,$05 .byte $11,$04,$02,$03,$02,$01,$01,$01 .byte $01,$01,$04,$01,$01,$01,$6d,$01 .byte $01,$02,$02,$02,$03,$03,$03,$01 .byte $16,$01,$01,$01,$01,$01,$01,$02 .byte $02,$01,$14,$01,$02,$01,$03,$02 .byte $01,$01,$02,$01,$02,$01,$01,$01 .byte $02,$02,$03,$2a,$04,$05,$67,$01 .byte $01,$01,$03,$01,$02,$01,$02,$15 .byte $01,$01,$06,$01,$01,$01,$01,$02 .byte $01,$01,$01,$02,$01,$0a,$01,$01 .byte $01,$04,$01,$01,$06,$03,$01,$01 .byte $01,$02,$01,$01,$07,$02,$01,$01 .byte $ff,$3c,$02,$04,$05,$04,$04,$04 .byte $0c,$04,$04,$04,$02,$03,$01,$02 .byte $01,$04,$02,$01,$01,$01,$02,$01 .byte $01,$01,$01,$03,$01,$01,$01,$02 .byte $01,$03,$08,$44,$05,$01,$02,$02 .byte $02,$24,$02,$98,$02,$01,$02,$05 .byte $01,$02,$01,$01,$02,$01,$01,$02 .byte $07,$03,$01,$02,$01,$01,$08,$01 .byte $04,$03,$04,$01,$03,$02,$01,$01 .byte $01,$03,$02,$02,$07,$01,$01,$01 .byte $01,$01,$01,$27,$01,$02,$02,$03 .byte $04,$0b,$01,$01,$02,$02,$04,$2d .byte $01,$01,$05,$03,$03,$06,$05,$37 .byte $01,$02,$04,$04,$04,$01,$01,$01 .byte $01,$11,$01,$01,$01,$01,$04,$03 .byte $01,$03,$03,$02,$21,$02,$02,$02 .byte $ff,$53,$01,$03,$04,$02,$01,$02 .byte $01,$01,$01,$01,$01,$01,$08,$01 .byte $02,$02,$09,$02,$01,$05,$07,$03 .byte $01,$01,$01,$02,$0f,$05,$01,$01 .byte $0e,$01,$02,$01,$01,$02,$01,$01 .byte $01,$05,$02,$47,$02,$39,$02,$03 .byte $02,$03,$07,$04,$01,$02,$02,$02 .byte $04,$01,$04,$01,$01,$07,$06,$02 .byte $01,$02,$01,$01,$02,$0a,$03,$03 .byte $01,$01,$02,$02,$02,$01,$01,$03 .byte $03,$01,$01,$01,$0c,$05,$03,$01 .byte $02,$01,$01,$01,$01,$0f,$01,$01 .byte $01,$01,$01,$04,$04,$02,$01,$1b .byte $01,$01,$01,$02,$24,$04,$02,$09 .byte $01,$02,$09,$05,$09,$01,$02,$03 .byte $02,$02,$01,$02,$01,$06,$01,$04 .byte $02,$4a,$01,$03,$01,$06,$01,$01 .byte $01,$0e,$01,$06,$03,$15,$01,$01 .byte $04,$01,$07,$01,$02,$01,$02,$02 .byte $02,$01,$02,$03,$01,$04,$01,$01 .byte $01,$01,$01,$04,$02,$01,$01,$01 .byte $02,$02,$01,$03,$04,$01,$0f,$02 .byte $0f,$02,$04,$01,$01,$02,$04,$02 .byte $02,$02,$01,$01,$01,$01,$03,$01 .byte $03,$01,$03,$02,$02,$eb,$03,$2b .byte $02,$02,$03,$04,$01,$01,$03,$01 .byte $01,$01,$07,$03,$01,$08,$02,$04 .byte $01,$03,$02,$04,$04,$0a,$0e,$07 .byte $12,$03,$02,$09,$01,$01,$0b,$02 .byte $01,$05,$02,$02,$03,$03,$03,$04 .byte $01,$01,$01,$02,$02,$01,$02,$01 .byte $04,$01,$01,$03,$05,$01,$01,$01 .byte $02,$02,$01,$03,$01,$01,$01,$02 .byte $08,$01,$01,$03,$01,$03,$01,$02 .byte $01,$03,$01,$02,$01,$01,$01,$01 .byte $08,$02,$01,$02,$01,$01,$01,$01 .byte $04,$03,$01,$01,$03,$02,$01,$01 .byte $02,$01,$06,$01,$01,$01,$01,$04 .byte $05,$02,$05,$04,$02,$05,$05,$01 .byte $02,$01,$03,$04,$03,$01,$23,$01 .byte $01,$02,$05,$02,$01,$01,$47,$03 .byte $01,$01,$01,$01,$02,$02,$01,$01 .byte $01,$6e,$03,$02,$01,$02,$03,$02 .byte $01,$15,$04,$02,$02,$04,$32,$01 .byte $02,$03,$02,$06,$01,$01,$01,$02 .byte $01,$02,$02,$01,$07,$0d,$01,$02 .byte $02,$01,$06,$01,$01,$01,$01,$03 .byte $01,$01,$02,$02,$01,$01,$01,$01 .byte $01,$02,$07,$01,$01,$02,$01,$03 .byte $03,$3c,$04,$11,$01,$17,$02,$14 .byte $01,$01,$04,$01,$05,$0e,$01,$04 .byte $0e,$04,$0a,$03,$04,$04,$0e,$04 .byte $03,$05,$01,$01,$08,$03,$04,$07 .byte $01,$0c,$03,$02,$02,$02,$04,$01 .byte $02,$21,$01,$03,$74,$03,$02,$02 .byte $03,$01,$01,$04,$03,$01,$01,$01 .byte $02,$03,$02,$02,$01,$01,$02,$01 .byte $03,$01,$01,$03,$03,$04,$04,$02 .byte $02,$01,$03,$03,$01,$01,$02,$01 .byte $01,$02,$01,$01,$01,$02,$03,$06 .byte $01,$03,$01,$02,$01,$04,$05,$01 .byte $01,$01,$04,$03,$01,$02,$07,$03 .byte $01,$01,$05,$0b,$01,$07,$02,$01 .byte $02,$02,$01,$07,$01,$0d,$03,$02 .byte $05,$02,$5f,$01,$02,$01,$01,$06 .byte $01,$54,$03,$04,$01,$03,$05,$01 .byte $01,$04,$06,$02,$03,$08,$52,$03 .byte $02,$03,$01,$03,$05,$06,$04,$06 .byte $2a,$04,$06,$02,$01,$03,$02,$08 .byte $0a,$01,$01,$02,$08,$02,$02,$02 .byte $04,$03,$01,$06,$01,$06,$01,$05 .byte $04,$02,$04,$01,$02,$04,$02,$06 .byte $01,$0d,$0a,$27,$02,$01,$04,$04 .byte $02,$03,$03,$03,$05,$0c,$7c,$01 .byte $01,$01,$01,$8d,$01,$01,$02,$09 .byte $02,$01,$01,$05,$05,$02,$09,$01 .byte $02,$05,$03,$01,$01,$01,$01,$01 .byte $01,$01,$02,$01,$04,$01,$01,$01 .byte $01,$05,$01,$02,$07,$01,$04,$01 .byte $02,$01,$01,$01,$01,$01,$01,$02 .byte $01,$01,$01,$01,$01,$01,$02,$01 .byte $01,$01,$03,$02,$01,$01,$02,$01 .byte $93,$01,$02,$98,$02,$01,$01,$02 .byte $01,$01,$01,$01,$02,$1d,$01,$04 .byte $06,$07,$02,$01,$03,$01,$19,$01 .byte $01,$02,$06,$01,$02,$01,$01,$19 .byte $02,$04,$03,$01,$03,$0b,$01,$01 .byte $01,$05,$02,$01,$08,$02,$01,$15 .byte $01,$01,$01,$02,$03,$03,$01,$03 .byte $01,$03,$01,$08,$02,$09,$01,$02 .byte $01,$01,$01,$01,$01,$dd,$01,$01 .byte $01,$01,$a4,$07,$01,$04,$08,$08 .byte $04,$01,$04,$02,$01,$01,$01,$02 .byte $02,$01,$01,$13,$01,$04,$06,$01 .byte $02,$01,$02,$01,$01,$02,$04,$04 .byte $01,$0a,$81,$01,$01,$01,$04,$02 .byte $9c,$02,$01,$02,$01,$01,$01,$01 .byte $04,$02,$02,$03,$05,$01,$03,$01 .byte $01,$40,$01,$01,$01,$02,$01,$0a .byte $01,$01,$01,$03,$24,$03,$03,$02 .byte $02,$01,$01,$03,$01,$02,$01,$01 .byte $01,$01,$02,$01,$01,$03,$01,$08 .byte $03,$01,$01,$1f,$01,$01,$02,$01 .byte $01,$01,$01,$01,$01,$01,$01,$02 .byte $01,$01,$01,$ff,$a6,$01,$04,$03 .byte $01,$02,$03,$03,$01,$02,$02,$04 .byte $28,$03,$05,$04,$0b,$03,$02,$01 .byte $01,$03,$69,$02,$05,$04,$03,$03 .byte $03,$12,$03,$0b,$03,$02,$05,$04 .byte $01,$69,$04,$02,$03,$01,$01,$01 .byte $49,$02,$01,$02,$02,$01,$02,$01 .byte $02,$02,$01,$26,$01,$01,$01,$02 .byte $03,$01,$01,$02,$01,$01,$02,$01 .byte $01,$02,$02,$01,$01,$01,$02,$04 .byte $0f,$01,$04,$01,$04,$04,$02,$01 .byte $01,$01,$01,$01,$0a,$03,$01,$02 .byte $01,$04,$01,$01,$01,$ff,$b2,$01 .byte $02,$01,$01,$50,$01,$01,$03,$03 .byte $02,$0a,$04,$0e,$82,$01,$01,$01 .byte $03,$55,$02,$02,$01,$03,$02,$03 .byte $01,$96,$03,$01,$03,$02,$01,$01 .byte $01,$01,$01,$01,$02,$01,$01,$02 .byte $01,$01,$08,$01,$01,$01,$01,$04 .byte $09,$01,$03,$01,$02,$01,$01,$01 .byte $01,$01,$01,$01,$02,$01,$01,$01 .byte $02,$02,$01,$01,$01,$01,$01,$01 .byte $03,$02,$01,$01,$01,$01,$01,$04 .byte $02,$02,$02,$01,$02,$03,$01,$03 .byte $03,$07,$06,$09,$ff,$80,$01,$01 .byte $01,$03,$02,$73,$04,$01,$01,$01 .byte $01,$01,$82,$01,$01,$01,$01,$02 .byte $4a,$01,$01,$01,$18,$01,$17,$01 .byte $85,$01,$02,$02,$01,$01,$0d,$04 .byte $02,$02,$01,$01,$02,$01,$02,$01 .byte $01,$04,$01,$01,$01,$01,$01,$03 .byte $02,$06,$04,$08,$01,$03,$02,$01 .byte $01,$01,$01,$01,$05,$02,$09,$02 .byte $01,$05,$05,$01,$02,$03,$02,$02 .byte $03,$01,$01,$01,$01,$02,$01,$02 .byte $01,$01,$01,$01,$02,$ff,$73,$02 .byte $01,$04,$03,$03,$03,$5d,$01,$01 .byte $58,$01,$36,$01,$01,$01,$41,$05 .byte $02,$04,$01,$01,$01,$09,$01,$01 .byte $02,$01,$01,$02,$02,$03,$02,$01 .byte $01,$01,$cd,$01,$01,$02,$03,$03 .byte $06,$02,$01,$01,$04,$01,$0e,$01 .byte $02,$04,$04,$05,$01,$01,$01,$03 .byte $01,$03,$01,$03,$01,$02,$56,$03 .byte $01,$05,$01,$ff,$32,$02,$01,$3e .byte $01,$04,$04,$03,$04,$05,$03,$01 .byte $01,$95,$02,$01,$01,$02,$33,$03 .byte $02,$01,$01,$17,$01,$01,$08,$02 .byte $02,$02,$11,$01,$01,$01,$01,$02 .byte $01,$9e,$01,$01,$02,$01,$02,$09 .byte $56,$02,$01,$01,$01,$04,$01,$01 .byte $01,$02,$25,$01,$ff,$58,$01,$01 .byte $01,$2b,$05,$05,$02,$04,$02,$02 .byte $02,$b8,$01,$01,$01,$01,$02,$01 .byte $09,$06,$03,$05,$04,$05,$03,$02 .byte $02,$02,$e8,$01,$01,$0e,$08,$08 .byte $15,$04,$02,$01,$01,$03,$01,$01 .byte $01,$28,$01,$01,$01,$01,$01,$36 .byte $04,$39,$01,$ff,$05,$01,$01,$16 .byte $02,$04,$02,$0c,$02,$01,$01,$ff .byte $ff,$28,$03,$03,$02,$01,$03,$04 .byte $02,$04,$02,$01,$01,$01,$03,$01 .byte $01,$01,$04,$01,$03,$36,$06,$04 .byte $01,$01,$01,$01,$01,$01,$01,$03 .byte $01,$02,$02,$01,$ff,$2e,$02,$01 .byte $02,$0c,$02,$02,$02,$01,$02,$13 .byte $02,$01,$05,$ff,$ff,$7d,$03,$01 .byte $01,$05,$02,$02,$ff,$47,$02,$01 .byte $04,$01,$01,$01,$05,$04,$03,$10 .byte $03,$02,$ff,$3b,$07,$01,$02,$01 .byte $03,$78,$14,$14,$04,$04,$09,$2f .byte $01,$a7 mapdata: .byte $00,$01,$09,$0f,$1f,$1e,$7c,$f9 .byte $e1,$c3,$c7,$cf,$8f,$1f,$3f,$7f .byte $ff,$3f,$07,$03,$01,$00,$01,$00 .byte $01,$03,$07,$3f,$7f,$38,$00,$20 .byte $30,$70,$50,$60,$20,$00,$88,$80 .byte $c8,$e4,$f1,$f0,$f8,$fc,$fe,$fc .byte $ff,$fe,$f9,$f3,$f7,$f1,$f7,$e7 .byte $8f,$0f,$7f,$ff,$fc,$f8,$f0,$e0 .byte $f0,$e0,$c0,$81,$83,$cf,$ef,$cf .byte $ef,$ff,$c7,$cf,$8f,$0f,$1f,$3f .byte $7f,$ff,$7f,$3f,$1f,$0f,$87,$c7 .byte $e3,$21,$00,$00,$01,$03,$07,$0f .byte $1f,$3f,$7f,$ff,$df,$3f,$7f,$ff .byte $7f,$ff,$7f,$ff,$bf,$3f,$1f,$0f .byte $07,$01,$00,$80,$c0,$f0,$f8,$fc .byte $ff,$fe,$ff,$fe,$ff,$f9,$f8,$f0 .byte $e0,$80,$f0,$e0,$e1,$e3,$e7,$e3 .byte $e2,$e0,$c0,$80,$c0,$e0,$c0,$e0 .byte $c0,$e0,$c0,$e0,$f8,$fc,$ff,$7f .byte $ff,$fd,$f8,$e8,$40,$00,$01,$0f .byte $03,$01,$00,$08,$3c,$7c,$1f,$07 .byte $03,$07,$0f,$0b,$0f,$01,$05,$0f .byte $07,$03,$01,$03,$01,$00,$00,$01 .byte $03,$07,$1f,$3f,$7f,$ff,$3f,$1f .byte $0f,$07,$03,$01,$00,$1c,$3e,$3f .byte $7f,$ff,$7f,$3f,$1f,$0f,$83,$81 .byte $80,$c0,$e6,$ee,$ef,$e6,$e0,$c0 .byte $00,$20,$31,$71,$73,$63,$23,$3f .byte $1f,$0f,$02,$06,$00,$01,$03,$07 .byte $0f,$1f,$7f,$3f,$7f,$39,$29,$31 .byte $11,$03,$07,$1d,$3d,$3e,$7f,$7e .byte $3e,$3f,$7e,$7f,$3f,$7f,$ff,$fe .byte $ff,$f7,$e2,$e0,$c0,$e4,$e6,$c6 .byte $cd,$cf,$ff,$f7,$e7,$e3,$c3,$00 .byte $83,$07,$03,$07,$0f,$1f,$3f,$ff .byte $fb,$f1,$e0,$00,$01,$00,$80,$c0 .byte $e0,$d0,$f0,$e0,$f0,$f9,$7b,$3f .byte $1f,$07,$02,$00,$00,$01,$c3,$ff .byte $3f,$1f,$0f,$07,$03,$01,$05,$0c .byte $0e,$0c,$04,$06,$04,$00,$01,$00 .byte $30,$70,$f0,$e0,$ff,$7f,$1f,$0f .byte $4f,$e7,$ef,$6f,$0f,$1f,$3f,$7f .byte $ff,$f9,$f5,$f7,$e3,$c7,$cf,$8f .byte $9f,$1f,$3f,$1f,$3f,$7f,$ff,$bf .byte $87,$07,$01,$00,$01,$81,$c1,$c3 .byte $c7,$c6,$c2,$c0,$80,$00,$0e,$0f .byte $1f,$3f,$1f,$bf,$ff,$f1,$e1,$c0 .byte $00,$08,$18,$1e,$7e,$3f,$7f,$ff .byte $fb,$f1,$e6,$e0,$f0,$f8,$f9,$fd .byte $ff,$7f,$3f,$1f,$7f,$ff,$7f,$3f .byte $1f,$0f,$07,$01,$00,$c0,$e0,$f8 .byte $1f,$3c,$38,$39,$7a,$38,$00,$04 .byte $06,$07,$0f,$1f,$3f,$7f,$ff,$fe .byte $ff,$cf,$e7,$ef,$0f,$07,$03,$01 .byte $00,$38,$1c,$1e,$3f,$7f,$3a,$80 .byte $c0,$00,$01,$00,$04,$06,$26,$32 .byte $33,$73,$f3,$f1,$f9,$fd,$fc,$fe .byte $ff,$7f,$ff,$7f,$ff,$7f,$ff,$7f .byte $ff,$7f,$3f,$1f,$0f,$01,$00,$ee .byte $ff,$8f,$0f,$0c,$00,$01,$00,$18 .byte $08,$0c,$06,$04,$06,$00,$01,$00 .byte $01,$03,$07,$0f,$1f,$3f,$7f,$ff .byte $fe,$fc,$f8,$f0,$c0,$80,$00,$0e .byte $1e,$bf,$ff,$fe,$ff,$fe,$fc,$6c .byte $24,$00,$80,$00,$b0,$f8,$f0,$fc .byte $fe,$7e,$1c,$08,$00,$02,$83,$a3 .byte $a7,$e7,$e3,$ff,$fe,$f8,$f0,$e0 .byte $c0,$e0,$c0,$40,$00,$80,$c0,$e0 .byte $d0,$f0,$e0,$f0,$e1,$f3,$ff,$fb .byte $fd,$fe,$fc,$fa,$fb,$fa,$f8,$fb .byte $f3,$f1,$f8,$fc,$f8,$fc,$ff,$ff .byte $fb,$f1,$f8,$f0,$60,$00,$c0,$f8 .byte $30,$00,$1c,$3e,$7f,$ff,$3f,$1f .byte $0f,$07,$03,$01,$00,$08,$00,$08 .byte $18,$04,$06,$02,$03,$00,$01,$03 .byte $07,$0f,$07,$0f,$8f,$cf,$c3,$e7 .byte $ef,$ff,$3f,$1f,$0f,$07,$01,$e1 .byte $f0,$90,$11,$31,$41,$03,$01,$00 .byte $01,$03,$07,$0f,$1f,$3f,$1f,$0f .byte $07,$03,$0f,$1f,$3f,$7f,$ff,$f8 .byte $e8,$e0,$c0,$80,$c0,$80,$c0,$80 .byte $00,$e0,$c0,$80,$00,$08,$0d,$9f .byte $3f,$7f,$ff,$f3,$f1,$e1,$e0,$f0 .byte $f9,$fd,$fc,$fe,$ff,$fe,$f8,$e8 .byte $e0,$c0,$80,$00,$01,$03,$00,$20 .byte $c0,$e0,$f0,$f1,$d0,$c0,$80,$00 .byte $03,$07,$1f,$df,$bf,$af,$ef,$cf .byte $e7,$e3,$2f,$0f,$3f,$ff,$7f,$ff .byte $7f,$0f,$07,$03,$00,$c0,$f1,$f9 .byte $f1,$c3,$f3,$f9,$fd,$f5,$e5,$ed .byte $ff,$ff,$3f,$1f,$0f,$07,$03,$07 .byte $03,$07,$03,$07,$01,$00,$80,$f0 .byte $e0,$f0,$f8,$fd,$f9,$f8,$fc,$fd .byte $ff,$9f,$1f,$0f,$07,$03,$01,$00 .byte $01,$00,$01,$00,$f1,$f0,$f4,$f1 .byte $fb,$ff,$7f,$ff,$7f,$3f,$1f,$0f .byte $07,$03,$01,$03,$01,$00,$02,$03 .byte $07,$03,$43,$47,$c6,$42,$00,$e0 .byte $f1,$e1,$f1,$f3,$e3,$f3,$e7,$c7 .byte $87,$8f,$0f,$8f,$0f,$4e,$4f,$4c .byte $d8,$58,$10,$00,$01,$0f,$1f,$3f .byte $7f,$ff,$2f,$0f,$07,$03,$01,$00 .byte $02,$03,$07,$0f,$07,$03,$01,$00 .byte $80,$e0,$f0,$f8,$fc,$fa,$fe,$ff .byte $fd,$ff,$bf,$9f,$8f,$0f,$07,$03 .byte $98,$f8,$fc,$fe,$ff,$fe,$fc,$fd .byte $ff,$ff,$7f,$3f,$1f,$3f,$7f,$ff .byte $df,$1f,$0f,$87,$cf,$f7,$ff,$7f .byte $ff,$7f,$ff,$7f,$3f,$7f,$3f,$1f .byte $0e,$1e,$0e,$0c,$00,$01,$03,$01 .byte $00,$60,$40,$00,$04,$0c,$0e,$e3 .byte $c3,$c7,$cf,$ff,$fe,$ff,$fe,$fc .byte $f8,$fc,$fd,$f9,$fb,$f9,$fc,$fe .byte $fc,$fd,$f9,$fd,$f9,$f8,$fc,$ff .byte $f5,$f0,$f8,$fc,$fe,$ff,$fe,$ff .byte $fe,$7c,$78,$38,$b0,$f8,$fe,$ff .byte $bf,$9f,$1d,$18,$00,$80,$81,$80 .byte $d1,$c1,$e1,$e9,$fb,$ff,$be,$bc .byte $1c,$3e,$3c,$78,$70,$50,$40,$00 .byte $18,$3c,$3e,$7f,$ff,$7f,$3f,$1f .byte $0f,$07,$03,$01,$00,$40,$60,$c0 .byte $80,$c0,$80,$c0,$80,$c0,$e0,$c0 .byte $80,$00,$80,$c0,$e0,$f0,$f9,$ff .byte $fe,$ff,$7f,$3f,$7f,$ff,$ef,$cf .byte $df,$9f,$1f,$3f,$bf,$be,$3e,$3c .byte $d8,$c0,$e0,$f0,$e0,$f0,$f6,$fe .byte $ff,$fe,$fc,$e0,$f0,$fb,$fa,$f8 .byte $fc,$fe,$fc,$fe,$ff,$fe,$ff,$fe .byte $ff,$ef,$fe,$ee,$ef,$ff,$ef,$ff .byte $cf,$ef,$e7,$e6,$e4,$e0,$f0,$f8 .byte $fe,$ff,$fe,$fc,$fd,$ff,$fe,$ff .byte $7f,$3f,$7f,$7e,$3e,$3c,$78,$f8 .byte $78,$f8,$f0,$60,$20,$00,$10,$00 .byte $1c,$3c,$00,$80,$c0,$e0,$f0,$e0 .byte $c0,$80,$c0,$80,$00,$80,$00,$80 .byte $00,$80,$c0,$e0,$c0,$e0,$c0,$80 .byte $00,$84,$86,$87,$0f,$8f,$df,$9f .byte $8f,$0f,$07,$03,$01,$35,$31,$17 .byte $56,$5e,$5f,$de,$dc,$de,$fe,$ff .byte $fe,$ff,$fe,$fc,$fe,$ff,$fe,$fc .byte $f8,$e0,$c0,$40,$00,$01,$21,$03 .byte $07,$87,$02,$00,$14,$3e,$3f,$7f .byte $ff,$f3,$b1,$a1,$01,$00,$80,$8c .byte $0e,$0f,$3f,$3a,$38,$30,$bd,$bf .byte $3f,$3e,$3d,$3f,$7c,$fc,$f8,$f0 .byte $f4,$f8,$f0,$e0,$c0,$80,$00,$04 .byte $85,$87,$8f,$2f,$6f,$7f,$ff,$7f .byte $7d,$5d,$39,$3b,$3a,$3e,$38,$18 .byte $01,$00,$80,$c0,$80,$c0,$80,$c0 .byte $80,$e0,$c0,$80,$c0,$80,$00,$04 .byte $0c,$1e,$1f,$3f,$33,$23,$01,$00 .byte $80,$c0,$e0,$00,$80,$00,$20,$f0 .byte $f8,$fc,$fe,$fc,$bc,$e0,$20,$00 .byte $fe,$fc,$fb,$f9,$78,$f8,$ec,$fe .byte $fc,$f8,$fc,$fd,$fb,$ff,$f7,$e7 .byte $ef,$ff,$fe,$ff,$fd,$ff,$fe,$ff .byte $f6,$e6,$e0,$f0,$fc,$f8,$f4,$f8 .byte $fc,$f8,$fc,$f8,$f0,$e0,$f0,$c0 .byte $80,$00,$80,$c0,$80,$a0,$80,$00 .byte $80,$c0,$80,$c0,$98,$38,$18,$08 .byte $10,$00,$60,$e0,$00,$80,$c0,$c8 .byte $98,$c8,$cc,$8c,$94,$8c,$84,$96 .byte $10,$30,$38,$58,$10,$30,$72,$70 .byte $30,$20,$30,$38,$18,$10,$00,$02 .byte $1a,$3a,$38,$10,$90,$80,$00,$08 .byte $00,$11,$b1,$30,$14,$00,$08,$88 .byte $98,$99,$9b,$93,$13,$33,$31,$35 .byte $37,$36,$3e,$b7,$bf,$37,$3f,$2f .byte $8f,$87,$03,$01,$03,$02,$06,$02 .byte $0a,$06,$0e,$0f,$1f,$0f,$1f,$0f .byte $1f,$3f,$ff,$f7,$77,$35,$31,$00 .byte $20,$00,$01,$00,$01,$05,$06,$07 .byte $03,$02,$00,$02,$03,$01,$00,$80 .byte $c0,$e0,$f0,$70,$30,$10,$18,$08 .byte $00,$80,$00,$80,$00,$80,$c0,$e0 .byte $f0,$f8,$f0,$f8,$f0,$f8,$f9,$f1 .byte $f9,$fd,$fc,$fe,$fa,$f8,$78,$f8 .byte $78,$38,$b8,$98,$90,$00,$80,$00 .byte $80,$00,$80,$00,$18,$1c,$18,$98 .byte $18,$00,$10,$18,$00,$20,$00,$0e .byte $0a,$05,$04,$00,$80,$c0,$80,$00 .byte $80,$e0,$f0,$f8,$fc,$fe,$ff,$9f .byte $1f,$0f,$07,$03,$01,$07,$03,$07 .byte $0f,$07,$0f,$2f,$7f,$3f,$3c,$30 .byte $10,$00,$80,$40,$c0,$e0,$60,$20 .byte $64,$76,$77,$76,$72,$32,$60,$e0 .byte $a0,$20,$60,$64,$2c,$37,$3e,$2f .byte $8f,$6f,$07,$0f,$09,$02,$07,$02 .byte $00,$10,$f0,$ff,$7f,$03,$01,$00 .byte $c0,$e0,$f8,$fc,$fe,$ff,$fe,$ff .byte $fe,$fc,$f8,$f0,$e0,$40,$00,$c0 .byte $a0,$e0,$f0,$e0,$c0,$f4,$fe,$ff .byte $fe,$fc,$f8,$f0,$e0,$c0,$00,$80 .byte $c0,$e0,$f0,$f9,$ff,$fc,$fd,$ff .byte $f7,$e3,$c3,$c1,$c0,$e0,$f0,$ec .byte $c8,$c0,$80,$c0,$80,$00,$80,$c0 .byte $80,$01,$03,$01,$03,$00,$40,$60 .byte $40,$c0,$00,$80,$c0,$80,$c0,$e0 .byte $f0,$f8,$78,$7c,$7e,$7c,$7e,$7f .byte $ff,$7f,$38,$00,$01,$03,$07,$87 .byte $07,$03,$01,$03,$01,$07,$03,$01 .byte $03,$01,$00,$20,$f0,$f8,$fc,$fe .byte $ff,$7f,$ff,$bf,$9f,$8f,$cf,$ff .byte $f7,$f3,$e1,$e3,$c7,$87,$07,$0f .byte $0c,$00,$c0,$e0,$f0,$f8,$fc,$ff .byte $fc,$f0,$c0,$80,$00,$80,$c0,$80 .byte $00,$02,$0f,$ff,$fe,$f0,$c0,$e0 .byte $d0,$f8,$f0,$f8,$fc,$ff,$fe,$ff .byte $fe,$fc,$30,$00,$20,$70,$f8,$f9 .byte $fa,$c6,$84,$01,$02,$03,$01,$07 .byte $05,$0d,$01,$00,$00,$40,$c0,$e0 .byte $60,$70,$78,$e0,$60,$70,$f7,$7f .byte $ff,$7f,$3f,$1f,$0f,$07,$0f,$07 .byte $03,$01,$00,$c0,$e0,$f0,$f8,$fc .byte $fe,$fc,$f8,$f0,$f8,$fc,$fe,$ff .byte $fe,$ff,$fe,$fc,$f8,$f0,$e0,$c0 .byte $00,$80,$c0,$e0,$c0,$80,$00,$30 .byte $78,$38,$10,$00,$04,$0c,$0e,$06 .byte $07,$43,$c3,$e3,$61,$70,$38,$18 .byte $1c,$1e,$0f,$07,$03,$01,$00,$80 .byte $00,$01,$03,$01,$03,$07,$0f,$1f .byte $0f,$2f,$1c,$0c,$00,$80,$c0,$e0 .byte $b0,$f0,$78,$38,$30,$00,$00,$01 .byte $07,$0f,$7f,$ff,$7f,$6f,$0f,$07 .byte $0f,$07,$03,$01,$00,$20,$30,$7c .byte $fe,$ff,$fe,$fc,$f8,$f0,$e0,$c0 .byte $80,$00,$80,$c0,$e0,$70,$78,$7c .byte $7e,$3e,$1e,$1f,$8f,$c7,$07,$03 .byte $02,$06,$00,$10,$38,$7c,$fc,$7c .byte $fe,$ff,$fe,$fc,$f8,$f0,$e0,$60 .byte $20,$00,$04,$0e,$1f,$1e,$3e,$2e .byte $0f,$1f,$12,$00,$40,$70,$60,$44 .byte $00,$04,$2c,$30,$33,$2b,$21,$01 .byte $00,$20,$08,$1a,$1b,$0f,$03,$01 .byte $03,$07,$03,$01,$00,$00,$e0,$f0 .byte $f8,$fc,$fe,$ff,$fe,$fc,$fe,$7c .byte $60,$40,$00,$80,$c0,$e0,$f0,$fc .byte $ff,$bf,$37,$05,$00,$01,$00,$40 .byte $00,$80,$c0,$e0,$f0,$70,$30,$38 .byte $18,$58,$48,$10,$18,$10,$30,$28 .byte $20,$00,$02,$33,$f2,$d6,$d8,$10 .byte $80,$00,$40,$00,$80,$00,$01,$03 .byte $62,$70,$61,$41,$01,$00,$80,$c0 .byte $f0,$f8,$fc,$f8,$f1,$e0,$f0,$70 .byte $78,$3c,$3e,$2e,$0e,$07,$03,$c3 .byte $e1,$61,$60,$40,$c0,$00,$00,$80 .byte $e0,$f0,$f8,$fc,$fe,$ff,$ce,$80 .byte $00,$04,$00,$0c,$3e,$7f,$ff,$fe .byte $fc,$f8,$f0,$e0,$80,$00,$05,$07 .byte $0f,$1f,$0f,$1f,$3f,$7f,$ff,$fe .byte $74,$60,$00,$01,$03,$07,$0f,$1f .byte $3f,$1f,$3f,$1f,$3f,$7f,$ff,$5f .byte $3f,$0f,$07,$03,$07,$0f,$1f,$ff .byte $7f,$1f,$0f,$07,$03,$01,$00,$06 .byte $04,$00,$04,$00,$00,$81,$8b,$ff .byte $fe,$fc,$f8,$f0,$f8,$f0,$e0,$c0 .byte $80,$00,$80,$c0,$e0,$fc,$ff,$fe .byte $fc,$f8,$38,$00,$80,$9c,$fc,$f0 .byte $e0,$80,$00,$c0,$e0,$c0,$80,$00 .byte $80,$00,$dc,$bc,$3f,$7f,$ff,$7f .byte $ff,$7f,$3f,$1f,$3f,$0f,$07,$0f .byte $07,$01,$00,$80,$00,$00,$01,$27 .byte $3f,$ff,$fe,$fc,$f8,$f0,$e0,$c0 .byte $80,$00,$80,$c0,$e0,$f8,$fc,$fe .byte $ff,$fe,$ff,$fe,$fc,$f8,$f0,$e0 .byte $c0,$80,$00,$80,$de,$ff,$fe,$fc .byte $f8,$fc,$fe,$ff,$fe,$fc,$fd,$ff .byte $fe,$ff,$fe,$fc,$f0,$e0,$60,$00 .byte $01,$00,$55,$00,$00,$6d,$7f,$ff .byte $fe,$fc,$f8,$f0,$e0,$c0,$80,$00 .byte $00,$00,$80,$00,$80,$c0,$e0,$c0 .byte $e0,$f0,$e0,$e1,$d1,$f7,$f3,$f2 .byte $f6,$f0,$e0,$c0,$80,$00,$01,$07 .byte $03,$82,$dc,$d8,$78,$38,$7e,$3c .byte $18,$10,$30,$20,$00,$00,$20,$34 .byte $fc,$ff,$fe,$fc,$d8,$d0,$80,$00 .byte $02,$00,$02,$00,$00,$00,$60,$40 .byte $60,$e0,$c0,$80,$00,$00,$80,$c0 .byte $80,$00,$c0,$80,$c0,$40,$00,$01 .byte $00,$02,$00,$00,$01,$00,$01,$00 .byte $01,$00,$01,$00,$01,$00,$01,$00 .byte $01,$00 irqinit: ; this code must reside in bank $4000-$7fff ldx #$20 waitvsync$: bit $d011 bpl waitvsync$ stx $d012 ; set raster interrupt position ldx #$3b stx $d011 ; and enable hi-res mode ldx #1 stx $d019 ; allow raster interrupts dec $d01a ; acknowledge all video interrupts clc lda #$e ldx #irq setirq$: sta PIABASE+2 stx $fffe ; set interrupt vectors in all banks sty $ffff adc #$10 bcc setirq$ lda #3 ora $dd01 sta $dd01 dec $d030 ; switch to single clock mode cli jmp * ; horizontal sprite coordinates, low bytes mob0x: .byte $90,$48,$08 mob1x: .byte $c8,$10,$50 mob2x: .byte $78,$46,$f8 mob3x: .byte $e0,$12,$60 mob4x: .byte $60,$12,$e0 mob5x: .byte $f8,$46,$78 mob6x: .byte $08,$10,$c8 mob7x: .byte $50,$48,$90 ; horizontal sprite coordinates, most significant bits mobxmb: .byte $40,$5a,$01 ; vertical sprite coordinates mob01y: .byte $4a,$83,$c1 mob23y: .byte $50,$8d,$d5 mob45y: .byte $5a,$a2,$df mob67y: .byte $6e,$ac,$e5 ; sprite data pointers mob0d: .byte $7c,$7d,$7e mob1d: .byte $7f,$80,$81 mob2d: .byte $82,$83,$84 mob3d: .byte $85,$86,$87 mob4d: .byte $88,$89,$8a mob5d: .byte $8b,$8c,$8d mob6d: .byte $8e,$8f,$fc mob7d: .byte $fd,$fe,$ff raster: .byte $81,$c0,$30 nxtcnt: .byte 1,2,0 irq: pha txa pha counter = * + 1 ldx #0 ; placeholder for self-modifying code bne sframe$ frame = * + 1 lda #$6f ; placeholder for self-modifying code tax lsr and #$20 bne skip$ lda #$80 skip$: and #$80 ror sta MMURCR asl rol rol sta MMUP0H lda #$c3 sta MMUP0L txa asl asl ora #$e sta PIABASE+2 txa lsr lsr and #3 eor #3 sta $dd00 lda #0 adc #7 sta $d018 dex bpl noinit$ ldx #$6f noinit$: stx frame ldx #0 sframe$: nop nop nop nop nop nop nop nop nop nop lda mob0d,x sta $f8 lda mob1d,x sta $f9 lda mob0x,x sta $d000 lda mob1x,x sta $d002 lda mob01y,x sta $d001 sta $d003 lda mob23y,x sta $d005 sta $d007 lda mobxmb,x sta $d010 lda mob2x,x sta $d004 lda mob3x,x sta $d006 lda mob2d,x sta $fa lda mob3d,x sta $fb lda mob4x,x sta $d008 lda mob5x,x sta $d00a lda mob45y,x sta $d009 sta $d00b lda mob4d,x sta $fc lda mob5d,x sta $fd lda mob6x,x sta $d00c lda mob7x,x sta $d00e lda mob6d,x sta $fe lda mob7d,x sta $ff lda mob67y,x sta $d00d sta $d00f lda raster,x sta $d012 lda nxtcnt,x sta counter lsr $d019 ; acknowledge the interrupt pla tax pla rti