tunozemichanの日記 / tunozemichan's diary

SORD社のコンピューターM68やM68MXの解析についての備忘録です。This blog is a memorandum about the analysis of SORD's computers M68 and M68MX.

Analysis of SORD M68 Keyboard (Part 5)

With an approximate understanding of the circuit configuration and the exchange of signals, I directly observed the waveform using a logic analyzer.

The topmost signal is transmitted from the keyboard to the M68, and the one below it is the signal sent from the M68 to the keyboard. Below that is the CLK signal (1MHz) input into the 74166 and 74164.

The signals are observed intermittently. I will zoom in on one of the clusters.

The signal that appeared as one cluster consists of signals from two frequencies. I will zoom in on the waveform at the very beginning.

The input signal, from rising to falling edge, lasts for 4 microseconds (uSec), while the output signal is delayed by 2 uSec and has a waveform lasting from falling to rising edge for 2 uSec.

When no key on the keyboard is pressed at all, this waveform continues indefinitely.

Presumably, the 4 uSec duration of this input signal serves as a scan command for a certain column on the keyboard, and with a 2 uSec delay, the keyboard sends back the pressed information for that column.

Let's look at the signal when the "P" key is pressed.

As expected, changes are observed in the output waveform. The appearance in two places is thought to be because the M68 is scanning twice consecutively, a total of 2 times. This is inferred from the fact that the code for waiting for key input in the BOOT ROM also scans twice.

I will zoom in on this changed waveform.

The waveform above is the measured value. Below it, the data has been fitted into bits. Although it is supposed to be 8 bits, it turns out to be 10 bits, and with a CLK of 1MHz, I wonder if 200 nanoseconds (nSec) is below the resolution. But, setting that aside, it translates to 08h, which in the keyboard of the M23, if the scan line matches, indeed corresponds to the "P" key.

Even if the interpretation were incorrect, now that the waveform is understood, creating a circuit that can interpret a PS/2 keyboard and emulate this waveform would effectively turn it into an M68 keyboard.

 

SORD M68 Keyboardの解析(その5)

おおよその回路構成と信号のやりとりの想像がついたところで、ロジックアナライザで波形を直接観察しました。

信号の全景

最上段が、キーボードからM68に送信される信号で、その下が、M68からキーボードに送られてくる信号です。下は、74166と74164に入力されているCLK信号(1MHz)です。

信号がとびとびに観測されています。一つの塊を拡大してみます。

 

 

1つの塊に見えた信号は、二つの周波数から構成される信号でした。一番先頭の波形を拡大します。

 

 

入力信号は、立ち上がりから立下りまで4uSec、出力信号は、2uSec遅れて、立下りから立ち上がりまで2uSecの波形でした。

キーボードのキーを全く押さない時は、この波形がずっと続きます。

おそらく、この入力信号の4uSecがキーボードにおけるある列のスキャン命令で、2uSec遅れて、キーボードがその列の押下情報を送っていると思われます。

実際に"P"のキーを押した信号を見てみます。

”P"キーを押下した時の波形

推測通り、出力波形に変化が見られます。2か所に出現するのは、M68が連続で計2回スキャンしているからだと思われます。これはBOOT ROMのキー入力待ちのコードでも2回スキャンしているので、そこからの推測です。

この変化した波形を拡大します。

波形の詳細

上の波形が実測値。下がビットに当てはめたものです。8ビットのはずですが、10ビットになる上に、CLKが1MHzで200nSecは分解能以下なのでは?と思いますが、まあ、その辺は置いておくと、08hとなり、これはM23のキーボードでは、スキャンラインがあっているとすれば、まさに"P"のキーに当たります。

それが間違っていたとしても、もう波形がわかったので、PS/2キーボードを解釈し、この波形をエミュレートする回路を作れば、M68キーボードとなるでしょう。

 

 

Analysis of SORD M68 Keyboard (Part 4)

I have transcribed the wiring diagram of the SORD M68 keyboard into a more abstract circuit diagram.

 

74166 sends the keyboard press information as a serial 8-bit data. Assuming it sends the same data as the SORD M23, I believe it would be either 04h (0000 0100), 08h (0000 1000), 10h (0001 0000), 20h (0010 0000), or 40h (0100 0000). In any case, an 8-bit sequence with one bit set should be transmitted.

 

 

SORD M68 Keyboardの解析(その4)

SORD M68のキーボードの結線図から、抽象度を上げた回路図に書き起こしました。

 

74166がキーボードの押下情報をシリアル8ビットで送るわけですが、SORD M23と同じデータが流れるとすれば、それは、04h(0000 0100)、08h(0000 1000)、10h(0001 0000)、20h(0010 0000)、40h(0100 0000)かなと思います。いずれにせよ、どこか1つのビットが立った8ビット列が送出されるはずです。

 

Analysis of SORD M68 keyboard (part3)

I have started analyzing the circuitry of a SORD M68 keyboard that has been left untouched for many years. Although I haven't fully uncovered the entire circuit yet, I've been able to understand the basics of its operation. It seems that the M68 keyboard uses a key scanning method typical of 1980s PCs, converting the key matrix press information (parallel) into an 8-bit serial format and sending it to the M68. I will further investigate the specific signal details using a logic analyzer. Since it doesn't use a special transfer method, I believe it's possible to create an adapter to convert it to PS/2 or USB.

SORD M68 Keyboardの解析(その3)

何年間も放置していたSORD M68のキーボードの回路についての解析を始めました。まだ、回路全体を明らかにできていませんが動作の概要は知ることができました。M68のキーボードは1980年代のPCに典型的なキースキャン方式で、キーマトリクスの押下情報(パラレル)を8bitのシリアルに変換して、M68に送っていると思われます。具体的な信号の内容はこれからロジックアナライザで調べます。特殊な転送方式ではありませんので、PS/2やUSBへの変換アダプターを作成することもできると思います。

回路図(途中まで)

 

MSXをネットワークにつなぐ(ObsoNET-reloadedイーサーネットカードの作成)

Z80とイーサーネット

Z80マシンであるSORD M23をLANにつないでみたいという願望があり、調べてみるとおなじくZ80 マシンであるMSXにはObsoNETというイーサーネットカードがあることを知りました。手元にMSXがあるので、さっそく作ることにしました。今回作成したのはObsoNET-reloadedです。

準備

obsonet reloadedをcloneします。


github.com

 

hardwareフォルダの下のgerberの中にあるobsonet_1-reloaded.zipをJLCPCBに発注しました。

パーツを集める

BOMファイルを見て、パーツを集めます。主要パーツは以下で入手しました。

 

RTL8019AS
秋月電子で入手しました。
「LANコントローラ RTL8019AS パルストランス付」
https://akizukidenshi.com/catalog/g/gI-14252/

 

74HC133
ヤフオクで入手しました。Aliexpressにもあります。
https://ja.aliexpress.com/item/1005005744549216.html?spm=a2g0o.order_list.order_list_main.31.6553585adQQdAa&gatewayAdapt=glo2jpn

 

GAL16V8D
手持ち品です。Ebay、Aliexpressにもあります。

 

M29F400M
Aliexpressで入手しました。安いですが足が曲がっていたり、ちゃんと動くかわからない点が不安要素です。
https://ja.aliexpress.com/item/4000117028836.html?spm=a2g0o.order_list.order_list_main.5.6553585adQQdAa&gatewayAdapt=glo2jpn
これを書き込めるROMライターがあれば、一度書き込めるかチェックしてからはんだ付けしたほうが良いと思います。


93C46
秋月電子で入手しました。MACアドレスを書き込んだものが売っていますが、フォーマットが違うので空の物を買うほうが安いです。
「3線式シリアルEEPROM AT93C46D-PU」
https://akizukidenshi.com/catalog/g/gI-02023/

 

パルストランス
Aliexpressで入手しました。秋月でRTL8019ASを買うと付いてくるので、それでも良いと思います。私は最初の製作だったのでなるべくBOMの記載通りにしたくて買いました。
https://ja.aliexpress.com/item/1005001701460892.html?spm=a2g0o.order_list.order_list_main.25.6553585adQQdAa&gatewayAdapt=glo2jpn


表面実装用スイッチ
秋月で入手しました。
【P-15969】 表面実装用タクトスイッチ TS-06104

 

LED
秋月で入手しました。
【I-06413】 3mm緑色LED 525nm OSG58A3131A(10個入)
【I-06412】 3mmオレンジ色LED 605nm OS5OAA3131A(10個入)

 

水晶発振器
秋月で入手しました。BOMと同じものは入手できませんでしたが、特に問題なく動作しています。
【P-08673】 クリスタル(水晶発振子) 20MHz

 

RJ-45コネクタ
マルツオンラインで入手しました。秋月で売っているRJ-45コネクタはピン間隔が異なり使用できません。
CONN MOD JACK 8P8C R/A SHIELDED【5555153-1】
https://www.marutsu.co.jp/pc/i/10830808/

 

抵抗、コンデンサなど
Aliexpressで入手できます。サイズはBOMに書いてあります。


作成の注意点
ほとんどありません。部品点数も少ないのですぐ組み立てられます。RTL8091ASはD型のこて先でやると滅茶滅茶簡単にはんだ付けできます。

一番の懸念はAliexpressで入手した29F400Mが不良品である可能性がある点です。はんだ付けしたあとで、剝がすのはめちゃめちゃ大変です。一度、ROMライターで書き込めることを確認してからはんだ付けしたほうが確実です。

93C46へのMACアドレスの書き込みは、このサイトに詳しいです。

theretrohacker.com


MAC Address Generatorがあるので、MACアドレスを持ってなくても問題ありません。

74HC133の取り付けはICソケットを使うと、MSXのカセット挿入口に干渉する可能性があります。ROMライタのICチェックで正常であることを確認して、
直付けが良いようです。

 

ObsoNET-reloadedイーサーネットカード表面

 

ObsoNET-reloadedイーサーネットカード裏面

 

 

完成後の作業(今回はMSX-DOS1を使いました)

RAM128kByte以上のMSXが必要です。

MSX-DOS1のディスクに、obsonet-reloadedのsoftwareフォルダの下にあるbiosフォルダ内のObsoNET Flash ROM Loader 1.0.zipを解凍して中のonetfrl.comをコピーします。さらに、bios_1.3フォルダのbios.rom、bios.datをコピーします。

 

MSXの電源を入れて、MSX-DOS1を起動します。

 

> onetfrl bios.rom

 

として、ObsoNETカードのフラッシュROMにBIOSを書き込みます。

 

フラッシュROMへの書き込み

 

うまくいかなかった場合、カードのはんだ付けの失敗が疑われます。しかし、フラッシュROMが不良品である可能性もあります。書き込みに成功したら、一度リセットします。

起動画面にObsoNETのバナーが出れば、動く状態にあると思われます。

MSX-DOS1起動後に、以下のコマンドを入力すれば、DHCPサーバーからIPを借りてきてネットを使用できる状態になっています。

> msr i
> inl2 i

msr.comのコマンドはMSX-DOS1のときのみ使用するようです。

msr.com、inl2.comの実行

ちなみに、自分のIPなどは

> inl2 s

というコマンドで得られます。

 

google.comにPingを打った様子です。

pingをwww.google.comに打った様子