Feed

いまさらN88BASIC

Posted on 4月 12th, 2007 in 倉庫 by apj

 学生実験でプログラムの体験をしてもらっているのだが、使用言語が歴史的理由でN88BASICだという……。まあ、2日で簡単な計算をしてもらうとなると、あんまりややこしい物は教えられないし、ループだとか条件分岐だとか、基本的な要素がわかって、一応簡単なグラフも出て動いた実感もつかめるから、複雑でないことがかなり大事だったりする。
 実験データの簡単な計算なんかをどうやるかという体験をしてもらうのが主目的なので、何でやってもいいんだけど。本格的にやるならFORTRAN使うかC(やC++)を使ったりということになるんだろうけど。

 いや、とうとう実習用のNECのPC-9801シリーズが動かなくなったので、Windoswで動く互換BASICをいじっているところだったりするわけで。


ここからは旧ブログのコメントです。


by 酔うぞ at 2007-04-00 03:54:00
Re:いまさらN88BASIC

ひぇ~・・・・・・。

お疲れ様です。

エクセルでも良いのじゃないの?


by t.kin at 2007-04-07 04:03:07
Re:いまさらN88BASIC

N88BASIC=MS-DOSですか。
メディアコンバート(5.25→35インチ)でPC-9821Xsを
たまに起動します。DOSだと1分でウィン98だと15分も
起動に掛かります。大学で現役で動いていることにびっくりです。


by apj at 2007-04-07 05:09:07
Re:いまさらN88BASIC

>エクセルでも良いのじゃないの?
 教養の情報処理の授業ではエクセルをやっています。
また、実験データの処理用に、ノートパソコンを持ち込んでエクセルでグラフを描いている学生も居ます。問題は、エクセルのやっていることが完全に「ブラックボックス」になってるということです。
 計算機の処理には分岐やらループがあって、プログラムは書いた通りにしか動かない、というのを体験してもらうというのが最大の目的だったり。

>N88BASIC=MS-DOS
 いや、さすがに今度はWindows95で動くN88互換BASICです(あまりものマシンが古いため95しか使えない)。
もともと、PC-98何チャラシリーズが現役を退き始めた頃に、余ったマシンを使ってコンピュータプログラム体験&簡単なX線構造データ解析プログラムを作って結晶構造を同定する、という課題が企画されたらしい(私の着任前)。その後、ずっとPC-98何チャラでやっていたのですが、去年あたりからとうとう動かなくなるマシン続出で、人数分の動くマシンの台数確保が困難になりました。今回、マシンのリプレースとともに使う環境も変わったので、操作マニュアルの作り直し作業が発生しました。同時に、独特のグラフィックス周りも少々変わってきているし(CRT全面使っていたのが、表示用ウィンドウに出るようになったなど)、使えない命令も出て、実習用プログラムの一部書き直しもやるはめになりましたです。
 いやー、N88いじるのは卒業研究以来だわ……。高専で教えた時はRealBasicだったし。


by 酔うぞ at 2007-04-48 05:23:48
Re:いまさらN88BASIC

>計算機の処理には分岐やらループがあって、プログラムは書いた通りにしか動かない、というのを体験してもらうというのが最大の目的だったり。

そりゃ、ロボットを動かしてみる。
が一番でありますよ。(^_^)


by (ぱ) at 2007-04-33 06:26:33
Re:いまさらN88BASIC

ええと、去年までは「PC-98何チャラシリーズ」でやってたわけですよね? その言語は何だったのでしょうか。


by apj at 2007-04-55 06:32:55
Re:いまさらN88BASIC

酔うぞさん、
潤沢に予算が使えれば、迷わずMindStormやらせますって。
私立と違って実習費とか教材費とかを学生から徴収できず、物理化学セクションの学生実験用の予算は年間5万円、ガラス細工で使う低融点ガラス管を買うと大体その半額が無くなります。破損したガラス器具、試薬の購入をするといくらも残らないのが現状です。

(ぱ)さん、
 MS-DOSで動くN88-BASICです。もちろん昔の売れ筋NECPC98何ちゃら。RXとかもあった。


by 名前はまだ無い at 2007-04-28 08:05:28
Re:いまさらN88BASIC

N88BASIC(互換含む)ですか、ご苦労されてますね。
PC-9801が動作する+OSとBASICのメディアが生きていれば
最近のPCにエミュレータも候補に挙がりますが、Windows95が
のんびり動くようなPCですと却下になりますねぇ・・・

私は実機も持ってますしエミュレーター環境も構築していますが
起動するのは年数回程度になってしまいました。
でも捨てられません。


by しもふり at 2007-04-42 08:28:42
Re:いまさらN88BASIC

私は、実験データを統計とか多変量解析アプリにかける前のデータの書式整形とか簡単な換算なんかには、N88互換環境は現役で使ってますよ。中学生以来20年以上使っている言語なので、いまだに他の言語に乗り換えること自体が大儀です。

でかいデータを自力で整形するときは、きちんと自分で挙動が追える環境でないと、後で結果を検証するときに困りますからねえ。

動かしながら挙動を確認しつつプログラムを仕上げていくことができるという点で、本業のプログラマでない人々にとってやはりBASICは優れていると思うのですが・・・


by mimon at 2007-04-35 08:35:35
Re:いまさらN88BASIC

N88(86)BASICのエミュレータというと、忘れられない思い出があります。
少し長くなりますので、お時間のある方だけ、お付き合い願います。

昔、会社で、「交友会」という自主参加の会合の幹事長をしていました。
暦年で交代なので、最初の仕事は、新入社員歓迎会の司会で、
最後が慰安旅行(12月上旬に実施されるので、交友旅行と呼んでいた)でした。
旅行の宿泊地での宴会の司会というのが、幹事長の役目です。
蟹料理を多めにして、手もとを忙しくし、飲みすぎの人を減らすなど、当たり前で、
最後に、(当時は、まだ珍しかった)ビンゴを持ってきて、円満に終わらせるなどの手法をとりました。
ただ、普通のビンゴでは、早い時期に良い賞品が出てしまい、長続きしないので、
賞品の当たりはずれを乱数で決めるプログラムを組んで、少しでも、興奮を長引かせようとしました。
当時、PC98系が主流でしたので、そのプログラムも、N88(86)BASIC(MS-DOS版)で組んだものです。
>100 ‘**********************************************************
>110 ‘* BINGO.BAS — BINGOの商品・順位の乱数組み合わせ
>120 ‘* copyright ‘94.11.29 by ****
>130 ‘* ver 1.0
>140 CLEAR ,,,&H1000
>150 N = 20 ‘商品の数
>160 NN = 30 ‘順位の数
>170 ‘***** 乱数初期化 *****
>180 NR = VAL( RIGHT$( TIME$, 2 ) ) + VAL( MID$( TIME$, 4, 2 ) )
>190 FOR I = 1 TO NR
>200 DUMMY = RND( 1 )
>210 NEXT I
>220 *BR1
>230 DIM NS( N )
>240 FOR I = 1 TO 3 : NS( I ) = I : NEXT I ‘商品1~3は1~3位へ
>250 FOR I = 4 TO N
>260 *AGEIN
>270 NO = INT( RND( 1 ) * NN + 1 )
>280 FOR J = 1 TO I-1
>290 IF NS( J ) = NO THEN GOTO *AGEIN
>300 NEXT J
>310 NS( I ) = NO
>320 NEXT I
>330 OPEN “BINGO1.$$$” FOR OUTPUT AS #1
>340 FOR I = 1 TO N
>350 PRINT #1, RIGHT$( STR$( NS( I ) ), 2 ), I
>360 NEXT I
>370 CLOSE #1
>380 CHILD “SORT BINGO2.$$$”
>390 OPEN “BINGO2.$$$” FOR INPUT AS #1
>400 OPEN “BINGO.TXT” FOR OUTPUT AS #2
>410 FOR I = 1 TO 50
>420 IF EOF( 1 ) THEN PRINT #2, AKCNV$( RIGHT$( STR$( I ), 2 ) );”位の人”, “参加賞” : GOTO *BR2
>430 INPUT #1, P: INPUT #1, S
>440 *AGEIN2
>450 IF P > I THEN PRINT #2, AKCNV$( RIGHT$( STR$( I ), 2 ) );”位の人”, “参加賞” : I = I+1 : GOTO *AGEIN2
>460 PRINT #2, AKCNV$( RIGHT$( STR$( P ), 2 ) );”位の人”, AKCNV$( RIGHT$( STR$( S ), 2 ) ); “番の賞品”
>470 *BR2
>480 NEXT I

一回こっきりのプログラムにしては、割と、まじめに組んでいますね。
その時は、このプログラムの出力にしたがい、それなりに盛り上がったのです。

その数年後、参考に見たいと言う後輩にみせたら、
いきなり「「N88(86)BASIC」エミュレータならあります。」といって、
実行しちゃいました。
幸い、すぐにエラーで止まって、事なきを得たのですが、
Win95あたりで、
>380 CHILD “SORT BINGO2.$$$”
なんてコマンドを実行できちゃったりしたら、危ないことになっていたと思います。


by (ぱ) at 2007-04-44 08:46:44
Re:いまさらN88BASIC

なるほど、apjさんは関わっておられなかったかもしれませんが、実験ではずっとN88 BASICを使っていたわけですね。

しもふりさん:
>本業のプログラマでない人々にとってやはりBASICは優れていると思うのですが・・・

プログラムを少しずつ完成に近づけていくのはプロでもよくやることですし、別にBASICに限ったことではないと思います。BASICは、イベントドリブンとかオブジェクト指向とか小難しいことを考えなくても、さくっと画面にグラフを描くようなプログラムを書けるのが優れているのではないでしょうか(言語というより環境の問題ですが)。
そういう用途なら、今ならHSPなんかいいかもしれません。
http://hspcenter.com/hspsc1/hspsc1.html

ただし、私はこの「言語」に関して言えば、まつもとゆきひろさんの「30年前ならともかく、もう21世紀なのにこの言語はないだろう。 」という意見に完全に同意します。
http://www.rubyist.net/~matz/20040827.html


by apj at 2007-04-34 12:05:34
Re:いまさらN88BASIC

しもふりさん、
>動かしながら挙動を確認しつつプログラムを仕上げていくことができる

 ですね。ただ、私自身の実務だと、データ処理ならIgor Proのスクリプトを使うか、込み入った処理だとCかC++で書いてIgor Proから呼び出して使うということをしています。単に整形や並べ替えをするだけならExcel VBAかな。挙動が見えるので、滅多にしない処理をするときは楽です。変数処理の途中経過が目に見えるプログラム環境としては、Excelは使い勝手がいいです。

 お金をかけずにやろうとすると、無料の処理系を持ってくるしかないんですが^^;)。

 もうちょっとデータオブジェクト指向ぽい言語でもいいんですが、やっぱりとっつきにくいでしょうね。半期かけてプログラムの実力をつけろと言われたら、最低でもRealBasicを選んで、フレームワークも使って組む方向でいきますが、4日間だけでプログラム未経験者に、プログラムとはどういう作業かを体験してもらうだけなら、むしろプリミティブな部分が丸見えのBASICの方がわかりやすいだろうな、とは思います。

(ぱ)さん、
>apjさんは関わっておられなかったかもしれませんが、実験ではずっとN88 BASICを使っていたわけですね。

 実は、大学の実験系ではまだしっかり生き残っていたりします。GP-IB経由で簡単に計測器とパソコンを繋げる環境がN88だったもんで。その後、Windowsで動くLabViewなんかが出て、お金のある研究室はそちらに移行したんですが、貧乏研究室はずっとN88を残していたり。後、計測器専用にボードを作って刺してたりすると、もう装置の一部だから、装置が廃棄されるまではプログラムもろとも一蓮托生だったりします。
 今でもDOSマシン(Windows無し)が平気で現役だったりしますよ。もちろん測定装置の一部としてですが。
 私が最初に装置接続で触れたのもN88-BASICでした。安いドライバがこの環境しかなかった。その後、CでインターフェースボードのROM内ルーチンを呼び出して、計測プログラムの方もCに移行。さらにその後、計測プログラムのウィンドウ周りの管理がDOSでやるには複雑になりすぎて、じゃあOS側に任せるか、と思ったら、ちょうどWin3.1が日本に出始めた直後で、NECのPC-98シリーズでWin3.1から使えるGP-IBのドライバが出回っていないし、ROMの中のものを呼び出す方法もわからなかった。それで、思い切ってMacに移行し、ToolBoxの解説本片手にMPWのシェルからコマンドラインを叩いて計測プログラムを移植しました。その後はずっとMacのままです。今は、Igor ProのスクリプトからNI社のGP-IBを制御できるので、汎用の計測はこれで済ませています。

 いずれにしても、DOSの頃の方が「プログラム組んだことある」という人が多かった気がします。Windowsになってからは、プログラムを書くことの敷居が上がったような。素人が簡単に組んだのでは見慣れたウィンドウズアプリっぽくならないし、それっぽいのはややこしいフレームワークやらおまじないやらが出てくるように見えますし。


by 酔うぞ at 2007-04-50 17:55:50
Re:いまさらN88BASIC

昨日、NHK教育で「春期特集 高校講座2.0「物理×日本史」という面白い番組をやってました。

内容は蒙古襲来の海中遺跡から引き上げられた船などの部品について物理的に分析してみる、ということで日本史と物理学の説明を同時にやるというものです。

ここで、複数の分析器が画面に登場したのですが、その一つが「PC9821」だった。

「あら、大変ですな~」と画面につっこみを入れてしまった。

しかし、深夜の高校生向きの番組は異様に面白い。


by 柘植 at 2007-04-40 02:11:40
Re:いまさらN88BASIC

こんにちは、皆さん。単なる自分の努力不足で、使える言語がN88BASICとアセンブラ(それもZ80時代の)という柘植です。

私などの研究では、昔からこれで充分に用が足せたのと、VBやCが出てきた頃に、えらく忙しくなって勉強するのをサボったので、装置と一緒に骨董品になってしまいました(笑)。

> いずれにしても、DOSの頃の方が「プログラム組んだことある」という人が多かった気がします。Windowsになってからは、プログラムを書くことの敷居が上がったような。

私がマイコンをいじっていた時代には、何せ市販のプログラムというのが有りませんでしたからね。英文ワープロすら自作した事があります(笑)。ついでに言うと、その頃のマイコンは私の給料の3ヶ月分くらいしました(給料溜めて買った:笑)。


by 温泉カワセミ at 2007-04-57 03:48:57
Re:いまさらN88BASIC

apjさん、

>実習用のNECのPC-9801シリーズが動かなくなったので

>GP-IB経由で簡単に計測器とパソコンを繋げる環境がN88だったもんで。

そう言えば、我が研究室で現役で最も古いPCとして、PC-9801EXが居ます。測定器の制御用で、まさにGP-IBでつながってます。流石にN88-Basicではなく、MS-DOSですけど・・・