/programs/system/shell/cmd/cmd_about.c |
---|
0,0 → 1,17 |
int cmd_about(char param[]) |
{ |
char message[] = { |
"\ |
\n\r\ |
Shell for KolibriOS\n\r\ |
version %s\n\r\n\r\ |
author: Oleksandr Bogomaz aka Albom\n\r\ |
e-mail: albom85@yandex.ru\n\r\ |
site: http://albom85.narod.ru/\n\r\n\r\ |
"}; |
printf(message, SHELL_VERSION); |
return TRUE; |
} |
/programs/system/shell/cmd/cmd_alias.c |
---|
0,0 → 1,19 |
int cmd_alias(char arg[]) |
{ |
int result; |
if (NULL == arg) |
{ |
alias_list(); |
return TRUE; |
} |
result = alias_check(arg); |
if ( ( 0 != result ) && ( -1 != result ) ) |
alias_add(arg); |
return TRUE; |
} |
/programs/system/shell/cmd/cmd_ccpuid.c |
---|
0,0 → 1,33 |
int cmd_ccpuid(char param[]) |
{ |
unsigned a, b, c, d; |
char str[13]; |
str[12] = '\0'; |
asm ("cpuid" : |
"=a" (a), |
"=b" (b), |
"=c" (c), |
"=d" (d): |
"a"(0)); |
str[0] = (b&0x000000ff) >> 0; |
str[1] = (b&0x0000ff00) >> 8; |
str[2] = (b&0x00ff0000) >> 16; |
str[3] = (b&0xff000000) >> 24; |
str[4] = (d&0x000000ff) >> 0; |
str[5] = (d&0x0000ff00) >> 8; |
str[6] = (d&0x00ff0000) >> 16; |
str[7] = (d&0xff000000) >> 24; |
str[8] = (c&0x000000ff) >> 0; |
str[9] = (c&0x0000ff00) >> 8; |
str[10] = (c&0x00ff0000) >> 16; |
str[11] = (c&0xff000000) >> 24; |
printf("%s\n\r", str); |
return TRUE; |
} |
/programs/system/shell/cmd/cmd_cd.c |
---|
0,0 → 1,47 |
int cmd_cd(char dir[]) |
{ |
char temp[256]; |
unsigned result; |
if (NULL == dir) |
{ |
printf(" cd directory\n\r"); |
return FALSE; |
} |
if ( 0 == strcmp(dir, ".") ) |
return FALSE; |
if ( ( 0 == strcmp(dir, "..") ) && ( 0 != strcmp(cur_dir, "/")) ) |
{ |
cur_dir[strlen(cur_dir)-1]='\0'; |
dir_truncate(cur_dir); |
return FALSE; |
} |
if ( '/' == dir[0]) |
{ |
if ( dir_check(dir) ) |
{ |
strcpy(cur_dir, dir); |
return TRUE; |
} |
return FALSE; |
} |
else |
{ |
strcpy(temp, cur_dir); |
strcat(temp, dir); |
if ( dir_check(temp) ) |
{ |
strcpy(cur_dir, temp); |
return TRUE; |
} |
return FALSE; |
} |
} |
/programs/system/shell/cmd/cmd_clear.c |
---|
0,0 → 1,6 |
int cmd_clear(char param[]) |
{ |
con_cls(); |
return TRUE; |
} |
/programs/system/shell/cmd/cmd_date.c |
---|
0,0 → 1,23 |
int cmd_date(char param[]) |
{ |
unsigned date; |
unsigned time; |
date = kol_system_date_get(); |
printf(" date [dd.mm.yy]: %x%x.%x%x.%x%x", |
(date&0xf00000)>>20, (date&0xf0000)>>16, // day |
(date&0xf000)>>12, (date&0xf00)>>8, //month |
(date&0xf0)>>4, (date&0xf) ); // year |
time = kol_system_time_get(); |
printf("\n\r time [hh:mm:ss]: %x%x:%x%x:%x%x\n\r", |
(time&0xf0)>>4, (time&0xf), // hours |
(time&0xf000)>>12, (time&0xf00)>>8, // minutes |
(time&0xf00000)>>20, (time&0xf0000)>>16 ); // seconds |
return TRUE; |
} |
/programs/system/shell/cmd/cmd_echo.c |
---|
0,0 → 1,6 |
int cmd_echo(char text[]) |
{ |
printf("%s\n\r", text); |
return TRUE; |
} |
/programs/system/shell/cmd/cmd_exit.c |
---|
0,0 → 1,8 |
int cmd_exit(char param[]) |
{ |
free(ALIASES); |
_exit(1); |
kol_exit(); |
return TRUE; |
} |
/programs/system/shell/cmd/cmd_free.c |
---|
0,0 → 1,14 |
int cmd_free(char param[]) |
{ |
unsigned total, free, used; |
total = kol_system_mem(); |
free = kol_system_memfree(); |
used = total - free; |
printf (" total [kB / MB / %%]: %-7d / %-5d / 100\n\r free [kB / MB / %%]: %-7d / %-5d / %d\n\r used [kB / MB / %%]: %-7d / %-5d / %d\n\r", |
total, total/1024, free, free/1024, (free*100)/total, used, total/1024-free/1024, 100-(free*100)/total ); |
return TRUE; |
} |
/programs/system/shell/cmd/cmd_help.c |
---|
0,0 → 1,32 |
int cmd_help(char cmd[]) |
{ |
int i; |
char available[]={" %d commands available:\n\r"}; |
if ( !strlen(cmd) ) |
{ |
printf (available, NUM_OF_CMD); |
for (i = 0; i < NUM_OF_CMD; i++) |
printf(" %s\n\r", COMMANDS[i].name); |
return TRUE; |
} |
else |
{ |
for (i=0; i<NUM_OF_CMD; i++) |
if ( !strcmp(cmd, COMMANDS[i].name) ) |
{ |
printf(COMMANDS[i].help); |
return TRUE; |
} |
printf (" Command \'%s\' not found.\n\r", cmd); |
printf (available, NUM_OF_CMD); |
for (i = 0; i < NUM_OF_CMD; i++) |
printf(" %s\n\r", COMMANDS[i].name); |
} |
return FALSE; |
} |
/programs/system/shell/cmd/cmd_kill.c |
---|
0,0 → 1,43 |
int _atoi ( char *s ) |
{ |
int i, n; |
n = 0; |
for ( i = 0; s[i]!= '\0'; ++i) |
if ((s[i]<'0') || (s[i]>'9')) |
return 0; |
else |
n = 10 * n + s[i] - '0'; |
return n; |
} |
int cmd_kill(char process[]) |
{ |
unsigned proc; |
int result; |
if (NULL == process) |
{ |
printf(" kill PID\n\r"); |
return FALSE; |
} |
else |
{ |
proc = _atoi(process); |
if ( 0 != proc ) |
{ |
result = kol_process_kill_pid(proc); |
if (result < 0) |
return FALSE; |
else |
return TRUE; |
} |
} |
} |
/programs/system/shell/cmd/cmd_ls.c |
---|
0,0 → 1,47 |
int cmd_ls(char dir[]) |
{ |
kol_struct70 k70; |
unsigned *n; |
unsigned num_of_file; |
unsigned *t; |
unsigned type_of_file; |
int i; |
k70.p00 = 1; |
k70.p04 = 0; |
k70.p08 = 0; |
k70.p12 = 2*1024*1024; // 2 MB |
k70.p16 = malloc(2*1024*1024); |
k70.p20 = 0; |
/// !!! |
// Åñëè ls çàïóñêàåòñÿ áåç ïàðàìåòðîâ, ïðîñìàòðèâàåì òåêóùèé êàòàëîã |
if ( !strlen(dir) ) |
k70.p21 = cur_dir; |
else |
k70.p21 = dir; |
if ( !kol_file_70(&k70) ) // ïðîâåðÿåì ñóùåñòâîâàíèå êàòàëîãà |
{ |
free(k70.p16); |
return FALSE; |
} |
n = k70.p16+8; |
num_of_file = *n; // ÷èñëî ôàéëîâ â êàòàëîãå |
for (i = 0; i < num_of_file; i++) |
{ |
printf (" %s", k70.p16+32+40+(264+40)*i); |
t = k70.p16+32+(264+40)*i; |
type_of_file = *t; |
if ( (0x10 == (type_of_file&0x10)) || (8 == (type_of_file&8)) ) |
printf ("/"); |
printf ("\n\r"); |
} |
free(k70.p16); |
return TRUE; |
} |
/programs/system/shell/cmd/cmd_mkdir.c |
---|
0,0 → 1,44 |
int cmd_mkdir(char dir[]) |
{ |
char temp[256]; |
kol_struct70 k70; |
unsigned result; |
if (NULL == dir) |
{ |
printf(" mkdir directory\n\r"); |
return FALSE; |
} |
if ( 0 == strcmp(dir, ".") || ( 0 == strcmp(dir, "..") ) || ( 0 == strcmp(cur_dir, "/")) ) |
{ |
return FALSE; |
} |
k70.p00 = 9; |
k70.p04 = 0; |
k70.p08 = 0; |
k70.p12 = 0; |
k70.p16 = 0; |
k70.p20 = 0; |
if ( '/' == dir[0]) |
k70.p21 = dir; |
else |
{ |
strcpy(temp, cur_dir); |
strcat(temp, dir); |
k70.p21 = temp; |
} |
result = kol_file_70(&k70); |
if (0 == result) |
return TRUE; |
else |
return FALSE; |
} |
/programs/system/shell/cmd/cmd_more.c |
---|
0,0 → 1,87 |
int cmd_more(char file[]) |
{ |
kol_struct70 k70; |
kol_struct_BDVK bdvk; |
unsigned result, filesize, pos, i; |
char buf[81]; //áóôåð |
char temp[256]; |
unsigned flags; |
if (NULL == file) |
{ |
printf (" less filename\n\r"); |
return FALSE; |
} |
if ( '/' == file[0]) |
{ |
strcpy(temp, file); |
if ( !file_check(temp) ) |
{ |
return FALSE; |
} |
} |
else |
{ |
strcpy(temp, cur_dir); |
strcat(temp, file); |
if ( !file_check(temp) ) |
{ |
return FALSE; |
} |
} |
k70.p00 = 5; |
k70.p04 = k70.p08 = k70.p12 = 0; |
k70.p16 = &bdvk; |
k70.p20 = 0; |
k70.p21 = temp; |
result = kol_file_70(&k70); // ïîëó÷àåì èíôîðìàöèþ î ôàéëå |
if ( 0 != result ) |
return FALSE; |
filesize = bdvk.p32[0]; // ïîëó÷àåì ðàçìåð ôàéëà |
buf[80]=0; |
flags = con_get_flags(); |
for (pos=0;pos<filesize;pos+=80) |
{ |
memset(buf, 0, 80); |
k70.p00 = 0; |
k70.p04 = pos; |
k70.p08 = 0; |
k70.p12 = 80; |
k70.p16 = buf; |
k70.p20 = 0; |
k70.p21 = temp; |
result = kol_file_70(&k70); // ÷òåíèå 80 ñèìâîëîâ |
for (i=0; i<80; i++) |
{ |
if (27 == buf[i]) |
con_set_flags(flags|0x100); |
else con_set_flags(flags); |
printf ("%c", buf[i]); |
} |
if ( 0 != result ) |
{ |
con_set_flags(flags); |
printf ("\n\r"); |
return TRUE; |
} |
} |
con_set_flags(flags); |
printf ("\n\r"); |
return TRUE; |
} |
/programs/system/shell/cmd/cmd_ps.c |
---|
0,0 → 1,32 |
int cmd_ps(char param[]) |
{ |
int i, n; |
char *buf1k; |
unsigned PID; |
unsigned *p; |
short *s; |
short STATE; |
buf1k = malloc(1024); |
if (NULL == buf1k) |
return FALSE; |
for (i = 1;;i++) |
{ |
n = kol_process_info(i, buf1k); |
p = buf1k+30; |
PID = *p; |
s = buf1k+50; |
STATE = *s; |
if ( 9 != STATE) |
printf (" %7d %s\n\r", PID, buf1k+10); |
if (i == n) |
break; |
} |
free(buf1k); |
return TRUE; |
} |
/programs/system/shell/cmd/cmd_pwd.c |
---|
0,0 → 1,6 |
int cmd_pwd(char param[]) |
{ |
printf (" %s\n\r", cur_dir); |
return TRUE; |
} |
/programs/system/shell/cmd/cmd_reboot.c |
---|
0,0 → 1,6 |
int cmd_reboot(char param[]) |
{ |
kol_system_end(3); |
return TRUE; |
} |
/programs/system/shell/cmd/cmd_rm.c |
---|
0,0 → 1,50 |
int cmd_rm(char file[]) |
{ |
kol_struct70 k70; |
char temp[256]; |
unsigned result; |
if (NULL == file) |
{ |
printf (" rm filename\n\r"); |
return FALSE; |
} |
if ( '/' == file[0]) |
{ |
strcpy(temp, file); |
if ( !file_check(temp) ) |
{ |
return FALSE; |
} |
} |
else |
{ |
strcpy(temp, cur_dir); |
strcat(temp, file); |
if ( !file_check(temp) ) |
{ |
return FALSE; |
} |
} |
k70.p00 = 8; |
k70.p04 = 0; |
k70.p08 = 0; |
k70.p12 = 0; |
k70.p16 = 0; |
k70.p20 = 0; |
k70.p21 = temp; |
result = kol_file_70(&k70); |
if (0 == result) |
return TRUE; |
else |
return FALSE; |
} |
/programs/system/shell/cmd/cmd_rmdir.c |
---|
0,0 → 1,46 |
int cmd_rmdir(char dir[]) |
{ |
char temp[256]; |
kol_struct70 k70; |
unsigned result; |
if (NULL == dir) |
{ |
printf(" rmdir directory\n\r"); |
return FALSE; |
} |
if ( ( 0 == strcmp(dir, ".") ) || ( 0 == strcmp(dir, "..") ) || ( 0 == strcmp(cur_dir, "/")) ) |
{ |
return FALSE; |
} |
k70.p00 = 8; |
k70.p04 = 0; |
k70.p08 = 0; |
k70.p12 = 0; |
k70.p16 = 0; |
k70.p20 = 0; |
if ( '/' == dir[0]) |
k70.p21 = dir; |
else |
{ |
strcpy(temp, cur_dir); |
strcat(temp, dir); |
k70.p21 = temp; |
} |
if ( !dir_check(temp) ) |
return FALSE; |
result = kol_file_70(&k70); |
if (0 == result) |
return TRUE; |
else |
return FALSE; |
} |
/programs/system/shell/cmd/cmd_sleep.c |
---|
0,0 → 1,12 |
int cmd_sleep(char param[]) |
{ |
int delay; |
if (!strlen(param)) |
return FALSE; |
delay = _atoi(param); |
kol_sleep((unsigned)delay); |
return TRUE; |
} |
/programs/system/shell/cmd/cmd_touch.c |
---|
0,0 → 1,54 |
int cmd_touch(char file[]) |
{ |
kol_struct70 k70; |
char temp[256]; |
unsigned result; |
if (NULL == file) |
{ |
printf(" touch filename\n\r"); |
return FALSE; |
} |
if ( ( 0 == strcmp(file, ".") ) || ( 0 == strcmp(file, "..") ) || ( 0 == strcmp(cur_dir, "/")) ) |
{ |
return FALSE; |
} |
if ( '/' == file[0]) |
{ |
strcpy(temp, file); |
if ( !file_check(temp) ) |
k70.p00 = 2; |
else |
k70.p00 = 3; |
} |
else |
{ |
strcpy(temp, cur_dir); |
strcat(temp, file); |
if ( !file_check(temp) ) |
k70.p00 = 2; |
else |
k70.p00 = 3; |
} |
k70.p04 = 0; |
k70.p08 = 0; |
k70.p12 = 0; |
k70.p16 = 0; |
k70.p20 = 0; |
k70.p21 = temp; |
result = kol_file_70(&k70); |
if (0 == result) |
return TRUE; |
else |
return FALSE; |
} |
/programs/system/shell/cmd/cmd_ver.c |
---|
0,0 → 1,6 |
int cmd_ver(char param[]) |
{ |
printf (" %s\n\r", SHELL_VERSION); |
return TRUE; |
} |
/programs/system/shell/cmd/. |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |