ラベル Z80 の投稿を表示しています。 すべての投稿を表示
ラベル Z80 の投稿を表示しています。 すべての投稿を表示

2019年5月31日金曜日

AKI-80 CPM box の 製作 (3)

 5月に入って、長期連休だとか、やれ令和だとか言っているうちにもう月末です。それこそ「ボーット生きてんじゃ、、、、、」なんて誰かさんに怒られそうです。

 気がついたら今月はまだ何もブログにアップしていません、、、、ということで前回からの続きでソフトについて少し触れておきたいと思います。

 わたしのシステムは基本的にリセットで立ち上がった後はモニタモードから始まるようになっています。
 左の上半分がモニタのヘルプコマンド でヘルプ・メニューを表示した様子です。

 下半分は、Z コマンドでバンク1(オールRAM)メモリ上にグラントさんのモニタをロードし、そこから ROM BASICMicrosoft BASIC 4.7)を立ち上げた様子を示します。

 このモニタは手作りで、コマンドをひとつずつ増やしていったものですが、使い勝手は別にして、モニタつくりはマイコンやプログラムを理解するには格好の題材になります。

これらコマンドのうち、は必須と言ってよく、たとえばCP/Mの構築にも大きな力を発揮します。

 今回構築したものは著名な Grant Searle さんのホームページにある「 CP/M on breadboard 」からの移植です。

 氏の記事は少し古いとはいうものの、Z80を使ったCP/Mシステムでは現在でも必ずと言っていいほど参照されています。

 また日本でも、氏のシステムを移植するための記事がインターネットにも見受けられ、私も大いに参考にさせていただきました、感謝です。
1.Tomi9さんのブログレトロな雰囲気」にあるAKI80PlusCF技術資料
2.Kuninetさんの github Z80_CF


 CP/Mの構築は、過日の私のブログ、Z80 SBCへの CPM 搭載(3を参照いただければと思います。

 右の図は今回構築するCP/Mのメモリ・マップですが、CCP( D000H- )、BDOS( D806H- )、BIOS(E600H-FFFFH )を CF(コンパクト・フラッシュ・メモリ) 上の Disk A: 0 sector に書き込んでおき、CP/Mをスタートする際には、モニター上のCPM_LOADプログラムでCF 上の Disk A: 0 sector に書き込んである前述のCCP+BDOS+BIOSを 0000H - FFFFH のRAM上の D000H - FFFFH に読み出し、BIOSからCP/Mをスタートさせることになります。

 したがってCP/M構築のために必要なファイルは、、、
   CPM22.ASM (CCP+BDOS)
   CBIOS128.ASM
   FORM128.ASM
   PUTSYS.ASM
で、これらは Grant Searle さんのホームページにある「 CP/M on breadboard 」から得られます。
 また、CPM_LOAD.ASM はDIYです。
 そしてこれらのファイルをアセンブルするためには TASM が必要となりますが、これも Grant さんのホームページで得られます。

CPM22.ASM (CCP+BDOS) は修正無しで使えます、同梱されている CPM22.HEX をそのまま使ってもいいです。

 今回の AKI-80 CPM box に使用している AKI-80 ボードは、甚だ便利なのですが、搭載されている周辺チップのI/Oアドレスがすでに決まっており、変更することが出来ませんので、ソフト側でそのアドレスを変えてやる必要があります。

 CBIOS128.ASM
 このファイルでは、まず左図の上方にあるシリアルポート・アドレスを変更します。次いでCTCの行を追加し、その下の重複しているCFレジスターのアドレスも変更します。















 さらに右図(クリックで拡大)のように、
   LD A,$01
   OUT ($38),A

; Interrupt vector in page FF
   LD A,$FF
の間にある部分を右図に示してあるように追加変更します。

FORM128.ASM
 このプログラムはCFカードをフォーマットするためのものですが、CFレジスターのアドレスのみの変更でOKです。

PUTSYS.ASM
 これも同様にCFレジスターのアドレスを変更します。
 また前述のようにオリジナルではCCP+BDOS+BIOSを D000H から、、、に置き、CFカード上の Disk A: 0 sector に書き込むようになっていますが、私のモニタは FE00H あたりを作業領域に使っていますので、不都合ですので、CCP+BDOS+BIOSを 6000H から、、、に置くことにしましたので、ファイル冒頭の
loadAddr .EQU 0D000H を loadAddr .EQU 06000H に変更します。

CPM_LOAD.ASM
 本来は Grant さんのモニタプログラムをそのまま移植すればいいのですが、私にはまだ理解できない部分があるのと、冒頭写真のように多機能で使い慣れているマイ・モニタも捨てがたく、 Grant さんのモニタプログラムから
; CP/M load command の部分を取り出して私のモニタに組み込みました。
 
 特に留意したところは、以下の太字部分の変更です。
; Start CP/M using entry at top of BIOS
; The current active console stream ID is pushed onto the stack
; to allow the CBIOS to pick it up
; 0 = SIO A, 1 = SIO B
ld A,(00H) ; primaryIO  0=SIO A
PUSH AF
ld HL,($FFFE)
jp (HL)
 以上のファイルを MSDOS 上で TASM でアセンブリし、
CPM22.HEX
CBIOS128.HEX
FORM128.HEX
PUTSYS.HEX
CPM_lOAD.HEX            の intel hex File を得ます。

 次に CPM22.HEX を 6000H スタートに、 CBIOS128.HEX を 7600H スタートに変更します。

 あとはモニタコマンドの L ( intelHEXfile  LOAD )をつかって Grant Searle さんのホームページにある「 CP/M on breadboard 」にしたがってインストールして出来上がりです。

 しかしながら、いきなり右上写真のようになったわけではありません。

 パソコンと AKI-80 CPM box の間でファイルをやり取りするのが難問で、「鶏と卵」のようなものでした。PCGET、PCPUT は 8251 のシステムではうまくいったのですが、今回はNGでした。

 いろいろ試した中で、XMODEM.COM なるプログラムの中から(ネット上に多くのものがあります、、、)何とか動くものを選別して使っています。

 パソコン上の MSDOS 上で XMODEM.COM → XMODEM.BIN  XMODEM.HEX ( 0100H start ) に変換し、モニタコマンドの L ( intelHEXfile  LOAD )をつかって AKI-80 CPM box に読み込みます。

 ついで、X コマンドでCP/Mを立ち上げ、ただちに A>SAVE 17 XMODEM.COM を実施し、Aドライブに XMODEM.COM ができました。

 これで高速に、パソコンと AKI-80 CPM box の間でファイルの交換ができるようになりました。プログラムの開発は、主にWINDOW上でおこないますのでこの環境はありがたいです。    

 かなり走って説明しましたが、何せ私自身まだ十分理解できていない点が多いので、間違いなどはご容赦ください。

 最後になりましたが、Tomi9さん、Kuninetさん ありがとうございました、さらには偉大な Grant Searle さんに感謝いたします。

2019年4月28日日曜日

AKI-80 CPM box の 製作 (2)

 
先回(AKI-80 CPM box 製作 (1))にひきつづき、、、、

 当初、先回ご紹介したコントロールロジックをGALにまとめてしまおうと考え、GAL16V8をELMさんの書き込みプログラム、FGAL.EXEを使ってトライしてみましたが、RS-FFがうまくいかず失敗しました。

 そこで、フリーの書き込みプログラムWinCUPLとGAL22V10Dの組み合わせでなんとかうまくいきました。

 参考のため、PLDファイルを挙げておきますがなにせ素人の事ゆえおかしな点はご容赦、、、、



 下図、配線図にあるGAL22V10Dのピンの符号は配線用のためPLDファイルとは微妙に表現は違いますが、位置は対応しています。













 

















 改めて配線図(配線絵?)を並べてみました。

 左上は、メモリとGAL関連ですが、ROMはAKI-80ボード上にあり、ROM CE(20ピン)はすでにCN1 14ピンに配線してありますので、ユニバーサル基板上のCN4 1ピンに配線するのみです。


 RAMは秋月で M68AF127B(55nS) をもとめ使いました。この128kB のメモリは安価(5個で¥400)でよいのですが、SOP-32 なのと+5V専用で、+3.3Vが使えないのが難です。

 左写真のように超薄型1.27mmピッチDIP化基板をハサミで切って使うと便利です。

 右上は、CFカードIDEで、配線するのは赤線で囲った、アドレスバス(A0 A1 A2)、データバス(D0--D7)、およびコントロール線で、/CSCFのみGALからです。もちろん+5V、GND、プルアップ抵抗、表示LEDなどは予め配線してあるものとします。

 左下はPCとの接続部で、とりあえずはポートAのみをRS232C-USB変換のCH340のサブボードを使いました。また、+5Vの電源もここから供給しています。




 これに関連して、回路図右下のAKI-80ボードのCN3 22ピンを CN2 3,6,15,18ピンに接続しておいてください。


 リセットスイッチはCN1 7ピンに1kΩの抵抗を介してGNDとの間に入れればいいと思います。


 いよいよ出来上がりです。全体のイメージは左写真以降です。

  













 CFカードホルダーの上にあるサブボードには、LEDインジケータ(左から電源ON、メモリバンク全RAM、CFカードアクセスの3個)とリセットスイッチそしてシリアル接続選択ジャンパがあります。
 次回はソフト関連です。

2019年4月27日土曜日

AKI-80 CPM box の 製作 (1)

 久しぶりの電子工作です。

 ここのところずっとZ80マイコンに取り組んでいましたが、過日のブログでご紹介したように、私の Z80 SBC に CP/M-80 を搭載できたことで一段落していました。

 しかしながら、ブログ「Z80 SBCへの CPM 搭載(3」の最後に述べているように、やはりこの分野のお手本である、Grant Searle さんの「CP/M on breadboardシステムがずっと気になっていました。

 最も興味のある部分は、CP/M のディスク・ドライブです。とは言ってもCFカードを使用しての話ですが、1セクターの512バイトをすべて使い、ドライブ容量が約8MBで、なおかつ A: から P: までの16台も搭載されているのですから。

 というわけで、ある意味非常に洗練されたその回路図を幾度と無く眺めているうちにハッと気がつきました。これは AKI-80 そのものだ!!!(右写真)

 AKI-80 というのは秋月電子の超ロングセラーのマイコンボードで、メインチップは東芝製のZ84C015BF-12です。

 このチップは Z80CPU、Z80PIO、Z80CTC、Z80SIO、Z80CGC などを搭載した複合ICなのです。しかも大きさはxcm と小さく使いやすくなっています。
 性能面では、前述の5個のチップはいづれも12 MHz の高速タイプのC-MOSで、個々に購入したいにもそのようなものは存在しません(CPU 以外では)、チップ間の配線も不要です。そのうえ廉価ですが、保守部品となっていますので、私はボードのみをいくつかストックしています。

 この AKI-80 ボードをつかって Grant Searle さんのCP/M on breadboardシステムを移植したのが今回の「 AKI-80 CP/M box 」なのです。 
 冒頭の写真に見られるように、手のひらサイズの秋月ポリカBOXに収納されており、USB ケーブルで PC と接続するだけ(電源PCから)で本体には赤いリセットボタンがひとつのみと言う、きわめてシンプルで使い心地のよいスタイルです。

 左は秋月の片面ガラスコンポジット・ユニバーサル基板(95 X 72mm)に主なパーツをマウントしたものです。  AKI-80 は CN1 ~ CN4 のコネクタで接続されます。(向きは右上写真と同じ、コネクタは必要なもののみ)

 CFカードホルダーは小型化のため、自作です。「Z80 SBCへの CPM 搭載(2」を参照ください。


 いよいよ製作にはいっていきますが、最初に AKI-80 に手を加え、改造します。(右)

① 最初、ROM用28ピンソケットを取り付ける前に、VHC00 の8ピンに接続しているプリントパターンをカッターナイフで切断します。

② VHC00 の8ピンを14ピンに接続します。

③ ROM用28ピンソケットを取り付ける前に1ピン、20ピン、22ピンを外側に折り曲げ、右下写真のように基板から絶縁しておきます。
 そして28ピンソケットを取り付けた後、1ピンを基板CN1の4ピン(GND)に接続。

④ ROM用28ピンソケットの20ピンを基板CN1の14ピンに接続。
⑤ ROM用28ピンソケットの22ピンを基板CN4の1ピンに接続。

前述の①、②はAKI-80 基板に予めマウントしてある32kB RAM を不作動にするためで、いっそのこと最初からRAM を除去しておいてもいいです。(猛者は128kB RAM に載せ換え?!)

  AKI-80 は左図のように多くの接続端子がありますが、これらすべてに接続ピンをつけるのも大変なので、私は必要なものだけにピンを立てています。
 次いで、ユニバーサル基板の配線に移ります。
  
 先ずは配線図を示します。
 
 リセットがかかると、RS-FFのPA0がLになります。このときはアドレス 0000H-3FFFH でROM、4000H-FFFFH でRAMが選択されますが、IOポート 38Hを使うと(RD、WR どちらでもよい)PA0がHとなり、0000H-FFFFHの64kB 全域がRAMとなります。

 またこの回路は 0000H-3FFFH のROM選択時でも 0000H-3FFFH のRAMに書込みができ、実用的には大変便利で、私は好んで用いています。(HEXファイルを 0100H から書き込み、CP/MのSAVEコマンドで.COMファイルを作る、など)
 右下に赤く囲ってあるのはCFカード・インターフェースのCS信号作成ロジックです。

 今回はこの部分にGAL( 22V10D )を使いますので回路はもっと簡単になります。

 、、、、ということで、以降は次回

2019年1月22日火曜日

Z80 SBCへの CPM 搭載(3)

 より理解を容易にするために、CP/MControl Program for Microcomputer) が作動しているときのメモリ・マップを左図に示します。

 メモリは、8080、Z80が直接アクセスできる、0000H番地からFFFFH番地までのいわゆる64kバイトのRAM(Random access memory) 領域が必要です。

 今回搭載した62k CP/MではDC00H~F1FFH番地に CCP (Console Command Processor) と BDOSBasic Disk Operating System)が入り、次いでF200H~F430H番地に BIOSBasic Input and Output System)が入ります。

 そしてこの状態で、F200H番地からプログラムをスタートさせればCP/Mがスタートするのです。(もちろん前回までに述べたDISK(CFCard)などが作動する環境で、、、、)


 ところがCP/Mを移植するに際して、大変ありがたいことに、CCPとBDOSを合体させたファイルが、CPM22.sys 62kCPM.sys など呼ばれて存在します。
 既述のCPUVille のサイトのCP/Mの項目( http://cpuville.com/Code/CPM-on-a-new-computer.html )でのべられているように、「The Nonofficial CP / M Web Site」にある http://www.cpm.z80.de/binary.html の CP/M 2.2 BINARY ファイル(左下図)がそれに相当します。


 このファイルをダウンロードすると cpm22-b というフォルダーが得られ、目的とした CPM.SYSのほか、CP/M80のアプリケーション・ソフトが沢山入っていて有益です。(またこれらのソフトは個人が趣味で使うかぎり問題はないようです。)

 このCPM.SYSは62kCP/M用で、かつハードに依存しないので、そのまま使うことが出来ますが、今回の場合あらかじめ、バイナリ・エディタを使って、0000H~15FFHにファイルの長さをそろえておく必要があります。(下図の下部にある青色の部分を消去)


 一方、個々のハードウェア依存部分はBIOSに集中されているので、この部分さえ修正すれば自作のボードでCP/M80を走らせることが出来るわけです。

 BIOSはオリジナルに雛形があり(A Skeletal CBIOS)、これにひとつひとつパラメータを入れていってもいいのですが、今回は
CPUVille のサイトで使われている z80_cbios.bin を使わせていただくことにしました。そうは言っても修正部分はありますが、ほんのわずかです。

Z80 SBC(シングルボード・コンピュータ)の製作 (6) モニタープログラムの搭載」で述べたように、このz80_cbios.bin中にある82C51
 Data Register address   を 02H -> 30H
 Control Register address を 03H -> 31H へ変更します。


 さらにz80_cbios.binファイルの先頭に、左図のように 00 00 00 00 とNOPをアドレスを整合させるため、4個挿入しておきます。

 このようにして出来た、新しいCPM.SYSz80_cbios.binをそれぞれCPM.SYSをDC00H~F1FFHに、z80_cbios.binをF200H~にメモリに置き、F200Hからプログラムをスタートさせれば a> とプロンプトが表示されるはずで、動作の確認が出来ます。(この段階では Copyright のクレジットは出ませんし、プロンプトも A> ではなく小文字です。DISKへのアクセスも出来ません)

さらにシステム全体を理解するために下図を示します。


 中央が前述した、メモリ領域をすべてRAMにしたメモリマップで、CP/Mはこの状態で走ります。

 ついでながらTPA(Transient Program Area)トランジェントコマンドがロードされるメモリ上の領域で0100H番地から始まりますし、0000H~00FFH番地はCP/Mのワークエリアです。


 そして、左側が0000H~3FFFHのROM領域(16kbyte)を表したもので、右に拡大したものを掲げました。

 Z80システムのスタート番地(0000H番地)にはZ80 SBC(シングルボード・コンピュータ)の製作 (6) モニタープログラムの搭載」で述べたモニタープログラムがあります。
 1C00H~3430H番地にはCCP+BDOS+BIOSが一体化して収めてありますので、Z80の便利なメモリ転送機能を利用してCP/Mをスタートさせることが出来ます。
 すなわち、

MOUNT_CPM:
   LD   HL, 1C00H  ;Start addrs cp/m on ROM
   LD   BC, 1380H  ;Program Length
   LD   DE,0DC00H  ;Addrs to transfer
   LDIR
;
   3E   01H       ;Memory Bank Change
   D3   38H
;
   JP   0F200H    ;Jp to CP/M Start Addrs


 しかしながら通常のCP/MスタートはDISK(CFCARD)から実行されます。

 左図はその説明図です。複数あるディスクの最初のディスク(DISK0またはDISK A)の最初のトラック(TRACK0)の最初のセクター(SECTOR0)の部分を示しています。

TRACK0、SECTOR0 には
  IPL( Initial Program Loader )

TRACK0、SECTOR2から26
および TRACK1、SECTOR1から25 には
  CCP+BDOS+BIOS

がそれぞれ記録してあります。

実施例で、この場合のCP/Mスタートを説明すると、
・ モニタープログラムからDISKのIPLを8000Hにロード
・ このIPL8000Hからスタートさせると、DISKにあるCCP+BDOS+BIOSDC00Hへロードし、
・ 次いで、メモリバンクをオールRAMに切り替え、F200HからCP/Mをスタート
となります。

 以上から分かるように、CP/Mを構成するためのファイルは、前述の
 CPM.SYS(修正版)z80_cbios.bin(修正版)にくわえて、
 IPL:プログラムの役割については既述
 PUTSYSDISK0の最初の部分にCPM.SYS(修正版)z80_cbios.bin(修正版)およびIPLを書き込む
 FORMATDISKの使用セクターのすべてにE5を書き込む
などがあり、それらを組み合わせて構築します。
 詳細は CPUVille http://cpuville.com/Code/CPM-on-a-new-computer.html を参照ください。


 以上はZ80 SBCへの CPM 搭載についての全体像の備忘記録で、マニュアルではありませんので整合性や誤解などについてはご容赦ください。

 とはいうもののこのCPUVilleの記事「 Setting up CP/M 2.2 on a New Z80 Computer」は本当に役に立ちました改めて Donn Stewart さんに感謝です。

 現在は自作のZ80 SBCでCP/M‐80が軽快に動いています。
 強いて気になる点は、DISKの1セクターが512バイトもある中で、128バイトしか使われていないので、128GBのCFカードでも243kバイトのDISK4台構成である点です。

 またZ80 SBCもAKI-80ボードを使えばよりシンプルになることを思いつき、これに Grant Searle さんのシステムを載せてみたいと考えています。

2018年12月17日月曜日

Z80 SBCへの CPM 搭載(2)

 先回の予告とは異なって、もう少しCFカード搭載の話を続けたいと思います。

 CFカードはIDEのコネクタに接続可能だと言いましたが、正確には左写真のように、CFカードをアダプターに挿し、そのアダプターがIDEと同じ配列の40ピンコネクタを持っていると言うことです。

 ちなみにこの写真にあるアダプターはebayで安価に入手(国内でCFカードソケットのみを購入すると同じくらい)できますが、オーダーしてから4週間ほど待たねばならないのが毎度のことながら難点です。

 参考までに、GRANTさんの図をリファインした、CFカードのピン配置を以下に示します。


 これは正面からの図ですが、左右両端のガイド溝(細い楕円で囲まれた部分)の大きさで左右を判定します。

 ピンは50ピンありますが、必要なのは、前回お話したように、このうち18ピンのみです。もちろんGNDなど共通なものは1ピンとします。


 左写真は、今回製作した Z80 SBC にCP/M-80を搭載した際に設置したCFカードソケットの様子(写真上部)です。

 こうして見ると結構大きく、場所をとりますので、CFカード・ソケットが手元にあったのを幸い、カードアダプターも自作してみました。












 ベースは秋月のユニバーサル基板で、これにCFカード・ソケットと18ピンを載せただけのものです。

 ただピンが微細にこみいっていますので、ハンダ付けには細心の注意が必要です。

 左写真に詳細を示しましたが、プル・アップ用1kΩの表面実装用がうまく半田付けされています。

 そして右写真は、AKI-80を用いた、CP/Mボードですが、前述の Z80 SBC よりも一回りコンパクトに収まっています。


 と言うことでいよいよ本題に入っていきます。

 CP/Mでは、ディスク上の任意の1セクターのREAD、WRITEが必須ですが、逆にディスクへのアクセスはこれしかありません。

 したがって、モニタープログラムで、この操作が出来ることをあらかじめしっかりと確認しておくことが必要です。



 上図は、前回も紹介した、 CPUVille のサイトのCP/Mの項目( http://cpuville.com/Code/CPM-on-a-new-computer.html )にある、セクター・リードのプログラムを私流にアレンジして、 Z80 SBC のモニターとして使っているものです。(同様のセクター・ライトのプログラムもあります)

 このプログラムは上側に赤く囲ってあるように、HL:DMAアドレス、E:DRIVE番号、B:TRACK番号、C:SECTOR番号 に、あらかじめそれぞれの数値をいれてコールすれば、目指すSECTORのデータをDMAアドレスから始まる512バイトに読み出してくれます。(今回のCP/Mでは、このうち128バイトしか使いませんが、、、、)

 このプログラムは、CFカードのLBA( Logical block addressing 論理ブロックアドレス指定)方式をつかっています。


すなわち、CFカード上では、左図のようにSECTR番号が右端の0から順に番号付けされていますので、これをLBA2:DRIVE番号、LBA1:TRACK番号、LBA0:SECTOR番号 に割り振ってあるのです。


 今回移植するCP/M-80は標準に近く、DRIVE 4、TRACK 77、SECTOR 26というIBM仕様?になっています。

 LBAを使用するために、プログラム上では中ほどの緑で囲った部分の記述があります。
 E0HをCFカードのポート0FHに出力することでLBAモードにしています。

 CFカードのポートは左図のようにA0~A2のアドレスで設定されますが、アドレス・コーダ74HC138と組み合わせることで今回は08H~0FHの8個のI/Oアドレスを設定しました。

 今回のケースは、LBAモードの図から037F1F Hと読み取れます。229151個のSECTORを使うと言うことで、229151 X 512 = 117325312 となりますので、最低限128MBのCFカードが必要と言うことでしょうか。

 なおこのままだとCFカードは16bitモードのままです。普通に使うには何の支障もありませんが、私は気持ちが悪いので、下記のプログラムをシステム立ち上がりのときに走らせて、8bitモードにして使っています。



 これまでに入手した、CFカードはほとんどが支障なく使えましたが、なかにはダメなものもありました。何故だかは分かりませんが配線を最短に、とかバッファーを入れるとよい、、、、ナドト言われています。(私は試していませんが)

 CFカードについては参考に出来る資料があまり多くはありません。今回述べたことは、たまたまの成功体験を自己流に解釈しているだけですので、いい加減な説明をご容赦ください。

 以下は次回です。

2018年11月27日火曜日

Z80 SBCへの CP/M 搭載(1)

 今年の秋はことのほか多忙で、なかなかブログ作成に割く時間がとれず、しばらく間が空いてしまいました。


 私のブログ、Z80 SBC(シングルボード・コンピュータ)の製作 (1~6でとりあえず、Z80 シングルボード・コンピュータがモニター・ベースで走るところまで紹介しました。

 今回からは稿を改め、Z80 SBCへの CP/M 搭載 として話を続けたいと思います。



 CP/MControl Program for Microcomputer)とは1970年代にデジタルリサーチ社 (Digital Research Inc.) の創業者ゲイリー・キルドールによって開発、1976年に発売された、パソコン用のシングルユーザー・シングルタスクのオペレーティングシステム (OS) です。

 CP/Mは①8080マイクロプロセッサおよびそのZ80などの上位互換CPU、②0番地から配置されたメモリ、③フロッピーディスク、そして④シリアル端末があれば動作させることが出来ました。

 同時代に出現したフロッピーディスク(発明は中松氏でなくIBM?)を利用して、ファイルの管理が出来るこのCP/Mシステムはそれこそ最先端の技術であり、垂涎の的で、個人が所有するなどは夢のまた夢でした。

 今の時代にこのCP/Mシステムを再現することは、我々老人のノスタルジーには違いはないものの、当時の最先端の膨大なソフト・ウエア(BASIC,FORTRAN,COBOL,ALGOL,Cなどなど)が商用に供さない限り自由に使うことが出来、興味はつきません。 冒頭の写真は Z80 SBC で CP/M をスタートさせたところですが、「 62K CP/M 2.2 Copyright 1979 (c) by Digital Research 」の記述は何度見ても飽きません。

 さて、Z80 SBCCP/Mを搭載するに当たって、前述の必要項目①~④のうち欠けているのは、③のフロッピーディスクのみです。
 いまさら入手困難な絶滅種のフロッピーディスクでもありませんので、ここはSDカードといきたいところですが、Z80に接続するには、インターフェースおよびソフトウエアの面で煩雑さが伴います。

 ということで、残された選択肢はCFカードと言うことになります。CFカードも絶滅危惧種ではありますが、このような用途に使用する1Gb以下のもの(かつて産業用に使われた?)はネットで安価に入手できます。







 CFカードは少し前にHDDなどで使われたIDEバスの規格に準じていますので、そのままZ80のバスに接続できますし、興味があるならIDEバスを持ったHDD(シリコンドライブが良いかも)やFDDも接続できそうです。









 その後確認したことですが、SD-CFカード・アダプターを使えば、左写真のように、SDカードも、マイクロSDカードも使うことが出来ました。

 右に配線図を示します。IDEコネクタは差し込まれる端子を上から見たものです(要注意!)。/CS0 はアドレス・デコーダ(74HC138)の14ピン(08H) へ接続です。


 また、40ピンIDEコネクタはVCC(+5V)がありませんのでこれも注意です。

 40ピンIDEコネクタはあまりにも場所をとりすぎますので、私は独自に18ピンのコネクターを作り使っています。(左)


 ということで過日述べたように、 CPUville 」という Donn Stewart さんのサイトをお手本にして、Z80 SBCへの CP/M 搭載の準備ができました。

では、次回、、、、