home *** CD-ROM | disk | FTP | other *** search
/ FreeWare Collection 2 / FreeSoftwareCollection2pd199x-jp.img / rom / rom.c < prev    next >
Text File  |  1990-06-14  |  5KB  |  188 lines

  1. /********************************************************************/
  2. /*                                                                  */
  3. /*      rom.c -- functions to display image data in system ROM      */
  4. /*                                                                  */
  5. /*                   written by  タケ (NAA01070)                    */
  6. /*                                                                  */
  7. /********************************************************************/
  8.  
  9. #include <egb.h>
  10. #include <rom.h>
  11.  
  12. #define SYSTEM_ROM_DATA 0x108
  13.  
  14. #define OFF_GEAR_ICON    0x28000
  15. #define OFF_TOP_LINE     0x30838
  16. #define OFF_KEYBOARD     0x30859
  17. #define OFF_WINDOW       0x34639
  18. #define OFF_KANJI_BUTTON 0x3490f
  19. #define OFF_SIZE_BUTTON  0x34b5b
  20. #define OFF_SHADOW_V     0x34bcd
  21. #define OFF_SHADOW_H     0x34c5c
  22. #define OFF_CALCULATOR   0x34e00
  23. #define OFF_BUTTON       0x37ec0
  24. #define OFF_OPENING      0x38000
  25. #define OFF_SYS_ICON     0x3b000
  26.  
  27. #define PSET 0
  28. #define OR   2
  29. #define BLUE   9
  30. #define RED   10
  31. #define GREEN 12
  32.  
  33. void ROM_putGearIcon(char *work, char *para, int sw, int n,
  34.     int x, int y)
  35. {
  36.     DWORD(para + 0) = OFF_GEAR_ICON + ((W_GEAR_ICON + 7) / 8)
  37.         * L_GEAR_ICON * ((n - 1) * 2 + sw);
  38.     WORD(para +  4) = SYSTEM_ROM_DATA;
  39.     WORD(para +  6) = x;
  40.     WORD(para +  8) = y;
  41.     WORD(para + 10) = x + W_GEAR_ICON - 1;
  42.     WORD(para + 12) = y + L_GEAR_ICON - 1;
  43.     EGB_putBlockColor(work, 0, para);
  44. }
  45.  
  46. void ROM_putTopLine(char *work, char *para, int x, int y)
  47. {
  48.     DWORD(para + 0) = OFF_TOP_LINE;
  49.     WORD(para +  4) = SYSTEM_ROM_DATA;
  50.     WORD(para +  6) = x;
  51.     WORD(para +  8) = y;
  52.     WORD(para + 10) = x + W_TOP_LINE - 1;
  53.     WORD(para + 12) = y + L_TOP_LINE - 1;
  54.     EGB_putBlockColor(work, 0, para);
  55. }
  56.  
  57. void ROM_putKeyboard(char *work, char *para, int n, int x, int y)
  58. {
  59.     DWORD(para + 0) = OFF_KEYBOARD + ((W_KEYBOARD + 7) / 8)
  60.         * L_KEYBOARD * (n - 1);
  61.     WORD(para +  4) = SYSTEM_ROM_DATA;
  62.     WORD(para +  6) = x;
  63.     WORD(para +  8) = y;
  64.     WORD(para + 10) = x + W_KEYBOARD - 1;
  65.     WORD(para + 12) = y + L_KEYBOARD - 1;
  66.     EGB_putBlockColor(work, 0, para);
  67. }
  68.  
  69. void ROM_putWindow(char *work, char *para, int x, int y)
  70. {
  71.     DWORD(para + 0) = OFF_WINDOW;
  72.     WORD(para +  4) = SYSTEM_ROM_DATA;
  73.     WORD(para +  6) = x;
  74.     WORD(para +  8) = y;
  75.     WORD(para + 10) = x + W_WINDOW - 1;
  76.     WORD(para + 12) = y + L_WINDOW - 1;
  77.     EGB_putBlockColor(work, 0, para);
  78. }
  79.  
  80. void ROM_putKanjiButton(char *work, char *para, int n, int x, int y)
  81. {
  82.     DWORD(para + 0) = OFF_KANJI_BUTTON + ((W_KANJI_BUTTON + 7) / 8)
  83.         * L_KANJI_BUTTON * (n - 1);
  84.     WORD(para +  4) = SYSTEM_ROM_DATA;
  85.     WORD(para +  6) = x;
  86.     WORD(para +  8) = y;
  87.     WORD(para + 10) = x + W_KANJI_BUTTON - 1;
  88.     WORD(para + 12) = y + L_KANJI_BUTTON - 1;
  89.     EGB_putBlockColor(work, 0, para);
  90. }
  91.  
  92. void ROM_putSizeButton(char *work, char *para, int n, int x, int y)
  93. {
  94.     DWORD(para + 0) = OFF_SIZE_BUTTON + ((W_SIZE_BUTTON + 7) / 8)
  95.         * L_SIZE_BUTTON * (n - 1);
  96.     WORD(para +  4) = SYSTEM_ROM_DATA;
  97.     WORD(para +  6) = x;
  98.     WORD(para +  8) = y;
  99.     WORD(para + 10) = x + W_SIZE_BUTTON - 1;
  100.     WORD(para + 12) = y + L_SIZE_BUTTON - 1;
  101.     EGB_putBlockColor(work, 0, para);
  102. }
  103.  
  104. void ROM_putShadowV(char *work, char *para, int x, int y)
  105. {
  106.     DWORD(para + 0) = OFF_SHADOW_V;
  107.     WORD(para +  4) = SYSTEM_ROM_DATA;
  108.     WORD(para +  6) = x;
  109.     WORD(para +  8) = y;
  110.     WORD(para + 10) = x + W_SHADOW_V - 1;
  111.     WORD(para + 12) = y + L_SHADOW_V - 1;
  112.     EGB_putBlockColor(work, 0, para);
  113. }
  114.  
  115. void ROM_putShadowH(char *work, char *para, int x, int y)
  116. {
  117.     DWORD(para + 0) = OFF_SHADOW_H;
  118.     WORD(para +  4) = SYSTEM_ROM_DATA;
  119.     WORD(para +  6) = x;
  120.     WORD(para +  8) = y;
  121.     WORD(para + 10) = x + W_SHADOW_H - 1;
  122.     WORD(para + 12) = y + L_SHADOW_H - 1;
  123.     EGB_putBlockColor(work, 0, para);
  124. }
  125.  
  126. void ROM_putCalculator(char *work, char *para, int x, int y)
  127. {
  128.     DWORD(para + 0) = OFF_CALCULATOR;
  129.     WORD(para +  4) = SYSTEM_ROM_DATA;
  130.     WORD(para +  6) = x;
  131.     WORD(para +  8) = y;
  132.     WORD(para + 10) = x + W_CALCULATOR - 1;
  133.     WORD(para + 12) = y + L_CALCULATOR - 1;
  134.     EGB_putBlockColor(work, 0, para);
  135. }
  136.  
  137. void ROM_putButton(char *work, char *para, int n, int x, int y)
  138. {
  139.     DWORD(para + 0) = OFF_BUTTON +  8 + (8 + ((W_BUTTON + 7) / 8)
  140.         * L_BUTTON) * (n - 1);
  141.     WORD(para +  4) = SYSTEM_ROM_DATA;
  142.     WORD(para +  6) = x;
  143.     WORD(para +  8) = y;
  144.     WORD(para + 10) = x + W_BUTTON - 1;
  145.     WORD(para + 12) = y + L_BUTTON - 1;
  146.     EGB_putBlockColor(work, 0, para);
  147. }
  148.  
  149. void ROM_putOpening(char *work, char *para, int x, int y)
  150. {
  151.     int i, j;
  152.  
  153.     EGB_writeMode(work, OR);
  154.     for (i = 0; i < L_OPENING; ++i)
  155.         for (j = 0; j < 3; ++j) {
  156.             switch(j) { 
  157.                 case 0:
  158.                     EGB_color(work, 0, BLUE); break;
  159.                 case 1:
  160.                     EGB_color(work, 0, RED); break;
  161.                 default:
  162.                     EGB_color(work, 0, GREEN);
  163.             }
  164.             DWORD(para + 0) = OFF_OPENING + 4 + ((W_OPENING + 7) / 8)
  165.                 * (3 * i + j);
  166.             WORD(para +  4) = SYSTEM_ROM_DATA;
  167.             WORD(para +  6) = x;
  168.             WORD(para +  8) = y + i;
  169.             WORD(para + 10) = x + W_OPENING - 1;
  170.             WORD(para + 12) = y + i;
  171.             EGB_putBlockColor(work, 0, para);
  172.         }
  173.     EGB_writeMode(work, PSET);
  174. }
  175.  
  176. void ROM_putSysIcon(char *work, char *para, int sw, int n,
  177.     int x, int y)
  178. {
  179.     DWORD(para + 0) = OFF_SYS_ICON + ((W_SYS_ICON + 7) / 8)
  180.         * L_SYS_ICON * ((n - 1) * 2 + sw);
  181.     WORD(para +  4) = SYSTEM_ROM_DATA;
  182.     WORD(para +  6) = x;
  183.     WORD(para +  8) = y;
  184.     WORD(para + 10) = x + W_SYS_ICON - 1;
  185.     WORD(para + 12) = y + L_SYS_ICON - 1;
  186.     EGB_putBlockColor(work, 0, para);
  187. }
  188.