home *** CD-ROM | disk | FTP | other *** search
/ FreeWare Collection 2 / FreeSoftwareCollection2pd199x-jp.img / cdplay / src / graphic.c < prev    next >
Text File  |  1990-06-14  |  4KB  |  118 lines

  1. #include    <stdio.h>
  2. #include    <stdlib.h>
  3. #include    <mmi.h>
  4. #include    <egb.h>
  5. #include    <mos.h>
  6. #include    <msdos.cf>
  7.  
  8. static    char    *work;
  9. static    char    *mwork;
  10.  
  11. /**** MOS Pattn ****/
  12. static    char    mosptn[6][66]={
  13.     { 2, 16,
  14.     0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x60, 0x00, 
  15.     0x30, 0x00, 0x58, 0x00, 0x3C, 0x00, 0x5E, 0x00, 
  16.     0x2F, 0x00, 0x5F, 0x80, 0x2E, 0x00, 0x7C, 0x00, 
  17.     0x66, 0x00, 0x06, 0x00, 0x03, 0x00, 0x00, 0x00, 
  18.     0x7F, 0xFF, 0x3F, 0xFF, 0x5F, 0xFF, 0x6F, 0xFF, 
  19.     0x37, 0xFF, 0x5B, 0xFF, 0x3D, 0xFF, 0x5E, 0xFF, 
  20.     0x2F, 0x7F, 0x5F, 0xBF, 0x2E, 0x7F, 0x7D, 0xFF, 
  21.     0x66, 0xFF, 0x16, 0xFF, 0x7B, 0x7F, 0xF8, 0x7F },
  22.     { 2, 16,
  23.     0x00, 0x00, 0x2F, 0xF4, 0x2F, 0xF4, 0x2F, 0xF4, 
  24.     0x37, 0xEC, 0x39, 0x9C, 0x3C, 0x3C, 0x3E, 0x7C, 
  25.     0x3E, 0x7C, 0x3D, 0xBC, 0x3B, 0xDC, 0x36, 0x6C, 
  26.     0x2C, 0x34, 0x28, 0x14, 0x20, 0x04, 0x00, 0x00,
  27.     0x00, 0x00, 0xAF, 0xF5, 0xAF, 0xF5, 0xAF, 0xF5, 
  28.     0xB7, 0xED, 0xB9, 0x9D, 0xBC, 0x3D, 0xBE, 0x7D, 
  29.     0xBE, 0x7D, 0xBD, 0xBD, 0xBB, 0xDD, 0xB6, 0x6D, 
  30.     0xAC, 0x35, 0xA8, 0x15, 0xA0, 0x05, 0x00, 0x00 },
  31.     { 2, 16,
  32.     0xC7, 0xC0, 0x9F, 0xF0, 0x3C, 0x78, 0x77, 0xDC, 
  33.     0x7F, 0xEC, 0xFC, 0x7E, 0xF8, 0x3E, 0xF8, 0x3E, 
  34.     0xF8, 0x3E, 0xFC, 0x7E, 0x7F, 0xFC, 0x77, 0xFC, 
  35.     0x38, 0x78, 0x1F, 0xF0, 0x07, 0xC0, 0x00, 0x00,
  36.     0x00, 0x0F, 0x00, 0x07, 0x00, 0x03, 0x00, 0x01, 
  37.     0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  38.     0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 
  39.     0x80, 0x03, 0xC0, 0x07, 0xE0, 0x0F, 0xF8, 0x3F },
  40.     { 2, 16,
  41.     0xC7, 0xC0, 0x9F, 0xF0, 0x38, 0x78, 0x77, 0xDC, 
  42.     0x6F, 0xFC, 0xFC, 0x7E, 0xF8, 0x3E, 0xF8, 0x3E, 
  43.     0xF8, 0x3E, 0xFC, 0x7E, 0x7F, 0xEC, 0x7F, 0xDC, 
  44.     0x3C, 0x38, 0x1F, 0xF0, 0x07, 0xC0, 0x00, 0x00,
  45.     0x00, 0x0F, 0x00, 0x07, 0x00, 0x03, 0x00, 0x01, 
  46.     0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  47.     0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 
  48.     0x80, 0x03, 0xC0, 0x07, 0xE0, 0x0F, 0xF8, 0x3F },
  49.     { 2, 16,
  50.     0xC7, 0xC0, 0x9F, 0xF0, 0x3D, 0xF8, 0x77, 0xFC, 
  51.     0x6F, 0xFC, 0xDC, 0x7E, 0xD8, 0x3E, 0xD8, 0x36, 
  52.     0xF8, 0x36, 0xFC, 0x7E, 0x7F, 0xEC, 0x7F, 0xDC, 
  53.     0x3F, 0xB8, 0x1F, 0xF0, 0x07, 0xC0, 0x00, 0x00,
  54.     0x00, 0x0F, 0x00, 0x07, 0x00, 0x03, 0x00, 0x01, 
  55.     0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  56.     0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 
  57.     0x80, 0x03, 0xC0, 0x07, 0xE0, 0x0F, 0xF8, 0x3F },
  58.     { 2, 16,
  59.     0xC7, 0xC0, 0x9F, 0xF0, 0x3F, 0x78, 0x7F, 0xDC, 
  60.     0x7F, 0xEC, 0xDC, 0x76, 0xF8, 0x36, 0xD8, 0x36, 
  61.     0xD8, 0x36, 0xDC, 0x7E, 0x6F, 0xFC, 0x7F, 0xFC, 
  62.     0x3F, 0xF8, 0x1F, 0xF0, 0x07, 0xC0, 0x00, 0x00,
  63.     0x00, 0x0F, 0x00, 0x07, 0x00, 0x03, 0x00, 0x01, 
  64.     0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  65.     0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 
  66.     0x80, 0x03, 0xC0, 0x07, 0xE0, 0x0F, 0xF8, 0x3F } };
  67.  
  68. void    wrtmos(int tp)
  69. {
  70. /*    MOS_disp(0); */
  71.     MOS_type(1, 0, 0, mosptn[tp]);
  72. /*    MOS_disp(1); */
  73. }
  74. void    grainit(void)
  75. {
  76.     int     i;
  77.     char    *p;
  78.  
  79.     if ( (p = work = malloc(2048)) == NULL )
  80.     exit(0);
  81.     for ( i=2048 ; i > 0 ; i-- ) *(p++) = 0;
  82.     if ( (p = mwork = malloc(2048)) == NULL )
  83.     exit(0);
  84.     for ( i=2048 ; i > 0 ; i-- ) *(p++) = 0;
  85.  
  86.     MOS_start(mwork,2048);
  87.     MOS_resolution(1, 3);
  88.     MOS_writePage(1);
  89.     EGB_init(work,2048);
  90.     EGB_resolution(work, 0, 3);
  91.     EGB_resolution(work, 1, 3);
  92.     EGB_displayPage(work, 1, 3);
  93.     EGB_pen(work,0);
  94.     EGB_penSize(work,1);
  95.     wrtmos(0);
  96. }
  97. void    graend(void)
  98. {
  99.     MOS_end();
  100.     exit(0);
  101. }
  102. void    fbox(int x1, int y1, int x2, int y2, int col, int bcol, int mode)
  103. {
  104.     char    para[8];
  105.  
  106. /*    MOS_disp(0); */
  107.     EGB_writeMode(work,mode);
  108.     EGB_paintMode(work,0x022);
  109.     EGB_color(work,0,col);
  110.     EGB_color(work,2,bcol);
  111.     WORD(para + 0) = x1;
  112.     WORD(para + 2) = y1;
  113.     WORD(para + 4) = x2;
  114.     WORD(para + 6) = y2;
  115.     EGB_rectangle(work,para);
  116. /*    MOS_disp(1); */
  117. }
  118.