『X68000マシン語プログラミング グラフィックス編』のサンプルを参考に pset の代わりに使う以下の psetx を作成しました。この psetx を使うように変更した FillRectangle を実行すると速度は遅いですが描画できました。
void psetx(int x1, int y1, int color) { __asm__ volatile ( "move.l %0, %%d1\n\t" "move.l %1, %%d2\n\t" "move.l %2, %%d3\n\t" "clr.l -(%%sp)\n\t" "dc.w 0xff20\n\t" // _SUPER (スーパーバイザーモードへ) "move.l %%d0, (%%sp)\n\t" "movea.l %%d1, %%a0\n\t" "adda.l %%d1, %%a0\n\t" // a0 = x1 * 2 "moveq.l #10, %%d0\n\t" "lsl.l %%d0, %%d2\n\t" // d2 = y1 * 1024 "adda.l %%d2, %%a0\n\t" // a0 = x1 * 2 + y1 * 1024 "adda.l #0xc00000, %%a0\n\t" // a0 = 0xc00000 + x1 * 2 + y1 * 1024 "move.w %%d3, (%%a0)\n\t" "dc.w 0xff20\n\t" // _SUPER (スーパーバイザーモードから戻る) "addq.l #4,%%sp\n\t" : : "r"(x1), "r"(y1), "r"(color) // 入力 : "d0", "d1", "d2", "d3", "a0" // 使用するレジスタ ); }




