rip out garbage
This commit is contained in:
parent
09c487e6d0
commit
e3f1871f61
BIN
bin/shade.bin
BIN
bin/shade.bin
Binary file not shown.
BIN
bin/shade.iso
BIN
bin/shade.iso
Binary file not shown.
|
@ -1,7 +1,7 @@
|
||||||
#ifndef SHADE_PRINT_H
|
#ifndef SHADE_PRINT_H
|
||||||
#define SHADE_PRINT_H
|
#define SHADE_PRINT_H
|
||||||
|
|
||||||
#include <shade/tty.h>
|
|
||||||
|
|
||||||
#define REG_SCREEN_CTRL 0x3d4
|
#define REG_SCREEN_CTRL 0x3d4
|
||||||
#define REG_SCREEN_DATA 0x3d5
|
#define REG_SCREEN_DATA 0x3d5
|
||||||
|
@ -51,6 +51,5 @@ void kernel_msg_ok(char* msg);
|
||||||
|
|
||||||
void init_state();
|
void init_state();
|
||||||
|
|
||||||
tty_driver_t vga_text_mode_get_driver();
|
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -1,137 +0,0 @@
|
||||||
#ifndef SHADE_TTY_H
|
|
||||||
#define SHADE_TTY_H
|
|
||||||
|
|
||||||
#include <shade/cansid.h>
|
|
||||||
#include <stdbool.h>
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief A type to represent a printable char
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
typedef struct tty_ochar_struct {
|
|
||||||
char character;
|
|
||||||
char style;
|
|
||||||
} tty_ochar_t;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief A type to represent a tty driver
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
typedef struct tty_driver_struct {
|
|
||||||
int max_rows;
|
|
||||||
int max_cols;
|
|
||||||
|
|
||||||
void (*putchar) (char c, int x, int y, char style);
|
|
||||||
void (*setcurxy) (int x, int y);
|
|
||||||
} tty_driver_t;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief A type to represent a tty
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
typedef struct tty_struct {
|
|
||||||
// size information
|
|
||||||
int rows;
|
|
||||||
int cols;
|
|
||||||
|
|
||||||
// cursor information
|
|
||||||
int cursor_row;
|
|
||||||
int cursor_col;
|
|
||||||
|
|
||||||
// stateful information
|
|
||||||
cansid_state cansid;
|
|
||||||
|
|
||||||
// buffers
|
|
||||||
tty_ochar_t output_buffer[65536];
|
|
||||||
char input_buffer[1024];
|
|
||||||
|
|
||||||
// driver
|
|
||||||
tty_driver_t driver;
|
|
||||||
|
|
||||||
// flags
|
|
||||||
bool active;
|
|
||||||
} tty_t;
|
|
||||||
|
|
||||||
static tty_t ttys[10];
|
|
||||||
static int active_tty;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Create a new tty_t with the provided driver
|
|
||||||
*
|
|
||||||
* @param driver
|
|
||||||
* @return tty_t
|
|
||||||
*/
|
|
||||||
tty_t tty_new(tty_driver_t driver);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Switch the screen to the provided tty - clear screen and flip to that tty
|
|
||||||
*
|
|
||||||
* @param index
|
|
||||||
*/
|
|
||||||
void tty_switch(int index);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Print the specified char c on the tty tty, at the current cursor location
|
|
||||||
*
|
|
||||||
* @param tty
|
|
||||||
* @param c
|
|
||||||
* @see tty_mvpchar
|
|
||||||
*/
|
|
||||||
void tty_pchar(int tty, char c);
|
|
||||||
/**
|
|
||||||
* @brief Print the specified char t to the tty tty, but move the cursor to x, y first.
|
|
||||||
*
|
|
||||||
* @param tty
|
|
||||||
* @param c
|
|
||||||
* @param x
|
|
||||||
* @param y
|
|
||||||
* @see tty_pchar
|
|
||||||
*/
|
|
||||||
void tty_mvpchar(int tty, char c, int x, int y);
|
|
||||||
|
|
||||||
// tty_pnl family
|
|
||||||
/**
|
|
||||||
* @brief Print a newline at the current cursor location on the tty tty.
|
|
||||||
*
|
|
||||||
* @param tty
|
|
||||||
* @see tty_mvpnl
|
|
||||||
*/
|
|
||||||
void tty_pnl(int tty);
|
|
||||||
/**
|
|
||||||
* @brief Move to the specified cursor location and print a newline.
|
|
||||||
*
|
|
||||||
* @param tty
|
|
||||||
* @param c
|
|
||||||
* @param x
|
|
||||||
* @param y
|
|
||||||
* @see tty_pnl
|
|
||||||
*/
|
|
||||||
void tty_mvpnl(int tty, int x, int y);
|
|
||||||
|
|
||||||
// tty_clr family
|
|
||||||
/**
|
|
||||||
* @brief Clear the entire screen of the specified tty. Uses tty_clrl internally.
|
|
||||||
*
|
|
||||||
* @param tty
|
|
||||||
* @see tty_clrl
|
|
||||||
*/
|
|
||||||
void tty_clr(int tty);
|
|
||||||
/**
|
|
||||||
* @brief Clear the specified line of the specified tty.
|
|
||||||
*
|
|
||||||
* @param tty
|
|
||||||
* @param line
|
|
||||||
* @see tty_clr
|
|
||||||
*/
|
|
||||||
void tty_clrl(int tty, int line);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Set the cursor position on the specified tty to the specified position.
|
|
||||||
*
|
|
||||||
* @param tty
|
|
||||||
* @param x
|
|
||||||
* @param y
|
|
||||||
*/
|
|
||||||
void tty_setcurxy(int tty, int x, int y);
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -3,7 +3,7 @@
|
||||||
// This file was autogenerated by the shadeOS build system. It should not be modified.
|
// This file was autogenerated by the shadeOS build system. It should not be modified.
|
||||||
#define SHADE_OS_KERNEL_VERSION "0.1.1-alpha"
|
#define SHADE_OS_KERNEL_VERSION "0.1.1-alpha"
|
||||||
#define SHADE_OS_KERNEL "shade-development"
|
#define SHADE_OS_KERNEL "shade-development"
|
||||||
#define SHADE_OS_BUILD "531ba0c"
|
#define SHADE_OS_BUILD "09c487e"
|
||||||
#define SHADE_OS_COMPILE_DATE "Tue May 17 10:46:28 AM EDT 2022"
|
#define SHADE_OS_COMPILE_DATE "Sat May 21 03:18:24 PM EDT 2022"
|
||||||
#define SHADE_OS_CODENAME "willow"
|
#define SHADE_OS_CODENAME "willow"
|
||||||
#endif
|
#endif
|
||||||
|
|
Binary file not shown.
|
@ -119,12 +119,3 @@ void putchar(char c, int x, int y, char style) {
|
||||||
};
|
};
|
||||||
buffer[x + 25 * y] = cr;
|
buffer[x + 25 * y] = cr;
|
||||||
}
|
}
|
||||||
|
|
||||||
tty_driver_t vga_text_mode_get_driver() {
|
|
||||||
tty_driver_t ttyd;
|
|
||||||
ttyd.max_cols = 25;
|
|
||||||
ttyd.max_rows = 80;
|
|
||||||
ttyd.putchar = putchar;
|
|
||||||
ttyd.setcurxy = set_cursor_pos;
|
|
||||||
return ttyd;
|
|
||||||
}
|
|
|
@ -1,90 +0,0 @@
|
||||||
#include <shade/tty.h>
|
|
||||||
#include <shade/cansid.h>
|
|
||||||
|
|
||||||
// Initialize a new tty_t object with the specified driver
|
|
||||||
tty_t tty_new(tty_driver_t driver) {
|
|
||||||
tty_t tty;
|
|
||||||
tty.active = false;
|
|
||||||
tty.cansid = cansid_init();
|
|
||||||
tty.cols = driver.max_cols;
|
|
||||||
tty.cursor_col = 0;
|
|
||||||
tty.cursor_row = 0;
|
|
||||||
tty.driver = driver;
|
|
||||||
tty.rows = driver.max_rows;
|
|
||||||
return tty;
|
|
||||||
}
|
|
||||||
|
|
||||||
void tty_switch(int index);
|
|
||||||
|
|
||||||
// private function: print the contents of a tty's output buffer to the screen
|
|
||||||
void _tty_flip(int tty, bool clear) {
|
|
||||||
// clear the screen if required (used in tty_switch)
|
|
||||||
if (clear) tty_clr(tty);
|
|
||||||
// iterate over every (known) character in the tty output buffer
|
|
||||||
for (int x = 0; x < ttys[tty].cols; x++) {
|
|
||||||
for (int y = 0; y < ttys[tty].rows; y++) {
|
|
||||||
// get the tty_ochar_t
|
|
||||||
tty_ochar_t cr = ttys[tty].output_buffer[x + ttys[tty].cols + y];
|
|
||||||
// and print it with the driver
|
|
||||||
ttys[tty].driver.putchar(cr.character, x, y, cr.style);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// and update the real cursor position
|
|
||||||
ttys[tty].driver.setcurxy(ttys[tty].cursor_col, ttys[tty].cursor_row);
|
|
||||||
}
|
|
||||||
|
|
||||||
// tty_pchar family
|
|
||||||
void tty_pchar(int tty, char c) {
|
|
||||||
if (c == 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (c == '\n') {
|
|
||||||
tty_pnl(tty);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ttys[tty].cursor_col > ttys[tty].cols) {
|
|
||||||
tty_pnl(tty);
|
|
||||||
}
|
|
||||||
|
|
||||||
color_char ccr = cansid_process(&ttys[tty].cansid, c);
|
|
||||||
|
|
||||||
tty_ochar_t cr;
|
|
||||||
cr.character = ccr.ascii;
|
|
||||||
cr.style = ccr.style;
|
|
||||||
ttys[tty].output_buffer[ttys[tty].cursor_col + ttys[tty].cols * ttys[tty].cursor_row] = cr;
|
|
||||||
|
|
||||||
ttys[tty].cursor_col++;
|
|
||||||
tty_setcurxy(tty, ttys[tty].cursor_col, ttys[tty].cursor_row);
|
|
||||||
|
|
||||||
// if tty is selected, flip
|
|
||||||
if (tty == active_tty) _tty_flip(tty, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
void tty_mvpchar(int tty, char c, int x, int y) {
|
|
||||||
tty_setcurxy(tty, x, y);
|
|
||||||
tty_pchar(tty, c);
|
|
||||||
}
|
|
||||||
|
|
||||||
// tty_pnl family
|
|
||||||
void tty_pnl(int tty) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
void tty_mvpnl(int tty, int x, int y) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// tty_clr family
|
|
||||||
void tty_clr(int tty) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
void tty_clrl(int tty, int line) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void tty_setcurxy(int tty, int x, int y) {
|
|
||||||
ttys[tty].cursor_col = x;
|
|
||||||
ttys[tty].cursor_row = y;
|
|
||||||
ttys[tty].driver.setcurxy(x, y);
|
|
||||||
}
|
|
Loading…
Reference in New Issue