2021年2月11日

これまでの "RunCPM + VT100 Emu for Wio Terminal / M5Stack"

変更履歴デス。
6

前提となる知識

RunCPM とは...

Z80 CP/M 2.2 エミュレータです。Arduino IDE でコンパイルできます。

※ Visual Studio を使って Windows 向けにビルドする事もできます。

CP/M とは...

Digital Research が開発した OS です。主に 8bit マシン で使われました。MS-DOS の前身とも言える OS です。

Wio Terminal とは...

Wio Terminal は ATSAMD51ベースのマイクロコントローラを搭載した Seeed 社の開発モジュールです。

RunCPM + VT100 Emu とは...

Z80 CP/M 2.2 エミュレータと VT100 エミュレータを合体させたスタンドアロンで動作する 超小型 CP/M マシン です。

robo8080 さんによるオリジナルにはいくつかのバリエーションがあります。

これの Wio Terminal 版を好き勝手に増改築しています。M5Stack にも対応しています。

robo8080 さんのリポジトリにマージされた時には UF2 ファイルも用意されますので、Arduino IDE でソースコードをコンパイルする事なく "RunCPM + VT100 Emu" を試せます。

DEKO さんのリポジトリでは常に最新の UF2 が提供されるとは限らず、コードと UF2 の挙動が一致していない事があります。

※ RunCPM用のディスクは別途用意する必要があります。

動作に必要なもの

Wio Terminal / M5Stack の他には、microSD カードと何らかのキーボードが必要です。

  • microSD カード
  • USB キーボード
  • USB Type-C 変換アダプタ (ダイソー等に売ってあります)
  • M5Stack CardKB
  • M5Stack Faces

Wio Terminal で CardKB を使う場合には USB 端子が空くので、任意のモバイルバッテリーを使えますが、USB キーボードを使う際にはバッテリーベースがないと不便です。

前フリ

バッテリーベース待ちだったのです。

DEKO @ht_deko

超小型 CP/M マシンへの道。 とりあえず VT100 エミュレータはできた。 まだ CP/M は外部にある (ESPr Developer の CPM8266) のだけれど、既に WIO Terninal で RunCPM が動くので合体させれば超小型 CP/M マシンができるかと。 バッテリーシャーシって、まだ日本で売ってないんだっけ? pic.twitter.com/wXsQT2XD3B

2020-06-17 20:09:38
拡大
DEKO @ht_deko

シリアル経由での動作でよければ、WIO Terninal 用の RunCPM は既にある。 ht-deko.com/arduino/runcpm…

2020-06-17 20:17:18
DEKO @ht_deko

将来的にはこんな構成でポケコンみたいな事したい。 (MBASIC や Turbo Pascal でセルフ開発できる環境) なお、現状の実装だと 5 方向スイッチはカーソルキーと Enter、3 つのボタンは F1, F2, F3 を割り振ってある。 pic.twitter.com/N5yL8xDwXM

2020-06-17 22:36:49
拡大
DEKO @ht_deko

このキーボードはタブレット用の USB キーボードを分解したもの。元々は Raspberry Pi 用に買った。とにかく安い。 反応の鈍いキーがいくつかあったけれど、キートップを慎重に外してラバーカップの上にセロハンテープを二枚くらい貼ったら普通に入力できるようになった。 amzn.to/3hF4CZl

2020-06-17 22:55:30
DEKO @ht_deko

このキーボード、普通サイズの USB コネクタに変換するアダプタが付いている。 pic.twitter.com/FHQC4dLWZv

2020-06-17 23:06:51
拡大
DEKO @ht_deko

Wio Terminal のコネクタは USB Type-C なので、OTG するためにはこんな変換アダプタを買わなくてはならない。 amzn.to/37BpdJq

2020-06-17 23:06:52
DEKO @ht_deko

合体させるとこう。なんて不格好な。 pic.twitter.com/iid3QCr45z

2020-06-17 23:06:53
拡大
拡大
DEKO @ht_deko

で、色々な Arduino ボードを試すと USB ケーブルの抜き差しが面倒になるので、micro -> Type-C 変換アダプタも買ってたんです。OTG 対応とは書いてなかったんですけども。 amzn.to/3hv94Ka

2020-06-17 23:06:53
DEKO @ht_deko

ダメ元でやってみたら、これだけで Wio Terminal に接続できたっていう...(^^;A pic.twitter.com/V0UeJP37yC

2020-06-17 23:06:54
拡大
DEKO @ht_deko

Wio Terminal の VT100 エミュレータの元ネタはコレ。 言い忘れてたけど、Wio Terminal のパッシブブザーにも接続してあるので、Ctrl+G を送るとベルが鳴る。 github.com/ht-deko/vt100_… pic.twitter.com/Dv3cohqniZ

2020-06-17 23:19:28
拡大
DEKO @ht_deko

えっと Wio Terminal で OTG するのに使うアダプタだけど、ダイソーのコレでイケるみたい。MicroUSB の方はちょっと精度悪いけど使えないことはないかな。 pic.twitter.com/u0sReV3Iz7

2020-06-22 16:35:48
拡大
拡大
拡大
拡大

本編

いってみよ~♪

robo8080 @robo8080

Wio Terminalで動く超小型CP/Mマシンをgithubに上げました。興味のある方はどうぞ。:robo8080/Wio_RunPCM_vt100_CardKB github.com/robo8080/Wio_R… pic.twitter.com/A2PuDOn78F

2020-12-24 15:59:24
拡大
拡大
DEKO @ht_deko

ロマン (超小型スタンドアロン CP/M マシン) キタ―――(゚∀゚)―――― !! github.com/robo8080/Wio_R… pic.twitter.com/YKHoA9OqXu

2020-12-28 18:54:25
拡大
DEKO @ht_deko

Wio_RunCPM_vt100_UsbKB の github.com/robo8080/Wio_R… VT100 部分に問題があったので修正。 github.com/ht-deko/vt100_… スクロール等で一行描画が発生すると意図しない色で描画されていた。pushColors() ではダメで pushColor() なら OK な理由がワカラン。 pic.twitter.com/6zWTofaqDL

2020-12-29 19:52:34
拡大
DEKO @ht_deko

@lovyan03 LovyanGFX を使うように書き換えてみたくもありますねー。

2020-12-30 02:31:02
DEKO @ht_deko

グラフィックドライバと言えば、その昔カノープスが『EGR98』というものをリリースしていたらしい。 僕は使ったことがないのだけれど、エスケープシーケンスでグラフィックが書けたみたい。 EGR98 のエスケープシーケンス体系を知りたいのだけれど、ちょっともう無理かなぁ。 twitter.com/lpproj/status/…

2020-12-30 03:16:50
DEKO @ht_deko

"スタンドアロン CP/M マシン" を更新。 Dir コマンドのファイルリストが読みにくい問題の解決方法を追加。 [Arduino] RunCPM (Z80 CP/M 2.2 エミュレータ) ht-deko.com/arduino/runcpm… pic.twitter.com/FfT64D5atr

2021-01-06 09:59:10
拡大
DEKO @ht_deko

[RunCPM] 個体差かもしれないけれど、Wio Terminal のディスプレイは見切れるので、ピクセル単位のスクリーンサイズとキャラクタ単位でのスクリーンサイズを分けた。 53x30 文字から 52x29 文字に変更する事により、文字が見切れなくなる。 pic.twitter.com/gVBjzQ3IQ7

2021-01-06 20:56:28
拡大
DEKO @ht_deko

"RunCPM +VT100 Emu for Wio Terminal (USB KB)" を LovyanGFX で全面的に書き換えた。個人的には満足できる速度が出ている。DIR もそこそこ速い。 CardKB 持ってないので、CardKB 版まで手が回らないのが心苦しい...m(_ _)m pic.twitter.com/UjaIXfeJYw

2021-01-07 01:26:17
らびやん @lovyan03

@ht_deko おお…!ご利用ありがとうございます。速度上がったようで良かったです~

2021-01-07 08:22:31
DEKO @ht_deko

[RunCPM] プルリクエストが承認されたので、 ・LovyanGFX 対応 ・文字スクリーンサイズ変更対応 された "RunCPM +VT100 Emu for Wio Terminal (USB KB)" がリリースされています。 Wio Terminal で文字が見切れなくできますし、前版よりも描画速度が向上しています。 twitter.com/ht_deko/status…

2021-01-07 12:25:50
らびやん @lovyan03

@ht_deko ありがとうございます! おそらくlcd.init()の後にlcd.startWrite(); を一行追加することで、SPIバスを占有できてさらに速度が上がると思います。M5Stack版の場合はSDとの兼ね合いで描画の前後をstartWrite/endWriteで囲んでいますが、WioTerminalならば占有しても大丈夫と予想…!

2021-01-07 12:26:00
残りを読む(173)

コメント

Y_S @shadow_ump 2021年2月13日
CPMというと紙ジャケットの8インチのフロッピーを差していたのを思い出すなぁ
0