                           Tiny Window v2.0
                      ѱ ؽƮ  ý

          Korea Advanced Institute of Science and Technology
   System Programmers Association for Researching Computer Systems
                                ǹ

                            1993 5 4


1. 

ݱ Ϲ  ͹̳ ؽƮ 츦 ַ  ȭ  
 ̽ ϴ  Curses ̺귯  ַ  ̿Ǿ. 
׷, 7 Ʈ ƽŰ ڵ带 ʷ   κ  н  ýۿ 
Curses ̺귯 ̿ϸ鼭 ÿ ѱ   ,   8 
Ʈ ڵ带 ʷ ϴ ýۿ ѱ ũ⿡  Ư Է 
  ʰ ֱ , ѱ Curses Բ  ſ   
̾. ׹ۿ Curses ü ణ  ر ȭ ǥÿ  
 ϱ , δ ſ ο α׷ ϸ
, α׷Ӱ ȭ    Ű   ־  ϴ 
͵ ٴ   Curses ϱ    ӹŸ ϴ  
̴.

  Tiny Window v2.0 Curses  Termcap  ̺귯  ̿ 
ؽƮ  ý̴. Curses ٸ , α׷Ӱ    
 ϴ 츦 ٷ  ֵ ޽ Լ ϰ  ִٴ 
Ͱ ѱۿ   ϰ ִٴ    ִ.


2. ȭ 

 Tiny Window v2.0 Ű Ե ȭϵ̴.

ȭ ̸       
----------------------------------------------------------------------
twin.c          Tiny Window v2.0 ̺귯 Լ α׷
twin.h          Tiny Window v2.0  ȭ
example.c        ȭ ( α׷  )
Makefile        Tiny Window ̺귯   ȭ 
twin.txt        Tiny Window v2.0  (KS code, ASCII code)


3. ̺귯 Լ 

 Tiny Window v2.0 ̺귯 ǵ Լ̴.

- void tw_init(void)

  Tiny Window  ó Ǿ ϴ Լ̴. α׷  
    Լ Ű  ڷ  ʱȭŰ ȭ Ͽ 
     غ Ѵ.

- void tw_end(void)

  α׷ Ǳ  Ǿ ϴ Լ̴. ͹̳  
   ȯϰ ȭ ϴ  Ѵ.

- void tw_clear(void)

   ȭ鿡 ִ  츦   ȭ  . 
   ο ȭ   ƴ϶  Լ  ʴ   
  .  ȭ  츦 ϱ ̴.

- void tw_refresh(void)

   Լ Ǿ߸ μ  ȭ鿡 ȭ  ȴ.  ׵ 
  α׷ ϶    Ѳ  ȭ鿡  µǴ
  , ̶   ִ  ȭ鿡 µǴ   ּȭ Ѽ  
  ð    ֵ  Ѵ.  ȭ      ּȭ   
  Curses Ϲ ϴ Ͱ  , ٴ  
   ۰     ٿ ؼ Ŀ ̵  ٸ 
    ڸ   ϴ ̴.

- WINDOW *tw_create(lx, ly, sx, sy)
  int lx, ly, sx, sy;

  ο ؽƮ 츦 Ѵ.    ġ   ǥ 
  (lx, ly)  . ȭ ʱ ġ, ,    ǥ
   (0, 0)̴. Ǵ  ũ  sx,  sy ŭ̴. 
   ġ ũⰡ  ʾƼ ȭ   .  
      ڷḦ ϰ ִ ε,   
    쿡     ׻ ϰ ȴ.

- void tw_write(w, x, y, c)
  WINDOW *w;
  int x, y;
  unsigned char c;

   w ǥ (x, y) ġ  c Ѵ. ѱ ù  °,  
   ° ڸ   쿡  Լ      
   ȴ. ȭ鿡 ѱ     ڰ ٸ ڿ  ̰ 
  Ǹ   ڵ . ǥ     ȿ 
  ġ Ÿ ǥ̴.     ǥ (0, 0) 
  ̴.

- void tw_border(w, hc, vc, cc)
  WINDOW *w;
  char hc, vc, cc;

  tw_create() Ѽ  ؽƮ     ǥ
   ϰ 輱 .   α׷     
  輱 (׵θ)  ϰ  Ƿ,  ׿    Լ  ʿϴ. 
  tw_border() Լ  輱   ڵ    ϳ 
  輱  ش. , 輱  쿡   ¥  輱
   Ѵ. hc, vc, cc  μ, μ, ׸ 𼭸 Ÿ
  µ ̴ ڸ Ѵ. 輱 ڷ ѱ   .

- void tw_putchar(w, c)
  WINDOW *w;
  unsigned char c;

     Ŀ  ִ. tw_putchar()  Լ   
    Ŀ ġ  ڸ ϰ Ŀ    ĭ 
  ̵Ų. ѱ   ù ° ڿ  ° ڸ 
   tw_putchar() ̿ؼ ϸ ȴ. ƽŰ ڵ尡  32   
  ڴ  ڷ  ޵Ǹ,  ȿ  ڴ  RETURN,   NEWLINE, 
  BACKSPACE, ׸ TAB̴. NEWLINE Ϲ RETURN LINEFEED  
    ޵ȴ.

- void tw_puts(w, s)
  WINDOW *w;
  char *s;

  ڿ  쿡 Ѵ. ڿ  ڴ tw_putchar() 
   ̿ؼ µǹǷ     tw_putchar() .

- void tw_gotoxy(w, x, y)
  WINDOW *w;

  Ŀ ġ ǥ (x, y) ű. ̶  ǥ 輱
   ִ  Ű ȿ  Ŀ Ű ش.

- void tw_erase(w)
  WINDOW *w;

     . ̶ 輱   ȴ. 
   ġ ũ   ʴ´.

- void tw_scrollup(w)
  WINDOW *w;

    ü  پ  ũѴ.  Լ  tw_putchar() 
  Լ   ڸ ų   ٿ NEWLINE     
    ̿Ǳ⵵ Ѵ.

- void tw_scrolldown(w)
  WINDOW *w;

  tw_scrollup() Լʹ ݴ  ũ Ѵ. ޸ ̿Ǵ  
   ,    α׷  Ǵ ̹Ƿ  
  Ͽ.

- void tw_front(w)
  WINDOW *w;

   찡  ٸ 쿡       
     ٲ۴. ٸ   ٲ ʰ  
   츸    ȴ.

- void tw_back(w)
  WINDOW *w;

  tw_front()  Լ  ݴ    츦    ڿ  򸮰  Ѵ. 
  tw_front() tw_back() Լ  츦 Ӱ ϸ鼭  
   ġ  ذϴ   ش.

- void tw_delete(w)
  WINDOW *w;

  츦 Ѵ. ٸ   ٲ ʰ  찡 
  Ǹ鼭  ؿ ִ   巯.

- void tw_move(w, lx, ly)
  WINDOW *w;
  int lx, ly;

   ġ Ѵ.  츦 ǥ (lx, ly)  ̵
  Ų. ׷  Ͼ  ġ  ڵ ذȴ. , 
    ٲ ʴ´. ׸,     ƹ 
  ȭ . 輱  ʴ´.

- void tw_resize(w, sx, sy)
  WINDOW *w;
  int sx, sy;

   ũ⸦ Ѵ.  ũ (sx, sy)  ũ⸦ ȭŰµ 
  ̶     輱  Ƿ ٽ  
  ؾ Ѵ.

- void tw_printf(w, format, arg1, arg2, ...)
  WINDOW *w;
  char *format;
  void arg1, arg2, ...;

   쿡    ϰ   Ѵ.  츦 
  ϴ  w   ̿ܿ Ϲ printf() Լ  
  ϴ.  sprintf() Լ ̿Ͽ ǾǷ    
  ϴ  Ϲ printf() Լ .

- void tw_focus(w)
  WINDOW *w;

    ɸ  ϰų  , ȭ Ŀ  
  Ű ־ ϴ   . tw_focus() Լ Ŀ  ׵
   ġ ־  츦 ϸ    Ŀ ġ  
  Ŀ ġŲ.

- void tw_getchar(w)
  WINDOW *w;

   쿡 Ŀ ġŰ  ڸ ޾ ´. ڴ ENTER 
  Ű  ʾƵ  ڸ ޴  tw_getchar() Լ   ڸ 
    ش. echoflag    ڸ ڰ  ġ   
  ȭ鿡  ش. δ  α׷ ؼ ڸ ȭ鿡  
   ϵ ϰ   쵵 ִµ ׷  쿡  echoflag 
   ȴ.

- void tw_gets(w, s, len)
  WINDOW *w;
  char *s;
  int len;

  Tiny Window Ϲ  ڿ Է¹ ؼ   
  . 츦   Ϲ ڿ Է  Է ߿ 
  츦  ó   ƴ  ̴.   ο  ڿ 
  Է Լ  ϴµ, tw_gets() Լ   Ѵ.   
  쿡 ڿ о̵ ̴ len ѵȴ. ̻ Է
    ȭ鿡 Ÿ ʴ´. echoflag     
  ϰ echoflag   ڸ Է  ȭ鿡  Է   
   ǥ(`*') ǥõȴ.

- void tw_redraw(void)

  ġ  Ȳ ߻Ͽ ȭ   ȭ ٽ ׸ 
  Ѵ. tw_refresh() Լ  κи ؼ ϴ ݸ,  
     ȭ ó  ٽ Ѵ.


4. ũ 

 Tiny Window v2.0 ǵ ũ̴. μ ƿ   Ÿ
 Ȯ ǵǾ   Ǹ   Ÿ   
Ҵ. 

- void tw_normal(void)

  ȭ鿡 ڸ   ڿ 빮 ߿ ϳ   
  ִ. tw_normal() ũδ ϴ ڸ 빮ڷ Ѵ.

- void tw_reverse(void)

  ϴ ڸ ڷ Ѵ.

- int properxy(x, y)
  int x, y;

  ־ ǥ ǥ  ȭ ȿ  ˻ϰ  
    ش. ǥ ȭ  Ű ǥ    
   (0) ƴ   ְ,  ٱ  0  ش.

- unsigned char tw_char(w, x, y)
  WINDOW *w;
  int x, y;

   Ư κп  ڰ µǾ ִ ˰    
   ũ̴. ƿ   ġ ε, ѱ  
   ƿ, ùƮ (ֻ Ʈ)  1 ƮǾ ִ. ƿ 
   ѱ   ̰ ù°  ι°  ˰   
  쿡 tw_attr() ũθ ̿ϸ ȴ.

- unsigned char tw_attr(w, x, y)
  WINDOW *w;
  int x, y;

   ġ ڿ  Ư ˰    ũθ Ѵ. 
  ƿ   Ư Ÿ Ʈ ε   Ʈ   
    Ÿ ִ.

  ̸          Ʈ          
  ---------------------------------------------------------------------
  KOREAN_1       0x01           ѱ ù° 
  KOREAN_2       0x02           ѱ ι° 
  REVERSE        0x04            

- int tw_cursorx(w)
  WINDOW *w;

   Ŀ ġ ˾ƾ   tw_cursorx() tw_cursory()  ũ
  θ Ѵ.  ũδ Ŀ X ǥ  ش.

- int tw_cursory(w)
  WINDOW *w;

   Ŀ Y ǥ  ش.

- int tw_sizex(w)
  WINDOW *w;

    ũ⸦  ش.

- int tw_sizey(w)
  WINDOW *w;

    ũ⸦  ش.

- int tw_locx(w)
  WINDOW *w;

    ġ Ÿ  ǥ X   ش.

- int tw_locy(w)
  WINDOW *w;

   ġ Y ǥ  ش.

- int tw_fromx(w)
  WINDOW *w;

  쿡 輱 ϰ    ִ     
  ǥ Ÿ  (fromx, fromy)  Ѵ.  ũδ  fromx   
   ش.

- int tw_fromy(w)
  WINDOW *w;

  fromy   ش.

- int tw_tox(w)
  WINDOW *w;

      ϴ ǥ Ÿ  (tox, toy)   
  .  ũδ tox   ش.

- int tw_toy(w)
  WINDOW *w;

  toy   ش.

- int tw_level(w)
  WINDOW *w;

   ̿  ִ. ȭ鿡    ̴İ  ٷ 
   ε, å   ļ      Ʒ 
  ̰     ϴ  ٷ    ϸ  
  . tw_level() ũδ  ״ å    Ѵ. 
  ,  Ʒ ,   ʿ ִ  level    ۴.   
  ũΰ  ִ  Ͽ 鰣    ִ.

- void tw_backchar(c)
  char c;

  tw_gets() Լ ̿  ̿   ϱ ٶ. ȭ
     Է   ô ǥ ֱ   
  ڷ ȭ鿡 Է¹ κ ǥ ְ Ǵµ ̶ ǥ ִ  
       ũθ Ѵ. tw_gets() Լ ̿ϱ   
   ũθ ̿Ͽ  ڸ     ڴ   
  ڰ ȴ.

- void tw_showchar(void)

  echoflag Ų.  ϴ tw_getchar() Լ tw_gets() Լ
   ڰ Էϴ ڰ ״ ȭ鿡 ǥð ȴ.

- void tw_hidechar(void)

  echoflag .

- void tw_halfchar(c)
  char c;

  ѱ ν ߻ϴ  ϳ ѱ ݾ ɰ  
  찡  ߻Ѵٴ ̴. 찡  ĥ   ̷ 
  Ȳ   ִµ, ̷  ѱ  κи ǥϱ Ұ
  ϴ.  ٸ ü ڷ ӽ÷ ǥ ־ٰ ߿ ٽ 
     ϼ ѱ ǥ ִ  θ ̰ ִ. ̶ ѱ 
     ü ڸ  ־ ϴµ tw_halfchar()  ũ
  ΰ   Ѵ. tw_halfchar() ũθ    ⺻
   ǥ(`~')  ü ڷ .


4.  

 Tiny Window v2.0 ϴ ̴. Ϻδ     
Ǿ Ƿ   ϴ ͵ ,  Ѵٰ ؼ 
 ͵ ׿ ° ٲ  ƴϹǷ ó ϴ   ٶ
ϴ.

- LINES

  ȭ   Ÿ.

- COLS

    ڼ Ÿ.

- WINS

   ϰ ִ   Ÿ.

- MAXWIN = 20

  ִ   ִ  ̴.

- TRUE = 1

- FALSE = 0

- ERR = 0

- OK = 1

- KOREAN = 0x80

- KOREAN_1 = 0x01

- KOREAN_2 = 0x02

- REVERSE = 0x04
