町中を歩いているとやたらと着ぶくれしたような格好が目に留まる。
流行というものなのだろうが、まるで防寒着のようなその上着に
ふと昔いた工場(こうば)の風景を思い出す。門をくぐり、
建屋に向かう道すがら、寒さで肩をすくめて、
電車の窓から線路を見るこどものように、
足元を流れていく道路を見つめながら歩いていた。
この道をあと何回往復するのだろうとぼんやり思いながら。
今はもう足下を見て歩くことはない。
ウールの着物に羽織を羽織り、カランコロンと下駄の音ならし、
ちょっとくらい寒くても厚着はしないなどと、にわか江戸っ子気取りである

2001年12月
12月01日(友引)
  • 先日のウイルス到着で、物は試しとウイルスバスターのメール自動チェックを使うように設定しておいたのだが、本日またまたウイルスメールが到着。しっかりトラップに引っかかってダイアログが飛び出した。
  • From:はxxxxxxxx(一応伏せておく)@jp.bigplanet.comとなっているのだけど、 Return-Pathはアンダースコアが入って_xxxxxxxx@jp.bigplanet.com
    ヘッダを眺めると、
    Received: from pmba.nifty.com (pmba.nifty.com [202.248.141.12]) by mail.csk.net (8.8.8+2.7Wbeta7/3.6W) with SMTP id NAA28699 for ; Sat, 1 Dec 2001 13:45:16 +0900 (JST)
    Received: (qmail 3823 invoked by alias); 1 Dec 2001 13:45:15 +0900
    Message-ID: <20011201044515.3822.qmail@pmba.nifty.com>
    Received: (qmail 3458 invoked from network); 1 Dec 2001 13:44:56 +0900
    Received: from xxxxxxxx(こちらも一応伏せておこう).ppp.infoweb.ne.jp (HELO aol.com) (211.2.5.134) by pmba.nifty.com with SMTP; 1 Dec 2001 13:44:56 +0900
    ちなみにビッグプラネットはニュースキン共々、マルチまがい商法で結構有名(※)なところではないか。ありえそうなのは単なる悪戯か、SOHO関係で顧客探しをしている、あるいはリストアップしたところが感染したか、あるいはもう一つ深読みすれば「おたく感染していますよ」というメールを送ってきたら、そのメールアドレスを登録するといったあたりが目的だろう。ちょっと意地悪するなら、ちょっとした踏み台メールサーバーを使って、FromやReturn-Pathともbigplanetにしてメールを送ってみるという手もあるだろうが、同じレベルに墜ちたくはない。
    ※怪しい商売の実体を知りたい方は 悪徳商法マニアックス悪の全文検索に是非どうぞ。
  • 先日までに一応作成したプログラムをクロス環境のgccにかけてみる。ライブラリが違うので、いくつか足りない関数はあったが、ダミーで追加してとりあえずコンパイル&リンクはエラー無く終了するところまできた。まだクロス環境でのコードがどう吐かれているのかや、ライブラリがどうなっているのかといったことは把握し切れてない。この部分は明日調査しよう。
12月02日(先負)
  • とりあえずデバッグで一番良く使うprintfを追ってみる。newlibのソースから、つらつらと追っていくと結局バッファリングだけやっていて、flushするときにファイル構造体へのポインタの先に格納されている一文字出力ルーチンへのポインタを使って一行出力するという仕様となっていることが分かる。標準出力のファイル構造体を誰がセットアップしているのかまではまだ捉えきれていないが、恐らくここにあるのは_write()だろう。ここだけ書き直せばprintfが使えるようになるようだ。
  • ちょっと用あってSレコードのフォーマットを調べる。こんな物どこにだって転がっているだろうと思ったのだけど、googleで引っかけても日本語サイトではなかなか出てこないので、S-reord formatで検索したら、英語サイトがゴロゴロと。この差は一体なんだろう。人口はたった2倍程度しか違わないのに。
  • ということで、とりあえず自分用にと思ってHEXファイルフォーマットを整理してみた。例によってレイアウトセンスもないのに、HTML直叩き。 おまけに、Sレコードフォーマットの方で良く分からないレコードタイプがあるのだけど、とりあえずこれでも使えるだろう。
12月03日(仏滅)
  • このところ、書籍関係の質問が直接入ってくることが続いている。大半はデバイスのマニュアル等に書いてある事。今時のマニュアルはPDFになっているものがほとんどなのだから、AcrobatReaderで自分が知りたい事柄をキーワードにして検索掛ければ割と簡単に目的のページにたどり着けることが多いと思うのだが、そんな内容について質問メールを送るというのは、よほどせっぱ詰まっているか、英文を読む気力がないかのいずれかなのだろう。一応「質問は編集部にお願いします」ということになるのだけど、それだけでは役所のたらい回しと同じになってしまうだろうと、一番キモになりそうな部分だけサラッと探して添えておく。情報のポインタ渡しというところか。
  • クロスコンパイラが吐いたコードと、最終的に出来たSレコードやインテルHEXファイルをつきあわせて確認する。本当のスタートアップがどこからになるかとか、ベクタテーブルをどう配置するのかといったことが分かってきたら、webで拾ってきたサンプルコードの意味もだいぶ分かってきた。これならクロスgccを使ってROM化まで持っていくのもそれほど厄介ではなさそうだ。
  • UCT-100用のプログラムをUCT-200に移植。サンプルのユーザータスクの部分を差し替えれば大丈夫なように細工しているので、一から書き直すのに比べれば遙かに楽。とりあえずコンパイル&リンクまでは通った。明日動作チェックしよう。
12月04日(大安)
  • 昨日の続き。移植したプログラムがうまく動かない。 書き込みデータが全部妙な値に統一されてしまう。もう少しビットパターンがランダムなら、タイミング上の問題などで書きそびれということもあり得るのだが、何とも奇妙である。ロジアナでI2Cバスを調べてみたら、変だと思っていた値をしっかり書き込んでいる。テスト用として変数の値をあちこちで出力させていたら、どうも関数の引数が正しく渡らなくなっている模様。やむなくグローバル変数を作ってそちら経由で渡すことで解決する。しかし、一体何だろうかな。
  • 手慰みというわけではないが、ちょっと面白いあやとりのページ。だいたい、あやとりといえば、取り方の図がたくさん並んでいて、図を見ながらあれやこれやとやるものなのだけど、ここでは独特の記号表記でとりかたを表現しているのが興味深い。例えば比較的良く知られている二段梯子などはここにあるのだけど、なんと、たった二行
    1 OA:re T:T mo S pu fLS:re L
    2 L mo S pu fTS:OE
    でおしまいである。この記号の意味するところはここにある。例えば一行目のを解読すると、
    • OA:Opening-A(トップページの「Openings, Moves, and Endings」に出ているOpening-A)から始まる。
    • re T:親指(T:Thumb)の糸を離す(re:リリース)
    • T mo S pu fLS:親指(T)で糸(S)を上から通り越して(mo)、小指の遠いほうの糸(fLS)を取る(pu)
    とまぁ、こんな具合である。どことなく昔のプログラミング言語を思い出させる。表記はシンプルで、上手が使えばできあがるものも美しい。下手が手を出すと糸が絡んで収集付かなくなってスパゲッティ化するという、なかなかにして、そこはかとなく奥ゆかしい。
    Cの「Hello!World!」に相当するような 「世界で最もシンプルなあやとり(String Figure)」。折り紙の「ステゴザウルス」も同じノリだったな。
  • 以前から8051のスタックポインタについて気になっていたことがあって、改めて8051の資料を探す。結局PhilipsとIntelのサイトからダウンロード。読んでみたら予想していたとおりだった。8051の命令コードの説明を見ると、 例えばPUSH命令は
    (SP)<-(SP)+1
    ((SP))<-direct
    という動作になっている。もちろん、LCALL命令なども同じ案配。PUSHでSPがインクリメントされるというのは、左前の着物だな。
12月05日(赤口)
  • 最近、組み合わせだの何だのがややこしいことが多くて、 少し昔の事となると記憶が飛んでしまう。 だいたい、「あっちでは良いけど、こっちでは駄目」とか、 ドライバに互換性がないといったことが平気で発生するといった、 信じられないことが横行するのがWindowsなので、どうにもしようがない。
  • 秋葉原に出たついでに秋月に寄る。手持ち現金がもう少しあったら、 ついつい衝動買いしてしまいそうなものがいくつかあった。 少し前までは秋月を通っても「ふーん」で終わりになっていたことを考えると、 少しばかりリハビリが進んだということも言えるか。
12月06日(先勝)
  • 昨日の問題点の整理を兼ねて、まずWin2000から再インストールテスト。 インストールして、ドライバを入れ込んで、組み合わせてテスト。 あれ?動かなかったはずなのにすんなり動いてしまうではないか。 まさかと思ってあれこれやっていたら、やっと再現。 で、手元から発掘したドライバファイルを指定して入れてみたらすんなり。 なるほどね。メーカのドキュメントが嘘っぱちだったというだけか。
12月07日(友引)
  • そろそろUCT-200の製品発売間近ということで、 プログラムだのドキュメントだのを整理。 Win2000/Me/98といったOSの違いに加えてUSB1.1/2.0でも挙動が違うという、 いかにもM$。 結局最後の最後でUSB/SCSI変換ファームウェアと、 Windows2000の組み合わせで挙動不審という所だけが残ったが、 どうやらあるリクエストをSTALLで終了させると、 Win2000の場合にはずっこけるということだった模様。 まぁ、エラー処理をきちんとやろうとして、エラーリターンしたのは良いものの、 結局どこかで迷宮入りという、大きなプログラムにはありがちなことになったのだろう。 一応ACKを返すことで対策してみたら無事動作。 仕方がない、標準リクエスト位まじめに実装するか。
  • あれ?六曜がずれてる・・・修正しておかなくては・・
  • 先日秋月のH8ボードを入手したので、ざっと回路図を眺める。 期待はずれでプロセッサのバスがコネクタに出ていない I/Oピンでゴソゴソいじるのは速度の面で不満が出そうだし、 どうにかして引っぱり出さなくては。一番引き出しやすそうなのはSRAMの足か。 1.27mmピッチの半田付け。フラットケーブルでも使えば綺麗にまとまるだろうけど、 面倒くさいな。
  • EZ-USB+SDCCという組み合わせでずっと来ているのだけど、どうもあっちをいじったら駄目とか、 関数を増やすとおかしくなるといったことが良くあるので、まじめに原因チェックしてみることにした。 まずは.mapファイルを開いて、データ領域がxdata領域とバッティングしていないかチェック。 こちらは問題なし。あといろいろとセグメントがあるので、一つずつ見ていったら、 DSEG領域が開始アドレスが30hで長さ4Eh。ということは終了アドレスが7Eh。 あれ?そう言えば80hから上って・・・。 そう、8051の場合、0〜7Fhまではダイレクトアクセス/インダイレクトアクセスとも可能な空間なのだけれど、 80hから上はSFR(Special Function Register)領域と共有していて、 ダイレクトアクセスすると、SFR領域、インダイレクトアクセスするとメモリ領域になるはず。 このDSEGは恐らく7Fhまで専用なのだろうと、試しにCで普通に宣言していうるグローバル変数の宣言の前にxdataを付けて xdata領域に放り投げると、確かにDSEG領域が減っている。なるほどそれで合点がいった。 確か、スタックの節約のために特にリエントラントと宣言されてない関数のローカル変数などもDSEG領域に確保される筈。 関数を増やしたときにローカル変数を宣言するとどんどんDSEG領域を食いつぶして、 最後にアドレスが80h以上になってしまってアウトとなったに違いない。
    頼むからエラーなりWarning位出してくれぇ。
12月08日(先負)
  • USB2.0ホストアダプタのドライバがアップデートされていたので、 落としてきて接続確認をしたらターゲットがつながらない。ドライバをアンインストールして、 旧バージョンを組み込んでいると何と言うことはなく動く。 これまで使っていなかったデバイスリクエストが来ているのか等と悩んで調べていくと、 あれ?デバイスリクエストが何一つ来ていない。なるほどね。対策はいわずもがな。 ソースにちょっと手入れして無事動作したのを確認する。
12月09日(仏滅)
  • 昨日の続きで、別に作ったものもアップデート。ついでにあちこち手入れをして、改良する。こちらもメモリがきつい。数十バイト単位での領域の取り合いになっている。 一通り終わってWinMeとWin2000、それぞれUSB1.1とUSB2.0で性能測定。 ボードの方も昔作ったアダプタをつけなくては行けないし、当然自分で作ったボードのマニュアルなんて記憶の彼方。何とか思い出しながら、繋いだけれども動かない。よくよく見ていったら、電源を繋ぐのを忘れていた。コネクタに電源が出てないからジャンパで繋いだんだっけ、そういえば。
  • パフォーマンス測定結果は、まぁまずまずというところ。
12月10日(大安)
  • パフォーマンス測定しながら、別口のテスト。セルフパワーで動かしているときにUSB2.0と1.1で行ったり来たりするときに、レジスタやら内部の変数を少し変更しなくてはならないのだけれども、それをどこでやろうかちょっと考える。こんな方法でいいかとサラッと書いて、どっちで動いているのかをLED表示させるようにしてチェック。
12月11日(赤口)
  • 昨日変更したコードを別のサンプルの方に反映。そういえば、この反映作業をやらなくてはならないものがいくつかあるな。
12月12日(先勝)
  • 打ち合わせ。あれやこれやといろいろな話しが出てきている。来年は少し忙しくなるだろうか。先立つものも必要だな。
  • 何げに発掘作業をしていたら、ALPSの40MバイトのSCSI-HDD(この時代だとSASIか?)を発見。これをUCT-200にサンプルとして無償提供予定のUSB/SCSIアダプタのファームを入れてUSBで繋いでみたら認識された。試しにWin2000でNTFSでパーティション切ってフォーマットしてファイルコピー・・と思ったらコピー元のファイルが60Mバイト以上あって入らない。圧縮ドライブにしていろいろ試したら53Mバイト位でギブアップ。それでも30%位は稼げたわけだからご立派というべきなのだろう。それにしても、長寿命なHDD。
12月13日(友引)
  • Macが家にやってきた
    と書くと、まるでサンタが来たような雰囲気だが、とある方から頂きましたMacのLC II。どういう物なのかなと調べたら、1994年登場でCPUは68030の16MHz。68EC030の25MHzだったX68030より遅い。お約束で蓋をあけて中身を見たのだけど、驚くほど何も入ってない。あんまりすっきりしすぎていて寂しいくらいである。
  • 外形は昔SUNのピザボックスを彷彿とさせる薄さなので、今のバラック実験マシンの下に置いてみたらすっきり。前後を入れ替えてコネクタ類が全部手前にくるように設置てみた。ふむ、本当にSCSIは25ピンD-SUBだ。
  • Mac用のCRTアダプタを付けて、CRTと接続。電源ケーブルを入れて、キーボードと本体をケーブルで接続(ADBってミニDINの4ピンだったのか)。キーボードのもう一個のADBコネクタにマウスを繋いで、電源ON。コリコリとなかなか騒々しくHDDが動きながらのんびりと起動する。 さすがにこのクラスでMacOS7は重い。使い方もまだ慣れないので妙な感じだけれども、やはり懐かしいMacな操作性。ウインドウのデザインなどに1984年当時にはじめて眺めたときの感動をちょっと思い出していた。
  • またまた到着のBADTRANS.B。やっぱり流行っているのだな。
  • 「これが証拠だ!」のビデオ。あれ?彼はいつも右手にマイク、左手で指さしていたから、左利きじゃないの?そういう目で改めて見ると、演技も今ひとつ。
12月14日(先負)
  • サンプルで提供予定のSCSI-HDD接続用のファームウェア改良。どうもタイミングを厳しくチェックされているところがあった模様。テスト用に借りてきたSCSI-HDDが動作して一息。何気なく中身を見たら、その昔使っていた人の名残がたくさんある。なるほどPCを捨てる時にはHDDの中身まで綺麗さっぱりさせないとまずいというのは本当だ。
  • 別のサンプルプログラムのアップデート。最近ファーム屋になってるな。
12月15日(大安)
  • ユーザがUCT-200ベースで独自のアプリケーションを作るためのサンプルコードをチェックしていたらどうも動きがおかしい。以前のテストで問題ないことは確認していた筈なのだけれども、何故こういう事になったのかさっぱり。 思い当たるのはUSB2.0ホストアダプタの方のドライバアップデートがあったことと、ひょっとしたら以前はWinMeベースだったのに、今はWin2000をデフォルトに選んでいること。このあたりに何か潜んでいるのかもしれない。 とりあえず、現状真面目に動いているサンプル側との突き合わせ。
  • 見直してもよく分からない。画面を見ながら物事を考えるというのは、確かにあまり効率の良い事ではないらしい。実際にTVで脳波などをチェックした番組があったらしいのだけど、そこでもディスプレイに映った文字を読んでいる時には、紙に書いた物を見ているときのように脳が働いていないという結果が出たそうだ。「あーっ、紙に出さないとよく分からない」というのは多分この手の仕事をしている人には良くあることだと思うのだけれども、恐らくそのことを無意識のうちに気が付いているのだろう。 電子化が進むとペーパーレス化になり、紙の消費量は落ちると言われたけれども、実際に激減したなどという話しはさっぱり聞かないのはこういう事なのだろう。
  • 同じ事が本の世界にも言えるのだろう。電子ブックの類が増えれば小説などは配信すれば良い話しだということになるけれども結局電子ブックで読んだ小説の読後感が果たして紙のそれと同じかというと、やはりどこか違うことになりそうに思う。漫画などは典型で、やはり紙とインクの漫画と、液晶ディスプレイに表示された漫画ではかなり違ったイメージになりそうである。
  • なんとなれば、ひょっとすると進む方向は電子ブックではなくて、オンデマンド製本かもしれないと思える。本屋やコンビニなどに簡易印刷&製本端末があって、欲しい本はその場で印刷されて製本されて出てくるわけだ。もちろん、表紙も印刷)されて出てくる。形は統一せざるを得ないから単行本というよりも文庫本のような物になるだろうけれども。中身が事前に読めないとか、立ち読みが出来ないというのは寂しいけれども、それは電子媒体の特徴を生かして何とでも解決の手段はあるだろう。
12月16日(赤口)
  • 昨日の話しは何とかケリが付いたので、一休み。高幡不動のござれ市を眺めていたら、知らない方に声を掛けられて、どうやらスーパーだの何だのに着物で出入りしているのをしっかりチェックされていた模様。日本舞踊とか、そういう「和式」な職業な人だと思われていたらしい。いやはや。
  • 久しぶりに奥多摩に向かう。ふらりと行って、デジカメで数枚写真を撮って帰る。寒い・・とにかく寒い。ダムの放水路は凍っていた。
12月17日(先勝)
  • 昨晩TVを眺めていたら何やら妙な事を言っているのが目に留まった。何でも、戦いだの競争だのといった、男性的なものが行き詰まって、日本に本来あった包み込むとか、認めあうといった女性的なものが重視されるべきとか。
  • もし彼らのイメージしている「男性的」というものが戦闘的ということならば、例えば官僚やら政治家のようにウダウダとしている世界なんていうのは実に「女々しく」「ウジウジして男らしくない=女のような」世界ということになるのだろうか?そうしたウジウジ政治のなれの果てが今の状況とするなら、「男らしくない」ことが行き詰まりの原因という結論にならないのだろうか?ついでに言えば、米軍のあのような行いの後でも大統領支持率が80%に達するというのは彼らはどう説明しようというのだろう?米国には男しかいないとでも言うのだろうか?
  • つまりは、彼らのイメージする女性的というものは実に幼稚な「聖母幻想」に他ならない。閉塞感からくる英雄/女神待望論となるのは別段珍しいことでもないだろうけれども、いい歳をした大人が数人も出てきて偉そうに言う程のことではない。
  • ついでに、この中の一人が日本の城下町の道がズドーンとした大通りではなく、曲がりくねっているのを「女性的な感覚で作られている」などと表したのには爆笑を通り越して嘲笑である。日本の城というのは城下町まで含めての「要塞」であり、航空機などというものが無い以上、攻めにくいように道を造るのは理の当然。
  • TVやらマスメディアというものが信用するに足るものであると思うほどおめでたくはないけれども、番組を作るなら作るで理系頭な私ごときに笑われるような内容にはして欲しくないものだ。
12月18日(友引)
  • 昨日サンプルプログラムのテコ入れを終えて送付したのだが、それと入れ違いで某大手さんから変更依頼が来ていたので、そちらを処理。宮仕えの辛さは良く分かるし、それほど厄介でもなさそうなので、切り口を用意してそこで対処するように改造。予定通り動くことを確認して一式まとめてメールで送付。
  • UCT-200を使ってちょっとしたパフォーマンス測定。GPIFで簡単なウェーブフォームを作ってホストからデータを流し込んで波形観測する。ほぼ予定通りの動作で一安心。
  • 先日実験用バラックマシンから周辺機器用電源をとるため、4ピンのIDE用の電源コネクタからの分岐ケーブル380円なりを買ってきたのだが、これが実にひどい代物。ピンがグラグラしていて、差し込もうにもなかなかうまく入らない。ちょっとピンをつついてみるとグラグラと揺れて、ハウジングが何の為にあるのかも良く分からない。AMPあたりのコネクタと比べたら、まるで駄菓子のオマケ。一度差したら滅多に抜き差ししないからこんなものでも良いのかもしれないけれど、実験用で頻繁に着脱するにはは困り物。しばらく我慢しながら使っていたのだが、とうとう耐えかねて接着剤で固定してしまうことにした。二液型のエポキシの接着剤を多めにこねてコネクタ同士を勘合させた状態で後ろ側(圧着したピンを差し込む側)から詰め込んでいく。何だかアクリルの置物を作っているみたいだなと思いながら、流し終えてそのまま放置。固まった頃合いを見計らって挿抜してみたら実に具合が良い。ハウジングを合わせれば何の迷いもなくすんなり勘合する。これでよし。
  • 先日入手したMacとちょっと戯れようと思って、ADB(Apple Desktop Bus)用のケーブルをハードオフのジャンクコーナーで調達する。300円というのは高いなと思うけれど新品で買うよりはマシというものだろう。
  • 日立のサイトでH8用のモニタがあることを教えてもらう。セミナーの方にあるなんて、普通気付かないよな。
12月19日(先負)
  • 日立のモニタをダウンロード。H8からのシリアルケーブルはUCT-100用に作っていたケーブルをちょっと改造して、UCT-100とH8ボード共用タイプに作り替える。キットに入っていたCD-Rから関係しそうなファイルをコピーして、書き込みツールもインストール。ポートをON/OFFするだけのサンプルプログラムが入っていたので、これを書き込んでみたら無事動作。
  • さて、これでシリアルケーブルも無事に使えたことが分かったし、日立のモニターを入れれば良いのだと思って書き込んでみたら全然動かない。何をしてもうんともすんとも言わない。これはひょっとして拡張バスコネクタをつけたのが敗因かと、半田付け箇所を全部見直すが、特に問題はなさそう。気持ち悪いのでとりあえず引き出したケーブルを全部外して様子を見たが駄目。ひょっとして壊したか?とも思ったが、考えてみたらサンプルプログラムが動いた以上おかしくした可能性があるとしたら、CPUと外部メモリの接続位しか考えられない。
  • よく分からないままマニュアルの正誤表を眺めていて、外部RAMのアドレスに目が行く。(誤)は”H'20000番地から”、(正)は”H'200000番地から”と一桁増えている。そういえばH8って動作モードがたくさんあったなと思い出して手元のH8/3048のマニュアルを見ると、(誤)の方が正しそう。これは一体?と思って改めてH8/3067のマニュアルを眺めていると、今度は(正)の方になっている。まさか!と思ってマニュアルの後ろの方まで検索を掛けてみたら、出てきたのは、”H8/3067、H83062シリーズとH8/3048シリーズ、H8/3007、H8/3006とH8/3002の相違点”という、何とも長ったらしい表。
  • ここで、しっかり出ていた。基本的に秋月キットではモード5で動いているのだけれども、これは3067では16MB/ROM有効拡張モードなのに、3048では1MB/ROM有効拡張モードになっている。これではメモリマップがまるで違う。つまりは存在しないRAM領域をワークにしてしまっていたわけだ。
  • それならモニタを作り直すことが出来るはず・・と思って見るとLBR.EXEとやらが必要らしい。恐らくライブラリアンだろうけれども、これが無い。日立のサイトに行ってみたら期間限定版のツールが転がっていたので、多分これだろうと落としてみたのだが、やはり入ってない。LBREX.EXEというのがあったので試しに起動してみたらこれはWindows版のライブラリアンだったので、コマンドラインからは使用不可。さてどうしたものか。
  • 試しに秋月キットに付いてきたアセンブラで、日立のモニタのソースコードをアセンブルしてみたら通るようなので、とりあえず関係ありそうなファイルを全部アセンブルして、ダミーのコマンド分を除いて(ADVDMYディレクトリ分)リンクしたらベクタテーブルがいくつか無いというメッセージ。適当に何かあれば良いのだろうとばかりに、dmy38.srcとやらから重複シンボルだけコメントアウトしてアセンブルして無理矢理リンクしたら、何とか通って、.motファイル(要するにSレコードフォーマットファイル)は生成されたのだけれど、書き込んでみても相変わらず何も応答無し。
  • ところで、書き換え可能回数はどのくらいかと思ってマニュアルを眺めたら100回だとか。この調子で書き換えやっていたら100回なんてあっと言う間。この調子で日立モニタのソースと戯れているより、とっととSRAMデバッグできる環境を作っていく方が早いだろうか。とりあえず、RAMベースでもデバッグできるように考えるか。
  • そのつもりで、日立のサイトにあったHterm(DOS版/Win版ともあり)を見ると、内蔵フラッシュROMへの書き込みというメニューがある。Windows版を起動してみたら、「書き込み制御プログラムの選択」というウインドウが出てくる。はてと思ってヘルプを見たら、「制御プログラムはフリーでは提供していません」とのこと。ということは、「これは書き込み制御プログラムである」と嘘をついてアプリケーションをダウンロードすることだって出来るはず。試しにサンプルプログラムのアドレスをダウンロード先($FFF400に固定されている)にリロケートして書き込み制御プログラムとしてダウンロードしてみたら確かに動いている。そういうことか。それにしてもモニタが動かないのはいささかシャクにさわる。明日もう一度チャレンジしてみよう。
12月20日(仏滅)
  • H8のモニタをなんとか動かすべくスタート。まずはダウンロードしているファイルを確認するのが基本だろうということで、自分で書いたレコードフォーマットの説明を眺めながらモニタのSレコードファイルのチェックをする。まずはリセットベクタからだな。リセットベクタは0番地からなので、アドレスフィールドに0が並んでいるのを見つけて、アドレスをメモ。次にそのアドレスから始まっているフィールドを見つけて、データとソースリストをつきあわせてみる。まずはスタックポインタの設定だなと思ったら、どうも話しがおかしい。スタックが変な所に設定されている。
  • あれこれ眺めていたけれども原因が分からず、もう一回リンクしなおして出来たファイルを眺めようとしたら、タイムスタンプが更新されてない。よくよく眺めてみたら、リンク用のバッチファイルを作った時に最後にSレコードフォーマットに変換する為の一行を入れ忘れている。改めてバッチを修正して生成したSレコードファイル(MONITOR.MOT)を眺めてみたら、スタックはそれらしい値。ひょっとして原因はこれだったか。改めて出来たMOTファイルを書き込んで、シンクロのプローブをTxD側に触れながらリセットをかけたら、これまでうんともすんとも言わなかったのが、今度はトリガがかかった。シリアルポートからなにがしかの文字をを出力したに違いない。期待しながらHTERMを起動してもう一度電源を入れ直したら無事にオープニングメッセージが表示された。メモリダンプなどもマトモに行えることを確認する。
  • これでアプリケーションをダウンロードして遊べるかな?と思って、秋月キットのサンプルをリロケートしたものを用意してダウンロードしようとしたらチェックサムエラーが出てしまった。何のことかと思って、キットのツールで生成されたSレコードを調べたら、何とチェックサムが2の補数である。日立のサイトにおいてあるモニタのダウンロードデータも、そしてCygwin上のクロスでも生成されるSレコードのチェックサムは1の補数なわけで、これは恐らく秋月ツールのミスだろう。モニタ側のチェックサムのチェックをバイパスしてしまう手もあるのだけど、何となく気に入らないので、正規のチェックサムになるように修正するツールをawkで書く。a2pにかけてPerlにしても良いんだろうけど、awkの方が表記がCに近いので好みである。
  • モニタはとりあえず使えるようになったし、アプリケーションもダウンロードできるのだが、SRAMがアクセスできない。内蔵SRAMが少ないH8としてはやはり32Kの外部RAMは貴重なわけで、これが使えないのは痛い。改めて波形を見ていたら、チップセレクトが出ていない。なるほど、デフォルトでは入力ピンだからな。モニターではどうも使わないレジスタはあえて出力にしないというごくまっとうなことを考えているのだろう。モニタのソースコードのイニシャライズ部分に追加して無事RAMアクセスが出来ることを確認。試しに簡単なメモりテストプログラムをアセンブラで書いて走らせてみたが、特に問題なし。
12月21日(大安)
  • ニッコー電子にて、UCT-200のレビジョンアップ版が完成したのでチェック。動いたことを確認し終わったら、22:30。電車に乗り、京王線に乗り八王子に着いたら日付も変わろうかという時間。この時間、既にバスは無いしタクシー乗り場は行列。やむなく並んでいたのだけど、結局一時間待ちになってしまった。寒空の中、着物だからまだ暖かかったけど、ズボンだったら冷え切っていたに違いない。
12月22日(赤口)
  • 名古屋メタリック通信のD−FAXサービスに登録してみた。無料で専用のFAX番号が一つもらえて、到着したFAXはメールの添付ファイルとして受信できるというもの。FAX送信側から料金を取るという格好なので、受信だけならお金はかからない。紙切れだの何だのの心配が無いのも良いところなので、とりあえず登録だけしておいた。これで名刺にもFAX番号の後ろに電話と共通と書かなくて良いし、自宅FAXは送信専用ということで構わないというわけだ。明日にでも試しにコンビニから送ってみるかな。
  • コンビニでブルボンの「MUSIC FACTORY」というチョコを買った。(ご参考画像)。まだ開封していないのだが、円盤型のチョコレート2枚と「Female non Fiction」のショートバージョンの曲が入ったシングルCDが入っているほか、中のCDパッケージに書いてあるID番号を使って小室哲也のオリジナル着メロがダウンロードできるとのことで、1個300円。
  • ところで、ブルボンの株価は911の影響もあまり受けていない模様で、今年1月にドンと値を上げてから、3月頃に800円近くまで上がった後は600円から700円程度でずっと推移。可もなく不可もなくというところなのか。
12月23日(先勝)
  • 先日DIYショップを覗いたとき、私が使っている半田ゴテメーカからコテ先をリフレッシュする「Tipリフレッサー」なるものが出ているのを見つけて買っていたので使ってみる。今時のセラミックヒータータイプの半田ゴテのコテ先のようにメッキしてあるものだと、時にメッキに酸化膜が出来て黒くなってしまって、はんだが乗らなくなることがあるのだけど、この酸化物を除去して、スズの粉末で再コーティングしてはんだが乗るようにするというもの。小さくて丸く平べったい金属缶の中に灰色の妙な固形物。ここに暖めたコテ先をこすりつけるだけで良いらしい。やってみたら、なるほど、これまで一部真っ黒になってはんだが乗らなくなっていた部分が銀色に戻ってはんだが乗るようになった。一個500円だけれども、当分使えるだけの量が入っているのでまぁ良しとしよう。
  • CPLDの開発環境整備をする。とりあえず、LatticeのMACHが書けるようにというところが目標。既に20V8等のSPLDならば回路図からEDIFを生成して、JEDECファイルを生成し、ユニバーサルプログラマで書き込むというところまではやっているわけでもあるし、今回ターゲットにしようというデバイスはツール側で既にサポート済みのデバイスファミリなので、JEDEC生成までは問題なし。後はISPする為のツールが動けば良い。
  • とりあえずLatticeのサイトから、ダウンロードツールを落としてインストール。続いてケーブルなのだけど、これが良く分からない。とりあえずそれらしいドキュメントがあったので、真似して作ったのだけど、「ケーブルがつながってない」とのメッセージが出るだけ。
  • そういえば、昔Lattice関係のツールをもらったことがあったなとずっと眠りっぱなしだった箱を発掘。開けてみたら、サンプルデバイスやドングルと一緒にアダプタケーブルが出てきた。早速繋いでみると、今度は「ケーブルはあるけど、ターゲットの電源が入ってないよ」とのこと。これはうまくいくかな?と、とりあえずコネクタ変換ケーブルだけ作ってターゲットと接続。ターゲットの電源を入れて、デバイスをスキャンさせたらしっかり認識される。
  • 早速CPLDの中身をOrCADで書いておく。いつも通りネットリスタをオプション付けて起動してからEDIFを作成。EDIF作成は久しぶりだったのでピンやデバイスの指定でちょっと手こずったものの、とりあえずクリア。出来たJEDECをISPツールの方に転送。マニュアルもロクに読まずに、認識されたデバイスの所にJEDECを指定すれば良いのだろうと、いそいそとやってダウンロードしたらなんと言うこともなく成功した模様である。
  • 書き終えたターゲットを動かすためのソフトウェアをダウンロードしてチェック。まっ、とりあえず波形も何も見ずにドンと行ってみようとやったらいきなりうまく動いてしまった。あまりにあっけないので、本当に動いているのか不安になって、CPLDをもう一つの動作モードに切り替えてそちら用のプログラムを落としたらこちらもパス。中身は単純でうまくいっても自慢になるようなものではないけれども、これで一応の開通をみたわけで、これから先何かと重宝することだろう。
12月24日(友引)
  • TVは昨日以来の不審船騒ぎの一日。それにしてもネズミ一匹捕まえるのにずいぶんとまぁ。とこで、記者会見で質問している記者のレベルの低さはどうだろう。船長がポーカーフェースを維持するのに必死だったのはなかなかの見所ではなかったかと思う。ご苦労さんでした。
  • 昨日のLatticeのダウンロードケーブルだが、アダプタ部分でちょっとした回路があることは間違いないさそうだ。そういえば以前データブックのどこかに「中身はこうなってるよーん」というのが載っていた筈なのだけど、Latticeのサイトでは見つからない。一応ダウンロードケーブルのマニュアルはあるので落としてみたものの、信号名、コネクタのピン配置はあっても、アダプタそのものはブラックボックスで、どういう回路でつながっているかは書いてない。以前見たもは確か74LS367あたりのバッファを一個入れた程度の物だったので、どうせ大したことはあるまいと、お約束の分解をしてみることにする。
  • 中を見たら、74VHC244とトランジスタらしきものが2個、後は抵抗アレイとディスクりーとの抵抗、コンデンサ、ダイオードが少々というところで、ざっと見た感じでもどうという事はないので、早速基板を取り出してリバースすることにした。
  • 基板は幸いな事に両面基板。付いているトランジスタらしきものはNS(ナショナル・セミコンダクタ)のロゴ入りで、型名はPN2222AとPN2907A。NSがトランジスタなんて作っていたか?とサイトに行ってみたら、旧フェアチャイルド製品だそうでちゃんとデータシートも置いてあった。何のことはないありきたりなNPNとPNPのトランジスタだった。そこらの小信号トランジスタで代用してしまっても全然構わないだろう。
  • 書き上がった回路図をざっと眺めて整理/清書。結局単なるバッファで、ゲート制御にNPN、電源ステータスチェックにPNPのトランジスタが使われているというものだった。そのうち暇を見てOrCADで清書してアップしておくかな。
  • ケーキ作り。とはいっても、例によって卵3個でOKなるものを使ってスポンジを作って生クリームやら何やらを載せまくるという例のパターンだけれども。卵を室温に戻しておくのを忘れたのでなかなか泡立たずに悪戦苦闘で腕がだるい。まっ、去年よりはうまくいったかな?
12月25日(先負)
  • 愛用していた万年筆が行方不明。さんざん探しているのだが未だ見つからず。どこかで落としたのかもしれないか。せっかく掃除してコンバーターまで買ったというのに。
12月26日(仏滅)
  • 栗羊羹などでも有名な小布施にある北斎館まで行ってみた。途中休憩を除くとだいたい片道3時間。雪がふっているとかで、高速がチェーン規制されたらどうしようかと思いながら走っていくと、トンネルを抜けたら雪。幸いなことに、ちょうど下りるインターの所からチェーン規制だったので、すんなり下りる。そういえば、タイヤ交換はおろかチェーンをつけることすらやったことがない。一回位練習しておくべきかな?
  • 北斎といえば、富岳三十六景は有名だけれども、後期はむしろ手書きの絵の方がメインだったそうで。(こういう春画ももちろん描いているわけだけれどもそちらについては北斎館では全く触れられていない)
  • 北斎は雅号を度々変えているのだけれども、晩年の雅号が「画狂老人卍(まんじ)」とは知らなかった。ふと「芸夢狂人」を連想した私はやっぱりマイコン世代か。
  • おみやげコーナーを眺めていて雪中せきれいが気に入ったので、色紙と額のセットを買ってみた。なんとも情緒のない物ばかり並んでいる中で、北斎というのも乙なものだろうと、にんまり。そういえば、最近玉堂美術館も行ってないな。冬の展示でも見に行くか。
12月27日(大安)
  • 別件の頼まれ物の調査。某所より入手したドキュメントと波形をつきあわせながら眺めていたのだけど、どうにも話しが合わない。動いている以上ドキュメントよりも波形を信用するというのは、ドキュメントよりもソースコードを信用するというのと同じ。
  • いくつか調べた後で、あちこち検索をかけていたら、やっと見つけた。先に出てきた資料はハードから上がってきたデータを一次加工した所のデータの意味だったのだろうか。あるいは当初はそのつもりだったのが方針変更となったのだろうか。まっ、とりあえず分かったから良しとしよう。
  • このところ、半田付けをするときに、机の上に小振りの段ボール箱を2個積んで、高さ15cm位の台にしてその上で作業している。とある人の真似なのだけど、これが案外具合が良い。ある程度大きなものを作る時は机の上に直接でも良いのだけど、0.5mmピッチのICの足に電線を半田付けするといった、細かい作業になってくると、猫背になってしまって腰や背中が痛くなってくるのだけれど、台の上に載せればそれがない。ただ、なにぶん段ボールなので、強度がやや不安。具合が良いのは分かったので、手頃なベニヤ板でも切って作るかな。
12月28日(赤口)
  • ちょっと半端な周波数が必要になって、CypressのクロックシンセサイザIC、CY22150を使ってみることにする。入力周波数からPLLを使って最高400MHzまで持ち上げてディバイドできるというもので、設定をプログラム可能である。ライター添付の専用ツールをインストールしてから、入力周波数、内部PLLの目標周波数、出力端子と分周比設定をしてやると計算結果が出る。手持ちの手頃な水晶で何とか近い値が作れないかと思ったらちょうど14.31818MHzというそこらじゅうに転がっているものを使うと計算上10ppm以下の精度。これだと水晶の誤差の方がずっと大きいわけで、まず問題なし。
  • できあがった計算結果をどうするのかとメニューを眺めて、とりあえずセーブしてみたら、JEDECファイルができていた。これをそのままライターで書けば良いのだろうと、ライティングソフトを別マシンにインストールして、ネットワーク経由でコピー。ライターの電源を入れたら何やらエラーメッセージが出たけれど、無視してライディングソフトを動かしたら、あっさり完了した。一応念の為にベリファイしたけど問題なし。最初のライターのエラーメッセージは何だったのやら。
  • 書き込んだデバイスを半田付け。0.65mmピッチだと格段に楽でいい。取り付けて電源ON!シンクロで見ると見事に計算どおりの周波数。やはりこうなると周波数カウンタが欲しくなるな。
12月29日(先勝)
  • 少し寝かせていたH8マイコンを再び。このキット、通常はモード5で立ち上がって内蔵フラッシュROMからブートするのだけど、CS0/もSRAMに接続されているので、内部フラッシュを殺してモード1で起動することも出来るということだ。つまり、
    • モード5でフラッシュROMのモニタを起動
    • SRAMにプログラム(0番地から始まるプログラム)をダウンロード
    • モード設定ピン(MD2)をI/Oポート(回路図ではP63)で'L'にする
    • CPUにWDTをかけてリスタート
    という小細工をすることで毎回フラッシュに焼かずにSRAMでフラッシュROMエミュレーションができるようなことが書いてある。先日の追加でモニタの方は既に外部SRAMがアクセスできる状態になっているし、実際に200000h番地からダウンロードして動かしてみたりしているので、SRAMへのダウンロードまでは問題ない。面倒なのはWDTをかけるあたりなので、このコマンドを追加してみることにした。
  • とはいっても、それほど面倒な物ではなく結構簡単に終わった。Zコマンドにして、ZでWDTがかかって再起動という案配である。一応リブートするところまで確認して、いよいよモード切替だとばかり試してみたのだがうまくいかない。SRAMには何も書いてないので、いきなりハングアップするはずなのに、フラッシュROMのモニタが起動してしまう。
  • よくよく調べていったら、いくつか問題がある
    • モード5からモード1に切り替わるようになっているが、モード5は16Mバイトモード、モード1は1Mバイトモードであり、メモリマップが違う
    • P63はAS/とマルチプレックスだが、モード5ではAS/で使われるため、I/Oポートとしては使用不可!
    特に二番目は秋月のミスとしか思えない。でも、AS/だとすると、外部SRAMアクセスする度にパルスが出ているので、WDTがかかったときはいつもモード1になってしまうのではないか?何でフラッシュからブートするんだ?とシンクロで見てみたら、モード切替回路にAS/らしき信号が来ていない。テスターで当たっても導通無し。パタンはCPUの下までは伸びているのだけれど、恐らく最後の最後でミスに気が付いて基板のパタンだけ修正して、マニュアルの方の修正を忘れたというあたりなのだろう。とりあえずこのままでは仕方ないので、別の汎用ポートを使ってみよう。
  • ポートすり替えと、WDT後のモードが3になるように配線を変更して実験。SRAMにそれっぽいプログラムを転送しておいて、モード切替ポートを叩いてWDTでリセットをかけたら、どうやら無事に飛び込んでくれたようだ。調子に乗ってモニタプログラムのSレコードファイルをRAM領域にダウンロードするようにawkで加工ダウンロード後に内容を見たらそれなりになっている感じだったのだけれども、うまくRAMベースでは再起動できなかった。どうも定周期でリブートを繰り返しているような感じがする。詳細は明日調べるとするか。
12月30日(友引)
  • 正月はやっぱり伊達巻きが欲しい。小田原は鈴廣の伊達巻きが美味だったのだけど、昨年近所のデパ地下で買ったのは同じメーカの物と思えないくらい不味かった。きっと年末年始向けでOEMしてもらっているか、あるいは随分前の作り置きなのではないだろうか。ただ、さすがに現地でそんなことをすれば痛く評判を落とす筈だから、当地小田原に行けば問題あるまい。というわけで、車で出かけてみた。例のごとく南下した後は小田原厚木道路に入って600円。終点には行かずに一つ手前で下りて記憶にある道を走っていくと久しぶりの小田原城。コイン駐車場に入れてちょっと歩いて目指す伊達巻きをGET。ハーフサイズで900円なり。そのまま城内を横断して駅前に出て、こちらでもちょっと買い物。駅前の鈴廣では蒲鉾を一つ買っておく。ケースを眺めていたら、一本3000円を越える値段の伊達巻きまで置いてあるのだけど、それだけの値を付ける程旨いのだろうか。帰りがてら、「月の虎さん」と称するドラ焼きならぬ「トラ焼き」を買ってみた。これは結構美味。
  • ご当地の伊達巻きはやっぱり本物だった。もう一本買っておけば良かったな。今度はかの3000円超えの伊達巻きも試してみるか。
  • 昨日の問題点を考えていてふと気付いた。チップセレクト関係の設定がROMベースの時のままではいけないのではないだろうか。考えてみると、先日SRAMがアクセスできるようにとコードを追加したとき、CS0は出力しないように(CS0領域はCPU内蔵のフラッシュメモリを使うから)しているのだけど、これがそのままではSRAMからブートしてここにたどり着いたとたんにCSOが出なくなって、SRAMが読めなくなってしまうに決まっている。
  • SRAM用の時はCS0がイネーブルされ続けるように変更したSRAMバージョンのモニタSレコードを作ってSRAM領域にダウンロード。期待を込めてWDTコマンドをかけてリブートさせたらSRAMバージョンだと分かるようにちょっと変更しておいたオープニングメッセージが出た。シンクロでSRAMのCS/を見るとやたら頻繁にアクセスしているので、SRAMベースで動いていることは間違いない。テストプログラムを内蔵SRAM領域にダウンロードして実行なども大丈夫。CS1領域もイネーブルされているので、$200000番地から読み出すと$0からと同じものが読めるのはご愛敬だけど、ベクタ領域の256バイトほどが全部0になってしまっているのは何故だろう?
12月31日(先負)
  • 世間では大晦日ということらしいけれども、こちらはさっぱり変化の無い一日である。とりあえずH8ボードの改造は終わったので、拡張バス変換アダプタを作ることにする。ありがちな展開として、ISA風味なI/Oをアクセスできるようにしようという魂胆である。ISAのユニバーサル基板は痛く高価なので、ちょうど一年位前に作りながら結局ページ数の関係で本に載せるのはボツになってしまった時のISA-PC/104風変換アダプタを掘り起こす。PC/104式だと、普通の2.54mmピッチのピンヘッダが使えるので、そこらの安物ユニバーサル基板で充分。
  • とりあえず掘り起こしたものの、やっぱり信号配置とピン番号位表示があった方が便利だなということで、PC/104の信号配置表をwebからコピーして、Excelで整形。縮小プリントして、基板に張り付けてみたら、結構使い勝手がよさそう。
  • 回路を考える。BALEはどうしようとか、8MHzのSYSCLKは必要か、IORDYは対応すべきか等々いろいろあるけれど、とりあえず8ビットバスで動くようにすることだけ考えることにするか。
  • 特に面白そうな物もないので、紅白を眺めている。結局最後まで見ていて耳に残ったのは、ドリフターズと浜崎あゆみ。
  • というところで、1年間ご苦労様でしたと自分に言い聞かせて寝る。

戻る