アドレスエラーの発生原因が判明しました。
コマンドラインを処理するサブルーチンTSTCはパラメータを呼び元にデータを直接書いてサブルーチン側でスタックポインタでアクセスするというテクニックを使っていますが次のように記述すると第2パラメータの値がおかしなことになっています
40307番地のデータは本来ラベルPR2-アドレスのテンポラリ値=4030E-40307=07になるはすですが06になっています。
コマンドラインを処理するサブルーチンTSTCはパラメータを呼び元にデータを直接書いてサブルーチン側でスタックポインタでアクセスするというテクニックを使っていますが次のように記述すると第2パラメータの値がおかしなことになっています
40307番地のデータは本来ラベルPR2-アドレスのテンポラリ値=4030E-40307=07になるはすですが06になっています。
そのままAS68Kでアセンブル 0402FE 383C000B PRINT MOVE #11,D4 D4 = number of print spaces 040302 610008F4 BSR.L TSTC if null list and ":" 040306 3A06 DC.B ':',PR2-* 040308 610009C4 BSR.L CRLF give CR-LF and continue 04030C 6098 BRA RUNSML execution on the same line 04030E 610008E8 PR2 BSR.L TSTC if null list and <CR>
どうもこれはアセンブラのバグというか仕様みたいです。2行に分けて書けば問題なし
データ文修正後 0402FE 383C000B PRINT MOVE #11,D4 D4 = number of print spaces 040302 610008F4 BSR.L TSTC if null list and ":" 040306 3A DC.B ':' 040307 07 DC.B PR2-* 040308 610009C4 BSR.L CRLF give CR-LF and continue 04030C 6098 BRA RUNSML execution on the same line 04030E 610008E8 PR2 BSR.L TSTC if null list and <CR>