パスワードを忘れた? アカウント作成

chocopaさんのトモダチの日記みんなの日記も見てね。 みんなの日記はここから一覧を見ることができます。

813345 journal
日記

chocopaの日記: 新言語 Dart 発表。

日記 by chocopa

またバイク遊びに火が着いてオリジナルCPUの開発が止まっているchocopaです。^^;;;

GoogleのJavaScriptをガラガラポンする言語 Dartが発表されます。
めんどくさいので、自分のつぶやきをまるごと転載。^^;;;;

Google's Dart Teamのツイッターアカウント @dart_lang が作られたようです^^  https://twitter.com/#!/dart_lang  現在、フォロー数178。 Dartの仕様は今日公表されます^^

本日、16:01 よりDartの基調講演があります。^^ http://dartinside.com/2011/live-from-dart-launch/

Google'sのニュース・情報・リソースのツイッターアカウント @DartInside が作られました。^^  https://twitter.com/#!/DartInside  現在、フォロー数101。 Dartの仕様は今日、日本時間16:01公表されます^^

348640 journal

chocopaの日記: 「ロボットの起源」 ALUとCPU開発者たち 1

日記 by chocopa

ハードウェア記述言語で書いたり図面の上だけのCPUと異なり、TTLを使ってCPUを作る場合はTTLにどんなゲートがあるかに加えて入手性・ディスコン(廃品種)を考慮する必要が出てきます。

そこで何よりも問題になるのがALU(演算装置)です。

ALUとは、加算、減算、論理演算、シフト命令などの数値演算を処理するユニットでTTLでは、74181などが有名ですが商品としてはとっくに寿命が尽きているものなので手に入りにくいです。

そこでTTL ALUで検索すると他のTTLでCPUを作っている開発者が見つかり、先輩方々のお仕事を勉強させて貰おうと思いました。

「Z80マイコンボード・中日電工のホームページにようこそ!」
http://www.alles.or.jp/~thisida/index.htm
CPU:MYCPU80

記事が膨大で未だ全部読めてないんですが、びっくりしました。
i8080をTTLで作ろうとするだなんて・・・。
MYCPU80というTTL 270個でTK80互換機というとんでもない怪物マシン?の組み立てキットを販売されています。
割り込みもスタックも全部あるんだから凄い!!
中日電工さまは、TK80互換機で創業されたそうで、製品にはBASICコンパイラもあります。
ALUは、全加算器の74HC283しか使ってないのでALU自作に近いですね。
減算は引く数を2の補数にしてから加算でしょうか?

「TTLのみでコンピュータを自作する」
http://22lab.web.fc2.com/index.htm
CPU:RETROF-8

TTLでCPUを作って円周率100桁を計算する事を目標に開発されています。
2月に決意してもう完成間近とは凄いです。
設計が秀逸でデータ8bit、アドレス12bitのシステムで命令語は16bitになります。
命令語の最初の4bitが命令そのもので、残りの12bitがオペランドのアドレスを示します。
部品数も少なくこれは上手いと思いました。
ALUは加算・減算・論理演算、シフトは無しの74LS382を使用されています。

そこで私の新CPUなんですが、昨日(日付変わったので一昨日か)、先週より超強力な74F281の見積を取っていたのですが探しても見つからないとの連絡が帰ってきました。
加算・減算・論理演算・シフトの全部入りで高速な74F281がありそうとの事で期待していたのですが無いとなると別の形にしなければなりません。

本来は高級過ぎるALUは「ロボットの起源」のブラックボックスを無くすという趣旨から遠ざかるのですが、超強力の魅力が勝って検討していたのです。

超強力なのが手に入らないならシンプルなALU路線で行こうかと思います。

加算・NAND・右シフトこの3つが有れば機能的にはなんでも出来るでしょう。

論理演算子 AND=*,OR=+,NOT=~,NAND=@として、
~A=A@A
A+B=(~A)@(~B)
A*B=~(A@B)

減算は、引く数を2の補数にする。

乗除算で必要なシフトは、左シフトは同じ数で加算する。

これで、--Cコンパイラの試作をしてCPU仕様が確定しますね。

このあたりはまたツイッターでも呟いていきます。@kouaisshin

レジスタを増やしてインデックスアドレッシングってのは捨てようか迷っています。
RETROF-8みたいな自己書き換え直接アドレッシングだとだいぶ軽くなるよね。
沢山のレジスタを有効活用ってのはコンパイラの負担が大きいのとCPUを失速させないためのレジスタまわりのバスの設計が複雑になるんだよねぇ。
シンプル設計にしたほうが賢明そうだなぁ。

348081 journal

chocopaの日記: ワンセグで犬HK支払い義務は納得出来ん。 2

日記 by chocopa

民法しか見ないのにTVが有れば犬HKへ支払い義務というのもおかしな話だが、
TVを持って無くても携帯に、使用しないワンセグが付いていたら支払い義務があるのは納得できない。

犬HKはスクランブルを入れるか、ワンセグに支払い義務を入れないか、携帯電話にワンセグor犬HK受信無効処理が出来るような道筋を用意すべきだ。

いや、これは中途半端だな。フルセグであれワンセグであれ犬HKを見る見ないの選択肢を視聴者に与えるべきだ。

俺も、微弱無線で放送局を立てて半径20mくらいから金を集めたいw

個人的には犬HKを見ているから支払うのは問題ないんだけどね。
制度的におかしいよね?

347798 journal

chocopaの日記: 暗号の話 3

日記 by chocopa

2月に某所に投稿した記事をこちらで再掲。
-------------------------------------------------

暗号と言えば忍者文字がありますね。
しかし、50音と対では(換字式暗号)本気で調べれば突破できてしまいます。

現代に通用する暗号はどうあるべきでしょうか?

何かの表で置き換える方法や、さらにそれを元に複雑化したスタイルのものは古典暗号と言われるもので、もはや現代では通用しないものです。

これらはコンピューターの出現で容易に突破されてしまうようになりました。

現代的な暗号は数学的に一方方向への計算は簡単だが逆方向の計算が困難な計算を暗号強度の拠り所にしています。

例えば素数と素数を掛けて大きな数字を作るのは電卓を少し叩くだけで簡単に出来ますが逆に素因数分解(ある数字を素数の積で表す)は、簡単な方法が存在せず総当たりで試して行かなければならないので、桁数が大きいとコンピューターを使ってもいつまで経っても終わらないという具合になります。

他に有名なのでは、論理演算でグチャグチャにしたり、楕円曲線上の有理点を使った方法などがあるのですが、それらも逆方向の計算がとても難しい事を利用しています。

1970年代末に開発された現代的な暗号としてエポッキメイキングなDES暗号は、恐竜的進化を遂げた現代のコンピューターの豪腕に敗れ去り、新たにAES暗号が開発されました。

AES暗号はDES暗号を1秒で破ることの出来るコンピューターで149兆年かかるとされているほどの暗号強度を持っています。

これだけ強力だと暗号競争は終わりかと思っちゃいそうですがそうでもありません。

コンピューターはムーアの法則(18ヶ月で2倍)で進化しているので70年後には1年で突破されてしまうという計算になります。

とはいえ、現在ではAES暗号は鉄壁の守りであり秘密を守るのに適しています。
これで暗号化したものは、公安はもとよりCIAもMI6もFSBでも中華人民共和国国家安全部もお手上げです。

手軽にこの御利益をいただく方法はとても簡単な事で、ファイル圧縮で有名なzipでAES暗号オプションを使う事です。

346081 journal

chocopaの日記: 「ロボットの起源」 新CPUは2命令フェッチ

日記 by chocopa

さくっと進むかと思った新CPU設計ですが、
設計段階での部品調達で新たな要素が出てきて設計上の問題の高次化が進んでいます(笑)

TTLなんか現代のチップの繋ぎに使える物以外はディスコンの嵐だろうから加算器さえ残ってくれてればいいよ!と思っていたのですが意外な事に、かなり強力なALU(演算器)が現代も流通しているようです。現在、見積中。
入手できたら予定の性能が飛躍的に上がって貧弱演算を実行数でカバーする設計コンセプトも見直さないといけないかも?

現在の設計コンセプトはだいたいこんな感じです。

データ、アドレス16bit。
専用インデックス、スタック無し
演算は最小構成時に、加算、NAND、右シフト
命令は、
 レジスタ ← メモリMOV
 メモリ  ← レジスタMOV
 レジスタ ← レジスタMOV
 レジスタ ← 直値MOV
 レジスタ演算
 ジャンプ(条件付き含む)

命令コードは、16bit幅に2命令を入れる。
ステージは3つ。
 1、フェッチとデコード
 2、第1命令実行
 3、第2命令実行

8bitではなく16bitの2段命令の構成には幾つかのメリットがある。
ALUが16bitになる。
アドレスの扱いが1回のアクセスですっきり速い。
1命令あたりのフェッチが0.5回になって速い。
演算してライトバックとか、リードして演算といったプロセスは、コンパイラに投げて簡素で危険な命令を安全に多く処理することで対応する。

さらに、命令のフェッチとメモリーをアクセスしない命令は競合しないのでパイプラインとして動作する。新CPUはALUが超貧弱なのでフェッチと競合しない命令の実行が多くなる。

343551 journal

chocopaの日記: 「ロボットの起源」"--C言語"と新CPUは16bit?

日記 by chocopa

発掘したコンパイラは構造化BASICですが、
新CPU用コンパイラはC言語に似た互換性の無いサブセットにすることにしました。
サブセットなので、"--C言語"(C#でPreDecCの名前で開発中)となります。

C++の評価値は元のままだから互換性があって当然だけど--Cは評価値がサブセット後だからCとの互換性なくてもいいよね!(笑)

コーディングをしながらTTL規格表をめくってTTLで組みやすい構造とか数とか調べているのですが、なかなか厳しいですねぇ。

ちょっと普通に作ろうと思うと、標準サイズの2足歩行ロボットとして破格に大きなペイロードを持つバルキーにすら乗りそうにないです。

実用性は無いけどCPUの要素は全てあるでしょ?みたいなのなら小さくできますが、実用性を考えるとアドレスが8bitというわけにもいかなくなるのです。
データーを8bitとして、アドレスやインデックスレジスタを扱うのに2回アクセスになったりするとbit数から来る以上に回路規模が膨らみますね。
そして、それは説明も難しくなる。

そこで、一つ思いつきました。
データもアドレスも16bitにする案です。
データもインデックスもレジスタは同じ。
メモリ→レジスタ、レジスタ→メモリ、レジスタ同士演算、直値→レジスタ
の命令で行く感じです。
制御的には学習用で実用性の無いCPUと同水準にしてbit幅を拡大する方向です。

複数の16bitレジスタが有り、2本だけ少し特殊にしておきます。
ALUの入力の片方と出力に繋がっているアキュームレーターとしてのレジスタが1本。
プログラムカウンタそのもののレジスタが1本。

おもいっきり拡大路線やん!と突っ込みが入りそうですが解決策があります。
レジスタに使う8bitのDラッチは、特殊の2種を除いてフラットパッケージを積層(昔の言い方で言う亀の子)にして、積層している同じbit番号の出力と入力を全部繋いでしまいます。

その一山からは、8bitの双方向バスが出ているだけとなります。

こうすると、複雑さと量と性能のバランスが両立できるのではないかと思っていますが検討は続きます。

んんんん・・・ 当初言うてたんと全然違う印象のCPUですね。
やっぱり大きすぎるやろ(笑)

343283 journal

chocopaの日記: 「ロボットの起源」リライト分まで完了。

日記 by chocopa

旧版の書き直しが思ったより手こずりました。
3回くらい書き直したところや、手を入れるつもりの無かった図も手直ししました。
旧版よりシンプルで簡単になりました。

http://www.jttk.zaq.ne.jp/foot-prints/robot/
Origin of Robotを参照

これで、ハードについては、とりあえずCPUの2つ前の段階まで進み。
ソフトに付いては旧コンパイラの発掘まで行きました。

次は、フリップフロップやシフタ、ラッチ、加算機となるわけですが、これらの説明で使った回路をそのままCPUに放り込む為にはCPUの仕様の確定が必要です。

それには、前回の日記で書いたようにコンパイラからCPUに向かって設計を進めることになるのでコンパイラ開発作業に移ります。

あと、新たに思いついたのですが、この言語は既存のワンチップマイコン用のインタプリタ・コンパイラとしても使える「超低リソース言語」にしたら面白いと思ったので、JAVAやC#みたいにバイトコード(中間言語)とバーチャルマシンを考慮した設計にします。

まだ深く考えてないですが、言語の部分は他の方も利用できるようにしたいですね。
例えばオリジナルのロボットコアのインタプリタ・マクロ言語が普通に構造化言語だったら楽でしょ^^

=====================================
仕様が未定の「膨らむ進捗・工程表」(笑)

●=済
▲=掛
×=未

●★トランジスタ回路
●トランジスタ・ダイオード
●コンデンサ
●コイル
●抵抗
●基本的な素子の役目と使い方の例。

●★論理回路の最小単位
●トランジスタ回路でNAND回路が作れる。
●NANDからOR,NOT,XORと基本的な最小単位は全て作れる。

×★基本的な論理回路
×フリップフロップ(メモリーとしても説明)
×シフタ
×ラッチ
×加算器

×★CPU
×クロック発振回路
×カウンター回路(プログラムカウンタ)
×メモリーを逐次読み出すだけのCPUの骨格。
×読み出したメモリーの指示でレジスタに出し入れを追加。
×読み出したメモリーの指示で加算機・論理演算器への出し入れを追加。
×読み出したメモリーの指示で指定のメモリーに出し入れを追加。
×読み出したメモリーの指示と条件でプログラムカウンタの操作を追加。
×TTLで上記を実証。

▲★コンパイラ
●旧コンパイラの発掘
×C#に移植。
×新CPU用に改造
×新CPU用に改造&バイトコード出力
×PC用バーチャルマシンの開発

×★サーボモーター
×★センサー等
×★ロボット(機体は10年前のバルキーをレストア)

341176 journal

chocopaの日記: 「ロボットの起源」CPUの設計案

日記 by chocopa

「論理回路の最小単位」までは旧版のリライトだから特に問題は無いでしょう。

その次には、「基本的な論理回路」

さらにその次は、CPUになります。
CPUの機能次第では、「基本的な論理回路」で教えることが異なってくる可能性があります。

この2,3日はCPUのスペックと運用方法をあれこれ悩んでいました。
仕様の幅が色んな意味で広い。
考えがまとまらん。

そうだ!完成したCPUで何をするか決めればいいじゃないか!
手段は目的ではない!

と言う事で、約10年前の第1回ROBO-ONEに出場したバルキーに搭載するCPUを作る事にしました。
「トランジスタから始まり2足歩行ロボットを終点とした解説文」のゴールをオリジナルCPUでアップデートしたバルキーにするのです。
来年はROBO-ONE 10周年だし、いいじゃないか!

バルキーの機体構造はめちゃくちゃ簡単なので、2足歩行ロボットとしても最小構成で都合がいいですね。
CPU→コンパイラ→ロボットではなく、ロボット→コンパイラ→CPUと考えると設計方法としても道がスッキリしています。

解説文としては下から上ですが仕様としては上から下ですね。

と、言う事で、ロボットの仕様は決定。
機体も残っているので手間も少ないです。

次はコンパイラの仕様。
大昔にコンパイラを作ったことがあり、ロボットに丁度良い仕様なので流用することにしました。

それは、1989年2月に発売されたハイパーメディアパソコンFM-TOWNS用に作ったBASICコンパイラ「townesh compiler」です。

当時、FM-TOWNSのi80386ネイティブモードのパワーを体験するには事実上インタプリタであるF-BASIC386しかない状態で、386ASMやHigh-Cはかなり高価で買える人は殆ど居ませんでした。
そこで、フリーウエアのBASICコンパイラとして作ったのが「townesh compiler」です。

yaccやbisonなどのコンパイラ・コンパイラを使ったシフトリデュースパーサーではなく今はさっぱり見かけない再帰下降パーサーの言語です。(概ね中身の話ね。)

最終バージョンは1990/03/19ですね。21年も前かぁ。21歳の俺の作品(笑)

言語の規模は同程度でC#で作り直すことにします。
「townesh compiler」程度のコンパイラの吐くコードは、一般的なCPUの命令の一部しか使ってないので、その範囲でCPUを設計すればいいですね。
さらに、意識的に命令の種類を削減することが出来ます。
そして、コンパイラとCPUがお互いに何処を譲ればより良くなるかも検討できるのでコンパイラから設計するのは大変都合がよいです。
コンパイラから見て贅肉0%のCPUを目指すことが出来ます。

「townesh compiler」のドキュメントを下記に転載します。
最適化が無いみたいなことが書いてありますが、定数畳み込み最適化(コンパイル時に出来る計算はしてから出力に埋め込む)、演算強度低下最適化(÷2や×4などをシフト命令などの速い命令に置き換える)くらいはしてあった筈です。

TOWNESH.DOC 1990/03/19
--------------------------------
☆ タイトル:townesh compiler『試験版』 ver 0.1 ☆
        programed by K.OKAMOTO :free wear

        (要:F-BASIC386 386|ASM 386|LINK)

ファイル名、 townesh.bas TOWNESH 画面出力バージョン
                towneshf.bas TOWNESH ファイル出力バージョン
                test1.tow TOWNESH サンプルプログラム(ソース)
                test1.exp TOWNESH サンプルプログラム(実行形式)
                test2.tow TOWNESH サンプルプログラム(ソース)
                test2.exp TOWNESH サンプルプログラム(実行形式)
                test3.tow TOWNESH サンプルプログラム(ソース)
                test3.exp TOWNESH サンプルプログラム(実行形式)
                test4.tow TOWNESH サンプルプログラム(ソース)
                test4.exp TOWNESH サンプルプログラム(実行形式)
おまけ、 qsiki.bas 簡単な式解析サブルーチン

みなさんTOWNSライフいかがお過ごしでしょうか?
現在TOWNSの能力をフルに使える言語と言えば TOLLKIT
や HI-C となる訳ですが、割安とはいえ高くて手が出ない、
買ってもつかいこなす自信がない と言う方は多いのではないでしょうか?
そこでTOWNSの機能をできるだけ多くの方に使えるようコンパイラを
作っていきたいと思います。
まずは『試験版』としてTOWNESH ver0.1 を F-BASIC386
で組みましたので発表します。ただし現在のバージョンは『試験版』
であり後の『実用版』を組む前のアルゴリズムのテスト版であるため
入力したソースに対するアッセンブリ言語のソースを出力するだけです
ほとんどソースをそのまま対応するアッセンブリ言語へ変換するため
(最適化をしていないともいう)これからアッセンブリ言語を学ぼうと
思ってる方にはいい教材になるのではと思います。
(かなり汚いコードをはきますが・・)

【使い方】
F-BASICでTOWNESH.BASを実行するとファイル名を
聞いてきますのでソースファイルの名前を拡張子なしで入力してください
既に同ファイル名のASMのファイルがある場合は削除してください
基本的には行番号の無いBASICと思ってください現在の命令セットは
まだ暫定的なものなので次のバージョンで変わってしまうものもあります
ソースファイルは必ず 拡張子が、TOWのファイルでなければなりません
PUTCH・GETCH命令は MS-DOS 又は CONSOLE.EXE
上でのみ動作します。
サンプルプログラムはMS-DOS 又は CONSOLE.EXE上で使えます。

<<<  TOWNESH 文法  >>>

具体的な使い方についてはサンプルプログラムを見てください
以下に述べる説明に使われている言葉でわからないものが有る場合
F-BASIC386のマニュアルにたいがいのっているので
そちらで勉強してください
サンプルプログラムとあわせてごらん下さい。

演算子 :+,-,*,/,&,|,=,==,<>,<=,>=,(,)
                以上をC言語と同じ意味で使えます
                但し比較演算子は真で-1偽りで0を返します
                <注意>  =は代入の=  ==は比較の=

定数 :符号なし整数しか使えません(32bitの整数の範囲で)
                末尾にHを付けると16進数としてあつかいます

変数 :32bitの整数のみです 7文字以内で半角のアルファベット
                で大文字と小文字の区別は有りません 使う前に宣言する
                必要はありません また386ASMで予約されている名前は
                使用できません

FOR文 :BASICとの相違点は終値は定数しか使えません

IF文 :ブロックIF文となっています。書式は、
                IF 式 THEN 文・・ ELSE 文・・ ENDIF
                又は
                IF 式 THEN 文・・ ENDIF
                です。

WHILE文 :WHILE (式) 文・・ WEND です。

DIM文 :DIM 変数名(最大要素数)(注)同時に複数の宣言はできない

END文 :プログラムの一番最後に必ず付けて下さい 必ず一番最後ですよ

GOTO文 :GOTO *ラベル名  ラベル名へ飛びます

GOSUB文 :GOSUB *ラベル名  ラベル名のサブルーチンを呼びます

RETURN文 :RETURN サブルーチンから復帰します

PUTCH文 :PUTCH 数値 数値の下位8ビットをアスキーコードと
                見なして画面へ出力します。

GETCH文 :GETCH 変数   キーボードよりの入力データを変数に
                格納します。 BASICのINKEY$と同じです。
                入力が無い場合は0を返します。

ラベル :*ラベル名 ラベルを付けます ”L数字”というラベルは
                コンパイラが使用しているので使用しないでください。

;文 :;コメント  REM文です。ここより行末まで書かれている
                ことは無視されます。

[注意] ";"文以降以外はTABコードや全角文字は使用しないで下さい。

<構文>

演算子 +,-,*,/,&,|,=,==,<>,<=,>=,(,)

FOR 変数=式 TO 定数
 文
NEXT

IF 式 THEN
 文
ELSE
 文
ENDIF

IF 式 THEN
 文
ENDIF

WHILE 式
 文
WEND

DIM 変数名(最大要素数)

GOTO *ラベル名

GOSUB *ラベル名

RETURN

END

PUTCH 式

GETCH 変数

こんなものつかいものにならない!と言われてもかえす言葉もない
脆弱なコンパイラですが アッセンブラの下書きとか コンパイラ
そのものの勉強に使うなど 利用していただければ幸いです。
もともとC言語にBASICの甘さを入れてと考えていた訳ですが
どうも言語の強さと甘さはトレードオフの関係でただの構造化BASIC
になっていきそうです。
コンパイラはだいたいどう作っていけばいいのか分かってきた(つもりな)
ので、あと型の種類や命令の数を増やすのはそう困難なことではない
とおもっています。(量的な問題はある)
なお 次回ぐらいには TBIOS対応(特にグラフィック)と実行ファイルの
生成が可能なバージョンをおくれるかも知れません 実際TOOLKITの必要な
現バージョンは冒頭で述べただれでもつかえるということにはならない
ので 実行ファイルの生成は早急に解決しなければならない問題です
そしてHI-Cで書き直すつもりです。

<サンプルプログラム>

--------------------------------
;
; TEST1.TOW
; サンプルプログラム
;
;
for a=41h to 5ah
      putch a
      putch a | 20h
next
end

テストプログラムのひとつめはAからZまでの大文字と小文字を表示
するプログラムのつもりなのですが おおっと! FOR文 のバグ
でYまでしか表示しないではないか!
と言うことでFOR文のループ変数が終値を越えたらでは無く終値に
達したらループから抜けます。
--------------------------------

;
; TEST2.TOW
; サンプルプログラム
;
;
a=(b+c/(e-f))+(g-h*3)
end

これは計算するだけで、何にもしません 何のためにあるかといいますと
式をどのように料理しているか見ていただくためです。コンパイルした
オブジェクトと、このソースプログラムをLOOKで見比べて下さい。
--------------------------------
;
; TEST3.TOW
; サンプルプログラム
;
;
*lbl
getch a
if a==0 then goto *lbl endif
putch a
if a40h then goto *lbl endif
end

コンソール(キーボード)よりの入力そのまま出力(画面)します
@を入力すると終わります。(@はSHIFTを押しながら0を押します。)
--------------------------------
;
; TEST4.TOW
; サンプルプログラム
;
;
*lbl
getch a
if a==0 then goto *lbl endif
putch a
    if a>40h then
          goto *lbl
    else
          gosub *xxx
    endif
goto *owari

*xxx
putch a+1
putch a+2
putch 13
return

*owari
end

サブルーチンのつかいかたのサンプルです。どういう動作をするか考えて
下さい。特に意味のないことですが・・
--------------------------------

339790 journal

chocopaの日記: 替え歌 【コネクト】 まどか☆マギカ より 2

日記 by chocopa

替え歌 【コネクト】 まどか☆マギカ より

倭寇への恨み忘れないよ
ドラマで確かめる
押し寄せた史書 振り払って喚くよ

いつになったら無くした過去を
ウリはまた夢を見る事 出来るの?

憎さ尽きぬ倭寇の旗を何度でも裂いて
この歴史変えていこう

とめどなく刻まれた 捏造は綻び見せ
辻褄が合わなくなり
世界史の扉閉じよう

劣爆(ヨルボク)の心、走り出した未来を描くため
難しい道で立ち止まっても倭寇は
謝罪の心でいつも助けくれる
だから怖くない
もう何があっても挫けない

振り返れば自分のせいで
気がつけば恨みに包まれてた

何もかもが歪んだ過去で
唯一恨める倭寇が救いだった

ロシアも中国も恨めれば救える想い
この声が届くのなら
きっと制裁が来るだろう

倭寇への恨み忘れないよ
ドラマで確かめる
押し寄せた史書 振り払って喚くよ

どんなに確かな史書があっても
越えてみせるからきっと
明日信じて火病って

壊れた精神(こころ)で彷徨って私は
親北反米に辿り着いた

劣爆(ヨルボク)の心、走り出した未来を描くため
難しい道で立ち止まっても倭寇は
謝罪の心でいつも助けくれる
だから怖くない
もう何があっても挫けない

ずっと恨んで

-------------------------
我ながら傑作の出来だと想うのですが如何でしょうか?(笑)

339123 journal

chocopaの日記: 「ロボットの起源」の構成案 2

日記 by chocopa

★トランジスタ回路
トランジスタ
コンデンサ
コイル
抵抗
基本的な素子の役目と使い方の例。

★論理回路の最小単位
トランジスタ回路でNAND回路が作れる。
NANDからOR,NOT,XORと基本的な最小単位は全て作れる。

★基本的な論理回路
フリップフロップ(メモリーとしても説明)
シフタ
ラッチ
加算器

★CPU
クロック発振回路
カウンター回路(プログラムカウンタ)
メモリーを逐次読み出すだけのCPUの骨格。
読み出したメモリーの指示でレジスタに出し入れを追加。
読み出したメモリーの指示で加算機・論理演算器への出し入れを追加。
読み出したメモリーの指示で指定のメモリーに出し入れを追加。
読み出したメモリーの指示と条件でプログラムカウンタの操作を追加。
TTLで上記を実証。

★コンパイラ
括弧付き四則演算を解く再帰下降パーサー。
それを前章のCPUのASMコードを吐くコンパイラに拡張。
C#で上記を実証。

★サーボモーター
モーターを作る。
(市販モーターを分解して手巻きでまた動かすでも良いかも。)
PWM,PID制御で制御を実証。上記のCPUで出来ればベスト。

★センサー等
詳細未定だがトランジスタと同様に最小単位としての説明になりそう。
マイコンシステム(上記CPUシステム)へのセンサーの実装例。

★ロボット
ある程度の妥協は必要だがロボットとしての実装例。
ロボットのプログラムとしての実例。

typodupeerror

人生unstable -- あるハッカー

読み込み中...