Skip to main content

MSXシリアルターミナル

Project description

MSXシリアルターミナル

CI PyPI version

シリアル接続やTelnetを通じてMSXと通信するための高性能ターミナルプログラムです。リアルタイム文字表示、自動モード検出、日本語テキストサポートを特徴としています。

📖 ドキュメント一覧


✨ 特徴

リアルタイム通信: 文字単位での高速MSX通信に最適化
🔍 自動モード検出: BASICとMSX-DOSモードを自動検出
🌐 複数接続タイプ: シリアル、Telnet、ダミー接続に対応
📝 日本語テキストサポート: MSX文字エンコーディングの完全サポート
📁 ファイル転送: BASICプログラムアップロードとテキストファイル貼り付け機能
🎯 スマート補完: コンテキスト対応のコマンド補完
📖 MSX BASICヘルプ: 160+のMSX BASICコマンドリファレンス内蔵
📂 DOSファイル補完: DIRコマンド自動キャッシュによるファイル名補完
高いテストカバレッジ: 95%のコードカバレッジと598のテストケース

🤖 AI貢献について

このリポジトリはAI(Claude)が約90%のコードを記述しています

このプロジェクトは人間の初期実装とAIによる大幅な構造改善・機能追加の協働プロジェクトです:

  • 総Pythonコード: 12,200行
  • AI貢献: 約11,000行(90.2%)
  • 主要AI貢献: 構造設計、テストスイート、セキュリティ改善、パフォーマンス最適化
  • 人間貢献: 初期コンセプト、要件定義、品質管理、プロジェクト管理

AIと人間のコラボレーションにより、高品質で保守性の高いコードベースを実現しています。

📦 インストール

pip install msx-serial

🚀 クイックスタート

基本接続

# シリアル接続
msx-serial COM1                                    # Windows
msx-serial /dev/ttyUSB0                           # Linux
msx-serial /dev/tty.usbserial-12345678901         # macOS

# Telnet接続
msx-serial 192.168.1.100:2223

# ダミー接続(テスト用)
msx-serial dummy://

基本的な特殊コマンド

@help                # 全コマンドのヘルプを表示
@help PRINT          # MSX BASICコマンドのヘルプ
@paste myfile.bas    # テキストファイルをMSXに貼り付け
@upload program.bas  # BASICプログラムをアップロード
@mode               # 現在のMSXモードを表示
@refresh            # DOSファイル補完キャッシュを更新
@exit               # プログラム終了

MSX BASICヘルプ機能

160以上のMSX BASICコマンドの詳細なヘルプが利用可能:

@help ABS           # 絶対値関数
@help PRINT         # 出力コマンド  
@help CALL MUSIC    # MSX-MUSIC初期化
@help _MUSIC        # 短縮形(CALLコマンドと同等)

DOSファイル補完機能

MSX-DOSモードでファイル名の自動補完が利用可能:

# DIRコマンドを実行すると自動的にキャッシュが更新される
DIR

# ファイル名補完(Tabキー)
TYPE <Tab>          # ファイル名を補完
COPY <Tab>          # ファイル名を補完
DEL <Tab>           # ファイル名を補完

# 手動キャッシュ更新
@refresh            # DIRコマンドを実行してキャッシュを更新

📋 主要コマンド一覧

コマンド 説明 利用可能モード
@paste テキストファイル内容を貼り付け BASICモードのみ
@upload ファイルをBASICプログラムとしてアップロード BASICモードのみ
@help MSX BASICコマンドヘルプ表示 全モード
@mode MSXモードを表示/強制変更 全モード
@encode テキストエンコーディングを設定 全モード
@perf パフォーマンス統計を表示 全モード
@refresh DOSファイル補完キャッシュを更新 DOSモードのみ
@cd 現在のディレクトリを変更 全モード
@exit プログラムを終了 全モード

詳細なコマンド使用方法は 📋 詳細ガイド をご覧ください。

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

msx-serial [-h] [--encoding ENCODING] [--debug] connection

オプション:
  -h, --help           ヘルプメッセージを表示
  --encoding ENCODING  テキストエンコーディング (デフォルト: msx-jp)
  --debug              デバッグモードを有効化

🏗️ アーキテクチャ概要

主要コンポーネント

  • MSXSession: 高速応答メインターミナルセッション
  • ConnectionManager: 統合接続処理 (Serial/Telnet/Dummy)
  • MSXProtocolDetector: プロンプトからの自動モード検出
  • CommandCompleter: コンテキスト対応コマンド補完
  • FileTransferManager: ファイルアップロードと貼り付け操作

詳細なアーキテクチャは 🔧 開発ガイド をご参照ください。

🧪 テスト

# 基本テスト実行
pip install -e .[dev]
pytest

# カバレッジ付き実行
pytest --cov=msx_serial --cov-report=html

テスト統計:

  • 総テスト数: 598件
  • コードカバレッジ: 95%
  • テスト成功率: 100%

🤝 貢献

プルリクエストや課題報告を歓迎します。開発方法は 🔧 開発ガイド をご確認ください。

品質要件

新機能追加・変更時は以下の品質要件を満たしてください:

make check-all       # 全品質チェック実行
make test           # テストカバレッジ95%以上(現在95%達成)
make lint           # flake8・mypy全エラー解消  
make security       # bandit高リスク問題なし
make complexity     # Radon平均A評価
make format         # black・isortフォーマット適用

📄 ライセンス

このプロジェクトはMITライセンスのもとで公開されています。

🙏 謝辞

このプロジェクトは以下の素晴らしいリソースから多大な恩恵を受けています:

関係者の皆様に深く感謝いたします。

📈 更新履歴

v0.2.20(最新)

  • DIRコマンド自動キャッシュ機能: DIRコマンド実行時に自動的にファイル補完キャッシュを更新
  • DOSファイル補完機能: MSX-DOSモードでTabキーによるファイル名自動補完
  • @setfilesコマンド削除: 手動設定コマンドを削除し、自動化を実現
  • DataProcessor拡張: DIR出力の自動収集・解析機能を追加
  • 品質ゲート完全通過: flake8・mypy・bandit・Radon全クリア

v0.2.19

  • テスト失敗修正完了:全598テスト正常パス
  • テストカバレッジ95%達成(.cursorules要件クリア)
  • BaseCompleterとMSXヘルプテストの品質向上
  • AI貢献度90.2%に向上(+1,000行のテスト追加)
  • 品質ゲート完全通過(flake8・mypy・bandit・Radon全クリア)

v0.2.17.dev8

  • 「@help ABS」MSX BASICコマンドヘルプ機能を復旧・実装
  • 160以上のMSX BASICコマンドリファレンスを内蔵
  • CALL系コマンドのアンダースコア記法サポート
  • 複雑度C評価関数のリファクタリング完了
  • テストカバレッジ87%到達、548テスト全通過

詳細な更新履歴は 📋 詳細ガイド をご覧ください。

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.20.tar.gz (194.6 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.20-py3-none-any.whl (224.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for msx_serial-0.2.20.tar.gz
Algorithm Hash digest
SHA256 9efe12abfe0930f211b1081717540e7ba27d973c9177d207f706d9a174eb884f
MD5 4d53f4787cfe681a01697fa6704733a5
BLAKE2b-256 4bf6d159deedcb0c9e97b9bfa7afc95c6609a7d08cdee078b952c049ff3ea233

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for msx_serial-0.2.20-py3-none-any.whl
Algorithm Hash digest
SHA256 d2cbfe106939a73569c314abb7a6bad38e38cb2de3c18f4ea393418384902b18
MD5 6b222207d67704d6b90b100cdd0c3c59
BLAKE2b-256 99d6f3a2cecc7459c9f411a802bfb7336d90bb618fa86879a4ae0be2e9c191a2

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