/* -------------------------------------------------------- colpos.h ermoeglicht farbige Ausgaben und Cursorsteuerung in einem Terminal 10.04.2025 R. Seelig Aenderungen: 19.05.2026 - Farbzuordnungen EGA-Farben jetzt static constexpr - Struktur _ANSICOLORS hinzugefuegt -------------------------------------------------------- */ #ifndef in_colpos #define in_colpos #include "Arduino.h" #include "my_printf.h" #define printf my_printf // Farbzuordnungen der EGA-Farben zu den Farbnummern static constexpr const char black= 0; static constexpr const char blue= 1; static constexpr const char green= 2; static constexpr const char cyan= 3; static constexpr const char red= 4; static constexpr const char magenta= 5; static constexpr const char brown= 6; static constexpr const char grey= 7; static constexpr const char darkgrey= 8; static constexpr const char lightblue= 9; static constexpr const char lightgreen= 10; static constexpr const char lightcyan= 11; static constexpr const char lightred= 12; static constexpr const char lightmagenta= 13; static constexpr const char yellow= 14; static constexpr const char white= 15; extern uint8_t textattr; /* ------------------------------------------------- ESC-Strings fuer Ansi-Farben ------------------------------------------------- */ struct _ANSICOLORS { static constexpr const char* rst = "\033[0m"; // normale Schriftfarbe static constexpr const char* fg_black = "\033[30m"; static constexpr const char* fg_blue = "\033[34m"; static constexpr const char* fg_green = "\033[32m"; static constexpr const char* fg_cyan = "\033[36m"; static constexpr const char* fg_red = "\033[31m"; static constexpr const char* fg_magenta = "\033[35m"; static constexpr const char* fg_brown = "\033[33m"; static constexpr const char* fg_grey = "\033[37m"; // helle Schriftfarbe static constexpr const char* fg_darkgrey = "\033[1;30m"; static constexpr const char* fg_iblue = "\033[1;34m"; static constexpr const char* fg_igreen = "\033[1;32m"; static constexpr const char* fg_icyan = "\033[1;36m"; static constexpr const char* fg_ired = "\033[1;31m"; static constexpr const char* fg_imagenta = "\033[1;35m"; static constexpr const char* fg_yellow = "\033[1;33m"; static constexpr const char* fg_white = "\033[1;37m"; // normale Hintergrundfarbe static constexpr const char* bg_black = "\033[40m"; static constexpr const char* bg_blue = "\033[44m"; static constexpr const char* bg_green = "\033[42m"; static constexpr const char* bg_cyan = "\033[46m"; static constexpr const char* bg_red = "\033[41m"; static constexpr const char* bg_magenta = "\033[45m"; static constexpr const char* bg_brown = "\033[43m"; static constexpr const char* bg_grey = "\033[47m"; // intensive Hintergrundfarbe static constexpr const char* bg_darkgrey = "\033[100m"; static constexpr const char* bg_iblue = "\033[104m"; static constexpr const char* bg_igreen = "\033[102m"; static constexpr const char* bg_icyan = "\033[106m"; static constexpr const char* bg_ired = "\033[101m"; static constexpr const char* bg_imagenta = "\033[105m"; static constexpr const char* bg_yellow = "\033[103m"; static constexpr const char* bg_white = "\033[107m"; }; /* ---------------------------------------------------------- Makros und Prototypen ---------------------------------------------------------- */ void clrscr(void); void gotoxy(uint8_t x, uint8_t y); void settextattr(uint8_t attr); #define textcolor(col) ( settextattr( (textattr & 0xf0) | col) ) #define bkcolor(col) ( settextattr( (textattr & 0x0f) | (col << 4)) ) #endif