#MSX0
Z80を換装してMSX0化するの、ものすごく夢があるんだけど、正常動作する実機に手をいれる度胸が私にはないw
ハンダ吸い取り線と半田ごてで上手く外せる腕もないし…
とはいえ、最近になって吸い取り機を買っているから、以前よりは上手くできるとは思うけど、リスクが大きすぎるなあ。
これに関してはチャレンジ成功した人を称賛することで応援したい。
#MSX0
で遊ぶときのお供にChromebookを使ってるんだけど、ちょっと放っておくとLinuxターミナルとかPDFビューワとかが勝手に終了していることがあってやや不便。メモリセーバの影響かな?
#MSX0
IoT BASICでRTC(BM8563)への読み書きできたっぽい。これで、MSX0は通常のNTPによる標準時以外に、別の時間軸を持つことも可能になった(大袈裟)。
#MSX0
マニュアル読めってことだね...
MSX0は仮想的なRTCを使っていて、M5Stack内蔵のRTCは使ってないみたい。
せっかく内蔵してるのになぜ使わないんだろうと思ったが、もしかするとM5Stack core2内蔵のRTCチップがロットによって違っていて、互換のはずが微妙に挙動が違ってうまく動かないケースがあったので、それに配慮したのかもしれない...
QT: https://fedibird.com/@mobileff/111381073269724830 [参照]
#MSX0
IoT BASICからノードパス”device/i2c_i/51"経由でBM8563(RTC)をいじれないかといろいろやっていて、どうにかレジスタに値をセットできた気がするんだけど、適当な値をセットした後で、MSX BASICのGET TIME命令で時刻を取ってみると、ちゃんと現在時刻が取れてしまうというのは、どうしてだろう。
因みに最近のスパム垢は「盗難されたクレカで公認マークを取得」していたり、「元々普通のアカウント」だったのが「乗っ取られた上にスパム行為に加担」させられてたりしているのでガチで終わりです… [参照]
先日、 #MSX0 +DHT20を見た知人から、それいいね、私も買おうかな?的なことを言われたので、まずクラファンのリワードだからまだ一般販売してないという点、また、MSXというプラットフォームに価値を見出していない人に薦めるには素のM5との価格差が大きいことを鑑みると、ラズパイpicoあたりで組むのが無難かな…と思い手持ちのパーツで試作してみた。温湿度センサーはDHT22なんだけど、実はDHT20と間違って買ってしまってMSX0では使えないや…とやらかした部品なのでちょうど良かったと自分を納得させつつw
しかもDHT22は2個セットで買ったのに1個逆刺しして焼損する始末…電子工作は嗅覚(物理)も大事だよなと思い知った次第…
OPEN ファイル名 AS #1 LEN=16
FIELD #1,16 AS A$
を、
OPEN ファイル名 AS #1 LEN=1
FIELD #1,1 AS A$
にすれば、任意の大きさのバイナリファイルを読み取れるっぽい。だいぶ時間かかるとは思うけど・・・
#msx #MSX0
QT: https://fedibird.com/@mobileff/111361694655863691 [参照]
#msx #MSX0
MSX BASICでバイナリファイルを読み込もうとしても普通にシーケンシャルリード(FOR INPUT指定)でINPUT #などでやるとEOFに相当するコードが入っているとそこで止まってしまう。
OPEN ファイル名 AS #1 LEN=16
FIELD #1,16 AS A$
みたいにして、
INPUT #1,A$
とすれば、16バイトずつの読み込みで、EOFに引っかからないで行けるっぽいが・・・たまたまかな?
#MSX0 キター! .@nishikazuhiko https://x.com/taka0815/status/1713905528546767174?s=51&t=JGYXUjrhTbI5q7KBeNgH1g
#MSX0
フィールドワークしてみるかということで、急に思い立ってハイキングにMSX0+DHT20を持っていった。
急だったので充電も不十分で途中からモバイルバッテリーで給電しつつ5時間程度連続稼働したが問題なく稼働してくれた。
そのことを知人に話したら途中で写真を取ったときなどにその時の温度湿度を記録できたら使い道あるかも?と言われ、なるほどなーと感心。
流石にデジカメのシャッターに連動はきついかもしれないがFaces KeyboardやJoypadがあれば撮影後に何かしらのボタン押すだけだし、仮想FDDもあるからログ残すのも簡単。
これをラズパイpicoとかArduinoでやると、LCDつなぐ、SDカードなどの記録媒体つなぐ、温度センサーつなぐでそれぞれ手間がかかると考えると、MSX0の強みが出るなあと。MSX0なら全部MSX BASICで書くだけで良いわけで。
#MSX0
拡張デバイスのコードも読んでみたけど、私の読解が間違ってるかもしれないが、シーケンシャル出力の処理(PRINT#文?)はノード"host/name"に対するIOTPUT相当の処理(I/Oポート8への出力)しかしていなく、しかも私の環境だと
OPEN "IOT:" FOR OUTPUT AS #1
PRINT #1,"msx0-12345"
のように書いてもDevice I/O Errorになってしまう。
ちなみに
CALL IOTPUT("host/name","msx0-mobileff")
とするとホスト名が書き換わる。
ROM内には使われてなさそうな"net/s0/com/send"という文字列が見受けられるので、将来的にネットワークへの送信を予定しているのかもしれない。
サンプルコード解説にも、それっぽいことは書いてあったので、アップデートに期待。
#MSX0
IoT BASICのROMやうにスキー氏のGithubの情報などを読んで、シリアルコンソールへの出力を文字表示のフックで実行していることを知る。
FDA4番地(から5バイト)にある文字表示のフックで OUT (010H),Aを実行していていて、このI/Oポート16(010H)への出力がシリアルコンソールへの出力になっている。
なので、
POKE &HFDA4,&HC9
と実行してフックの先頭をRETにするとシリアルコンソールに文字が送られてこなくなる。
POKE &HFDA4,&HD3
(D3はOUT命令)に戻せば元通り。
全然メリットない実験ですがw
#MSX0
CALL IOTSENDにCALL IOTPUTと同じ引数を渡して呼んでみたけど、同じ動作はしなかった。そりゃそうか。
QT: https://fedibird.com/@mobileff/111345166612073317 [参照]
自称人力モバイルbotです。モバイルな話題をベースに、レトロゲーやレトロPCの話題も取扱います。それ以外の話題は原則はつぶやきませんしリプライもしません。フォロー/リムーブはご自由に!リプライはフォロー如何に関わらず大歓迎です!(FF外?なにそれ美味しいの?w)