PB-100の宇宙の中の人
PBロッキーの日記

ポケット通信のおもひで

インフォシークの無料HPサービスの終了を聞き、感慨深いものがありました。

私が弟の助力を得てこのCASIO PB-100の宇宙を開設した頃、それ以前にほんの一月だけ、ポケット通信Ver.3にアクセスしたこと、そんなころをふっと思い出してしまいました。

高校3年の冬、ハードオフで1000円で買ったモデムと、別居中の父が置いていったPC-98UVとMS-DOS、WTERMという通信ソフトとその解説本。それらで四苦八苦しつつ人生初のパソコン通信に成功しました。

まもなくポケット通信から郵便(?)でIDが届き、シスオペさんの助言を得つつ、アクションパズル Mr.T Ver.1.0を発表することができました。

幸運なことに、当時のテキストはFDDから読み出していて、現在は1TBx2のRaidHDDに収まっています。 このたびはそんなしんみりした気分も手伝って、そのときのテキストを公開させていただこと思います。

私、ID 4407へのメッセージは、当Blogのコメント欄か、BBSまでよろしくお願いいたしますm(__)m


PB-100 シリーズ =========================
Mr.T
================= ■ ■ ■ ■  ID 4407

*概要
PBシリーズ用の落ち物パズルゲームです。
サイズは 543STEPです。PB-100,120で動作確認しました。
*遊び方
初めにタイトルを表示してからゲーム開始です。
画面左端からブロックが落ちてきて、右端に積もっていきます。画面が一杯にならないように、プレイヤーは矢印ブロックを回転させて消してください。
画面がいっぱいになるとスコアを表示して終ります。
@キー操作
[4][6]--矢印ブロックの左右回転
[Q]-----ブロックを速く落とす。
@画面表示
■■■→←↑→  ↑← [↓↑■■■■
・   ・・NEXT
・・落下中のブロック
@ブロックの消し方
矢印ブロックが着床した時に向きが揃っていると、そのブロックは消えます。
■■■→←↑→→↑   [↓↑■■■■

■■■→←↑**↑   [↓↑■■■■

上のような場合は2段階で消えます。
@特殊ブロック
たまに特殊ブロック「◆」が落ちてきます。特殊ブロックは着床した時にその左にある矢印ブロックと同じ向きの全てのブロックを消します。(特殊ブロックは必ず左に矢印ブロックを伴います)
■■■↑↓→↓↑ →◆  [→←■■■■

■■■↑↓*↓↑*◆  [→←■■■■

■■■↑↓↓↑◆    [→←■■■■

うまく積み上げて連鎖を狙ってください。最高で3段まで可能です。
その後、「◆」は画面に残って半お邪魔ブロック化します。これも「◆」が2つ以上並べれば消えます。
@スコア
一度に消えるブロックの数が多いほど、連鎖を重ねるほど高得点です。
@ゲームレベル
2000Ptsごとにゲームレベル(ブロックの落下速度)が上がります。(6段階)その様子は MODE表示の変化である程度分かるようにしています。
MODE表示    DEG → RAD → GRA
ゲームレベル 0→1 → 2→3 → 4→5
*さいごに
このゲームは滝本飛沫さんのパニッカーを友人と一緒にいじっている内に出来ました。矢印の回転を使うアイデアや、消滅のルールはパニッカーのままで、特殊ブロックは友人の発案です。人さまのアイデアで出来てしまったゲームですが、プログラムは結構頑張ったので見てください。
*参考文献 
IZE☆CARIどん 「PB-100系ポケコンについて」,PJ'94年12月号
き っ し ー     「BASEBALL’-やきゅうもどき-」
,ポケット通信 CASIOフリーソフトウェア
滝 本  飛 沫        「パ ニ ッ カ ー ST.」   ,PJ'95年 3月号 ゲームデザイン館

Mr.T FOR PB-100 シリーズ BY ■■ ■■ ID 4407
*入力の方法
パソコンからPBへデータを送る手段がないので、画面やプリントしたものを見ながら手で入力してください。
4行目のスペースは10個です。
10行目の e は 2e3=2000 となる e です。
*リスト
1 VAC :PRINT " →↑ Mr.T ↓←":$="*****◆↑→↓←":D=2
2 FOR E=5 TO 10:I$(E)=MID(E,1):GOTO 10
3 PRINT CSR E-6;MID(1,M);:$=MID(1,E-L-1)+MID(E-L+M):RETURN
4 K=0:$=MID(1,J+5)+P$(A)+O$(B)+"          ":IF B≠0 THEN 7
5 FOR E=6 TO 13:IF P$(A)=MID(E-L,1);GOSUB 3:L=L+1
6 NEXT E:L=0
7 J=LEN($)-15:M=1:PRINT CSR 0;MID(6,10);:FOR E=5 TO J+4
8 IF MID(E,1)=MID(E+M,1);M=M+1:GOTO 8
9 IF M>1;GOSUB 3:G=G+M*10↑(K+M-1:K=K+1:GOTO 7
10 NEXT E:A=C:C=INT (RAN#*4:B=D:IF G>2e3*(H+1;H=H+SGN (5-H
11 D=INT (RAN#*5:MODE 4+H/2:I$="["+P$(C)+O$(D):FOR E=7 TO J STEP -1
12 FOR F=H TO 6:IF KEY="4";A=A+3-4*SGN A:B=B+SGN B*(3-4*SGN (B-1
13 IF KEY="6";A=A-3+4*SGN (3-A:B=SGN B+B*SGN (4-B
14 PRINT CSR E;P$(A);O$(B);I$;:IF KEY≠"Q";NEXT F
15 I$=" ":NEXT E:IF J<8 THEN 4 16 FOR E=8 TO 0 STEP -.2:PRINT CSR E;N$;:NEXT E:PRINT "Sc";G;

 以上です。おつかれさまでした。


Mr.T FOR PB-100 シリーズ BY ■■ ■■ ID 4407
*変数表
変数名 範囲 内容
A,C 0-3 ブロック左,NEXTブロック左
B,D 0-4 ブロック右,NEXTブロック右
E     落下、消滅、雑用ループ
F     落下速度調節ループ
G  0-  スコア
H  0-5  レベル、落下速度
I$     ブロック表示用
J  0-9  積もったブロックの高さ
K  0-3  連鎖カウント
L  0-5  特殊ブロック処理時に使用
M  1-5  ブロック消滅処理時に使用
N$     "*"
O$-R$     "◆","↑","→","↓","←"
$     "*****"+積もったブロック+"          "
*行番号マップ
1    タイトル表示、初期設定
2    ブロックキャラクタなどセット
3    ブロック消滅サブルーチン
4    消滅判定準備
5,6  特殊ブロック処理
7    ブロック表示など
7-10 ブロック消滅判定
10   ブロックセット、レベルアップ
11   レベル表示、ブロック落下など
12   ブロック左回転など
13   ブロック右回転
14   ブロック表示、速落し判定
15   ゲームオーバー判定など
16   スコア表示
*解析する人へ
このプログラムでは前半(3-10行目)にブロックの消滅判定、後半(10-15)にブロックの落下処理を置いています。そのため2行目でいきなり GOTO文で10行目に跳んでいます。
これは GOTOや GOSUBの多用されているブロック消滅判定部分を行番号の小さい(1桁)ところに置くためです。こうしてなるべく GOTO,GOSUBの跳び先に2桁の行番号がこないようにしました。PBでは GOTO,GOSUBの後にくる行番号はその文字数分だけ STEPを使います。こうして10STEP弱稼いでいます。
ついでに2行目にあるはずの NEXT Eも10行目の NEXTを便乗することで削っています。

上記3つのDOCファイルをLZH圧縮でひとつにまとめてアップロードしていたと思います。

残念ながら反響を確認する間もなく誤って40MBの外付けHDDのMS-DOSを消してしまい、アクセスできなくなってしまいました。

それとその月だけ電話代の請求額が一万円を超えてしまいしこたま怒られました。

Aptiva Windows98 K6-2 333Mhz 64MB 4GBHDD モニターも付いて5万円程

その後インターネット元年と言われた1998年、実家でも廉価になったPCを購入 ISDN を契約して初のインターネットをしました。そして、すでにポケット通信が閉鎖されていたことを知りました。

現在の環境と比べたら酷く不便なものでしたが、滑り込みのようにパソコン通信に触れられたのは、よかったな、と思います。