スーパーファミコンと NTT DATA NDM24 をコントローラーポート経由で通信させるための、実験用ドライバと Windows 向け開発ツールです。JRA PAT の実通信をロジックアナライザで観測した結果を基準に、初期化、非同期送受信、状態管理、常設診断機能を整理しています。
現時点の到達点は、NDM24 固有の R 初期化、ATM0 による応答確認とスピーカー無効化、256 バイトの送受信リング、L/Rで切り替える人間向けステータス画面と32文字幅生ログ、QUsb2Snes 経由の監視・テスト・ROM 転送です。PPPはRFC 1662非同期フレーミング、LCP、PAP client、IPCP、IPv4 packet層、ICMP Echo responder/requester、汎用UDP datagram送信、NTP client、最小DNS A clientをRust参照実装と65816へ実装し、NDM24のRX/TXリングへ中断・再開可能な形で接続済みです。revision AとDFM-56Uを使うWSL2対向環境ではLCP、PAP認証、IPCPまで実対向で合格し、SFC側10.24.0.2と対向10.24.0.1を確定しました。IPv4、ICMP Echo、UDP/NTP/DNSはMesenCEおよびFXPAK PRO実機の常設セルフテストに加え、疑似PSTNのV.22bis 2400 bit/s回線上でも送受信に合格しています。PPPサーバーには、起動中だけSFCの外向きIPv4をWSLの既定回線へNATする構成も追加済みです。SFC実機から公開IPv4 1.1.1.1へのICMP Echo往復と、同じホストのUDP port 53を使う公開DNS A問い合わせに合格しています。NTPで取得したJST時刻はSFCのフレーム進行を基準に表示します。TCPは未実装です。
64 ビット版 Windows と Rust を用意し、PowerShell で次を実行します。
cargo xtask bootstrap
cargo xtask check
cargo xtask mesen-test最初のコマンドは、ハッシュを固定した公式 cc65 Windows スナップショットを .tools/cc65 へ配置します。二番目のコマンドは、仕様・フォント生成物、65816のレジスタ幅・スタック・WRAMアクセス、Rust テスト、通常 ROM、スモークテスト ROM、フォント確認 ROM をまとめて検証します。三番目はMesenCEのheadless test runnerで通常ROMの常設PPPセルフテストを実行し、NDM24やFXPAK PROを使わず終了コードで合否を返します。
生成物:
build/normal/modem-control.sfcbuild/smoke/modem-control.sfcbuild/font-test/modem-control.sfc- 各ディレクトリの
.lbl、.map、.dbg
QUsb2Snes と USB 接続済み FXPAK PRO が起動している場合、スモークテスト ROM の転送と起動は次の一行です。
cargo xtask deploy --smoke起動後の初期化テストと状態監視:
cargo run -p ndm24-tools -- test
cargo run -p ndm24-tools -- mailbox ppp-self-test
cargo run -p ndm24-tools -- monitor
cargo run -p ndm24-tools -- ppp-monitor
cargo run -p ndm24-tools -- frame-rate --seconds 15
cargo run -p ndm24-tools -- ntp-request
cargo run -p ndm24-tools -- icmp-echo 1.1.1.1
cargo run -p ndm24-tools -- dns-query example.com --resolver 1.1.1.1
cargo run -p ndm24-tools -- identify --revision B
cargo run -p ndm24-tools -- connect-test --revision B --port COM5
cargo run -p ndm24-tools -- binary-test --revision B --port COM5
.\tools\ppp-server\ndm24-ppp-server.ps1 Install
.\tools\ppp-server\ndm24-ppp-server.ps1 Probe実機を使う手順と合格条件は ハードウェアテスト手順、取得済みの機器情報は NDM24 AT識別情報、ドライバ API は NDM24 ドライバ設計、PPP対向環境は WSL2 PPPサーバー、@nifty実回線試験は @nifty 実回線ダイヤルアップ試験、次段階は PPP実装方針を参照してください。
プロトコル定数、状態、モデム・PPP診断 ABI、メールボックス ABI、ターミナル配色の正本は spec/ndm24.tomlです。フォント原本は固定コミットの font8x8_basic.hです。変更後は次を実行します。
cargo xtask generate
cargo xtask check生成対象を直接編集してはいけません。check は正本と Assembly、Rust、文書、font.bin、palette.bin、PNGプレビューがずれている場合に失敗します。