スキップしてメイン コンテンツに移動

投稿

8月, 2020の投稿を表示しています

Altair 8800 Emu

エミュレータのディスクイメージを操作するための調査中。 137Byte×32Sector×77トラックをなんとなくテキスト化してみたら、 Track0~5とTrack6~76でフォーマットが違う。 なんだろう?と思いつつグーグル先生に頼っていたら、こういうのを発見した。   https://deramp.com/downloads/mfe_archive/010-S100%20Computers%20and%20Boards/00-MITS/40-Software/DSK%20Disk%20Images/Altair%20cpm%20Disk%20Images/Burcon%20(MITS)%20CPM.pdf となると、Track6からデータなんだろうか? 見た目では、Track2にディレクトリ情報があるように見えるのでそれも違うだろう。 答えはCP/MのDPBに書いてあるらしい。 あれこれ調べたら、DPBはCP/MのBDOSで定義しているらしく、実装によって さまざまな定義になっているとか。 CP/Mは「8インチ片面単密度IBMフォーマット」で統一されている、と勝手に 思っていたのだけど、どうやら違うらしい。(でなければ137バイトなんて出てこない) cpmtoolsというのを見つけだけど、なるほどこれは大変だ・・・。 MS-DOS(PC-DOS)でフロッピーのフォーマットを固定化できたのはIBMの功績、なのだろう。 で、ESP32のAltair8800エミュでのDPBをどうやって調べる?ということに話が戻る・・。 CP/Mを知ったころにはナゾなシステムコール「DPBのアドレスを返す」のはここで使う のか、と。。。 とはいえ、このシステムコールってなんの用途で存在しているのだろう?? BDOS上のテーブルだから書き換えられないだろうし、どういう用途があるのだろう? とはいえ、今は目的のものがそこにあるので、呼ばない手はない。 だが、i8080アセンブラでCP/M上のプログラムを作るのか・・・。 Z-80/i8080のことでお世話になっている中日電工さんで、CP/Mの解説を以前されていた ことを思い出し、過去情報を読んでいると、そのものずばりな記事がありました。   https://userweb.alles.or.jp/chunichidenko/cpm_myc

ORANGE-ESPer FabGL-Altair transdisk.py

 こういう情報を発見しました。   https://groups.google.com/g/comp.os.cpm/c/RV9U9msAd68?pli=1 曰く、「MacとWinじゃPause->S でディスクイメージ転送できなかったけど、RasPi4ならtransdisk.pyでできたよ」と。 RasPi4ということはRaspbianだろうしLinuxですよね、ということで、WindowsPCに インストール済みのVirtualBOXにUbuntuServerをインストールして、USB-Serialを UbuntuServerに接続。Pause->SでAドライブを転送してみましたが、中身は全部Null。 これでもダメか・・と思ったのですが、そういえばCドライブを使ってなかったことに 気づき、FORMATを実行して、PIPコマンドで適当にファイルをコピーしました。 再度、Pause->S->C と実行してみるとなんかデータが入っている!!! が、ORANGE-ESPer(FabGlのAltiir)の電源を切って同じことをすると、できたファイルは またしてもNull。。。なにがどうなのやら? Aドライブを指定するとNullじゃないファイルができたので、はてさて?? 出来上がったファイルは337568バイトなので、137Byte×16Sector×2Head×77Track なんだろうけど、これってどうやって操作するのだろう。。。?

ORANGE-ESPer

オレンジピコショップさんで販売されている、ORANGE-ESPerを買いました。   http://www.picosoft.co.jp/ESP32/ TTGO VGA32 Ver1.4も買ってたのですが、なにをやったのかROM書き込みができなく なったので、気分一新です。 組み立ては簡単なのだけど、近眼なのでコンタクトレンズ装備では見えない(笑 裸眼になって思い切り近づいて半田付けをがんばりました。 PS/2コネクタのキーボードはあるのですが、USBコネクタのPS/2キーボードは 手持ちにありません。 基板にはマウス用としてPS/2コネクタがあるので、そっちを使えば問題なさそう。 FabGLのAltair8800を動かすのが目的なので、(arduino-IDEはportable)  portable\sketchbook\libraries\FabGL\src\comdrivers\ps2controller.cpp をちょっと改造。 void PS2Controller::begin(PS2Preset preset, KbdMode keyboardMode) のcase文に     case PS2Preset::KeyboardPort1:       // only keyboard configured on port 1       // this will call setKeyboard and begin()       (new Keyboard)->begin(GPIO_NUM_26, GPIO_NUM_27, generateVirtualKeys, createVKQueue);       break; を追加して、  portable\sketchbook\libraries\FabGL\src\comdrivers\ps2controller.h の enum class PS2Preset { に KeyboardPort1 を追加。 最後に Altair8800.ino の KeyboardPort0 を KeyboardPort1 に書き換えて完了。

共有VHDXはどこに作るの?

VMWareでSQLserverのクラスタを作る方法を調べていて、似たようなHyper-Vでクラスタを作る方法について概要を知りました。  https://www.atmarkit.co.jp/ait/articles/1312/05/news102_2.html なるほど。クラスターの共有ボリュームに使う共有DISKにはiSCSIとかFCのほかにVHDX共有(共有VHDXという表記もある)が使えるのね、っと。 で、そのVHDX共有はどうやって実現するのさ、って調べてて  https://yamanxworld.blogspot.com/2013/07/windows-server-2012-r2-preview-hyper-v.html ほぅ。「共有VHDXは、スケールアウトファイルサーバー上の共有か、クラスターの共有ボリューム (CSV) に配置する必要がある」と。。。 クラスターの共有ボリュームを作りたいから共有VHDXを作りたいのだけど・・。 次は、スケールアウトファイルサーバーてのを調べないといけないわけか。