皆さんこんにちはtatuakicadoです(*´з`)
お元気でしょうか?私の方は下呂市に桜が咲いて今散ってしまっています。でも神社には品種が違う桜の木があるらしくて今になって花盛りになりそうな状態です。今年は桜が速かったですね、私の記憶ではGWまでぎりぎり持つ桜もあったと記憶しています。最近は早くなってるのかな?(;´・ω・)
さて、今回のエントリーはN88BASICシリーズ第2弾としてXPパソコンでN88BASICのエミュレーターソフトでちまちまとデジタル時計のブログラムを作っていました。
え?実機でやらないのかって?PC-98の実機は当時安くても50万円もした時代です(PC-88の16bitだと30万くらいだと思いますが)とても買ってもらえませんでしたから(*_*;
そんなBASICなんて今頃やりませんよ~
今はC++、オブジェクト指向ですよ~
とか言われそうですが、BASICも魅力のある言語です。
今回はデジタル時計を作ってみました、え?Timeとprint命令で簡単にできる?。。。。。
いえいえそんなことしません、ちゃんとLine命令で数字を書いてみました。
開発中はこんな感じです。
![](https://blogimg.goo.ne.jp/thumbnail/02/d6/cd2d06b602ae53b1ffd5cb20c1b767d8_s.jpg)
皆さんこのエミュレータは注意して使いましょう、終了すると今まで作ってきたプログラムが全部消えます( ;∀;)
ちゃんと保存しましょう(実機ならフロッピーにSAVE命令で保存してください)
![](https://blogimg.goo.ne.jp/thumbnail/7f/6e/37b934aa194b3a858bf4236c67daf4ea_s.jpg)
こんな風にデジタル時計になります。
ここまで結構かかりました。
ここからがソースコードです。
------------------------------------------------------------------------------------------------------------------------------------
10 cls:defint a-z:dim xyd(20,150):io=0:pp=0::op=0:wa=2:li=0:colo=3
20 read a:if a=. then io=io+1:i=0:goto 30 else i=i+1:xyd(io,i)=a
30 if a=9 then goto 40 else goto 20
40 if mid$(time$,7,2)="00" then line(20*wa,10*wa)-(100*wa,30*wa),0,bf
41 for pp=1 to 5:si=val(mid$(time$,pp,1)):li=li+30
50 if pp=3 then goto 110
60 if op=0 then pset(((loo-90)*wa),20*wa),colo:pset (((loo-90)*wa),30*wa),colo
70 if op=1 then pset(((loo-90)*wa),20*wa),0:pset (((loo-90)*wa),30*wa),0
80 for i=1 to 4*7 step 4
90 line((xyd(si,i)*wa)+li,xyd(si,i+1)*wa)-((xyd(si,i+2)*wa)+li,xyd(si,i+3)*wa),colo
100 next i
110 next pp
120 loo=li:li=0
130 bou1$=mid$(time$,7,2)
140 if mid$(time$,7,2)=bou1$ then goto 140 else goto 150
150 if op=1 then op=0:goto 170
160 if op=0 then op=1
170 goto 40
180 data 10,10,20,10,20,10,20,20,20,20,20,30,20,30,10,30,10,30,10,20,10,20,10,10,.
190 data 20,10,20,20,20,20,20,30,.
200 data 10,10,20,10,20,10,20,20,20,20,10,20,10,20,10,30,10,30,20,30,.
210 data 10,10,20,10,20,10,20,20,20,20,10,20,20,20,20,30,20,30,10,30,.
220 data 10,10,10,20,10,20,20,20,20,20,20,10,20,20,20,30,20,30,10,30,.
230 data 20,10,10,10,10,10,10,20,10,20,20,20,20,20,20,30,20,30,10,30,.
240 data 20,10,10,10,10,10,10,20,10,20,20,20,20,20,20,30,20,30,10,30,10,30,10,20,.
250 data 10,10,20,10,20,10,20,20,20,20,20,30,.
260 data 10,10,20,10,20,10,20,20,20,20,20,30,20,30,10,30,10,30,10,20,10,20,10,10,10,20,20,20,.
270 data 10,10,20,10,20,10,20,20,20,20,10,20,10,20,10,10,20,20,20,30,20,30,10,30,.
280 data 9
-------------------------------------------------------------------------------------------------------------------------------------
最後のdata文のところはLineで書くための1~0までのデータです。
Line命令と言っても無料通話アプリLINEではありませんよ~( *´艸`)
線と言う意味ですね。
For命令(Nextとセットになっています)も使いプログラムを胆略化しています。
こういうテクニックも必要ですからね。
まあ、BASICから言語を習うとCに移りにくいとかいう人いますが私はそうは思いません。皆さんもPC98の実機あったらやってみてください。
さて、木曜日いかがでしたか?
私はまあまあの出来だったともいます。
まあ、私も色々とあるので皆さん息抜きして頑張りましょう~('ω')ノ
そりでは良い木曜日を、
突然のエントリーでした。
そりでは<(_ _)>