編集部イチオシ

PC XT 互換機を自作する

公開されている様々な基板を使ってPC XT 互換機を作成する作業の記録
59
earlgrey @konekodensetsu

OPL2 カードちゃんと音出てよかった。4枚カードがささって PC らしくなってきた。 pic.twitter.com/9ieMRRwTMG

2018-10-29 22:31:18
拡大
拡大

OPL2 カードは Sound Blaster 以前の標準、Adlib カード互換。ボリュームは基板に固定する部分が後端に集まっていて弱く、何度か曲げてしまうことになる。穴あけ作業が大変そうで先送りにしていたが固定のためのブラケットが必須だとわかった。


earlgrey @konekodensetsu

今日の XT。サウンドカードのブラケット穴あけ。ドリルで下穴開けてテーパーリーマーで削ってヤスリで仕上げ。金属加工なんて高校以来。テーパーリーマー、もうちょっと綺麗に仕上がるのかと思ったらバリバリ。でも便利。中心位置がズレてピンジャックの穴はかなり大きくする必要があったのが残念。 pic.twitter.com/bIzTYNzVTi

2018-11-10 21:22:01
拡大
拡大
earlgrey @konekodensetsu

サウンド、CPU カードのブラケット穴あけに成功したものの(位置はちょっとズレた…)バリがうまくとれない。ググってバリ取り用のナイフ買ってみた。穴の内側に曲がった刃先を入れてクルクル回転させてバリをとる。うん、写真だと微妙な差だけど効果ちゃんとある。最初から使いたかった。 pic.twitter.com/Da3KUnU6x3

2018-11-12 20:32:30
拡大
拡大
拡大

拡張カードの追加(1)マウス、EMSメモリ、FDD


earlgrey @konekodensetsu

今日の XT。ターボモード(9.55MHz)に入れない件は Amazon で600円キーボードを買って解決。ただ明日にならないと試せないので今日はマウスの設定る。これは自作基板ではなくて Microsoft 純正の XT Bus カード。このカード、IRQ と IOPort の設定意外に XT SLOT8 という謎のジャンパがある。 pic.twitter.com/V239jfmqmu

2018-10-30 23:10:28
拡大
earlgrey @konekodensetsu

調べると XT の SLOT8 は特殊なスロットで、何の目的でそうなっているのかなどはあまりはっきりしていないらしい。私の場合は IBM 機じゃないので NORMAL 設定。 -- IBM 5155/5160 - Expansion Slot 8 minuszerodegrees.net/5160/misc/5160…

2018-10-30 23:13:49
earlgrey @konekodensetsu

昨日までは Config.sys も Autoexec.bat も無い状態での運用だったので DOS 6.22 のデフォルトを持ってきてマウスドライバ追記。98用のバスマウスを接続。tpaint というソフトでマウスが動くことを確認できた。このソフト、フリーハンドのツールがなくて描くの大変だった。 pic.twitter.com/UWdgZi8528

2018-10-30 23:18:23
拡大
earlgrey @konekodensetsu

明日は EMS カードを完成して使ってみようと思っているけど、ドライバは自分でパッチあてて作らなくちゃいけない事を知って前準備。Linux 環境でのパッチあてと DOS 環境でのアセンブルが必要。マウスは使わないかな?と思ってたけど、普通に MS-DOS Editor で使えるので便利だった。 pic.twitter.com/QVxQBb6E7t

2018-10-31 02:58:37
拡大

Lo-tech の EMS カード(表面実装)はドライバをダウンロードするだけでOK。Scott さんの方のカード(DIP)は Lo-tech のドライバにパッチを当てる必要がある。


earlgrey @konekodensetsu

EMS カードの作業も進めてるけど、テストする予定だった DIP SRAM のカードは集合抵抗が足りなくて完成しなかった。変わりに表面実装 SRAM のカードの方を突貫で作成。テストは明日。 pic.twitter.com/QxqVCibvui

2018-10-31 23:43:57
拡大
earlgrey @konekodensetsu

チップ抵抗とかコンデンサ、ほとんど作業したことなかったので、Amazon で購入した練習基板で20個つけてコツをつかんでから挑んだ。正直リード切らなくていいので、こっちの方が早いくらいだ。食わず嫌いだった。 pic.twitter.com/ws3755TGDC

2018-10-31 23:45:52
拡大
earlgrey @konekodensetsu

表面実装 SRAM を全部反対につけたことがわかってピンチ。ぽっちがあるから1番と思ったら逆側にもっとそれらしいのがあった…

2018-11-01 00:15:18

一番ピンの近くにはっきりとした凹みがあるのだが、反対側の中央にも凹みがあって間違った。


earlgrey @konekodensetsu

全部外して付けなおし。XT Bus バックプレーン(もう空きが1個しかない。FDD/Serialカードの予定)にのっけて起動。Config.sys に LTEMM.EXE を登録して、EMMSTAT。ちゃんと 2MB 認識されてた。今メモリテスト中。 pic.twitter.com/yi5A4syYLn

2018-11-01 01:39:33
拡大
拡大
拡大
拡大
earlgrey @konekodensetsu

今日の XT。FDC が届いたので予定を変更して FDD からの起動。かなりカードが差さってきたので IOPort と Address の競合の調査にちょっと時間がかかった。昔結構気にしていた IRQ はこのシステムではそこまで逼迫してない。空いてる。 pic.twitter.com/lgJbsLIiqD

2018-11-01 23:07:53
拡大
拡大
earlgrey @konekodensetsu

FDD カードにはシリアルポートもついてて、動作確認してないけど BIOS の表示では設定通りになっている。FDD BIOS も搭載して競合しないように設定したけど、OFF にしても micro 8088 側の BIOS で起動してくれてる。OFF の方が良さそう。

2018-11-01 23:27:44

拡張 BIOS について

FDD BIOS は結局その後 ON にしている。理由は本体 BIOS だとなぜか初回の FD Boot に失敗するため。BIOS は本体以外に IDE、FDD の2つあるが、アドレスを若い順に IDE, FDD にすると FD Boot できなくなるため FDD, IDE にする必要もある。

もうちょっと BIOS について書いておくと IDE BIOS は当初 Boot Menu 付の 12KB XT 版を使っていたが (1) Boot Menu を呼ぶと必ずフリーズする (2) 8KB 以上の BIOS を設定するとアドレスの設定が細かくできなくなる の2点から 8KB XT 版 BIOS に変更した。

後者が特に重要で、VGA BIOS 以降のメモリ空間 C8000-FFFFF のうち、本体 BIOS が F0000-FFFFF、EMS が E0000-EFFFF を使っているので拡張 BIOS に提供できるのは C8000-DFFFF。できれば D0000-DFFFF の 64KB は UMB に使いたいので C8000-CFFFFF の 32KB に拡張 BIOS を詰め込みたい。

現在の最新の設定では FDD BIOS 8KB を C8000-C9FFF, IDE BIOS 8KB を CC000-CDFFF に設定している。IDE BIOS を 8KB 越えに設定すると開始アドレスを 32KB 単位でしか設計できなくなるため、このような詰め込みはできなくなる。

この設定を行った時に拡張 BIOS がどうやって認識されるのかについても調べたが、2KB 単位でメモリの内容を読み出し、拡張 BIOS の識別子を確認したら読み込むようになっている。この情報が Wikipedia に書いてあるのがすごい。

BIOS
https://en.wikipedia.org/wiki/BIOS
a BIOS implementation scans the real-mode address space from 0x0C0000 to 0x0F0000 on 2 KiB boundaries


earlgrey @konekodensetsu

カード全て挿した状態だと、起動して FD 読みに行ってる感じはあるけど VGA の画面出力がされない。試行錯誤でこの順番(CPU, VGA, EMS, Mouse, IDE, Sound, FDD) にしたら再び起動するようになった。VGA だけの問題なら本来使う予定の TVGA9000i にしたら安定するかもしれないけど、どうだろ? pic.twitter.com/V0zsSY556u

2018-11-01 23:41:11
拡大
拡大

このときはこう考えていたが今はあまり順番は気にしていないし、ずっと画面が出ないという現象にも遭遇していない。ただ、たまにブートが失敗することは現在でもある。



日本語化

8088 (V20)での日本語化がどこまでできるのかよくわからなかった。DOS/V はインストールではじかれる上、Web で検索した IBM XT での日本語環境構築が漢字 ROM ベースだったのがちょっとひっかかっていた。

Funky Goods in 秋葉原 第5回
ジャンクでつくるIBM PC/XT <その4>

http://www.funkygoods.com/cyosaku/funky_goods/1994_08/fg_1994_08_top.html

ただ、同程度の CPU を搭載した HP200LX (80186)が日本語環境を作れているので、不可能では無さそうだと思い、HP200LX の情報から調べ始めた。


earlgrey @konekodensetsu

新しい Compact Flash に DOS 入れて FD と VZ をインストールした 2018 年。ジャンク FDD に VZ のディスク入れたら認識しなくて慌てて Win10 でイメージ化してからインストールした。危ないことはするものじゃない。壊れちゃう。 pic.twitter.com/2BlXSSLRbc

2018-11-05 00:41:58
拡大
拡大
拡大
earlgrey @konekodensetsu

日本語表示したいと思って HP200LX 日本語化キットのドライバを組み込んでみた。LXFONT.EXE も LXDSPD.EXE も組み込み時は動いているように見える(フォント読み込みで IDE のランプが点滅、画面も LX っぽい感じに)。行けるか?と思ったけど2バイト文字を表示する瞬間にフリーズしてしまう。ダメか。 pic.twitter.com/2hzCe6Av5A

2018-11-06 02:59:06
拡大

結局このとき何が悪かったのかわかっていない。もっと調べれていれば成功した可能性もあると思う。


earlgrey @konekodensetsu

今日の PC XT 互換機。日本語表示に成功。8088 だし CGA での DOS/C 化じゃないと…と勝手に決めつけてたけど、FONTX / DISPV というフォント・ディスプレイドライバは 8086 対応!EMS対応!まさに自分の環境にあったソフトで見事に VGA 画面での日本語表示ができました。PC XT は使える子。 pic.twitter.com/Sc9cPZTq01

2018-11-06 22:58:46
拡大