mirror of
https://github.com/Tom-on64/kern.git
synced 2026-11-03 18:22:22 +00:00
- Chenged Puts() syscall to Write() - Improved syscalls.h - added a new header in terminal/terminal.h - moved gfxMode into screen/gfxmode.h
80 lines
1.9 KiB
C
80 lines
1.9 KiB
C
#ifndef GFXMODE_H
|
|
#define GFXMODE_H
|
|
|
|
#include <memory/addresses.h>
|
|
#include <stdint.h>
|
|
|
|
#define BLACK 0x00000000 // 0
|
|
#define RED 0x00ff0000 // 1
|
|
#define GREEN 0x0000ff00 // 2
|
|
#define YELLOW 0x00ffff00 // 3
|
|
#define BLUE 0x000000ff // 4
|
|
#define MAGENTA 0x00ff00ff // 5
|
|
#define CYAN 0x0000ffff // 6
|
|
#define WHITE 0x00ffffff // 7
|
|
|
|
#define BG_COLOR 0x00010b17
|
|
#define FG_COLOR 0x00ebddf4
|
|
|
|
typedef struct modeInfoBlock_s {
|
|
// Required by all VBE revisions
|
|
uint16_t modeAttr;
|
|
uint8_t windowAAtrr;
|
|
uint8_t windowBAttr;
|
|
uint16_t windowGranularity;
|
|
uint16_t windowSize;
|
|
uint16_t windowASegment;
|
|
uint16_t windowBSegment;
|
|
uint32_t windowFunctionPtr;
|
|
uint16_t bytesPerScanline;
|
|
|
|
// Required by VBE 1.2+
|
|
uint16_t xRes;
|
|
uint16_t yRes;
|
|
uint8_t xCharSize;
|
|
uint8_t yCharSize;
|
|
uint8_t planeCount;
|
|
uint8_t bpp;
|
|
uint8_t bankCount;
|
|
uint8_t memoryModel;
|
|
uint8_t bankSize;
|
|
uint8_t imagePageCount;
|
|
uint8_t reserved1;
|
|
|
|
// Direct color fields
|
|
uint8_t redMaskSize;
|
|
uint8_t redFieldPos;
|
|
uint8_t greenMaskSize;
|
|
uint8_t greenFieldPos;
|
|
uint8_t blueMaskSize;
|
|
uint8_t blueFieldPos;
|
|
uint8_t reservedMaskSize;
|
|
uint8_t reservedFieldPos;
|
|
uint8_t directColorModeInfo;
|
|
|
|
// Required by VBE 2.0+
|
|
uint32_t physicalBasePtr;
|
|
uint32_t reserved2;
|
|
uint16_t reserved3;
|
|
|
|
// Required by VBE 3.0+
|
|
uint16_t linearBytesPerScanline;
|
|
uint8_t bankImagePageCount;
|
|
uint8_t linearImagePageCount;
|
|
uint8_t linearRedMaskSize;
|
|
uint8_t linearRedFieldPos;
|
|
uint8_t linearGreenMaskSize;
|
|
uint8_t linearGreenFieldPos;
|
|
uint8_t linearBlueMaskSize;
|
|
uint8_t linearBlueFieldPos;
|
|
uint8_t linearReservedMaskSize;
|
|
uint8_t linearReservedFieldPos;
|
|
uint32_t maxPixelClock;
|
|
|
|
uint8_t reserved4[190];
|
|
} __attribute__ ((packed)) modeInfoBlock_t;
|
|
|
|
static modeInfoBlock_t* gfxMode = (modeInfoBlock_t*)MODE_INFO_BLOCK_LOC;
|
|
|
|
#endif
|