>>556
細かいことだけど、_sys_printf("xxx%"); とかやられると、ちょっとうれしく
ないことが起こる。また、現状の版では "%" を出力したい時は
_sys_printf("%s", "%"); とやるしかないので...

 for (int i = 0; format[i] != '\0'; i++) {
  if (format[i] == '%') {
   i++;
   switch (format[i]) {
   case 's':
    _sysPrint((char *)*list);
    ((char**)list) += 1;
    break;
   case 'd':
    _sysPrintInt((int)*list);
    ((int*)list) += 1;
    break;
>   case '%':
>    _sysPutCharacter('%');
>    break;
>   case '\0':
>    i--;
>    break;
  }
 } else {
  _sysPutCharcter(format[i]);
 }
}

とかすれば、どうでしょうか ?