ぴゅう太 (TP1000)
ぴゅう太のスペック
| CPU | TMS9995 10.7MHz |
| VDP | TMS9918 |
| PSG | SN76489 |
| ROM | 32KB(使用領域20KB) |
| RAM | なし(CPU内に256B) |
| V-RAM | 16KB |
画面は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に送ります
コントローラは特定のキーを押したのと同じになります
システム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 へ戻る