OSDN Git Service

screen.c
authorttwilb <ttwilb@users.sourceforge.jp>
Wed, 12 Mar 2014 15:26:39 +0000 (00:26 +0900)
committerttwilb <ttwilb@users.sourceforge.jp>
Wed, 12 Mar 2014 15:26:39 +0000 (00:26 +0900)
screen.c

index 878a1c1..447a2c3 100644 (file)
--- a/screen.c
+++ b/screen.c
-#include "osecpu.h"\r
-\r
-void putOsaskChar(int c, HOSECPU_RuntimeEnvironment *r)\r
-{\r
-       if (0x10 <= c && c <= 0x1f){\r
-               c = "0123456789ABCDEF"[c & 0x0f];\r
-       }\r
-       putchar(c);\r
-       r->lastConsoleChar = c;\r
-       return;\r
-}\r
-\r
-void checkString(HOSECPU_RuntimeEnvironment *r, int rxx, int pxx)\r
-{\r
-       char c = 0;\r
-       if (r->preg[pxx].typ != 0x03){\r
-               c = 1;\r
-       }\r
-       if (r->preg[pxx].p < r->preg[pxx].p0){\r
-               c = 1;\r
-       }\r
-       if (r->ireg[rxx] < 0){\r
-               c = 1;\r
-       }\r
-       if (r->preg[pxx].p + r->ireg[rxx] > r->preg[pxx].p1){\r
-               c = 1;\r
-       }\r
-       if (c != 0){\r
-               (*(r->errHndl))(r);\r
-       }\r
-       return;\r
-}\r
-\r
-int loadColor(HOSECPU_RuntimeEnvironment *r, int rxx)\r
-{\r
-       int c, m, rr, gg, bb;\r
-       c = r->ireg[rxx];\r
-       m = r->ireg[0x31] & 0x0c;\r
-       if (m == 0x04) {\r
-               if (c < -1 || c > 7){\r
-                       (*(r->errHndl))(r);\r
-               }\r
-               c = iColor1[c & 0x07];\r
-       }\r
-       if (m == 0x08) {\r
-               // 00, 24, 48, 6d, 91, b6, da, ff\r
-               if (c < 0 || c >= (1 << 9)){\r
-                       (*(r->errHndl))(r);\r
-               }\r
-               rr = (c >> 6) & 0x07;\r
-               gg = (c >> 3) & 0x07;\r
-               bb = c & 0x07;\r
-               rr = (rr * 255) / 7;\r
-               gg = (gg * 255) / 7;\r
-               bb = (bb * 255) / 7;\r
-               c = rr << 16 | gg << 8 | bb;\r
-       }\r
-       if (m == 0x0c) {\r
-               // 00, 08, 10, 18, 20, 29, 31, 39,\r
-               // 41, 4a, 52, 5a, 62, 6a, 73, 7b,\r
-               // 83, 8b, 94, 9c, a4, ac, b4, bd,\r
-               // c5, cd, d5, de, e6, ee, f6, ff\r
-               if (c < 0 || c >= (1 << 15)){\r
-                       (*(r->errHndl))(r);\r
-               }\r
-               rr = (c >> 10) & 0x1f;\r
-               gg = (c >> 5) & 0x1f;\r
-               bb = c & 0x1f;\r
-               rr = (rr * 255) / 31;\r
-               gg = (gg * 255) / 31;\r
-               bb = (bb * 255) / 31;\r
-               c = rr << 16 | gg << 8 | bb;\r
-       }\r
-       return c;\r
-}\r
-\r
-void checkRect(HOSECPU_RuntimeEnvironment *r, int rxx)\r
-{\r
-       char c = 0;\r
-       int i;\r
-       if (r->ireg[rxx + 0] <= 0 || r->ireg[rxx + 0] > mainWindow.xsize){\r
-               c = 1;\r
-       }\r
-       if (r->ireg[rxx + 1] <= 0 || r->ireg[rxx + 1] > mainWindow.ysize){\r
-               c = 1;\r
-       }\r
-       if (r->ireg[rxx + 2] < 0 || r->ireg[rxx + 2] >= mainWindow.xsize){\r
-               c = 1;\r
-       }\r
-       if (r->ireg[rxx + 3] < 0 || r->ireg[rxx + 3] >= mainWindow.ysize){\r
-               c = 1;\r
-       }\r
-       i = r->ireg[rxx + 2] + r->ireg[rxx + 0];\r
-       if (i <= 0 || i > mainWindow.xsize){\r
-               c = 1;\r
-       }\r
-       i = r->ireg[rxx + 1] + r->ireg[rxx + 3];\r
-       if (i <= 0 || i > mainWindow.ysize){\r
-               c = 1;\r
-       }\r
-       if (c != 0){\r
-               (*(r->errHndl))(r);\r
-       }\r
-       return;\r
+#include "osecpu.h"
+
+void putOsaskChar(int c, HOSECPU_RuntimeEnvironment *r)
+{
+       if (0x10 <= c && c <= 0x1f){
+               c = "0123456789ABCDEF"[c & 0x0f];
+       }
+       putchar(c);
+       r->lastConsoleChar = c;
+       return;
+}
+
+void checkString(HOSECPU_RuntimeEnvironment *r, int rxx, int pxx)
+{
+       char c = 0;
+       if (r->preg[pxx].typ != 0x03){
+               c = 1;
+       }
+       if (r->preg[pxx].p < r->preg[pxx].p0){
+               c = 1;
+       }
+       if (r->ireg[rxx] < 0){
+               c = 1;
+       }
+       if (r->preg[pxx].p + r->ireg[rxx] > r->preg[pxx].p1){
+               c = 1;
+       }
+       if (c != 0){
+               (*(r->errHndl))(r);
+       }
+       return;
+}
+
+int loadColor(HOSECPU_RuntimeEnvironment *r, int rxx)
+{
+       int c, m, rr, gg, bb;
+       c = r->ireg[rxx];
+       m = r->ireg[0x31] & 0x0c;
+       if (m == 0x04) {
+               if (c < -1 || c > 7){
+                       (*(r->errHndl))(r);
+               }
+               c = iColor1[c & 0x07];
+       }
+       if (m == 0x08) {
+               // 00, 24, 48, 6d, 91, b6, da, ff
+               if (c < 0 || c >= (1 << 9)){
+                       (*(r->errHndl))(r);
+               }
+               rr = (c >> 6) & 0x07;
+               gg = (c >> 3) & 0x07;
+               bb = c & 0x07;
+               rr = (rr * 255) / 7;
+               gg = (gg * 255) / 7;
+               bb = (bb * 255) / 7;
+               c = rr << 16 | gg << 8 | bb;
+       }
+       if (m == 0x0c) {
+               // 00, 08, 10, 18, 20, 29, 31, 39,
+               // 41, 4a, 52, 5a, 62, 6a, 73, 7b,
+               // 83, 8b, 94, 9c, a4, ac, b4, bd,
+               // c5, cd, d5, de, e6, ee, f6, ff
+               if (c < 0 || c >= (1 << 15)){
+                       (*(r->errHndl))(r);
+               }
+               rr = (c >> 10) & 0x1f;
+               gg = (c >> 5) & 0x1f;
+               bb = c & 0x1f;
+               rr = (rr * 255) / 31;
+               gg = (gg * 255) / 31;
+               bb = (bb * 255) / 31;
+               c = rr << 16 | gg << 8 | bb;
+       }
+       return c;
+}
+
+void checkRect(HOSECPU_RuntimeEnvironment *r, int rxx)
+{
+       char c = 0;
+       int i;
+       if (r->ireg[rxx + 0] <= 0 || r->ireg[rxx + 0] > mainWindow.xsize){
+               c = 1;
+       }
+       if (r->ireg[rxx + 1] <= 0 || r->ireg[rxx + 1] > mainWindow.ysize){
+               c = 1;
+       }
+       if (r->ireg[rxx + 2] < 0 || r->ireg[rxx + 2] >= mainWindow.xsize){
+               c = 1;
+       }
+       if (r->ireg[rxx + 3] < 0 || r->ireg[rxx + 3] >= mainWindow.ysize){
+               c = 1;
+       }
+       i = r->ireg[rxx + 2] + r->ireg[rxx + 0];
+       if (i <= 0 || i > mainWindow.xsize){
+               c = 1;
+       }
+       i = r->ireg[rxx + 1] + r->ireg[rxx + 3];
+       if (i <= 0 || i > mainWindow.ysize){
+               c = 1;
+       }
+       if (c != 0){
+               (*(r->errHndl))(r);
+       }
+       return;
 }
\ No newline at end of file