プログラミング

Jeans & Development 電子ブロック工房 三日坊主 フロントページ

CP/KM web の紹介 [プログラミング]

2015年12月24日

CP/KM web (ver 0.5)は、HTML5による、CP/M (ver 2.2)の実行環境です。
2015-12-24-cpm.png
CP/KM webは、ここから実行できます

KM-Z80 web ver 1.0 [プログラミング]

2015年11月28日

KM-Z80 web の ver 1.0 を公開しました。
http://hp.vector.co.jp/authors/VA016157/kmz80web10/

2015-11-28-kmz80web.png

変更点
 ・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を作成することにした。

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以外の数値での割り算はどうかと、ネットで検索してみたが、包括的に解説している記事は見つからなかった。そこで、ちょっと調べてみた。

KM-Z80 web ver 0.9 [プログラミング]

2013年6月18日

HTML5 canvasを用いたMZ-80K 互換エミュレーター、KM-Z80 web の、ver0.9を公開

2013-06-18-kmz80web.png

TK-80のHTML5によるエミュレーター [プログラミング]

2012年11月4日

2012-11-04-zk80web.png
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」と名付けている。

2012-10-05-km-basic.png

現物及び使用方法の説明、ソースコードのダウンロードなどはこちら

PHPにおけるビット演算と、bcand(), bcor(), bcxor()関数 [プログラミング]

2010年10月11日

先のSHA512の計算には、64ビット整数での演算が必要で、これを8バイトの文字列として扱って演算をエミュレートした。他方、SHA1の方は、32ビット整数の演算で計算できる。将来的に、SHA1-HMACを使う可能性があり、この計算にはhash()関数が必要なので、これについてもPHPでエミュレートすることを考えている。

そこで、PHPにおいて32ビット整数のビット演算がちゃんとできるのかどうかを調べることにした。

MakeExe 0.2.2 [プログラミング]

2010年8月18日

MakeExe バージョン 0.2.2を配布しました。

実行ファイルは、0.2.0や0.2.1から変わっていません。e-mailで、添付のModulePath.js及びModulePath.vbsに記載されている、ModulePath()関数に関するライセンスの質問を受けましたので、あいまいになっていたライセンスを見直して、0.2.2としました。

ModulePath.js及びModulePath.vbsには、LGPLは適用されません。これらのファイルのソースコード部分で英語のtypoが有りますが、気にしないでください(笑)。

今までどおり、「このソフトウェアの正規な使用により作成されたEXEファイルに付いては」LGPLを適用する必要はありません。ですので、作成されたEXEファイルについては、アイコンを変更するなどの改変は自由ですし、どのようなライセンスの下で配布しても、問題ありません。

makeexe.dll、makewin.exe、makeconsole.exeの3つの実行ファイルと、それらのソースコードのライセンスは、LGPLです。再配布する場合は、LGPLの規定に従ってください。
<<前の記事