TSOS/include/kernel/drivers/vga/screen.h

46 lines
1.1 KiB
C

/*
Copyright 2022 Mattia Giambirtone & Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#ifndef TSOS_DRV_VGA_SCREEN_H
#define TSOS_DRV_VGA_SCREEN_H
#include "kernel/types.h"
#include "kernel/drivers/ports/ports.h"
#define VMEM_ADDRESS 0xb8000
#define VMEM_BUF ((byte*)VMEM_ADDRESS)
#define MAX_ROWS 25
#define MAX_COLS 80
#define SCREEN_SIZE MAX_ROWS * MAX_COLS
#define LIGHT_GREY_ON_BLACK 0x07
#define RED_ON_WHITE 0xf4
#define VGA_TABSIZE 4
// VGA I/O ports
#define REG_SCREEN_CTRL 0x3d4
#define REG_SCREEN_DATA 0x3d5
// Public API
void clearScreen(void);
void kprint(const char* message);
void kprintln(const char* message);
void kprintf(const char *fmt, ...);
#endif