;asm6 will.asm will.nes
; iNES header
db "NES", $1a
db $01 ; PRG-ROM
db $01 ; CHR-ROM
db $00 ; mapper / mirroring
dsb 9, $00
base $c000
Reset:
lda #$00
sta $2000 ; PPU制御レジスタ1
sta $2001 ; PPU制御レジスタ2
; ネームテーブル $2000-$23bf
lda #$20
sta $2006 ; VRAMアドレスレジスタ
lda #$00
sta $2006
ldx #0
-
lda name_tbl0, x
sta $2007 ; VRAMアクセスレジスタ
inx
bne -
-
lda name_tbl1, x
sta $2007 ; VRAMアクセスレジスタ
inx
bne -
-
lda name_tbl2, x
sta $2007 ; VRAMアクセスレジスタ
inx
bne -
-
lda name_tbl3, x
sta $2007 ; VRAMアクセスレジスタ
inx
bne -
; パレットテーブル $3f00-3f1f
lda #$3f
sta $2006 ; VRAMアドレスレジスタ
lda #$00
sta $2006
ldx #0
ldy #$20
-
lda palette_tbl, x
sta $2007 ; VRAMアクセスレジスタ
inx
dey
bne -
; スプライト
ldx #0
ldy #(4*31)
-
stx $2003 ; スプライトアドレスレジスタ
lda sprite_data, x
sta $2004 ; スプライトアクセスレジスタ
inx
dey
bne -
lda #$00
sta $2005 ; スクロールレジスタ
sta $2005
; 表示開始
lda #$08
sta $2000 ; PPU制御レジスタ1
lda #$1e
sta $2001 ; PPU制御レジスタ2
-
jmp -
name_tbl0:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0a,$0b,$0c,$0d,$0e,$0f,$10,$11,$12,$10,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$13,$14,$15,$16,$17,$12,$18,$19,$09,$0a,$1a,$1b,$1c,$1d,$1e,$1f,$20,$21,$10,$00,$00,$00
name_tbl1:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$22,$23,$24,$25,$26,$27,$28,$09,$29,$19,$2a,$2b,$2c,$2d,$2e,$2f,$30,$10,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$31,$32,$24,$33,$34,$35,$19,$36,$37,$38,$39,$3a,$3b,$3c,$3d,$3e,$12,$10,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$3f,$40,$41,$42,$43,$44,$45,$0a,$19,$46,$47,$48,$49,$4a,$4b,$4c,$4d,$44,$12,$4e,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$4f,$50,$51,$52,$15,$53,$54,$55,$0a,$19,$56,$57,$58,$59,$5a,$5b,$5c,$5d,$44,$12,$5e,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$5f,$60,$61,$15,$15,$62,$63,$64,$65,$19,$66,$67,$68,$69,$0a,$6a,$6b,$6c,$44,$12,$6d,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$6e,$6f,$70,$71,$15,$72,$73,$74,$64,$75,$76,$77,$78,$79,$7a,$7b,$7c,$12,$7d,$44,$7e,$7f,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$80,$81,$82,$83,$84,$85,$86,$87,$64,$86,$87,$88,$00,$00,$89,$8a,$19,$8b,$8c,$44,$12,$8d,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$8e,$8f,$90,$91,$64,$86,$87,$64,$86,$92,$93,$94,$95,$96,$0a,$19,$97,$98,$99,$12,$9a,$00,$00,$00
name_tbl2:
db $00,$00,$00,$00,$9b,$9c,$9d,$9e,$9f,$a0,$a1,$a2,$64,$86,$87,$64,$86,$87,$64,$a3,$a4,$09,$0a,$19,$a5,$a6,$a7,$a8,$a9,$00,$00,$00
db $00,$00,$00,$00,$aa,$ab,$ac,$ad,$ae,$af,$b0,$87,$64,$86,$87,$64,$86,$87,$b1,$b2,$19,$09,$0a,$b3,$b4,$b5,$b6,$b7,$b8,$00,$00,$00
db $00,$00,$00,$00,$b9,$15,$15,$ba,$bb,$bc,$bd,$be,$64,$86,$87,$64,$86,$87,$bf,$0a,$19,$09,$0a,$c0,$c1,$c2,$c3,$c4,$c5,$00,$00,$00
db $00,$00,$00,$00,$15,$15,$15,$c6,$c7,$c8,$c9,$ca,$64,$86,$87,$64,$86,$cb,$09,$0a,$19,$cc,$cd,$ce,$cf,$d0,$d1,$12,$d2,$00,$00,$00
db $00,$00,$00,$00,$d3,$d4,$d5,$d6,$44,$d7,$d8,$87,$64,$86,$87,$64,$86,$d9,$09,$0a,$da,$db,$dc,$dd,$de,$df,$44,$12,$10,$00,$00,$00
db $00,$00,$00,$00,$e0,$e1,$e2,$10,$44,$e3,$86,$87,$64,$86,$87,$64,$86,$e4,$09,$0a,$e5,$e6,$e7,$e8,$e9,$ea,$44,$12,$10,$00,$00,$00
db $00,$00,$00,$00,$eb,$ec,$30,$10,$ed,$64,$86,$87,$64,$86,$87,$64,$ee,$19,$09,$ef,$f0,$f1,$f2,$f3,$f4,$10,$44,$12,$10,$00,$00,$00
db $00,$00,$00,$00,$f5,$f6,$12,$10,$f7,$64,$86,$87,$64,$86,$87,$64,$f8,$19,$f9,$fa,$fb,$fc,$fd,$fe,$30,$10,$44,$12,$10,$00,$00,$00
name_tbl3:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
attr_tbl:
db $00,$00,$00,$00, $00,$00,$00,$00
db $00,$00,$00,$00, $00,$00,$00,$00
db $00,$00,$00,$00, $00,$00,$00,$00
db $00,$00,$00,$00, $00,$00,$00,$00
db $00,$00,$00,$00, $00,$00,$00,$00
db $00,$00,$00,$00, $00,$00,$00,$00
db $00,$00,$00,$00, $00,$00,$00,$00
db $00,$00,$00,$00, $00,$00,$00,$00
sprite_data:
db 63, 1, 0, 120
db 63, 2, 0, 128
db 63, 3, 0, 136
db 71, 4, 0, 120
db 71, 5, 0, 128
db 71, 6, 1, 144
db 71, 7, 1, 152
db 79, 8, 0, 72
db 79, 9, 0, 80
db 79, 10, 0, 88
db 87, 11, 0, 64
db 87, 12, 0, 72
db 87, 13, 0, 152
db 95, 14, 0, 56
db 95, 15, 0, 64
db 95, 16, 0, 152
db 95, 17, 0, 160
db 103, 18, 0, 48
db 103, 19, 0, 56
db 103, 20, 0, 64
db 103, 21, 0, 152
db 103, 22, 0, 160
db 111, 23, 0, 48
db 111, 24, 0, 56
db 111, 25, 0, 144
db 111, 26, 0, 152
db 119, 27, 0, 144
db 119, 28, 0, 152
db 127, 29, 0, 32
db 127, 30, 0, 40
db 127, 31, 0, 48
palette_tbl:
db $30, $0f, $15, $28
db $00, $00, $00, $00
db $00, $00, $00, $00
db $00, $00, $00, $00
db $30, $1a, $12, $2c
db $00, $1a, $12, $14
db $00, $00, $00, $00
db $00, $00, $00, $00
org $fffa
dw 0 ; NMI VBlank
dw Reset
dw 0 ; IRQ/BRK
incbin "will.chr"