2023年3月9日木曜日

FM-7にRTCとSDを接続する試み(RTC編)

 FM-7用のRTC&SDカード基板を製作してみました

【修正】OneDriveのリンク先が間違っていましたので、正しいリンク先に変更しました。

以前、6821PIAを用いてI2CでRTCを、SPIでSDカードを読み書きする試みを紹介しました。

「アセンブラでのPIAとRTCの間のI2C通信に成功しました(2018年10月27日)」
https://flexonsbd.blogspot.com/2018/10/piartci2c.html)
「SDカードを6809のアセンブラで読み書きしてみる(2022年6月12日)」
(https://flexonsbd.blogspot.com/2022/06/sd6809.html)

最終の目的は、FM-7にRTC(リアルタイムクロック)とSDカードを実装することなのですが、RTCはともかく、SDカードを実装するのはそれ程簡単ではありません。
しかし、あれこれ考えているだけでは進まないので、とりあえず基板を作成してみることにしました。

作成した基板です。

製作したRTC&SDカード基板


その回路図を示します。

回路図


基本的には以前紹介したものと同じで、68B21のAポートを使用してI2CでRTCを、Bポートを使用してSPIでSDカードを制御しています。なお、RTCは5V駆動ですので68B21と直結していますが、SDカードは3.3V駆動ですので、レベル変換モジュールを通しており、その3.3V電源はSDカードから供給しています。
使用しているRTC基板はDS3231チップを使用しているZS-042で、バッテリを充電しないようにパターンカットを施しています。またSDカード基板は画像のものの他に、以前秋月電子で販売されていた基板も使えるように両方のパターンを用意してあります。(下のマイコン用基板に装着されています。)

同時に、自作6809/6802ボードマイコン用の基板も製作しました。
この基板はFlex9の起動時に自動的に日付を読み込むために使用しています。


マイコン用基板


今回は、RTC部分についてのみ紹介します。


FM-7に装着した状態です。

動作風景


実行中の様子です。

実行画面


FM-7のF-BASIC V3.0用に制作したソフトは、RTCから読み出すRTC_RDと書き込むRTC_WRの2本です。
RTC_WRでは日付と時刻をF-BASICのワークエリアに直接書き込んでいますので、RTC_WRはV3.0専用です。
画像にありますように、書き込んだデータがPRINT文で表示できており、正しく設定されていることが確認できます。

参考までに、RTC_WRのリストを示します。

 

F-BASICの起動時にRTC_WRを実行して日付・時刻を設定することで、以降はF-BASICから日付・時刻を参照することができます。

以上でFM-7にRTCを搭載することができましたが、問題はSDカードです。
独自のフォーマットでSDカードにファイルを保存・読み出しをするのであれば、今回作成した基板でも可能かと思いますが、Windows PCと共通のフォーマット(FAT16/32)でと考えると、FM-7と6821の機械語だけでは無理があるようです。
ネット検索をしても、ほとんどがマイコン用に用意されているFATライブラリを使用しているようです。
しかし、困難かもしれませんが、マイコンを使用せずにやれるところまでやってみようと思います。
うまくファイルの読み書きができましたら紹介させていただきます。
(ネット検索をしても、FM系にSDカードを装着した記事が見当たらないようですが、私が見つけられないだけでしょうか? 見つかるのは80系ばかりのような。。。)

紹介しましたRTC用に制作した2本のソフト(RTC_WRとRTC_RD)のソースとバイナリをOneDriveに上げておきます。なお、これらのソースのアセンブリには以前紹介した自作のクロスアセンブラ6809AsmWin.exeを使用しています。

2023年2月28日火曜日

GOTEKの修理に挑戦

 故障したGOTEKを修理してみました

私にとってのGOTEKの第1号ですが、以前紹介しました(https://flexonsbd.blogspot.com/2020/08/fm-777gotek.htmlとhttps://flexonsbd.blogspot.com/2021/05/fm-777gotek.html)ようにPC用のフロッピィドライブケースに、フロッピィドライブとともに収めて使用していました。しかしある時に突然電源が故障して5Vのはずが8Vになってしまい、フロッピィドライブの方は無事だったのですが、GOTEKに刺してあったUSBメモリは破損し、GOTEK本体も動作がおかしくなってしまいました。

そのためしばらく使用を中止していたのですが、不思議なことに電源を交換して試してみたら正常に動作しているようにみえました。ということで、しばらく使用していたのですが、やはりダメージを受けていたようで、読み出しはできるのですが書き込みができません。

やはり故障品として処分するしかないかと思ったのですが、考えてみるとメインのマイコンのSTM32F105は5Vを降圧した3.3Vで動作しているはずなので、5Vが8Vになっても大した影響はないはずです。だとすると、ダメージを受けそうなのは残るゲートIC(74HC04D)だけです。試しに電源をつないで74HC04Dの端子電圧を測定してみると、ゲートのINが3.25VでOUTが4.04Vだったりして明らかに異常です。

ということで74HC04D(SOICタイプ)を入手して交換することにしました。

これが交換前の状態です。最近のものとは多分異なっています。SFRC922Dという刻印があり、使用されているマイコンはSTM32F105でした。


交換前

交換すべきICはこれです。SOICタイプの74HC04Dです。


該当のIC(74HC04D)


ブロワーで加熱して外す方法は以前失敗したことがあるのと、14ピンの小さなICですので、今回はICの足をニッパーで切り取って除去しました。


ICを除去

フラックスを塗ってはんだ付けしました。SOPタイプよりも小さいのですが、それほど大変な作業ではありませんでした。


交換後

FM-7に載せた自作のFDCカードにFDDとともに接続して動作テストをしました。

GOTEKで起動しておいて、まずFDを初期化してからVOLCOPYでGOTEK中のシステムをFDにコピーしました。次にFDからGOTEK中に用意したブランクファイルにVOLCOPYで書き戻してみました。その結果、どちらのVOLCOPYも正常に行えて、書き戻したファイルからも正常に起動しました。以上より、GOTEKは正常に動作していると思われます。


チェック中

私のようにGOTEKを故障させた方はまずおられないとは思いますが、電源不良によるTTL IC破損による故障の場合は100円程度のICを交換することで修理可能だという一例のつもりで紹介しました。


2023年2月18日土曜日

FM-7/77用F-BASIC,OS-9,CP/M,FLEX9のディスクイメージを操作する

 Windows上でFM-7/77用F-BASIC,OS-9,CP/M,FLEX9のディスクイメージを操作するソフトの紹介

FM用のエミュレータであるXM7を使用されている方も多いと思います。私も使わせていただいています。素晴らしいソフトを作成された開発者に敬意を表します。

XM7を使用していると、しばしばD77形式のディスクイメージ中のファイルを操作したいことがあります。つまり、ディスクイメージ中にWindowsからファイルを書き込んだり、逆にディスクイメージからWindowsへファイルを読み出したりしたいということです。

今までにそのためのソフトを制作してきました。当然のことですが、各OS(?)によってディスク中への保存形式が異なりますので、ソフトも各OSで異なるものとなりました。

制作したソフトについてはその都度紹介してきましたが、扱えるファイル形式を今までのD77(D88)、DSKに加えて、FT245高速通信カードで用いられているDAT形式に対応するように拡張しましたので、ここでまとめて紹介します。

今までに制作したソフトは以下の4本です。

(1)F-BASIC用 FbasDrvWin.exe

(2)OS-9用   Os9DrvWin.exe

(3)CP/M用   CpmDrvWin.exe

(4)FLEX9用  FlexDrvWin.exe (DAT形式には対応しない)

それぞれ対応するOSが異なりますが、操作性は全て同じにしてあります。

(ただし、FLEX9用のみはディスク形式が異なるためにFT245通信カードを使用する転送ソフトは使用できませんので、DAT形式に対応する必要がありません。)

それぞれの画面イメージは次のようです。


FbasDrvWin.exe



Os9DrvWin.exe


CpmDrvWin.exe


FlexDrvWin.exe



イメージファイル処理ソフトとしての使い方


(1)処理したいイメージファイルをドライブ名ボックス(Drive 0~4)にドラッグ&ドロップすると、下のボックスにそのイメージファイル中のファイルが一覧表示される。
どのボックスに入れても構わない。また、いくつでも重ねて入れることができる。
(2)読み出し
読み出したいファイルをマウスの左ボタンで選択しておいて、右ボタンを押すと現れるメニューから「読み出し」を選択する。
(3)書き込み
書き込みたいWindows上のファイルをこのボックス中にドラッグ&ドロップする。
(4)全ファイルの一括読み出し
メインメニュー「編集」中の「全ファイル読み出し」を選択する。
(5)他の機能
右ボタンメニューには他のコマンドとして「削除」、「ファイル名変更」がある。


仮想ドライブ構築ソフトとして使用する


イメージファイル処理ソフトとしての使い方は上記のようですが、実はこれらのソフトは本来、Windows上の仮想ドライブ構築ソフトとして制作したものです。
(上の画面イメージ中のFlexDrvWin.exeで右側のボックス中にFM機がアクセスしたトラック/セクタが表示されています。)
ということで、FM機に各OSに対応するドライバをインストールすることで、FM機本体のドライブ(通常0と1)に加えて、これらのxxxxDrvWin.exeのDrive2と3が拡張ドライブとして使用できるようになります。
OS-9用以外の3つの仮想ドライブ構築ソフトについては以前紹介し、ドライバも公開しています。

RS-232C用のドライバをFT245通信カード用に書き換える


今までに、Flex用、F-BASIC用、CP/M用のドライバを紹介してきましたが、それらはいずれもFM機とWindows機との間の通信手段としてRS-232Cを使用していました。
しかし、最近はRS-232C機能を使用することはほとんどなくなり、もっぱら「思い付きハードでソフトに七転八倒」さん(ブログは下記)が製作されたFT-245高速通信カード(本ブログでも何回か紹介しています)を使用していますので、現在、各ドライバをFT-245通信カード用に書き換えているところです。完成し次第公開する予定ですが、残念ながら、私は80系は全くと言ってよいほど経験がないので、CpmDrvWin.exe用のドライバが作成できません。F-BASIC用、OS-9用の2つのみを作成中です。

「思い付きハードでソフトに七転八倒」さんのブログ
(1)FM-7用データ転送基板を使った新ユーティリティの紹介https://vehwk3yxv7hw.blog.fc2.com/blog-entry-39.html
 (2)FDDイメージをバックアップするFM-7専用ソフトの説明https://vehwk3yxv7hw.blog.fc2.com/blog-entry-31.html

以上、各OS用のイメージファイル処理ソフト(実は仮想ドライブ構築ソフト)の紹介でした。
これらの4ソフトと、共に使用することが多いD77,DSK,DATファイル間で形式を変換するソフト CvtDskD77.exeをOneDriveに上げておきます。

【注意】これらのソフトの制作にあたっては、それぞれのOSのFMS(ファイルマネージメントシステム)に相当するものの実装が必要ですが、OSの中身を知っているわけではないので、XM7上で読み書き、追加、削除などの操作をして、操作前後でイメージファイルのどの個所がどのように変化したかを確認することによってOS内の動作を推定し、それをもとにして実装しました。
従って実装が不完全、不十分なための誤動作が予想されますので、使用される場合はその点にご注意ください。特に、操作を何回も繰り返すとイメージファイルがおかしくなる可能性がありますので、何回か操作を繰り返したらXM7で別ファイルにコピーし直したり、転送ソフトを用いてフロッピーディスクにコピーしておくと安心です。(使用した感覚ですが、FlexDrvWin.exe以外は比較的安定しているようです。)

2023年1月29日日曜日

FT245通信カード用のディスクイメージ転送専用ソフト

 FT245通信カード用のディスクイメージ転送専用ソフトの紹介

FT245を用いた通信カードは非常に高速ですので、もうRS232Cカードを使うことはなくなり、もっぱらこればかり使用しています。

このカードを使用するためのドライバソフトとしては、カードを考案された「思い付きハードでソフトに七転八倒」さんが作成された専用ソフト FDDIMG_RW77.exe があります。(https://vehwk3yxv7hw.blog.fc2.com/blog-entry-73.htmlで入手できます。)

これは特定のセクタの読み書きができたり、ディスクの検査ができるなどの機能を持ち、さらにRAMディスクのドライバも内蔵しているという多機能のものですが、私の用途ではFMとWindowsPCの間でFDのディスクイメージを丸ごと転送することがほとんどです。

ということで、FMとWindowsPC間での転送専用のソフトを作成しました。常用機がFM77AV40SXですので、2Dのみでなく2DDディスクにも対応させました。

使用しているFT245通信カードです。私は通常、このようにFT245通信カードと自作のFDCカードを32Pスロット拡張基板に装着して使用しています。


使用しているFT245通信カード

作成したソフトの構成図です。

なお、転送時のデータの処理方法が異なるため、FDDIMG_RW77.exeとは互換性がありませんので混用はできません。FM側FT245DRV(とFTDRV11o)、Windows側 ft245drv.exe のペアで使用することになります。



構成図

FM側の機械語サブルーチンをロードする間の起動画面です。


FM側の起動画面

FM側のメインメニュー画面です。

FM側のメインメニュー画面

メニューの1と2で転送方向を選択します。

3,4,5はオプション設定で、3でドライブ番号の選択(0~3の範囲)、4でディスクのタイプの選択(2Dか2DD)、5でFMからWindowsへの転送時にFT245RLのTXE(TX Enable)機能を使用するかしないかを選択します。使用する場合はFT245通信カード上のスライドスイッチを右(USBコネクタ側)に、使用しない場合は左(バッテリ側)にセットします。このスライドスイッチがないカードの場合にはTXE機能をOFFにします。


WindowsPC側のメニュー画面を示します。

Windows PC側のメニュー画面


起動後にまず、COMポート番号を選択します。使用可能な番号のみが表示されますのでその中から選択します。もし希望の番号が表示されていない場合は「COMポートスキャン」ボタンを押してから選択します。

次に読み書きするファイル名を選択します。直接入力もできますがディレクトリまで入力するのは面倒ですので、「ファイル選択」ボタンを押して希望のディレクトリを表示させれば既存のDATファイルが一覧表示されます。ファイルを選択した後でそのファイル名を直接修正することもできます。
最後にディスクの種別(2D,2DD)を選択します。もちろん、FM側の設定と同じでなければなりません。
以上で、FMからの読み込み、FMへの書き込みが実行できます。
オプション機能として、転送で使用されるDAT形式のファイル(各セクタの先頭に16バイトのヘッダがついた形式)を通常のDSK形式やD77(D88)形式に変換する機能もあります。


動作中の画面


画像のように、転送動作中にはプログレスバーと処理したトラック番号が表示されますので進行状態が分かります。
蛇足ですが、この表示部分が最も苦労したところで、この表示のためにスレッドとタイマー機能を用いることになりましたが、結果、転送中に他の操作をしても表示が止まることがなくなりました。
作成にあたっては下記の書籍に大変お世話になりました。感謝いたします。
 参考にした書籍 「かんたん Visual C++(堀義博著)技術評論社」

もしディスクに不良セクタがあると、正常に読み書きできるまで繰り返すため、最悪の場合にはそこでハングアップしてしまいます。この場合には、USBケーブルを抜いて止めることになります。(エラーが生じた場合には、不正なデータを転送するよりも中断した方が良いと考えて、このような仕様にしています。)

なお、転送時間は2Dで1分、2DDで2分ぐらいですが、不良セクタがあるディスクの場合にはこれ以上の時間がかかることがあります。

参考までに、FM側の機械語サブルーチンを示しておきます。

 


以上ですが、作成したソフトなどをOneDriveに上げておきます。
内容は、
・Windows側
  ft245drv.exe(64ビット版ですので32ビットOSでは動作しません)
・FM側
 メニューソフト FT245DRV(F-BASIC)
 サブルーチン FTDRV11o(機械語)ソースリストとバイナリ
・FMへの転送用DATファイル FT245DRIVER2.DAT(上記の2ソフトを収めてある)
・以上のソフトの使用説明書
・ユーティリティ
 イメージファイル処理ソフト FBasDrvWin.exe
 (以前紹介したものをDAT形式ファイルを扱えるように拡張したもの。
  FT245通信カードと関係なく、イメージファイルを処理するソフトとして使用可能。)
です。



2022年11月18日金曜日

FM-7,77,AV用増設サブシステムカードの製作

Oh!FM誌の1989年8月号から1989年12月号までに連載された「増設サブシステムカード」を製作しました

知人から上記の記事を紹介され、製作してみたいと思って部品(V9938やそれ用の64ピンソケット、64Kx4bitのD-RAM、そして21.47727MHzの水晶振動子など)を既に集めていると言われたのですが、記事を読むと使用しているビデオディスプレイプロセッサ V9938は64ピンのシュリンクソケットですし、D-RAMは3段重ねの実装ですので手配線では難度が高いと判断し、プリント基板を作成することを提案しました。

6個のD-RAMを並べ、V9938の64ピンシュリンクソケットを配置しても100x80mmのサイズに収まりましたので、これで行けると判断してプリント基板を発注しました。

しかし、いつものようにドジをしてしまい、9ピンD-Subの取り付けを裏面にすべきだったのを表面に配置してしまいました。幸い左右対称ですので、無理矢理裏面に実装することにしましたが...

出来上がったのがこの基板です。


V9938基板


それ程無理をせずに配置できています。記事ではシールド線を使用しているV9938から9ピンD-Subへの配線を基板左端に集めてあり、もしこの配線ではノイズが乗ってダメな場合にはこの配線をカットしてシールド線で追加配線できるように考慮してあります。

実装した状態が下画像です。

実装済み基板


まず、知人が製作して動作テストを始めてくれましたが、全く動作しないとのことでした。プリント基板のパターンを追いかけたところ、当初、記事中の回路図にミスがあり、そのままでgerberファイルを作成したのですが、発注前にそのミスに気づいたので回路図を訂正し、gerberファイルも書き直したつもりだったのですが、うっかりと訂正前のgerberファイルで発注してしまっていました。

2箇所のパターンカットと3本の追加配線を行ってもらうことで無事に動作するようになりました。なお、このミスや裏返しになった9ピンD-Subなどを修正した基板を発注中です。

当初は製作と動作テストは知人に任せるという他力本願のつもりでしたが、記事を読み込んでいるうちに自分も製作してみたくなり、部品を集め始めました。V9938はメルカリで、64ピンシュリンクソケットと水晶振動子はaitendoで購入することができました。

製作した基板が上に示した実装済み基板です。

なお、本体基板の他に出力表示用の回路が必要で、記事ではビデオ出力回路とアナログRGB回路が紹介されています。

最初は簡単なビデオ出力回路を製作したのですが、結果はあまりきれいな表示ではありませんでしたので、続いてアナログRGB回路を製作しました。これは流石にきれいなグラフィック画面を表示してくれました。以下に示すサンプル画面はこれによる表示です。


ビデオ出力回路


アナログRGB出力回路

この増設サブシステムカードをFM-7に装着し、12月号に掲載されている拡張BASICを入力してサンプルプログラムを走らせてみました。心配していた、シールド線不使用によるノイズの混入も見られないようです。


「COL」結果


「HMMV」結果


「PAINT」結果

増設サブシステムカードの出力は専用の出力となりますので、ディスプレイが2台必要だったりしますが、工夫して何とか1台の切り替えで表示できるようにしました。

下画像の最上段がディスプレイ切り替えスイッチで1:FM77AV40SX、2:FM77AV2、3:FM-7(通常出力)、4:FM-7(増設システムカード)を切り替えます。中段のボックスの中には以前「アップスキャンコンバータの製作(2021年6月15日)」(https://flexonsbd.blogspot.com/2021/06/blog-post.html)で紹介したアップスキャンコンバータを収めていて、FM-7の出力をこれに入れて、その31KHz出力を最上段の3:に入力しています。最下段はXRGB-2plusでこの21ピンマルチ入力に今回の増設サブシステムカードの出力を入れて、その31KHz出力を最上段の4:に入れています。

中断の切替器のA,B切り替えはディスプレイのCentury LCD-10000VとEIZO L365の切替用のつもりです。


ディスプレイ切り替え回路


私の興味の範囲は言語とプログラミングで、グラフィックは難しそうで近寄らないことにしていたのですが、今回このような回路を製作してサンプルプログラムを走らせてみると、グラフィックも結構面白そうだなと感じるようになりました。

以上、大昔のOh!FM誌に掲載されていた増設サブシステムカードを知人と協力して製作してみたという紹介でした。


2022年10月29日土曜日

FM77AV40SX用GOTEKのドライブ番号切り替えケーブルの製作

 FM77AV40SXのGOTEKのドライブ番号を0または2に切り替えられるようにしました

今までは、ドライブ0がGOTEK、1がFDDという形で使用してきました。ほとんどの場合はこれで問題はないのですが、時にはFDから起動したい場合もあります。しかし、ドライブ0がGOTEKだと、ドライブ1にFDを入れてもFDからは起動してくれないのです。

しかたなくドライブ0をFDに戻してみたのですが、GOTEKが使えないと結構不便です。ということで、GOTEKを再度追加することにしたのですが、以前、FM-7用のGOTEKを設置した際にはGOTEKとFDDのドライブ番号を互いに入れ替えることができるようにしたので(ドライブナンバー切替用ケーブルの製作(2021.02.02))、SXについてもドライブ番号を切り替えられるようにケーブルを作成することにしました。

最も簡単な形は、ドライブ1はそのままで、ドライブ0のFDDとGOTEKの番号を0と2に切り替える形式でしたので、そのような機能を持つケーブルを製作しました。

下の画像が製作したケーブルと追加したGOTEKです。GOTEKは98用のFDD用のケースを流用しており、パネルについていた2HD/2DD切り替え用のスイッチをそのままFDDとGOTEKの切り替えスイッチとして使用しています。


製作したケーブルとGOTEK


製作したケーブルの接続図を示します。FM-7用の場合とほとんど同じです。


ケーブル結線図



装着した状態を示します。SXからのケーブルのドライブ0用のコネクタに作成したケーブルを接続し、中間のコネクタをFDDに装着して、端のオスコネクタにGOTEKからのケーブルを接続しています。
ちなみに右上の基板はFT245使用の高速通信カードで、左の基板は最近製作した512KBのRAMカードです。



装着の様子


動作中の様子です。押しボタンが戻っている状態でFDDが、押し込んだ状態でGOTEKがドライブ0になります。0でない方のドライブは2になって、合計3台構成となります。



動作中


以上で、通常はGOTEKから起動して運用し、必要な場合は切り替えてFDから起動することができるようになりました。また、FD同士のコピーも楽になりました。



2022年10月21日金曜日

FM77AV40用512KB増設RAMカードの製作

FM77AV20/40用の512KB増設RAMカードを製作しました

【2022年10月23日 訂正】FM77AV20/EXには40Pコネクタしかないというご指摘を受けましたので、対応機種をAV40/EX/SX用に訂正させていただきます。タイトルも変更しました。ご指摘ありがとうございました。

入手困難であった富士通の48ピンコネクタが入手できましたので、以前から作ってみたかったFM7720/40用の512KB増設RAMカードを製作してみました。

製作したSRAMカードを示します。


製作した512KB SRAMカード


回路図を示します。


回路図

実は、あまり良くない個所が一個所あります。SRAMのWE端子にRW信号を接続していますが、74HC00のWE出力信号を接続するつもりでしたが、うっかり間違えました。でも、OE信号にE信号を入れているので、動作に不具合はないのではと思ってそのままにしてあります。

512KBのSRAMの他にはTTL-ICがわずか2個で済みましたので、90x60mmというコンパクトなものになりました。


純正RAMカードと比べてみた


詳細な動作チェックはこれからですが、とりあえずOS-9 Level2のmfreeコマンドで確認してみました。

確かに512KB容量が確保されています。


製作したRAMカードの場合


純正のRAMカードの場合は容量が256KBです。


純正RAMカードの場合


まだ詳細なメモリテストを済ませていませんが、一応、動作しているように見えますので、
512KBのSRAMと48ピンのコネクタが入手できれば、割と簡単にメモリの増設ができるという紹介でした。

2022年10月20日木曜日

FM-7にPTMを増設してASSIST09のトレースコマンドを実現

 FM-7にPTM(68B40)を増設してASSIST09のトレースコマンドを実現しました

【2022年12月7日】回路図を再修正しました

FM-7でASSIST09を使う方法については、2022年9月15日に「自作クロスアセンブラの修正とASSIST09のFM-7への移植」で紹介しましたが、FM-7にはPTM(Programmable Timer Module)がないので、そのままではトレースコマンドが使えませんでした。

機械語プログラムのデバッグには必須の強力なコマンドですので、何とか使えるようにしたいという事で、FM-7にPTM(68B40)を増設することにしました。

ASSIST09ではPTMの出力によってNMIを発行していますが、残念ながら32PスロットにはNMI端子が出ていません。背面の50PのI/O拡張ポートには出ていますが、普段は拡張基板を接続していますので、使いたくありません。という事で、40PのZ80用スロットに目を付けました。このスロットはZ80カード、63C09カード、Arduino2560カードで使用していますが、機械語のデバッグ時にはこれらのカードを外せば良いと考えたわけです。

早速、KiCadで回路図を作成して基板を発注しました。出来上がった基板がこれです。


PTM-PIAカード

上右の28ピンICがPTM(63B40)で、その左の40ピンICがPIA(68B21)です。以前、拡張用にPIAカードを作ったのですが、それにPTMを追加するような形で製作しました。

回路図を示します。

(下に動作しなかった原因を述べてありますが、この回路図はその修正等を加えてあります。【2022年12月7日再修正しました】)


PTM-PIAカード(再修正済)


ASSIST09の方の変更は、「自作クロスアセンブラの修正とASSIST09のFM-7への移植」中の拡張ROMのプログラム中のPTMのアドレスをこの基板に合わせて$FDF0に書き換えるだけです。

早速、実行してみましたが動作しません。(いつものことですが。。。)

最初に使用していた68B40が不調だったりしましたが、交換しても変わりがありません。回路にも間違いはないようですし、プリント基板のパターンも全て確認しましたが、回路図と違いはありませんでした。


動作しない原因が判明

色々調べた挙句、ようやく原因が分かりました。何と、Z80用スロットのNMI、IRQやFIRQ端子はメインCPUへの入力端子ではなく、逆向きのZ80カードへの出力端子だったのです。(他にEやQも通常とは逆向きのようです。)事前調査不足でした。。。

結局、FM-7にPTMを増設するには、背面の50P拡張ポートを使用するしかないという事になりましたので、基板の作り直しが必要になってしまったわけですが、とりあえず、製作した基板を使用するために、下画像のような変換アダプタを製作しました。


変換アダプタ

40Pメスコネクタは、以前FM-7をばらした際に基板から外して保存してあったものです。これを接続して、画像のような形で使用します。


使用形態


これで、無事に動作しました。

トレースコマンド実行画面


いつものようにミスをしながらも、何とか動作させることができましたので、FM-7での機械語プログラムのデバッグが楽になると期待しています。

そもそもスロットの端子名だけで使えると誤解した私の知識不足が原因であるわけですが、少しでもどなたかの参考になればと思い、あえて紹介することにしました。


2022年9月27日火曜日

FM-7用の32Pスロット拡張基板の製作(第5作)

 32Pスロット拡張基板の第5作目です(ついに最終版?)


2022年3月1日の「FM-7用の32Pスロット拡張基板の製作(第4作!)」で紹介した拡張基板ですが、これで終わりにしようと考えていました。

しかし、使用していると、本体の50P拡張コネクタからのケーブルをあまり長くできないので不便を感じることがありました。ということで、拡張ベース基板上にスペースが十分ありますので、データ線と制御線にバッファを追加することで50Pケーブルを長くしても動作するようにしたいと考えました。さらに、FM-7本体の32Pスロットには+12V,-12V電源も来ているので、私的には特に必要はなかったのですが、ついでに12V電源も追加して本体の32Pスロットとの完全互換を実現することにしました。

製作した基板を示します。


拡張コネクタベース基板



32Pコネクタ拡張基板


製作したベース基板の回路図です。

ExConnBase51


正負12V電源用のDC-DCコンバータとしてMAU109(秋月電子で購入)を使用することにしました。これについては、カベキンブログの「富士通 FM-7用32Pスロット拡張基板に±12Vの電源を追加」(2022年4月6日)を参考にさせていただきました。カベキンさまに感謝いたします。


相変わらずミスがあって、、、

実は製作したプリント基板にはミスがあり、なかなか動作しませんでした。上記の回路図はそのミスを修正したものです。
単純なミスのU2(74LS541)のEXTDETとIRQの入出力の向きが逆であることはすぐに分かったのですが、最後の一つはなかなか分かりませんでした。
FM-7に接続すると、殆どの場合起動しないのですが、ごくまれに正常に起動するのです。しかも、起動した場合でもU5(74LS245)だけが異常に熱くなるのです。
プリント基板上の配線を何度見直しても異常はありません、試作品という事でICソケットを使用していましたので、74LS245を交換してみましたが変わりません。ついには追加した12V電源の存在を疑って、MAU108を取り外したりしてみましたが変化はありません。

あれこれと2日間も悩んだ挙句ようやく原因に気づきました。
何と、U5(74LS245)のCE端子をGNDに落としていました。これによってU5が常にアクティブになっていて、FM-7本体のデータバスと衝突したために発熱していたという事なのでした。(相変わらずいつもどこかでドジをしています。。。)

修正してようやく動作した

U5のCE端子をIOS0に接続することによって、ようやく正常に動作するようになりました。期待した通り、50Pフラットケーブルを長くしても正常に動作しましたので、配置などの取り回しが楽になりました。

32Pコネクタ拡張基板の方は、コネクタの数を第4作の3個から4個に増やしてみました。これは、バッファを追加したことでドライブ能力が大きくなった(?)と期待してのことです。さらにコネクタを増設できるような端子が2箇所ありますが、これは富士通のFCNコネクタ(現在は入手が極めて困難です)を使用せずに、通常のコネクタとピンヘッダでも使用できるようにと考えてのことです。

最終と考えているこの基板ですが、最終基板に修正用のジャンパ線が走っているのは嬉しくないので、修正した回路でもう一度基板を発注しました。(今度こそ最終版にしたい...)

2022年9月26日月曜日

PC用の2DDドライブをFM-7等で使うためのアダプタの基板化

PC用の2DDドライブをFM-7等で使うためのアダプタを基板化してみました 

2019年10月26日の「FM-7でPC用のフロッピードライブを使う」で紹介しました、PC用の2DDドライブをFM-7等で使うための、FDDに直接装着するタイプのアダプタをプリント基板化しました。

簡単なものですのであえて基板化する必要もないのですが、他の基板を発注する際に、ついでにということで製作してみたものです。

製作したアダプタは下画像のようです。


アダプタのFDD側


アダプタのFDC側


回路は簡単すぎて、回路図を示すほどのものではありませんが、FDCからのドライブセレクト信号(0あるいは1)をピン12に入れる切り替えスイッチと、ダイオード1個によるReady信号生成回路からなっています。このダイオード1個によるReady信号生成回路は前回同様に、てきとーに。さんの「FM77AV20/40以降のFDD修理というか交換」中のダイオード1個による簡便な変換回路を使わせていただいています。感謝いたします。


FDD ADAPTER


FDDに直接装着して使用します。

FDDに装着した様子


そしてFDCからのケーブルと電源ケーブルを接続します。画像では、FM-7上の自作FDCカードと接続しています。この時、FDC右端のStep信号2倍化回路のスイッチをDouble側にセットしておきます。使用したFDDはTEACのFD-235HGです。
【注意】対応しているFDDには制限があります。構造上、34Pコネクタの上部に電源コネクタがあるMITSUMIのドライブにはそもそも装着できないので使用できません。これは、以前私がチェックした限りでは、このダイオード1個によるReady信号生成回路ではMITSUMIのD353やD359の中には動作しないものがあったために、対象外と考えたためです。確実に動作するのはTEACのFD-235HGやHFで、他にSONYのMPF920も動作確認をしています。これらについては、2019年12月31日の「FM-7でPC用のフロッピードライブを使う(その後の訂正・補足)」をご覧ください。

なお、FM-7ではStep信号2倍化回路が必要ですが、FM77AV20/40/40SX等のFDDが2DD仕様のものでは接続するだけでそのまま使用できます。私は手配線のものをFM77AV40SXで2019年以来使用していますが、特に不都合は生じていません。





ドライブ番号として0と1が選択できますので、2台までのFDDが制御できます。


FDDを2台制御できます

以上、手配線で使用していたものをプリント基板化してみたというだけの報告でした。

なお、画像のような基板が数多くできてしまいましたので、もしご希望の方がおられましたらお申し出くだされば、郵送料(84円)のみでお送りできます。


製作した基板

実際に製作するためには、34Pのピンヘッダ(オス)、34Pのピンソケット(メス)、通常の信号用ダイオード、3Pスライドスイッチが必要です。
また、本文中に書きましたように、対応していないドライブがあることをご承知おきください。