2023年5月18日木曜日

反省と方向性

 先月の更新内容を見ると以前にやったようなことを少しずつ変えて焼き直しているだけというのが見えてくる。

ここいらでちょっと方向性をちゃんとしておく必要も感じる。
特にここのように趣味性を前面に出したものは自分の楽しさに気を取られ過ぎて時間が掛かる(かけ過ぎる)のが問題にもなる。ちゃんと本来なすべき仕事がおろそかになってしまうのはあまりよろしくない。

自分が飯の種とすべきことやそのための学習に割くエネルギーを削って趣味に打ち込んでしまう傾向が強いことを認めて、例えば仕事で目標が達成できたらとか本来の休みのうちの家族サービスに割いた時間の残りのみを当てるとか考えないとマズイことになる。
(いい年をして今頃になって書くことでもないけど)

もう少しペースを考えて限られた時間で考えて進めていこうと思う。
(そこで工夫をするのがまた楽しいはず)

当面はエミュ関連とハード寄りのなにかになると思うけどもう少し掘り下げて楽しみたいと思う。

しばし塾考すべし・・おれ

2023年4月30日日曜日

しつこいですけど

 あいかわらずのasciiartをraspberry pi picoでやってみた。

ボードへの書き込みに失敗するのでbootselでusbデバイスとして認識させてコンパイル済みのuf2ファイルをd&dで書き込んで実行した。

133MHzのSoCだと200msecの所要時間。


もののついでに

 最近、今更のusb接続ガジェットをいろいろ思い出そうとしているのでそのながれでraspberry pi  zeroをon-the-go(OTG)でPCにつないでやってみた。

今回の苦労ポイント
1)これまた接続方法を忘れていた。
  teratermで仮想のtcp/ip接続からraspberry/piを探して接続した。
  ログイン時のid,passwordもすっかり忘れていたのでさらに苦労。
2)asciiart.cのコンパイルオブジェクトで表示は出来たけど時間計測が
  出来たほうが良いと思ってtime.h のclock()を使おうとしたけど
  エディタがviしかなくて編集方法を忘れていて涙。
  hjklとiaとx,ddと:w,:qだけでなんとかソースを編集してコンパイル
  にこぎつけた。

結果が

さすがの9ms!それよりも9801って表示にちょっと感激。

なんとかファイルをPC側から送り込んだりできるようにしないと大変だということは分かった。
でもいろいろ方法はありそうである。


2023年4月29日土曜日

調子に乗って

 せっかくarduinoのIDEを更新したので手持ちのesp8266モジュールを使って同じくasciiart.inoを実行させてみた。

arduino unoのATMega328Pで1000ms(≒1秒)ほどだった実行時間がesp8266では162msと6倍以上速くなっている。
(もちろんすべてのプログラムがそれだけ速く動くことの保証にはならないけど浮動小数点の乗算をある程度の割合で含む比較的簡単なプログラムではその結果になりました。)
esp8266は多分80MHzのクロックで動いているのでクロック比(16:80)よりはespの方がasciiart計算には向いているのだと思われる。

この手の比較って楽しいと思いますね。まだ手元にSTM32F401WioTerminalもあるのでこれらも計測してみようかしら。あとRaspberryPiも1Bとzeroを持っているので少し触ってみようと思う。あ、そういえばRaspberryPi Picoもあったっけ。ずいぶん使わない癖に持ってること。



2023年4月28日金曜日

EMUZ80の制作に向けて

 さて目下注目のEMUZ80である。

6800伝説8080伝説z80伝説でoldCPUファンにはおなじみの(というか教祖様の)鈴木哲哉氏の作である。z80と同じく40ピンのPIC18F47Q43の2つのチップで小さなコンピュータを構成するというだけでも斬新なのにPICはz80から見てROM,RAM,IOのすべての働きをするように振舞うことでシステムが駆動するって素敵以外の何でもない。

実際このEMUZ80の基盤を利用して他のCPUを動かす様々なプロジェクトやそのための拡張のための基盤が出ているってことも魅力的。

ただしz80以外の他のCPUを動かすにはPICのプログラムを変更することが必要になるけど昨今のIC不足でpickitが高いので2の足を踏んでいたらarduinoでライターの働きをさせるって記事に遭遇。

まずは手持ちのarduinoをもう一度動かすことから準備することにしよう。
早速引き出しの奥からarduino unoを召喚。
USBでPCにつないで、、、手が止まった。

随分触ってなかったから手順をすっかり忘れている。
なにせ10年以上前に買って少し触って、ほかのボードを触るときにまた思い出したように出してみたりするだけだったのでどんな手順でやっていたのか思い出すのにひとしきりかかった。

やっとarduino ideを呼んでボードをarduino unoに設定してCOMポートの番号を確認してasciiart.inoを送り込んでteratermで確認したのが下図。

16MHzで動くATMega328Pで1秒そこそこでこれが描画できるのだから大したものである。
この分野ももう少しつっこんで触れる必要を感じるなあ。



2023年4月21日金曜日

少し先の未来への布石

 z80の乗ったリアルコンピュータが欲しい。
古くていじりがいのあるものなら何でも良い。
別に高機能なんて求めてない。でも同時にメンテのことを考えるとあまりに古いものはいかにも稼働率が低そうで憂鬱。

で、msxである。とりあえずはエミュレータでお茶を濁してやがては実機を手に入れる。(ヤフオクとかでmsx2+[日本語もいじりたいし、実機ならFDDくらいないとデータの交換もできないので]を見ると3万円の相場だけどそれで電源やドライブの不具合との闘いを考えると気が重いのでためらいがち)で、こんな選択肢にも目が行くけど本当のz80じゃないことにちょっと抵抗感もある。

うだうだ考えてもしょうがない。そもそもPC外部のハードウェアcp/mエミュでもtek4010グラフィックスの機能のあるteratermでつなげばグラフィックスが出せて面白いって思ったことに加えてmsx2+ならフォントがちょっと?だけど80文字表示できて漢字ROMも搭載してるのでBASICでもちょっと遊べそうだとか思ったことが出発点なわけだからまずはエミュでも十分ということになる。表示が8bitスルーならcp/m機でもc言語やmbasicでteratermで漢字表示位できるので実機であることとかmsxであることとか本当は関係が無いとも言えたりする。

なんだかグダグダになってきたけど要するに触りたくなったのでbulueMSXをインストールしてまずは定番のasciiartをmsx-basicでやってみた。

いろいろ計測してみたんだけどこちらの環境ではget timeが正しく働いてくれない。画面上ではget timeで得た開始時の時刻と終了時の時刻の差が45秒みたいに見えるけど実測では1'25"(=85秒)くらい[CPU速度1000%=10倍設定]cpu設定等倍で実測が14'16"(=856")なので確かに10倍の時間がかかっているのだけど表示は変わらない。
ちょっとこの辺りが要解決の問題ではあるがいろいろと楽しめそうでもある。
1)グラフィックスの表示
2)MSX-DOSはFATで管理されてて実行ファイルはcp/m互換でOK
ちょっとずつ触って落としどころを探ろうと思う。


2023年4月18日火曜日

3Dは思い通りにはいかない

 3Dプロットでよくあるソースを見てちょっとTeraTermに送る例をgccで書いてcom0com経由でTeratermに表示させてみた。

陰線なしの例

割ときれいに出ている。が、しかし陰線処理を考えてやってみると

なんだ!こりゃってなる。単に送るのとか先日のマンデルブロの描画はちゃんと送れてて描画できたことからすると自分の書いた陰線処理がまずいと言うことになるので・・
やはり付け焼刃で3Dを処理するのは難しいんですね。

機会があればもう少し突っ込むけどもっとプリミティブなこともやってみたいのでちょっとteratermでのグラフィックは間が空くかも・・
ま、z80とか生々しい方からもグラフィックス出せるらしいってわかったから成果はあったとしておく。


月日が経つのは・・・

 姉妹Blog共々、7月の更新を忘れてました。 ちょっと色々あって古代電脳というか手続き型のプログラミングへの熱意が薄れてこのブログをどうするか考えてしまってます。 日々、いじればまた関心も高まると思うのでちょっと冷却期間に入ります。