X-Git-Url: https://robinkrens.nl/gitweb/?p=cortex-from-scratch;a=blobdiff_plain;f=main.c;h=87b45e7112aadc303694abc8d151c1fd78143202;hp=57a199ef368ed4f51849e18962b0c1e0e6f0cce4;hb=f868eff133428422f3ded32c58156144eb670a1f;hpb=0c7ff283cb17c203da9a98fbd82ed87aa75abe52 diff --git a/main.c b/main.c index 57a199e..87b45e7 100644 --- a/main.c +++ b/main.c @@ -1,7 +1,63 @@ -void main(void); +#include +#include +#include +#include // <-- your own header file located located in ./include -void main(void ) { - int i = 1; - for (;;); +void *memcpy(void *dest, void *src, size_t count) +{ + const char *sp = (const char *)src; + char *dp = (char *)dest; + for(; count != 0; count--) *dp++ = *sp++; + return dest; +} + +/* fillout memory with 'val' (i.e. all zeroes) + */ +void *memset(void *dest, unsigned char val, size_t count) +{ + char *temp = (char *)dest; + for( ; count != 0; count--) *temp++ = val; + return dest; +} + +/* same as above but shorter */ +unsigned short *memsetw(unsigned short *dest, unsigned short val, size_t count) +{ + unsigned short *temp = (unsigned short *)dest; + for( ; count != 0; count--) *temp++ = val; + return dest; +} + +int strlen(const char *str) +{ + int retval; + for(retval = 0; *str != '\0'; str++) retval++; + return retval; +} + +unsigned char inportb (uint32_t _addr) +{ + unsigned char rv; + //__asm__ __volatile__ ("inb %1, %0" : "=a" (rv) : "dN" (_port)); + return rv; + +} + +void outportb (uint32_t _addr, unsigned char _data) +{ + + // __asm__ __volatile__ ("str %1, %0" : "=r" (_data) : "m" (_addr) ); + + // __asm__ __volatile__ ("outb %1, %0" : : "dN" (_port), "a" (_data)); +} + +void main() +{ + uart_init(); + uart_puts("LOADING SYSTEM...\n"); + // loop + for(;;) { + + } }