Import backup from 2004-05-21
This commit is contained in:
1 parent
38f009f2ca
commit
6b6e19effd
42 files changed
+251
-1669
No files matched your search
+20
-20
@@ -1,6 +1,6 @@
|
||||
#####################################################################
|
||||
# Author: Benjamen R. Meyer #
|
||||
# Date: 2004-2-15 #
|
||||
# Author: Josh Holtrop / Benjamen R. Meyer #
|
||||
# Date: 02/15/04 Modified: 05/21/04 #
|
||||
# Purpose: To build Josh Holtrop's OS (HOS) using GNU make #
|
||||
# Note: This makefile is for use on Linux & other Unix-like systems #
|
||||
#####################################################################
|
||||
@@ -18,8 +18,8 @@ NASM_BIN=nasm
|
||||
NASM_FLAGS=-f $(KERNEL_FORMAT)
|
||||
|
||||
# C Compile Information:
|
||||
CC=gcc
|
||||
CC_FLAGS=-ffreestanding -fleading-underscore -fno-builtin -nostdlib -nodefaultlibs -I. -Wall
|
||||
CPP=g++
|
||||
CPP_FLAGS=-fleading-underscore -fno-builtin -nostdlib -nostdinc++ -nostartfiles -fno-rtti -fno-exceptions -nodefaultlibs -I. -Wall
|
||||
|
||||
# Linker Information:
|
||||
LD=ld
|
||||
@@ -30,7 +30,7 @@ LD_FLAGS=-nodefaultlibs -nostdlib --no-demangle -T link.ld
|
||||
# Linking the kernel together #
|
||||
###############################
|
||||
all: Asm_Kernel Asm_Functions C_Kernel
|
||||
$(LD) $(LD_FLAGS) -o kernel.bin -Map ./lst/LDout.doc ks.o kernel.o asmfuncs.o fdc.o functions.o keyboard.o kio.o mm.o mouse.o stdfont.o video.o vmm.o rtc.o pic.o io.o string.o cmos.o
|
||||
$(LD) $(LD_FLAGS) -o kernel.bin -Map ./lst/LDout.doc ks.o kernel.o asmfuncs.o fdc.o keyboard.o kio.o mm.o mouse.o stdfont.o video.o vmm.o rtc.o pic.o io.o string.o cmos.o hos_defines.o
|
||||
|
||||
##########################
|
||||
# Assembly Kernel Loader #
|
||||
@@ -48,21 +48,21 @@ Asm_Functions: asmfuncs.asm
|
||||
# C Kernel #
|
||||
############
|
||||
C_Kernel:
|
||||
$(CC) $(CC_FLAGS) -c kernel.c -o kernel.o
|
||||
$(CC) $(CC_FLAGS) -c kio.c -o kio.o
|
||||
$(CC) $(CC_FLAGS) -c functions.c -o functions.o
|
||||
$(CC) $(CC_FLAGS) -c sys/rtc.c -o rtc.o
|
||||
$(CC) $(CC_FLAGS) -c sys/pic.c -o pic.o
|
||||
$(CC) $(CC_FLAGS) -c sys/io.c -o io.o
|
||||
$(CC) $(CC_FLAGS) -c sys/cmos.c -o cmos.o
|
||||
$(CC) $(CC_FLAGS) -c string/string.c -o string.o
|
||||
$(CC) $(CC_FLAGS) -c video/stdfont.c -o stdfont.o
|
||||
$(CC) $(CC_FLAGS) -c video/video.c -o video.o
|
||||
$(CC) $(CC_FLAGS) -c block/fdc.c -o fdc.o
|
||||
$(CC) $(CC_FLAGS) -c char/keyboard.c -o keyboard.o
|
||||
$(CC) $(CC_FLAGS) -c char/mouse.c -o mouse.o
|
||||
$(CC) $(CC_FLAGS) -c mm/mm.c -o mm.o
|
||||
$(CC) $(CC_FLAGS) -c mm/vmm.c -o vmm.o
|
||||
$(CPP) $(CPP_FLAGS) -c kernel.cpp -o kernel.o
|
||||
$(CPP) $(CPP_FLAGS) -c kio.cpp -o kio.o
|
||||
$(CPP) $(CPP_FLAGS) -c sys/rtc.cpp -o rtc.o
|
||||
$(CPP) $(CPP_FLAGS) -c sys/pic.cpp -o pic.o
|
||||
$(CPP) $(CPP_FLAGS) -c sys/io.cpp -o io.o
|
||||
$(CPP) $(CPP_FLAGS) -c sys/cmos.cpp -o cmos.o
|
||||
$(CPP) $(CPP_FLAGS) -c string/string.cpp -o string.o
|
||||
$(CPP) $(CPP_FLAGS) -c video/stdfont.cpp -o stdfont.o
|
||||
$(CPP) $(CPP_FLAGS) -c video/video.cpp -o video.o
|
||||
$(CPP) $(CPP_FLAGS) -c block/fdc.cpp -o fdc.o
|
||||
$(CPP) $(CPP_FLAGS) -c char/keyboard.cpp -o keyboard.o
|
||||
$(CPP) $(CPP_FLAGS) -c char/mouse.cpp -o mouse.o
|
||||
$(CPP) $(CPP_FLAGS) -c mm/mm.cpp -o mm.o
|
||||
$(CPP) $(CPP_FLAGS) -c mm/vmm.cpp -o vmm.o
|
||||
$(CPP) $(CPP_FLAGS) -c hos_defines.cpp -o hos_defines.o
|
||||
|
||||
#################################################
|
||||
# Clean up the source directory of any binaries #
|
||||
|
||||
+23
-18
@@ -1,30 +1,35 @@
|
||||
// asmfuncs.h
|
||||
// Author: Josh Holtrop
|
||||
// Created: 02/26/04
|
||||
// Modified: 05/21/04
|
||||
|
||||
#ifndef __HOS_ASMFUNCS__
|
||||
#define __HOS_ASMFUNCS__ __HOS_ASMFUNCS__
|
||||
|
||||
#include "hos_defines.h"
|
||||
|
||||
dword write_cr0(dword cr0);
|
||||
dword read_cr0();
|
||||
dword write_cr3(dword cr3);
|
||||
dword read_cr2();
|
||||
dword read_cr3();
|
||||
void writeCursorPosition(dword pos);
|
||||
dword getCursorPosition();
|
||||
int puts(char *str);
|
||||
int putDec(int number);
|
||||
int putDecu(dword number);
|
||||
void strcpy(char *dest, char *src);
|
||||
void memcpy(void *dest, void *src, dword n);
|
||||
void memcpyd(void *dest, void *src, dword n);
|
||||
void *memset(void *buffer, int c, int num);
|
||||
void *memsetw(void *buffer, int c, int num);
|
||||
void *memsetd(void *buffer, int c, int num);
|
||||
dword strlen(char *str);
|
||||
void invlpg_(dword addr);
|
||||
extern "C" {
|
||||
|
||||
dword write_cr0(dword cr0);
|
||||
dword read_cr0();
|
||||
dword write_cr3(dword cr3);
|
||||
dword read_cr2();
|
||||
dword read_cr3();
|
||||
void writeCursorPosition(dword pos);
|
||||
dword getCursorPosition();
|
||||
int puts(char *str);
|
||||
int putDec(int number);
|
||||
int putDecu(dword number);
|
||||
void strcpy(char *dest, char *src);
|
||||
void memcpy(void *dest, void *src, dword n);
|
||||
void memcpyd(void *dest, void *src, dword n);
|
||||
void *memset(void *buffer, int c, int num);
|
||||
void *memsetw(void *buffer, int c, int num);
|
||||
void *memsetd(void *buffer, int c, int num);
|
||||
dword strlen(char *str);
|
||||
void invlpg_(dword addr);
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -26,8 +26,8 @@ byte ackReason = 0; //used to record the reason why we would get an acknowledge
|
||||
|
||||
//these arrays convert a keyboard scan code to an ASCII character value
|
||||
//nul esc bksp tab lctl lsft rsft lalt caps F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 numScrlNumPad------- unknown---- F11 F12 unknown....
|
||||
const byte SCAN2ASCII[128] = "\000\0331234567890-=\010\011qwertyuiop[]\n\001asdfghjkl;'`\001\\zxcvbnm,./\001*\001 \001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001-\001\001\001+\001\001\001\001\001\002\002\002\001\001\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002";
|
||||
const byte SCAN2ASCIISHIFT[128] = "\000\033!@#$%^&*()_+\010\011QWERTYUIOP{}\n\001ASDFGHJKL:\"~\001|ZXCVBNM<>?\001*\001 \001\001\001\001\001\001\001\001\001\001\001\001\001789-456+1230.\002\002\002\001\001\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002";
|
||||
const byte SCAN2ASCII[129] = "\000\0331234567890-=\010\011qwertyuiop[]\n\001asdfghjkl;'`\001\\zxcvbnm,./\001*\001 \001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001-\001\001\001+\001\001\001\001\001\002\002\002\001\001\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002";
|
||||
const byte SCAN2ASCIISHIFT[129] = "\000\033!@#$%^&*()_+\010\011QWERTYUIOP{}\n\001ASDFGHJKL:\"~\001|ZXCVBNM<>?\001*\001 \001\001\001\001\001\001\001\001\001\001\001\001\001789-456+1230.\002\002\002\001\001\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002";
|
||||
|
||||
//====FUNCTIONS:
|
||||
// The Keyboard Interrupt Service Routine
|
||||
@@ -1,6 +1,7 @@
|
||||
// mouse.c
|
||||
// 10/03/03
|
||||
// Author: Josh Holtrop
|
||||
// Date: 10/03/03
|
||||
// Modified: 05/21/04
|
||||
|
||||
#include "mouse.h"
|
||||
#include "hos_defines.h"
|
||||
@@ -11,7 +12,7 @@
|
||||
|
||||
int mouse_x;
|
||||
int mouse_y;
|
||||
int mouse_bytesRead = 0;
|
||||
int mouse_bytesRead;
|
||||
byte mouse_inbuffer[MOUSE_BUFFER_LENGTH];
|
||||
|
||||
//This method initializes the ps/2 mouse
|
||||
@@ -29,6 +30,8 @@ void mouse_init()
|
||||
|
||||
mouse_x = video_getWidth() >> 1;
|
||||
mouse_y = video_getHeight() >> 1;
|
||||
|
||||
mouse_bytesRead = 0;
|
||||
|
||||
//outportb(0x64, 0xD4);
|
||||
//outportb(0x60, 0xE7); //scaling 2:1
|
||||
@@ -59,7 +62,7 @@ void isr_mouse()
|
||||
if (mouse_y >= video_getHeight())
|
||||
mouse_y = video_getHeight() - 1;
|
||||
if (mouse_inbuffer[0] & 0x01) //left button
|
||||
video_pset(mouse_x, mouse_y, 0x00FF8800);
|
||||
video_pset(mouse_x, mouse_y, 0x00FF9900);
|
||||
else
|
||||
video_pset(mouse_x, mouse_y, 0x00FFFFFF);
|
||||
}
|
||||
File renamed without changes.
@@ -128,7 +128,6 @@ FILE *vfat_open(char *fileName, dword attributes, Volume *vol);
|
||||
vfat_bpb *vfat_getBootSector(Volume *vol);
|
||||
int vfat_close(FILE *fp);
|
||||
byte *vfat_loadFAT(Volume *vol, vfat_bpb *bpb)
|
||||
vfat_getEntryInRoot(vol, bpb, fileName, 0);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
|
||||
Volume *firstVolume = 0;
|
||||
Volume *rootVolume = 0;
|
||||
MountPoint *firstMountPoint = 0;
|
||||
|
||||
void vfs_init()
|
||||
{
|
||||
@@ -30,6 +30,13 @@ typedef struct
|
||||
Volume *vol; //what volume this file is on
|
||||
} FILE;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char *device;
|
||||
char *mount;
|
||||
void *mp;
|
||||
} MountPoint;
|
||||
|
||||
#define FILE_READ 1
|
||||
#define FILE_WRITE 2
|
||||
#define FILE_READ_WRITE 3
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
//Functions.c
|
||||
//05/07/03 Josh Holtrop
|
||||
//for HOS
|
||||
//Modified: 02/26/04
|
||||
|
||||
#include "functions.h"
|
||||
|
||||
|
||||
+13
-18
@@ -13,17 +13,6 @@ extern dword _code;
|
||||
extern dword _bss;
|
||||
extern dword _end;
|
||||
|
||||
/*
|
||||
inline void enable_ints();
|
||||
inline void disable_ints();
|
||||
inline void restart();
|
||||
inline void halt();
|
||||
inline dword kernel_size();
|
||||
inline void timer_init();
|
||||
inline byte bcd2byte(byte bcd);
|
||||
inline byte byte2bcd(byte bite);
|
||||
*/
|
||||
|
||||
//Enables (SeTs) Interrupt Flag on the processor
|
||||
static inline void enable_ints()
|
||||
{
|
||||
@@ -50,9 +39,7 @@ static inline void restart()
|
||||
|
||||
|
||||
outportb (0x64, 0xfe);
|
||||
for (;;)
|
||||
{
|
||||
}
|
||||
for (;;) {}
|
||||
}
|
||||
|
||||
//Halts (freezes) the computer
|
||||
@@ -60,8 +47,7 @@ static inline void halt()
|
||||
{
|
||||
asm("cli");
|
||||
asm("hlt");
|
||||
while (1)
|
||||
;
|
||||
while (1);
|
||||
}
|
||||
|
||||
//Initializes 8253 Programmable Interrupt Timer
|
||||
@@ -73,19 +59,28 @@ static inline void timer_init()
|
||||
outportb(0x40, 0x2e); //msb
|
||||
}
|
||||
|
||||
//Returns the size of the kernel (code & data)
|
||||
// - this does include the bss section
|
||||
// - this should be 4kb aligned per the linker script
|
||||
// - this is the amount of RAM the kernel code, data, & bss take
|
||||
static inline dword kernel_size_used()
|
||||
{
|
||||
return (dword)(&_end)-(dword)(&_code);
|
||||
}
|
||||
|
||||
//Returns the size of the kernel (code & data)
|
||||
// - this does not include the bss section
|
||||
// - this should be 4kb aligned per the linker script
|
||||
// - this should be the size of kernel.bin
|
||||
static inline dword kernel_size()
|
||||
{
|
||||
return (dword)(&_end)-(dword)(&_code);
|
||||
return (dword)(&_bss)-(dword)(&_code);
|
||||
}
|
||||
|
||||
//converts a binary-coded-decimal byte to its decimal equivalent
|
||||
static inline byte bcd2byte(byte bcd)
|
||||
{
|
||||
return (10* ((bcd & 0xF0) >> 4)) + (bcd & 0x0F);
|
||||
return (10 * ((bcd & 0xF0) >> 4)) + (bcd & 0x0F);
|
||||
}
|
||||
|
||||
//converts a binary-coded-decimal byte to its decimal equivalent
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
|
||||
#include "mm/vmm.h"
|
||||
|
||||
//overload the operator "new"
|
||||
void * operator new (dword size)
|
||||
{
|
||||
return malloc(size);
|
||||
}
|
||||
|
||||
//overload the operator "new[]"
|
||||
void * operator new[] (dword size)
|
||||
{
|
||||
return malloc(size);
|
||||
}
|
||||
|
||||
//overload the operator "delete"
|
||||
void operator delete (void *p)
|
||||
{
|
||||
free(p);
|
||||
}
|
||||
|
||||
//overload the operator "delete[]"
|
||||
void operator delete[] (void *p)
|
||||
{
|
||||
free(p);
|
||||
}
|
||||
|
||||
@@ -29,6 +29,18 @@ typedef struct {
|
||||
dword highdword;
|
||||
} __attribute__((packed)) qword;
|
||||
|
||||
//overload the operator "new"
|
||||
void * operator new (dword size);
|
||||
|
||||
//overload the operator "new[]"
|
||||
void * operator new[] (dword size);
|
||||
|
||||
//overload the operator "delete"
|
||||
void operator delete (void *p);
|
||||
|
||||
//overload the operator "delete[]"
|
||||
void operator delete[] (void *p);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
#include "video/stdfont.h" //Standard font bitmask array
|
||||
#include "video/video.h" //video functions
|
||||
|
||||
extern "C" {
|
||||
|
||||
void isr(dword num);
|
||||
void k_init();
|
||||
|
||||
@@ -60,11 +62,12 @@ void k_init()
|
||||
kio_drawConsole();
|
||||
}
|
||||
|
||||
printf("HOS 0.14 - Kernel File Size: %u kb\n", kernel_size()>>10);
|
||||
printf("HOS 0.14 - Kernel File Size: %uKb Mem Used: %uKb\n", kernel_size()>>10, kernel_size_used()>>10);
|
||||
printf("Memory available to OS: %u MB (%u bytes)\n", mm_getTotalMegs(), mm_getTotalMem());
|
||||
printf("Free memory: %u bytes (%u pages)\n", mm_freemem(), mm_freemem()>>12);
|
||||
printf("%b/%b/%b\t%b:%b:%b\n", rtc_readMonth(), rtc_readDay(), rtc_readYear(), rtc_readHour(), rtc_readMinute(), rtc_readSecond());
|
||||
|
||||
printf("Built on %s at %s\n", __DATE__, __TIME__);
|
||||
printf("%b/%b/%b %b:%b:%b\n", rtc_readMonth(), rtc_readDay(), rtc_readYear(), rtc_readHour(), rtc_readMinute(), rtc_readSecond());
|
||||
|
||||
dword key = 0;
|
||||
for (;;)
|
||||
{
|
||||
@@ -86,6 +89,13 @@ void isr(dword num)
|
||||
case 0x20: // IRQ0 - timer interrupt
|
||||
timer++;
|
||||
(*(byte *)(0xc00b8000))++;
|
||||
if (!(timer % 100))
|
||||
{
|
||||
dword curPos = kio_getCursorPosition();
|
||||
kio_writeCursorPosition(72);
|
||||
printf("%b:%b:%b\n", rtc_readHour(), rtc_readMinute(), rtc_readSecond());
|
||||
kio_writeCursorPosition(curPos);
|
||||
}
|
||||
pic_eoi();
|
||||
break;
|
||||
case 0x21: // IRQ1 - keyboard interrupt
|
||||
@@ -102,7 +112,7 @@ void isr(dword num)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// kio.c
|
||||
// Author: Josh Holtrop
|
||||
// Created: 12/25/03
|
||||
// Modified: 03/09/04
|
||||
// Modified: 04/06/04
|
||||
|
||||
#include "hos_defines.h"
|
||||
#include "kio.h"
|
||||
@@ -13,6 +13,7 @@ word console_memory[2000]; //holds a copy of the console's memory
|
||||
|
||||
// This is the main output routine, it uses a format string and a variable
|
||||
// number of arguments to print formatted text
|
||||
extern "C" {
|
||||
void printf(char *fmt, ...)
|
||||
{
|
||||
dword *params = ((dword *)(&fmt)) + 1; //points to the first paramater
|
||||
@@ -38,7 +39,7 @@ void printf(char *fmt, ...)
|
||||
putc(*params);
|
||||
params++;
|
||||
break;
|
||||
case 'd': case 'D':
|
||||
case 'd': case 'D': case 'i': case 'I':
|
||||
putDec(*params);
|
||||
params++;
|
||||
break;
|
||||
@@ -186,7 +187,7 @@ void kio_drawConsole()
|
||||
{
|
||||
for (y = 0; y < 25; y++)
|
||||
{
|
||||
video_renderChar(x*6+10, y*10+10, console_memory[y*80+x], 0, 0x00FFFFFF);
|
||||
video_renderChar(x*6+10, y*10+10, console_memory[y*80+x], 0, 0x00FFFFFF, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -197,9 +198,19 @@ void kio_drawConsoleChar(dword position)
|
||||
{
|
||||
int x = position % 80;
|
||||
int y = position / 80;
|
||||
video_renderChar(x*6+10, y*10+10, console_memory[y*80+x], 0, 0x00FFFFFF);
|
||||
video_renderChar(x*6+10, y*10+10, console_memory[y*80+x], 0, 0x00FFFFFF, 1, 0);
|
||||
}
|
||||
|
||||
|
||||
dword kio_getCursorPosition()
|
||||
{
|
||||
return cursorPosition;
|
||||
}
|
||||
|
||||
void kio_writeCursorPosition(dword position)
|
||||
{
|
||||
cursorPosition = position;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+15
-9
@@ -1,21 +1,27 @@
|
||||
// kio.h
|
||||
// Author: Josh Holtrop
|
||||
// Created: 12/25/03
|
||||
// Modified: 03/09/04
|
||||
// Modified: 05/21/04
|
||||
|
||||
#ifndef __HOS_KIO__
|
||||
#define __HOS_KIO__ __HOS_KIO__
|
||||
|
||||
#include "hos_defines.h"
|
||||
|
||||
void printf(char *fmt, ...);
|
||||
void putc(dword chr);
|
||||
void putHex(dword number);
|
||||
void kio_drawConsole();
|
||||
void kio_drawConsoleChar(dword position);
|
||||
void kio_console_scroll();
|
||||
void kio_console_cls();
|
||||
void kio_putBCD(dword bcd);
|
||||
extern "C" {
|
||||
|
||||
void printf(char *fmt, ...);
|
||||
void putc(dword chr);
|
||||
void putHex(dword number);
|
||||
void kio_drawConsole();
|
||||
void kio_drawConsoleChar(dword position);
|
||||
void kio_console_scroll();
|
||||
void kio_console_cls();
|
||||
void kio_putBCD(dword bcd);
|
||||
dword kio_getCursorPosition();
|
||||
void kio_writeCursorPosition(dword position);
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+6
-2
@@ -12,8 +12,12 @@ SECTIONS
|
||||
*(.data)
|
||||
. = ALIGN(4096);
|
||||
}
|
||||
.bss :
|
||||
{
|
||||
.rodata : {
|
||||
rodata = .; _rodata = .; __rodata = .;
|
||||
*(.rodata)
|
||||
. = ALIGN(4096);
|
||||
}
|
||||
.bss : {
|
||||
bss = .; _bss = .; __bss = .;
|
||||
*(.bss)
|
||||
. = ALIGN(4096);
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -37,7 +37,7 @@ void video_init()
|
||||
}
|
||||
|
||||
//Renders a character using stdfont[] as a bitmask
|
||||
void video_renderChar(int x, int y, int character, int font, dword color)
|
||||
void video_renderChar(int x, int y, int character, int font, dword color, int drawBack, dword backColor)
|
||||
{
|
||||
int charWidth = stdfont_getFontWidth(font);
|
||||
if (!charWidth)
|
||||
@@ -53,6 +53,8 @@ void video_renderChar(int x, int y, int character, int font, dword color)
|
||||
{
|
||||
if ((charBMP[charpos + row] << col) & 0x80)
|
||||
video_pset(x + col, y + row, color);
|
||||
else if (drawBack)
|
||||
video_pset(x + col, y + row, backColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,7 +18,7 @@ void video_psetp16(int pixel, dword color);
|
||||
void video_psetp24(int pixel, dword color);
|
||||
void video_psetp32(int pixel, dword color);
|
||||
void video_psetpnull(int pixel, dword color);
|
||||
void video_renderChar(int x, int y, int character, int font, dword color);
|
||||
void video_renderChar(int x, int y, int character, int font, dword color, int drawBack, dword backColor);
|
||||
int video_getWidth();
|
||||
int video_getHeight();
|
||||
byte video_getBitsPerPixel();
|
||||
|
||||
Reference in new issue
Block a user