NEW_RSPASM 4.13 KB
==============================================================================
	R S P A S M  2.30	R E A D M E
==============================================================================
	$Id: NEW_RSPASM,v 1.1.1.1 2002/05/02 03:29:10 blythe Exp $

rspasm の改良版です. rspasm 2.30 は rspasm 2.0 の上位互換となっています.
変更箇所は以下の通りとなっています.

-------------------------
V2.20--->V2.30 の修正箇所
-------------------------
o .text 命令と .space 命令の相性に関するバグの修正

  複数の .text <ID> 命令を処理した後で IMEM 領域で .space 命令を使うと 
.space が誤動作するのを修正しました. また .space 命令で指定したアドレ
スが既にオーバーしていたときにエラーを出すようにしました.

  また .text 命令で指定したアドレスと @codecount で得られるアドレスの8
Bytes Alignment が, 不一致の場合にエラーを出すようにした. これは DMA 
処理するときに双方が 8 Bytes 境界に一致している必要があるからである.


o 長い Path 名で参照される file のリスティングの修正.

  長い Path 名で参照される file のリスティング (*.lst ファイルの出力)
が正常に動作しないのを修正しました.


o エラーを検出時に停止するように修正

  エラーを検出しても停止しないことがあったのを修正し, エラー時には停止
するようにした.


-------------------------
V2.00--->V2.20 の修正箇所
-------------------------
o ブランチ命令のターゲットに関するバグの修正

  以下のようにブランチ系の命令でのターゲットとして使用しているラベルを
そのブランチ命令以降かつラベル登場以前に, 非ブランチ命令で参照するとそ
のラベルの値が 0 として設定されてしまうというものです.  これは -S オプ
ションでシンボルファイルを読み込んだ場合でも発生していました.

---------------------------------------------------------
	beq	$1, zero, Skip1
	....
	ori	$31, zero, Skip1
	....
Skip1:
---------------------------------------------------------

これを修正し, -S オプションなしのときはエラーを返すようにし,
また -S オプションありの場合はシンボルファイルを見に行くように
修正しました. 


o -F オプションの追加

  -F オプションでシンボルが見当たらないときのエラーメッセージを抑制で
きるようにしました. これはシンボルファイルの作成時に画面へ表示されるエ
ラーメッセージを軽減するためです.


o .text の動作のバグ修正

	.text [iexpression] という文がプログラム内で複数あると
	正常にアセンブルできないというバグがあったのを直しました.
	これにより以下のように同じアドレス上にあるコードを一度に
	アセンブルすることができるようになりました. これによって
	オーバーレイモジュールの作成が簡単になります.

	.text	0x1000
	[CODE A]
	.text	0x1000
	[CODE B]	


o @codecount ラベルの追加

	これはラベルが置かれている位置の直前までにアセンブルした
	命令の通算バイト数が保持されています.
	以下のような場合, numA,B,C にはそれぞれ 4,12,16 が定義されます.

	.text	0x1000	<---- ファイルの先頭
	nop
	.symbol	numA, @codecount
	nop
	nop
	.symbol	numB, @codecount
	.text	0x1200
	nop
	.symbol	numC, @codecount
	
	Text 領域のみで @codecount は使用可能です.


o .byte "STRING" のサポート

	.byte "文字列" という表現を可能にしました.
	この場合, 文字列として使用可能なのは改行(\n)タブ(\t) と表示可能
	な文字のみです. \f,\b,\0 などの表現はできません.
	また文字列の最後に \0 はつきません. もし \0 を追加したい場合は,
	以下のように 2 文に分けてください.
	
	.byte	"ABCDEF"
	.byte	0


o ベクトルレジスタのロードストアにおけるオフセット値のチェックの追加

	lqv, slv などのベクトルレジスタのロードストア命令において,
	そのオフセットには制限がありましたが (7bit 表現) 従来の rspasm
	ではその制限を超えた場合の警告がありませんでした.
	これを追加し, 7bit 表現を超えた場合は警告を出すようにしました.
	またアラインメントについても警告を出します.

o _RSPASM_VERSION マクロ値の追加

	アセンブルの前のプリプロセッサ処理時において, マクロ 
	_RSPASM_VERSION の値を参照することで現在の rspasm のバージョン
	情報を知ることができるようになりました.
	rspasm 2.2 のバージョン情報として設定されている本マクロの値は
	220 です. ソースファイルに以下のように記述することでアセンブラ
	のバージョン違いによる不都合を警告することができます.

	|	
	|#if	((!defined(_RSPASM_VERSION))||_RSPASM_VERSION<220)
	|● This Code must be complied with RSPASM version 2.20 or later. ●
	|#endif
	|


o .bound のバグの修正

	.bound をテキスト領域で使用するとうまく動作しなかったのを修正
	しました.

==============================================================================