2020年6月23日火曜日

遅れてきたとっても素敵なおもちゃx68000

シャープのx68000というパソコンがある PCではなくて正にパソコンなのである
弄って楽しく遊んで楽しい

で、発売されたのが今から30年以上昔の1987年とかのこと
ちょうどプログラミングの仕事をし始めたころで他のことに目を向けるような余裕もなく「ちょっと面白そうなマシンがでてきたけどCPUが68000で全グラフィック系で音源がFMかよ、趣味専用じゃ財布をはたいては買えないな」って言うのが当時のジャッジでした。
で、時は流れ存在を忘れていたx68000に目を向ける時が来たのです。
なんと遅い。本当に遅い。シャープからNiftyのフォーラムに公開されて20年!!
公式情報の乏しい古代のパソコンをあれこれエミュレートしたりするのも面白いけどそこまで時間をかけられないし発売台数が少ないのは情報も手さぐりになるし大変、そしてエミュレータはROM(実機の内部の固定プログラム)イメージが必要だしなかなか中古買ってまでとはならないな。しかしX68000についてはシャープの英断によりROMイメージが用途や配布方法を限定はしているものの開放されているのです。知らなかった!無念。
単にBIOSに相当する部分だけではなくて開発用のBASICやCも各種仕様まで明らかにするおおらかさ。素晴らしい。早速エミュレータXM6TypeGを仕込んでみました。
これで68000の機械語をふくめていろいろ実験できそうです。
なによりエミュを実機に近づけるための制限を開放しての速さが速いのが魅力。
今時10MHzの68kの速さはないわ。ゲームを再現するときだけで充分でしょ。

(200624)マンデルブロー集合とか動かしてみると遅いと前評判の高かった?X-BASICはやっぱり遅かった。オプションでVM,MPUともにノーウェイトで臨んでも512x512で798秒
  ※このX-BASICってgotoでwhileやforループから抜けられなくてちょっと遠回りしました。
  (往年の8048てワンチップCPUの組み込みBASIC-52とこの点の仕様が似てますね。知っててよかった)
でもこれって、もし「ぺけBASIC」で噂通り3-4倍速くなっても・・・うーんやっぱり最近のwindowsの環境下の言語って速いんだ。まあぼちぼちと弄って楽しみます。
なにかにとちくるって実機に手を出さなくてよかったかも・・・もうロマンのない人ですみません。

2020年6月18日木曜日

最近気づいた身近なアレレな事

vs code(visual studioでなくてcodeのほう)でvisual basic.netのconsoleアプリを書いていて気が付いたんだけどvs codeってコンソールのフックをしていて自前のcmdコンソールにすべてのキー入力情報を流せないのな。
正確には[Shift]+[Alt]+なにがしかのキーを押してもShiftの情報は来ない
で、出来た実行ファイルを普通のコンソールで走らせるとちゃんと拾うのでvs codeの中だけのことだと思う。
まあよっぽどのコンソールソフトでも書いてない限り気が付かなかったりするのかね。
でもgo-langのTUIとかで書いてたら結構実験でコンソールのキャラクタウィンドウとかの操作で出てくる気もする

で話は変わってうちのプリンタなのだがokiのA4カラープリンタc301dnなのだ
両面印刷も1ページの縮小印刷もその両方もしてくれるので1回読むだけの資料とかの出力で紙の節約してくれて助かるやつなのだ
で、事件は起きた いつものようにちょっと気になってソファでごろごろしながら読むのにWebの両面印刷をして読もうとしたらページ順がめちゃくちゃなのだ。1→3→4→5→6→2みたいな感じ(最後か最後の前のページの位置に2ページ目が飛ぶみたい)
印刷したいサイトはページのレイアウトとかいろいろ情報盛りだくさんでcssとかかな?
ちゃんと印刷できるサイトもあるのでどうも特定のサイトで301dnが印刷順の判断が変になるようだ とりあえず@itの印刷をするときには両面印刷はしないことにしました

最近cp/mの上でも走るBBC BASICっていうのをゲットしたんでちょっと楽しみにしてた。cp/mのエミュ関連もやりたいことが減ってきたんで何時弄ろうかと思っていた矢先に同じくBBC BASICのWindows版もあることがわかった。お、これはとMS-DOSで調べたらグラフィックの関係もあってか複数バージョンが存在することもわかった。
うまくすると夢の「3世代OSで同じソフトで楽しめる」とか考えてwindows版をインストールして実験してみたら割とかんたんなことでエラーを吐いてくださる。
よくよく見るとキーワードも変数も大文字しか通らない。
ちょっとつらいし実行速度も・・って考えたらじわっと疲れてきてアンインストールしてました。cとか小文字系のソフトの触りすぎなのかこれまで触ってきたBASICの大文字、小文字は同じとみなすっていう初期のBASICの仕様にこだわりすぎなのか?
(そういえば最初期のTurboPascalも大文字小文字は同じにみてましたね。テレタイプのためかな?)

2020年6月13日土曜日

常用のスクリプティング言語をpythonにした訳

通常使いのスクリプティング言語は大切

選ぶポイント(by 自分)
1)書いていて楽しい
2)後で直しがしやすい
3)そこそこの速さが担保されている
4)ライブラリにより発展性がある

1)は最も大きな要素 書いてて楽しいは大事
2)は書いて1回しか使わないとかならいいけどもう少し使用頻度が高いなら直したくなるので・・多分読みやすさが大事になる
3)より高速な言語で書けば速いだろうけどまずは動くことを確認するのが大事なことも多いので妥協できる・・ただし極端に遅いのはイライラするのでだめ
4)GUIしたいときに候補を見つけて使えたりすること。ライブラリ管理ツールがしっかりしてればいい感じ。

で、pythonを今は使っている。
1)だけで言うとrubyが良い感じなのだがpythonもそれほど悪くない。
まあIDEの力を借りるとc#ですらスクリプティング言語かって思うがエディタでも書けないといろいろツラいので・・
REPLの出来もちょこちょこ動作検証して書くのでかなり大事なのだがrubyのirbはwindowsで日本語との相性が悪い
(WSLをはじめLinuxなら大丈夫 なんでだ?!)
そして予約語に代表されるような覚えなきゃならんことが多すぎず少なすぎずのバランスも良い気がする
smalltalkやlispみたいに少なすぎるとなんでも自分で書かなきゃって感じるしphpみたいに・・ゲフンゲフン・・知りません。
2)これは結局その言語との馴染み具合で決まるのかもしれないけど1つのことをするのに書き方がある程度限定される方が一段と読みやすいと思う。自分の場合はpython圧勝
(rubyは時々魔法の呪文化してる)
3)最近のPCが速くなったのであまり大きな要素では無くなった。
 でもあまり遅いものはちょっと書きたいときに嫌だ。
 rubyなどはワンライナーが効くので良い点でもある。
(これ 1)の項目だわ)
 pythonのワンライナーは書きたいとは思わないもの。
 ※ワンライナー+バッチでなにか書くと面白そうだと今思った。変な奴
4)pythonのpip最高 rubyのgemはもう一つ分からない
 node.jsのnpmは使いこなしが足りないしperlはcpanからDLしなって言われるし
 Windowsのチョコはまだまだ薄味で賞味したりないし・・
 phpの・・・あ、phpそのものを使ってなかったわ
 で、気楽にライブラリーで機能拡張するとかってなるとpythonがいいなあ

そんなこんなでpythonが今のところメインのスクリプティング言語に落ち着いてます。
※この項目書き足そうかな

2020年6月2日火曜日

今更のコマンドライン天国

最近DOSBoxやらでCとか書いているのでWindows10でもと思ったけど言語のインストールとかいろいろ試すにはWSLのubuntuあたりでsudo apt install xxxx・・ やるのが正解だと思うようになった。環境変数でパス設定とかしなくていいし・・

エディタはvscodeでctrl+@で開くshellのデフォルトをwslにしておけばこれは実に快適なプログラミング環境の出来上がりとなる。python3でtkinterのスクリプトを書いて走らせるとx11(VcXsrv)の方のGUIがちゃんと出るし・・素晴らしい
※上がWindowsのpython、下がWSL(ubuntu)のpython3からの出力
あ!コマンドラインからGUIで本題外れ

そのうえスクリプトもgawk,sedなど使えて感激。DOSの時代に買ってWindowsではもう一つ使いにくい感じで実験できなかった「テキストデータ料理学」が追試験できる。

ちょっとしたベンチマークにはtime命令があるので動くコードさえ書けばすぐに比較できるのもベンチ大好き人間には魅力的。

コマンドラインの関心は他にもあって、monoを導入するとマルチプラットホームないくつかの言語をすぐに楽しめる。c#, Visual Basic.net, ironpython, ironruby,f#など
特にc#はコンパイラだけででなくインタープリタもあるし対話形式のcsharpもある。

かてて加えてgoogle謹製のgo-langも非常に興味深い。
fyneなどのGUIライブラリーを利用すればマルチプラットフォームのGUIソフトも作れる。(あくまでも可能性)
もちろんここで話題にしているコマンドラインツールもTUIを使えばかなり高度なものが作成できるし言うことなし。
他にもjava系の言語たちやnode.jsのようなjavascriptのコンパイラもあるわけだから楽しみは尽きない。

やはりwindows10+wslはコマンドライン天国なのだ

dosvaxj3が更新されていた。

 最近、エミュレータ系をあまり触っていなかったのだけど久しぶりに見てみたらタイトルのようにdosvaxj3が更新されていた。 on emulatorでセルフにcなどのソースを書いて実行するのに母艦側の特定のフォルダをドライブとしてマウント出来たり普通に母艦のimeで漢字が入力でき...