Skip to main content

MSXシリアルターミナル

Project description

MSXシリアルターミナル

CI PyPI version

MSXとのシリアル通信またはtelnet接続を行うターミナルプログラム

機能

  • MSXとのシリアル通信
  • 日本語文字の送受信(MSX文字コード対応)
  • ファイル送信機能
  • コマンド補完機能
  • カラー表示

プロジェクト構造

msx_serial/
├── connection/     # 通信関連のモジュール
├── completion/     # コマンド補完機能
├── data/          # データファイル(文字コード変換テーブルなど)
├── input/         # 入力処理関連
├── transfer/      # ファイル転送機能
├── ui/            # ユーザーインターフェース
└── man/           # マニュアル

主要モジュールの説明

  • connection/: シリアル通信とtelnet接続の実装
  • completion/: コマンド補完機能の実装
  • input/: キー入力処理とコマンド解析
  • transfer/: ファイル転送機能の実装
  • ui/: ターミナルUIの実装
  • data/: 文字コード変換テーブルなどの静的データ

必要条件

  • Python 3.9以上
  • 必要なパッケージ(pyproject.tomlに記載)

インストール

pip install msx-serial

開発環境のセットアップ

# リポジトリのクローン
git clone https://github.com/yamamo-to/msx-serial
cd msx-serial

# 仮想環境の作成と有効化
python -m venv venv
.\venv\Scripts\activate  # Windowsの場合
source venv/bin/activate  # Linuxの場合

# 開発モードでインストール
pip install -e . --use-pep517

使用方法

基本的な使い方

# シリアル接続
msx-serial serial:///COM1?baud=9600
msx-serial serial:///dev/ttyUSB0?baud=115200
msx-serial COM1 --baudrate 9600
msx-serial /dev/ttyUSB0 --baudrate 115200

# Telnet接続(URI形式)
msx-serial telnet://192.168.86.30:2223
msx-serial 192.168.86.30:2223

コマンドラインオプション

usage: msx-serial [-h] [--baudrate BAUDRATE] [--encoding ENCODING] connection

MSXシリアルターミナル

positional arguments:
  connection           接続先 (例: COM1, /dev/ttyUSB0, 192.168.1.100:2223, telnet://192.168.1.100:2223, serial:///COM1?baud=9600)

options:
  -h, --help           ヘルプメッセージを表示して終了
  --baudrate BAUDRATE  シリアル接続時のボーレート (URI形式で指定する場合は不要)
  --encoding ENCODING  エンコーディング (デフォルト: msx-jp)

接続先の指定方法

  1. URI形式

    • シリアル接続: serial:///COM1?baud=9600
    • Telnet接続: telnet://192.168.1.100:2223
  2. 従来の形式

    • シリアル接続: COM1 または /dev/ttyUSB0
    • Telnet接続: 192.168.1.100:2223

特殊コマンド

  • @paste: テキストファイルを読み込んで送信
  • @upload: ファイルをアップロード
  • @cd: カレントディレクトリを変更
  • @encode: 送受信時の文字コードを指定(msx-jp, msx-intl, msx-br, shift-jis)
  • @help: コマンドのヘルプを表示
  • @exit: プログラムを終了

特殊コマンドの詳細な使用方法は @help コマンドで確認できます。

文字コード対応

  • UTF-8からMSX文字コードへの変換
  • MSX文字コードからUTF-8への変換
  • グラフィックキャラクタ対応
  • 濁点・半濁点対応

依存関係

  • Python 3.9以上
  • colorama: ターミナルのカラー表示
  • prompt-toolkit: 対話型コマンドラインインターフェース
  • pyserial: シリアル通信
  • PyYAML: YAMLファイルの読み込み
  • chardet: 文字エンコーディングの検出
  • msx-charset: MSX文字コードの変換

謝辞

BASE64によるアップロードは下記の記事を参考にさせていただきました。 https://qiita.com/enu7/items/23cab122141fb8d07c6d

MSX-BASICのコマンドリファレンスは下記のリポジトリをAIによりman形式に変換させていただきました。 https://github.com/fu-sen/MSX-BASIC

ライセンス

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

msx_serial-0.2.4.tar.gz (86.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

msx_serial-0.2.4-py3-none-any.whl (175.5 kB view details)

Uploaded Python 3

File details

Details for the file msx_serial-0.2.4.tar.gz.

File metadata

  • Download URL: msx_serial-0.2.4.tar.gz
  • Upload date:
  • Size: 86.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for msx_serial-0.2.4.tar.gz
Algorithm Hash digest
SHA256 2dddf48089d337f009fc627a8755a7d7e58537506a27a85c4d44f21a3e75b567
MD5 580278f3956ec0d1b13b3e00afc80241
BLAKE2b-256 3260821966524e870339de057f660b0ea012a5cb3dce62e09b591b7e50a826ad

See more details on using hashes here.

File details

Details for the file msx_serial-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: msx_serial-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 175.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for msx_serial-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7152c1992d3b1a63420b0b749ed1f186e004bc08b152f4e87b8956be0fd8cece
MD5 fac5ddaef1f1dd7417e6b83c2071f4b4
BLAKE2b-256 9a37a0e301674e1c544ea56aeb561197337c1e43a40938ee6c328dba53ad7e80

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page