2014/03/24(月)まだ積雪は多い
2017/10/12 17:13
2014/03/13(木)トランジスタによる論理反転の無い 3.3V → 5V/12V etc.. レベルシフト
2017/10/12 17:11
ICを使うほどでも無いとか、使えないとか言う場合も多々あります。
今回は、ICを使うほどでも無いのと、電源電圧の問題でトランジスタによるレベルシフト(しかも、論理反転しないもの)が必要でした。
たぶん、一定の汎用性があると思います:

Vcc は、レベルシフト後のHレベル電圧より若干高い電圧を与えます。
ここでは例示として、 6V としましょう。
Rc は、Hレベルのときに流れる電流で電圧降下を起こすので、その電流を加味して決めます。
ここで 100μA と仮定すると、10kΩでは1V の電圧降下になります。
RB1 と RB2 は、ベース電極の電圧が、Hレベルとして判定させたい電圧 + VBE(0.6V) になるように分圧するようにします。
ここでは、RB1 と RB2 は同じ 30kΩなので、ベース電極の電圧は 3V になり、エミッタ電極の電圧が 2.4V 以上になれば、Hレベルと判定されます。
ところで、提示の回路には、ダイオードが入れてあります。
これは、回路的にVEBOを超える逆電圧が加わる可能性があったために入れたもので、通常は不要と思います。ちなみにこのダイオードを入れると、エミッタ電圧がダイオードの順方向電圧分だけシフトした形になり、更に 0.6V 低い電圧 1.8V 以上でHレベルと判定されることになります。
つまり、この回路は、トランジスタのベース・エミッタ間電圧(VBE)が 0.6V 以下なら、トランジスタは OFF(C-E間は非導通)するので、Vcc の電圧がそのまま OUT に現れ、
0.6V を超えると、トランジスタは ON (C-E間導通)するので、コレクタ電極の電圧がほぼゼロになるという動作を、エミッタ電極に与える電位差でコントロールしています。
Lレベルのとき、RC によって電流制限されるので、このときの電流にも留意する必要があります。この回路定数では、VCE(sat) を無視すると、600μA になります。
C-MOS IC の場合は問題ありませんが、TTL IC を接続する場合は、この回路定数では問題が起きると思います。RC を適宜変更してください。
RB1 と RB2 は、トランジスタの hFE分の1×10倍程度以上のアイドリング電流が流れれば十分です。あまり小さい抵抗だと、回路の消費電流が無駄になるだけですので、RC の数倍から10倍程度でいいでしょう。
2014/02/27(木)当拠点では今年初・・
2014/02/17(月)FreeBSD 9.1/9.2 における ports/packages 管理に異変
2017/10/12 17:08
当方管轄で FreeBSD 10 を突っ込むのは 2台だけにして、残りは FreeBSD 9.1/8.4 を従来どおり稼動させています。
ですが、ports にてアプリケーションソフトウェアの更新をしていると、
/!\ WARNING /!\ pkg_install EOL is scheduled for 2014-09-01. Please consider migrating to pkgng http://blogs.freebsdish.org/portmgr/2014/02/03/time-to-bid-farewell-to-the-old-pkg_-tools/ If you do not want to see this message again set NO_WARNING_PKG_INSTALL_EOL=yes in your make.confというメッセージが時折出てくるようになりました。
要するに
・ pkg_install ユーティリティは 2014/09/01 には使えなくなる予定です。
・ だから pkgng に切り替えることを検討して欲しいです。
・ このメッセージがウザい場合は、貴方のマシンの /etc/make.conf に
NO_WARNING_PKG_INSTALL_EOL=yes という設定を追加してください。
というメッセージです。
FreeBSD 9.1/9.2 にて pkgng に切り替えるには、
まず、
/usr/sbin/pkgを、コマンドラインで実行し、更に、
rehash pkg2ngと順番にコマンドラインで実行して、管理データを変換し、最後に /etc/make.conf に
WITH_PKGNG=yesを追加することで、使用できます。
筆者は、/etc/make.conf への設定追加を忘れて、しばし嵌りました・・orz
(引用:http://www.freebsd.org/doc/ja/books/handbook/pkgng-intro.html 〔5.5. pkgng によるバイナリ package の管理〕)
2014/02/15(土)FreeBSD 10 上で Apache 2.4.7 やPHP は動作しない?
2017/10/12 17:06

具体的には Apache 2.4.7 + mod_perl 2.0.8(スタティックリンク) + PHP 5.5.9
という組み合わせ。
Apache 2.4 において、mod_perl は公式には使えないですが、Apache 2.4 用にパッチを充てているため、使用可能にしております。
FreeBSD 10.0R の openssl バージョンは 1.0.1e が組み込まれています。
蛇足ですが、openssl のこのバージョンではブラウザ側さえ対応すれば、ネームベースのバーチャルセキュアSSLサーバが提供できるようになります。(普及の足を引っ張っているのは IE なわけだが・・)
まず、clang 環境で構築すると、mod_perl ライブラリをリンクするところで、原因不明の「シンボルが未定義っす。。」みたいなメッセージをかなり大量に吐いてコケます。つまり、「使えそうに無い」のです。
Apache 2.4.7 単体、あるいは動的リンクだと clang 環境でも構築可能かもしれませんが、こちらでは未検証です。
ならば、gcc 環境を強制すればいいのですが、環境変数 CC を gcc に設定するだけでは駄目で、mod_perl 側の Makefile をコンパイル前に書き換える必要があります。
mod_perl のトップディレクトリにて、
perl -pi -e 's/CC = cc/CC = gcc/' Makefile perl -pi -e 's/CC = cc/CC = gcc/' */Makefile perl -pi -e 's/CC = cc/CC = gcc/' */*/Makefile perl -pi -e 's/CC = cc/CC = gcc/' */*/*/Makefile perl -pi -e 's/LD = cc/LD = gcc/' */Makefile perl -pi -e 's/LD = cc/LD = gcc/' */*/Makefile perl -pi -e 's/LD = cc/LD = gcc/' */*/*/Makefile perl -pi -e 's/\tcc \-E/\tgcc \-E/' Makefile perl -pi -e 's/\tcc \-E/\tgcc \-E/' */Makefile perl -pi -e 's/\tcc \-E/\tgcc \-E/' */*/Makefile perl -pi -e 's/\tcc \-E/\tgcc \-E/' */*/*/Makefileのようにして、コンパイラ gcc 使用を強制させる必要があります。
(このままでは、デフォルトコンパイラ clang 使用が強制されるため)
ところがこのようにして構築しても、Apache 2.4.7 + mod_perl を起動させても、
表示はハングしてしまい、まともに使えません。
Apache 2.4.6 まで使えていた mod_perl の Apache 2.4 パッチが利用できない状況になったのかもしれません。
Apache 2.4.6 であれば、上記の手法にて FreeBSD 10 上で運用できます。
もうひとつの問題は、PHP 5.5.9。
どういうわけか libphp5.so が作成されません。
configure でも shered Library Support は no とされてしまいます。。
原因は判らないが、構築環境の問題であることは確か。
下記ページを参考に、手動で .so ファイルを作成しました。
Permanent Link to How to compile PHP5 on 64bit Linux (CentOS) [hiro345]
ところで、提起ページでいう「かなり長いコマンド」は、実に20000文字近い長さがあり、通常環境では、上手くいきません。こんなときは、バイナリエディトするのです。
unix 環境では、hexedit とかあるのですが、インストールが面倒なので以下で示すようにして、「かなり長いコマンド」をファイルにして、編集しました。こんな感じです:
vimでバイナリを表示し、値を変更したい [rdera ブログ]
これで、こんな感じで構築できました。

2014/02/15(土)FreeBSD10 でアプリケーションを構築してみる
2017/10/12 17:04
この方法だと、構築に要する時間はかかりますが、旧環境は温存できます。
それはさておき、FreeBSD 10 はどんなものか、を把握するために、ちょっとやってみたところが・・・

正直、嵌ったので・・・orz
情報で得る内容と、実際に実務作業して得る内容は概して異なることが多いので、こうして経験することが重要なのです。
まず、ports の内部管理方法が変わり、portupgrade コマンドでアプリケーションの更新をしようとすると、「pkgng をインストールしろ」みたいなメッセージが出て怒られてしまい、以下のような手順が表示される :
- switch to pkgng: 1) Add WITHOUT_PKGNG to /etc/make.conf 2) Install ports-mgmt/pkg 3) Convert your package database by running pkg2ng 4) Remove WITHOUT_PKGNG from /etc/make.conf提示されたとおりにして、再び portupgrade コマンドでアプリケーションの更新を行うことができました。
portsnap コマンド、portversion コマンドなどは、画面表示が若干変更されていますが、従来どおり使用できます。
気になる(ここからが本題)のが、デフォルトのコンパイラが clang に変わったことによる影響です。
当方では、痒いところに手が届くよう、一部の主要ソフトウェアをソースコードから構築しています。それらソフトウェアに対する影響です。
結果、これに嵌りました・・・ 以下、こちらで判明した内容です。
ただ、十分な確認はしていません。
筆者の通常環境である、環境変数 CC を未定義にしておいたときの状態です。
・Postfix : clang 環境でも問題無さそう
・dovecot : clang 環境でも問題無さそう
・PostgreSQL : configure が gcc を強制する。
・OpenLDAP : clang 環境でも問題無さそう
・Courier-Authlib: configure が gcc を強制する。
・Maildrop : configure が gcc を強制する。
・ClamAV : configure が gcc を強制する。
・Apache 2.4 : clang 環境では構築不可。 環境変数 CC で gcc を強制要。
・PHP 5.5 : clang 環境では構築不可。 環境変数 CC で gcc を強制要。
・mod_perl : clang 環境では構築不可。 環境変数 CC で gcc を強制要。
・rsyncd : configure が gcc を強制する。
・proftpd : configure が gcc を強制する。
筆者の環境では、Web サーバにて Apache 2.4 + mod_perl + PHP 5.5 という組み合わせと、 Apache 2.2 + mod_perl + PHP 5.4 という組み合わせで運用しています。
実は、この組み合わせでも嵌ったのですが、別記事にします。
2014/02/13(木)この風景も見納め??
2017/10/12 17:01
これは駅前通り(国道36号線)の様子。

左側に三越が見えますが、このあたりから、南4条までこの道路の両脇を路面電車が通ることになります。
ええ、雪解けたら工事が始まるんです。
札幌市からは何も言ってきませんが、中央分離帯に生えている大きい木は、路面電車の架線の安全性確保から見て、撤去されると思います。
札幌で唯一残っている路面電車を、南1条と南4条の間を接続して「ループ化」するという事業。
地元市民の中では、どちらかといえば「反対」の声の方が多い。
#客観的データ取ったわけではないが、当方が会う人は「反対」のほうが圧倒的。
現市長の自己満足的強引な事業と言ってもいい。いますぐ辞めさせたいのは山々だが、今は後釜にまともな人がいないので我慢している、と言う感じ。
この道路、元々片側3車線幅あったわけではなく、1960年代初頭に激しい拡幅反対運動が起き、苦渋の立ち退きをした沿線住民の犠牲の上に拡幅された道路。
ただでさえ渋滞するのに、更に渋滞に拍車かけて、車両締め出して旧市街化しようとでもしているのかの模様。全く現実的ではないんです。
この道路の北側、大通りから札幌駅前までも既に現市長の自己満足事業で歩道が拡幅され、中央分離帯の大木が引き抜かれ、車線が1つ減っています。
変なところにカネかけて、肝心な部分をケチる現市長の行政は、「コンクリートから人へ」と豪語していたどこかの政党と同じ香りです。
2014/02/12(水)MZ-2500 の FDD を修理する - 収納工作編
2017/10/12 6:01
構造を検討したところ、以下の材料で収まりました:


10mm 角の木材・6mm 角の木材・2.4x16mm の木ネジ
材料費の合計は 270円。
FDDが収まらないため、90度に曲げられていたコーナーをこのように延ばしました。

このガイドは幅 3mm 、下のFDDドライブから3mm 浮いています。

長さ 15.8cm に木材を切断し、6mm 角材と 10mm 角材を接着。
この時、面のひとつの高さを合わせる。

こうすることで、コーナーの段差を無くし、これから上に載せるFDDの土台を形成します。
これは、FDDを抜き差しするときのツマミですが、MZ-2500 本体に空いている穴の位置がずれていて、操作の妨げになるので、数mm 削る必要があります。

このように、土台をネジで固定。

更に前後の位置決めに注意しつつ、木ネジでユニットに固定。

これで、何とかFDDを MZ-2500 に固定できました。
また、MZ-2500 には、時計のバックアップの為にリチウム電池が基板直付けされています。
さすがに 30年近い歳月が経過し、このリチウム電池が逝っていたので、代わりに 単3乾電池を2本を接続しています。
殆ど電気食わないので、単5電池2本でも大丈夫かと思われます。
(リチウム電池は電圧3Vなので、乾電池は2本必要。)

2014/02/05(水)MZ-2500 の FDD を修理する - 動作確認編
2017/10/12 5:58
SuperMZ とか、火の鳥とか呼ばれていました。
筆者は 1986年、新品で購入しました。
このシリーズは4つあり、
MZ-2511:FDD 1台・80B/2000モード・フルロジカルコントロールデータレコーダ付き
MZ-2521:FDD 2台・80B/2000モード・フルロジカルコントロールデータレコーダ付き
MZ-2531:MZ-2521 の改良版(SuperMZ V2)
MZ-2520:MZ-2521 から 80B/2000モードとフルロジカルコントロールデータレコーダを取り去ったもの
とあります。Google で検索すると、このあたり結構間違った情報が書かれていますね。30年近く前のパソコンですから無理もありません。
この前、ハードウェア・ファームウェアの開発用として復活させようと(というより、前からやりかたかったがディスプレイが無かったままだったので)、いろいろチェックしていたら、FDDの1台が故障している ことが判明。
SHARP のパソコンは、回路図やBIOS の仕様などが事実上公開されているため、スキルの高いユーザが多い。AT互換機用のFDDが使えないかなと思って google に尋ねたら同じことを考えている人は他にも複数いるようで、どうやらこれでいけそうです。スキルの高いユーザに助けられています。
今回採用したのは、どこかから15年前くらいに貰ってきた CITIZEN のFDD.
たぶん LR102061 という型番ですが、現在は手に入らないと思います。

AT互換機のFDDはハードウェア的に「ドライブ番号:1」(DS1)と固定しているものが多く、このままでは MZ-2500 においては、「FDドライブ2」と認識されてしまうため、今回は、「ドライブ番号:0」(DS0) と認識させる改造が必要。
既存の故障していないFDDの設定を変える手もありますが、今回はFDDにドライブ番号を設定するジャンバ線があるので、これを DS0 にジャンバを移動させます。
他機種FDDでは、たぶん、配線を切り貼りする必要があります。

接続は、こんな感じで、このFDDの場合は、既存のFDDと同じ。

これで電源ONします。
黄色っぽい部分。。
これは本来は中間色表現ですが、液晶ディスプレイのせいなのか、現在のアナログRGBの仕様のせいなのか、うまく表現されません。。

BASIC-M25(6Z002 Ver 2.0B) が無事起動。

BASIC-S25(6Z003 Ver 1.0A) も問題なし。

最も使いたかった P-CP/M(6Z001) も起動しました。

これで、FDDの修理は出来ました。。
あとは、形状が少し違うので、どう筐体に収めるか。。です。。
ちなみに MZ-2000 モードにて、データレコーダが無事動作することも確認。
こんな感じ:


往年のゲームソフトも動作確認。
ハドソンソフトは札幌の会社ですが、当時は技術力が高く、ゲームソフトだけではなく、良質なシステムソフトも売っていました。
前述の BASIC-M25(6Z002) あたりもハドソンソフトが開発を担当した、と言われています。
(このあたり、記憶が曖昧です。。)
コナミかどこかに吸収されて、2012年5月だったと思いますが、消滅してしまいました。。


ちなみに当方では自分でゲームソフトを買ったことは殆どありません。
個人的には、パソコンゲームにはあまり興味ありません。
当時の友人が勝手に買って来て、勝手に遊んでいたんです。。(笑)