diff options
Diffstat (limited to 'terminal/vt52.h')
| -rw-r--r-- | terminal/vt52.h | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/terminal/vt52.h b/terminal/vt52.h index cdc62bd..94502d1 100644 --- a/terminal/vt52.h +++ b/terminal/vt52.h @@ -4,8 +4,27 @@ #include <stdint.h> -// REQUIREMENTS -// * kballoc // block wise in-kernel allocation +// +// Emulator of a vt52 terminal +// +// 1. pass a term_out and term_in struct to vt52_init(..). +// 2. use the vt52_kb function for terminal/user input (eg. keyboard). +// 3. use the vt52_put function for input from the host/programms. +// +// +// +// ________ +// vt52_put() ------> | | ----> (term_out_struct) +// | VT52 | +// (term_in_struct)<-- |_______| <---- vt52_kb() +// +// +// OTHER REQUIREMENTS +// +// Your also need to provide some memory allocation +// +// * uint32_t kballoc(uint32_t bloks); // block wise in-kernel allocation +// typedef struct term_out_struct { @@ -15,6 +34,13 @@ typedef struct term_out_struct }term_out; +typedef struct term_in_struct +{ + + void (*put_char)(uint8_t c); + +}term_in; + typedef struct vt52_tty_struct { @@ -23,11 +49,14 @@ typedef struct vt52_tty_struct uint32_t x; uint32_t y; uint32_t *data; // screen data + term_out *screen; + term_in *input; }vt52_tty; -vt52_tty vt52_init(term_out *screen); +vt52_tty vt52_init(term_out *screen,term_in *input); void vt52_put(vt52_tty *tty, uint8_t c); +void vt52_kb(vt52_tty *tty, uint8_t c); #endif |
