Beispiel #1
0
void btos_open_std_streams(){
	if(std_streams_open) return;
    char buffer[BT_MAX_PATH];
    size_t s=bt_getenv("STDIN", buffer, BT_MAX_PATH);
    if(s){
        bt_handle input=bt_fopen(buffer, FS_Read);
        btos_set_specific_filenum(0, input, buffer);
    }else{
    	btos_set_specific_filenum_virt(0, &null_virt_handle);
    }
    memset(buffer, 0, BT_MAX_PATH);
    s=bt_getenv("STDOUT", buffer, BT_MAX_PATH);
    if(s){
        bt_handle output=bt_fopen(buffer, FS_Write | FS_AtEnd);
        btos_set_specific_filenum(1, output, buffer);
    }else{
    	btos_set_specific_filenum_virt(1, &null_virt_handle);
    }
    memset(buffer, 0, BT_MAX_PATH);
    s=bt_getenv("STDERR", buffer, BT_MAX_PATH);
    if(s){
        bt_handle output=bt_fopen(buffer, FS_Write | FS_AtEnd);
        btos_set_specific_filenum(2, output, buffer);
    }else{
    	btos_set_specific_filenum_virt(2, &null_virt_handle);
    }
    std_streams_open = true;
}
Beispiel #2
0
void get_string(char *buffer, size_t bytes){
	if(!bt_stdin){
		if(!bt_getenv("INPUT_DEVICE", &bt_stdin_device[5], 250)) return;
		bt_stdin=bt_fopen(bt_stdin_device, FS_Read);
	}
	size_t pos=bt_fseek(bt_stdout, 0, true);
	size_t i=0;
	char x[2]={'a', '\0'};
	uint32_t c;
	while(true){
		bt_fread(bt_stdin, sizeof(c), (char*)&c);
		x[0]=KB_char(c);
		if(x[0]==0x08){
		 	if(i>0) buffer[--i]=0;
		}else if(x[0]) buffer[i++]=x[0];

		if(x[0]=='\n' || i==bytes){
			print_string("\n");
			return;
		}

		bt_fseek(bt_stdout, pos, false);
		print_string(buffer);
		size_t newpos=bt_fseek(bt_stdout, 0, true);
		print_string(" ");
		bt_fseek(bt_stdout, newpos, false);
	}
}
Beispiel #3
0
void print_string(const char *s){
	if(!bt_stdout){
		if(!bt_getenv("DISPLAY_DEVICE", &bt_stdout_device[5], 250)) return;
    	bt_stdout=bt_fopen(bt_stdout_device, FS_Write);
    }
    bt_fwrite(bt_stdout, strlen(s), s);
}
Beispiel #4
0
void file_contents(){
	print_string("Contents of \"INIT:/config.ini\":\n");
	bt_filehandle file=bt_fopen("INIT:/config.ini", FS_Read);
	char c[32]={0};
	while(bt_fread(file, 31, c)){
		print_string(c);
		memset(c, 0, 32);
	}
	bt_fclose(file);
}
Beispiel #5
0
void ata_test(){
	char buf[513]={0};
	bt_filehandle ata=bt_fopen("DEV:/ATA0P0", FS_Read);
	bt_fread(ata, 512, buf);
	print_string("The contents of the first sector of the ATA0P0 device is:\n");
	print_string(buf);
	print_string("\n");
	bt_fread(ata, 512, buf);
	print_string("The contents of the second sector of the ATA0P0 device is:\n");
	print_string(buf);
	bt_fclose(ata);
	print_string("\n");
}
Beispiel #6
0
void file_contents2(char *input){
	input[strlen(input)-1]=0;
	print_string("Contents of \"");
	print_string(&input[2]);
	print_string("\":\n");
	bt_filehandle file=bt_fopen(&input[2], FS_Read);
	if(!file) return;
	char c[32]={0};
	while(bt_fread(file, 31, c)){
		print_string(c);
		memset(c, 0, 32);
	}
	bt_fclose(file);
}