まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

2019年04月

PET2001とPET2001Nの違いについて

 今日はですね、初代のPET2001と改良型のPET2001Nの違いについて調べてみました。

 初代のPET2001は自社製の同期式ROM/RAMを使用、RAMは後に2114(1Kx4bit)。PET2001Nのコードネームは回路図から見るとDYNAMIC PETでDRAM 4116(16Kx1bit)を使用しています。他にもCGROM周りの素子は異なりますが今回ソフトウェアから見えないハードについては取り上げません。

 PET2001/PET2001NのVRAMは2114(1Kx4bit)が2個で40x25=1000文字を扱っています。VRAMの先頭番地は$8000ですが、$8400~,$8800~,$8C00~と1Kバイトごとにイメージがあります。

 ところでイメージってご存知ですか?アドレスデコードのサボりによりアドレス空間の別の領域に同じメモリが見えてしまう現象のことですね。この場合はアドレスの[15:12]まではきちんとデコードしていますが[11:10]は無視しているということですね。

 さて、次のプログラムをPET2001Nで動かします。これはVRAM領域に直接値を書き込んで全キャラクタを表示させます。

10 V=32768
20 FOR I=0 TO 999
30 POKE V+I,T
40 T=T+1
50 IF T>255 THEN T=0
60 NEXT I

 ここで10行目を

10 V=32768+1024

に書き換えます。これも全く同じ表示をします。では次はどうでしょうか?

10 V=32768+1024+1024

何も表示されませんね。

10 V=32768+1024+1024+1024

も同様に何も表示されません。どうやらPET2001のマニュアル記述と違い$8800~、$8C00~はイメージではないようです。

 では、回路図を見てみましょう。

スクリーンショット 2019-04-08 20.44.58

 PET2001/PET2001NのROMは、$9000-$BFFFの12Kバイトがユーザ用領域、$C000~$FFFFの16KバイトのうちI/O領域である$E800-$EFFFの2Kバイトを除いた14KバイトがシステムROM領域となります。上記回路はI/O領域である$E800~$EFFFの2Kバイトをジャンパ設定により$8800~$8FFFに移し替えるものです。
 おそらく、PET2001Nからは$9000〜$FFFFの連続した28Kバイトの空間を使いたかったのでしょう。ただしBASICからI/Oの操作はシステムROMをそれにあわせて書き換えればいいのですが、ユーザーのプログラムで直接I/O空間を操作するものはそのままでは動かなくなってしまいます。結局、互換性維持のためこの置き換えは有効にならず、PET2001NではVRAMのイメージがPET2001とは異なるという構成になってしまったようです。実際にはVRAMのイメージ空間に対して読み書きするようなことはやらないので互換性については問題にならなかったようです。

 ついでに後継機のCBM8032についても調べてみましたが、アドレスデコード部分を専用のLSIで担当するようになりわかりませんでした。もしCBM8032のお持ちの方がいらっしゃれば試してみてはどうでしょうか。


 いかがでしたか?


 今どきこんなのを調べてもまったく役に立ちませんね。次回からはもうちょっと役に立つ情報をお伝えしたいと思います。それでは、また。


「2001年宇宙の旅」オリジナル・サウンドトラック
B003DRVG5K 2010-06-01
5つ星のうち4.5
¥ 1,660



PET2001N カセットの修理

 前回の続き。

 さて入手したPET2001N、外付けのカセットテープレコーダ(datassette)も一緒だったのだがBASICからSAVEしてもカセットテープ自体は動いているのだが全然記録されない。困った。

2019PET0403A

  だがしかし。そんなこともあろうかとあらかじめVIC-20(VIC-1001)用のカセットレコーダを事前に用意していたのだよ。
2019PET0403B

 無水アルコールで清掃もする。

2019PET0403C

 こちらはたぶん大丈夫なはずなんだけど、やはりSAVEできない。これはPET2001N本体か?ということで回路図を眺めてみるとMOS6522(VIA)にカセット関連は直結。デジタル入出力をアナログ信号に変換する回路はなく、カセットレコーダ側でやっているようだ。

 ということでMOS6522を修理待ちのPET2001から抜いて交換。そうしたら動いた。素子の故障またはソケット接触不良か。なおMOS6522を外した状態でもBASICは起動します(カセットとユーザポートが使えなくなるだけ)。

 PET2001Nの筐体を開けるとカセット#2の端子がある。ここに対して操作するには SAVE "AAA",2 のようにデバイス番号を指定するとOK。また、カセットテープは巻き始めと巻き終わりの部分には磁性体を塗っていないリーダー部分があるが、PET2001でSAVEする時は最初に充分なギャップがあるため特に意識しなくても大丈夫。さあこれで安心して遊べますね。
 元々ついていたカセットレコーダを接続し、VIC-20用のカセットレコーダでSAVEしたテープを入れるとLOADできる。しかしSAVEはできない。ということでMOS6522周りの故障&カセットレコーダの故障。

2019PET0403D

 で、特定のグラフィックキャラクタを表示した時に文字にゴミが入ったように見える(上記写真は問題なし)。通常のASCII文字だとちゃんと表示されるのだが。

マクセル カセットテープ(10分/10巻パック) UR-10M 10P
B06XWT83FR 2000-01-01
5つ星のうち4.1
¥ 614


記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ