HD6303で電大版TINY BASIC(3) [6801]
8ビットマイコン基板の時のHD6303基板は色々ミスがあってパターンカット&ジャンパー飛ばしでデバッグしていたのだが、結局新規に起こしなおした。たぶん最初の基板も動くとは思う。最終確認していないけど。
これはHD6301/6303の64pinシュリンクパッケージのXあるいはY用で、今手元にはこれだけ。
種類はもちろん、数的にももう少しあったと思う。
左上からHD6303XP,HD63A03XP,HD63B01X0P,HD63X03X0P
右上からHD63701X0P,HD63B701X0P,HD6301Y0P,HD63C03YP
HD63B01X0Pはマスク品でたぶんなんらかのファームウェアが入っているはず。
その中からHD63C03Yを使って電大版Tiny BASICを動かしたいと思う。
I/Oコネクタはまだ付けていない。
このボード、MREQではなくEをそのまま出しているのでメモリボード側でジャンパ切り替えて対応。
ソースの変更点は
(1)ピン数増えているので内蔵I/Oも増えていて、その分ゼロページのI/Oレジスタ占有量も増えているので、またメモリのマッピングを多少変更する必要がある。
(2)増えた分のI/Oレジスタは継ぎ足しで既存の分の機能はほぼ変わらないので、SCI等のソース変更はなし。
(3)I/O追加に伴う割込増加分と、未定義命令トラップが追加されている分ベクタが増えているが使わなければこれも同じでOK。アドレス下位方向に追加なので、念のため新規割込もダミールーチンへJMP。
(4)XとYではI/Oも多少違うのだが、Yの方が上位互換とみなせるのでYの固有機能を使わなければ同じで構わない。もちろん、Xからの固有機能も使っていない。
USB-シリアル変換、クロック生成を行っているPICも変更。
(5)MC6801および40pinまでのHD6301はSCIを外部クロックで使用する場合、ボーレートの8倍入力だったが、HD6301X(Y)はなぜか16倍に変更されているので16倍クロック出力に変更。
(6)HD63C01を使うので3MHz動作のためにシステムクロックも12MHzに。
実際には12.6MHz程だからCPUクロックは3.15MHzで多少オーバークロック。
それら小変更で難なく動作。
前回と同じベンチマークプログラムを動かしてみた。
タイムは824カウントだから約8.2秒。
前回は約0.8MHz動作で32.9秒だったので、ほぼクロック通り4倍動作となっている。
ちなみに6801向けに演算にDレジスタ使ったバージョンです。
これはHD6301/6303の64pinシュリンクパッケージのXあるいはY用で、今手元にはこれだけ。
種類はもちろん、数的にももう少しあったと思う。
左上からHD6303XP,HD63A03XP,HD63B01X0P,HD63X03X0P
右上からHD63701X0P,HD63B701X0P,HD6301Y0P,HD63C03YP
HD63B01X0Pはマスク品でたぶんなんらかのファームウェアが入っているはず。
その中からHD63C03Yを使って電大版Tiny BASICを動かしたいと思う。
I/Oコネクタはまだ付けていない。
このボード、MREQではなくEをそのまま出しているのでメモリボード側でジャンパ切り替えて対応。
ソースの変更点は
(1)ピン数増えているので内蔵I/Oも増えていて、その分ゼロページのI/Oレジスタ占有量も増えているので、またメモリのマッピングを多少変更する必要がある。
(2)増えた分のI/Oレジスタは継ぎ足しで既存の分の機能はほぼ変わらないので、SCI等のソース変更はなし。
(3)I/O追加に伴う割込増加分と、未定義命令トラップが追加されている分ベクタが増えているが使わなければこれも同じでOK。アドレス下位方向に追加なので、念のため新規割込もダミールーチンへJMP。
(4)XとYではI/Oも多少違うのだが、Yの方が上位互換とみなせるのでYの固有機能を使わなければ同じで構わない。もちろん、Xからの固有機能も使っていない。
USB-シリアル変換、クロック生成を行っているPICも変更。
(5)MC6801および40pinまでのHD6301はSCIを外部クロックで使用する場合、ボーレートの8倍入力だったが、HD6301X(Y)はなぜか16倍に変更されているので16倍クロック出力に変更。
(6)HD63C01を使うので3MHz動作のためにシステムクロックも12MHzに。
実際には12.6MHz程だからCPUクロックは3.15MHzで多少オーバークロック。
それら小変更で難なく動作。
前回と同じベンチマークプログラムを動かしてみた。
タイムは824カウントだから約8.2秒。
前回は約0.8MHz動作で32.9秒だったので、ほぼクロック通り4倍動作となっている。
ちなみに6801向けに演算にDレジスタ使ったバージョンです。