4か月ぶりの新居浜出張です^^
新居浜から帰りに乗ったのは7600系の特急しおかぜ・・・
新居浜駅で写真が撮れなかったので岡山到着時にパシャリ
先頭車両はこんな感じ
ヘッドマークは電光表示でした 続きを読む 2018年10月 新居浜出張3^^
4か月ぶりの新居浜出張です^^
新居浜から帰りに乗ったのは7600系の特急しおかぜ・・・
新居浜駅で写真が撮れなかったので岡山到着時にパシャリ
先頭車両はこんな感じ
ヘッドマークは電光表示でした 続きを読む 2018年10月 新居浜出張3^^
Z80Bカードの動作確認に使っていたMB-S1/10のグラフィック廻りの不調が、
さらに悪化してきたので実家の物置に保管していたS1/30をと交換してきました^^
悪化したMB-S1/10のグラフィックモードはこんな感じ、先日はこんな感じだったのでかなり悪化です。
80文字モードではかなり厳しい状態・・・ 続きを読む MB-S1/30を自宅に持ち込む^^
こちらで紹介したFT-245使用のFM-7用通信ユニット基板の改良版を
頂きましたので、ちょっと気分転換に早速作ってみました^^
元ネタはこちら ⇒ shuji_akita2001さんのブログ
左は以前組み立てたもの、中央はデータレジスタとステータスレジスタが同アドレスになったバージョン
右はFT-245の位置が左に変わったものです。
今回は右の基板を組み立ててみました。 続きを読む FT245R使用のFM-7通信ユニットの新基板を頂く^^
Z80Bカードと6809側のデータやり取りでループバックするテストプログラム その1
ポンコツプログラムですが一応、目的の動作をしているので参考に晒しておきます^^
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | ;CP/M-80 BIOS Program for the MB-S1 ;BIOS09とのループバックテスト(6809⇔Z80切替&データ交換) org 0000h jp Start Start: ld SP,0100h IOLoop: ld A,(IOSTAT) ld B,80h and B jp NZ,IOLoop ld HL,(CMDNO) ld D,(HL) ld (HL),00h ld HL,(DATAREG) ld E,(HL) ld (HL),00h nop ld HL,(CMDNO) ld (HL),D ld HL,(DATAREG) ld (HL),E call To09Change ;6809にバス切替 EndLoop: jp IOLoop ;//+++ Z80を停止して6809にバスを渡す To09Change: ld A,80h ld (BUSCTRL),A ret ;+++ 6809とZ80のレジスタデータ受渡共有領域(16バイト) ;BIOS09との共有領域 正式には後で構造を決める ;データ内容(6809側からは0xEA00) CMDNO: defb 00h IOSTAT: defb 00h DATAREG: defb 00h SH6809: defb 11h, 00h, 00h, 00h, 00h, 00h, 00h, 00h defb 00h, 00h, 00h, 00h, 00h, 00h, 00h, 99h defm "Shared area for BIOS09" defc BUSCTRL = 0FE19h |
S1側とZ80Bカードの連携方法を確認するためにテストプログラムを作ってみました
以前教えて頂いたZ80と6809との切り替え方は
①0:0000~Z80のコールドスタートのプログラムを書く
②$FF7Fに$FFを書込む(Z80スタンバイ)
③$FE19に$00を書込む(Z80スタート)
これでZ80がスタートされ6809から拡張メモリを含む全てのスロット上カードへのアクセスができなくなる(バスフローティング状態)
しかし6809は停止していないのでS1の資源だけを利用してZ80と並行動作している。
この状態で6809からスロット上のカードをアクセスする必要が出た時は
④$FE19に$80を書込む(バスリクエスト)
⑤$FE19を読出しMSBが1になるのを待つ
⑥必要な処理を行う
⑦$FE19に$00を書込む(Z80スタート)
④~⑦の繰り返しで処理可能
S1の拡張MPUカードの特徴は6809もZ80も両方とも動作しているということで、
6809側からもZ80側からも見える共通の領域にデータを書き込んでI/O処理のときにデータを参照する
仕組みだそうです。
(6809側とZ80側の両側からアクセスできるエリアは物理アドレスで$00000~$7FFFFの512KBで
MPC-RA64~512の拡張RAMカードが必要です)
これだと両MPUは常に動作しているので、MPU切替を複雑には考えなくていいようです。
これがS1のフローティングバスの優れた部分だそうで、
Z80カードを作って初めてフローティングバスの恩恵を得られました(^^)
上記①~⑦を図に書いてループバックのソフトを整理してみました。
(フローチャートではないので何だかちょっと変^^) 続きを読む S1-CP/M80 移植作戦 その15 BIOSの作成準備1^^