98,6 → 98,7 |
void _startup(void) |
{ |
register int i = 0; |
char temp[1000]; |
struct multiboot_info *mbi = mbi_address(); |
char *cmdline = (char *)(mbi->cmdline); |
|
105,16 → 106,21 |
cputs("X/Runtime library error!!! Unable to find memory information!\n"); |
l1_exit(-1); |
} |
|
|
if (mbi->flags & MB_INFO_CMDLINE) { |
/* Build parameter list, up to 100 parms... */ |
while (cmdline[i] != 0) { |
_argv[_argc] = &(cmdline[i]); |
while (cmdline[i] != ' ' && cmdline[i] != 0) i++; |
while (cmdline[i] != 0 && i < 1000) { |
temp[i] = cmdline[i]; |
_argv[_argc] = &(temp[i]); |
while (cmdline[i] != ' ' && cmdline[i] != 0 && i < 1000) { |
temp[i] = cmdline[i]; |
i++; |
} |
if (cmdline[i] == ' ') { |
cmdline[i] = 0; i++; _argc++; |
temp[i] = 0; i++; _argc++; |
} |
} |
temp[i] = 0; |
_argc++; |
} |
|
122,7 → 128,8 |
/* Call main procedure using standard C convention */ |
/* Remember you cannot call any console I/O function */ |
/* if you do not call bios_save() */ |
|
|
|
#ifdef __DUMP_MEM__ |
message("X/MEM : %u\n",mbi->mem_upper); |
message("DOS/MEM : %u\n",mbi->mem_lower); |
129,8 → 136,8 |
message("x_bios Size : %u\n",sizeof(X_BIOSCALL)); |
message("mbi Size : %u\n",sizeof(struct multiboot_info)); |
message("Cmdline : %s\n",mbi->cmdline); |
message("Argc : %u",_argc); |
message("Argv[0] : %s / %s\n",_argv[0]); |
message("Argc : %u\n",_argc); |
message("Argv[0] : %s\n",_argv[0]); |
message("Argv[1] : %s\n",_argv[1]); |
message("Argv[2] : %s\n",_argv[2]); |
message("Argv[3] : %s\n",_argv[3]); |