- WebXpression.x programmed by Mitsuky
- UTF-8, TLS support by Yuichi Nakamura (@yunkya2)
このプログラムは、X680x0 用 WWW ブラウザ WebXpression.x をベースに以下の機能追加を行ったものです。
- UTF-8 対応
- TLS (HTTPS) 対応
四半世紀も前に開発されたブラウザを現代に蘇らせようという酔狂な試みです。 当時と比べると Web の仕様も劇的に変化しているため出来ることはかなり限られますが、サイトの閲覧くらいには使えるかもしれません。
X680x0 で、計測技研製 TCP/IP ドライバやその互換ドライバを用いたネットワーク接続が可能な環境が必要です。
TLS プロトコルは X680x0 にとって非常に重い処理なので、正常な動作のためには各種設定のチューニングが不可欠です。具体的には以下の設定を行ってください。
※ 「イーサネットじょい君」「WiFi+PCMパイルダー」を使用する場合はチューニングは不要です。また、WiFi+PCMパイルダーではTLSソケット機能を用いてX68kに負荷をかけずにTLS通信が利用できます。
- CONFIG.SYS
- TCP/IPドライバを動かすために必要な
PROCESS=行を以下の設定にしますPROCESS = 3 2 100- 最初の
3は最大スレッド数の指定です。3 以上の値であればよいです - 2,3 番目の値 (メインスレッドの優先度とタイムスライス値) は計測技研製ドライバの設定例では
10 10になっていますが、この値では TLS 処理のための CPU 時間が不足するため、変更の必要があります
- 最初の
- TCP/IPドライバを動かすために必要な
- TCP/IP ドライバ
- 計測技研製ドライバより高速な hinetd.x (K.Shirakata さん作) を使用してください
- X68000 LIBRARY (http://retropc.net/x68000/software/internet/tcpip/hinetd/) から入手できます
- hinetd.x 起動時のパラメータは以下の設定にします
高速化係数(
hinetd -w512 -n15-n)を最大に設定した上で、TCP のウィンドウサイズ(-w)を 512 バイトに設定します - 実行中にドライバのメモリ不足が発生する場合があるため、メモリに余裕のある環境では更に
-+-h:524288 -+-s:262144のオプションを追加してヒープサイズとスタックサイズを増やしておくとよいです
- 計測技研製ドライバより高速な hinetd.x (K.Shirakata さん作) を使用してください
実行ファイルとコンフィグファイルの名前がそれぞれ WebXpressionPlus.x, WebXpressionPlus.cnf に変わっていますが、基本的にはオリジナルの WebXpression.x と同じです。 doc ディレクトリにオリジナルのドキュメントがありますので、そちらを参照してください。
オリジナルが作られた頃に比べると現在の Web サイトはページのサイズも画像の数やサイズもかなり大きくなっているので、表示までにはかなり時間がかかります。気長に待ちましょう。
コンフィグファイルに新規に「IMGタグを無視する」設定を追加してあります。 WebXpressionPlus.cnf の ignore-image の値を 1 に設定すると、すべての IMG タグを無視して画像を表示しなくなります。特にアクセラレータ等のない素のマシンの場合は 1 を推奨します。
- HTTPS 通信に使用している TLS の実装 (axTLS) に以下の制約事項があるため、サイトによって接続できない場合があります。
- 対応するプロトコルに制約があります
- 利用できる TLS バージョンは 1.2 のみです
- 鍵交換で利用できる暗号は RSA のみです。DH や ECDHE などその他の方式には対応していません
- 接続時にサーバ証明書の確認を行いません(axTLS に機能はありますが、使用していません)
- 接続先によっては接続時の TLS ハンドシェイクのタイムアウトが短めに設定されていて、これに間に合わないとサーバ側から接続が切断されることがあります
- 特に 10MHz 機の場合にはぎりぎりで、通信状態によってはタイムアウトしてしまう可能性があります。XVI や X68030 などの高速な機種や、PhantomX などのアクセラレータがある環境が望ましいです
- 対応するプロトコルに制約があります
- 「WiFi+PCMパイルダー」を使用する場合はTLSソケット機能を用いた処理が可能です。mbedTLS を用いた通信が行われますが、以下の制約事項があります。
- 接続時にサーバ証明書の確認を行っていません。また、クライアント証明書を要求するサイトへには接続できません。
クロス開発環境でのビルドに移行させたので、ビルドには Linux 環境で以下のツール、ファイルが必要です。
run68 をパスの通った場所に置き、HAS060.X, IOCSCALL.MAC, DOSCALL.MAC は Source ディレクトリに置いてください。
git clone --recursive https://github.com/yunkya2/WebXpressionPlus.git
で、サブモジュール込みで clone した後、Source ディレクトリ内で以下のコマンドでビルドします。
make
オリジナルのソースコードを公開してくださっていたおかげで、令和の世に X680x0 用ブラウザを動かそうという無謀な試みに挑戦することができました。 WebXpression.x の作者である Mitsuky さんに深く感謝いたします。
オリジナルの WebXpression.x の以下の配布規定に従います。
配布&改造自由のフリーウェアです。ソースの引用&組み込みも自由です。い
ずれの場合も連絡の必要はありません。
また、大変申し訳ありませんが、本プログラムは無保証であり本プログラムに
起因するいかなる損失にも免責とさせて頂きます。
新規に追加したファイルについては以下の通りです。
- axTLS は BSD ライセンスです
- UTF-8 -> SJIS 変換ライブラリ iconv_mini は MIT ライセンスです