44 lines
1.1 KiB
C
44 lines
1.1 KiB
C
|
/******************************************************************
|
||
|
* system.c - Basic system functions *
|
||
|
******************************************************************/
|
||
|
|
||
|
#include <system.h>
|
||
|
|
||
|
byte *TextVideoRam;
|
||
|
volatile int cursor_x, cursor_y;
|
||
|
int current_mode_width;
|
||
|
int current_mode_height;
|
||
|
|
||
|
void *memcpy(void *dest, const void *src, int count)
|
||
|
{
|
||
|
const char *sp = (const char *)src;
|
||
|
char *dp = (char *)dest;
|
||
|
for(; count != 0; count--) *dp++ = *sp++;
|
||
|
return dest;
|
||
|
}
|
||
|
|
||
|
void *memset(void *dest, char val, int count)
|
||
|
{
|
||
|
char *temp = (char *)dest;
|
||
|
for( ; count != 0; count--) *temp++ = val;
|
||
|
return dest;
|
||
|
}
|
||
|
|
||
|
unsigned short *memsetw(unsigned short *dest, unsigned short val, int count)
|
||
|
{
|
||
|
unsigned short *temp = (unsigned short *)dest;
|
||
|
for( ; count != 0; count--) *temp++ = val;
|
||
|
return dest;
|
||
|
}
|
||
|
|
||
|
|
||
|
byte inportb (word _port) {
|
||
|
byte rv;
|
||
|
__asm__ __volatile__ ("inb %1, %0" : "=a" (rv) : "dN" (_port));
|
||
|
return rv;
|
||
|
}
|
||
|
byte inb (word _port) {
|
||
|
byte rv;
|
||
|
__asm__ __volatile__ ("inb %1, %0" : "=a" (rv) : "dN" (_port));
|
||
|
return rv;
|
||
|
}
|