
小学3年生の時に出会った衝撃、古のパソコン、MSXのBASIC入門本が発刊!なんと、MSX公式エミュレーター「MSXPLAYer」と自由に改造できるゲームが付属します!(参考、MSX-BASICでゲームを作ろう 懐かしくて新しいMSXで大人になった今ならわかる | 技術評論社)
文杉でも人気だった、かわくだりゲームをMSX BASICに移植しました。
10 SCREEN1:WIDTH32:CLS:X=15 20 LOCATE X,5:PRINT"O" 30 LOCATE RND(1)*32,23:PRINT"*" 35 FORI=0TO50:NEXT 36 X=X-(STICK(0)=3)+(STICK(0)=7) 39 IF VPEEK(&H1800+X+5*32)<>32 THEN END 40 GOTO20
1行ずつ解説します
10 SCREEN1:WIDTH32:CLS:X=15
テキスト表示や、グラフィック表示など、画面モードが複数あるMSX。32x24のテキストが基本のSCREEN1にして、横幅(WIDTH)を32文字に設定したうえで、画面消去(CLS)、自機の初期位置Xを15に設定
20 LOCATE X,5:PRINT"O"
IchigoJamでは「LC」と省略形で使う「LOCATE」コマンドで、カーソルをX,5に持っていき、「O」を表示。「?」と打ち込んでもLISTを見ると「PRINT」になっています。
30 LOCATE RND(1)*32,23:PRINT"*"
MSXのランダム関数RNDは小数を返すので32倍して使います。
35 FORI=0TO50:NEXT
WAITコマンドがないので、何もしないループで時間稼ぎ。BASICではスペースの空白はあってもなくてもOKなので、メモリ節約と見た目のために省略し勝ちです。
36 X=X-(STICK(0)=3)+(STICK(0)=7)
IchigoJamではBTNですが、MSXではカーソルの上下左右をSTICK関数で取得します。イコールで一致したときの値がIchigoJamは1、MSXは-1とちょっと違います。
39 IF VPEEK(&H1800+X+5*32)<>32 THEN END
一番の難関。画面に表示されたキャラクターを取得するコマンドがないので、画面用のメモリ(VRAM、ブイラム)を直接読むVPEEKを使います。SCREEN1の場合は16進法1800からずらっと32x24文字分、キャラクターコードが記憶されています。なにもないところが、IchigoJamでは0ですが、MSXはスペース(=32)であるのも違いです。また、IF構文はTHENを省略できず、一致しないを表すのは「!=」ではなく「<>」を使います。
40 GOTO20
繰り返しは一緒!
また、MSXはアルファベット小文字の上書きモードで始まりますが、IchigoJamは大文字、挿入モードで始まるのも、MSXでの経験からの変更点。
はんだづけとプログラミング入門に続き、文杉Day2は、はじめての電子工作。はじめのいっぽは、LEDの接続!GIGA IchigoDake、ピンソケットにピン名がわかるシールが付けるとよりわかりやすそう。
IoTのI(アイ)は、InternetのI、世界中のネットワークがつながったものがインターネットで、ネットワークとはコンピューターがつながったもの。最も効率良い学びは、実際にネットワークをつくってみること!ジャンパー線を3本使って、IchigoJam同士をつないで、接続完了!
0と1だけで相互に伝わるネットワーク。待ち合わせ場所をどう伝えるか悩んでもらいました。初回で1分で伝えたチームが居たこと。2番目に速いチームは母音だけ伝えて推測する効率良い方式が印象的でした。さすが、文杉!
IchigoJamプリントや、IchigoJamミニゲームズなど、実際打ち込んで動かして改造するのがプログラミングを楽しく早く学ぶコツ!記念に作った新ゲーム「タイプめいじん」を打ち込んでみてもらいました。ゲーム感覚で友達と競いながらタイピング速度を上げるのオススメです!
地域の課題をものづくり力で解決している、STEAM部を見学させてもらいました!
ちょうど同学年、神山まるごと高専のポッドキャスト部を紹介。テクノロジーとデザインを学ぶ意義がテーマの43回放送では、ITブートキャンプ実施報告お便りも読んでもらいました!(スマホで撮ったのか音質はちょっと低め?)
エミュレーターには、OSのご先祖様、MSXDOSとMSXDOS2が入ったディスクイメージも付属!わずか3KBというサイズにも注目!
MSX BASICのライセンス表示に、2016年のクレジットが入っているのがすごい!
世界中にファンがいる、MSXでの作品づくりにもチャレンジしてみよう!