All pastes #988145 Raw Edit

Stuff

public text v1 · immutable
#988145 ·published 2008-04-17 09:47 UTC
rendered paste body
unsigned char *memcpy(unsigned char *dest, const unsigned char *src, int count)
{
        int i;
        for (i=0; i<count; i++) {
                dest[i] = src[i];
        }
        return dest;
}

unsigned char *memset(unsigned char *dest, unsigned char val, int count)
{
        int i;
        for (i=0; i<count; i++) {
                dest[i] = val;
        }
        return dest;
}


unsigned short* videoram = (unsigned short*)0xB8000;
int width = 80;
int height = 25;

void vgacon_init(){

}

void vgacon_scroll(int lines){
        unsigned short size = (lines*width);
        unsigned short *src = videoram + size;
        memcpy (videoram, src,(width*height)-size);
        memset ((unsigned short*)videoram + ((width*height)-size), 0, size*2);  /* size * 2 because a character on vga memory is 16bits wide */
}

void vgacon_putc(unsigned short x, unsigned short y, unsigned short character, unsigned short attributes){
        unsigned short* where = videoram + ((width*x)+y);
        unsigned attr = attributes << 8;
        *where = character | attr;
}