X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=include%2Fassemble.h;h=7c6b347a0739cf496a6756f11f5187b91fd19727;hp=ae746fd1eb593b093cc997529ec2fc25bed0ed54;hb=2b0ff8e75f11c5fb58e16e95d8195d6f1252c97c;hpb=ed3225328d7bc0d718fc97dd0b05692b7287667b diff --git a/include/assemble.h b/include/assemble.h index ae746fd..7c6b347 100644 --- a/include/assemble.h +++ b/include/assemble.h @@ -1,13 +1,16 @@ #ifndef YACASL2_ASSEMBLE_INCLUDED #define YACASL2_ASSEMBLE_INCLUDED -/* CASL IIの制限 */ +/* CASL IIの仕様 */ +enum { + LABELSIZE = 8, /* ラベルの最大文字数 */ + OPDSIZE = 40, /* オペラントの最大数。CASL IIシミュレータの制限 */ +}; + +/* YACASL2の制限 */ enum { LINESIZE = 1024, /* 行の最大文字数 */ TOKENSIZE = 256, /* トークンの最大文字数 */ - LABELSIZE = 8, /* ラベルの最大文字数 */ - LABELTABSIZE = 256, /* ラベルの最大数 */ - OPDSIZE = 40, /* オペラントの最大数 */ }; /* アセンブルモード */ @@ -49,6 +52,13 @@ typedef struct { char *cmd; } CMDARRAY; +/* ラベル配列 */ +typedef struct { + char *prog; + char *label; + WORD adr; +} LABELARRAY; + /* ラベル表 */ typedef struct _LABELTAB { struct _LABELTAB *next; @@ -57,6 +67,10 @@ typedef struct _LABELTAB { WORD adr; } LABELTAB; +enum { + LABELTABSIZE = 251, /* ラベル表のサイズ */ +}; + /* アセンブラが、1回目か、2回目か、を表す */ typedef enum { FIRST = 0,