MSX.MS



MSX.MS TOP
MSXをうこ゛かす
1chipMSX
MSX−BASICコマント゛
MSX−DOS コマント゛
MSX−DOS2コマント゛
CPUコート゛
ファイルけいしき
フ°ロク゛ラム
MSX.MSとは?
おといあわせ



フ°ロク゛ラム



MSX.MS 運営者が作成しているプログラムです。
ファイルを読み込んで実行しても良いですが、
やはり入力・実行するのが MSX っぽくて良いのではないかと思います。^^
turbo R 対応を行っていないため、
高速モードである場合は正常に動作しない場合があります。
[ 1 ] キーを押しながら起動すると通常モードになります。

MSXPLAYer では一度 2DD フロッピーディスクに保存して、
MSXPLAYer を起動して FDD に切り替えて起動します。
COPY を用いて仮装フロッピーディスクにコピーできます。
 COPY "ファイル名" TO "B:"
A: で FDD、B: で仮装フロッピーディスクに切り替えて
キーボードを押す事でコピーできます。



ポン風

PONG を MSX で再現。
ただし表示するだけで、ゲームはできません。^^;;;
毎回ラケット・ボールの位置が変化します。
SCREEN 3 を使っているのがコツ。

100 R=RND(-TIME)*1
110 COLOR 15,1,1:SCREEN 3
120 FOR Y=8 TO 191 STEP 32
130 LINE (124,Y)-STEP(7,15),15,BF
140 NEXT Y
150 U1=((RND(1)*160)\8)*8
160 U2=((RND(1)*160)\8)*8
170 LINE (0,U1)-STEP(7,31),15,BF
180 LINE (248,U2)-STEP(7,31),15,BF
190 X=((RND(1)*248)\8)*8
200 Y=((RND(1)*178)\8)*8
210 LINE (X,Y)-STEP(7,7),15,BF
220 I$=INPUT$(1)

ソースのダウンロード: PONGFU.BAS ( 277 バイト ^^;;; )



いわゆるスカッシュ

カーソルキー・ジョイパットの左右で動かしてボールを跳ね返して下さい。
turbo R の場合は 195 に FOR〜NEXT を入れておくと宜しいかと。

10 SCREEN 1,1,0:KEY OFF:R=RND(-TIME)
20 SPRITE$(0)="|"+STRING$(5,254)+"|"
30 SPRITE$(1)=STRING$(2,255)
40 X=RND(1)*240:Y=0:CY=4:SS=0
50 IF X>127 THEN CX=4 ELSE CX=-4
60 XX=128:YY=186
70 PUT SPRITE 0,(X,Y),10,0
80 PUT SPRITE 1,(XX,YY),15,1
90 IF X+CX<0 OR X+CX>239 THEN CX=-CX
100 IF Y+CY<0 THEN CY=4
110 IF Y+CY>191 THEN END
120 IF Y+CY<176 OR Y+CY>191 GOTO 160
130 IF X-XX<-16 OR X-XX>32 GOTO 160
140 CY=-4:SS=SS+1:LOCATE 0,0
150 PRINT"SCORE";SS
160 X=X+CX:Y=Y+CY
170 S=STICK(0)+STICK(1)
180 XX=XX+(S=7)*4-(S=3)*4+256
190 XX=XX MOD 256
200 GOTO 70


ソースのダウンロード: BALL.BAS ( 451 バイト ^^;;; )


↑を元にアレンジを加えて紹介している方がいらっしゃいます。
Dr.KIKKIE(KIKI) MSX DeuxLaque - パドル(16)



15パズル

15パズルを作りました。SCREEN 0・1画面で抑えています。
MSX が 100 回動かした後、カーソルキーで戻します。

100 I$="123456789ABCDEF0":J$=I$:S=100
110 CLS:FOR L=S TO 1 STEP -1
120 U=INSTR(I$,"0"):R=RND(-TIME)*4+1
130 ON R GOSUB 280,290,300,310
140 IF C=U GOTO 120
150 GOSUB 320:GOSUB 220:NEXT L:S=0
160 GOSUB 220:PRINT:PRINT"SCORE ";S
170 IF I$=J$ THEN END
180 U=INSTR(I$,"0"):T=STICK(0)
190 ON T GOSUB 280,,290,,300,,310
200 IF C=U GOTO 180
210 GOSUB 320:S=S+1:GOTO 160
220 LOCATE 0,0,0
230 FOR Y=0 TO 3:FOR X=0 TO 3
240 N=VAL("&H"+MID$(I$,X+Y*4+1,1))
250 IF N=0 THEN PRINT ".. ";:GOTO 270
260 PRINT USING "## ";N;
270 NEXT X:PRINT:NEXT Y:RETURN
280 C=U+(U>4)*4:RETURN
290 C=U-(U MOD 4>0):RETURN
300 C=U-(U<13)*4:RETURN
310 C=U+(U MOD 4<>1):RETURN
320 H$=MID$(I$,C,1):MID$(I$,C,1)="0"
330 MID$(I$,U,1)=H$:U=C:RETURN


ソースのダウンロード: 15.BAS ( 550 バイト ^^;;; )



RUN(プログラムローダ)

ディスクに RUN というファイル名で保存しておき、
[SHIFT]+[F2][F5][F5] で起動します。
カーソルキーで動かしてスペースキーでプログラムを読み込み実行!
ポート1のジョイスティック対応です。
これだけの BASIC でここまでできます!

10 SCREEN0:KEYOFF:WIDTH40:FILES
20 X=POS(0):IFX<>0THENPRINT
30 Y=CSRLIN-1:X=0:Y=0
40 LOCATEX*13,Y,1
50 IFSTRIG(0)+STRIG(1)=-1THEN110
60 S=STICK(0)+STICK(1):IFSMOD2=0THEN50
70 X=X+(S=3)*(X<2)-(S=7)*(X>0)
80 Y=Y+(S=5)*(Y<J)-(S=1)*(Y>0)
90 S=STICK(0)+STICK(1)
100 IFSMOD2=1THEN90ELSE40
110 LOCATE,,0:FORI=0TO11
120 N$=N$+CHR$(VPEEK(X*13+Y*40+I)):NEXT
130 CLS:PRINT"RUN ";N$:RUNN$


ソースのダウンロード: RUN ( 296 バイト ^^;;; )



BOOM!

いわゆるマイ●スイー●ーです。^^;;;
MSX-BASIC でどれ位作れるかと思いまして……。
最初に爆弾の数を入力し、ちょっと待つと画面いっぱいに . が表示されます。
上下左右に爆弾がある場合はその数が表示されます。
爆弾に触れるとドッカーン!
カーソルキー・スペースの他、ポート1のジョイスティック対応です。

100 T=RND(-TIME)*1
110 DEFINT A-Z:DIM B(32,23)
120 SCREEN 1:KEY OFF:WIDTH 32
130 COLOR ,4:CLS:INPUT"BOOM";B
140 COLOR ,12:CLS
150 FOR I=1 TO B
160 LOCATE 0,0,0:PRINT"WAIT";I;
170 X=RND(1)*32:Y=RND(1)*23
180 B(X,Y)=255
190 IF X=0 GOTO 220
200 IF B(X-1,Y)=255 GOTO 220
210 B(X-1,Y)=B(X-1,Y)+1
220 IF X=31 GOTO 250
230 IF B(X+1,Y)=255 GOTO 250
240 B(X+1,Y)=B(X+1,Y)+1
250 IF Y=0 GOTO 280
260 IF B(X,Y-1)=255 GOTO 280
270 B(X,Y-1)=B(X,Y-1)+1
280 IF Y=22 GOTO 310
290 IF B(X,Y+1)=255 GOTO 310
300 B(X,Y+1)=B(X,Y+1)+1
310 NEXT I:LOCATE 0,0
320 FOR I=1 TO 736:PRINT".";:NEXT I
330 X=RND(1)*32:Y=RND(1)*23
340 IF B(X,Y)=255 GOTO 330
350 GOSUB 590
360 S=STICK(0)+STICK(1):XX=X:YY=X
370 X=X-(S=7)*(X>0)+(S=3)*(X<31)
380 Y=Y-(S=1)*(Y>0)+(S=5)*(Y<22)
390 IF XX=X AND YY=Y GOTO 410
400 LOCATE X,Y,1
410 IF STRIG(0)+STRIG(1)<>-1 GOTO 360
420 LOCATE ,,0
430 IF B(X,Y)=255 GOTO 510
440 IF VPEEK(&H1800+Y*32+X)<>46 GOTO 470
450 T=T+1:LOCATE 0,23,0
460 PRINT"SCORE ";T;
470 IF B(X,Y)>0 GOTO 490
480 GOSUB 590:GOTO 360
490 LOCATE X,Y:PRINT CHR$(&H30+B(X,Y));
500 GOTO 360
510 COLOR ,8:FOR X=0 TO 31
520 FOR Y=0 TO 23
530 IF B(X,Y)<>255 GOTO 550
540 LOCATE X,Y,0:PRINT"*";
550 NEXT Y:NEXT X
560 IF STRIG(0)+STRIG(1)<>-1 GOTO 560
570 IF STRIG(0)+STRIG(1)=-1 GOTO 130
580 GOTO 570
590 IF B(X,Y)=0 GOTO 620
600 LOCATE X,Y:PRINT CHR$(&H30+B(X,Y));
610 RETURN
620 LOCATE X,Y:PRINT " ";
630 RETURN


ソースのダウンロード: BOOM.BAS ( 1085 バイト ^^;;; )

画面を良く見ると……あれ?というのが一つあるかもしれません。
一つ考慮されていない事があるためなのですが……治してみて下さい。
(1行追加すれば改善するかと思いますが……)
周りに爆弾がない場合にあるところまで表示させる……という事もしたかったのですが、
それを行なうとプログラムが長くなってしまうので…… ^^;;;
あと、ここでは BASIC の汎用性を考えて配列を用いていますが、
配列ではなく直接 VDP に爆弾等のデータを入れてしまうと、
高速表示できるし、フォントも改良できて、MSX で作ったゲームっぽい出来になるかと思います。



マウスでうごかす

マウスでカーソルを動かしてみましょうか。^^
MSXPLAYer では BASIC(マウス版)で起動して下さい。

10 COLOR 15,4,7:SCREEN 1:KEY OFF
20 XX=128:YY=96
30 SPRITE$(0)=CHR$(224)+CHR$(192)+CHR$(128)
40 S=PAD(12)
50 XX=XX+PAD(13):YY=YY+PAD(14)
60 XX=(XX+256) MOD 256:YY=(YY+192) MOD 192
70 PUT SPRITE 0,(XX,YY),15,0
80 LOCATE 0,0
90 PRINT XX,YY;
100 GOTO 40


ソースのダウンロード: MOUSE.BAS ( 213 バイト ^^;;; )



MSX のうた

MSX に歌ってもらいましょ。^^
「MSXPLAYer」では、FRAME RATE を LOW にすると実機っぽく聞こえます。

10 N=RND(1)*95+1
20 PLAY"N=N;"
30 GOTO 10


ソースのダウンロード: MSXNOUTA.BAS( 43 バイト ^^;;; )



漢字書けな〜い! for MSX

MSX.MS 公開時にとりあえずネタを……という事で久々に MSX-BASIC を使ったのです。^^
これにはなんと非公認テーマソングがあるのでした。
BGM: 漢字読めるけど書けない/ダンス☆マン ^^;;;

10 _KANJI
20 INPUT C$
30 SCREEN 3:_KANJI
40 PRINT C$;
50 I$=INPUT$(1)


ソースのダウンロード: KANJIKAK.BAS( 61バイト ^^;;; )

文字数を多くして表示したい場合は30行の _KANJI を _KANJI1 にしましょう。

元ネタ: 漢字書けな〜い! for Mac OS X
Mac OS / Windows 版もあって、Mac OS X へ移植してます。
これは REALbasic ってのを使っているのですが、
日本で REALbasic を販売しているのはアスキーです。
REALbasic
MSX BASIC で覚えた言語が使えて便利? ^^;;;




GIVE UP!

フロッピーディスクをあさっていたらこんなものを見つけました。
操作はカーソルキー、GAME OVER はどこかで見たことがあるような…… ^^;;;
再開・ゲームスタートはスペースキーです。
いくつかバージョンがあります。
MSXPLAYer なら FRAME RATE を LOW、SPEED HIGH が妥当かと……。

ソースのダウンロード: GIVEUP.BAS( 613 バイト ) …… ランダムな点が貴方を襲う……
ソースのダウンロード: GIVEUPW.BAS( 677 バイト ) …… ウインドウスクロールバージョン。
ソースのダウンロード: GIVEUPAI.BAS( 828 バイト ) …… AI機能を持つ(?)敵が貴方を襲う……
ソースのダウンロード: GIVEUPAW.BAS( 892 バイト ) …… GIVEUPAI.BAS のスクロールバージョン。
ソースのダウンロード: GIVEUPS1.BAS( 893 バイト ) …… BGM: 沙羅曼蛇 ステージスタート ^^;;;
ソースのダウンロード: GIVEUPS2.BAS( 890 バイト ) …… GIVEUPS1.BAS の障害物大きくなりました版。

右写真は GIVEUPAI.BAS です。
1995年作、懐かしい……。別バージョンもあったと思うので見つけたらそのうち……。

ポケコン PC-G850 シリーズ版もつくっています。
POKECOM.INFO - プログラム
PC-G850V は Z80 系のポケコン。MSX の技術を生かせます。^^
2001 年発売の機種で、今(2008年8月現在)でも購入する事ができるのです!




MSX の商標は現在
MSXアソシエーション が所有しています。