home *** CD-ROM | disk | FTP | other *** search
/ FreeWare Collection 3 / FreeSoftwareCollection3pd199x-jp.img / oh_fm / inkyoku / escreen.c < prev    next >
Text File  |  1980-01-02  |  1KB  |  59 lines

  1. #include <stdio.h>
  2. #include <egb.h>
  3. #include "crtc.h"
  4.  
  5. struct CRTCSET {    /* 各モード毎のCRTC設定値 */
  6.     int HSW1,HSW2,HST ;
  7.     int CR1 ;
  8.     int HDS,HDE ;
  9. } crtc[] = { { 96,704,799,2, 138,778 },      /* 640 x 480 */
  10.          { 80,590,669,3, 130,642 },   /* 512 x 480 */
  11.          { 94,686,779,1, 127,767 },   /* 640 x 480 */
  12.          {110,802,909,0, 130,898 } } ;/* 768 x 480 */
  13.  
  14. char work[1536] ;
  15.  
  16. main(int ac, char **av)
  17. {
  18.     int l,mode = 0 ;
  19.     struct CRTCSET *p ;
  20.  
  21.     if( ac > 1 ) mode = atoi( av[1] ) ;
  22.     EGB_init( work, 1536 ) ;    /* 画面のイニシャライズ */
  23.     EGB_displayPage( work, 0, 3 ) ;
  24.     EGB_writePage( work, 0 ) ;
  25.  
  26.     p = &crtc[mode] ;    /* CRTCをいじる */
  27.     CRTC( CA_HSW1, p->HSW1 ) ;
  28.     CRTC( CA_HSW2, p->HSW2 ) ;
  29.     CRTC( CA_HST, p->HST ) ;
  30.     CRTC( CA_CR1, p->CR1 ) ;
  31.     CRTC( CA_HDS0, p->HDS ) ;
  32.     CRTC( CA_HAJ0, p->HDS ) ;
  33.     CRTC( CA_HDE0 , p->HDE ) ;
  34.  
  35.     for( l = 0 ; l < 1024 ; l += 10 ) { /* draw grid */
  36.         if( l % 100 == 0 ) EGB_color( work, 0, 10 ) ;
  37.         else EGB_color( work, 0, 15 ) ;
  38.         EGB_singleLine( work, 0,l,1023,l ) ;
  39.         EGB_singleLine( work, l,0,l,479 ) ;
  40.     }
  41.  
  42.     getchar() ;        /* pause */
  43.     screenterm( work ) ;    /* MS-DOSに戻る */
  44. }
  45.  
  46. /*      draw single line */
  47. EGB_singleLine( work, sx,sy,ex,ey ) /* 一本の線を描く */
  48. char *work ;
  49. int sx,sy,ex,ey ;
  50. {
  51.     short param[5] ;
  52.     param[0] = 2 ;
  53.     param[1] = sx ;
  54.     param[2] = sy ;
  55.     param[3] = ex ;
  56.     param[4] = ey ;
  57.     EGB_connect( work, (char *)param ) ;
  58. }
  59.