<   2015年 04月 ( 3 )   > この月の画像一覧

Visual Studio 2008 Express Edition VB6 プロジェクトファイル(.vbp)変換 (4/30)

VB6のプロジェクトファイル(.vbp)から現在のVB.NETで使われるプロジェクトファイルに変換するのに、VS2008が必要になった。(それまでは変換ウィザードがあったのに2010以降?からは無くなったため)
そのダウンロードは既にリンクがなく、次のようにするしかなかった。
VB 6 を VS 2012に変換するには?様により、 pdfのリンクを踏むという手段。
見つけたのは、「Visual Studio 2008 Express Edition」 で検索した次のリンク。
Visual Studio 2008 Express Edition 日本語版の DVD イメージからインストールするための方法を紹介
a0034780_21305970.png
この真ん中の(1)イメージファイルをダウンロードするをクリック。これで全部入りのDVDのisoファイル(931MB)がダウンロードできるので、これをインストール。
a0034780_21345300.png
ここからVB2008を選択してインストール。プロジェクトを開く、で.vbpファイルを開いて「アップグレードウィザード」を起動させる。
a0034780_21462520.png

ここで、さらに問題が発生。変換したいプロジェクトで使っているRICHTX32.OCX(32ビット)が登録されていないのだ(ファイル自体はある)。
Windows8.1ではVB6で使用していたOCXが入っていないので、登録しなくてはならない。
Windows7などでDLL/OCXのレジストリ登録を自動化する
上記により、登録したいOCXをバッチファイル化して登録。
set mypath=%cd%
runas /user:administrator "regsvr32 %mypath%¥\ABC.OCX"
だがWindows8.1ではAdministratorは無効になっているため、次のコマンドを管理者として開いたコマンドプロンプトから実行する必要がある。(GUIは無い)
net user administrator /active:yes
[Windows] Windows 7 で 簡単 に Administrator を 有効 にする方法
Windows 8でAdministratorアカウントを有効にする
net user administrator /active:no(無効)

これだけではadministratorのパスワードがなく、OCX登録時に聞いてくるパスワードが入れられない。
で、一度ユーザ切り替えし、新たにできたAdministratorでログイン。
すると、いつものユーザ環境の作成が始まり、しばらく待たされる。

そしてログイン画面で、ユーザアカウントの詳細でパスワードという項目があるので追加をクリック。
パスワードを設定する。
再度元のユーザでログインし直し、バッチファイルを実行する。
レジストリの登録が成功する。(長い道のりです)

[PR]
by k1segawa | 2015-04-30 21:42 | Comments(0)

ポケコン PC-G850Vで電子回路工作(4/12)

ポケコンへの入力を実験しているのだが、入力にプルダウン抵抗やプルアップ抵抗というのを付けなければならない理由を調査している。
前々回までで、単にVCC(2ピン)と信号線(例えば4ピン)を繋いで、その間をスイッチでON/OFFするだけでは、
OFFの時にどこにも繋がっていないのが悪いという事は、理由が分かった。

【理由】
ポケコン内部を考えると、信号線はトランジスタのベース信号であって、スイッチング機能を利用しているから。
ベースに何も入力しないのは、TTLならそれでいいけど、出来ればGNDに繋いだ方がいいのは、CMOSトランジスタの特性だから。
またVCCと信号線を直結するのはダメ(抵抗を入れる)なのも、ベース電流には抵抗をかますのはスイッチング回路なのだから当然。(これは末尾で撤回)

またトランジスタのベース信号ならVCCから少ないといえども電流が常に流れているから、2ピンは使わない時は外した方がいいのも納得です。

ではプルアップとプルダウンの違いは?ネットで調べると、プルアップであったのはTTL時代の名残で、CMOSになってからはどちらでも良いとの事。
もちろん繋ぐ回路側がプルアップ指定なら、そうすべきだし、全体の回路が負論理ならプルアップで統一するなど、制限はあるのだが、細かい性能を言わなければどっちでもいいらしい。
正しく繋がなかった時や入力ピンを間違って出力ピンに設定した時のフェールセーフを考えるとプルアップがいいらしい。初心者はそれをやりがちだからわかったうえでプルアップ抵抗にするのがおすすめかな。
理論としてはどちらも同じ(細かい性能や制限を除いて)という事は理解しておいた方がいいだろう。

で、前々回はプルアップ抵抗だったわけだから、以下にプルダウン抵抗の場合の結線を示す。
a0034780_2071873.png
おっとー。これだとVCC(2ピン)と信号線(4ピン)が直結してるぞ~。
でも大丈夫。CMOSなら、図中にあるようにベースの代わりのゲート電流は絶縁されていて、電圧は高くなるが、電流は流れないという特性がある。だからプルダウンでOKな訳だ。
CMOSはTTLと違って省電力なのはそういう事だ。TTLならこういうつなぎ方はしないんだろうな。(ポケコンがTTLでない事を前提にしている)
a0034780_20151535.png
a0034780_20252078.jpg
じゃあ結局プルアップ抵抗の時も、実はスイッチONの時にVCCとGNDが直結になるから抵抗が入っていると考えるべきだったのか~
後になってわかる事実。



[PR]
by k1segawa | 2015-04-12 19:35 | ポケコン | Comments(0)

ポケコン PC-G850VでIchigoJam(4/8)

ちょっと休憩。

プルアップ・プルダウンは調査中なので、今話題のIchigoJamで、「計算機をつくってみよう IchigoJamで学ぶマシン語その1」のBASICプログラムが面白そうだったので移植。

【BASICプログラム】
90:DIM A(40)
100:A(0)=3:A(1)=5:A(2)=10001:A(3)=7:A(4)=10003:A(5)=10005:A(6)=1:A(7)=10000:REM 3 5 + 7 * ? END
110:I=0:S=20
120:N=A(I):I=I+1
130:IF N<10000 THEN A(S)=N:S=S+1:GOTO 120
140:N=N-10000
150:IF N=0 END
160:IF N=1 THEN A(S-2)=A(S-2)+A(S-1)
170:IF N=2 THEN A(S-2)=A(S-2)-A(S-1)
180:IF N=3 THEN A(S-2)=A(S-2)*A(S-1)
190:IF N=4 THEN A(S-2)=A(S-2)/A(S-1)
200:IF N=5 PRINT A(S-1)
210:S=S-1:GOTO 120

IchigoJamの文法とは若干違うが、ほぼ同じ。配列の宣言だけ必要で、かつ60以降をスタックにするとあるが、もったいないので20以降にした。(計40)

PC-G850Vでは直接実行時の配列への代入のマルチステートメントが出来ないので、A(0)=1など1行ずつ入力すれば、GOTO 110で実行可能。(PC-E500では可能)

きちんとRUNで56、GOTO 110で2が表示された。

次のLET文はDATA文とREAD文で代用可能。
90:DIM A(40):I=0
100:READ A(I):IF A(I)<>9999 THEN I=I+1:GOTO 100
(以下同じ)
220:DATA 3,5,10001,7,10003,10005,1,10000,9999:REM 3 5 + 7 * ? END

こちらはさすがに直接実行時の代入は出来ないな~
[PR]
by k1segawa | 2015-04-09 22:56 | ポケコン | Comments(0)