後期TX-0命令

目次

最初の拡張

次の拡張大規模拡張案

決定された拡張案

レジスタの追加命令の増加メモリの増加opr 命令フィールドの再編

詳細な命令

Store Class 命令Add Class 命令Transfer Class 命令Operate Class 命令


Operate Class 命令

opr 命令は、相変わらず「先頭 2bit が 11」であり、他の命令のように 5bit には拡張されていません。

もちろん、「アドレス部分の機能を実行する」のアドレス部分も、16bit のままです。


1960 年の大改造では、互換性を保ったまま拡張が行われていましたが、その後互換性を失っても将来性を得る、という改造が行われています。

ここでは、他の命令と同じく、1966年9月の文書を元にした、互換性のないものを紹介します。


互換性を保ったまま改造された状態も、なかなか巧妙で美しいのですが、それはまた後日お話します。


--- -00 100 --- --- --- sel# SELect
--- -11 001 --- --- --- cll* Clear Left
--- -11 010 --- --- --- clr* Clear Right
--- 1-- --- --- --- --- amb* AC -> MBR
--1 --- --- --- --- --- cla# CLear AC
--- -01 000 --- --- --- EX0# EXternal 0
--- -01 001 --- --- --- EX1# EXternal 1
 :   :   :   :   :   :    :      :
--- -01 111 --- --- --- EX7# EXternal 7
--- -10 000 --- --- --- cpy# CoPY
--- -10 111 --- --- --- p7h  Punch 7th Hole
--- -10 110 --- --- --- p6h  Punch 6th Hole
--- -10 100 --- --- --- prt  PriNT character
--- -10 001 --- --- --- r1l  Read 1 Line
--- -10 011 --- --- --- r3l  Read 3 Line
--- -10 010 --- --- --- dis  DISplay
--- -00 001 --- --- --- tac* TAC or AC -> AC
--- -00 011 --- --- --- pen* read light PEN 1 and 2
--- -00 010 --- --- --- tbr* TBR -> MBR
--- -00 110 --- --- --- rpf# MBR -> PFR
--- --- --- 0x1 --- --- xmb# XR -> MBR
--- --- --- --- 1-- --- com  COMpliment
--- --- --- --- --- 111 anb# LR and MBR -> MBR
--- --- --- --- --- 101 orb# LR or MBR -> MBR
--- --- --- --- --- 01x lmb? LR -> MBR
--- --- --- 01x --- --- mbl? MBR -> LR
--- --- --- --- -1- --- pad  Partial ADd
--- -00 111 --- --- --- spf# PFR -> MBR
--- --- --- 100 --- --- shr  SHfit Right
--- --- --- 110 --- --- cyr  CYcle Right
--- --- --- --- --1 --- cry  Partial ADd CaRrY
--- --- --- --- --- 0x1 mbx* MBR -> XR
--- -11 000 --- --- --- hlt? HaLT

3文字のニーモニックの後ろについた記号は、初期の機能との違いを表しています。

何もついていない機能は、基本的には機能・ビットフィールド共にオリジナルと変わっていません。

(ニーモニックや、実行順序などが変更されている場合はあります)

* が付いたものは、オリジナルにもあった機能ですが、ビットフィールドが変更されました。

# が付いたものは、新しい機能です。当然ビットフィールドも新規に作られています。

? が付いたものは、基本的にオリジナルと変わらないのですが、微妙にビットフィールドの構成が変わっています。そのまま動くかもしれませんし、調整が必要かもしれません。


基本的には、調整はあっても機能はすべて残されています。

ただ唯一の例外が iosです。


ios は、周辺機器アクセスのために TX-0 を止める機能で、bit 4 を使っていました。

再編されたビットフィールドでは、bit 4 を含むフィールドを周辺機器アクセス用に割り当てられています。

そのため、ios は明示的ではなくなりましたが、bit 4,5 のいずれか片方が 1 の場合は、TX-0は停止します。




ビットフィールドに x と書かれた個所は、0 でも 1 でも動作します。

ここ、微妙な問題です。たとえば xmb mbl shr syr の4命令は同じビットフィールドですが、 xmb と mbl は同時に実行可能です。しかし、shr と syr は、他の命令と一緒に実行できません。


ところで、今書いた mbl 命令と lmb 命令は、類似命令(動作がちょうど逆)なのに、違うフィールドに割り振られています。この命令だけ特例で、「同時に指定すると、LR と MBR の内容を入れ替える」という動作をするためです。






では、新たに追加された機能をざっと説明しましょう。


レジスタ操作

rpfRead PFrPFRをMBRに ORコピー
spfSet PFrMBRをPFRにコピー
xmbXr -> MBrXRをMBRにコピー
mbxMBr -> XrMBRをXRにコピー
anbANd lr,mBrLRをMBRに ANDコピー
orbOR lr,mBrLRをMBRに ORコピー
tbrTBR or mbrTBRをMBRに ORコピー

インデックスレジスタ(XR)とプログラムフラグレジスタ(PFR)が新設されたため、レジスタ操作機能が増えています。


OR コピーと書いたものは、コピー先のレジスタの内容と OR したものが残る、と言う意味です。

AND コピーも同様。


PFR は「フラグ」と名付けられていますが、現代のフラグレジスタのように、条件分岐で使用されるわけではありません。

どうやら、プログラム中でなんらかの「状態」を示すのに使った様子。具体的には、呼び出したサブルーチン側でセットし、サブルーチンから戻った後でメイン側で「正しく終了したのか、エラーだったのか」などを把握するのに使ったようです。

複数のビットを順次立てていく、ということもよく行われたため、読み込む場合は「新たな状態との論理和」が取られるようになっているのでしょう。


AND と OR は、1959年5月の改造の際から、さらに改造されています。

元は AC と LR で演算を行って、LR に結果を残していました。

それが、LR と MBR で演算を行い、MBR に残すようになっています。


tbr は以前からある命令ですが、動作が調整され、tac と同じになりました。

以前は tac は ORコピーでしたが、tbr は通常のコピーでした。


テープ機器操作

selSELect機能を選択
cpyCoPYデータの読み書き

新たに接続された、磁気テープドライブを制御する機能です。


sel 機能でアクセス方法などを指示し、cpy 機能で実際のアクセスを行います。

cpy では、LR レジスタを使用し 18bit 単位で読み書きを行います。


sel での方法指定などの詳細は省きます(興味がある方は、テープドライブのプログラミング・マニュアルをご覧ください)。


注意が必要なのは、sel 機能を使用すると、それ以外の機能のビットがすべて無効になることです。

そして、sel を指定するのに必要な 5bit 以外は、sel の機能指定に使用されます。


周辺機器操作

ex0~7EXternal 0~7周辺機器のアクセス

オリジナルで使用していた機器以外に、ユーザーが自由に周辺機器を接続できるようになりました。

機能の詳細は周辺機器に依存しますので、説明はできません。



以上で、すべての追加機能の説明は終わりです。

初期の頃と同じように、増加した opr 機能を組み合わせて「よく使われる」擬似命令も作られているのですが…

ただでさえ量が増えているので、この組み合わせを紹介すると大変なことになります。

参考資料は提示しておきますので、興味のある方は自分で調べてみてください。


もう一回…次回は TX-0 の話から少し離れた落穂ひろい。NOP命令についてです。



参考文献
NEW ORDERS FOR TX-0E. W. Pughe, Jr.1959MIT
NEW ORDERS - LLR - SLRE. W. Pughe, Jr.1959MIT
Proposed Revision of the TX-0 Operate CommandJ. B. Dennis1959MIT
Proposed Alterations of the TX-0 Operate InstructionJ. B. Dennis1959MIT
A PROPOSED TAPE SYSTEM FOR THE TX-0C. G. Bell1960MIT
A MORE POWERFUL OREDER CODE FOR THE TX-0Jack B. Dennis1960MIT
PROGRAMMING FOR THE MAGNETIC TAPE SYSTEM1960MIT
(No Title:To TX-0 Users)J. B. Dennis1960MIT
THE FUTURE TX-0 INSTRUCTION CODEJ. B. Dennis1960MIT
THE TX-0 INSTRUCTION CODE1960MIT
TX-0 INSTRUCTION CODE1961MIT
THE MIDAS ASSEMBLY PROGRAM1962MIT
THE TX-0 INSTRUCTION CODE1965MIT
THE TX-0 INSTRUCTION CODE1966MIT
その他、WEB上の各種ページ


前ページ 1 2 3

(ページ作成 2013-06-27)

前記事:初期TX-0命令     戻る     次記事:NOP 命令の誕生
トップページへ

-- share --

1000

-- follow --




- Reverse Link -