add overloads for bse::string
This commit is contained in:
@ -95,7 +95,7 @@ void CGA::show(unsigned int x, unsigned int y, char character, unsigned char att
|
||||
* n Laenger der Zeichenkette *
|
||||
* attrib Attributbyte fuer alle Zeichen der Zeichenkette *
|
||||
*****************************************************************************/
|
||||
void CGA::print(char* string, unsigned int n, unsigned char attrib) {
|
||||
void CGA::print(const char* string, unsigned int n, unsigned char attrib) {
|
||||
|
||||
/* Hier muess Code eingefuegt werden */
|
||||
|
||||
@ -142,6 +142,10 @@ void CGA::print(char* string, unsigned int n, unsigned char attrib) {
|
||||
setpos(cursor_x, cursor_y);
|
||||
}
|
||||
|
||||
void CGA::print(const bse::string& string, unsigned int n, unsigned char attrib) {
|
||||
print((const char*)string, n, attrib);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* Methode: CGA::scrollup *
|
||||
*---------------------------------------------------------------------------*
|
||||
|
||||
@ -16,6 +16,7 @@
|
||||
|
||||
#include "kernel/IOport.h"
|
||||
#include "user/lib/Array.h"
|
||||
#include "user/lib/String.h"
|
||||
|
||||
class CGA {
|
||||
private:
|
||||
@ -61,19 +62,19 @@ public:
|
||||
COLUMNS = 80 };
|
||||
|
||||
// Easier access to memory (also easier copying of lines/pages etc)
|
||||
typedef struct {
|
||||
struct cga_char_t {
|
||||
char cga_char;
|
||||
unsigned char cga_attribute;
|
||||
} cga_char_t;
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
struct cga_line_t {
|
||||
// Can use these arrays since they don't have memory overhead (except for the methods that are elsewhere)
|
||||
bse::array<cga_char_t, COLUMNS> cga_line;
|
||||
} cga_line_t;
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
struct cga_page_t {
|
||||
bse::array<cga_line_t, ROWS> cga_page;
|
||||
} cga_page_t;
|
||||
};
|
||||
|
||||
// Setzen des Cursors in Spalte x und Zeile y.
|
||||
void setpos(unsigned int x, unsigned int y);
|
||||
@ -85,7 +86,8 @@ public:
|
||||
static void show(unsigned int x, unsigned int y, char character, unsigned char attrib = STD_ATTR);
|
||||
|
||||
// Anzeige mehrerer Zeichen ab der aktuellen Cursorposition
|
||||
virtual void print(char* string, unsigned int n, unsigned char attrib = STD_ATTR);
|
||||
void print(const char* string, unsigned int n, unsigned char attrib = STD_ATTR);
|
||||
void print(const bse::string& string, unsigned int n, unsigned char attrib = STD_ATTR);
|
||||
|
||||
// Verschiebt den Bildschirminhalt um eine Zeile nach oben.
|
||||
// Neue Zeile am unteren Bildrand mit Leerzeichen fuellen
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
* verwendet werden, um eine Ausgabe zu erzwingen. *
|
||||
*****************************************************************************/
|
||||
void CGA_Stream::flush() {
|
||||
print(buffer, pos, attribute(color_bg, color_fg, blink));
|
||||
print(&buffer, pos, attribute(color_bg, color_fg, blink));
|
||||
|
||||
// Flushing resets attributes
|
||||
blink = false;
|
||||
|
||||
Reference in New Issue
Block a user