3
1

More than 3 years have passed since last update.

PC-9801でインターネット

Last updated at Posted at 2021-03-06

1年くらい前に同じような記事が話題になっていましたが、PC9801FA2が復活したので試してみました。

PC-9801のMS-DOS上のIPスタックTEENというものがありました。現在でもページはありダウンロードできます。これをダウンロードして試してみます。

TEENはシリアル(PPP)とEthernetのサポートがあり、シリアルの方を使ってみます。TEENは90年代後半にパソコン通信などでPPPを使ったIP接続を提供するようになって、それを使うために作られたようです。当時の接続は電話回線でモデムを使って行われていました。TEENではモデムを使った接続のほかにサーバーに直結で使うこともできます。

PPP以前にもシリアルを使ったIP接続はありSLIPと呼ばれていました。これは認証などの仕組みがなく非常に原始的なものでした。PPPはそれを改良したものといわれていますが、PPPで考えられた仕組みはWiFiやPPPoEなどにも引き継がれていて重要な成果だったと思います。

TEENのソースは公開されていて、中身を見るとCとアセンブラで作られています。

シリアルの接続先はVALUESTARにインストールしたFreeBSD/i386 12.2Rです。クロスケーブルで接続してあります。

PC98INET.png

PC-9801で直接ダウンロードはできないので、ダウンロードしたファイルをFreeBSDからYMODEMでPC-9801に転送して解凍しておきます。

FreeBSDでは以下のように設定します。

/etc/ppp/ppp.conf
default:
 set device /dev/cuau0
 set speed 9600

in:
  set ifaddr 192.168.0.200 192.168.0.201
  enable proxy
  enable dns
  set dns 192.168.0.1
  set timeout 0

パケットがEther側に転送されるように設定します。(ここ大事)

% sudo sysctl net.inet.ip.forwarding=1

TEEN.DEFの[DIAL] 100を3にします。

これでPC-9801側でTEENとTOPENを起動します。

その後にFreeBSDでpppを起動します。

% sudo /usr/sbin/ppp -auto in

DNSがうまく引けないようなのですが、www.yahoo.co.jpにpingが通りました。

IMG_20210306_114141.jpg

TEENでは9600以上のボーレートも設定できるようですが、正式なボーレートではないため、FreeBSDで設定不可能なので使えません。

追記:

DNSサーバはpppで渡されるアドレスではなくTEEN.DEFの中の設定されているアドレスが使われているようです。

netgraph編

FreeBSDにはnetgraphというネットワークのフレームワークがあり、これでもpppサーバが作れます。netgraph自体は標準のインストールで入りますが、mpd5というpkgが必要になるのでインストールします。設定は以下のとおりです。

/usr/local/etc/mpd5/mpd.conf
in:
        create bundle static B1
        set iface enable proxy-arp
        set ipcp ranges 192.168.0.200/32 192.168.0.201/32

        create link static L1 modem
# Set bundle to use
        set link action bundle B1
        set link no pap chap eap chap-md5
        set link enable pap
# Configure modem
        set modem device /dev/cuau0
        set modem speed 9600
        set modem watch -cd
        set modem idle-script Direct
# Permit incoming calls using this link
        set link enable incoming
/usr/local/etc/mpd5/mpd.script
Direct:
        set $IdleResult "answer"
        success

mpd.secretの中にUSERNAME/PASSWORDを入れて、mpd5を実行します。

% sudo /usr/local/sbin/mpd5 in

netgraphはたくさんのカーネルモジュールにより構成されておりmpd5を起動すると必要なカーネルモジュールがロードされます。

mpd5のpppの設定はネットを検索してもほとんど出てこなかったので、マニュアルを読むのが良さそうです。

pppコマンドはtunインターフェースを使って、netgraphはngインターフェースを使います。FreeBSD 8以前はpppdというコマンドもあったようですが、pppコマンドにマージされたようです。

TEENに対応したSNTPのクライアントがあったので試してみました。

B>SET TZ=JST-9
B>SNTPGET ntp.nict.jp

以下のページでTEEN対応のアプリケーションをまとめられてます。

PC-9801のMS-DOSでインターネット接続はTEENの他にWATTCP98というものもあったようです。WATTCP98はWATTCPを98に移植したもののようですが、すでにサイトもなくなっていて詳細は不明です。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1