YACASL2
load.c
Go to the documentation of this file.
1 #include <stdio.h>
2 #include <string.h>
3 #include <assert.h>
4 #include <stdlib.h>
5 #include <ctype.h>
6 
7 #include "word.h"
8 #include "struct.h"
9 #include "cerr.h"
10 
14 static CERR cerr_load[] = {
15  { 210, "load - memory overflow" },
16  { 211, "object file not specified" },
17  { 212, "invalid option" },
18  { 213, "invalid argument" },
19 };
20 
21 /* load.hで定義された関数群 */
23 {
25 }
26 
27 WORD loadassemble(const char *file, WORD start)
28 {
29  FILE *fp = NULL;
30  WORD end = 0;
31 
32  assert(file != NULL);
33  if((fp = fopen(file, "rb")) == NULL) {
34  perror(file);
35  return 0;
36  }
37  end = start + fread(sys->memory + start, sizeof(WORD), sys->memsize - start, fp);
38  if(end == sys->memsize) {
39  setcerr(210, file); /* load - memory overflow */
40  fprintf(stderr, "Load error - %d: %s\n", cerr->num, cerr->msg);
41  }
42  fclose(fp);
43  return end;
44 }
CERR * cerr
現在のエラー
Definition: cerr.c:9
void addcerrlist(int cerrc, CERR cerrv[])
エラーリストを作成・追加する
Definition: cerr.c:13
void setcerr(int num, const char *str)
現在のエラーを設定する
Definition: cerr.c:45
#define ARRAYSIZE(array)
配列のサイズを返すマクロ
Definition: cmem.h:14
WORD loadassemble(const char *file, WORD start)
指定されたファイルからアセンブル結果を読み込む
Definition: load.c:27
void addcerrlist_load()
アセンブル結果読み込みエラーをエラーリストに追加する
Definition: load.c:22
static CERR cerr_load[]
ファイル読み込みのエラー定義
Definition: load.c:14
SYSTEM * sys
COMET IIの仮想実行マシンシステム
Definition: struct.c:7
エラーを表すデータ型
Definition: cerr.h:15
char * msg
Definition: cerr.h:17
int num
Definition: cerr.h:16
int memsize
Definition: struct.h:48
WORD * memory
Definition: struct.h:47
unsigned short WORD
16ビットの数値を表すデータ型
Definition: word.h:9