#ifndef RB_CONSOLE #define RB_CONSOLE //console.h // 0x00 Memory access row. Used to set which line of characters appears in the display memory window. // 0x01 cursor x // 0x02 cursor y // 0x03 cursor mode (0: hidden, 1: solid, 2: blink) // 0x04 key buffer start (16 byte buffer) // 0x05 key buffer position // 0x06 key value at buffer start // 0x07 blit mode (1: fill, 2: invert; 3: shift) // 0x08 blit x start / fill value // 0x09 blit y start // 0x0A blit x offset // 0x0B blit y offset // 0x0C blit width // 0x0D blit height // 0x10 -> 0x60 display memory window typedef struct Console { char line; char cursor_x; char cursor_y; char cursor_mode; char kb_start; char kb_pos; char kb_key; char blit_mode; char blit_start_x; char blit_start_y; char blit_offset_x; char blit_offset_y; char blit_width; char blit_height; unsigned int padding; char display[0x50]; } Console; //character with inverted colors #define inv(c) ((c) | 0x80) //void blit(char command, char x, char y, char xo, char yo, char w, char h); #define fill(b, x, y, w, h) blit(1, b, 0, x, y, w, h) #define invert(x, y, w, h) blit(2, 0, 0, x, y, w, h) #define scroll(x, y, ox, oy, w, h) blit(3, x, y, ox, oy, w, h) #endif