前回、地球の公転軌道を描いてみました。万有引力の法則、半端ないっす。でもね、ほぼほぼ円軌道の地球だけでは物足りませぬ。いかにもアリガチな長楕円軌道がみたいです。そこで彗星軌道(ハレー彗星に寄せているけど雰囲気だけ)を計算してみました。しかしスケーリングと誤差の問題発覚。手を抜くと誤差が酷いことになるのよ。
ソフトな忘却力(64) FreeDOS、Free Pascal、inline ASMの使用
さて前回はTurbo Pascalを現代によみがえらせるFree Pascalコンパイラで自前Unitを作製。無事に分割コンパイルできました。今回はFree Pascalのインラインアセンブラを使ってみます。過去回でやったOpenWatcomのつもりで書いたらダメダメ。ビルド環境と実行環境をよく見ろと。
“ソフトな忘却力(64) FreeDOS、Free Pascal、inline ASMの使用” の続きを読む
ぐだぐだ低レベルプログラミング(182)x86(16bit)、ADD以下同文?微妙に非対称?
前回、x86の16ビット命令セットからADD命令を練習。実はADDが分かれば、ADC、AND、XOR、OR、SBB、SUB、CMPの残り7命令も「ほぼほぼ以下同文」てことで理解できます。でも「ほぼほぼ」って何だ?そこで、この辺でCISCらしいx86のオペコードエンコーディングを復習。ほんとメンドクセーんだが、これ。 “ぐだぐだ低レベルプログラミング(182)x86(16bit)、ADD以下同文?微妙に非対称?” の続きを読む
ソフトな忘却力(63) FreeDOS、Free Pascal、自前Unitの作成
前回は、Turbo Pascalを現代によみがえらせるFreePascalコンパイラで外部ライブラリを呼びだして使うところを練習してみました。その際、不完全なインストールが発覚。修正対応したので、各種の外部ライブラリ(かなり大量)が使えるようになったハズ。今回は、自前のライブラリ作成方法を確認しておきたいと思います。
“ソフトな忘却力(63) FreeDOS、Free Pascal、自前Unitの作成” の続きを読む
手習ひデジタル信号処理(148) Scilab、{IPCV}、Hough変換(ハフ変換)
前回は距離変換でした。まあ距離はなんだかんだ言って分かり易いっす。今回はHough変換です。「ハフ」と発音すればよいみたいです。画像内の直線、あるいは円を検出するための「変換」のようです。Scilab IPCVにも直線用と円用の2つの関数が存在する雰囲気ではあるのだけれど。円用は?なので今回は直線だけ。
“手習ひデジタル信号処理(148) Scilab、{IPCV}、Hough変換(ハフ変換)” の続きを読む
ソフトな忘却力(62) FreeDOS、Free Pascal、Unitどもの在処
FreeDOS上にインストールしたTurbo Pascalを現代によみがえらせるFreePascalコンパイラを使ってみてます。今回はその昔のTurbo PascalにもあったハズのUnitを使おうとしてツボりました。結局、インストールが不完全だったのね。まあ、お陰でライブラリ共の在処が明確になりました。
データのお砂場(150) R言語、diamonds、scaleを変えてみる{ggplot2}
今回から ggplot2 パッケージです。ggplot2自体は「美麗な」グラフを描きたいときにお世話になってきたパッケージ。その中にもサンプル・データ・セットあり。当然、ggplot2 でグラフ化するためのデータです。今回使ってみるのは diamonds データセット。パッケージ付属の中では一番参照されているサンプル?
ソフトな忘却力(61) FreeDOS、Free Pascal、コマンドラインから整数入力
FreeDOS上にインストールしたFreePascalコンパイラ、約40年ぶりのPascalは忘却の彼方。とりあえずコマンドラインからパラメータを取り込むところを書こうとして止まりました。どうしたら良かったんだっけ。FreePascalはTurbo Pascalに可能な限り合わせてあると。確かにそのつもりでOK。
“ソフトな忘却力(61) FreeDOS、Free Pascal、コマンドラインから整数入力” の続きを読む
忘却の微分方程式(164) Maxima、{dynamics}、シダの葉にみる反復関数系
前回は連立漸化式の発展を観察。今回は反復関数系です。IFS: Iterated Function System。2次元の点をこねくり回す?のだけれども、chaos game同様、そこにランダムな介入があると。そんな乱数な?といってあら不思議。繰り返していくと何やら図形が見えてきます。その代表がバーンズリー先生のシダね。
“忘却の微分方程式(164) Maxima、{dynamics}、シダの葉にみる反復関数系” の続きを読む
ソフトな忘却力(60) FreeDOS、FreePASCAL、GDBでデバッグ
前回FreeDOS上にFreePASCALコンパイラをインストール、吉例Hello worldできました。今回はFreePASCALで生成したオブジェクトプログラムのデバッグを実施。使用するのはみんな大好きGDBです。FreeDOS上にインストールしたFreePASCAL処理系には主だったGNUのツール共が同梱。
ソフトな忘却力(59) FreeDOS、FreePASCAL、インストールしてHELLO
C言語は「基本のキ」みたいなイメージ。しかし最初からそうであったわけでなく、メジャーになったのは意外と新しい(年寄からみたらば)気がします。DOSの時代、アセンブラかBASICからCへの移行期、PASCAL系の言語がメジャーになりかかった時期もあったような気がします。FreeDOS上ではPASCALも使えるっと。
ブロックを積みながら(171) Scilab/Xcos、3次元プロット、地球軌道を描く?
前回は地球の重力加速度g一定を仮定、空気抵抗0での「弾道」でした。今回は万有引力の法則っす。ニュートン大先生様であります。太陽と地球(ともに質点)をおいて太陽の周りを地球に回っていただこうという趣向です。本当は太陽も微妙に動くのだけれどその動きはネグってしまって原点固定の単純化。そんなんでも1周は長いのよ。どうする?
ソフトな忘却力(58) FreeDOS、MSYS2、MINGW64のQEMUで実行
前回はWSL2上のUbuntu24.04 LTSのQEMUでFreeDOSを走らせて、コマケーところを「観察」しました。今回は、毒を食らわば皿までとばかり、Windows11上で「直接」QEMUを走らせ、その上でFreeDOSの動きをみてみます。「直接」とは言ってもMSYS2のお世話になることになるのでありますが。 “ソフトな忘却力(58) FreeDOS、MSYS2、MINGW64のQEMUで実行” の続きを読む
手習ひデジタル信号処理(147) Scilab、{IPCV}、距離変換、距離の計算3通り
前回は離散コサイン変換でした。今回は距離変換です。2値画像の各画素から最も近い画素値「0」(通例、黒にみえるハズ)までの距離を計算し、(2値でない)距離値がつまった配列(距離マップ)を返してくれるもの。使い途は御随意。なにかの処理の下ごしらえ用かね?でも「距離」といって距離の計算の仕方にはいろいろあるのだと。