以下の関数をコンパイルした結果のアセンブリ言語の動作を確認できました。movem 命令の仕様が不明だったため修正に時間がかかりましたが、なんとか動くようになりました(まだ仕様は不明)。
- 楕円の描画
- 楕円の弧の描画
- 楕円の扇型の描画
- 角が丸い長方形の描画
これらは IOCS 呼び出しでもできることを確認しているもので、IOCS 呼び出しではできないと思われる以下の関数を動作させることが目標です。
- 塗りつぶした楕円の描画
- 塗りつぶした角が丸い長方形の描画
- 塗りつぶした多角形の描画
movem 命令を修正した結果スタックの内容は問題ないように見えます。
アセンブリ言語にコンパイルされた結果を得るための関数を書き直したところ、インラインアセンブラで呼び出される関数の実体がないというエラーになりました。インラインアセンブラで呼び出すべき関数と異なる関数が呼び出されていた可能性があります。関数の引数の個数が違うためスタックが不正になっていたのかもしれません。インラインアセンブラの仕様がよくわかっていないので詳細は不明です。

