WIP scrolling seems to work correctly now if all you ever do is call advanceCursor()

This commit is contained in:
2024-05-07 17:01:19 -04:00
parent 5b4e0e7a0f
commit bd9399e060
3 changed files with 9 additions and 39 deletions

View File

@@ -35,12 +35,9 @@ void _cputs(char *ptr)
while ((char)*ptr != 0x0) {
_putch((char)*ptr);
if (*ptr == '\n') {
if ( _cursor_y < 24 ) _cursor_y += 1;
_cursor_x = 0;
setCursorPosition(_cursor_x, _cursor_y);
} else {
advanceCursor();
_cursor_x = 80;
}
advanceCursor();
ptr += 1;
}
return;

View File

@@ -17,32 +17,6 @@ void blankScreen(void)
}
}
void scrollScreenUp(char start, char lines)
{
#ifndef __GNUC__
#asm
push bx;
mov bx, sp;
push ax;
push cx;
push dx;
mov ch, [bx+4];
mov cl, #0x00;
mov dh, #0x18;
mov dl, #0x4F;
mov al, [bx+6];
mov ah, #0x06;
mov bx, #0x0;
int 0x10;
pop dx;
pop cx;
pop ax;
pop bx;
#endasm
return;
#endif
}
void setCursorPosition(char x, char y)
{
#ifndef __GNUC__
@@ -79,9 +53,9 @@ void backupCursor()
void advanceCursor()
{
_cursor_x += 1;
if ( _cursor_x > 79 ) {
if ( _cursor_x > 72 ) {
_cursor_x = 0;
_cursor_y += 1;
if ( _cursor_y <= 23 ) _cursor_y += 1;
}
setCursorPosition(_cursor_x, _cursor_y);
}

View File

@@ -8,6 +8,5 @@ void setCursorPosition(char x, char y);
void backupCursor();
void advanceCursor();
void blankScreen();
void scrollScreenUp(char start, char lines);
#endif /* _SCREEN_H_ */