SHIROのIchigoJam日記

マイコン「IchigoJam」(イチゴジャム)の電子工作とプログラミングをメインに

PasocomMini PC-8001

ついに一般発売された「PasocomMini PC-8001」。
www.pcmini.jp

さっそく入手して、かわくだりゲームを入れて遊んでみました。

今となっては使いにくい編集操作も含めて、「うんうん、こうだったこうだった」と懐かしく入力しました。
私をプログラミングの世界に誘った名機です。

かわくだりゲーム for PasocomMini PC-8001

10 WIDTH 40,25:PRINT CHR$(12):TIME$="00:00:00":X=16
20 K$=INKEY$:X=X+(K$=CHR$(29))-(K$=CHR$(28))
30 IF PEEK(&HF300+X*2+5*120)>0 THEN PRINT TIME$:END
40 LOCATE X,5:PRINT "O"
50 LOCATE RND(1)*40,23:PRINT "*"
60 GOTO 20

20行のキー入力は、リアルタイムポート入力のINP関数でキー入力が読めなかったので、INKEY$で読んでいます。そのため、左右のカーソルキーをガチャガチャ何度も押さないと、自キャラが動きません。
30行の当たり判定は、PEEK関数でVRAMを読み取っています。PC-8001のVRAMは、先頭がF300番地で、画面モードが横40文字の場合は1個置きに偶数番地を40バイト使用(横80文字の場合は連続で80バイト使用)、その後に40バイトのアトリビュート(カラーなどの修飾領域)があります。従って1行当たり合計120バイトになります。

リアル大なわとびさっちゃん

リアル100mダッシュ」で自作したマットスイッチを使って、「大なわとびさっちゃん」を遊んでみました。タイミングを合わせてジャンプするのがなかなか難しいです。
動画はこちら。

【IchigoJam】リアル大なわとびさっちゃん
f:id:shiro0922:20191009153345j:plain

プログラム

マットスイッチに乗ると、ダウンカウントしてスタートします。
回るなわを踏まないように、ジャンプして跳んでください。画面左下に跳んだ回数が表示されます。
なわを踏んでしまうとゲームオーバーです。マットスイッチから降りてください。再び乗るとリプレイします。
三角関数や簡易グラフィックを使っているので、ファームウェア1.4βで動かしてください。

10 @ARUN:'O-Nawatobi Sacchan
20 CLS:OUT 5,-1:OUT 6,-1
30 @RESTART
40 CLV:Z=20
50 LC 15,Z:?"@"
60 X=30:Y=43
70 DRAW X,Y
80 COPY #901,#900,31
90 LC 4,0
100 ?"*O-Nawatobi Sacchan*"
110 IF IN(10) || IN(11) CONT
120 LC 0,21:?0
130 COPY #901,#900,31
140 LC 1,0
150 FOR T=3 TO 1 STEP -1
160 ?T;" ";:BEEP:WAIT 60
170 NEXT
180 ?"START!":BEEP 10,30
190 @LOOP
200 LC 0,21:?S
210 FOR T=-260 TO 90 STEP 10
220 DRAW X,Y,0
230 X=30+COS(T)/12
240 Y=22+SIN(T)/12
250 DRAW X,Y
260 LC 15,Z:?" "
270 IF J Z=Z+V:V=V+1
280 LC 15,Z:?"@"
290 IF V=6 J=0
300 K=IN(10) && IN(11)
310 IF !J && K && !L J=1:V=-5
320 L=K
330 NEXT
340 S=S+1
350 IF Z!=20 GOTO @LOOP
360 BEEP 30,60
370 WAIT 180
380 IF !IN(10) || !IN(11) CONT
390 GOTO @RESTART

「リアル100mダッシュ」と同じく、マットスイッチをOUT5,6端子(IN10、IN11)につないで、100kΩ抵抗でプルアップしています。
(スイッチを踏まない=入力1、踏む=0)
スイッチの接続ポートにより、プログラムを変更してください。

プログラムを見るとわかりますが、「左右両方のスイッチから足が離れた瞬間」にジャンプするようになっています(300~310行)。ですので、リアルのなわとびのように左右交互に足踏みしてもジャンプできます。

リアル100mダッシュ

足ふみスイッチ(マットスイッチ)を使って、リアルに走るゲームです。
動画はこちら。

【IchigoJam】リアル100mダッシュ

f:id:shiro0922:20190924130549j:plain
マットスイッチは、市販品だと数万円するので、自作しました。
(1)クリアフォルダの綴じ目をハサミで切って開きます。
f:id:shiro0922:20190924094822j:plain
(2)2つの面にアルミホイルを2枚のり付けします。
f:id:shiro0922:20190924095906j:plain
(3)アルミホイルに配線します。より線をほどいて広げて、セロテープで貼り付けます。
f:id:shiro0922:20190924100733j:plain
(4)カッターで窓を開けた段ボールをはさみます。窓の幅は1cmくらい、間隔は3cmくらいです。この窓の配置がスイッチON/OFFに重要なので、実際に足で踏んでみて幅や間隔を調整してください。
f:id:shiro0922:20190924102651j:plain
(5)段ボールをはさんで、ガムテープで留めます。
f:id:shiro0922:20190924103349j:plain
(6)同じスイッチを左右2個作って、床に配置します。ただ置くだけだと、走る時に滑ったり動いたりしてしまうので、床にガムテープで貼り付けるといいでしょう。
f:id:shiro0922:20190924125151j:plain

プログラム

以前作った「100mダッシュ・展示用」を改造しました。

10 @ARUN:'*100m Dash Real
20 VIDEO 3:CLV
30 OUT 5,-1:OUT 6,-1
40 @TITLE
50 CLS
60 LC 2,0:?"*100m Dash*"
70 LC 6,3:?"TIME"
80 LC 6,4:?T/60;".";T%60/6;
90 WAIT 120
100 LC 5,7:?"READY?";
110 IF !IN(10) || !IN(11) CONT
120 IF IN(10) && IN(11) CONT
130 CLS
140 LC 0,1:?CHR$(251)
150 LC 4,7:?"|";
160 LC 0,0
170 FOR T=3 TO 1 STEP -1
180 ?T;" ";:BEEP:WAIT 60
190 NEXT
200 ?"GO!":BEEP 10,60
210 LC 1,1:CLT
220 FOR R=1 TO 50
230 IF IN(10) CONT
240 IF !IN(10) CONT
250 ?CHR$(8,46,251);
260 IF IN(11) CONT
270 IF !IN(11) CONT
280 ?CHR$(8,46,251);
290 NEXT
300 T=TICK()
310 ?" GOAL!";
320 BEEP 10,60:WAIT 60
330 GOTO @TITLE

20行の「VIDEO 3」を「SWITCH 1」に変えると、液晶画面に対応します。
今回はマットスイッチをOUT5,6端子(IN10、IN11)につないで、100kΩ抵抗でプルアップしています。
(スイッチを踏まない=入力1、踏む=入力0)
液晶を使わなければIN1~4が使えるので、適宜変更してください。