Featured image of post V53 VMEシステムで遊んでみました #11 VMEシステムを起動する

V53 VMEシステムで遊んでみました #11 VMEシステムを起動する

前回までの調査でV53 CPUボードをある程度制御下に置くことができましたので、今回はCPUボードをVMEラックに戻してVMEシステムとしての仕様を調査していきます。

VMEシステムの構成

#1 VMEラックの入手の記事でも触れていますが、このVMEシステムは以下のボードで構成されています。

スロットNo.名称型番特記事項
1CPUボードDVE-V53/12NEC V53 CPU(x86互換)を搭載。RS232Cx1, SCSIx1
2シリアル通信ボードDVE-554SIOのラベル有。D-Sub15ピン×4
3メモリボードDVE-441RAMのラベル有。拡張メモリ
4~6アナログ入力ボードDSP8112-323枚実装
7~8デジタル入力ボードDVE-528DI1,DI2のラベル有、2枚実装

一番左のスロット1番はVMEシステムではSCON(System Controller)と呼ばれていて、VMEバスシステム全体を制御するボードになります。SCONから他のボードがどのように見えるかを探っていきます。

モニタの起動確認

まずはCPUボードをスロット1に戻し、シリアルコンソールを接続してから電源を投入しました。

電源を投入したVMEシステム

ROMモニタは問題なく起動したので、拡張版のRAMモニタをロードしました。これも問題なく動作しています。

**  V53 MONITOR v0.1 2026-01-12  **
> l
Load HEX...2000:0
......................................................................................................................................
OK> 
> g 2000 0000
Go!

**  V53 RAM MONITOR v0.7 2026-01-31  **
> t
Tick: 00002AA9
> 

Tickカウンタもカウントアップして時を刻んでいます。

メモリマップの確認

ここで気になるのはメモリマップです。CPUボード単体では80000h~DFFFFhまではメモリが存在せずにバスエラーとなっていました。
このエリアはVMEバスのRAMボードが割り当てられるのではと推測していたので、8000:0000をダンプしてみます。

> d 8000 0000
8000:0000 BE 0E A8 CA 55 7D 5D 75 9B 8E EB AA B7 DF 55 45 
  :
>  

バスエラーにはならずに、何やらデータが現れました。試しに8000:000012を書き込んでみます。

> w 8000 0000 12 Done
> d 8000 0000
8000:0000 12 0E A8 CA 55 7D 5D 75 9B 8E EB AA B7 DF 55 45 
   :

問題なく書き込めました。試しに他のアドレスも読み書きしてみましたが、問題なく書き込めているようです。

ROMエリアはそのままE0000-FFFFFであることも確認できました。ROMモニタが見えています。

> d e000 0000
E000:0000 FA B8 00 00 8E D8 8E C0 8E D0 BC 00 40 BA F2 FF 
E000:0010 B0 00 EE BA F3 FF B0 71 EE BA F4 FF B0 10 EE BA 
E000:0020 F5 FF B0 32 EE BA FE FF B0 11 EE BA E9 FF B0 1A 
E000:0030 EE BA FC FF B0 12 EE BA F8 FF B0 60 EE BA FD FF 
> 

これでVMEバスのRAMボードが正常に動作していることが確認できました。VMEシステムでのメモリマップは以下のようになります。

アドレス範囲サイズ種別実体
00000-7FFFF512KBRAMオンボードRAM。ベクタテーブルやRAMモニタで使用
80000-DFFFF384KBRAMVMEバスの拡張RAMボード
E0000-FFFFF128KBROMオンボードのROMモニタやリセットベクタだが、大部分は未使用

I/Oアドレスの確認

VMEシステムには「アドレス空間(Address Space)」の概念があり、メモリボードのような大容量デバイスと、I/Oボードのような制御デバイスでは、アドレス空間が異なることが一般的です。
x86アーキテクチャのV53にはメモリ空間とは別に64KBのI/O空間があります。 おそらくV53のI/O命令 (in, out) は、そのままVMEバスのShort I/O (A16)空間に変換されているはずです。
この推測をRAMモニタで実装したScanコマンドを使って確認します。

実行結果は次のようになりました。

**  V53 RAM MONITOR v0.7 2026-01-31  **
> s 0000 feff
Scanning I/O (Press any key to abort)...
0000: 00  
0001: 29  
0002: 42  
 :
00DF: 02  
00E2: 00  
1100: 00  
1101: 00  
1102: 00  
1103: 00  
1104: 00  
1105: 00  
1106: 00  
1107: 00  
1108: 00  
1109: 00  
1110: 00  
1112: 00  
1114: 00  
1116: 00  
1120: 00  
1121: 00  
1122: 00  
1123: 00  
1124: 00  
1125: 00  
1126: 00  
1127: 00  
1128: 00  
1129: 00  
1130: 00  
1132: 00  
1134: 00  
1136: 00  
1200: 3E  
1260: 66  
1261: 84  
1262: 84  
1263: 87  
1270: 1E  
1271: D0  
1272: 02  
1273: 02  
1280: 01  
1281: 7F  
1282: 01  
1283: 7F  
1300: 00  
 Done
>

00xxは前回までに調査したCPUボードの外部ペリフェラルです。
1000以降に多数のI/Oが加わっていることがわかります。しかも、私が適当に設定したV53のペリフェラルI/Oアドレス1260-1283がその中に含まれているようです。これではモニタの動作がVMEボードに影響を与えるかもしれないので、V53のペリフェラルアドレスを1260-から2060-に変更することにしました。

変更したあとの結果です。これでVMEバスのI/O空間が1xxxであることがはっきりしました。V53のペリフェラルは2060以降に移動しています。

**  V53 RAM MONITOR v0.8 2026-02-01  **
> s 0000 feff
Scanning I/O (Press any key to abort)...
0000: 00  
0001: 29
 :
00DE: 05  
00DF: 02  
00E2: 00  
1100: 00  
1101: 00  
1102: 00  
1103: 00  
1104: 00  
1105: 00  
1106: 00  
1107: 00  
1108: 00  
1109: 00  
1110: 00  
1112: 00  
1114: 00  
1116: 00  
1120: 00  
1121: 00  
1122: 00  
1123: 00  
1124: 00  
1125: 00  
1126: 00  
1127: 00  
1128: 00  
1129: 00  
1130: 00  
1132: 00  
1134: 00  
1136: 00  
1200: 3E  
1300: 00  
2060: 66  
2061: 84  
2062: 84  
 :
2083: 7F  
 Done
>

1xxxのI/Oデバイスはある程度の規則性が見受けられますが、実際にどのボードがどのアドレスを使っているかがわからないので、ボードを種類別に外していくことで確認を進めました。

一時的に外されたVMEボード

確認した結果は以下のようになりました。

  • AIボード3枚を抜く・・・まったく変化なし(!)
  • DIボード2枚を抜く・・・1100~113xが消えた
  • SIOボードを抜く・・・1300が消えた
  • RAMボードを抜く・・・1200が消えた

この結果をまとめると以下のようになります。

ボード名称VMEスロットI/Oアドレス解析結果 / 備考
CPUVME#10000-00E2Onboard SCSI,PPI,USART,PIC
CPUVME#12000-2083V53 Internal SCU,TCU,ICU
CPUVME#1FF00-FFFFV53システム制御I/O
Serial I/OVME#21300制御/ステータスレジスタ?
Ext RAM BoardVME#31200制御/ステータスレジスタ?
Analog Input #1VME#4未検出他の方法でアクセス?
Analog Input #2VME#5未検出他の方法でアクセス?
Analog Input #3VME#6未検出他の方法でアクセス?
Digital Input #1VME#71100-1116デジタル入力結果がこの範囲に展開?
Digital Input #2VME#81120-1136デジタル入力結果がこの範囲に展開?

このようにI/Oアドレスで制御できるボードもありそうですが、そうでないボードもあるようです。
またscanコマンドはあくまでも目安でFFが返っている場合は表示されません。この点を考慮して入念に調査する必要があります。

まとめ

V53のI/Oアドレス空間から一部のVMEボードにはアクセスできそうですが、実際にどのようにデータの受け渡しを行うのかはまだまだ不明な点が多くもう少し実験が必要のようです。
各ボードに実装されているデバイスの型番やヘッダピンなどの設定情報などを確認しながらモニタを使って解析を進めてみます。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。