X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=include%2Fcasl2.h;h=e68a24e238a17b39ce6f1e9b527c7a333392e3e6;hp=70e25c5f9bdba22217a27fecd1476fed97a568d9;hb=295dbb72582804dbceaa8078c1abe574c9772002;hpb=b4e48008c95b35c692827326191698c22b06124f diff --git a/include/casl2.h b/include/casl2.h index 70e25c5..e68a24e 100644 --- a/include/casl2.h +++ b/include/casl2.h @@ -13,8 +13,8 @@ enum { CMDSIZE = 4, /* 命令の最大文字数 */ REGSIZE = 8, /* 汎用レジスタの数 */ - MEMSIZE = 512, /* メモリ容量。COMET II規格では、65536語 */ - CLOCKS = 5000000 /* クロック周波数。COMET II規格では、未定義 */ + DEFAULT_MEMSIZE = 512, /* デフォルトのメモリ容量。COMET II規格では、65536語 */ + DEFAULT_CLOCKS = 5000000, /* デフォルトのクロック周波数。COMET II規格では、未定義 */ }; /* ハッシュ値を取得する */ @@ -24,7 +24,7 @@ unsigned hash(const char *key, int size); typedef unsigned short WORD; /* COMET IIのメモリ */ -extern WORD memory[MEMSIZE]; +extern WORD *memory; /* COMET IIのCPUレジスタ */ extern WORD GR[REGSIZE], SP, PR, FR; @@ -33,7 +33,7 @@ extern WORD GR[REGSIZE], SP, PR, FR; enum { OF = 0x4, /* Overflow Flag */ SF = 0x2, /* Sign Flag */ - ZF = 0x1 /* Zero Flag */ + ZF = 0x1, /* Zero Flag */ }; /* エラー番号 */ @@ -57,12 +57,21 @@ extern bool srcmode; /* ラベル表を表示する場合はTRUE */ extern bool labelmode; +/* ラベル表を表示して終了する場合はTRUE */ +extern bool onlylabelmode; + /* アセンブラ詳細結果を表示するならTRUE */ extern bool asdetailmode; /* アセンブルだけを行う場合はTRUE */ extern bool onlyassemblemode; +/* メモリーサイズ */ +extern int memsize; + +/* クロック周波数 */ +extern int clocks; + /* 実行開始番地 */ extern WORD startptr; @@ -85,7 +94,7 @@ typedef enum { R1_R2 = 020, ADR_X = 030, R_ = 040, - NONE = 0 + NONE = 0, } CMDTYPE; typedef struct { @@ -146,3 +155,12 @@ void freecerr(); /* 指定されたファイルにアセンブル結果を書込 */ void outassemble(char *file); + +/* WORD値を2進数表記に変換 */ +char *word2bit(const WORD word); + +/* COMET IIのメモリを表示 */ +void dumpmemory(); + +/* COMET IIのレジスタを表示 */ +void dspregister();