一例として、メモリを使ってちょっとした絵を描いてみます。
#include "osecpu_ask.h"
#define L_invader LOCAL(0)
LOCALLABELS(1);
do {
Int32s c:R00, x:R01, y:R02, i:R03;
VPtr p:P01;
PLIMM(p, L_invader);
for (y = 0; y != 16; y++) {
for (x = 0; x != 32; x++) {
i = y * 32 + x;
PALMEM0(32, c, T_UINT1, p, i);
c *= 2; // これで0か2になる. ちなみに2は緑色.
api_drawPoint(MODE_COL3, c, x, y);
}
}
}
DAT_SA(L_invader, T_UINT1, 32 * 16);
D1B(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0);
D1B(0,0,0,0, 0,0,0,0, 0,0,0,0, 1,1,1,1, 1,1,1,1, 0,0,0,0, 0,0,0,0, 0,0,0,0);
D1B(0,0,0,0, 0,0,0,0, 0,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,0, 0,0,0,0, 0,0,0,0);
D1B(0,1,0,0, 0,0,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,0,0, 0,0,1,0);
D1B(0,1,0,1, 1,1,1,1, 1,1,0,0, 1,1,1,1, 1,1,1,1, 0,0,1,1, 1,1,1,1, 1,0,1,0);
D1B(0,1,0,1, 1,1,1,1, 1,1,0,0, 1,1,1,1, 1,1,1,1, 0,0,1,1, 1,1,1,1, 1,0,1,0);
D1B(0,1,0,1, 1,1,1,1, 1,1,0,0, 1,1,1,1, 1,1,1,1, 0,0,1,1, 1,1,1,1, 1,0,1,0);
D1B(0,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,0);
D1B(0,0,0,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,0,0,0);
D1B(0,0,0,1, 1,1,1,1, 1,1,1,0, 0,0,0,0, 0,0,0,0, 0,1,1,1, 1,1,1,1, 1,0,0,0);
D1B(0,0,0,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,0,0,0);
D1B(0,0,0,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,0,0,0);
D1B(0,0,0,0, 0,0,0,0, 1,1,0,0, 0,0,0,0, 0,0,0,0, 0,0,1,1, 0,0,0,0, 0,0,0,0);
D1B(0,0,1,0, 0,0,0,0, 1,1,0,0, 0,0,0,0, 0,0,0,0, 0,0,1,1, 0,0,0,0, 0,1,0,0);
D1B(0,0,1,1, 1,1,1,1, 1,1,0,0, 0,0,0,0, 0,0,0,0, 0,0,1,1, 1,1,1,1, 1,1,0,0);
D1B(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0);
DAT_END();