goo blog サービス終了のお知らせ 

まったり アイマス2

アイドルマスター2 超ライトユーザーのプレイ日記

4291. 2023年12月17日、日曜日

2023年12月17日 | 日記

 何だかネットの一部が騒がしいです。何かあったのかな。当地方は冬らしくなっただけで、特に何事も無く。普通の日曜日です。

 Arduino R4については、私のやり方ではピン数などがすんでの所で足りないので、今回はパスする予定です。CPUやメモリなどの能力自体は十分です。元の計画通り、とある電子部品小売店特製のRX621マイコンボードで行きます。
 基本計画は昨日で終了の感じです。結局、出来上がってみると、かつてのポケットコンピュータの現代風の復刻計画みたいになりました。当時のポケコンBASICのマニュアルを読み返しているのですが、あの時代のCPUなどを考えると驚異の装置です。今は何もかも充実していて、作業の簡単なこと。もちろん、気合いと時間は必要です。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4290. on x goto、続き^2

2023年12月16日 | 日記

 何となく初期システムは私の頭の中で完成した感じがします。
 今考えているのはMS-DOSみたいなキャラクタベースなので、せっかくのグラフィック表示器表示器なので、ヒューマンインターフェースはもう少し考えても良いかもしれません。

 先日、書店に行ったら、とある一般向け電子技術系月刊誌の表紙にルネサス版Arduino Uno R4の文字が出ていました。今まではR3で、一つバージョンが上がった事になります。今年がデビューの規格のようです。
 ルネサス社のマイコンですが、CPUはARMです。Cortex-M4ですから素直なマイコンです。キャッシュなどは無いはずです。
 標準機はMinimaと呼ばれていて、フラッシュROMが256KB(バイト)、SRAMが32KBです。SPIは1回路なので、今回の私の計画を乗せるならば、拡張用の外部EEPROMと外部SRAMはI2Cと呼ばれる規格での接続版になるでしょう。あるいは、同じジャンク品扱いでLCDコントローラICが付いた240×64ドットの白黒液晶グラフィック表示器は別にあるので、これをPIOで接続しても良いかもしれません。後者の場合のピン数はおそらくギリギリです。

 一つ前のR3と比べて大幅な改良です。なにせSRAMが2KBから32KBに増えました。CPUは32bitで、クロック周波数は48MHzです。マイコンとしては最も使いやすい部類に入ると思います。

 もちろんこちらの方が、いま検討しているRX621マイコンボードより仲間受けは良いはずです。どうしようかな。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4289. on x goto、続き

2023年12月15日 | 日記

 大域変数には連想配列を採用した方が良いようなきがしてきました。中身は二分探索表です。C言語みたいにユーティリティを使う場合に#includeとするのもどうなのか、と思えてきたからです。いや、本来はその方が良いのかもしれません。

 つまり動的に大域変数が増えたり減ったりします。配列は普通の配列である方が良いので、ここも動的にし、後期のパソコンBASICにあったerase文、つまり配列の削除を追加します。これを単純大域変数にも適用するかどうかで、多分することになります。
 速度は出るのかというと、局所変数は普通で配列も普通ですから(機械語ネイティブでは無く)中間言語インタプリタの基準では普通に出るはずです。

 あと、細かい点が残っていますが、多分これで当面の決定版。あと、関数内でサブルーチンするかどうかを検討中。
 つまり1関数がパソコンBASICの動作単位になっていて、その中でさらにgosub/returnします。実現は簡単で、機械語のJSR (jump to subroutine)、RTS (return from subroutine)みたいなのをするだけ。普段は演算スタックになっている局所変数のスタックに、ジャンプ元のアドレスを置き、処理が終わったら復帰を指示するだけです。
 もちろん目的はプログラムの行数の節約で、いわゆる非決定性処理ができたらさらに嬉しいです。後者は文字列や木構造のパターンマッチに使います。

 これはプロセスとかジョブとかを考えている内に出てきたもので、例えば(入出力などの)ユーティリティのプログラムはマイコンのSRAMにコピーすること無く(中間言語のままで)ROMに置きたいので、そうなりました。いやまだ考察中ですが。
 プロセスの構成要素の一つが仮想記憶です。メモリがOSから割り当てられます。マイコンですからローダといった規模のもの。その「仮想記憶」に収納するのが上述の大域変数(配列を含む)と局所変数のためのスタックです。マルチタスクにする場合は、これを複数個用意してOS部分が切り替えます。マルチタスク自体の予定はまだありませんが、配慮しておく、ということ。
 本格的な画像処理などは考えておらず、想定しているLCDグラフィック表示器(240×64ドット)のVRAMは2KB程度しかありませんから、仮想記憶と言っても私の頭の中のあるのは4KBとか16KB程度のものです。実記憶(96KB)よりも小さいですが、そのようなシステムはミニコンにもパソコンにもあります。

 仮想記憶内に中間言語コード、つまりプログラム自体が入りますが、上述のように外にあってもOKで、さらに後期パソコンBASICのchain文みたいにコードの入れ替えも行います。昔の業務プログラムでは一画面が1プログラムでしたが、その感覚です。今で言うとwebの1ページに相当するか。
 大域変数がささやかなデータベース(連想配列)になっているのは、これ(プログラムの引き継ぎ)を実現する目的でもあります。

 さて、そのように動作するように作れるかどうかはもう少し詰めないといけません。これで最初は行けそうだ、の段階になったら、ハードの作成の方に再び戻ると思います。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4288. on x goto ...

2023年12月14日 | 日記

 本日も普通にお仕事でした。事業所は巡航状態で、私は何となく年末モードに入りつつあります。

 RX621マイコンボード+LCDグラフィック表示器の方は、簡単なゲームが組めるくらいのプログラミング機能が欲しいのであれこれ考えていて、C言語で言う関数の作り方は大雑把には完了しました。局所変数の導入はそんなに難しくないようです。

 いわゆる構造化プログラミングは取らず、goto ラベル と if 式 then ラベルで条件分岐とループを作ります。しかし、C言語のswitch/case (多分岐)は何とかして導入したいので考えていた訳。結局、昔のパソコンBASICの on 式 goto ラベル, ラベル, ... だけを用意して、連想配列の部分はもし必要なら関数で対応とします。

 on x goto ... の構文は元祖ダートマスBASICでもやや後期には入っていました(私が参考にしているのは1968年の第4版ユーザーマニュアル)。飛び先の行番号は一行に書けるだけ書けて、xが1~n以外はエラーメッセージが出るそうです。
 多分端末はASR-33などでしょうから1行72文字程度で、10分岐程度まででしょう。
 MicrosoftのパソコンBASICでは、xが1~n以外はエラーにならず、次行に制御が行きます。次行にもon x gotoが書けるので、分岐先が多少増えても対応可能となります。

 後は大域変数をどこまで豪華にするかです。あまり凝っても今の時点では仕方が無いので、素敵なアイデアが思いつかなければtiny BASIC並みの素朴なものになります。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4287. 杏の中の人の誕生日

2023年12月13日 | 日記

 本日、12月13日はPS4の最新アイマスゲーム、スターリットシーズンに出てくる仮想アイドル、双葉杏(シンデレラガールズ)の声優、五十嵐裕美さんの誕生日だそうです。いつものようにスターリットシーズンのPV新着欄で精鋭Pがお祝いのPVを上げています。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4286. ベテルギウスの金環食

2023年12月12日 | 日記

 つい先ほどのことのようですが、レオーナと呼ばれる小惑星が、オリオン座の恒星ベテルギウスの前を通過する天文イベントが起こったそうです。
 前代未聞の出来事だそうで、ずっと前から分かっていたらしく、観測態勢はばっちりだった模様です。興味深いのは地球から見た大きさがほぼ同様らしく、おそらく金環食になっただろうとのこと。

 もちろん、今回得られたデータの解析が進めば発表があるでしょう。ベテルギウスは(天文学的時間で)いつ爆発しても不思議ではない、とされていて、おそらく表面が明らかにデコボコしていて、たまにガスの噴出があってそれが地球方向だと光が少し遮られて、だったか。何かと話題のある恒星です。それが直接に観測可能となるまたとないチャンスだった、ということ。ちなみに日本では観測できない現象だったそうです。

 ううむ、こんなので知見が進むのなら、人工天体(人工惑星)でわざと隠蔽しても良いのではないかと。深宇宙に航路が制御可能な数kmの物体を送り込むのは難しいのかな。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4285. 月曜日

2023年12月11日 | 日記

 本日は普通の勤務日で普通にお仕事。昼食時に行った職場近所の大型書店で、小規模マイコンにLCDグラフィック表示器を繋ぐのと、いわゆるストレージ、サーバに繋ぐディスク群の話題の本を見て見ました。

 LCD表示器はマイコンの規模が小さいので、商品POPに役立つかどうか、の感じでした。つまり、表示自体が最終目標で、何かを計算させる感じでは無く。どうしようかな。回路やハード製作自体は慣れた感じがするので、参考のために基板とやらを注文しようかと考えています。 

 他にちょっと目に付いたのは代数学の話題から整数論に入る話で、まずはざっと見して。詳しく読まないとどこが面白いのか分からないので、何か興味深い点が分かったら報告予定です。あとは天文年鑑を眺めて。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4284. マイコンボードのソフト

2023年12月10日 | 日記

 RX621マイコンボードのROMは512KBでした。今は訂正済みですが、前々項の記事を見てしまった方には申し訳ありません。
 CPUは32bitでクロック数は100MHzほどもあるので、いろいろ遊べそうだ、と思った訳。それにふさわしいディスプレイを探していたら、240×64ドットの白黒LCDグラフィック表示器(ドットピッチ0.5mmほど)がちょうど良い感じと思いました。入力は普通のPS/2キーボードを想定しています。

 ポケコンの時代には外部記憶が大問題でした。今でも関数電卓の高級版のプログラム電卓では問題点の一つです。パソコンなら8bit時代でもフロッピーディスクがありました。
 今回は16MBのSPI接続のEEPROMがお手頃価格で簡単に手に入ってしまったので、それを活用予定です。ハードディスクによる仮想記憶の代用としてSPI接続のSRAMも付ける予定で、128KBは確定。4MB品が使えるかどうかを検討中。

 ハードの基本設計は終わっているので、さっさと回路図を引いて組み立てたいところです。しかし例によって拡張欲が出てきたので、ソフトを考えて適切な落下点を探っている感じ。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4283. 初代雪歩の中の人の誕生日

2023年12月09日 | 日記

 本日、12月9日はPS4の最新アイマスゲーム、スターリットシーズンに出てくる仮想アイドル、萩原雪歩(オリジナル765)の初代声優、落合祐里香さんの誕生日だそうです。いつものようにスターリットシーズンのPV新着欄で精鋭Pがお祝いのPVを上げています。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4282. 金曜日

2023年12月08日 | 日記

 気力がいまいちなので、RX621マイコンボードはソフトの方を先に考えることにします。8080のμPLANは見れば見るほど良くできていて、しかしデータ型が16bit整数型しか無いのと、プログラム+配列が最大4KBに制限されているのをまず何とかしないといけません。ここは、32bit対応にするだけですが、多少の工夫は必要と思っています。
 μPLANの外見はPASCALというかALGOLに似ていて、しかしこちらの計画では関数内部のGOTO移動は積極的に利用しようと考えているので、行く先はラベルにして行番号こそ無いものの初期のパソコンBASICみたいにするつもりです。

 C言語のswitch/caseの機能が欲しいので、実行時にも二分探索表のユーティリティを付けるつもりなので、μPLANよりは少しだけ自由度が増すはずです。
 これでコンパイラ・インタプリタの基本部分は構想できるはずです。ROMが512KBあるので、この程度のシステムなら記憶域の節約のための工夫はあまりしなくても済むはずです。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4281. 比例、続き^2

2023年12月07日 | 日記

 おそらく最後の特殊部品、レベル変換ICと2種のSRAMが届きました。部品の専門商社からの配達なので慣れた梱包です。DIPの方はいわゆるレールに入っていました。SOICは単純に袋に入っていました。こちらは小さくて、どうしようかなの状態です。多分、多少の扱うための道具はあるはずなので、時間ができ次第、電子部品の小売店に寄ってみます。

 比例の話で忘れていた部分を思い出しました。分数の読み方です。たとえば、5/2は日本語では、二分の五、と数字の順番とは逆に言うのが主流です。英語ならfive-halfなどと前方から言えます。まあ、普通は困ることはありません。
 ところが先日、一様多面体のずいぶん古い論文をワープロに書き写していて、5/2や8/3などが続出し、数字の部分を日本語で読んでいて気付いたら2/5とか3/8とか打ち込んでいて。

 仕方が無いから、5/2が出てきたら「ごわるに」と早口で頭の中で再生して打っていました。わるはもちろん割る(÷)のことです。
 話題はそれだけです。もっとスマートな方法が無いものかと。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4280. 条件分岐

2023年12月06日 | 日記

 PS5を買った日に追加したもう一台のコントローラの調子がいまいちとなりました。毎日のように使ってはいますが、そうヘビーな感じでは無いはず。手に入れてから2年以上経っているので、これが普通かもしれません。数ヶ月前に買った方のコントローラがあり、例のプレーステーション・ポータルもあるのでとりあえず操作はできます。近々に新しいのを買う予定とします。

 マイコンボードの方は、最後のやや特殊部品であるレベル変換ICが早ければ明日に送られてくるみたいです。同時にSPI接続のSRAMの2種も。あと、フレキシブルフラットケーブルのコネクタがまだですが、実は1個は別ルートで手に入れています。つまり、残りは普通にふらっと電子部品店に行って買える通常部品のみとなりました。デザインというか、部品配置は比較的に重要なので、実際に店頭に行って確かめて、慎重に選びます。

 ソフトの方は、マルチタスク化がまずまずできるのでは無いかな、の段階です。B言語程度だとグローバル変数とローカル変数を合わせても2KBとか4KB程度なので、UNIXのforkみたいに全コピーすればOKみたいな感じ。
 しかし、もちろん単なるif文は条件分岐の機械語に変換され、3クロック程度の実行速度ですから、ここをプロセス発生(同時多重処理)に変えるとかなり重い処理になります。

 スレッド発生、つまりローカル変数と必要なレジスタ(変数)の別生成だけだと数十バイトのコピーなどとなり、ハードの支援があれば何とかなりそうな気がしないでも無い、ですがたとえばFPGAで組むにしてもどうやったら良いのか考えないといけません。それと一般に条件分岐は2分岐とは限らず、6分岐程度までは普通に起こりそうです。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4279. 比例、続き

2023年12月06日 | 日記

 続きを書こうと思ったのですが、他のことをやっている内に内容を忘れました。思い出して、面白い話題になりそうだったら改めて書きます。

 そう、線形代数というか線形。比例のことで、おそらく直交デカルト座標のユークリッド空間が前提になっていると思います。

 偏微分方程式の数値解法では空間の各点にメモリを配置するのが普通です。温度や圧力が定義できる場合、つまり媒体がある場合はその量を保持するのが個々の変数なので納得できます。
 しかし、電磁気学などの物理で言う「真空」の場合は本当に何もありません。エントロピーが無いので、何かを記憶すると妙な感じがします。にもかかわらず、電波の伝搬の話ではあたかも水面を広がる波のようなものでかなり正確に近似できるようです。ここしばらく、それはなぜかと考えるようになりました。

 今のところの結論と思っているのは空間の曲率です。ガウス曲率は空間に何も無くても決まりますし、多分、リーマン曲率テンソルのような、もう少し構造を持ったものを想定するのだと思います。この場合、曲率ですから空間の各点で量のようなものが決まるのは良いとして、空間が曲がってしまいますから座標も妙なことになり、これが特殊・一般相対性理論に出てくる数式に反映されているのでしょう。

 資料は集めていましたが、特にきっかけも無く、まだ精査していません。今は一階述語論理の推論エンジンの理解と称してマイコンボードの活用を考えている途中で、マルチタスクしようとするとやはりプロセス管理とかジョブ管理の簡単なところは導入しないといけないみたいで、ここまで来ると具体的なOSの使い方以外の基本文献が極端に少なくなる印象です。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4278. 比例

2023年12月04日 | 日記

 とあるネットで、分数での割り算の時に括線(横棒)の上下をひっくり返すのが納得できない、とのこと。私は特に疑問を抱いたことは無いので、ふむ、そうなのかと。で、議論はありましたが、なぜか説明は無し。

 7/5 ÷ 3/2 = 7/5 × 2/3 = (7×2)/(5×3) = 14/15 

 などのことです。一般に a÷b はa/bの事なので、(7/5)/(3/2)の分母と分子を(2/3)倍すれば、((7/5)×(2/3))/((3/2)×(2/3)) となる。で納得できません?。

 比率は初期の数学の肝というか、ここが分かれば原理的には線形代数と微積分が分かったことになり、ベクトル解析(grad, div, rot)まで到達できます。比率は、

 a:b

 のことで、

 a/b

 の別表記と考えても良いくらいのものです。

 1:2 = 2:4 = 3:6 = 4:8 = ...

 1/2 = 2/4 = 3/6 = 4/8 = ...

 です。このことが数式や図形(幾何学)で納得できればしめたもの。幾何学の方は「相似の中心」で検索するとそれっぽい図が出てきます。図形の拡大・縮小のことです。
 その後、理解できなくなるのは数学ができない、というよりは、途中で数学に興味が無くなった、だと思います。

 私の場合は、電子回路の自作や計算機のプログラムで興味を繋ぎました。電子回路ではオームの法則と、フレミングの右手・左手の法則。積分は、電子計算機では連続する積和のこと(数値積分)で、微分はその逆計算です。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4277. 液晶表示器3、続き^7

2023年12月03日 | 日記

 主要部品では3.3V→5Vのロジックレベル変換ICと2種のSRAMが少し先に手に入る予定なので、ソフトの方を考える時間が取れそうです。
 組み込み系のプログラムは初期設定が終了したらイベント処理ループに入るのが普通と思います。Windowsの基本的なプログラムと似ていると思います。

 数値計算は自分でループを回すので、普通にプロクラムするとイベントループが棚上げになって、ボタン操作などのイベントが長時間処理されなくなります。ここを何とかしたい訳。
 かといって本格的なOSを開発する気力は(多分必要な知識も)無いので、今のところ中間言語インタプリタを細かく区切って、イベント処理内に組み込むことを考えていて、つまりこの方針のBASICを使うだけならイベント処理はそのまま続きます。ついでに、これができるといわゆるマルチタスク処理が少しの改造で可能となるので、かなり嬉しい事態となります。

 さて、そんなことができるのかどうかは少し考えないといけません。多分、目処を付けるだけで1週間くらいはかかるので、関心の続いている今が結構なチャンスと思います。面白い話になりそうだったら改めて報告します。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする