2019年10月20日日曜日

cp/m-80 ふりだしに戻って

8bitCPU intel8080用のOSとしてスタートしたcp/m-80への憧憬

これはもうヒナが卵から帰ったときに初めて見たものを親と思い込んでしまうのにも似た気持ちかも

単にcp/mを動かしたいとしても方法はいろいろある。
1)PC上のcp/mエミュレータで動かす (まあ動くわな)
2)別のCPUなりボードPCでz80のエミュレータ環境を用意してその上でcp/mを動かす+ターミナルにWindowsを使う
3)別のcpu上のcp/mエミュレータでスタンドアロンで動くものを用意する
4)z80なり実際にcp/mがネイティブで動く環境を用意する

数字が大きくなるほど環境としては昔の状況に近づく、まあ趣味人としてはワクワク感は嫌がおうにも増す

手堅いのは1)で簡単に始められるうえにまず動く。
2)-4)はPCとは別のハードを用意するわけだし専用のものでもないのでハードルの高さは1)とくらぶべくも無い

各々どんなものか具体的に書く

1)のPCでのエミュは現状の候補が3つ
(1):CP/M-80 program EXEcutor for Win32 V0.4
  エスケープシーケンスも普通に使えるし最も楽に導入できる感じ
(2):CP/M Player for Win32
  エスケープシーケンスも使えるとあるがTP3ではNGであった
  竹田氏の熱意は凄いしお世話になっているeFMR-50とかもあるが
  ちょっとやってみるにはEXEcutorのほうが肌に合う
(3):Altair 8800 simulator
  海外ではもっともオーソドックスなものらしい
  当面はその時に行う実験に大きな問題が発生しなければ(1)を使用

2)ではcp/m-8266とrun-cp/mが2強かな
  とりあえずWROOM-02でcp/m-8266の稼働を目指す
  某大国製の2個で1,390円のESP-8266をamazonで買った
  はたしてどうなるのやら
 (最悪、全く動かないときはraspberry piを使ってUltiboの
  cp/mエミュもあるしね)

ほかは上記の結果を踏まえて拡張する
せめて裸のz80をいじって遊びたい

取り急ぎ、Windowsのcmdでcp/m executorが動作している様子
別にcp/mを味わうっていうだけならこれで十分な感じだけど
なんか当たり前すぎてちょっと面白みに欠ける。

んでamazonでesp8266のFlashのサイズが4MBのものを物色

を購入 2個で1,390円なり
技適通ってないけど電波出さないしいいよね。

翌日に届いたので通電してUSBからターミナルで見てみたけど近くのWifiの検出がデモとして動いていたけどATとかの地味な実験方法がわからない
もう面倒になったのでえいやって感じでCPM8266を入れる
参考にしたのはこのht-decoさんのサイト 
指示に従ってやっていったらきっちり6.のコンパイルでエラーが注意書きの通りに出た。そして対策通りにやったら通過した。まあスキルは身につかないけどブラックボックス的手順でらくちんらくちん

ターミナル起動してcom8266が出た画面がこちら
動作もサクサクしていて良いのだけどteratermのフォントがデフォでちょっと見にくい。別のフォントにしてみようと思います。

さてこれらのシステムで遊ぶヒントはrun-cp/mの説明でこれまた
詳しく教えてくれてます。

しかし何やら仕事がちょっと落ち着くたびにcp/mって書いてるのに気が付いたりして

さあ次はどうしようか?






2019年8月27日火曜日

自分へのささやかなご褒美

この1ケ月ほどは実に多忙だった。

それで自分へのご褒美としてTVを買った。
ネットワーク機能が充実したものが良かったのでこの機種にした
【TH-43FX750】※メーカの人、画像が使用不可なら教えてね
      現在はTV台が未達でPC部屋に仮組中
FirefoxOSを搭載していてこの手のネットワーク動画機能の充実したTVとしては動作が軽いのが特徴。そして現在使用中のレコーダがDIGAなのだがお部屋ジャンプリンクで通常の直接接続した状態とほぼ同様にレコーダの操作をして動画が見れた。ちょっと感激
このほかにもabemaTV,amazon PrimeVideo,YouTubeなどが見える。
また宅内ネットワークの中のNASに入れた漫画のデータや音楽のデータ、当然ながら動画のデータが見えたり再生できたりするので気分は超メディアプレーヤなのだ。
PCをHDMI経由で接続したりもできるので開発の友にもなってくれるかも(動画をみることで足をひっぱることのほうが多いかな)
まだまだ試したいことがある、当面はこの新しいおもちゃで遊ぶアイディアでいっぱいなのだ。

2019年7月13日土曜日

初心に立ち返る

最近、開発環境に比較的大きな変化がきた

開発対象の環境がWin95から引き継いできた古い環境からWindows10(64bit)+Office2019(32bit)[with Accesss]になりつつあるのだ。

Accessの変化と言えばmdb形式がaccdbになりリボンが操作のインターフェースの中心になったことくらいだ
(この点で言えばExcelの方がはるかに変化としては大きく感じる)

で、これまでPC言語をいろいろと触って遊んできたわけだけどもう少しうup-to-dateな環境や言語にまじめに取り組む必要もあることに今更気が付いた
(軽く考えていた以上にOffice周りの変化が大きいことに加えて言語環境もバージョンアップにともなっていろいろと変化しているようでそのあたりを吸収しないと楽しみを得損ねているかもしれないと言う気になってきました。)

しばらくVisualStudio2017+C#を基本から身につけ直したいと思います。
参考書は「実戦で役立つ C#プログラミングのイディオム/定石&パターン」
今の自分のC#のレベルはC#2とかC#3.0の入り口ぐらいの入門者もしくは初心者で参考になるWebサイトをめぐりながらならどうにか動くものが作れる程度。これを普段の思考の中心に据えられるぐらいに慣れたいと思います。上記の参考書を写経しつつ面白い気づきがあれば書きます。

2019年7月6日土曜日

勘違いと思い込みによる失敗

最近、新しいExcel(2019)で初めてマクロ(=VBA)を少し書いた。
しかし自分では絶対に上手くいくと思うことが一向に進まない。

え!、こんなところで。というエラーが出る。
しかし件のVBAの行をイミディエイトで実行すると上手くいく。
連続で実行するとエラー400とか訳が分からん。

しかたなく別のマクロにある部分から後ろをわけてみたらどうにか進む。すわ、ExcelのBug発見かとも思ったがシステムのBugかと思うときは95%は自分のコードか環境を疑え5%はPCのシステムの依存などを疑えと過去の経験が言うのでよくよく調べたらマクロの一部がワークシート上に記述してあった。普段はそんな場所に書くことはまず無いのだが久しぶりのExcelVBAでうっかりしたのか?
言い訳はともかくワークシートからモジュールにVBAのコードを移したら難なく動くようだ。

いつも通りの場所に書いたつもりなどという勘違いと思い込みからの苦い経験であった。

2019年6月30日日曜日

pascalがちょっと気になる?

最近、たまたま自分が調べていることの分野でpascalに出会う。

Lazarusはfreeのdelphi cloneなので当然free pascalが絡む

cp/mでもturbo pascalは欠くことのできないアイテムだし
raspberrypiなどでもベアメタルで弄ろうと思ったらUltiboなんぞという面白そうなプロジェクトにあたったけどこれもLazarusでクロスコンパイルするみたいだし・・・

どこかのブログでC#とかに比べてFreePascalの出すオブジェクトがほとんど最適化されていないっていう記述を見たことがあるけど裏を返せば妙な(行き過ぎた)最適化でエンバグすることもないということだし、ソースを1回読めばコンパイルできる単純な構文(LL(1)とか言うんだっけ)
なのでコンパイルは速いしね。
でもC#も相当速いと思う。

オブジェクトが明確に見えて他の言語からも利用される様子を楽しみたいならJavaのほうがずっと面白いと思うけどfree pascalでもOOPできるのでそれで遊んでみたい気もするし、かと言っていまさらフリーで使える機能限定のDelphiを使うよりは完全にフリーでソースも見えるLazarusの方が天の邪鬼的には面白そうに映るんだよね

どうしましょ?

2019年6月23日日曜日

マイナー言語への憧憬

どうやら天性の天の邪鬼であるところの僕はマイナーな世間受けのしない言語が好きなようだ

いまだlightweight languageが流行らない頃にrubyに目覚め
第1次schemeブーム(そんなことあったっけ?)の頃にgaucheを弄り
rubyよりもずっと前、perlやawkをもっと一般化しようという所期のpythonにも触れていた。

でも最近は新しい言語に食指が向かわずに古い言語を掘り起こすことを楽しむ傾向が強い

arduinoでc (c++?)を書いて遊んだり、lazarusでobject pascalをやってみたり、気が向けば今更感しかない行番号付きのBASICを弄ったりもしている。(え!正気の沙汰と思えないって・・すみません)

最近夙に気にかかるのがsmalltalkのことである
最初のポピュラーな純粋OOP言語って感じで今はごく限られたエリアの教育用環境としてsqueakなどで知られていたりする、あれ。

GNU smalltalkも気にかかるしpharoもやりたい。

貧乏性で気まぐれなのであれこれ調べながらならc#でもschemeでもsmalltalkでもどうにかこうにか動くものが書けるけど自分の思考の型を支配するほどには馴染んでいないので今一つ面白さがわからない。
ずっと損をしているような感じをもっている

OOPであれ関数型であれC#のようなコマーシャルで実務向けのものであれ自分の考えを支配するほどに精通してみたい気持ち

ちょっとsmalltalkをもう一度追いかけてみようか?

※実のところnode.jsでローカルな機能も書いてみたいしc#でwindowsにまつわることなら何でも書けるようにもなりたいし・・
気は散る一方なのです

2019年6月20日木曜日

黎明

先回のブログで心をふさぐ雑事からの解放のようなことを書いたけど実際はまだまだ終わりではなかった。

結局、この月の2/3を過ぎてどうにか着地点が見えてきたようでどうにかこのブログに戻れる気がしてきた

このブログの目的はPCを使った暇つぶしというか生産的でないことを真剣に考えることなのでやっとそこに目が向きだしたと言うことか

まずは暫く自由な時間が取れずにほっておいた不人気言語を弄ることになるのかな?(本当は不人気言語を探し求めているのではなくてたまたま興味を引く言語がちょっと不人気というだけ)

まあ古いOSをいじるとかやりたいことは多くあるので・・・

dosvaxj3が更新されていた。

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