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年3月27日水曜日

早春の安曇野ちひろ美術館

 急に思い立って、安曇野に小旅行をして来ました。

 第1日目は何度目かの松本城訪問したのち、昼食には松本では5本の指に入ると言う「そば屋 五兵衛」なる店で手打ち蕎麦を味わってきました。

 店は夫婦二人のみで、丁寧にひとつづつ順に作るため、待ち時間の1時間はあたり前のようです。
 しかしながらご主人の病弱の故か、後で調べたら3月の前半はほぼ毎日が休店日で、たまたま訪れた私たちはまさにラッキーでした。

 さらにラッキーなことには限定メニューの「粗碾き生粉打ち(あらびききこうち)蕎麦」が一人前だけ残っていました。これは、手碾き石臼で玄蕎麦を丹念に碾き「つなぎ」を加えずに水だけで打つという野趣豊かな 10 割蕎麦、、、、とのことで、さすがにおいしかった!


 もちろん他の「ニシン蕎麦」や「せいろ蕎麦」も十分に堪能できたようです。

 こののち松本市内を少し散策しましたが、あちこちに古い家並みが残っており、改めてそのよさを味わいました。

 その後、少し早めでしたがホテル入りし、温泉そして少しだけ豪華な夕食の時間を楽しく過ごしました。

 翌朝、家人の声で目を覚ましました、、、眠い目で窓の外を見て驚きました。

 なんと雪景色です。事前にホテルに問い合わせたときには「今年は雪が無くて、、、」と申し訳なさそうな話でしたが、、、落ち着いて空を見上げるとところどころ青空が見えています、これもある意味ラッキーなのでしょう。

 屋根が白兎のようになった車の雪落としをして、出発するころにはもう雪は日陰に残るのみとなっていました。


 今日の予定は安曇野ちひろ美術館です。

 ちひろ美術館は東京・下石神井にもありますが、手狭になったこともあり、その開館20周年を記念して安曇野にも設立されたとのことです。


美術館はアルプスの山々を望む地に広い敷地を取って、低層の建物だけで構成されており、また敷地全体を「安曇野ちひろ公園」として、散策しながら寝転んだり、美術館を鑑賞したりできる魅力的なスペースにしてありました。

 右下の第1駐車場から美術の道を経て入館します。

 入館証は下写真のような、5cm角のかわいいもので、ちひろの絵が印刷してあります。
 これを身に着けていれば1日中出入りが自由なのです。





 「いわさきちひろ」は福井県武生市生まれの、冒頭に掲げたような子供水彩画に代表される日本画家絵本作家で、常に「子どもの幸せと平和」をテーマとしていました






 ここ安曇野ちひろ美術館には、彼女が1974年に55歳で肝臓がんのために早世するまでの生い立ち、成長、活動そして作品などが詳しく展示されています。



 また、この美術館は絵本美術館でもありますので、国内外の絵本約3000冊をそろえた「絵本の部屋」もありました。(上写真)

 建物の外側には、安曇野の自然を味わいながら絵本を読むことができそうな場所がありましたが、今はまだ春雪に占拠されています。





 とはいっても春はもう私たちの足もとまで来ていました。










 館内は木を生かした、瀟洒なデザインで、明るい心地よさが感じられました。
 右写真は館内で、先方にあるカフェの方向を見たものです。



 折角の機会だから、、、と軽い昼食を兼ねたお茶の時間を持ちました。
 写真はイチゴタルトとスコーンです。


 順序は前後しますが、下の写真は安曇野ちひろ美術館を正面入口の反対側、すなわち前述の公園見取り図の花畑から見たものです。

 すべて平屋で構成されており、安曇野の自然とよく調和するように考えられているものと思います。

 また、公園見取り図の左端には「ちひろの黒姫山荘」を復元したものがあります。
 1966年、ちひろはアトリエを兼ねた山荘を黒姫高原に建てました。
この4間四方のコンパクトなアトリエ兼住居である黒姫山荘は、周囲を囲む美しい樹木や野尻湖の景色を愛でられるように、少し高床で、かつ床の高さから大きく窓が取られています。


この山荘ができてからちひろは毎年ここで絵本の制作をおこなうようになったということです。

 左写真は山荘の窓からちひろの制作現場をみたものです。
 描きかけの挿絵?や道具類が置かれています。

 絵筆は制作者の左に置かれています、、、そうです、彼女は左利きだったんです。

 そして今回の戦利品?です。

 その1は、隣接した公園で、フラワー即売会をやっていましたが、そこで家人が見つけたクリスマスローズです。

 小輪でベル咲きの可愛らしい雰囲気で、緑の花を付けた、「ウインターベル」という株で、我家の庭には無かったものです。それも当然、ほとんど流通のない希少なクリスマスローズで、栃木県でしか生産されない限定品種だとか、、、、







 その2は、安曇野ちひろ美術館のミュージアム・ショップで見つけたガラス製の小さな花瓶です。

 帰宅してふと気づいたら、庭の花が挿された姿を、早々とテーブルの上に見つけました。

 

 健康で、平穏な日々に感謝です、、、、


2019年3月6日水曜日

あっという間に春の訪れ

 あっという間に春が訪れました。
 暦の上で冬は12、1、2月の3ヶ月ですが、2月の末になるとクロッカスが春の来訪を教えてくれるのです。

 今年は少し早いかな?とこれまでの記録(撮影した写真にはタイムスタンプがあります)をみてみましたが、なんとほとんど同じ時期に開花していました、、、、ということはこの花は、日照時間を感じているのでしょう。









 そういった意味で、毎年きっかりと春の訪れを知らせてくれる、我家の季節時計です。
 庭のアプローチに咲いた花は例年より少し多く、20余を数え、なんとなく豊かな春を予感させてくれます。






 カンアヤメは冬の間の数少ない彩のひとつで、毎年おなじところに、おなじように、静かに咲いています。



















 
 そして新しい年を迎えると、スイセンが庭のあちこちで一斉に開花します。
 冬の季節に、スイセンの青い葉と黄色のアクセントのある白い花は私たちを元気付けてくれているかのようです。





 次いで、クリスマスローズの登場となるわけですが、庭の手入れをしていた家人が、「珍しいものを見つけました。

 八重咲きの、それも多くの色が混ざった濃厚なクリスマスローズです。これまでにこのような種類を植えたことはないはずだそうですが、もしかすると突然変異なのかもしれません。

 そして、こののち白から黒に至る多くの色の、沢山のクリスマスローズが庭のあちこちで咲き乱れていきます。(もちろん一重の、、、、)


 一方、室内ではランが相次いで開花してきました。

 セロジネ・インターメディアは友人からの頂き物ですが、今年も元気に花をつけてくれました。




 
 デンドロビウムは例年より少し早いような気がします。










 そして カトリアンセ バーガンディー デライト です。
  この花はより大きく、きれいに咲きました。


 毎年こうして春の訪れをいろいろな花で知ることが出来るのは、たいへん心豊かなことだと思い至ります。

 毎度のことながら、改めて家人の丹精に感謝です。

2019年2月20日水曜日

メンデルスゾーン オラトリオ エリヤ(ELIAS)

 先日、ごく親しい友人ご夫妻のお招きでメンデルスゾーンのオラトリオ「エリヤ」を鑑賞する機会を得ました。

 オラトリオとは宗教的な叙事的題材を、声楽(独唱、合唱)とオーケストラで演奏する規模の大きな曲で、オペラと異なるのは、演技や衣装、・道具などを用いない点です。

 ヘンデルの「メサイア」、ハイドンの「天地創造」などが有名ですが、メンデルスゾーンも1846年のこの「エリヤ」に先立つ1836年に、「聖パウロ」を世に出しています。こののち「キリスト」が予定されており、本来ならばメンデルスゾーンの「オラトリオ3部作」となるはずでしたが、彼が38歳で夭折したことで実現しませんでした。
 
 今回鑑賞した「エリヤ」は第1部と第2部に分かれ、それぞれが約1時間の大作でした。

 第1部は、イスラエルの地にバアルの偶像崇拝信仰が広まったことに怒った神エホバが、長期にわたる旱魃をもたらした場面から始まり、預言者エリヤがバアルの預言者たちとの対決で主の火を降下させることに成功し、打ち勝ち、預言者たちを排除して、降雨の奇跡をおこなうまで。

 第2部は、奇跡をおこなったエリヤの台頭を恐れた、イスラエル王妃イゼベルに追われ、エリヤがイスラエルから逃げ、最後には後継者エリシャの目の前で火の馬車により天に上げられるところまでとなっています。


名古屋市民コーラスのホームページより
 冒頭の絵画は、最後のシーンを表現したもので、後期バロック様式のイタリアの画家ジュゼッペ・アンジェリ(1709-1798)による「 Elijah Taken Up in a Chariot of Fire 」で、今回の演奏会のポスターにも使われています。

 今回の演奏会は名古屋市民コーラスの創立60周年記念演奏会の第1回で、第2回はこの11月にブラームスの「ドイツ・レクイエム」が予定されています。
 
 写真は一昨年に演奏されたヴェルディの「レクイエム」のカーテン・コールで、例によって共演は名古屋フィルハーモニー交響楽団です。
 写真から分かるように、1959年に発足した名古屋市民コーラスは常時200名の団員数を有する大合唱団で、今回のようなオラトリオや、レクイエムなどで圧倒的なパワーを体感させてくれます。

今回の演奏会は以下のような構成でおこなわれました。 
 
      角田鋼亮
      エリヤ    末吉利行
          ソプラノ  本田美香  田代華菜
          アルト    三輪陽子  佐藤文美
          テノール  大久保亮  田中準
               田中潤
 ソプラノ(クナーベ役)長谷川紘初
管弦楽   名古屋フィルハーモニー交響楽団
     名古屋市民コーラス
合唱指揮  長谷順二

 指揮者の角田鋼亮さんはまさに新進気鋭で、プレトークでは学生時代(23歳)に、名古屋市民コーラスの第33回定期演奏会(2003.11)「エリヤ」を、師の佐藤功太郎氏が指揮されるのを楽屋裏から観た、との話で今回の演奏を楽しみにしておられた由。
 また演奏後の感想では、オラトリオとはいうもののまるでオペラのような感覚で指揮ができ、新しい境地が開けそう、、、、とも述べておられます。

 エリヤ役のバリトン末吉利行さんもまた2003年に引き続き出演されています。まさに押しも押されぬはまり役と言った感じでオラトリオを盛り上げていただきました。パワーとスタミナに脱帽です。

 ソプラノの本田美香さんも熱演が光っていました。
 時間が経つにつれ伸びやかな声がますますすばらしく、今後の活躍が期待されます。

 クナーベ役・ソプラノの長谷川紘初(はせがわこうは)さんの強く、透明感のある声には驚きました。宗教曲にはよくボーイソプラノも使われますが、多くはソプラノが代行します。でもボーイソプラノのようなガールソプラノは珍しいとおもいます。
 フォーレの「レクイエム」にあるピエ・イエズを昨年スペインで演奏し、絶賛されたとありますが、 現在中学2年生とのこと、少しでも長く演奏できることを願ってやみません。

 ということで久しぶりに時間も忘れ、すばらしい演奏に心を揺さぶられました。
 改めて友人ご夫妻に感謝です!!!