3 void putOsaskChar(int c, HOSECPU_RuntimeEnvironment *r)
5 if (0x10 <= c && c <= 0x1f){
6 c = "0123456789ABCDEF"[c & 0x0f];
9 r->lastConsoleChar = c;
13 void checkString(HOSECPU_RuntimeEnvironment *r, int rxx, int pxx)
16 if (r->preg[pxx].typ != 0x03){
19 if (r->preg[pxx].p < r->preg[pxx].p0){
22 if (r->ireg[rxx] < 0){
25 if (r->preg[pxx].p + r->ireg[rxx] > r->preg[pxx].p1){
34 int loadColor(HOSECPU_RuntimeEnvironment *r, int rxx)
38 m = r->ireg[0x31] & 0x0c;
43 c = iColor1[c & 0x07];
46 // 00, 24, 48, 6d, 91, b6, da, ff
47 if (c < 0 || c >= (1 << 9)){
56 c = rr << 16 | gg << 8 | bb;
59 // 00, 08, 10, 18, 20, 29, 31, 39,
60 // 41, 4a, 52, 5a, 62, 6a, 73, 7b,
61 // 83, 8b, 94, 9c, a4, ac, b4, bd,
62 // c5, cd, d5, de, e6, ee, f6, ff
63 if (c < 0 || c >= (1 << 15)){
66 rr = (c >> 10) & 0x1f;
72 c = rr << 16 | gg << 8 | bb;
77 void checkRect(HOSECPU_RuntimeEnvironment *r, int rxx)
81 if (r->ireg[rxx + 0] <= 0 || r->ireg[rxx + 0] > mainWindow.xsize){
84 if (r->ireg[rxx + 1] <= 0 || r->ireg[rxx + 1] > mainWindow.ysize){
87 if (r->ireg[rxx + 2] < 0 || r->ireg[rxx + 2] >= mainWindow.xsize){
90 if (r->ireg[rxx + 3] < 0 || r->ireg[rxx + 3] >= mainWindow.ysize){
93 i = r->ireg[rxx + 2] + r->ireg[rxx + 0];
94 if (i <= 0 || i > mainWindow.xsize){
97 i = r->ireg[rxx + 1] + r->ireg[rxx + 3];
98 if (i <= 0 || i > mainWindow.ysize){