1984年3月29日木曜日

[PCゲーム] NEC PC-8801,アルゴー,呉ソフト製作~カラフルな3D-RPG



[PCゲーム] NEC PC-8801,アルゴー,呉ソフト製作~カラフルな3D-RPG
アルゴー(PC88版)
ゲーム名 アルゴー(PC88版)
メーカー名 呉ソフト
対応ハード PC8801SR以降
ジャンル ロールプレイング
■ストーリー
ギリシャの英雄イアソンが王になる資格を得る為、眠らずの竜が守ると言う、黄金の羊の毛皮を求めて旅に出るストーリーのRPGです。
神の助けを借り、地上、空中、水中、地下の世界を冒険します。
当時としてはカラフルな3D迷路は斬新でした。
一部戦闘モードでデカキャラの敵とアクションで戦う要素もありました。
シナリオの難易度は低いほうですが、デカキャラの戦闘が一部難易度が高いと思います。
3D迷路はマップが手に入るので、マッピングするほどではありませんが、一部のステージでは手に入れるまでが大変です。
PC88版では、ゲームバランスに問題も多かったので、次に発売したPC98版では大幅に内容をアレンジして、より良くなってます。
後、PC88版の一部攻略HPを作りました。
PC98版の紹介もしています。

おやぢのパソコンゲーム調査隊
http://oyajinogame.webcrow.jp/oyaji.html

MADの芸夢狂館
http://pc88mad.webcrow.jp/
http://www3.to/88mad













水中ステージのマップが広すぎて分からない?
壁の中の店にマップが売ってます。
提供マップに書いてあります
Poseidonの居場所が分からない?
ポセイドンは水中ステージの色々な場所にいますので、探して見て下さい。
提供マップに居場所がチェックしてあるみたいですね。
ゴールドキーを取ったら直ぐ地上に戻り、直ぐ近くにあるゴッドアーマーを取りましょう。
ヒントはここまでです。
後は分からない事があれば掲示版にでも書いて下さい。
最後の神殿のマップは存在しないらしいです。
水中ステージまで来ればクリアはもうじきです!
海底神殿のマップもあります、殆ど全てのマップです。
基本テク
前進する時は8キーじゃなくて5キーを使え!
5キーで前進すれば壁に当たった時、隠し扉があれば開いてくれる。
空中ステージで雲も5キーですり抜けられる雲がある。

おやぢのパソコンゲーム調査隊
http://oyajinogame.webcrow.jp/oyaji.html

MADの芸夢狂館
http://pc88mad.webcrow.jp/
http://www3.to/88mad










海底神殿のマップ


























































■NEC PC-8801SR裏技
タイトル 裏技
蒼き狼と白き牝鹿 V1モードのゲームだがV2モードで起動すると自国に敵が攻めてきたとき 敵が攻め込んだ場所から動かない。
アルゴー ショップに入って数量を入力するもの(フード等)を買うときに数量を入力せずに[Return]のみ押すと買ったものが250個になる。
アルゴー DATA LOADをする時に"DATAばんごうは? 0-9"と聞いてきたらディスクAをドライブ2に入れ[0]を押す。
"0をLOADしました" と出たらディスクAをドライブ1に戻しドライブ2にディスクBを入れ[Return]を押すとエンディングが始まる。
イース Bディスクをセットして[Y]+[S]を押しながら起動するとイース未使用曲集が始まる。
ヴェイグス N88-BASICのシステムディスクで起動して ドライブ1にディスク1をセット、run "SDV.BAS"で隠しゲームが始まる。
ヴェイグス ディスク3 or ディスク4で起動して[B]+[M]+[N]+[V]+[<]+[>]で開発室からのメッセージが出る。
ヴェイグス [V]+[R]+[F]を押しながら起動すると敵が出なくなり高速スクロールする。[I]+[Y]+[A]を押しながら起動するとゲームが簡単になる。[A]+[N]+[O]を押しながら起動すると IYAよりさらに簡単になる。[I]+[W]+[A]を押しながら起動するとシ-ルドの減り方が少なくなる。[S]+[U]+[M]を押しながら起動するとパワーユニットの補給が少なくなる。
エルスリード [S]を押しながら起動すると 隠れCGが見れる。
エルスリード [ESC]を押しながら起動するとハイスコアを0にできる。またタイトル画面で音楽がなっていないとき[CTRL]+[M]をしばらく押すと各面の音楽が聴ける。
クレイズ [ESC]を押して[C]+[R]+[A]+[Z]+[E]+[ESC]を押す。その後 [GRPH]+[C]でカード、
[GRPH]+[E]でエネルギー、[GRPH]+[M]でミサイル、[GRPH]+[P]でパイナップルが Fullになる。
ザ・スキーム 起動するとき [H]+[N]+[space]でミュージックモード。
ザナドゥ 名前を @Yoshio.Kiya@ で始めるとGold 600万、武器 DragonSlayer、魔法 Deathの最高の状態ででスタートできる。
ザ・リターン・オブ・イシター パスワード入力時KIの名前を MISS 、GILは適当な名前を入力してパスワードを AAAAAA とすると最初から48のROOMを選べ魔法もたくさん使える。
ジャイロダイン スタート時に[HELP]でステージセレクトが可能。[8]or[2]で選択。
シルフィード タイトル画面(SILHEEDのタイトルが出ている画面)で以下の数字を入力し[Return]を押すとそのエリアからスタート。自機もそのエリア並にパワーアップしている。
エリア 6 04134507
エリア11 88016800
エリア16 340638308
エリア20 308153101
シルフィード デモ中に[ESC]を押して[CTRL]+[F5]でミュージックモード。
シルフィード N88-BASICのシステムディスクで起動して ディスク2のFILESをとると出てくるファイルはLoadして実行できる隠しゲーム。
"SILPHE.ED2" "XACALI.TE"


1984年3月26日月曜日

[販促品] クリア認定カード,ライセンスカード

[販促品] クリア認定カード,ライセンスカード
◆NEW ラリーX  ライセンスカード
以前のラリーXではまったく宣伝していなかったのに、NEWラリーXになり、このライセンスカードや下敷きなどを配布。
キャロットやナムコランドで積極的に製品のアピールをしていた。
ライセンスカードはAライセンスでも15万点でゲットできるので、ちょっとやりこんだ人なら簡単に全部揃えることができた。
下敷きは誰でも貰うことができたのであっという間にお店から無くなったが、学校で使ううちに落として割ったり折り曲げてしまった人も多いはず。(笑)
◆チャンピオンシップ ロードランナークリア認定カード
こちらはハドソンがファミリーコンピュータ用ソフトとして発売。同時に認定カードがもらえる早解きキャンペーンを実施していました。
しかし、受付開始日よりも早く解いてしまい、数日悩んで受付開始5日前にハドソンへ送付。
結果、102番のカードが私のもとへ。あの時悩まずすぐに送っていたら2ケタ台の番号になっていたかも...(謎)
◆タイトー プレイメイトクラブ 会員証
この時期のタイトーって似たようなカードを何種類も作っていたような...(苦笑)。
ちなみに、このカードを持っていても大した特典は無かったはず。しかも紙製だし...
◆スペースインベーダー ライセンスカード
こちらもプレイメイトクラブ会員証と同様、紙でできたライセンスカード(笑)。
スコアが7000点~9990点でこのカードが貰えました。
他に、Aクラス(10000~29990点)とS.Aクラス(30000点以上)もあるらしいですが、こちらは見たことがありません。(汗)
◆セガ・体感ゲーム大会ランキング認定カード
セガと週刊ヤングジャンプ(集英社)共同の企画による世界規模のゲーム大会で、正式名称は
「世界選抜SEGAゲームチャンピオンシップ」
らしい(笑)。カードを見ておわかりの通り私は国内2203位でした(苦笑)。
ちなみに、これより上の認定カード(世界大会)は残念ながら見たことがありません。(^^ゞ
◆ドライバーズ ライセンス 表彰状(笑)
タイトーの直営店以外ではあまり見かけることが無かったので遊んだ記憶のある方は意外に少ないのではないでしょうか?
画像を見てわかるかと思いますが、このゲームは教習所などで受ける学科試験の問題を三択で出題、正解を選びながらオールクリアを目指していくという内容。私がこのゲームを見た時はまだ中学生くらいだったので、ゲームの内容がとても難しく数回遊んでやめてしまいました。ちなみにこの表彰状は当時通い詰めていたゲーセンの店員さんが「(機械も無いし)もう要らないから」といって私にくれました。
◆アメリカ横断 ウルトラクイズクリア認定証
日本テレビの超有名番組がゲームになって登場!
もちろん成田空港のジャンケンもあります(笑)
このゲームのプレイスタイルもドライバーズライセンスと同じ三択から正解を選んでいく方式。
数ある難関を突破して最終目的地であるニューヨークを目指します。
しかしこのゲーム、クイズもそれなりに難しいのですが、なんといってもジャンケン最強!(爆)
成田で涙を飲んだ人が全国に多数いたはず。
デモ画面のジャンケンで遊べるのは有名な話ですね。

CHANNEL 084
http://www.geocities.jp/hiropong_9372/goods/goods.html
http://www.geocities.jp/hiropong_9372/ng_vol03.html










NEW ラリーX  ライセンスカード
チャンピオンシップ ロードランナークリア認定カード
タイトー プレイメイトクラブ 会員証
スペースインベーダー ライセンスカード
セガ・体感ゲーム大会ランキング認定カード
ドライバーズ ライセンス 表彰状
アメリカ横断 ウルトラクイズクリア認定証









NEC PC-8801ゲーム,日本マイコン学院製作,


■NEC PC-8801ゲーム,日本マイコン学院製作,
いんぷっと学習シリーズ NEC PC-8801用 教育
地雷をさけろ NEC PC-8801用 アクション
ルパン4世 NEC PC-8801用 アクション
南米ワニ川わたり NEC PC-8801用 アクション
ジャングル NEC PC-8801用 アクション
潜水艦 NEC PC-8801用 アクション
サイドアタック NEC PC-8801用 アクション
プランクトン戦争 NEC PC-8801用 アクション
がんばれ与作 NEC PC-8801用 アクション
メタモルフォーシィス NEC PC-8801用 パズル
シーウルフ NEC PC-8801用 アクション
シーウルフ NEC PC-8801用 アクション
メタモルフォーシィス NEC PC-8801用 パズル

















NEC PC-8801ゲーム,日本マイコン学院製作,
◆いんぷっと学習シリーズ
1年英単語(プリンス)1年英単語(プリンス)いんぷっと学習シリーズ
1年英単語(プリンス)1年英単語(プリンス) Dempa:DP-3766~3776 (小学生向けパッケージ)
Dempa:DP-3787~3818
→ いんぷっと学習シリーズ
2in1シリーズ
◆アトランティス
画像なし
2in1シリーズ G-1101A
◆地雷をさけろ
2in1シリーズ G-1101B,G-1119B
◎[Oh!PC:1983.3「Land Mine」]
◆ルパン4世
タイトル画面ゲーム画面 2in1シリーズ G-1102A,G-1119A
◎[Oh!PC:1982.10]
◆南米ワニ川わたり
2in1シリーズ G-1102B
◎[Oh!PC:1982.10]
◆ピラミッド
画像なし
2in1シリーズ G-1103A
◆ネコとネズミ
画像なし
2in1シリーズ G-1103B
◆グローイング
画像なし
2in1シリーズ G-1104A
◆マジックスオード
画像なし
2in1シリーズ G-1104B
◆SL
PCG対応
2in1シリーズ G-1105A
◎[Oh!PC:1983.2]
例のサインをコメントアウトしてあるのでタイトルが一瞬しか表示されない
◆ジャングル
2in1シリーズ G-1105B,G-1120B
◎[Oh!PC:1983.2]
対戦
◆逆襲地下帝国
画像なし
2in1シリーズ G-1106A
◆チェイス・アラウンド
画像なし
2in1シリーズ G-1106B
◆ザ・ディープ
画像なし
2in1シリーズ G-1107A,G-1120A
◆クレージーストーン
画像なし
2in1シリーズ G-1107B
◆潜水艦
タイトル画面ゲーム画面 2in1シリーズ G-1108A,G-1121A
◎[Oh!PC:1982.11]
◆サイドアタック
2in1シリーズ G-1108B
◎[Oh!PC:1982.11]
例のサインはコメントアウトしてあるようです
◆いそげ与作
画像なし
2in1シリーズ G-1109A
◆高射砲
画像なし
2in1シリーズ G-1109B,G-1121B
◆カークラッシュ
画像なし
2in1シリーズ G-1110A,G-1122A
◆難波のエイリアン
画像なし
2in1シリーズ G-1110B
◆サーチャー
画像なし
2in1シリーズ G-1111A
◆単語当てゲーム
画像なし
2in1シリーズ G-1111B
◆風船
画像なし
2in1シリーズ G-1112A
◆プランクトン戦争
2in1シリーズ G-1112B,G-1124B
◎[Oh!PC:1983.3「プランクトン」]
◆灰になるまで
画像なし
2in1シリーズ G-1113A
◆ダイヤモンド作戦
画像なし
2in1シリーズ G-1113B,G-1122B
◆大脱走
画像なし
2in1シリーズ G-1114A
◆コンクリートブロック
画像なし
2in1シリーズ G-1114B
◆がんばれ与作
2in1シリーズ G-1115A,G-1123A
◆山火事ゲーム
画像なし
2in1シリーズ G-1115B
◆スターを守れ
画像なし
2in1シリーズ G-1116A
◆サンド・ウォーズ
画像なし
2in1シリーズ G-1116B
◆潜水艦対潜水艦
画像なし
2in1シリーズ G-1117A,G-1124A
◆きつつきペッカー
画像なし
2in1シリーズ G-1117B
◆シティ・シューティング
画像なし
2in1シリーズ G-1118A
◆トランポリン
画像なし
2in1シリーズ G-1118B,G-1123B
クイックアドベンチャーシリーズ
◆アイスモンスター
画像なし
クイックアドベンチャーシリーズ G-1151
メタモルフォーシィス
クイックアドベンチャーシリーズ G-1152
◆ブラックスネーク
画像なし
クイックアドベンチャーシリーズ G-1153
◆スカイシップ
画像なし
クイックアドベンチャーシリーズ G-1154
◆シーウルフ
クイックアドベンチャーシリーズ G-1155
◆ポットメーカー
画像なし
クイックアドベンチャーシリーズ G-1156
業務パッケージシリーズ
調査中

OUT of STANDARD
http://www.geocities.jp/upd780c1/n80/frame.html





■日本マイコンシステム「2in1シリーズ」カセットテープ組み合わせ
品番 A面 B面
G-1101 ★アトランティス ☆地雷をさけろ [G-1119B]
G-1102 ☆ルパン4世 [G-1119A] ★南米ワニ川わたり
G-1103 ★ピラミッド ★ネコとネズミ
G-1104 ★グローイング ★マジックスオード
G-1105 ★SL☆ジャングル [G-1120B] -
G-1106 ★逆襲地下帝国 ★チェイス・アラウンド
G-1107 ☆ザ・ディープ [G-1120A] ★クレージーストーン
G-1108 ☆潜水艦 [G-1121A] ★サイドアタック
G-1109 ★いそげ与作 ☆高射砲 [G-1121B]
G-1110 ☆カークラッシュ [G-1122A] ★難波のエイリアン
G-1111 ★サーチャー ★単語当てゲーム
G-1112 ★風船 ☆プランクトン戦争 [G-1124B]
G-1113 ★灰になるまで ☆ダイヤモンド作戦 [G-1122B]
G-1114 ★大脱走 ★コンクリートブロック
G-1115 ☆がんばれ与作 [G-1123A] ★山火事ゲーム
G-1116 ★スターを守れ ★サンド・ウォーズ
G-1117 ☆潜水艦対潜水艦 [G-1124A] ★きつつきペッカー
G-1118 ★シティ・シューティング ☆トランポリン [G-1123B]
G-1119 ルパン4世 [G-1102A]  地雷をさけろ [G-1101B]
G-1120 ザ・ディープ [G-1107A]  ジャングル [G-1105B]
G-1121 潜水艦 [G-1108A]  高射砲 [G-1109B]
G-1122 カークラッシュ [G-1110A]  ダイヤモンド作戦 [G-1113B]
G-1123 がんばれ与作 [G-1115A]  トランポリン [G-1118B]
G-1124 潜水艦対潜水艦 [G-1117A]  プランクトン戦争 [G-1112B]


[MEMO]
★:重複していない作品     
☆:重複あり (★とセット&初出)
・G-1119 以降には新作が含まれない (再録作品が完全に同じか未確認)
・Oh!PC 1982.6 広告
アセンブラROM等もあり





1984年3月21日水曜日

[ソフト] ファミコン・ゲーム,1984.1.1~1984.9.7

[ソフト] ファミコン・ゲーム,1984.1.1~1984.9.7
1984.1.1~1984.9.7
◆テニス
任天堂
1984.1.14発売
4500円
カートリッジ
・のちのち、スーマリの9-1を出すのに活躍。(ふくろ~)
・審判はマリオなのか。やっぱマリオくせーなあ。(吉ダム)
◆ピンボール
任天堂
1984.2.2発売
4500円
カートリッジ
・唯一うちの父がプレイできたゲームです。(ふくろ~)
・面白かったな~。ポケモンピンボールも2段フリッパー欲しかった。(吉ダム)
◆ワイルドガンマン
任天堂
1984.2.18発売
4500円
カートリッジ
・当然ホルスターなど使用しなかったなあ。そりゃー早撃ちだよな。(ふくろ~)
・飽きてくると銃を画面に真近にして撃ってた・・・あーあ。(吉ダム)
◆ダックハント
任天堂
1984.4.21発売
4500円
カートリッジ
・犬がケンケンをほうふつとさせる。昔の任天堂っぽさ抜群。(ふくろ~)
・光線銃シリーズでは一番はずれくさい。ま、遊べるけど。(吉ダム)
◆ ゴルフ
任天堂
1984.5.1発売
4500円
カートリッジ
・ゴルファーはマリオなのかなあ。そうすると2Pの茶色いのは誰?(ふくろ~)
・子供の時分でもプレイできた。素晴らしー。(吉ダム)
◆ホーガンズアレイ
任天堂
1984.6.12発売
4500円
カートリッジ
・おまけの、缶撃ちゲームのほうが面白いと断言する!(ふくろ~)
・どっちかといえば何となく海外向けな雰囲気。(吉ダム)
◆ファミリーベーシック
任天堂
1984.6.21発売
14800円
カートリッジ/キーボード付
・ファミマガの「プログラマーたけし」、読んでたなあ。(ふくろ~)
・色々本読みながら、やってみたけどお子様にはムリでしたー(吉ダム)
◆ドンキーコング3
任天堂
1984.7.4発売
4500円
カートリッジ
◆ドンキー3
・CMも無く、唐突に発売された記憶がある。自信無かったのかなあ。(ふくろ~)
・この舞台設定が理解不能すぎ。ドンキーコングあとづけ説。(吉ダム)
◆ナッツ&ミルク
ハドソン
1984.7.28発売
4500円
カートリッジ
◆ナッツ&ミルク
・実はナッツというのは敵のほう。まぎらわしいな。(ふくろ~)
・絵の感じやファイアーボールなど、かなり任天堂作品お手本にしてます。(吉ダム)
◆ロードランナー
ハドソン
1984.7.31発売
4500円
カートリッジ
◆ロードランナー
・異様に段階が小刻みなスピード調整機能がすごいぜ。(ふくろ~)
・初めて画面が横にスクロールしたのでそれだけでも新鮮だった。(吉ダム)

FamilyComputer Database
http://www.geocities.jp/f_tamakoku/famicon/database/databaseframe.htm







テニス
ピンボール
ワイルドガンマン
ダックハント
ゴルフ
ホーガンズアレイ
ファミリーベーシック
ドンキーコング3
ナッツ&ミルク
ロードランナー















1984年3月20日火曜日

[機器][TVゲーム] TOMY ぴゅう太(TP1000)でBASICプログラム

[機器][TVゲーム] TOMY ぴゅう太(TP1000)でBASICプログラム
ぴゅう太(TP1000)
密かに、くろーびす氏の協力に感謝
TI社のチップで固められた稀有なパソコン
日本で発売された同じようなハードといったら一応TI-99ぐらいしかない(CPUはTMS9990)
更に独特なニホンゴBASICが異才を放ち、海外ではTomy Tutorという名前で発売されており、
ロットによってはマスクROMを使用したり、拡張性もあったり以外と本格的なハード(G-BASICだけが冗談で作られたとしか思えない)
ワークエリアはなく、CPUの内の16ワード*8バンクの計256バイトとVDPで使われない領域を使用
尚、初代ぴゅう太は少なくとも3種類のバージョンがあるみたいなのですが回路図は当然手持ちのハードのみです。
製造番号はZTST038581です。(恐らく中期バージョン)
初期は256KBitPROM1個らしく、中期は256KBitマスクROM1個、後期はマスクROM2つになっているみたいです
(注)TI社のチップはMSBとLSBが通常と逆になっています。(ROMの部分ではアドレス、データバスの並びが逆なのはその為です

Enri's HP
http://www43.tok2.com/home/cmpslv/



■機種による文字化け
左がぴゅう太、右がぴゅう太Jr.による画面となります
カナ文字か英小文字の定義がされているか機種によって違い
文字化けが起こる問題が生じます
その為後期のソフトになると英大文字表記になり文字化けの問題を回避しています
ただしプレイヤー選択ルーチンはBIOSコールで行う為
メッセージ表示が機種ごとに変化します
グラフィックモード
メニューで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キーを押すことでパレットのデータをセルに書き込みます。
全背景出力モード
全背景出力モードでカラーキーを押すと画面の地色(バックドロップ画面)を変える事が出来ます

Enri's HP
http://www43.tok2.com/home/cmpslv/





















■アニメ作成モード
画面は背景作成モードと同じようにサンプルカラーとパレットが表示されます
違う所はメインカーソルが無くなり”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モード、
グラフィックモードのモニターからGBASICコマンドで
G-BASICを呼び出すと
画面一番下に”タイプインOK”というメッセージとその下にカーソルが点滅します
カーソルは画面一番下の行だけしか移動できませんが、文字や記号が書かれた画面を上下移動で
プログラムの自由な位置に移動出来ます
カーソルの下を押すとすでにタイプインしたプログラムを1行ずつ下がってきます
カーソルの上を押すとすでにタイプインしたプログラムを1行ずつ上げていきます
モニターモードーへ行く方法
タイプイン:行番号オワリ
プログラム実行中および後:MONキー
シングルステップ実行中:RTキーを押しながらMONキー(タイミングが合わないとモニターへ飛ばない)
G-BASICモードのモニター(先頭4文字で識別可)
メニユ-:画面データの消去を行いメニュー画面に飛びます
GRAPHIC:グラフィックモードに飛びます(BASICプログラムは消去される)
GBASIC:G-BASICに飛びます(BASICプログラムは消去される)
ジッコウ:プログラムの実行を行います
ステツプ:シングルステップを行います
ヘンシユウ:プログラムの編集を行います
セ-ブ:データをテープにセーブします(ナマエはカナ文字か英字で4文字以内、2文字目からは数字、記号の使用可)
ロ-ド:データをテープにロードします(ナマエを忘れた場合、名前の入力でオシエテと入力してロードすると表示される)
カクニン:テープにセーブしたデータの確認を行います(ナマエを忘れた場合、名前の入力でオシエテと入力してロードすると表示される)
EMENU:不明
EBASIC:不明
テレホン:不明
EDIT:不明
DEBUG:不明
ソノタ1:不明
他のモードに変えるとカクニンの使用不可

Enri's HP
http://www43.tok2.com/home/cmpslv/



























■プログラム
プログラムの制限
行番号は1~9999までで行番号のすぐ後はスペースを1文字の空白が必要になります
1つの命令文の長さは行番号+空白を含めて31文字までです
プログラムの行数は約100ステップです
扱える数値
0~65535の整数
演算結果が65535を超えると0から加算された値として表示されます
演算結果表示
655360
655371
655382
演算結果が0よりも小さくなった場合は、65535から順次減算されます
演算結果表示
-165535
-265534
-365533
-32768~+32767の負の数
演算結果が+32767を超えると-327678から1つずつ加算された値として表示されます
演算結果表示
32768-32768
32769-32767
32770-32766
また演算結果が-32768より小さくなった場合は+32767から1つずつ減算された値として表示されます
演算結果表示
-3276932767
-3277032766
-3277132765
正と負のまたがる場合は加減計算しかできません
演算結果に少数点を含む数値は少数点以下は切り捨てになります
定数と変数
数値定数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
n1=コントローラ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.738MHz(内部2.6845MHz)
このクロックはVDPと共用で使われています
システムROMCRC:7553bb6a
256KBitマスクROMみたいです。(実際に256KBitとして読む事ができます。)
I/O周辺
CMT-IFはトーンバースト方式です
キーボード、コントローラ周り
CRUINでシリアルでキーデータを読み込んでいます
J-2はキーボード、J-3はコントローラ端子になりキーボードとデータが重なります
A9~A11で読むデータのセレクト(/Y0~/Y7)
A12~A14で読むビットのセレクトになります
キーマトリクス
コントローラTP1101
PSG
SN76489を使用、クロックはVDPから出力されるCPUCLK3.7597MHz
VDP
TMS9918を使用、CPUCLK端子はPSGのクロックに使用しています。
コネクタ
端子名は、とりあえずつけてみただけです
J-1はカートリッジ端子(偶数が前)
C-1は背面にある拡張端子(奇数が上)
J-2はカセットIF
/KILLSROMを0にすると本体内のシステムROMの使用禁止
SELEXM1=拡張メモリを選択
0=本体、カードリッジメモリ、I/Oを選択
/EXM00拡張メモリ>0000->3FFF
/EXM40拡張メモリ>4000->7FFF
/EXM80拡張メモリ>8000->BFFF
/EXMC0拡張メモリ>C000->FFFF
/EXP0>E600->E7FFROM?E600:55のチェックあり
/EXP1>E800->E8FFプリンタ用I/Oポート
/EXP2>EA00->EBFF
/EXP3>EC00->EDFF???キーボードポート
/CROM0>8000->BFFFカートリッジメモリ
/CROM1>E400->E5FFカートリッジI/Oポート用?
/IOPORT1=>0000->BFFFアクセスもしくは外部メモリアクセス
0=>C000->FFFFアクセス(I/Oポート)
ゲームカートリッジ(64KBit)回路図
手持ちの全ての64KBitソフトはこうなっていました(初期のロットでは2732を2つ使っているのもあるそうです)
尚、ROMは64KBitのマスクです。(データバスとアドレスバスは通常のROMと同じ表記にしています)
メモリマップ
>0000リセット
WP=>F0A0にして>0254へジャンプします
>0004
WP=>F0A0にして>0254へジャンプします
>0008
WP=>F0A0にして>0254へジャンプします
>000C内蔵タイマベクタ
DATA>F0C0
DATA>16DA
>0010
DATA>F07A
DATA>095E
>0014
DATA>F0C0
DATA>055A
>0018CPURAM>F00C->F083のクリア
入力:WP=>EFEC
CPU内蔵RAM>F00C->F083を>00で埋めます
BLWP命令でコールします
>001CCPURAM>F00C->F081のクリア
入力:WP=>EFEC
CPU内蔵RAM>F00C->F081を>00で埋めます
BLWP命令でコールします
>0020VDP初期化
入力:R8=VDPデータアドレス
出力:R0=VDPステータス(Bit0-7)
使用:R9、R10、R11、R12
>F070Bit6
VDPのR#00-#08までの設定を行います
>0024VDPレジスタの設定
入力:R9=設定データ上位=データ、下位=レジスタ
出力:R0=VDPステータス(Bit0-7)
使用:R10、R11
>F070Bit6
VDPのレジスタの設定を行います
>0028VRAMオールクリア
出力:R0=VDPステータス(Bit0-7)
使用:R7、R8、R9、R10、R11、R13、R14
>F070Bit6
VRAM>0000->3FFFを>00で埋めます
>002CVRAMFILL
入力:R8=埋めるデータ(上位のみ)
R9=VRAM先頭アドレス
R7=長さ
出力:R0=VDPステータス(Bit0-7)
使用:R7、R11、R13、R14
>F070Bit6
VRAMにデータを埋めます
>0030VRAMアドレスの設定ライト
入力:R9=VRAMアドレス
使用:R11
>F070Bit6
書き込みを行う為のVRAM指定を行います
またR9は入力の値に直して返します
>0034VRAMアドレスの設定リード
入力:R7=VRAMアドレス
出力:>F074=VRAMアドレス
使用:R11
>F070Bit1=1
Bit6
読み込みを行う為のVRAM指定を行います
>0038VRAM1バイト書き込み
入力:R9=VRAMアドレス
R8=ライトデータ(上位のみ)
出力:>F074=VRAMアドレス+1
使用:R11、R14
>F070Bit6
RAMに1バイト書き込みを行います
>003CVRAM1バイト読み込み
入力:R9=VRAMアドレス
出力:R8=リードデータ(上位のみ)
>F074=VRAMアドレス+1
使用:R11、R14
>F070Bit6
VRAMに1バイト読み込みを行います
>0040キーデータからアスキーコードに変換
出力:>F0E9=アスキーコード
使用:R11、R12
キーデータ(>F0C2->F0C9)から
押されているキーをアスキーコードに変換
ただし、コントロールコードは下記のみ
RTキー>0D
上キー>F0
左キー>F1
下キー>F2
右キー>F3
MOD>F4
>0044コントローラの内容を読む
出力:R10=コントローラデータ
使用:R8、R9、R10、R11、R12
>F0EA->F0EB
>F0EC->F0ED
>F0C6と>F0C7を読み
コントローラデータに変換
>0048乱数発生
入力:R10=範囲
出力:R8=乱数
使用:R9、R10、R11
>F0D8->F0D9
>F0EA->F0EB
>F0C0->F0C1
乱数の発生を行います
>004Cメモリ転送
入力:R7=転送元アドレス
R8=Bit0-1コマンド
2-15長さ
R9=転送先アドレス
出力:R9=転送先最終アドレス+1
R7=転送元の最終アドレス+1
使用:R11、R12
>F074=VRAMアドレス
R8のコマンドで各メモリの転送を行います
00:メモリからメモリへ転送
01:メモリからVRAMへ転送
10:VRAMからメモリへ転送
11:VRAMからVRAMへ転送
>0050タイマnの選択またはタイマnのチェック
入力:R8=Bit0-2タイマn(n=0-7)
3-15チェックするタイマnカウントデータ下位のみ(0でタイマn指定)
出力:EQ=1チェックするカウンタ値未満
0チェックするカウンタ値以上
使用:R6、R7、R8、R11
>F080->F09E=タイマ0から7のうち1つ
>F0D6->F0D7=カウンタH
>F0D8->F0D9=カウンタL
タイマnをカウンタを利用してカウント、チェックします
このルーチンでは2種類の動作ができます
タイマnを選択:カウンタ0000でコール
タイマnに内蔵カウンタH、Lの値をコピー
EQ=1
タイマnのチェック:カウンタ0000以外でコール
カウンタがチェック値未満
R8=>0000
EQ=1
カウンタがチェック値以上
R8=カウントデータ
EQ=0
>0054左右反転のキャラクタ定義
入力:R8=定義するキャラクタアドレス
R9=定義するVRAMアドレス
R10Bit0=12×2キャラクタ定義
01×1キャラクタ定義
Bit1-7=0
Bit8-15=定義するキャラクタ数
使用:R5、R7、R8、R9、R10、R11、R12
>F070Bit6
キャラクタデータを左右反転して定義を行います
ただし1×2キャラクタ定義の場合
データアドレス+>102キャラクタ定義
データアドレス2キャラクタ定義の順になります
定義するキャラクタ数は1×1で1、2×2で1となります
>0058十進数表示F0F0
>005C十進数表示F0F4
>0060キャラクタの指定方向へ表示
入力:R7=パターン・ネーム・テーブルオフセットアドレス
R8=Bit0-2:方向
Bit3-7:長さ-1
Bit8-15:表示するキャラクタ
キャラクタを指定方向に表示します
R7の値は>1C00を引いた値になります
方向:000=上、001=右上、010=右、011=右下
100=下、101=左下、110=左、111=左上
>0064PSGオ-ルオフ
使用:R9、R11
>F0CA=PSGトラック0コマンド
>F0CB=PSGトラック0コマンド
>F0CC=PSGトラック0コマンド
>F0E2=PSGトラックデータアドレス
PSGの全チャンネルを音量オフにする為のデータを設定します
またPSGアクセス自体は別の処理(割込み)で行われます
>0068PSGトラック0セット
入力:R9=PSGトラック0データアドレス
出力:>F0CA=PSGトラック0コマンド>01
>F0E2=PSGトラック0データアドレス
使用:R11
PSGトラック0の演奏を行います
PSGコマンドは割込み内のルーチンでDECされます
>01PSGポート>E200に書き込み
>02->7F演奏する長さ
>00演奏終了開始
>FF->80演奏終了(DECされて>80で停止)
<例>演奏データ
BYTE>06;ポートに書き込むバイト数
BYTE>8A,>05,>90,>A1,>07,>B0;ポートに書き込むデータ
BYTE>4C;PSGコマンド

BYTE>02
BYTE>9F,>BF
BYTE>00
>006CPSGトラック1セット
入力:R9=PSGトラック1データアドレス
出力:>F0CB=PSGトラック1コマンド>01
>F0E4=PSGトラック1データアドレス
使用:R11
PSGトラック1の演奏を行います
>0070PSGトラック2セット
入力:R9=PSGトラック2データアドレス
出力:>F0CC=PSGトラック2コマンド>01
>F0E6=PSGトラック2データアドレス
使用:R11
PSGトラック2の演奏を行います
>0074レジスタVRAM退避
入力:R0~R12
出力:>F05C=スタック領域インデックス(+>0016)
レジスタの内容をVRAM内のスタック領域に退避します
>F060->F06B(R0、R6-R12)
>F0A2->F0AB(R1-R5)の順で退避
>0078レジスタVRAM復帰
出力:R0~R12
>F05C=スタック領域インデックス(->0016)
VRAM内のスタック領域からレジスタに復帰します
>F05C=>0000で復帰しようとすると>0014へジャンプ
>007CVRAMアクセスアドレスの取得
入力:R9=Bit0-3番号0-F
Bit4-15オフセットアドレス
出力:R9=VRAMアドレス
使用:R11、R12
まずR9の内容を番号と加算する値に分け
チェックする範囲外だと>0014へジャンプ
範囲内なら番号のチェックする先頭VRAMアドレス+R9(Bit4から15)がR9に入る
番号|チェックする範囲
--+--------------------------------------------
0|>1C00->1EFFVRAMアドレスパターン・ネーム・テーブル(セル)
1|>0000->07FFVRAMアドレスパターン・ジェネレータ・テーブルトップ
2|>0800->0FFFVRAMアドレスパターン・ジェネレータ・テーブルミドル
3|>1000->17FFVRAMアドレスパターン・ジェネレータ・テーブルロウ
4|>2000->27FFVRAMアドレスカラー・テーブルトップ
5|>2800->2FFFVRAMアドレスカラー・テーブルミドル
6|>3000->37FFVRAMアドレスカラー・テーブルロウ
7|>1F00->1F7FVRAMアドレススプライト属性テーブル
8|>1800->1BFFVRAMアドレススプライト・パターン・ジェネレータ・テーブル
9|>3800->3FFFVRAMアドレス
A|>1F80->1FFFVRAMアドレススタック領域、ワーク
B|>1880->1BFFVRAMアドレス
C|>1F10->1F7FVRAMアドレス
D|>3800->3FFFVRAMアドレスプログラム領域
E|>3800->3FFFVRAMアドレスプログラム領域
F|>F000->FFFFCPUアドレス
>0080VRAM連続読み込み
入力:R8=転送先アドレス
R9=>007Cパラメータ(転送元VRAMアドレス)
Bit0-3番号0-F
Bit4-15オフセットアドレス
R10=長さ
出力:R12=転送元VRAMアドレス+>1000
使用:R11
転送元アドレスにVRAMデータをメモリに転送します
>0084VRAMからメモリへの1バイト転送
入力:R7=転送先アドレス
R9=>007Cパラメータ(転送元VRAMアドレス)
使用:R11、R12
VRAMの内容1バイトをメモリに転送します
>0088
>008C
>0090
>0094
>0098
>009C
>00A0VRAM連続書き込み
入力:R8=転送先アドレス
R9=>007Cパラメータ(転送先VRAMアドレス)
Bit0-3番号0-F
Bit4-15オフセットアドレス
R10=長さ
出力:R12=転送元VRAMアドレス+>1000
使用:R11
転送元アドレスにあるデータをVRAMに転送します
ゲームカートリッジではキャラクタ定義に使用
>00A4
>00A8
>00AC
>00B0
>00B4スプライト座標の設定
入力:R8=設定する座標データのあるアドレス
R9=スプライトNo.nn(>00->1F)
使用:R11、R12
スプライト座標の書き込みを行います
>00B8
>00BC
>00C0スプライト番号からパラメータの取得
入力:R9=スプライトNo.nn(>00->1F)
出力:R9=>007Cパラメータ番号、オフセット
R10=>0001(転送する為の長さ)
使用:R11
スプライト番号から>007Cのパラメータに変換を行います
R10は>00B4で使用するためのデータになります
>00C4アドレス計算
>00C8アドレス計算
>00CCVRAMコピー
>00D0タイマnスタート
>00D4タイマnチェック
>00D8乱数セット
出力:>F06A=乱数データ
使用:R11、R12
>F06Aに乱数値を置きます
>00DC十進数表示
入力:R9=Bit0-2未使用
Bit31=>F0F4を表示、0=>F0F0を表示
Bit4-5未使用?
Bit6-10Y座標
Bit11-15X座標
R10=Bit0-2???
Bit3-5???
十進数を表示します
十六進数から十進数には変換はしていないのと
事前にキャラクタ定義をする必要があります
>00E0
>00E4データを反転してキャラクタ定義
>00E8VRAMFILL
入力:R8=埋めるデータ(上位のみ)
R9=>007Cパラメータ(転送先VRAMアドレス)
Bit0-3番号0-F
Bit4-15オフセットアドレス
R10=長さ
出力:R0=VDPステータス(Bit0-7)
使用:R11、R13、R14
>F070Bit6
VRAMをR8のデータで埋めます
>00ECVRAM>00FILL
入力:R9=>007Cパラメータ(転送先VRAMアドレス)
Bit0-3番号0-F
Bit4-15オフセットアドレス
R10=長さ
出力:R0=VDPステータス(Bit0-7)
使用:R11、R13、R14
>F070Bit6
VRAMを>00で埋めます
>00F0コントローラ入力
入力:R7=>0000コントローラ1
>0001コントローラ2
出力:何か押された場合
R8=Bit00
Bit10
Bit20
Bit30
Bit40
Bit50
Bit6SLキー
Bit7SRキー
Bit80
Bit90
Bit100
Bit110
Bit120
Bit130
Bit140
Bit151=入力あり、0=入力なし
R9=Bit00
Bit10
Bit20
Bit30
Bit40
Bit50
Bit60
Bit71=方向キー入力あり、0=方向キー入力なし
Bit80
Bit90
Bit100
Bit110
Bit120
Bit130
Bit140
Bit151=シュートキー入力あり、0=シュートキー入力なし
R10=方向キー番号
0=上
1=右上
2=右
3=右下
4=下
5=左下
6=左
7=左上
コールした次のアドレスに戻る
何も押されない場合
なし
コールした次のアドレス+4に戻る
使用:R11、R12
割込みで得たキーデータを元に入力データに変換します
BL@>00F0でコールして次の2つのアドレスに分岐されます
<例>
BL@>00F0;コントローラ入力
B@TRUE;何か押された
B@FAIL;何も押されていない

>00F4
>00F8
>00FC指定範囲内の表示
入力:R8=表示するデータアドレス
R9=>007Cパラメータ(転送元VRAMアドレス)
Bit0-3番号0-F
Bit4-15オフセットアドレス
R10上位=表示する縦範囲
R10下位=表示する横範囲
使用:R11、R12
R9で指定した場所から縦×横のメッセージを表示を行います
ゲームのタイトル(スクランブル)に使用されています
>0100
>0104
>0108
>010CDRAW
入力:R8=DRAWキャラクタアドレス
R9=>007Cパラメータ(転送元VRAMアドレス)
Bit0-3番号0
Bit4-15オフセットアドレス
R10=DRAWデータアドレス
使用:R11
>F056=R11退避用
設定したオフセット座標にDRAWキャラクタを書きます
ゲームのタイトル描画(フロッガー等)に使用
DRAWデータはデータの長さ、オフセット座標、オフセット座標...となります
<例>
LIR8,>DRAWCHR
LIR9,>0100;パターン・ネーム・テーブル>1D00
LIR10,>DRAWDATA
DRAWCHR:
BYTE>FF;CHR>FFで書く
DRAWDATA:
BYTE>03;オフセット座標3バイト
BYTE>00;一番左上>1D00に書く
BYTE>20;一番左上から下>1D20に書く
BYTE>01;一番左上から+1>1D01に書く
>0110
>0114
>0118
>011Cレジスタ退避
出力:>F062->F063=R6の内容
>F064->F065=R7の内容
>F066->F067=R8の内容
>F068->F069=R9の内容
>F06A->F06B=R10の内容
>F06C->F06D=R12の内容
使用:>F060->F061=レジスタ退避用(R0)
R11
レジスタ退避を行います
>0120レジスタ復帰
出力:R0=>F060->F061の内容
R6=>F062->F063の内容
R7=>F064->F065の内容
R8=>F066->F067の内容
R9=>F068->F069の内容
R10=>F06A->F06Bの内容
R11=>F06C->F06Dの内容
使用:R11、R12
レジスタ復帰を行います
>0124
>0128
>012C
>0130
>0134
>0138S.E.0
>013CS.E.1
>0140
>0144
>0148
>014C
>0150
>0154
>0158
>015C
>0160
>0164クリアワークメモリ
>0168
>016CPSGトラック0演奏終了のチェック
出力:Zf=1演奏終了
0演奏中
使用:R11、R12
>F0CA=PSGトラック0コマンド
PSGトラック0の演奏が終わったかチェック(PSGコマンド>80)を行います
>0170PSGトラック1演奏終了のチェック
出力:Zf=1演奏終了
0演奏中
使用:R11、R12
>F0CB=PSGトラック1コマンド
PSGトラック1の演奏が終わったかチェック(PSGコマンド>80)を行います
>0174PSGトラック2演奏終了のチェック
出力:Zf=1演奏終了
0演奏中
使用:R11、R12
>F0CC=PSGトラック2コマンド
PSGトラック2の演奏が終わったかチェック(PSGコマンド>80)を行います
>0178VRAM2バイト書き込み
入力:R8上位=第1バイトライトデータ
R8下位=第2バイトライトデータ
R9=VRAMアドレス
出力:>F074=VRAMアドレス+2
使用:R11、R14
>F070Bit6
VRAMに2バイトデータを書き込みます
>017CVRAM2バイト読み込み
入力:R9=VRAMアドレス
出力:R8上位=第1バイトリードデータ
R8下位=第2バイトリードデータ
>F074=VRAMアドレス+2
使用:R11、R14
>F070Bit6
VRAMに2バイト読み込みを行います
>0180
>0184
>0188ソフトウェアディレイ
入力:R13=ディレイ数
使用:R11、R12
ソフトウェアデイレイをかけます
>018CオフセットアドレスからスプライトX、Yに変換
入力:R8=パターン・ネーム・テーブルオフセットアドレス
出力:R8上位=スプライトY
R8下位=スプライトX
使用:R8、R11、R13
パターン・ネーム・テーブルオフセットアドレスから
スプライト属性テーブルで使用するX、Yに変換します
システムではカーソル表示に使用
>0190本体内蔵フォントアドレスの取得
出力:R8
使用:R11
本体内にある文字フォントがあるアドレスを取得(定義はしない)
ゲームで内蔵フォントを使用する場合に使用
CHR$00-$0F記号
CHR$10-$1F数字
CHR$20-$3F英字
CHR$40-$6Fカナ
>0190
>0194VRAM8バイト書き込み
入力:R7=データアドレス
R9=VRAMアドレス
出力:R8=>0000
使用:R8、R10、R11
8バイトのデータをVRAMに書き込みを行います
>0198VDPの初期化
>019Cセルの初期化
>01A0
>01A4
>01A8
>01AC
>01B0
>01B4
>01B8
>01BC
>01C0MAGスプライトの拡大
入力:R12=>0000拡大しない
>0001拡大する
使用:R11、R12、R13
>F06F
スプライトの拡大の有無の設定
>01C4
>01C8
>01CC
>01D0
>01D4
>01D8
>01DC
>01E0
>01E4X、Y座標からオフセットアドレスに変換
入力:R12=X座標
R13=Y座標
出力:R8=オフセットアドレス
R13=Y座標の左端のオフセットアドレス
使用:R8、R11、R13
座標からパターン・ネーム・テーブル用のオフセットアドレスに変換を行います
>01E8
>01EC
>01F0
>01F4
>01F8十進ワークのクリア
入力:R12=>0000>F0F0->F0F2をクリア
>0001>F0F4->F0F6をクリア
>0002>F0F0->F0F2、>F0F4->F0F6をクリア
使用:R11、R13
十進数表示用のワークをクリアします
>01FCカラー設定
入力:R9=カラー(VDPR#07データ)
使用:R0、R11、R12、R13
カラー(VDPR#07)の設定
>0200
>0204
>0208
>020C
>0210
>0214
>02182倍拡大文字の定義
入力:R9=定義するCHRVRAMアドレス
R10=拡大したいCHRデータ
出力:R9=定義するCHRVRAMアドレス+>20(+4キャラクタ)
使用:R0
8×8ドット文字を2倍の16×16ドット文字に変換して
キャラクタ定義にします(4キャラクタ分消費される)
>021Cキー入力チェック
入力:R6=チェックするキー(上位のみアスキー)
使用:R11
>F0E9
チェックしたいキー入力があるか調べます
チェックしたいキーが押されれば、コールした次のアドレスに戻る
何も押されなければ、コールした次のアドレス+2に戻る
また通常キー入力はカナ文字となるので注意が必要
<例>
CLRR6;チェックするキーは>00なので何か押されたかとなる
BL@>021C;キー入力チェック
JMP@ANYKEY;何かキーが押された処理へ
JMP@NOKEY;キーが押されていない処理へ
>0220RTキー入力チェック
使用:R11
>F0E9
RTキー入力があるか調べます
RTキーが押されれば、コールした次のアドレスに戻る
何も押されなければ、コールした次のアドレス+2に戻る
<例>
BL@>0220;RTキー入力チェック
JMP@RTKEY;RTキーが押された処理へ
JMP@NORTKEY;RTキーが押されていない処理へ
>0224
>0228
>022Cプレイヤー人数の選択
入力:R10=>0000
出力:>F0E8=>001人用
>012人用
1または2キーが押された場合
>F0E8に人数-1をセット、コールした次のアドレスに戻る
何も押されていない場合
コールした次のアドレス+2に戻る
使用:R1、R11
’プレイヤー1,2?’を表示して
1キーか2キーが押されたかチェックを行います
メッセージを表示するので事前にキャラクタ定義する必要があります
>0230カーソル表示
入力:R4上位=スプライト属性テーブルデータスプライト#nn
R4下位=スプライト属性テーブルデータカラー
R5=スプライト属性テーブルアドレス
使用:R0、R11
タイマー0
>F0E0=カーソルオフセットアドレス
>F0F3Bit01=カーソルオフ、0=カーソルオン
タイマー0を用いてカーソルの点滅を行います
カーソルはスプライトで表示され
F0F3Bit0=1入力パラメータR4のカラーで表示(通常は>00の透明)
0白で表示
カラーの有無で点滅を行います
>0234VRAMにデータ列の書き込み(メッセージの表示)
入力:R7=表示するデータアドレス
R9=Bit0長さ
Bit1長さ
Bit2長さ
Bit3長さ
Bit4長さ
Bit5VRAMアドレスA5(残りのA0-A4は0になる)
Bit6VRAMアドレスA6
Bit7VRAMアドレスA7
Bit8VRAMアドレスA8
Bit9VRAMアドレスA9
Bit10VRAMアドレスA10
Bit11VRAMアドレスA11
Bit12VRAMアドレスA12
Bit13VRAMアドレスA13
Bit14VRAMアドレスA14
Bit15VRAMアドレスA15
使用:R0、R9、R12
>F074=VRAMアドレス
VRAMにデータ列の書き込みを行います
主に画面に文字列の表示で使用
>5000->7FFF:メモリ未使用
>8000->BFFF:メモリROMカートリッジまたは拡張RAM
>8000->8002:ここに>1578を書き込んでチェックしている
書き込みが出来たらF06EBit5=0
また>5581のチェックもある
>0238
>023Cラインインプット
>0240
>0244
>0248
>024C
>0250
>C000->DFFF:メモリ???拡張ROM
>E000:I/OVDPデータ
>E002:I/OVDPレジスタ
>E200:I/OSN76489
>E400->E5FF:/CSGROM1カードリッジ拡張用
>E600->E6FF:/EXP0メニユー行く前に、E600に>55があるとE600にジャンプ
>E800->E8FF:/EXP1プリンタ
>EA00->EAFF:/EXP2
>EC00->EC7E:I/OKEYBORADSELECT
>EC00->EC0F:キーライン012QWASZXの選択A15は無視、1バイトで1つのキー
>EC10->EC1F:キーライン134ERDFCVの選択押した判断はCRUで読む
>EC20->EC2F:キーライン256TYGHBNの選択
>EC30->EC3F:キーライン3789UIJKMの選択
>EC40->EC4F:キーライン40-OPL;.,の選択
>EC50->EC5F:キーライン5¥@:ム/ロの選択
>EC60->EC6F:キーライン6英記モRTMOの選択
>EC70->EC7F:キーライン7左上下右の選択
>EE00:I/OCMTOUT’0’
>EE20:I/OCMTOUT’1’
>EE40:I/OCMTOUTInterruptOn
>EE60:I/OCMTOUTInterruptOff
>EE80:I/OCMTOUTInterruptRESET
>EEA0:I/OKB/CMTLS74のF.Fリセット
>EEC0:拡張用?
>EEE0:拡張用音響カプラ?
>EFEC->EFED:*初期化R0
>EFEE->EFEF:*初期化R1
>EFF0->EFF1:*初期化R2
>EFF2->EFF3:*初期化R3
>EFF4->EFF5:*初期化R4
>EFF6->EFF7:*初期化R5
>EFF8->EFF9:*初期化R6
>EFFA->EFFB:*初期化R7
>EFFC->EFFD:*初期化R8
>EFFE->EFFF:*初期化R9
>F000->F001:初期化R10、VRAM>1FF0、>1FF1の内容
>F002->F003:初期化R11、VRAM>1FF2、>1FF3の内容
>F004->F005:初期化R12、VRAM>1FF4、>1FF5の内容
>0000=GRAPHIC背景内
>FFFF=GRAPHICパレット内
>F006->F007:初期化R13、VRAM>1FF6、>1FF7の内容
パレット内カーソルオフセットアドレス
>F008->F009:初期化R14、VRAM>1FF8、>1FF9の内容
>0000=GRAPHICパレット下部に表示
>FFFF=GRAPHICパレット上部に表示
>F00A->F00B:初期化R15、VRAM>1FFA、>1FFBの内容
>F00C->F00D:VRAM>1FFC、>1FFDの内容
>F00E->F00F:VRAM>1FFE、>1FFFの内容
>F010->F011:GRAPHICスペースキーを押した回数
>F012->F013:GRAPHICMODキーを押した回数
>F014->F015:アニメ4位置オフセット
>F016:アニメ4スプライト#nn
>F017:アニメ4カラー
>F018->F019:アニメ3位置オフセット
>F01A:アニメ3スプライト#nn
>F01B:アニメ3カラー
>F01C->F01D:アニメ2位置オフセット
>F01E:アニメ2スプライト#nn
>F01F:アニメ2カラー
>F020->F021:アニメ1位置オフセット
>F022:アニメ1スプライト#nn
>F023:アニメ1カラー
>F024:GRAPHICカーソル方向
>F030:GRAPHICパレット内セル番号万の桁(アスキーコード未使用)
>F031:GRAPHICパレット内セル番号千の桁(アスキーコード未使用)
>F032:GRAPHICパレット内セル番号百の桁(アスキーコード)
>F033:GRAPHICパレット内セル番号十の桁(アスキーコード)
>F034:GRAPHICパレット内セル番号一の桁(アスキーコード)
>F05A->F05B:R11退避用
>F05C->F05D:VRAMスタックインデックス
>F05E
Bit0
Bit1
Bit2
Bit3
Bit5不明拡張ハード?1=接続していない?、0=接続している?
Bit6
Bit7
>F062->F063R6退避用
>F064->F065R7退避用
>F066->F067R8退避用
>F068->F069R9退避用
>F06A->F06BR10退避用
>F06C->F06DR12退避用
>F06E:メニューモード
Bit0拡張RAM1=あり、0=なし
Bit1
Bit2メニューモード1=オン、0=オフ
Bit3拡張BASIC1=あり、0=なし
Bit4カードリッジ1=あり、0=なし
Bit5カードリッジID1=>66、0=>55
Bit6G-BASICモード1=オン、0=オフ
Bit7GRAPHICモード1=オン、0=オフ
拡張用はカードリッジID>AAで>5000を実行
ID>66で>8002を実行
ID>55で>8002を実行(ゲームカードリッジ)
>F06F:VDPR#01データ+アルファ
Bit04/16K
Bit1BLANK
Bit2IE
Bit3不明通常は0
Bit4不明通常は0
Bit6SIZE
Bit7MAG
>F070:
Bit0GRAPHIC、BASIC1=オン、0=オフ
Bit1ファイル名入力1=オン、0=オフ
Bit2M3
Bit3
Bit4
Bit5
Bit6VDPアクセス1=アクセス中、0=アクセスしていない
Bit7
Bit0
Bit11=INT4サブルーチンを実行する、0=INT4サブルーチンを実行しない
Bit2
Bit3
Bit4
Bit5
Bit6
Bit7
>F072:
Bit0
Bit11=G-BASIC、0=GRAPHIC
Bit2
Bit3
Bit41=システム実行、0=カードリッジ実行
Bit51=EMEM実行可、0=EMEM実行不可
Bit61=EBAS実行可、0=EBAS実行不可
Bit7
Bit8
Bit9
Bit10
Bit11
Bit12
Bit13
Bit14
Bit15
>F076->F077:PSGR11
>F078->F079:PSGR12
>F07A->F07B:INT4R0、PSGR13
>F07C->F07D:INT4R1、PSGR14PSGコマンドアドレス
>F07E->F07F:INT4R2、PSGR15PSGデータアドレス
>F080->F081:INT4R3、タイマ0H
>F082->F083:INT4R4、タイマ0L
>F084->F085:INT4R5、タイマ1H
>F086->F087:INT4R6、タイマ1L
>F088->F089:INT4R7、タイマ2H
>F08A->F08B:INT4R8、タイマ2L
>F08C->F08D:INT4R9、タイマ3H
>F08E->F08F:INT4R10、タイマ3L
>F090->F091:INT4R11、タイマ4H
>F092->F093:INT4R12、タイマ4L
>F094->F095:INT4R13、タイマ5H
>F096->F097:INT4R14、タイマ5L
>F098->F099:INT4R15、タイマ6H
>F09A->F09B:タイマ6L
>F09C->F09D:タイマ7H
>F09E->F09F:タイマ7L
>F0A0->F0A1:R0
>F0A2->F0A3:R1
>F0A4->F0A5:R2
>F0A6->F0A7:R3
>F0A8->F0A9:R4
>F0AA->F0AB:R5
>F0AC->F0AD:R6
>F0AE->F0AF:R7
>F0B0->F0B1:R8
>F0B2->F0B3:R9
>F0B4->F0B5:R10
>F0B6->F0B7:R11
>F0B8->F0B9:R12
>F0BA->F0BB:R13
>F0BC->F0BD:R14
>F0BE->F0BF:R15
>F0C0->F0C1:タイマ割込みR0G-BAISC>0420、EBAS>05E0
Bit0
Bit1
Bit2
Bit3
Bit4
Bit5
Bit6
Bit7
Bit8
Bit9
Bit10
Bit11
Bit12
Bit13
Bit14
Bit15
>F0C2->F0C3:タイマ割込みR1キーデータ1、0
>F0C4->F0C5:タイマ割込みR2キーデータ3、2
>F0C6->F0C7:タイマ割込みR3キーデータ5、4
>F0C8->F0C9:タイマ割込みR4キーデータ7、6
>F0CA->F0CB:タイマ割込みR5PSGトラック0、1コマンド
>F0CC->F0CD:タイマ割込みR6PSGトラック2コマンド
>F0CE->F0CF:タイマ割込みR7
>F0D0->F0D1:タイマ割込みR8
>F0D2->F0D3:タイマ割込みR9
>F0D4->F0D5:タイマ割込みR10
>F0D6->F0D7:タイマ割込みR11カウンタH
>F0D8->F0D9:タイマ割込みR12カウンタL割込み毎で+1、>2EE0でカウンタH+1
>F0DA->F0DB:タイマ割込みR13
>F0DC->F0DD:タイマ割込みR14
>F0DE->F0DF:タイマ割込みR15
>F0E0->F0E1:カーソル位置オフセットアドレス
>F0E2->F0E3:PSGトラック0データアドレス
>F0E4->F0E5:PSGトラック1データアドレス
>F0E6->F0E7:PSGトラック2データアドレス
>F0E8:ゲームプレイ人数>00=一人用、>01=二人用
>F0E9:キーデータ変換アスキーコード
>F0EA:コントローラ1
Bit01=入力あり、0=入力なし
Bit1-
Bit2SL1=オン、0=オフ
Bit3SR1=オン、0=オフ
Bit4下1=オン、0=オフ
Bit5左1=オン、0=オフ
Bit6上1=オン、0=オフ
Bit7右1=オン、0=オフ
>F0EB:コントローラ2
Bit01=入力あり、0=入力なし
Bit1-
Bit2SL1=オン、0=オフ
Bit3SR1=オン、0=オフ
Bit4下1=オン、0=オフ
Bit5左1=オン、0=オフ
Bit6上1=オン、0=オフ
Bit7右1=オン、0=オフ
>F0EC->F0ED:汎用
>F0EE->F0EF:十進数表示用VRAMアドレス
>F0F0:十進数A千、百の桁
>F0F1:十進数A十、一の桁
>F0F2:十進数A十万、万の桁
>F0F3:
Bit01=カーソルオフ、0=カーソルオン
Bit11=キーが押された、0=キーが離された
Bit2
Bit3
Bit4
Bit51=カードリッジまたはシステムを実行、0=実行していない
Bit61=タイマ割込みサブルーチンを実行しない、0=タイマ割込みサブルーチンを実行する
Bit71=拡張ハードでキー入力可、0=拡張ハードでキー入力不可
>F0F4:十進数B千、百の桁
>F0F5:十進数B十、一の桁
>F0F6:十進数B十万、万の桁
>F0F7:キー入力モード
Bit0
Bit1
Bit2
Bit3
Bit4
Bit51=記号モードオン、0=記号モードオフ
Bit61=英数モードオン、0=英数モードオフ
Bit71=カナモードオン、0=カナモードオフ
>F0F8:十進数表示ワーク千、百の桁
>F0F9:十進数表示ワーク十、一の桁
>F0FA:十進数表示ワーク十万、万の桁
>FFFA->FFFB:CPU内蔵タイマ
>FFFC->FFFF:CPUNMIベクトル
>8000に>55があれば(ゲームROMの先頭)
メニューでゲームカートリッジの選択が出来る様になります
選択すると>8002へジャンプします
>8000に>66の場合
メニューでゲームカートリッジの選択が出来る様になります
選択すると>8002へジャンプします
>8000に>AAの場合
>F06EのBit3=1にして>5000にジャンプします
起動時に>8000に書き込みが出来るかチェックを行っているが
通常のシステムが拡張RAMにも対応可なのかは不明
VRAM
>0000->07FFパターンジェネレータトップ
>0800->0FFFパターンジェネレータミドル
>1000->17FFパターンジェネレータロウ
>1800->187Fスプライトパターン
>1880->1883???カーソルワーク
>1C00->1CFFパターン・ネーム・テーブルトップ
>1D00->1DFFパターン・ネーム・テーブルミドル
>1E00->1FFFパターン・ネーム・テーブルロウ
>2000->27FFカラー・テーブルトップ
>2800->2FFFカラー・テーブルミドル
>3000->37FFカラー・テーブルロウ
>3800->3F7FGRAPHICBGトップまたはロウ保存用(サンプルカラー、パレット)
G-BASICプログラム領域
>3F9C->3FBBキーバッファ
>3FBC>0Dキーバッファエンドマーク?
>3FDD->3FEAレジスタ保存用R0、R6-R10、R12
>3FF9->3FFEレジスタ保存用R13-R15

Enri's HP
http://www43.tok2.com/home/cmpslv/