Added runtime (kernel 2.0)

This commit is contained in:
felsabbagh3
2019-10-30 23:40:01 -04:00
parent 06e5f6df1d
commit 46b09028d0
37 changed files with 569 additions and 3866 deletions

30
runtime/io/vx_io.c Normal file
View File

@@ -0,0 +1,30 @@
#include "vx_io.h"
void vx_print_hex(unsigned f)
{
vx_print_str(hextoa[f]);
// if (f < 16)
// {
// vx_print_str(hextoa[f]);
// return;
// }
// int temp;
// int sf = 32;
// bool start = false;
// do
// {
// temp = (f >> (sf - 4)) & 0xf;
// if (temp != 0) start = true;
// if (start) vx_print_str(hextoa[temp]);
// sf -= 4;
// } while(sf > 0);
}
void vx_printf(char * c, unsigned f)
{
vx_print_str(c);
vx_print_hex(f);
vx_print_str("\n");
}

10
runtime/io/vx_io.h Normal file
View File

@@ -0,0 +1,10 @@
#pragma once
#include <stdbool.h>
static char * hextoa[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
void vx_print_hex(unsigned);
void vx_print_str(char *);
void vx_printf(char *, unsigned);
void vx_printc(unsigned, char c);

30
runtime/io/vx_io.s Normal file
View File

@@ -0,0 +1,30 @@
.type vx_print_str, @function
.global vx_print_str
vx_print_str:
addi sp, sp, -12
sw ra, 0(sp)
sw a1, 4(sp)
bl:
lbu a1,0(a0)
beqz a1,be
jal vx_printc
addi a0, a0, 1
j bl
be:
lw ra, 0(sp)
lw a1, 4(sp)
addi sp, sp, 12
ret
.type vx_printc, @function
.global vx_printc
vx_printc:
la t0, 0x00010000
sw a1, 0(t0)
ret