all repos — xyw @ af721d715905ebb5765014c9337f39777a94395a

A minimal virtual machine and assembler for terminals.

devices/terminal.c

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
#include <stdio.h>
#include "../xyw.h"

/* terminal device */
#define terminal_INPUT 0x0
#define terminal_OUTPUT 0x1
#define terminal_ERROR 0x2
#define terminal_ON_KEYPRESS 0x3

void terminal_output(xyw_byte *data, xyw_byte addr, xyw_byte *error)
{
    (void)error;
    switch (addr)
    {
    case terminal_OUTPUT:
        fputc(data[addr], stdout);
        fflush(stdout);
        break;
    case terminal_ERROR:
        fputc(data[addr], stderr);
        fflush(stderr);
        break;
    }
}