2004年11月
11月1日

今更ながら、ラディン君の声明(英文)を読んでみた。思っていたより読みやすい。securityにとことんこだわっているあたり、なるほどと思わせる。締めの言葉が「Your security is in your own hands」 Each and every state that does not tamper with our security will have automatically assured its own security. 」
ときた。前半のin your own handsあたりは結構民主主義な心をくすぐるものがあるし、続く中ではtamperときて「おまえらが要らぬ手出しをするから逆襲されるのだ。しなければ何もされることはない」というのだから確かにそうだろう。
やったことの是非を棚上げしておくとして、この演説の文章は巧妙だ。どこまで本当かは分からないけれども、文面通り受け取るならば、言っている事は至極まっとうである。決して一方的に敵対視して、無差別に殺戮を繰り返す狂信的な殺戮集団ではないという物言い「テロとの攻撃」と称して聞く耳持たない状態にある側にこそ歩み寄る義務があるということになろう。なんだか現政権批判のような部分もあるけれど、きっと分かる人には分かるというメッセージも含まれている似違いない。
さて、次の一手は何だろう。

11月2日

ワンチップマイコンも食傷気味だし、PICでもAVRでもPSoCでも好きなのが一つあれば大抵のことは同じようにできる。個人的な好みで行けば、やはりPSoCの場合には更にプラスαでいろいろできるので、とりあえずこれでいいやというところ。ライターもいろいろあるし、全然使ってないけど(CY3205-DKもCY3207-ISSPも持ってはいるし。
もう少し違う方向を求めてwebサーフィン(死語)していたら、ビビッと心の琴線に響くものが見つかった。W65C02S/W65C816Sなるものである。WDCとはいっても、HDDで有名なWesternDigitalではない。WesternDesignCenteであり、物は言うまでもなく、往年の8ビットCPU、6502とその16ビット拡張版たる65816の子孫である。6502はApple][、65186は最後のApple][であるApple][GSに使われていたCPU.(GSに至ってはこんなところを見るとwebブラウザまで作られていたようだ)
さて、このページ、どうせ博物館物だろうと思ったら様子が違う。DIPパッケージの写真も妙に新しい。データシートを開いたらなんと2004年版である。あれ?と思うと、なんとオンラインで注文できるとある。なんと1個5ドルである。
電気的にはフルスタティックのようだからクロック止めてもオッケーか。一応5V動作が基本スタンス(?)だけどもさすがに当時よりも圧倒的にプロセスが進歩しているので、W65C02は5Vなら14MHz動作、1.8Vでも2MHzで動作できるし、1MHzまで落とすと消費電流は150μAときたものだ。
65C186のほうは、6502の16ビット拡張版で6502エミュレーションモードがある。(V30を思い出す)こちらも14MHz、やはり1.8Vで2MHz動作まで可能で1MHzなら消費電流は300μA。
ネイティブモードにすれば、メモリ空間は16Mバイト。8ビットのデータバスがアドレス出力に流用されるという、ありがちな展開で、24ビットまで拡張している。コプロインターフェースも持っているし、ABORT信号(68K系で言えばBUSERRか)もあるから、FPUだのMMUを作ってやる手もあるのだな。昔ならそんな物はとても手の届かない雲の上だったけど、今ならFPGAがある。
とりあえず、10個ずつ買ってみることにするか。パッケージはやはり清く正しく40ピンDIPだろう。


11月3日

つたない英語力でフォームから注文をかけてみた。アプリケーション欄に少しコチャcコチャとしたことを書いてみたら、なにやら返事。どうやらつたない英語がちゃんと通じたようである。こちらの用途にや考えにも興味を抱いてくれた様子。それならStarterKitはどうだとかこれも面白いぞ、もうすぐwebに上げる予定の製品情報も出そうか・・等々。ベースは古いけれども面白い製品であることは間違いない。だいたい、PICだって8051だって既に化石といって良いようなシロモノなのだから、6502が現役になったって良いだろう。


11月4日

つらつらと6502構想を練る。だいたい何とかなりそうな感じはする。アセンブラでゴリゴリやったことはないけど、そんなにややこしいはずもない8ビットCPUなのだし。とりあえずCコンパイラはcc65というのがあるようだ。さて、こいつでROM化までできるのか。たぶん往年のオブジェクトを吐くのだろうから、最終的にはアブソリュートアドレスのオブジェクトになるのだろうが。


11月5日

先日中古CDでJULIANA'S TOKYOのVol2〜5を大人買いした。と言うととってもすごそうだけど、実は流れ流れて1枚80円だから全部で320円。サラウンドにして音量を絞ってBGM代わりに流しておくというのがお気に入りの使い方。当時報道された狂乱ぶりが遠い過去のイメージと重なってすっかり、セピア色。
そういえば、バブル全盛の頃も結局忙しいばっかりで、遊びに行くこともなく、会社の儲けは全部豪華絢爛な(既に当時はアパート住まいで縁のない)な独身寮だの初任給引き上げに使われてしまって、ちっとも見返りが無かったっけな。


11月6日

どうにかこうにか紆余曲折あった本が出版の運びとなった(詳細はこちら)。考えてみたらPSoCの話しが浮かんでは消えしていたのが去年の今頃だったっけか。これでまた少し弾みがつくと良いのだけども。

11月7日

6502/65816のソフト開発環境をチェック。先日見つけたcc65からROM化できるのかどうかと思ってチェックしたら、メーリングリストのアーカイブで、その名もズバリの「Porting cc65 to embedded system that has no OS, boot ROM or monitor」ときたものだ。Dateが2004年の9月23日だから、今もまだ元気なのだな。
とりあえず、このレスを参考にしながら弄っていたら、何となくうまく行くことが分かってきた。基本的にリンカの出力はベタイメージで、頭にcrt0.sの中身がくっつくだけというシンプルなもののようで、EXEファイルのようなリロケートするための情報は無し。昔のIntelツールで言えば、Link86とLoc86がいっしょになったようなものというところ。あとはこの生成された物からHEXファイルでも生成するものをこしらえてやればROMライターに送りつけてやるのも簡単か。


11月8日

開発関係の仕事で、基板ができる前に手持ち基板を改造して実験環境を整備。それにしてもずいぶんとすごい姿になってしまったものだと苦笑しながら動作チェック。とりあえずうまく行っているようだ。
そんなこんなで、何となくCPUを書いてみたい病が発病である。昔から途中まで考えては放り出しというのを繰り返していたのだけどそろそろ玩具のようなものでいいから一つ作ってみるかな。実用性は無視してとりあえずこれでも処理はできるという、適当なものでいいか。そのまえにちょっと論理合成の環境を整え直さなくてはならないか。
しかし、一応納期は守っているけども仕事がタイトになるほど他のことをしたくなるという性格は問題だな。


11月9日

怪しいプロジェクトの打ち合わせ。果たしてどうなることやらというところだけども。帰ってきてから昨日の続き。基本的な実験をして動作確認。まぁなんとかなるものだ。帰りに秋葉原に寄ってシリアルROMとその他部品を少し買い出し。

11月10日

ちと胃が痛い。コーヒー飲み過ぎか。とりあえず昨日買ってきたシリアルROMをつないだ基板を作って、頼まれ仕事のファームウェアで動作確認。まぁ問題はないはずのものだけど、とりあえずオッケーというところ。あとはホスト側のアプリとのすりあわせだな。

11月11日

CycloneにMSXを突っ込んだのを見てちょっと思い立って検索しているうちに、sharpmz.orgというMZサイトが海外にあることを知る。お世辞にも軽いとは言えない所なので、気長に待つべし。モニタROMやらキャラジェネのバイナリがそのまま置いてあったりもするだけではなく、今年の7月6日にTape Basic SP-5030 ( MZ-80K / MZ-80A / MZ-1200 ) added for download、7月7日にはS-BASIC-COMPILER for the MZ-700 S-BASIC MZ-013A added for downloadという具合でそこはかとなく香ばしい香りがするサイトだな。


11月12日

用があってカラープリンタを買いに行った。とりあえずつないでみたらまずドライバのインストールでコケる。USBプリンタなのでUSBポートに接続する。例によってドライバを自動認識しようとするのだが、マニュアルによるとインストール用のアプリケーションからインストールしろとあるので、自動インストールをキャンセルして、CD-ROMから自動実行。ある程度進んだところでプリンタを自動認識しようとしたところで失敗である。USBケーブル抜き差しでリトライしても駄目。仕方がないので強行させてから、再起動してみる。
たぶん駄目だろうとデバイスマネージャを見ると案の定USBの先には?マーク。では仕方がないとドライバの更新でCD-ROMを指定してドライバをインストールする。
これで無事に組み込まれたようなので、さて印刷しようとしたらエラー。プリンタが見つけられないらしい。さんざん悩んでふと画面を見つめていたら、出力先ポートがLPT1と書かれている。仮想パラレルポートにしているにしても、なんだか怪しい。このプリンタはパラレルポートは持っていないのに何でLPTに出そうとするのだ。プリンタのプロパティを開いて探してみたらなるほど出力先ポートがLPT1になっている。選択できるのだろうなとコンボボックスをクリックしたら、案の定USBがある。
切り替えて再度印字してみたらやっと動き出した。
もう少しメッセージにしても説明書にしてもなんとかしてくれ、EPSON君。


11月13日

久しぶりにFPGAをいじることにするための準備。まず環境チェックのために久しく埃を被っていたStratixボードとDesignWave付録のCycloneボードを引っ張り出してきた。まずはCycloneボードだなと思ってダウンロードケーブルをパラレルポートにつないで、Cycloneボードと接続。電源を入れてQuartusを起動。こちらはライセンス切れだったので先日最新版にしてある。古いプロジェクトを読ませるとブツクサと文句を言ってきたが良きに計らえである。
これで準備完了でダウンロードしようとしたらデバイスが見つからない。そんな馬鹿なと接続をチェックするがあっている。ひょっとしてQuartusの設定を何か間違っているかとStratixボードをつないでみることに。確かこいつはバイトブラスター互換の回路入りで、パラレルポート直結で良かったはず。
こちらで、とりあえず昔作ったStratix用のプロジェクトの一つのカラー版のブロック崩しをダウンロード。とりあえず何事もなく終了である。試しにVGAディスプレイ用のコネクタ基板をつないでCRTと接続。別に問題無し。ついでにワイヤーフレームの折り鶴が3Dでクルクルと回転するのもやってみたけども当たり前のように動く。
さて、そうなるとダウンロードケーブルがおかしいのか、あるいはCycloneボードが壊れたか。ダウンロードケーブルはまともそうだし、やっぱりCycloneボードか。とりあえず捨てる前に念のため半田付けだけやり直しておくか。
半田ごてを暖めて一本ずつあたってみる。フラックスの臭いが結構するな。とりあえず全ピンあたりなおしてから再度ケーブルをつないで、電源を入れてみる。なんと、今度は認識された。VGAケーブルをつないで、TIPSに置いてあるブロック崩しをダウンロードしたら無事動作。結局半田不良だったということか。


11月14日

とりあえずボードは動いたのでソフトウェア環境の復活とリハビリ。とりあえずブロック崩しソースを別ディレクトリにコピーして、ソースコード以外を全部消して新規プロジェクトからやりなおし。
Handel-Cはまるで問題無かったけど、Quartusが意味不明のエラーメッセージで悩んでいたら、トップモジュールを指定し忘れていた。ピンはどこで設定刷るのかもすっかり忘却の彼方。なんちゃらセッティングファイルだったよなと思って探すけども見つからなくて、Quartus上でピン設定してどのファイルが書き換えられたかタイムスタンプでチェック。.qsfファイルに書けば良いのか。
パラパラっと設定を変更して再ビルド。ピン配置もあっているようだしとダウンロードして動作確認。ソースで色を変えて再度ビルドし直すとちゃんと色が変わったのでこれで無事開通。
クロックをどうするかとか細かい記述は忘れていた部分もあるけど、これもちょっと悩んでやり直せば大丈夫だろう。
とりあえず環境はこれでよし。
明日はStratixにバススイッチでも付けてやるとするか。


11月15日

英語でのやりとりは疲れる〜とぼやきながらもとにかく黙っていても誰も何もしてくれないのだから仕方がない。とにかくメールでやりとり。面白いことになるといいのだがな。


11月16日

朝から、どうも風邪気味っぽい。木曜日、金曜日と出かけなくてはならないのに、大丈夫か。
ファームウェアの変更要求。難しいなぁと思っていたけども、I2Cの動作クロックを変えるというごく簡単な方法でクリアできるやり方をみつけて実験。予定通りの動きをしてくれて一安心する。これ以上変更するとなるとI2Cアクセスの方法を変えなくてはならなくなるな。


11月17日

風邪はどうやら山場を迎えているらしい。ボーッとした頭に響くニュースの声。
さて、アの国の兵士がイの国の負傷して丸腰の人間を射殺とか。さて、この映像、当然のように検閲を受けているはずである。その程度の情報管制を敷かないわけがない。とすると、あれはA国によって意図的に名がされたものとなる。
さて、その意図とはなんだろう。あれを見せられたらネズミを穴から追い立てる原動力になるとみたか、あるいはこういう事をした兵士がいればきちんと処罰されるのだということで、自らの組織が「正気を保っている」とでも言いたいのか。あるいはこれを隠れ蓑として、他にもっと大きなことをやっているのを隠蔽したいのか。あるいは・・・というところで、日本人外交官が銃撃されて死亡したのはいつだったっけ?マスメディアはだんまりを決め込んだままだな。
北朝鮮カードが出てくるとき、裏では必ずなにか行われるということは今回も当たりなのか。
いろいろと怪しいことが多い今日この頃。明日には熱が下がってくれないと困るのだがな。


11月18日

推定体温37.5℃というところか。一応解熱剤は効いている模様。長引かせることになりやすいからあまり使わない方がいいんだよね。
パシフィコ横浜で行われているET2004のCQブースでミニ講演。今日がUSB2.0、明日がPSoC。というところなのだけども、しっかり本人はウイルス感染中。逆ファイヤーウォールのマスク持参である。外に出てみると案の定結構寒い。これはやはりコートが必須だなぁ。とりあえず手元にあったショートトレンチを羽織って出る。熱は上がったり下がったりしている感じ。
とにかく30分をしのぎきれた。明日はもう少し良くなるだろうか。


11月19日

本日PSoC。昨日よりマシとはいうものの、やはり少々シンドイ。まるでPSoCのデバイスの宣伝のようになってしまうのだなとぼんやり重いながらとにかく30分を乗り切る。思ったよりも人が集まってきていて、何とも気恥ずかしい。スーツが多いんだなぁ。自分の格好はといえば、昨日も今日も雑な格好なわけで、どうも浮きまくってる感じもする。上着も昨日は真っ白のショートトレンチ、今日はポンチョだもんなぁ。暖かいんだけどね、どっちも。
終わった後でなんと、PSoC本にサインを求められてしまった。ただの「署名」になってしまったけど、あれで良かったのだろうか。そういえば本にサインするのはInsideX68000以来かな。


11月20日

一息つくまもなく、メールの返信。どうも送ったメールの英文がショボくて誤解を産んでしまった模様。言葉を補って何とか返信メール。分かってくれよ、分かって・・・お願い。帰ってきたらInterface誌が来ていた。あぁ、そうかHEXファイルフォーマットが掲載されたからか。

11月21日

ソフト屋さんに送るための実験ボード作成。バラックでズタズタという状態だけど、とにかく作成。
手に入れておいたPSoCEval1を開封。添付の冊子にサンプルがいくつか並んでいるのは、まるで電子ブロック本のようだ。液晶からブレッドボード的ワークエリアまで付いて$56か。ずいぶんと思い切ったものだ。
とりあえずDesigner4.2をインストールする。やっぱりコンテスト用のライセンスは駄目なので、CY3202-Cのライセンス番号を与える。しかし、画面が96dpiだとLicenseにAgreeするチェックボックスをチェックできないというのはなんとかして欲しいな。とりあえず120dpiに変更してみたら表示されたが。一応ショートカットはALT+Iなので、タブあたりをクリックしてからALT+Iしてスペースバーでも叩いてからOKすれば良いのだけどもね。
起動してみたけど見た目はほとんど変わらないな。とりあえずこれで29シリーズまでいけるようになったか。Designer4.0環境もチェック用で必要だから別PCにインストールしておくか。

11月22日

風邪が長引く。何となく咳が時々出るという状態。昨日インストールした先がデスクトップでK6-2で確か350MHzという激遅PCである。ミニマム要件すら満たしてないだろうというものなのでもあり、遅いのは当然だけども、思ったより動く。簡単なプロジェクト作る程度ならこれでも何とか我慢しようかという程度。GenerateApplicationが結構重いけど、そんなに頻繁に繰り返すものでもないしな。
というところで、PSoCフォーラム掲示板の方でフィルタでトラブっている様子なので、チョロッと実験してみた。なるほどBPF2VAを使うとおかしくなるのか。この現象はやっぱりパラメータのミスだろうと思って眺めていたら奇妙な所に遭遇。垂直なのにフィードバック側のCCapに設定してる?これでは下ではなくて右隣のブロックにつながってしまうではないか。試しにDesigner4.2の方でチェックしてみると正しくFLINのC入力に設定されている。なるほど、これはバグだな。おおかたモジュールの雛形データが間違っているのだろう。明日調べてみることにするか。

11月23日

昨日のBPF2VAのバグチェック。どうやら初期化時のコードは.xmlファイルから生成しているらしい。この中でどのパラメータがどのレジスタのどのビットフィールドになるかを指定している模様。ちょっといじってみると、コンフィグレーションデータが確かに変化するので間違いない。なるほど、これか。確かにC4タのコメントやらC4値の設定関数ではFLIN側なのにC4パラメータの設定記述ではFLFBになっている。これを試しにFLINに書き換えてからDesignerを再起動してGenerateApplicationしたら正しく生成された模様。立ち上げたままxmlをいじっても変化無いところを見ると、このxmlファイルってPSoCDesignerの起動時に読み込んでいるんだな。
何となくxmlが読めるようになってくると「Myモジュール」が作れそうな気もしてくるが、まだ”気がする”だけだな。
ひとまず片づいたところで、ずっと話しが止まっていた方がいよいよ動き出しそうなので、下準備。そういえば、NRZIだ、CRCだといえばだいたい見当が付くようなものだけども。とりあえずロジアナで波形を取って、手作業で数値化。生成多項式はX5+X2+1かと思って普通に筆算で割り算してみるのだけど話しが全然合わない。ふーむと思ってバスの仕様書を眺めていたら、なるほど、普通とはちょっと違う方法をとっているのか。なるほど、これならデータの直後にすぐCRCデータが遅れるしな。
一応簡単にLSI-C86でCRCデータの生成/チェックをするプログラムを組んで確認。ふむ。ちゃんと計算は合うし、受信側でのチェック結果も仕様書どおりの値になる。なるほどね。

というところで、本当に2年もたって今更ながら夜中になってつい見てしまったのがとか「消えたボーイング旅客機」である。こちらを見ると日本語版のDVDも出たらしい。確かにボーイング757-200が綺麗さっぱり跡形もなく消えている。あれだけの質量がエネルギーになったとしたらこの程度の被害で済むはずはないのだから、時空の隙間にでも紛れ込んだのか?


11月24日

三位一体だとか称して義務教育の補助金カットに動こうとしているらしい。あのさ、どうでもいいけどそんな事を言ってる人間がかつて言っていたのは「米百俵」じゃなかったのか?資源もない、エネルギー自給率は4%なんていうこの国では教育こそが国の背骨なんだがな。


11月25日

てなところで、29シリーズをちょっと突く。思ったよりいろいろやってくれたものだ。とりあえずPSoC Designer4.2でちょっとしたプロジェクトを作ってみたのだが、なんだかずいぶんと重たくなったような気がする。余計なアプリケーションを立ち上げていたからなのか、RAMが足りないのか。あるいはもともとこのくらいは重いものなのか。


11月26日

というところで、メールであーだこーだとやっていたものがやっと到着した。まとめて注文したのでだけど、体積はたいしたことがないので、Expackみたいな厚紙封筒に入ってきた。とりあえず代表者一名づつ写真撮影。



上が8ビットの65C02、下が6502エミュレーションモードを持つ16ビットCPUの65C816。もちろんワンチップマイコンではない、CPUオンリーなので、ROMもRAMもPIOも何もついていない。写真だけ見ているとまるでジャンク箱から漁ってきて撮ったようだけども、もちろん中古やら不良在庫ではない現行の製品である。さて、どう料理したものかな。電源電圧は1.8V〜5Vというから周辺にあわせて適当なものを突っ込めば良いということか。

11月27日

入手しながら手をつけていなかったPSoC Eval1をちょっと使ってみる。まずはお手軽サンプルプロジェクトを・・と思ったらダウンロードファイルがない。自分でビルドして使えということか。
ビルドしてさて、MiniProgはDesignerから使えるとかいう噂を某米国サイトで目にしたような機がしたなと試しに起こしてみたら、しっかり使えるようだ。
評価ボードに液晶パネルを付けて、MiniProgををつないでいじってみる。なるほどターゲットへの電源供給ON/OFFもマウス一つでコントロールできるようになったわけか。8ピンデバイスでは電源制御式の書込しかサポートしていないので、当然といえば当然だけども、これは実験の時にはなかなか便利そう。とりあえず書き込んで動作さえてみたのだが液晶に何も表示されず。そういえばコントラスト調整用の半固定抵抗があったなと回してみたら案の定。この手のってほぼいっぱいまで回しきる寸前くらいでちょうど良くなっているんだよな。とりあえずA/Dした結果を表示することができたようなので、一安心。


11月28日

29シリーズになって増えたRAMはどう使うのだろうと調べてみる。アセンブラで書けば良いことは分かっているけども、とりあえずCで書けない物かと見て回る。結局Cのドキュメントを眺めたりしながら試行錯誤してみたらそれらしいコード生成になった。
M8のアセンブラにはなれてないからなぁ。テストしてみた範囲ではうまくいったようなので、後割込の中からCの関数に引数を渡そうとしてみたのだが、これがなかなかうまくいかない。pushしてxcallして戻ってきたらスタックを戻すだけじゃだめなのか。変数経由だったら全く問題なくいけてるみたいなんだけどな。もう少し調べてみるか。

11月29日

PSoCEval1でD/A出力していてどうもノイズっぽい。四苦八苦して調べていった結果はそもそも電源そのものがノイズっぽいじゃないかということ。よくよく見るまでもなく両面基板なのと、MiniProg経由で電源をもらっているのが敗因か。MiniProgを外して乾電池駆動にしたらずいぶん静かになった。これならなかなか良い感じだな。

11月30日

ぼんやりとデバイスエディタ画面やデータシートを見ていてふと思いついたことを試してみる。なるほど、確かに理屈どおり動く物だ。もっともこういうものって、気付いた時は裏技なつもりだけどもその道の人にとっては常識だったりするのだろうな。