1. システムCOMETIIの仕様

1.1 ハードウェアの仕様

(1)1語は16ビットで、そのビット構成は、次のとおりである。

(2)主記憶の容量は65536語で、そのアドレスはO~65535番地である。
(3)数値は、16ビットの2進数で表現する。負数は、2の補数で表現する。
(4)制御方式は逐次制御で、命令語は1語長又は2語長である。
(5)レジスタとして、GR(16ビット)、SP(16ビット)、PR(16ビット)、FR(3ビット)の4種類がある。

 GR(汎用レジスタ、General Register)は、GRO~GR7の8個があり、算術、論理、比較、シフトなどの演算に用いる。このうち、GR1~GR7のレジスタは、指標レジスタ(index register)としてアドレスの修飾にも用いる。
 SP(スタックポインタ、Stack Pointer)は、スタックの最上段のアドレスを保持している。
 PR(プログラムレジスタ、Program Register)は、次に実行すべき命令語の先頭アドレスを保持している。
 FR(フラグレジスタ、Flag Register)は、OF(Overflow Flag)、SF(Sign Flag)、ZF(Zero Flag)と呼ぶ3個のビットからなり、演算命令などの実行によって次の値が設定される。これらの値は、条件付き分岐命令で参照される。

(6)論理加算又は論理減算は、被演算データを符号のない数値とみなして、加算又は滅算する。

1.2 命令

 命令の形式及びその機能を示す。ここで、一つの命令コードに対し2種類のオペラントがある場合、上段はレジス夕間の命令、下段はレジスタと主記憶間の命令を表す。

2. アセンブラ言語CASLIIの仕様

2.1 言語の仕様

(1)CASLIIは、COMETIIのためのアセンブラ言語である。
(2)プログラムは、命令行及び注釈行からなる。
(3)1命令は1命令行で記述し、次の行へ継続できない。
(4)命令行及び注釈行は、次に示す記述の形式で、行の1文字目から記述する。

2.2 命令の種類

 命令は、4種類のアセンブラ命令(START、END、DS、DC)、4種類のマクロ命令(IN、OUT、RPUSH、RPOP)及び機械語命令(COMETIIの命令)からなる。その仕様を次に示す。

2.3 アセンブラ命令

 アセンブラ命令は、アセンブラの制御などを行う。

2.5 機械語命令

 機械語命令のオペランドは、次の形式で記述する。

3. プログラム実行の手引

3.1 OS

 プログラムの実行に関して、次の取決めがある。

(1)アセンブラは、未定義ラベル(オペランド欄に記述されたラベルのうち、そのプログラム内で定義されていないラベル)を、他のプログラムの入口名(START命令のラベル)と解釈する。この場合、アセンブラはアドレスの決定を保留し、その決定をOSに任せる。OSは、実行に先立って他のプログラムの入口名との連係処理を行いアドレスを決定する(プログラムの連係)。
(2)プログラムは、OSによって起動される。プログラムがロードされる主記憶の領域は不定とするが、プログラム中のラベルに対応するアドレス値は、OSによって実アドレスに補正されるものとする。
(3)プログラムの起動時に、OSはプログラム用に十分な容量のスタック領域を確保し、その最後のアドレスに1を加算した値をSPに設定する。
(4)OSは、CALL命令でプログラムに制御を渡す。プログラムを終了しOSに制御を戻すときは、RET命令を使用する。
(5)IN命令に対応する入力装置、OUT命令に対応する出力装置の割当ては、プログラムの実行に先立って利用者が行う。
(6)OSは、入出力装置や媒体による入出力手続の違いを吸収し、システムでの標準の形式及び手続(異常処理を含む)で入出力を行う。したがって、IN、OU丁命令では、入出力装置の違いを意識する必要はない。

3.2 未定義事項

 プログラムの実行等に関し、この仕様で定義しない事項は、処理系によるものとする。