Annotation of uae/keybuf.c, revision 1.1.1.1

1.1       root        1:  /* 
                      2:   * UAE - The Un*x Amiga Emulator
                      3:   * 
                      4:   * Keyboard buffer. Not really needed for X, but for SVGAlib and possibly
                      5:   * Mac and DOS ports.
                      6:   * 
                      7:   * (c) 1995 Bernd Schmidt
                      8:   */
                      9: 
                     10: #include <stdio.h>
                     11: #include <assert.h>
                     12: 
                     13: #include "config.h"
                     14: #include "amiga.h"
                     15: #include "options.h"
                     16: #include "keybuf.h"
                     17: 
                     18: static int kpb_first, kpb_last;
                     19: 
                     20: static int keybuf[256];
                     21: 
                     22: bool keys_available (void)
                     23: {
                     24:     return kpb_first != kpb_last;
                     25: }
                     26: 
                     27: int get_next_key (void)
                     28: {
                     29:     int key;
                     30:     
                     31:     assert (kpb_first != kpb_last);
                     32:     
                     33:     key = keybuf[kpb_last];
                     34:     if (++kpb_last == 256) 
                     35:        kpb_last = 0;
                     36:     return key;    
                     37: }
                     38: 
                     39: void record_key (int kc)
                     40: {
                     41:     int kpb_next = kpb_first + 1;
                     42: 
                     43:     if (kpb_next == 256)
                     44:        kpb_next = 0;
                     45:     if (kpb_next == kpb_last) {
                     46:        fprintf(stderr, "Keyboard buffer overrun. Congratulations.\n");
                     47:        return;
                     48:     }
                     49:     keybuf[kpb_first] = kc;
                     50:     kpb_first = kpb_next;
                     51: }
                     52: 
                     53: void keybuf_init (void)
                     54: {
                     55:     kpb_first = kpb_last = 0;
                     56: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.