プログラミング
Jeans & Development | 電子ブロック工房 | 三日坊主 | フロントページ |
MachiKania webの紹介 [プログラミング]
2020年8月22日
MachiKania webを紹介します。
MachiKania webは、MachiKania type M相当の物を、webアプリケーションとして実装したものです。以下のリンク先で、実行できます。
USキーボード通常画面
USキーボード大画面
JPキーボード通常画面
JPキーボード大画面
MachiKania webは、MachiKania type M相当の物を、webアプリケーションとして実装したものです。以下のリンク先で、実行できます。
USキーボード通常画面
USキーボード大画面
JPキーボード通常画面
JPキーボード大画面
CP/KM web の紹介 [プログラミング]
2015年12月24日
KM-Z80 web ver 1.0 [プログラミング]
2015年11月28日
KM-Z80 web の ver 1.0 を公開しました。
http://hp.vector.co.jp/authors/VA016157/kmz80web10/
変更点
・FireFoxのバージョンアップに伴い、音が鳴らなくなっていたのを、鳴るように変更。
・KM-BASIC のバージョンを、0.6.8から0.7.0に変更。
・隠しコマンド ?ramsize=xx 及び ?dumplist=1 を追加。
http://hp.vector.co.jp/authors/VA016157/kmz80web10/
変更点
・FireFoxのバージョンアップに伴い、音が鳴らなくなっていたのを、鳴るように変更。
・KM-BASIC のバージョンを、0.6.8から0.7.0に変更。
・隠しコマンド ?ramsize=xx 及び ?dumplist=1 を追加。
簡単にReg-Free COMを使うためのDLL [プログラミング]
2015年4月22日
マニフェストを用いずにReg-Free COMを使うためのコードだけを持ったDLLを作成した。先日、LabVIEWでJavaScriptを使う為の記事を書いた。これはもともとLabVIEWで機器用のAPI(DLLに記述されている)を大量に呼び出すためにやろうとしていることなので、JavaScript中でDLLが呼び出す必要があり、拙作のSFC miniを用いようとしている(仕事でこれを使うのは、始めて)。
通常、SFC miniを使う際には、これをレジストリーに登録して用いなければならない(管理者権限が必要)。ところが、職場のコンピューター(顕微鏡に繋がっている)の管理者権限を持っていないので、何かの変更のたびに管理者を呼んで作業してもらう必要があり、これは面倒である。なので、Registration-Free-COMとして、SFC miniを用いたい。
この用途のために、Script Users' and Programmer's Private Object Navigation(Suppon)というツールを作成したのだが、残念ながらこれは、suppon.exeというこのツールのexeのスレッド内でReg-Free COMを使うための物であり、LabVIEWから呼び出せない。
そこで、Supponの該当部分のコードだけを含むDLLを作成することにした。
通常、SFC miniを使う際には、これをレジストリーに登録して用いなければならない(管理者権限が必要)。ところが、職場のコンピューター(顕微鏡に繋がっている)の管理者権限を持っていないので、何かの変更のたびに管理者を呼んで作業してもらう必要があり、これは面倒である。なので、Registration-Free-COMとして、SFC miniを用いたい。
この用途のために、Script Users' and Programmer's Private Object Navigation(Suppon)というツールを作成したのだが、残念ながらこれは、suppon.exeというこのツールのexeのスレッド内でReg-Free COMを使うための物であり、LabVIEWから呼び出せない。
そこで、Supponの該当部分のコードだけを含むDLLを作成することにした。
LabVIEWでJavaScriptを使う [プログラミング]
2015年4月19日
仕事でLabVIEWを使うことになった。用途は、顕微鏡用のカメラやレーザー等のコントロール。数年ぶりに使うプログラミング言語だ。私は、どうもあの回路図ベースのプログラミング言語になじめなくて、これを使うときはいつも苛々してしまう。しかし、職場仲間の間では、LabVIEW以外のプログラミング言語が扱えない人が大多数なので、みなが触る共通の機器用にはこれを使うしかない。しかし、簡単なプログラムならまだしも、少し複雑な物を書こうとすると、プログラミングにはほとんどの操作をマウスで行なわなければならないし、私の能力では可視性の悪いプログラミングしかできないしで、なんとかならないかと思っている。で、GUI周りはLabVIEWで書いて、複雑な操作の部分はテキストスタイルの普通のプログラミング言語が使えないかと、色々調べてみた。
32ビット整数の、定数での除算 [プログラミング]
2014年7月22日
プログラミングをしていると、整数値を10で割るというコードは良く出てくる。例えば、整数を10進法文字列に変換する場合など。
コンパイラーを用いて、10で割るコードを記述すると、アセンブリーを見たときに0xcccccccdを掛けて右35ビットシフトするコードになっていることがある。割り算はCPUにとって非常に高負荷な演算なので、掛け算とシフトに置き換えることで、高速化を図っているようだ。32ビットのほとんどのCPUでは、32ビットどうしの掛け算の結果を64ビット値として得、上位32ビットと下位32ビットを2つのレジスターに格納するようになっているので、「0xcccccccdを掛けて右35ビットシフト」は非常に効率がよい。
では、10以外の数値での割り算はどうかと、ネットで検索してみたが、包括的に解説している記事は見つからなかった。そこで、ちょっと調べてみた。
コンパイラーを用いて、10で割るコードを記述すると、アセンブリーを見たときに0xcccccccdを掛けて右35ビットシフトするコードになっていることがある。割り算はCPUにとって非常に高負荷な演算なので、掛け算とシフトに置き換えることで、高速化を図っているようだ。32ビットのほとんどのCPUでは、32ビットどうしの掛け算の結果を64ビット値として得、上位32ビットと下位32ビットを2つのレジスターに格納するようになっているので、「0xcccccccdを掛けて右35ビットシフト」は非常に効率がよい。
では、10以外の数値での割り算はどうかと、ネットで検索してみたが、包括的に解説している記事は見つからなかった。そこで、ちょっと調べてみた。
KM-Z80 web ver 0.9 [プログラミング]
2013年6月18日
TK-80のHTML5によるエミュレーター [プログラミング]
2012年11月4日
ZK-80 web ver 0.4 スナップショット(起動はこちら)
先月、HTML5を用いてMZ-80Kのエミュレーターを作成した記事を書いた。
キモの部分は、CPUのエミュレーションとディスプレイの表示なので、そこがクリアできていればいろいろと応用が利く。CPUは当時の流行のZ80で、PC-8001・PC-8801などがそれに相当する。
また、Z80は、8080という当時の主流だったCPUのアッパーコンパチブルなので、そういったコンピューターにも応用可能である。
そんな中に、TK-80という、30年以上前に発売されていた1ボードマイコンがある。
HTML5を使ってみた [プログラミング]
2012年10月5日
去年がHTML5元年だそうで、HTML5はまだ始まったばかりの技術なのだけれど、モバイル環境でも使えるアプリケーションを開発できるという意味ではおもしろい。
最近、MZ-80K(SHARPが30年少し前に発表したパソコン)のレプリカを作ったり、それ用のBASICを開発したりで、これに少しはまりこんでいる。
そこで、出来て1年ほどの技術を用いて30年以上前のコンピューターを再現するのもおもしろかろうと思い、HTML5の勉強を兼ねてMZ-80Kのエミュレーターを作ってみた。「KM-Z80 web」と名付けている。
現物及び使用方法の説明、ソースコードのダウンロードなどはこちら
最近、MZ-80K(SHARPが30年少し前に発表したパソコン)のレプリカを作ったり、それ用のBASICを開発したりで、これに少しはまりこんでいる。
そこで、出来て1年ほどの技術を用いて30年以上前のコンピューターを再現するのもおもしろかろうと思い、HTML5の勉強を兼ねてMZ-80Kのエミュレーターを作ってみた。「KM-Z80 web」と名付けている。
現物及び使用方法の説明、ソースコードのダウンロードなどはこちら
PHPにおけるビット演算と、bcand(), bcor(), bcxor()関数 [プログラミング]
2010年10月11日
先のSHA512の計算には、64ビット整数での演算が必要で、これを8バイトの文字列として扱って演算をエミュレートした。他方、SHA1の方は、32ビット整数の演算で計算できる。将来的に、SHA1-HMACを使う可能性があり、この計算にはhash()関数が必要なので、これについてもPHPでエミュレートすることを考えている。
そこで、PHPにおいて32ビット整数のビット演算がちゃんとできるのかどうかを調べることにした。
そこで、PHPにおいて32ビット整数のビット演算がちゃんとできるのかどうかを調べることにした。