X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=include%2Fcasl2.h;h=c269710a9eda9319cd5048a3fdb2c67f13f20c41;hp=65d28701b9d8917ccf254e7f4b44e61498726e70;hb=e07b6371cc8a59c6793a895e968ff2c6cf28181b;hpb=fd17e19672d6df5bdde0568e29ef7c462429735c diff --git a/include/casl2.h b/include/casl2.h index 65d2870..c269710 100644 --- a/include/casl2.h +++ b/include/casl2.h @@ -1,28 +1,30 @@ +#ifndef YACASL2_CASL2_INCLUDED +#define YACASL2_CASL2_INCLUDED + #include -#include -#include #include -#include -#include #include #include +#include +#include +#include +#include "word.h" +#include "hash.h" +#include "cerr.h" + +#ifndef ARRAYSIZE #define ARRAYSIZE(array) (sizeof(array)/sizeof(array[0])) +#endif /* COMET IIの規格 */ enum { CMDSIZE = 4, /* 命令の最大文字数 */ REGSIZE = 8, /* 汎用レジスタの数 */ DEFAULT_MEMSIZE = 512, /* デフォルトのメモリ容量。COMET II規格では、65536語 */ - DEFAULT_CLOCKS = 5000000 /* デフォルトのクロック周波数。COMET II規格では、未定義 */ + DEFAULT_CLOCKS = 5000000, /* デフォルトのクロック周波数。COMET II規格では、未定義 */ }; -/* ハッシュ値を取得する */ -unsigned hash(const char *key, int size); - -/* COMET IIの基本データサイズ */ -typedef unsigned short WORD; - /* COMET IIのメモリ */ extern WORD *memory; @@ -33,15 +35,9 @@ extern WORD GR[REGSIZE], SP, PR, FR; enum { OF = 0x4, /* Overflow Flag */ SF = 0x2, /* Sign Flag */ - ZF = 0x1 /* Zero Flag */ + ZF = 0x1, /* Zero Flag */ }; -/* エラー番号 */ -extern int cerrno; - -/* エラーメッセージ */ -extern char *cerrmsg; - /* レジストリの内容を表示する場合はTRUE */ extern bool tracemode; @@ -94,7 +90,7 @@ typedef enum { R1_R2 = 020, ADR_X = 030, R_ = 040, - NONE = 0 + NONE = 0, } CMDTYPE; typedef struct { @@ -141,26 +137,7 @@ void print_code_type(); /* 命令コードがキーのハッシュ表を解放する */ void free_code_type(); -/* エラー番号とエラーメッセージを設定 */ -void setcerr(int num, const char *val); - -/* エラー番号からメッセージを返す */ -char *getcerrmsg(int num); - -/* WORD値を文字列に変換 */ -char *wtoa(WORD word); - -/* エラーを解放する */ -void freecerr(); - /* 指定されたファイルにアセンブル結果を書込 */ void outassemble(char *file); -/* WORD値を2進数表記に変換 */ -char *word2bit(const WORD word); - -/* COMET IIのメモリを表示 */ -void dumpmemory(); - -/* COMET IIのレジスタを表示 */ -void dspregister(); +#endif