コード例 #1
0
ファイル: Test.c プロジェクト: WilliamAvila/OSProject
void main(){
        char str[80], buffer[512];

         syscall_printString("Enter a line: ");

         syscall_readString(str);

         syscall_printString("\r\n");

         syscall_printString(str);

         syscall_printString("\r\n");

         syscall_printString("Reading sector 30 from floppy\r\n");

         syscall_readSector(buffer, 30);

         syscall_printString(buffer);

}
コード例 #2
0
ファイル: shell.c プロジェクト: lexfernandez/osproject
void main(){
	char str[80];
	char buffer[13312];
	char * aux;
	char f1[6];
	char f2[6];
	int isTyping=1;
	int address=0;
	int t=0;
	struct process processList[8];
	while(1){

		syscall_printString("shell >> ");
		syscall_readString(str);
		syscall_printString("\r\n");

		if(str[0]=='c' && str[1]=='l' && str[2]=='e' && str[3]=='a' && str[4]=='r'){
			syscall_clearScreen();
		}
		else if (str[0]=='t' && str[1]=='y' && str[2]=='p' && str[3]=='e' && str[4]==' '){
			getFileName(str+4,f1);
			if(f1[0]==0x00){
				syscall_printString("please enter a valid file name!");
			}else{
				syscall_readFile(f1, buffer);
				if(buffer[0]==0x00)
					syscall_printString("404 - File not found!");
				else
					syscall_printString(buffer);

			}
		}
		else if (str[0]=='e' && str[1]=='x' && str[2]=='e' && str[3]=='c' && str[4]=='u' && str[5]=='t' && str[6]=='e' && str[7]==' '){
			getFileName(str+7,f1);
			syscall_executeProgram(f1);
		}
		else if (str[0]=='d' && str[1]=='e' && str[2]=='l' && str[3]=='e' && str[4]=='t' && str[5]=='e' && str[6]==' '){
			getFileName(str+7,f1);
			syscall_deleteFile(f1);
		}
		else if (str[0]=='c' && str[1]=='r' && str[2]=='e' && str[3]=='a' && str[4]=='t' && str[5]=='e' && str[6]==' '){
			getFileName(str+7,f1);

			aux=&buffer;
			syscall_clearScreen();
			address=0;
			while(isTyping){
				syscall_readString(str);
				if(str[0]==0x0A && str[1]==0x00){
					isTyping=0;
				}else{
					for(t=0;t<80;t++){
						*aux=str[t];
						str[t]=0x00;
						aux++;
						address++;
					}
				}
			}
			isTyping=1;
			syscall_printString(f1);
			syscall_printString(buffer);
			syscall_writeFile(f1,buffer,address);
		}
		else if(str[0]=='c' && str[1]=='o' && str[2]=='p' && str[3]=='y' && str[4]==' '){
			aux = getFileName(str+4,f1);
			getFileName(aux,f2);

			if(f1[0]==0x00 || f2[0]==0x00){
				syscall_printString("plese use copy [filename1] [filename2]\r\n");
				syscall_printString("file name must be between 1 - 6 character long\r\n");
			}else{
				syscall_readFile(f1,buffer);

				t=strlen(buffer);

				syscall_writeFile(f2,buffer,t);
				syscall_printString("Copied!");
			}

		}else if(str[0]=='l' && str[1]=='s'){
			syscall_listDirectory();
		}
		else if(str[0]=='k' && str[1]=='i' && str[2]=='l' && str[3]=='l' && str[4]==' '){
			if(str[5]>='0' && str[5]<='7')
				syscall_killProcess(str[5]-48);
			else
				syscall_printString("Enter a valid PID\r\n");
		}
		else if (str[0]=='e' && str[1]=='x' && str[2]=='e' && str[3]=='c' && str[4]=='u' && str[5]=='t' && str[6]=='e' && str[7]=='w' && str[8]==' '){
			getFileName(str+8,f1);
			syscall_waitForMe(f1);
		}
		else if(str[0]=='p' && str[1]=='s'){
			syscall_printString("psCommand\r\n");
			syscall_ps(processList);
			syscall_printString("\r\n");
			syscall_printString("id\tsegment\tstatus\r\n");
			for(t=0;t<8;t++){
				if(processList[t].status==4){
					continue;
				}

				syscall_printString("id => ");
				syscall_itoa(t,str,10);
				syscall_printString(str);
				syscall_printString("\tsegment => ");
				syscall_itoa((int)processList[t].segment,str,10);
				syscall_printString(str);
				syscall_printString("\tstatus => ");
				syscall_itoa((int)processList[t].status,str,10);
				syscall_printString(str);
				syscall_printString(processList[t].status==1?"(Ready)":processList[t].status==2?"(Waiting)":"(Running)");

			}


		}
		else{
			syscall_printString("comando desconocido :D\r\n");
		}


		if(!(str[0]=='c' && str[1]=='l' && str[2]=='e' && str[3]=='a' && str[4]=='r')){
			syscall_printString("\r\n");
		}

	}

}