「MOD解説/RedPower/アイテムリスト4」の編集履歴(バックアップ)一覧はこちら

MOD解説/RedPower/アイテムリスト4」の最新版変更点

追加された行は青色になります。

削除された行は赤色になります。

 &b(){[[親ページに戻る>MOD解説/RedPower]]}
 &b(){├[[【Core】【Digital】での追加ブロック&アイテム&レシピリスト>MOD解説/RedPower/アイテムリスト]]}
 &b(){├[[【Mechanical】での追加ブロック&アイテム&レシピリスト1(旧World区分)>MOD解説/RedPower/アイテムリスト2]]}
 &b(){├[[【Mechanical】【Compat】での追加ブロック&アイテム&レシピリスト2(旧Machine区分)>MOD解説/RedPower/アイテムリスト3]]}
 &b(){├【Mechanical】での追加ブロック&アイテム&レシピリスト3(旧Control区分)}
 &b(){├[[テクニック&Tips>MOD解説/RedPower/テクニック&Tips]]}
 &b(){└[[IC2と鉱石共有>MOD解説/RedPower/IC2とRP鉱石共有]]}
 ----
 ''目次''
 #contents
 ----
-**Controlで追加されるブロック・アイテム
+**【Mechanical】で追加されるブロック・アイテム(旧Control区分)
 |MIDDLE:BGCOLOR(lightgray):名前|BGCOLOR(lightgray):作り方|BGCOLOR(lightgray):説明|
 |>|>|BGCOLOR(lightgreen):&b(){本体}|
 |MIDDLE:BGCOLOR(lightblue):CPU&br()(Central Processing Unit)|CENTER:MIDDLE:BGCOLOR(lightgreen):&ref(CraftCPU.png)|MIDDLE:&b(){ダイヤブロック+木材5+レッドウェハー2+フラットケーブル}&br()電算機の頭脳である中央演算装置。&br()このrpc8/eは6502MPU用の全ての命令といくつかの拡張命令を実行できる。&br()なお起動に電力等は不要。|
 |MIDDLE:BGCOLOR(lightblue):モニター&br()(Monitor)|CENTER:MIDDLE:BGCOLOR(lightgreen):&ref(CraftMonitor.png)|MIDDLE:&b(){ライム色のLEDパウダー+木材3+ガラス3+レッドウェハー+フラットケーブル}&br()CPU用の表示装置。キーボード付き。|
 |>|>|BGCOLOR(lightgreen):&b(){周辺機器}|
 |MIDDLE:BGCOLOR(lightblue):入出力装置&br()(IO Expander)|CENTER:MIDDLE:BGCOLOR(lightgreen):&ref(CraftIOExpander.png)|MIDDLE:&b(){レッドウェハー+ケーブル束+木材6+フラットケーブル}&br()CPUに接続してケーブル束にレッドストーン信号を出力する。|
 |MIDDLE:BGCOLOR(lightblue):ディスクドライブ&br()(Disk Drive)|CENTER:MIDDLE:BGCOLOR(lightgreen):&ref(CraftDiskDrive.png)|MIDDLE:&b(){青電力モーター+木材6+レッドウェハー+フラットケーブル}&br()フロッピーディスクを入れて、プログラムを保存したり読み込んだりする。右クリックでディスクを排出する。|
 |MIDDLE:BGCOLOR(lightblue):フロッピーディスク&br()(Blank Floppy)|CENTER:MIDDLE:BGCOLOR(lightgreen):&ref(CraftBlankFloppy.png)|MIDDLE:&b(){木材7+鉄インゴット}&br()空のフロッピーディスク。&br()プログラムを保存しておける。|
 |MIDDLE:BGCOLOR(lightblue):FORTH起動ディスク&br()(FORTH Boot Disk)|CENTER:MIDDLE:BGCOLOR(lightgreen):&ref(CraftForthBootDisk.png)|MIDDLE:&b(){フロッピーディスク+レッドストーン}&br()Eloraam謹製「MineOS」の起動ディスク。インタプリタ型プログラミング言語FORTHを実行できる。&br()これだけでも約6KBのメモリを消費する。&br()スポーン部屋のチェストから見つかることもある|
 |MIDDLE:BGCOLOR(lightblue):拡張FORTHディスク&br()(Extended FORTH Disk)|CENTER:MIDDLE:BGCOLOR(lightgreen):&ref(CraftExtendedForthDisk.png)|MIDDLE:&b(){FORTH起動ディスク+レッドストーン}&br()輸送装置「Sortron」を制御するためのWORDが拡張されたFORTHディスク。&br()拡張されたためCPUの8kBのメモリでは足りず、追加メモリを最低1個は積む必要がある。|
 |MIDDLE:BGCOLOR(lightblue):フラットケーブル&br()(Ribbon Cable)|CENTER:MIDDLE:BGCOLOR(lightgreen):&ref(CraftRibbonCable.png)|MIDDLE:&b(){銅細線3}&br()CPUと周辺機器とを結ぶためのケーブル。&br()レッドストーンや青電力用のケーブル類とは直接つながらない。|
 |MIDDLE:BGCOLOR(lightblue):接続基盤&br()(Backplane)|CENTER:MIDDLE:BGCOLOR(lightgreen):&ref(CraftBackplane.png)|MIDDLE:&b(){金インゴット+銅細線2+鉄格子6}&br()メモリ増設用基盤。CPUの背面に配置しメモリとCPUとを接続する。7つ(本体とあわせて64k)まで続けて接続できる。|
 |MIDDLE:BGCOLOR(lightblue):8Kメモリ&br()(8K RAM Module)|CENTER:MIDDLE:BGCOLOR(lightgreen):&ref(Craft8KRAM.png)|MIDDLE:&b(){ダイヤモンド+レッドウェハー4+鉄格子4}&br()追加のランダムアクセスメモリ。接続基盤上に配置しなければならない。&br()全部で16bit(=64kB)のアドレス空間(0x0000~0xFFFF)を持つが、その内本体メモリは0x0000~0x1FFFに対応し、&br()0x2000以降は対応する位置に8kRAMを増設しなければ使用できない。&br()物理的に存在しないアドレスを参照した場合0xFFが返される。|
 
 ----
 **追加インターフェイス一覧
 |BGCOLOR(lightblue):インターフェイス|BGCOLOR(lightblue):説明|
 |MIDDLE:BGCOLOR(#ddccbb):&b(){CPU(Central ProcessingUnit)}&br()&ref(GuiCPU.png,,width=244)|MIDDLE:リボンケーブルで接続されたCPUと接続する周辺機器のIDを設定する。&br()DiskはディスクドライブのID、ConsoleはモニターのID。&br()左下はボタン類である。STARTは文字通り起動ボタン。ディスクが入っていればそれを読み込んで起動する。&br()HALTは停止ボタン。処理を一時停止する。&br()RESETはメモリを消去して初期状態にする。&br()無限ループでどうしようもなくなったときはHALTで止めてもSTARTすれば再開されるのでRESETを使う。|
 |MIDDLE:BGCOLOR(#ddccbb):&b(){モニター(Monitor)&br()入出力装置(IO Expander)&br()ディスクドライブ(Disk Drive)}&br()&ref(GuiBusID.png)|MIDDLE:&b()ドライバーをShift+右クリックでこのGUIが開く。&br()リボンケーブルで接続したネットワーク内でその装置を特定するためのIDを設定する。&br()IDの設定は2進数になっている。&br()モニターのIDはデフォルトで1、ディスクドライブは2、入出力装置は3になっている。|
 |MIDDLE:BGCOLOR(#ddccbb):&b(){モニター(Monitor)}&br()&ref(GuiMonitor.png,,width=244)|MIDDLE:見たままのコンソールとして機能する。&br()80文字×50行。|
 
 ----
-**Control チュートリアル
-実際の所、Controlで追加されるコンピューターにできることはレッドストーン信号の制御だけである。
-RP2はレッドストーン用の便利な回路基板を大量に追加するので、Control無しでも大抵のことはできてしまう。
+**チュートリアル
+実際の所、Mechanicalで追加されるコンピューターにできることはレッドストーン信号の制御だけである。
+RP2はレッドストーン用の便利な回路基板を大量に追加するので、コンピューター無しでも大抵のことはできてしまう。
 ComputerCraftのようにマインクラフトの世界に合わせた機能が用意されているわけでもないので、
 コンピューターで装置を動かしたいのならばプログラムだけでなく装置の設計もしなければならない。
 しかし、従来なら巨大なRS回路が必要だった複雑な処理をたったの数ブロックで行えるのはかなり便利。
 コンピューターを利用してレッドストーン回路を動かしたり装置を制御したりするためには
 プログラミングとレッドストーン(RP2のワイヤー、ケーブル含む)回路の双方への深い理解が必要になる。
 
 以下のチュートリアルは、プログラミングに関するある程度の知識があることを前提にしている。
 
 ***セットアップ
 最初に必要なのは
 -CPU
 -モニター
 -ディスクドライブ
 の3つである。フラットケーブルも場合によっては必要になる。
 |BGCOLOR(lightblue):~CPU|BGCOLOR(lightblue):~モニター|BGCOLOR(lightblue):~ディスクドライブ|BGCOLOR(lightblue):~フラットケーブル|
 |&ref(CraftCPU.png)|&ref(CraftMonitor.png)|&ref(CraftDiskDrive.png)|&ref(CraftRibbonCable.png)|
 まずはCPUと周辺機器を繋がなければいけない。
 CPUに隣接する形でモニター、ディスクドライブを設置すれば自動的に繋がってくれる。
 離して置きたい場合、フラットケーブルで繋ぐことになる。また、一つのCPUに複数のモニター等を接続したい場合にもフラットケーブルは必要になる。
 将来のことを考えるならフラットケーブルで接続しても悪くないかもしれない。
 これでハードの準備はできたが、次はソフトの準備である。
 RP2のOSであるMineOSを起動するため、FORTH起動ディスクをディスクドライブに挿入する。
 |BGCOLOR(lightblue):~FORTH起動ディスク|
 |&ref(CraftForthBootDisk.png)|
 ブートディスクを手に持ってディスクドライブを右クリックすれば読み込める。
 そうしたらCPUのSTARTボタンを押して起動しよう。モニターのコンソールに
 |BGCOLOR(black):&font(lime,b){&tt(){MineOS V1.2 Initialized &br()XXXX bytes free.}}|
 と表示されたら成功だ。
 
 ***FORTHプログラミング基礎
 「理屈はいいから早く使わせろ」という人は「レッドストーン出力をしてみる」の項目まで飛ばしてもいい。
 :スタック指向|
 RP2のコンピューターはFORTHという言語環境をエミュレートする。
 FORTHはスタック指向の言語で、他の言語とは記述法が異なるため最初は戸惑うかもしれないが、
 スタックの仕組みに慣れれば非常に単純な言語構造であることが分かるだろう。
 まず練習として、足し算をさせてみよう。2+3をFORTHのルールに従って書くと次のようになる。
 > 2 3 + .
 上記のように入力して「5」が表示されれば成功である。表示されない場合はスペースや記号に注意しよう。
 ここで数学的な表記とは順番が異なることに戸惑うかもしれない。前述したようにFORTHはスタック指向の言語である。
 「+」演算子は「スタックの一番上に積まれている2つを取り出し、加算してスタックに積む」という演算を行う。
 最後の「.」は、スタックの一番上を出力するという意味を持っている。
 まとめると、最初に2と3をスタックに積んでおき、「+」で計算して計算結果を新たにスタックに積み、最後に「.」で結果を出力したのである。
 スタック指向という性質上、計算に括弧を使う必要がない。例えば(2+3)×(4+5)を計算したいなら
 > 2 3 + 4 5 + * .
 とすればいい。計算する順番通りに書けばいいだけである。
 
 
 :WORDを使ってみる|
 WORDとは関数やサブルーチンのようなもので、あらかじめ登録されているものを使用したり、新しく自分で作ったりできる。
 「WORDS」と入力することで登録されている全てのWORDを見ることができる。
 試しに「PAGE」と入力して実行してみよう。
 PAGEは画面表示をページをめくるように一新するWORDである。
 WORDを自分で作るためには:(コロン)を使う。
 試しに「Hello World」を出力するWORDを作ってみよう。
 > : HELLO ." Hello World" ;
 これで、HELLOと入力すると「Hello World」が出力されるようになった。
 構文は次のようになっている。
 > : 名前 処理 ;
 ここでは「HELLO」という名前の「." Hello World"」という処理をするWORDを作ったというわけである。
 「WORDS」で調べれば新しく「HELLO」というWORDが登録されているのが確認できる。
 今度は引数を持つようなWORDを作ってみよう。
 例えば2つの引数の平均値を返すようなWORDを作りたいとする。
 あらかじめ積んでおいたスタックを参照して値を返すような実装をすればいい。
 > : AVERAGE + 2/ . ;
 これで次のように実行すれば平均値が返されるはずだ。
 > 10 20 AVERAGE
 せっかくWORDを作ったのだから他のコンピューターでも共有したい。
 現在の状況を保存するために、まずは空のフロッピーディスクを用意する。
 |BGCOLOR(lightblue):~フロッピーディスク|
 |&ref(CraftBlankFloppy.png)|
 起動ディスクを入れた要領で、ディスクドライブにフロッピーを入れる。
 準備ができたら、次のように入力する。
 > SAVE" HOGEHOGE"
 これでフロッピーディスクを取り出してみると、HOGEHOGEという名前に変わっている。これで保存できた。
 あとは別のコンピューターにHOGEHOGEを入れてリセットすれば環境が再現される。
 なお、このデータはセーブフォルダ内に保存されている。ワールドを超えてデータの受け渡しをしたい時は参照しよう。
 
 
 :レッドストーン出力をしてみる|
 レッドストーン信号を出力するにはもう一つ装置が必要になる。それが入出力装置(IO Expander)である。
 |BGCOLOR(lightblue):~入出力装置|
 |&ref(CraftIOExpander.png)|
 入出力装置を設置してみると、背面にソケットのようなテクスチャが見える。この面にレッドストーン用のケーブル束を接続することができる。
 あとは入出力装置とCPUを繋げばOK。
 入出力装置のバスIDはデフォルトで3である。バスID3の入出力装置と接続するためには次のように入力する。
 > 3 IOXADDR ! 
 これで準備は整った。入出力装置がケーブル束と繋がることから分かるように、コンピューターからは各色のレッドストーン信号を出力できる。
 各色の対応する値はバイナリになっている。
 |BGCOLOR(lightgray):値|BGCOLOR(lightgray):色||BGCOLOR(lightgray):値|BGCOLOR(lightgray):色|
 |1(2^0)|白||256(2^8)|ライトグレー|
 |2(2^1)|橙||512(2^9)|シアン|
 |4(2^2)|マゼンタ||1024(2^10)|紫|
 |8(2^3)|ライトブルー||2048(2^11)|青|
 |16(2^4)|黄||4096(2^12)|茶|
 |32(2^5)|ライム||8192(2^13)|緑|
 |64(2^6)|ピンク||16384(2^14)|赤|
 |128(2^7)|灰||32768(2^15)|黒|
 試しに白のケーブルに出力してみよう。白の値は「1」である。
 > 1 IOX!
 「IOX!」が入出力装置から出力するためのWORDである。
 今度は橙とマゼンタを同時に出力してみよう。
 橙とマゼンタは上の表を見るとそれぞれ2と4なので、それを足して6を出力すればいい。
 > 6 IOX!
 これで橙とマゼンタに同時に出力がされた。
 入出力装置の前面を見てみると、16ドットで現在の出力状況が表示されている。
 逆に入力情報を得るためには「IOX@」を使う。
 
 これで大体の事はできるようになった。後は下記のよく使うWORDを見ながら色々試して覚えるといい。
 
 ***よく使うWORD
 ※ここに無いWORDは[[こちら>http://integratedredstone.wikispaces.com/Forth+Dictionary]]
 |BGCOLOR(lightgray):LEFT:~WORD|BGCOLOR(lightgray):LEFT:~説明|
 |>|BGCOLOR(lightgreen):LEFT:~演算子|
 |+ - *|算術演算子。除算(/)は無いようだ。|
 |1+ 1-|インクリメント/デクリメント|
 |2* 2/|2倍する/2で割る|
 |/MOD|除算。【商】【余り】の順にスタックに積む。|
 |= < > <= >= <>|比較演算子|
 |! +! -!|代入演算子。&color(red){!による書き込みは2byte単位。}|
 |AND OR XOR|論理演算子|
 |<< U>>|ビットシフト演算子|
 |MIN MAX|スタックの上2つのうち小さい方/大きい方を返す。|
 |.|スタックの一番上を出力する。|
 |.S|スタックの内容を全て出力する。|
 |@|スタックの一番上が指しているアドレスの内容をスタックに積む。&color(red){読み込みは2byte単位。}|
 |C@, C!|@, !の1byte version|
 |0SP|スタックを空にする|
 |>|BGCOLOR(lightgreen):LEFT:~WORD定義関連|
 |VARIABLE 名前|変数を定義する。変数はそのまま使うとアドレスが返されるので値を参照したい場合は@を使う。|
 |値 CONSTANT 名前|定数を定義する。|
 |: 名前 処理 ;|WORD定義。処理の部分では改行してもいい。|
 |FORGET <WORD>|指定したWORDを消す。&color(red){それ以後に定義されたWORDも消える。}|
 |." 文字列"|文字列を出力する。|
 |CR|行頭復帰(改行)|
 |条件文 IF 真の処理 THEN&br()条件文 IF 真の処理 ELSE 偽の処理 THEN|IF構文。コロン定義の中でしか使えない。語順に注意。&br()入れ子にもできる。|
 |ループ回数 初期値 DO 処理 LOOP|ループ構文。同上。|
 |BEGIN 条件文 WHILE 処理 REPEAT|不定ループ。カウンタやアンループは使えない。|
 |BEGIN 処理 AGAIN|無限ループ。脱出にはEXITを使う。|
 |I J|ループのカウンタ。CONSTANT。Iは直近のループに、Jは一つ上の階層のループに対応。|
 |UNLOOP|ループを一つ解放する。ループを抜ける訳ではない事に注意。必ずEXITを伴う。ループの途中で終了する場合、全てのループを解放してからEXITする事。|
 |EXIT|WORDで定義されたプロセスを抜ける。|
 |>|BGCOLOR(lightgreen):LEFT:~メモリ操作関連|
 |FREE|使用可能なメモリの残りbyte数を返す。|
 |HERE|新しいコードや変数が次に保存される番地を返す。|
 |CELL|一変数のサイズを返す。現状では2byte。|
 |値 CELLS|一変数×値のサイズを返す。現状では2*と同じ。|
 |CREATE|CREATE foo n ALLOTの形で使う。fooという名のn byte配列を確保。n ALLOT CONSTANT fooと同じ?|
 |値 ALLOT |指定した値のbyte数のメモリを確保し、先頭の番地を返す。メモリが足りないとエラー。実質HEREの値が確保byte分増えるだけ。|
 |番地 n b FILL|指定した番地からn byteをb(byte値)で埋める。ALLOTと併せて使いたい。|
 |番地1 番地2 n MOVE|番地1から番地2にn byte分コピー。|
 |>|BGCOLOR(lightgreen):LEFT:~ターミナル操作関連|
 |b EMIT|与えられた[[ASCIIコード>http://e-words.jp/p/r-ascii.html]]の文字を現在のカーソル位置に出力。|
 |KEY?|何かキーが押されていればTRUEそうでなければFALSEを返す。|
 |KEY|キーが押されるまで待機、押されたキーのASCIIコードを返す。|
 |番地 n ACCEPT|n-1文字の入力を受け付け指定した番地からn byte書き込む。再び番地を返す。n byte目は0で終端。|
 |番地 TYPE|番地にある文字列(0で終端されるまで)を端末に出力。|
 |>|BGCOLOR(lightgreen):LEFT:~レッドストーン入出力関連|
 |IOXADDR|接続する入出力装置のバスID|
 |値 IOX!|入出力装置の出力を設定する。|
 |IOX@|入出力装置への入力を返す。|
 |値 IOXSET|指定した値の出力をオンにする。|
 |値 IOXRST|指定した値の出力をオフにする。|
 |>|BGCOLOR(lightgreen):LEFT:~その他|
 |PAGE|画面表示リセット。|
 |SAVE" 名前"|空のフロッピーに新しく作った定義を保存する。|
 |数値 TICKS|(数値)tickの間、何もせず待機する。1tick=1/20秒。|
 |回数 TIMES コマンド|コマンド(WORD)を指定回数分だけ繰り返す。|
 
 &font(b,u){◆Sortronについて}
 pre6で追加されたアイテム輸送関連の装置で、入出力装置のようにCPUによって操作できる。
 Sortron関連のWORDはデフォルトのFORTHには収録されておらず、拡張FORTHディスクを作製する必要がある。
 |BGCOLOR(lightblue):~拡張FORTHディスク|
 |&ref(CraftExtendedForthDisk.png)|
 使用するには入出力装置同様、フラットケーブルで接続しバスIDを指定する必要がある。なおデフォルトではバスID:4になっている。
 SortronをCPUで操作するにはそれなりのメモリが要求されるため、最低でも1個、余裕を持って2個以上の追加メモリを設置しておくことが推奨される。
 また、Sortronはそれに加えて''青電力''を供給してやる必要がある。
 Sortronは基本的には配送器と同じく、基本的にはチェストに隣接させて使うが気送管の途中に設置することもできる。
 |BGCOLOR(lightgray):~拡張WORD|BGCOLOR(lightgray):~説明|
 |SORTADDR|接続するSortronのバスID|
 |スロット位置 SORTSLOT@|Sortronに隣接するチェストの指定スロット位置のアイテム情報をスタックに積む|
 |>|BGCOLOR(lightgreen):~搬出関連|
 |数 スロット位置 SORTPULL|隣接チェストの指定スロットにあるアイテムを指定数搬出する|
 |色コード SORTCOLOR!|Sortronによる搬出アイテムのラベル色を指定する|
 |>|BGCOLOR(lightgreen):~搬入関連|
 |SORTCOLOR@|Sortronによる搬出アイテムのラベル色コードをスタックに積む|
 |数 SORTMATCH|Sortronが指定数以上のアイテムを受け付けなくなる|
 |色コード SORTINCOL!|Sortronが受け入れるラベル色を指定する|
 |SORTINCOL@|Sortronが受け入れるラベル色コードをスタックに積む|
 |アイテムハッシュ SORTPAT!|Sortronが受け入れるアイテムIDを指定する|
 |SORTPAT!|Sortronが受け入れるアイテムハッシュをスタックに積む|
 スロット位置はGUIで左上のスロットが0、そこから右に向かって1,2,3...となっている。
 複雑なGUIを持つブロック(かまどなど)の場合、どこが何番か分かりにくいので事前にチェックしておこう。
 SORTSLOT@によってスタックに積まれる情報は【アイテムハッシュ(前半)】【アイテムハッシュ(後半)】【スタック数】の順に3スタック積まれる。
 SORTPAT!に渡す値はこの二つの数を両方使用する。
 ここで利用されるアイテムIDはコンフィグ等で設定されるIDではなく、環境に依存する''ハッシュコード値''を利用する。
 そのため、例えばここに'1'を代入しても石を指定することはできない。
 これらのWORDを使用するためには予めSORTSLOT@でこのハッシュコードを知っておく必要がある。
 
 ***サンプルプログラム
 &color(red){スペース忘れに注意。}
 ただし読みやすさのために行頭につけているインデントは省略可。
 :パスワードドア|
 レバーで正しい組み合わせをONにして成否判定ボタンを押すとドアが開くプログラム。
 黒ケーブルを出力としてドアにつなぎ、
 緑ケーブルをパスワードの成否判定を実行するボタンに繋ぐ。
 赤ケーブルはパスワードリセットボタンに繋ぎ、押すと現在の入力状況が新しくパスワードとして設定される。
 その他の白~茶の13色はパスワード入力用に使用できる(2^13=8192通り)。
 なお閉じる場合はわざと間違って成否判定すればいい。
 > 1 15 << CONSTANT door
 > 1 14 << CONSTANT reset
 > 1 13 << CONSTANT check
 > 1 13 << 1- CONSTANT input
 > VARIABLE pass
 > 
 > : PASSWORD
 > BEGIN
 > IOX@ check AND IF
 >    CR ." PASSWORD CHECK: "
 >    IOX@ input AND pass @ = IF
 >       ." SUCCEED!" door IOXSET
 >    ELSE ." FAILED!" door IOXRST THEN
 > ELSE 
 >    IOX@ reset AND IF
 >       IOX@ input AND pass !
 >       CR ." PASSWORD HAS CHANGED! NEW PASS: " pass @ .
 >    THEN
 > THEN
 > AGAIN
 > ;
 解説
 #region
 (カッコ内にソースでの該当WORDを示す)
 -黒ケーブルの状態を表す値(1 15 <<)を定数doorとする(CONSTANT door)。
 -赤ケーブルの状態を表す値(1 14 <<)を定数resetとする(CONSTANT reset)。
 -緑ケーブルの状態を表す値(1 13 <<)を定数checkとする(CONSTANT check)。
 -白~茶ケーブルの状態を表す値(1 13 << 1-)を定数inputとする(CONSTANT input)。
 --※10 0000 0000 0000b《緑ケーブル》 - 1 = 1 1111 1111 1111b《白~茶ケーブル》
 -変数passを用意する(VARIABLE pass)。
 -WORD「PASSWORD」の定義を開始(: PASSWORD)。
 --ループを開始(BEGIN)。
 ---もしも、ケーブル入力(IOX@)の緑ケーブル(check)が(AND)ONだったら(IF)、《*1》
 ----改行(CR)して「PASSWORD CHECK:」と表示(." PASSWORD CHECK: ")して、
 ----更にもしも、ケーブル入力(IOX@)の白~茶ケーブル(input)が(AND)変数pass(pass)の値(@)と等しい(=)なら(IF)、
 -----「SUCCEED!」と表示(." SUCCEED!")して黒ケーブル(door)をONに(IOXSET)する。
 ----等しくないなら(ELSE)、「FAILED!」と表示(." FAILED!")して黒ケーブル(door)をOFFに(IOXRST)する。
 ----(THEN)
 ---《*1から》ケーブル入力の緑ケーブルがOFFだったら(ELSE)、
 ----更にもしも、ケーブル入力(IOX@)の赤ケーブル(reset)が(AND)ONだったら(IF)、
 -----ケーブル入力(IOX@)の白~茶ケーブル(input)の(AND)状態を変数pass(pass)へ代入(!)し、
 -----改行(CR)して「PASSWORD HAS CHANGED! NEW PASS:」と表示(." PASSWORD HAS CHANGED! NEW PASS: ")して、変数pass(pass)の値(@)を表示(.)する。
 ----(THEN)
 ---(THEN)
 --ループ。BEGINへ戻る(AGAIN)
 -WORD定義終了(;)。
 #endregion
 
 :11セグメント4bitデコーダ|
 4bit(=16通り)の入力を11bitの信号に変換して表示装置に出力するプログラム。出力は0123456789ABCDEFの16通り。白(2^0)からマゼンダ(2^3)までの4bitを入力、黄(2^4)から赤(2^14)までの11bitを出力、残りの黒(2^15)はオンオフ入力として使う。
 各セグメントの配置は図の通り(正面から見た図)
 |COLOR(brown): 2^12 |COLOR(green): 2^13|COLOR(green): 2^13 |COLOR(red): 2^14|
 |COLOR(purple): 2^10|||COLOR(blue): 2^11|
 |COLOR(purple): 2^10|||COLOR(blue): 2^11|
 ||COLOR(cyan): 2^9|COLOR(cyan): 2^9||
 |COLOR(gray):2^7|||COLOR(lightgray): 2^8|
 |COLOR(gray):2^7|||COLOR(lightgray):2^8|
 |COLOR(yellow): 2^4 |COLOR(lime): 2^5|COLOR(lime): 2^5 |COLOR(pink): 2^6|
 黒ケーブルから入力がある限り4bit入力に対応する出力を表示装置に表示し続ける。
 ※形が好みでなかったり、違うものを出力させたい場合はエクセル等の表計算ソフトを使えば出力の値は簡単に計算できる。
  例えば'1'は 2^6+2^8+2^11+2^14=18752となる。
 > CREATE table 16 CELLS ALLOT
 > : 4BITDEC
 >  CR .” Initializing...”
 >  11680 table  0 CELLS + !
 >  18752 table  1 CELLS + !
 >  10992 table  2 CELLS + !
 >  11040 table  3 CELLS + !
 >  24384 table  4 CELLS + !
 >  30512 table  5 CELLS + !
 >  10144 table  6 CELLS + !
 >  32064 table  7 CELLS + !
 >  12192 table  8 CELLS + !
 >  12064 table  9 CELLS + !
 >  12240 table 10 CELLS + !
 >  16304 table 11 CELLS + !
 >  25824 table 12 CELLS + !
 >  15792 table 13 CELLS + !
 >  30448 table 14 CELLS + !
 >  30352 table 15 CELLS + !
 >  CR .” Begin decoding...”
 >  BEGIN
 >    IOX@ 1 << 15 AND IF
 >      table IOX@ 15 AND CELLS + @ IOX!
 >    ELSE 0 IOX! THEN 
 >  AGAIN ;
 解説
 #region
 - メモリ上に32byte(=16 x 2byte)を確保し、先頭の番地をtableと定義する。CELLSは2*と同じ。(CREATE table 16 CELLS ALLOT)
 - 確保したメモリに対応する出力(1,2,...,F)を格納。根気よく入力。(11680 table  0 CELLS + ! ...)
 - 黒入力が有った場合のみ出力。( IOX@ 1 << 15 AND IF)
 - 実質的に何かやってるコードはここだけ。15は入力マスク。入力値(掛ける2)をtableに足した番地のデータを出力。(  table IOX@ 15 AND CELLS + @ IOX!)
 - 黒入力が無ければ何も出力しない(ELSE 0 IOX! THEN )
 #endregion
 ----
 **コメント
 >&color(red){コメント欄の運営・編集方針に関しては[[コメント欄方針]]を参照してください。}
 >このコメント欄はwikiの情報充実のため、追記がしやすいよう設けた物なので、編集が苦手な方は以下のコメントフォームへ書き込んで頂ければ有志でページに取り込みます。
 >&b(){編集に関わらない質問は一切受け付けておらず、一律して削除されます。}
 >注意書きをよく読んだ上で、[[質問掲示板]]または[[非公式日本ユーザーフォーラム>http://forum.minecraftuser.jp/]]をご利用ください。
 >Wikiの運営に関連する話は[[Wiki運営掲示板]]、雑談等は[[非公式日本ユーザーフォーラム>http://forum.minecraftuser.jp/]]にてお願いします。
 >&color(red){表示される親コメントには限りがあるので、返信の際は返信したいコメント横のチェックを付けて返信するようご協力お願いします。}
 #pcomment(reply,enableurl,10,MOD解説/RedPower/アイテムリスト4/コメント)