NES研究室のハロワサンプル修正

NES研究室にあるCC65サンプル(hello, world)をNESASM用に修正してみた。
…つっても、結構前に書いたやつなので只の供養目的ではあるけど(苦笑)。

主な変更はnesasmに無い疑似命令を潰し込みしただけ。
コード自体は同じように書けるみたいなので
ソース間のやり取り(フォーラムのコードを試す等)に苦労はしなさそう。

;----------------------------------------------------------------------------
;				NES Sample1 "HELLO, WORLD!"
;					Copyright (C) 2007, Tekepen
;                               nesasm modified    by 2019, Regekatsu
;----------------------------------------------------------------------------

; iNESヘッダ
	.inesprg 1 ; プログラムにいくつのバンクを使うか。今は1つ。
	.ineschr 1 ; グラフィックデータにいくつのバンクを使うか。今は1つ。
	.inesmir 1 ; - 垂直ミラーリング
	.inesmap 0 ; - マッパー。0番にする。

; 起動
	.bank 0    ; バンク0
	.org $8000 ; $8000から開始
; リセット割り込み
Reset:
	sei
	ldx	#$ff
	txs

; スクリーンオフ
	lda	#$00
	sta	$2000
	sta	$2001

; パレットテーブルへ転送(BG用のみ転送)
	lda	#$3f
	sta	$2006
	lda	#$00
	sta	$2006
	ldx	#$00
	ldy	#$10
copypal:
	lda	palettes, x
	sta	$2007
	inx
	dey
	bne	copypal

; ネームテーブルへ転送(画面の中央付近)
	lda	#$21
	sta	$2006
	lda	#$c9
	sta	$2006
	ldx	#$00
	ldy	#$0d		; 13文字表示
copymap:
	lda	string, x
	sta	$2007
	inx
	dey
	bne	copymap

; スクロール設定
	lda	#$00
	sta	$2005
	sta	$2005

; スクリーンオン
	lda	#$08
	sta	$2000
	lda	#$1e
	sta	$2001

; 無限ループ
mainloop:
	jmp	mainloop

; パレットテーブル
palettes:
	.byte	$0f, $00, $10, $20
	.byte	$0f, $06, $16, $26
	.byte	$0f, $08, $18, $28
	.byte	$0f, $0a, $1a, $2a

; 表示文字列
string:
	.byte	"HELLO, WORLD!"

; 割り込みベクタテーブル
	.bank 1       ; バンク1
	.org $FFFA    ; $FFFAから開始

	.word	$0000 ; VBlank割り込み
	.word	Reset ; リセット割り込み。起動時とリセットでResetに飛ぶ
	.word	$0000 ; ハードウェア割り込みとソフトウェア割り込みによって発生

; パターンテーブル
	.bank 2    ; バンク2
	.org $0000 ; $0000から開始

	.incbin	"character.chr"