2023年3月10日金曜日

3の倍数と3が付く数字の時だけアホになります [MSX]


タイトルの通り。

1から数字を数えて、3の倍数と3が付く数字の時だけアホになります。
世界のナベアツさんのネタです。

動画


実行結果

3で割り切れるときは *を表示。
3がつく数字で @を 表示します

BASICプログラム

10 'save "nabe.bas" 'for MSX2
20 SCREEN1:CLS
30 FOR I=1 TO 40
40 A = I MOD 3
50 C$ = STR$(I)
60 B = INSTR(C$,"3")
70 SET BEEP 1,4
80 IF A = 0 THEN SET BEEP 4,4:PRINT "*";
90 IF B <> 0 THEN SET BEEP 4,4:PRINT "@";
100 PRINT I:BEEP
110 FOR J=0 TO 250:NEXT J
120 NEXT I
130 PRINT "omoro-!!!":PLAY "t200o4l8cego5c4"
view raw nabe.bas hosted with ❤ by GitHub

2023年3月9日木曜日

振り子を動かす

グラフィックモードで、ページ切り替えを使ってアニメーションさせます。
ページ0とページ1でそれぞれ違う画像を描画して、ページを交互に表示させています。

実行画面

BASICプログラム

10 'save "furiko.bas"
20 'for MSX2
30 SCREEN 5:COLOR 15,4,7
40 HL=15 'hankei
50 SET PAGE 0,0
60 LINE(127,100)-(80,150),15
70 CIRCLE STEP(0,0),HL,15
80 PAINT STEP(10,10),10,15
90 '
100 SET PAGE 0,1:CLS
110 LINE(127,100)-(174,150),15
120 CIRCLE STEP(0,0),HL,15
130 PAINT STEP(10,10),10,15
140 FOR I=0 TO200:NEXTI
150 SETPAGE 1
160 FOR I=0 TO200:NEXTI
170 SETPAGE 0
180 GOTO 140
view raw furiko.bas hosted with ❤ by GitHub

2023年3月7日火曜日

SCREEN3で時計つくってみた

 

MSX BASICのSCREEN3を使って、時計を表示させてみました。
MSX0に向けてBASICをリハビリしてます。 


動画
  

MSX2にて動作確認しました。

SCREEN3を使っているだけなのでMSX1でもうごくかと思ったけど、実行してみたらエラー出ちゃいました。。。 GET TIMEのところでエラー発生。(MSX2から対応しているのだとか)

画像:MSX1にてエラー



50行目のON INTERVAL=3600 のところの数値は、60分の1秒単位で指定する。
1秒なら 60
10秒なら 600
60秒なら 3600
となる。

BASICプログラム

10 'save "clock-s3.bas"
20 SCREEN 3:COLOR 15,4,7
30 OPEN "GRP:" FOR OUTPUT AS #1
40 ON STOP GOSUB 190:STOP ON
50 ON INTERVAL=3600 GOSUB 140 '60Sec
60 GOSUB 140
70 INTERVAL ON
80 '
90 COLOR 15:PSET (64,3),4:PRINT #1,":"
100 FOR I=0 TO 300:NEXT I
110 COLOR 4:PSET (64,3),4:PRINT #1,":"
120 FOR I=0 TO 300:NEXT I
130 GOTO 90
140 GET TIME T$
150 T2$=LEFT$(T$,5)
160 LINE(0,0)-(150,30),4,BF
170 PSET(0,0),4:COLOR15:PRINT #1,T2$
180 RETURN
190 COLOR 15
view raw clock-s3.bas hosted with ❤ by GitHub