CP/M移植(1)
2024.02.15
2004年頃にMZ-2000へのCP/M移植をした話は、すでに自分のサイトで書いた。ちょっと久しぶりに思い出してみる。
最初に取り組んだのは高校生の頃で、昭和の末期だった。
図書館から借りてきた本によると、CP/Mは移植できるようだ。その程度の知識からのスタートだった。
ちょうど親戚からもらったMZ-2000が有り、64KB RAM空間だからCP/Mを動かすのにはちょうど良い。
そして当時は、開発ツールがないからハンドアセンブルしかなかった。Z80の命令表を下敷きに入れて持ち歩き、それを見ながらニーモニックをマシン語へ変換していく。
良く出てくる命令は、前に使った部分から書き写せば良いし、やっているうちに覚えてしまい、今でも覚えている。
ある番地から別の番地へのブロック転送は、21 00 00 11 00 80 01 00 20 ED B0 C9 とか。
こんな事に脳の記憶容量を浪費しているなんて。
ハンドアセンブルから脱却しないと、ある程度の規模のプログラムを作るのは非常に効率が悪い。とにかく開発ツールが欲しかった。CP/M上でM80を動かしたかった。
CP/Mはどこから持ってくるかと考えて、いけない事だがPC-8001用とX1用をどこからか入手した。
これを元にして、基本的にはBIOSをMZ-2000用に作れば良い。フロッピーからロードする手段は、また別に必要になる。
PC-8001用やX1用のフロッピーは、MZ-2000で直接読み出す事はできない。直接、というのはたとえばBASICでFILESとやればファイル名のリストが出てきてLOADできるとか、そんなレベルの話。こんなふうに簡単にはできないということ。
とりあえずセクターダンプでは中身をのぞくことができた。但し、FDCの違いによってバスの論理が逆転しているから(MZ-2000はMB8876、他の機種はMB8877など)、論理反転して読み込んでみた。
何番のセクターからどこまでがどのファイルか、なんてのは当時わからなかったから、とにかくひとつずつ読み込んでみて、たぶんここからここまでかな、この分があのファイルじゃないだろうか、と推測していた。
ダンプしていくとテキストファイルだと文字が見えてきて、どうやらこれはBIOSのソースだなと把握することができた。
こうして抽出したテキストをファイル化して、ソースを別のPC上に再現したのは2004年の話。
高校生の当時は、紙にプリントして、うーんと考えるばかり。どこをどう直したら良いんだ?しかもハンドアセンブルで全体を・・・? まだまだ実力が足りなかった。
2004年に取り組んだ時には、別のPC上でソースをアセンブルできる環境があったから、とにかく仕事が進んだ。
ん? 開発環境があるなら今更MZに移植しなくても? (まあ、いいじゃないですか)
最初は1文字入力と出力をシリアル通信に割り当てて、WindowsのPCから通信してCP/Mを動かしていた。そのうちにMZの画面に文字表示できるように作っていったっけ。キーボード入力は作るのが面倒くさくて結局作ってない。
フロッピーから直接CP/M本体を読み込んでブートする方法は最初自分でできなかったから、考えたのはBASICからBLOADすることだった。
とにかくBASIC上で、RAMの空いたところにCP/Mのファイルを読み込んでいき、そこで修正をかけたものをBSAVEして保存すれば!
ちょうど良いことにCP/Mの存在するアドレスとBASICのワークエリアとは干渉しない。
一部だぶったっけ。もう忘れたが、とにかく最初BASICが起動し、それからCP/MをBLOADして、CP/Mへジャンプしたら後はCP/Mだけが動く世界。
最初に取り組んだのは高校生の頃で、昭和の末期だった。
図書館から借りてきた本によると、CP/Mは移植できるようだ。その程度の知識からのスタートだった。
ちょうど親戚からもらったMZ-2000が有り、64KB RAM空間だからCP/Mを動かすのにはちょうど良い。
そして当時は、開発ツールがないからハンドアセンブルしかなかった。Z80の命令表を下敷きに入れて持ち歩き、それを見ながらニーモニックをマシン語へ変換していく。
良く出てくる命令は、前に使った部分から書き写せば良いし、やっているうちに覚えてしまい、今でも覚えている。
ある番地から別の番地へのブロック転送は、21 00 00 11 00 80 01 00 20 ED B0 C9 とか。
こんな事に脳の記憶容量を浪費しているなんて。
ハンドアセンブルから脱却しないと、ある程度の規模のプログラムを作るのは非常に効率が悪い。とにかく開発ツールが欲しかった。CP/M上でM80を動かしたかった。
CP/Mはどこから持ってくるかと考えて、いけない事だがPC-8001用とX1用をどこからか入手した。
これを元にして、基本的にはBIOSをMZ-2000用に作れば良い。フロッピーからロードする手段は、また別に必要になる。
PC-8001用やX1用のフロッピーは、MZ-2000で直接読み出す事はできない。直接、というのはたとえばBASICでFILESとやればファイル名のリストが出てきてLOADできるとか、そんなレベルの話。こんなふうに簡単にはできないということ。
とりあえずセクターダンプでは中身をのぞくことができた。但し、FDCの違いによってバスの論理が逆転しているから(MZ-2000はMB8876、他の機種はMB8877など)、論理反転して読み込んでみた。
何番のセクターからどこまでがどのファイルか、なんてのは当時わからなかったから、とにかくひとつずつ読み込んでみて、たぶんここからここまでかな、この分があのファイルじゃないだろうか、と推測していた。
ダンプしていくとテキストファイルだと文字が見えてきて、どうやらこれはBIOSのソースだなと把握することができた。
こうして抽出したテキストをファイル化して、ソースを別のPC上に再現したのは2004年の話。
高校生の当時は、紙にプリントして、うーんと考えるばかり。どこをどう直したら良いんだ?しかもハンドアセンブルで全体を・・・? まだまだ実力が足りなかった。
2004年に取り組んだ時には、別のPC上でソースをアセンブルできる環境があったから、とにかく仕事が進んだ。
ん? 開発環境があるなら今更MZに移植しなくても? (まあ、いいじゃないですか)
最初は1文字入力と出力をシリアル通信に割り当てて、WindowsのPCから通信してCP/Mを動かしていた。そのうちにMZの画面に文字表示できるように作っていったっけ。キーボード入力は作るのが面倒くさくて結局作ってない。
フロッピーから直接CP/M本体を読み込んでブートする方法は最初自分でできなかったから、考えたのはBASICからBLOADすることだった。
とにかくBASIC上で、RAMの空いたところにCP/Mのファイルを読み込んでいき、そこで修正をかけたものをBSAVEして保存すれば!
ちょうど良いことにCP/Mの存在するアドレスとBASICのワークエリアとは干渉しない。
一部だぶったっけ。もう忘れたが、とにかく最初BASICが起動し、それからCP/MをBLOADして、CP/Mへジャンプしたら後はCP/Mだけが動く世界。
非常用電源
2024.02.12
ポータブル電源は、まだ手が出ません。何と言っても安全性が気になります。リチウムイオン電池の発火事故が怖くて。
それに電池の特性では長期保存時に半分程度の充電にしておかなければなりません。満充電だと寿命が縮みます。その管理も厄介です。
使いたい時に容量半分だとどうなのかと思うし・・・
そこで個人的には鉛バッテリーなのかな、やっぱり、と考えています。

(写真は一例)
カーバッテリー同様に、常時満充電を維持することが基本になっています。
UPSも未だに鉛バッテリーが良く使われています。
浮動充電(常時弱い電流で補充電)を行っていれば、いざという時に満充電で使えます。
欠点は重いことです。なにしろ鉛ですから・・・
これと安価なインバータを組み合わせる。さすがに冷蔵庫まで動かそうとは思いませんが、身の回りの照明とか通信手段に利用できれば。
そしてUSB機器の充電ができるようにすることです。
それに電池の特性では長期保存時に半分程度の充電にしておかなければなりません。満充電だと寿命が縮みます。その管理も厄介です。
使いたい時に容量半分だとどうなのかと思うし・・・
そこで個人的には鉛バッテリーなのかな、やっぱり、と考えています。

(写真は一例)
カーバッテリー同様に、常時満充電を維持することが基本になっています。
UPSも未だに鉛バッテリーが良く使われています。
浮動充電(常時弱い電流で補充電)を行っていれば、いざという時に満充電で使えます。
欠点は重いことです。なにしろ鉛ですから・・・
これと安価なインバータを組み合わせる。さすがに冷蔵庫まで動かそうとは思いませんが、身の回りの照明とか通信手段に利用できれば。
そしてUSB機器の充電ができるようにすることです。
回覧とメール
2024.02.12
社会に出たのは30年以上前、無我夢中で走ってきたらいつの間にかという感じである。
最初に勤めた怪社では、職場で色々な回覧が回ってきていた。
当時は電子メールどころか、個人ごとのPCは無かった。
部品表や図面などはほとんど手書きで、PCは数台しか無く、CADはもっと少なく、それらをみんなで共有していた。共有というか早い者勝ちで、自分のような下っ端の若造はおこぼれで使える程度だったのである。
CADを長時間占有していると、早くどけとか圧力をかけられる。
余談だが、
そんな状態だったので、仕事上の必要か、業務効率化のために個人でPCを買って怪社に持ち込んでいた人がいた。
ある日、総務部の人たちが回ってきて、会社の備品を総点検しているという。確認の済んだ物にはラベルが貼られていった。
とにかく手当たり次第に見てはラベルを貼り付けていったが、その中で、個人PCまで会社の備品としてラベルが貼られてしまっていた。本人、総務部に電話して事情を説明していたが、そもそも買った記録も何も確認せずに、現状に対して単純作業をしていたのは問題だろう。なんていい加減な、と言われても仕方がない。
そのうちに、係長以上にはノートPCが支給された。下っ端の若造の自分には回ってくるはずもなく、自分でジャンクのラップトップを買って持ち込んだりした。
その係長以上のPCも、係長や課長は白黒液晶の98ノート、部長だけカラー液晶の98ノートというヒエラルキーだった。
いまではカラー液晶なんか当たり前なんだが、当時は白黒液晶の方が多かったし、カラーは高価な機種だった。白黒というか青白みたいな液晶もあった。
回覧の話に戻るが、
全員に周知すべき連絡事項とか、新製品のカタログなどが回覧されてきていた。
添付された紙切れには全員の名前とチェック欄があり、閲覧が済んだらマークを入れて、まだ見ていない人へ回す。
病気で休んだり、出張で留守にした後は大変で、自分の机上は回覧が山積みになっていた。これらの処理がまた面倒くさかった。
それに、こんなふうに誰かのところで停まっていると情報伝達の遅れで不都合も生じないかと思う。出勤している人の中で全部回してしまったほうがよくなかったか。
まあ、みんな面倒だから適当に回したんだろうけど、効率も何も考えていなかった。
そして、一番最後の人がその回覧物をどうするかというのも課題だった。ゴミ箱へ入れるのか、所定のファイルに綴じるのか。最後の人に押し付けられてしまう。
いまの時代ならメールに資料を添付して関係者にCCまたはBCCで送れば一瞬で済むしゴミも出ない。保存もフォルダに入れておけば済む。
振り返ってみると、なんとも無駄な事をしていたのだが、当時はそれが当たり前だったから仕方がない。
最初に勤めた怪社では、職場で色々な回覧が回ってきていた。
当時は電子メールどころか、個人ごとのPCは無かった。
部品表や図面などはほとんど手書きで、PCは数台しか無く、CADはもっと少なく、それらをみんなで共有していた。共有というか早い者勝ちで、自分のような下っ端の若造はおこぼれで使える程度だったのである。
CADを長時間占有していると、早くどけとか圧力をかけられる。
余談だが、
そんな状態だったので、仕事上の必要か、業務効率化のために個人でPCを買って怪社に持ち込んでいた人がいた。
ある日、総務部の人たちが回ってきて、会社の備品を総点検しているという。確認の済んだ物にはラベルが貼られていった。
とにかく手当たり次第に見てはラベルを貼り付けていったが、その中で、個人PCまで会社の備品としてラベルが貼られてしまっていた。本人、総務部に電話して事情を説明していたが、そもそも買った記録も何も確認せずに、現状に対して単純作業をしていたのは問題だろう。なんていい加減な、と言われても仕方がない。
そのうちに、係長以上にはノートPCが支給された。下っ端の若造の自分には回ってくるはずもなく、自分でジャンクのラップトップを買って持ち込んだりした。
その係長以上のPCも、係長や課長は白黒液晶の98ノート、部長だけカラー液晶の98ノートというヒエラルキーだった。
いまではカラー液晶なんか当たり前なんだが、当時は白黒液晶の方が多かったし、カラーは高価な機種だった。白黒というか青白みたいな液晶もあった。
回覧の話に戻るが、
全員に周知すべき連絡事項とか、新製品のカタログなどが回覧されてきていた。
添付された紙切れには全員の名前とチェック欄があり、閲覧が済んだらマークを入れて、まだ見ていない人へ回す。
病気で休んだり、出張で留守にした後は大変で、自分の机上は回覧が山積みになっていた。これらの処理がまた面倒くさかった。
それに、こんなふうに誰かのところで停まっていると情報伝達の遅れで不都合も生じないかと思う。出勤している人の中で全部回してしまったほうがよくなかったか。
まあ、みんな面倒だから適当に回したんだろうけど、効率も何も考えていなかった。
そして、一番最後の人がその回覧物をどうするかというのも課題だった。ゴミ箱へ入れるのか、所定のファイルに綴じるのか。最後の人に押し付けられてしまう。
いまの時代ならメールに資料を添付して関係者にCCまたはBCCで送れば一瞬で済むしゴミも出ない。保存もフォルダに入れておけば済む。
振り返ってみると、なんとも無駄な事をしていたのだが、当時はそれが当たり前だったから仕方がない。