root/src/load.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. addcerrlist_load
  2. loadassemble

   1 #include "load.h"
   2 
   3 
   4 /**
   5  * @brief ファイル読み込みのエラー定義
   6  */
   7 static CERR cerr_load[] = {
   8     { 210, "load - memory overflow" },
   9     { 211, "object file not specified" },
  10     { 212, "invalid option" },
  11     { 213, "invalid argument" },
  12 };
  13 
  14 /* load.hで定義された関数群 */
  15 void addcerrlist_load()
  16 {
  17     addcerrlist(ARRAYSIZE(cerr_load), cerr_load);
  18 }
  19 
  20 WORD loadassemble(const char *file, WORD start)
  21 {
  22     FILE *fp = NULL;
  23     WORD end = 0;
  24 
  25     assert(file != NULL);
  26     if((fp = fopen(file, "rb")) == NULL) {
  27         perror(file);
  28         return 0;
  29     }
  30     end = start + fread(sys->memory + start, sizeof(WORD), sys->memsize - start, fp);
  31     if(end == sys->memsize) {
  32         setcerr(210, file);    /* load - memory overflow */
  33         fprintf(stderr, "Load error - %d: %s\n", cerr->num, cerr->msg);
  34     }
  35     fclose(fp);
  36     return end;
  37 }

/* [<][>][^][v][top][bottom][index][help] */