ひさびさにMSXをさわる。

実家に到着。
押し入れからキーボードとゲームカセットを引っ張り出して1chipMSXで遊ぶ。
ああMSXの新ハードが出るなんて、と涙がちょちょ切れる。
そしてF1スピリットはやはり最高に面白いぞと。この頃のコナミは(以下昔は良かった話


ゲームだけではなんなのでプログラムを書いてみる。
童謡「汽車」を演奏しながら汽車が走る(というかなんというか)プログラム。

10 '
20 ' ### KISHA ###
30 '
40 CALL MUSIC:CALL BGM(1):DIM A$(20)
50 SCREEN 1,3
60 RESTORE 600
70 SN=0:GOSUB 500
80 '
90 'INIT
100 '
110 BA$="t120o4l8v15@1"
120 BB$="t120o3l8v12@6"
130 BC$="t120o6l8v13@2"
140 BD$="t120V15"
150 '
160 'MML
170 '
180 B$="b!sh8sh16sh16sh8sh8"
190 A$(0)=""'"ec16c16cc"
200 A$(1)=""'"ec16c16cc"
210 A$(2)="g.g16gg"
220 A$(3)="gbag"
230 A$(4)="e.e16dg"
240 A$(5)="a4r4"
250 A$(6)="b.b16bb"
260 A$(7)="a4>d4"
270 A$(8)="<bb16>c16<ba"
280 A$(9)="g4r4"
290 A$(10)="d4ed"
300 A$(11)="dded"
310 A$(12)="g.g16f#g"
320 A$(13)="a4r4"
330 A$(14)="b.b16bb"
340 A$(15)=">ddd<a"
350 A$(16)="bb16>c16<ba"
360 A$(17)="g4r4"
370 '
380 'PLAY MUSIC
390 '
400 PLAY #2, BA$, BB$, BC$, BD$
410 L=1:T=0
420 X=260:Y=150
430 PUT SPRITE 0,(X,Y),14,0
440 X=X-8
450 PLAY #2, A$(T),A$(T),A$(T),B$
460 T=T+1
470 IF T>17 THEN T=0:L=L+1
480 IF L<=3 THEN 430
490 END
500 '
510 'SET SPRITE
520 '
530 FOR I=1 TO 16
540 READ D$
550 A$=A$+CHR$(VAL("&b"+LEFT$(D$,8)))
560 B$=B$+CHR$(VAL("&b"+RIGHT$(D$,8)))
570 NEXT I
580 SPRITE$(SN)=A$+B$
590 RETURN
600 'KISHA
610 DATA 0011110000100000
620 DATA 0111111000110000
630 DATA 0011010011111111
640 DATA 0011010010010010
650 DATA 0011010010010010
660 DATA 0011010010010010
670 DATA 0111111111111111
680 DATA 1000000000000001
690 DATA 1111111111111111
700 DATA 1011111111111111
710 DATA 1111111111010101
720 DATA 1010101010101011
730 DATA 0101010101010101
740 DATA 0010100000000001
750 DATA 0101101111011110
760 DATA 1010100110001100

ソースはもちろんMSXのBASICインタプリタで書きましたよ。たぶんテキストエディタで書いた方が効率はいいだろう。でも書いてみて気がついたのだが気分が全然違う。MSXの青い画面を眺めているとドンドンと8bit脳になっていく。ちょっと復習すれば脳内アセンブルが普通にできそうな・・・いやいやそんな脳は必要ないですよ。


参考資料は

押し入れの奥の方を覗いたら、

  • MSX2テクニカル・ハンドブック
  • MSXturboRテクニカル・ハンドブック

もあった。これがあれば大抵何でも作れるなぁ・・・作らない作らない。投稿先だったMSX・FANも「休刊」したままだし。


1chipMSXの画期的な部分はSDカードが使えることだろう。これがフロッピー代わりになるのでソースコードを今のマシンに引っ張ってくるのは簡単。容量も2GBまで使えるらしいから、もうMSXの限界というのは

  • CPUが遅い*1

しかないのだな。(しか?)


さて。明日はUSBフロッピーディスクドライブを買ってきて、MSX・FANのフロッピーでも吸い出してみよう。

*1:Z80Aの3.579545MHz