##################
# Chipper V2.11A #
##################

CHIP-8用アセンブラ『Chipper V2.11』の不具合を修正しました。

オリジナルの『Chipper V2.11』は、Christian Egeberg氏によって作成されたものです。
CHIP-8用アセンブラは何種類か公開されていますが、僕はこの『Chipper』がいちばん使いやすいと思います。

------
変更点
------

* "JP V0,Addr"命令が正しくコンパイルできなかった不具合を修正しました。

	『Chipper V2.11』には、"JP V0,Addr"命令に関して次のような不具合がありました。

	不具合1:

		未定義シンボル"UndefinedSymbol"に対して、

			JP V0,UndefinedSymbol

		という命令をコンパイルした場合に、コンパイルエラーが生成されません。
		エラーも警告もなく、"JP V0,#000"に相当するコードが生成されてしまいます。

	不具合2:

		定義済みシンボル"DefinedSymbol"に対して、

			JP V0,DefinedSymbol

		という命令をコンパイルした場合に、コンパイルエラーとなってしまいます。

	これらの不具合が発生する理由は、"JP V0,Addr"命令をコンパイルするサブルーチンにて、
	引数のエラーチェック条件が逆になってしまっているのが原因でした。

	今回、エラーチェック条件を修正し、"JP V0,Addr"命令が正しくコンパイルできるようになりました。

	"JP V0,Addr"命令は比較的利用頻度が低いために、不具合が発覚しなかったようです。
	手元のCHIP-8用ゲームをいくつか調べてみたところ、"JP V0,Addr"命令はひとつも使われていませんでした。

* "INCLUDE"擬似命令の後で、命令配置アドレスが元に戻ってしまう不具合を修正しました。

	『Chipper V2.11』には、"INCLUDE"命令に関して次のような不具合がありました。

	次のようなソースファイルがあると仮定します。

		----- main.chp -----
			org #800
		Symbol1:
			include data1.inc
		Symbol2:
			include data2.inc

		----- data1.inc -----
			db #00, #01, #02, #03

		----- data2.inc -----
			db #04, #05

	main.chpをコンパイルすると、本来は次のように配置されなければいけません。

		Addr  Data
		#800: #00
		#801: #01
		#802: #02
		#803: #03
		#804: #04
		#805: #05
		#806: #06
		#807: #07

	しかし実際には、次のように配置されてしまいます。

		Addr  Data
		#800: #04 ... #00を配置した後に#04で上書きされます
		#801: #05 ... #01を配置した後に#05で上書きされます
		#802: #02
		#803: #03

	この不具合が発生する理由は、"INCLUDE"擬似命令の後、ソースファイル名や行番号を元に戻す処理の中で、
	命令配置アドレスまで元に戻してしまっているのが原因です。

	今回、命令配置アドレスは継続するように修正し、正しく配置されるようになりました。

	"INCLUDE"擬似命令は比較的利用頻度が低いために、不具合が発覚しなかったようです。
	手元のCHIP-8用ゲームをいくつか調べてみたところ、"INCLUDE"擬似命令はひとつも使われていませんでした。

* バージョン番号を変更し、『Chipper V2.11A』としました。

	オリジナルの『Chipper V2.11』と区別するために、僕が勝手に付けたバージョン番号です。
	『Chipper V2.11A』は、『Chipper V2.11』の正式なバージョンアップ版ではありません。

----
注意
----

『Chipper V2.11』が現時点での正式な最新版だと思うのですが、
もしかしたら既に新しいバージョンがリリースされていて、上述の不具合は修正済みかも知れません。
『Chipper V2.11』でさえも既に10年以上前のプログラムなので、ちょっと情報があやふやです・・・
もし、もっと新しい『Chipper』をご存知でしたら、ぜひご一報ください。

------------------
ライセンスについて
------------------

再配布条件は、オリジナルの『Chipper V2.11』に従います。
配布ファイルに含まれているCHIPPER.DOCをご参照ください。

----
謝辞
----

『Chipper V2.11』を製作なさった、Christian Egeberg氏に感謝いたします。

----------------------
Thu Apr 2 2004
Naoyuki Sawa
nsawa@north.hokkai.net
----------------------
