MB-S1/10

2012年2月26日日曜日

ネイティブモードにするために

S1のMPUをHD63C09EPに載せ換えたらマシン語の呪文をちょこちょこっと読み込ませて実行すると、あら不思議!S1が16ビットマシンに大変身!
ということで自分のS1/102DディスクBASIC版ネイティブモードへの呪文を。
 NATIVE
D000 8E A2 ED 1F C8 8B 21 B7  D0 0A 21 26 CE E9 97 31  (07)
D010 8C 21 C6 06 A6 A5 A7 C5  5A 2A F9 34 40 CC 6C A7  (00)
D020 CE 84 39 34 44 31 E4 10  3F C7 35 54 FF EE FB 11  (B0)
D030 3D 01 39 32 65 34 07 7E  F0 2B 00 00 00 00 00 00 (E2)

魔法を解いておとなしくさせる呪文も。
EMULATE
D000 8E A2 ED 1F C8 8B 21 B7 D0 0A 21 18 CC 6A A7 CE  (25)
D010 84 39 34 44 31 E4 10 3F C7 35 14 CE F0 2B FF EE (7F)
D020 FB 11 3D 00 39 00 00 00 00 00 00 00 00 00 00 00 (82)

2HD版DISK-BASICに有効なマシン語ダンプも発見!
 NATIVE
D000 8E A3 55 CE E9 97 31 8C 21 C6 06 A6 A5 A7 C5 5A (8F)
D010 2A F9 34 40 CC 6C A7 CE 84 39 34 44 31 E4 10 3F (D0)
D020 C7 35 54 FF EE FB 11 3D 01 39 32 65 34 07 7E F0 (00)
D030 2B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (2B)

 EMULATE
D000 8E A3 55 CC 6A A7 CE 84 39 34 44 31 E4 10 3F C7 (91)
D010 35 14 CE F0 2B FF EE F8 11 30 00 39 00 00 00 00 (A1)

このコマンド(マシン語)は
D001からの2バイト部分が2Dか2HDかのシステムによって変わってくるとのこと。
A355が2HDDISK-BASIC固有で、2Dの場合はA2E7となるとのことです。(あれ?自分のはA2EDだったのに???なぜ???)
この探し方は
MON
*MAP
CURRENT MAP = 0F
                         07
CURRENT MAP = 07
*S A000 AFFF 6A7F9065
Found--------A355(←これがD001、D002に書き込む2バイト)
*Q
でできるようです。

2012年2月13日月曜日

HD63C09Eについて

私のS1に載せているMPU、HD63C09Eについてですが、S1はFM−7やFM−11と違い、元々本体基板にCPUソケットで載っていたHD68B09Eを取り外して、そのままその空いたソケットに挿すだけという簡単な改造でパワーアップするというものです。
それを知ったのは工学社のパソコン通信「TeleStar」にあった日立のクローズドユーザーズグループ「S1クラブ」ででした。ただ差し替えるだけという簡単な改造でパワーアップ。素人の自分にでもできると言うことで、早速秋葉原にHD63C09Eを買いに走りました。
68B09が2MHzで駆動するのに対して63C09は3MHzで駆動するので、そのままだと実質的には1.5倍の速さになるのですが、実はHD63C09Eの真の力はそれだけではなかったのです。
HD63C09Eはモトローラの究極の8ビットMC6809のセカンドソースとして日立が開発したMPUなのですが、CMOSバージョンでクロック処理が3MHzというだけの違いではありません。実は内部のアーキテクチャが秘密裏に拡張されていて、内部処理としてはほぼ16ビットのMPUとして動いていたのです。しかも普段は6809と同じ動作をすることで、その機能を封じ、あたかも6809の3MHz版として自らをカモフラージュしていたのです。
これは、通常の6809モードを「エミュレート」、高速処理モードを「ネイティブ」と呼んでいることから、本来の姿は16ビットのネイティブなんだと言うことの表れだと思います。
こんなにワクワクする話って滅多にないですよね。自分もそれを知ってワクワクしていてもたってもいられませんでした。すごいぞ!日立!と思いましたから。
HD63C09のレジスタアーキテクチャ
(灰色部分は新設レジスタ部分)

HD63C09Eは内部的にはレジスタが7つ追加されて命令セットも拡張されていたので、命令実行もネイティブでは30%高速になるとのことです。これをネイティブとして動かすためには、とあるレジスタ処理を行うだけなのですが、数行のマシン語プログラムを実行するだけでさらなるスピードアップ、本来の16ビットの実力を発揮することになります。
ディスクベーシックの起動時にそのプログラムを自動で読み込ませていれば、簡単ですね。
自分は通常ディスクベーシックを拡張したDISK++とYShellを組み込んでいたので、YShellのコマンドとしてNATIVEとEMULATEを打ち込んでネイティブモードとエミュレートモードを切り替えていました。
ネイティブにすると、6809から6309に載せ替えたときに変わったクリック音がさらに高音に変わって、それだけでも処理が速くなっていると感じられたものです。
HD63C09Eはモトローラの契約に反した改造だったので、とんでもない騒動に発展したとのことですから、今は手に入れる事ができるのかどうか・・・
もし、まだS1を動かしているという方は、6309にしてみてはいかがでしょうか?

2012年2月12日日曜日

私のS1

私の所有するS1は、本体がモデル10で、シリアルナンバーが1999。RS232Cポートを付け、ミニフロッピーディスクインターフェースカード、512KB拡張RAMカード、第1水準漢字通信ROMカード、第2水準漢字ROMカードが挿さっています。その他、PSG&JOYSTICKカードもあるのですが、S1本体には4枚のカードしか挿せないので残念ながら外しています。さらにモデル10AVと同じスペックになるようにビデオスーパーインポーズカードMPC-VS01Sも搭載しています。
そしてMPUは日立の究極の究極8ビットMPUHD63C09Eに換装しています。
モニタディスプレイは長残光型のC14-2190A、フロッピーディスクドライブはMP-3560、データカセットTRQ-1500と、中間にインターフェースを改造した98マウスを接続しています。
プリンターは熱転写式漢字プリンターのMPP-1060を繋げています。熱転写なのでインクリボンテープカセットが必要なのですが、感熱ロール紙を使ってインクリボンテープを消費せずに印刷していました。
相当本体も周辺機器もくたびれていまして、FDDはドライブ0がディスクの出し入れがうまくできなくなってしまったため、バラしてドライブ1と入れ替えて、なんとか動かしています。しかも最近はL3モードに切り替えることがスムーズにできなくなってきています。
一般的にキーボードケーブルがボロボロになってしまうというS1ですが、自分のキーボードもケーブルがボロボロで本当にヤバイ状態です。

デモ画面

まずはデモをご覧ください。



これはS1 DISK BASICについているデモです。
私のS1はMPUをHD63C09Eに載せ換えていますので、本来のデモよりほんのちょっと速くなっていると思います(カウントダウンが速い)。
画面が滲んでいるのと、動画が飛んでいる部分があるのは、ビデオスーパーインポーズカード(MPC-VS01S)のコンポジット出力をMacに接続したビデオレコーダーインターフェースで録画しているのと、S1からの出力が停まってしまう事があるためです。そのためにctrl+PF1でコンポジット出力のリセットをしていますので右上に[COMPUTER]表示が出ます。

About

1984年・・・
アメリカではMacintoshが誕生。
日本でも究極のMPUを積んだ最強の8ビットマシンが誕生。
その名も”MB−S1
誕生から四半世紀を過ぎ、30歳を迎えつつあるS1。
このページは思い出多いS1について語ります。

MB−S1基本構成