ぴゅう太 (TP1000)


ぴゅう太のスペック
CPU TMS9995 10.7MHz
VDP TMS9918
PSG SN76489
ROM 32KB(使用領域20KB)
RAM なし(CPU内に256B)
V-RAM 16KB
TI社のチップで固められた稀有なパソコン。日本で発売された同じようなハードといったら一応TI−99ぐらいしかない。(CPUはTMS9990) 更に独特なニホンゴBASICが異才を放ち、海外ではTomy Tutorという名前で発売されており、 ソフトによってはぴゅう太かTutorかチェックも行ってそれぞれメッセージが変わるソフトもある ロットによってはマスクROMを使用したり、拡張性もあったり以外と本格的なハード(G−BASICだけが冗談で作られたとしか思えない) ワークエリアはなく、CPUの内の16ワード*8バンクの計256バイトとVDPで使われない領域を使用 尚、初代ぴゅう太は少なくとも3種類のバージョンがあるみたいなのですが回路図は当然手持ちのハードのみです。 製造番号はZTST 038581です。(恐らく中期バージョン) 初期は256KBitPROM1個らしく、中期は256KBitマスクROM1個、後期はマスクROM2つになっているみたいです。 (注)TI社のチップはMSBとLSBが通常と逆になっています。(ROMの部分ではアドレス、データバスの並びが逆なのはその為です。 グラフィックモード メニューでGRAPHICを選択するとグラフィックモードになります このときMODキーを押すと 背景作成モード → 全背景作成モード → アニメ作成モード → 背景・アニメ作成モード と状態が変わり4回押すと、背景作成モードに戻ります  背景作成モード     画面は32×24のセル(キャラクタ)に分かれていますが下1/3に   サンプルカラーとパレットがありセルの一部分は隠れています   メインカーソルが隠れている場所に行くと、サンプルカラー、パレットは上に移動し   隠れていたセルが出現します   メインカーソル    ロケット型をしていてセルの位置及び移動方向を示しています    移動はカーソルキーで押し続けると連続して移動します   パレット    パレットは8×8ドットが8倍に拡大されている場所で    スペースキーを押すとメインカーソルの位置のセルが表示されます    同時にパレットの左上にサブカーソルが点滅します   サブカーソル    サブカーソルはパレットの中と左側1列の中を移動が出来ます    移動はカーソルキーでパレットの外(左側)にある時にカラーキーを押すと    パレットの中の横1列がその色になります(サブカーソルは移動方向に1つ進みます)    パレットの中にある場合はカラーキーを押すと、その位置のドットに色がつきます    ただしパレットの横1ライン中2色までしか色をつける事ができません。   カラーキー    カラーキーはサンプルカラーに表示された英数字を使います    カラーキーはサブカーソルが表示されている場合のみ有効    メインカーソルが表示されているときは押したキーの文字を表示します     1=透明 、2=黒  、3=灰色 、4=白     5=淡い黄、6=黄  、7=淡い緑、8=緑     9=濃い赤、0=淡い赤、Q=赤  、W=濃い赤     E=紫  、R=淡い青、T=青  、Y=濃い青   スペースキーでセルを表示したときサンプルカラーYの下に数字が表示されます   これは個々のセルのナンバーを表します。   メインカーソルはパレットにかかれたデータを記憶しています   RTキーを押すことでパレットのデータをセルに書き込みます。  全背景出力モード     全背景出力モードでカラーキーを押すと画面の地色(バックドロップ画面)を変える事が出来ます  アニメ作成モード     画面は背景作成モードと同じようにサンプルカラーとパレットが表示されます   違う所はメインカーソルが無くなり”ABCD”のブロックが4つ表示されます   この”ABCD”のブロックをアニメ(スプライト)として背景と同じように絵を描きます   アニメは4つあり左から順にアニメ(4)、アニメ(3)、アニメ(2)、アニメ(1)とします   最初はアニメ(4)が点滅していますがRTキーを押すごとに順番に点滅していきます   点滅しているアニメはカーソルキーで移動する事が出来ます   アニメはA、B、C、Dの4つに分かれていて、この1つ1つを順番にパレットに呼び出す事によって   背景作成モードと同様に絵を作成します      アニメが点滅しているときにスペースキーを押すと4分の1の”A”の部分がパレットに呼び出されます   スペースキーを押すごとに”A”→”B”→”C”→”D”…と変わります   パレットの中はアニメの色に関係無く透明部分(”0”)は灰色で色のついた部分(”1”)は青で表示   1つのアニメには1色だけしか色をつけられません   アニメには優先順位があり重ねた場合アニメ(4)が一番奥、アニメ(1)が一番手前(手前が優先順位が高い)になります  背景・アニメ出力モード     サンプルカラー、パレットが消え背景とアニメが全面に現れます   カラーキーで画面の地色(バックドロップ画面)の変更   コントローラでアニメを動かす事ができます   コントローラ1でアニメ(4)、コントローラ2でアニメ(2)を操作します   アニメ(4)とアニメ(2)しか操作できませんがアニメ(3)とアニメ(1)は   アニメ(4)あるいはアニメ(2)を重ねることで一緒に操作出来ます   全てのアニメを重ねるとコントローラ1か2のどちらでも操作出来ます   背景・アニメ出力モードでMONキーを押す事でモニターへ飛びます  グラフィックモードのモニター   メニユ−   :画面データの消去を行いメニュー画面に飛びます   GRAPHIC:グラフィックモードに戻ります   GBASIC :G−BASICに飛びます(BASICプログラムは消去される)   セ−ブ    :データをテープにセーブします(ナマエはカナ文字か英字で4文字以内、2文字目からは数字、記号の使用可)   ロ−ド    :データをテープにロードします(ナマエを忘れた場合、名前の入力でオシエテと入力してロードすると表示される)   カクニン   :テープにセーブしたデータの確認を行います(ナマエを忘れた場合、名前の入力でオシエテと入力してロードすると表示される)           他のモードに変えるとカクニンの使用不可    G−BASICモード メニューからG−BASICモードにすると画面がグリーンになり一番下に ”タイプインOK”というメッセージとその下にカーソルが点滅します カーソルは画面一番下の行だけしか移動できませんが、文字や記号が書かれた画面を上下移動で プログラムの自由な位置に移動出来ます カーソルの下を押すとすでにタイプインしたプログラムを1行ずつ下がってきます カーソルの上を押すとすでにタイプインしたプログラムを1行ずつ上げていきます  モニターモードーへ行く方法   タイプイン       :行番号 オワリ   プログラム実行中および後:MONキー   シングルステップ実行中 :RTキーを押しながらMONキー(タイミングが合わないとモニターへ飛ばない)  G−BASICモードのモニター   メニユ−   :画面データの消去を行いメニュー画面に飛びます   GRAPHIC:グラフィックモードに飛びます(BASICプログラムは消去される)   GBASIC :G−BASICに飛びます  (BASICプログラムは消去される)   ジッコウ   :プログラムの実行を行います   ステツプ   :シングルステップを行います   ヘンシユウ  :プログラムの編集を行います   セ−ブ    :データをテープにセーブします(ナマエはカナ文字か英字で4文字以内、2文字目からは数字、記号の使用可)   ロ−ド    :データをテープにロードします(ナマエを忘れた場合、名前の入力でオシエテと入力してロードすると表示される)   カクニン   :テープにセーブしたデータの確認を行います(ナマエを忘れた場合、名前の入力でオシエテと入力してロードすると表示される)           他のモードに変えるとカクニンの使用不可  プログラムの制限   行番号は1〜9999までで行番号のすぐ後はスペースを1文字の空白が必要になります   1つの命令文の長さは行番号+空白を含めて31文字までです   プログラムの行数は約100ステップです  扱える数値   0〜65535の整数    演算結果が65535を超えると0から加算された値として表示されます     演算結果    表示     65536   0     65537   1     65538   2    演算結果が0よりも小さくなった場合は、65535から順次減算されます     演算結果    表示        −1   65535        −2   65534        −3   65533   −32768〜+32767の負の数    演算結果が+32767を超えると−327678から1つずつ加算された値として表示されます     演算結果    表示     32768  −32768     32769  −32767     32770  −32766    また演算結果が−32768より小さくなった場合は+32767から1つずつ減算された値として表示されます     演算結果    表示    −32769   32767    −32770   32766    −32771   32765   正と負のまたがる場合は加減計算しかできません   演算結果に少数点を含む数値は少数点以下は切り捨てになります  定数と変数   数値定数 0〜65535の整数   文字定数 8文字   変数名  最大4桁(アルファベット、2文字目以降は数字の使用可)        文字定数は最後に$をつける   1つのプログラムで数値変数と文字変数で同じ名前は使えません    AとA$、ABとAB$等の使用不可   1つのプログラムの中で使用出来る変数の数は最大47個までです  演算の優先順位   1:*と/   2:+と− BASICの命令   行番号 シキ 変数=定数          変数          式    代入を行います    シキの文字はタイプインの時は省略可ただしリストを取るとシキの文字は出現する)   行番号 カケ セル番号,定数          変数          文字定数    画面に文字を書きます    セル番号は1〜761(範囲外だと表示されません)    数値の範囲は2種類あります         0〜 65535の範囲の場合 カケ セル番号,変数    −32768〜+32767の範囲の場合 カケ セル番号,+変数    セル番号対応図        行番号 オワリ    プログラムの宣言終了でモニターへ飛びます   行番号 行番号ニイケ    指定した行番号に飛びます   行番号 マワレ”トジル”の行番号 変数=初期値カラ最終値[カンカク[間隔値]        |   行番号 トジル    変数に初期値から最終値までの間の値を間隔値ごとにきざんで代入を行います    マワレの文からトジルの文にはさまれたプログラムが数値の値が変わるたびに繰り返し実行されまsy    マワレの後には必ずトジル文の行番号が必要    初期値、最終値、間隔値には1〜65535の整数のみ変数の使用不可    カンカクを省略すると間隔値は1になる   行番号 モシ 条件式ナラバ 行番号ニイケ    条件式判断を行います    値が指定した条件を満たす場合はナラバの後の>行番号に飛びます    値が指定した条件を満たさない合は次の行番号に行きます     条件式に使われる関係演算子      等しい      =      より小さい    <      より大きい    >      小さいか等しい <=      大きいか等しい >=      等しくない   <>   行番号 トマレ    プログラムの実行が一時停止されます    実行を続行させる場合はRTキーを押します   行番号 行番号ヲヨベ    サブルーチンを呼びます   行番号 カエレ    サブルーチンから帰ります   行番号 タイマ番号 オン    タイマーの使用を行います    タイマの番号は1〜7で7つのタイマがあります    タイマーは0.01秒〜40秒の0.01秒ごとカウントです     またタイマーは条件式判断文でチェック出来ます     モシ タイマ番号=条件式ナラバ 行番号ニイケ      ただし一度条件式判断文でチェックを行い条件式を満たした場合      タイマーは0になり再びカウントされます   行番号 オト 種類    種類     イチオン ピッという音(一般キーのタイプの音)     ニオン  ブッという音(エラーの音)     サンオン ピロンという音(メニューでRTキーを押したときの音)     シオン  バーンという音    4種類の音が出力出来ますが続けて実行すると最後に指定した音しか出ません   行番号 変数=ランスウ(n)     n=最大値 1〜65535(ただし768を超えると上の方に偏る傾向があります)    0〜最大値の乱数を発生します   行番号 アフレ オン    演算結果でオーバーフローを起こしたときにプログラムを停止させRTキーを押すとモニターへ飛びます    行番号 アフレ オフ    演算結果でオーバーフローを起こしてもプログラムは停止ないようにします    演算結果で−32768〜+32767の範囲(負と正にまたがる計算)では    アフレ オンだと邪魔になるのでアフレ オフを使用します    G−BASICの最初はアフレ オフの状態になります   行番号 セル(n)=セル(m)    セル番号mをセル番号nの絵柄にコピーします    n、mは定数、変数、式   行番号 アニメn=イチ(y,x)     n=1〜4 アニメの番号     y=Y座標 1〜192(256を超えると256を引いた数値)     x=X座標 1〜256(256を超えると256を引いた数値)    アニメ(スプライト)の左上を指定した座標で表示します    表示範囲はY座標 1〜192、X座標 1〜256ですが    アニメを表示したくない場合がY座標を200辺りにする   変数=ヨコ(アニメn)     n=1〜4 アニメの番号    アニメ(スプライト)の位置(X座標)を調べます   変数=タテ(アニメn)     n=1〜4 アニメの番号    アニメ(スプライト)の位置(X座標)を調べます   行番号 キイn 変数1,変数2       n 1=コントローラ1         2=コントローラ2     変数1 方向キーの状態          0=何も押されていない          1=上          2=右上          3=右          4=右下          5=下          6=左下          7=左          8=左上     変数2 シュートキーの常態          0=何も押されてない          1=LEFT          2=RIGHT    コントローラの状態を変数1と変数2に送ります    コントローラは特定のキーを押したのと同じになります
CPU CPUはTI社のTMS9995を使用クロックは10.7MHz このクロックはVDPと共用で使われています。 システムROM CRC:7553bb6a 256KBit マスクROMみたいです。(実際に256KBitとして読む事ができます。) I/O周辺 CMT−IFはトーンバースト方式です。 C1-35pを1にする事でC1-42p-45pを使用出来ます。(何も繋がっていないときはプルダウンで0になります) PSG SN76489を使用、クロックは3.759MHzでVDPから出力されるCPUCLKからきています。 VDP TMS9918を使用、CPUCLK端子はPSGのクロックに使用しています。 キーボード、ジョイパッド周り CRUINでシリアルでキーデータを読みこんでいます。 J−2はキーボード、J−3はジョイパッドになり、同じようにアクセスしてスキャンします。 A9〜A11で読むデータのセレクト(Y0〜Y7)、A12〜A14で読むビットのセレクトになります。 単純に全てのキーを読もうとすると256回設定して読む事になります。 キーボード かなり見づらいですが横のラインがデーターで縦のラインがセレクトです。 キーマトリクス コネクタ J−1はカートリッジ端子(偶数が前)、C-1は背面にある拡張端子(奇数が上)、J−2はカセットIFです 端子名はとりあえず、つけてみただけです。 C1-47pを0にすると本体内のシステムROMの使用禁止 入力:C1-35p,36p,47p 出力:C1-19p,38p,39p,40p,41p,42p,43p,44p,45p J1-21p ジョイパッド TP1101 ゲームカートリッジ (64KBit)回路図 手持ちの全てのソフトはこうなっていました。初期のロットでは2732を2つ使っているのもあるそうです。 尚、ROMは64KBitのマスクです。(データバスとアドレスバスは通常のROMと同じ表記にしています。) 又、ソフトによっては本体が国内仕様か海外仕様かチェックしてメッセージが変わるのもソフトもあります。 メモリマップ 00000H−04FFFH:メモリ システム 05000H−07FFFH:メモリ 未使用 08000H−0BFFFH:メモリ ROMカートリッジ 0C000H−0DFFFH:メモリ ??? 拡張ROM 0E000H:I/O VDP データ 0E002H:I/O VDP レジスタ 0E200H:I/O SN76489 0E400H:不明 J-1 21p(負) 0E600H:不明 C-1 38p(負) 0E800H:不明 C-1 39p(負) 0EA00H:不明 C-1 40p(負) 0EC00H:不明 C-1 41p(負) 0EC00H−0EC7EH:I/O KEY BORAD SELECT | 1,1,1,0 | 1,1,0,0 | -,KEY SELC,KEY SELB,KEY SELA | DATA SELC,DATA SELB,DATA SELA,- | 0ED00H:I/O CMT IN 0EE00H:I/O CMT OUT Bit0 0EE20H:I/O CMT OUT Bit1 0EE40H:I/O CMT OUT Interrupt On 0EE60H:I/O CMT OUT Interrupt Off 0F000H−0F0FBH:CPU INTERNAL RAM 0FFFAH−0FFFBH:CPU INTERNAL DECREMENTER 0FFFCH−:CPU NMIベクトル C1-35Pを1にしている場合。 00000H:C1-42p=0 04000H:C1-43p=0 08000H:C1-44p=0 0C000H:C1-45p=0 システムの先頭 00000:F0 A0 02 54 F0 A0 02 54 F0 A0 02 54 F0 C0 16 DA 00010:F0 7A 09 5E F0 C0 05 5A EF EC 09 76 EF EC 09 70 00020:04 60 09 F8 04 60 0A 16 04 60 0A 2A 04 60 0A 32 00030:04 60 0A 50 04 60 0A 8C 04 60 0A 3E 04 60 0A 7A リセット(電源ON)されるとまず、00000HのWP,PCを参照します。 この場合、WP=0F0A0H、PC=00254Hになります。 ゲームROMの先頭に055H,055Hがあり、その後の4バイトが何かしらのアドレスのようです。(恐らくWP、PC) システムは08000Hから055H、055Hがあればカートリッジの選択が出来る様になります。 ザウルスランド 08000:55 55 06 A0 89 02 02 07 03 00 C8 07 F0 1C 06 A0 08010:01 98 02 09 05 00 06 A0 01 FC 02 02 88 B8 02 09 ターピン 08000:55 55 06 A0 01 98 04 CC 06 A0 01 C0 02 09 0C 00 08010:06 A0 01 FC 06 A0 00 64 06 A0 00 28 02 01 84 70 スクランブル 08000:55 55 04 60 86 E4 00 00 00 00 00 00 00 00 00 00 08010:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Home へ戻る