mirror of
https://gitlab.os-k.eu/os-k-team/kvisc.git
synced 2023-08-25 14:05:46 +02:00
scrolling
This commit is contained in:
parent
e9fa6438a4
commit
6ae9169f6d
@ -14,6 +14,12 @@ main:
|
||||
test rdx, rdx
|
||||
j.nz .1
|
||||
|
||||
mov rcx, 80
|
||||
prn.rep '&'
|
||||
|
||||
mov rcx, 80
|
||||
prn.rep '%'
|
||||
|
||||
call showoff
|
||||
|
||||
hlt
|
||||
|
@ -10,17 +10,14 @@ FLAGS=-O2 -g -Wall -fno-builtin-log -I.
|
||||
dv_src = $(shell ls dv/*.c)
|
||||
in_src = $(shell ls in/*.c)
|
||||
pc_src = $(shell ls pc/*.c)
|
||||
cn_src = $(shell ls cn/*.c)
|
||||
|
||||
obj = $(patsubst %.c,$(OBJDIR)/%.o,$(dv_src))
|
||||
obj += $(patsubst %.c,$(OBJDIR)/%.o,$(in_src))
|
||||
obj += $(patsubst %.c,$(OBJDIR)/%.o,$(pc_src))
|
||||
obj += $(patsubst %.c,$(OBJDIR)/%.o,$(cn_src))
|
||||
|
||||
dep = $(patsubst %.c,$(OBJDIR)/%.d,$(dv_src))
|
||||
dep += $(patsubst %.c,$(OBJDIR)/%.d,$(in_src))
|
||||
dep += $(patsubst %.c,$(OBJDIR)/%.d,$(pc_src))
|
||||
dep += $(patsubst %.c,$(OBJDIR)/%.d,$(cn_src))
|
||||
|
||||
# Color codes
|
||||
CL='\033[0;32m'
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include <in/instrs.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <cn/console.h>
|
||||
#include <pc/console.h>
|
||||
|
||||
#define _NEED_ARCH_I
|
||||
#include <in/arch_i.h>
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include <unistd.h>
|
||||
#include <in/instrs.h>
|
||||
#include <cn/console.h>
|
||||
#include <pc/console.h>
|
||||
|
||||
IMPL_START_0(hlt)
|
||||
{
|
||||
|
@ -1,7 +1,7 @@
|
||||
// The OS/K Team licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
#include <cn/console.h>
|
||||
#include <pc/console.h>
|
||||
|
||||
#define CONSOLE_WIDTH 80
|
||||
#define CONSOLE_HEIGHT 25
|
||||
@ -91,7 +91,7 @@ void console_render(ctx_t *ctx)
|
||||
SDL_RenderClear(scr_rend);
|
||||
|
||||
for (y = 0; y < CONSOLE_HEIGHT; y++)
|
||||
if (scr_texts[y] != NULL)
|
||||
if (scr_texts[y] != NULL && scr_rects[y] != NULL)
|
||||
SDL_RenderCopy(scr_rend, scr_texts[y],
|
||||
NULL, scr_rects[y]);
|
||||
|
||||
@ -104,7 +104,7 @@ void console_putat(ctx_t *ctx, char ch, int x, int y)
|
||||
{
|
||||
SDL_Surface *surf;
|
||||
|
||||
trace("putat: %c %d %d\n", ch, x, y);
|
||||
//trace("putat: %c %d %d\n", ch, x, y);
|
||||
|
||||
if (y >= CONSOLE_HEIGHT || x >= CONSOLE_WIDTH)
|
||||
{
|
||||
@ -167,6 +167,8 @@ int csn_y = 0;
|
||||
|
||||
void console_putc(ctx_t *ctx, char ch)
|
||||
{
|
||||
size_t y;
|
||||
|
||||
if (ch < ' ' && ch != '\n')
|
||||
ch = 127;
|
||||
|
||||
@ -186,7 +188,42 @@ void console_putc(ctx_t *ctx, char ch)
|
||||
}
|
||||
|
||||
if (csn_y == CONSOLE_HEIGHT)
|
||||
csn_y = 0;
|
||||
{
|
||||
csn_y--;
|
||||
memmove(scr_lines, &scr_lines[1],
|
||||
(CONSOLE_HEIGHT - 1) * CONSOLE_WIDTH);
|
||||
|
||||
memset(&scr_lines[CONSOLE_HEIGHT-1], ' ', CONSOLE_WIDTH);
|
||||
scr_lines[CONSOLE_HEIGHT-1][CONSOLE_WIDTH] = 0;
|
||||
|
||||
if (scr_texts[0] != NULL)
|
||||
{
|
||||
SDL_DestroyTexture(scr_texts[0]);
|
||||
scr_texts[0] = NULL;
|
||||
}
|
||||
|
||||
memmove(scr_texts, &scr_texts[1],
|
||||
(CONSOLE_HEIGHT - 1) * sizeof(SDL_Texture *));
|
||||
|
||||
scr_texts[CONSOLE_HEIGHT-1] = NULL;
|
||||
|
||||
if (scr_rects[0] != NULL)
|
||||
{
|
||||
free(scr_rects[0]);
|
||||
scr_rects[0] = NULL;
|
||||
}
|
||||
|
||||
memmove(scr_rects, &scr_rects[1],
|
||||
(CONSOLE_HEIGHT - 1) * sizeof(SDL_Rect *));
|
||||
|
||||
scr_rects[CONSOLE_HEIGHT-1] = NULL;
|
||||
|
||||
for (y = 0; y < CONSOLE_HEIGHT-1; y++)
|
||||
if (scr_rects[y] != NULL)
|
||||
{
|
||||
scr_rects[y]->y -= 16; // surf->h
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------//
|
@ -2,7 +2,7 @@
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
#include <pc/dev.h>
|
||||
#include <cn/console.h>
|
||||
#include <pc/console.h>
|
||||
|
||||
void die(int code)
|
||||
{
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include <signal.h>
|
||||
|
||||
#include <pc/dev.h>
|
||||
#include <cn/console.h>
|
||||
#include <pc/console.h>
|
||||
|
||||
#define FWPROGSIZE (1024 * 1024 * 1024)
|
||||
static ssize_t fwsize;
|
||||
|
Loading…
Reference in New Issue
Block a user