知らずに貴重なソフトを捨てた
2024.09.24
親戚からMZ-2000が届いた後、わけがわからないまま、とりあえずフロッピーを片っ端からFDDにつっこんでは起動するかどうか、あるいはBASIC起動後、フロッピーを差し替えながらFILES(DIR)で中身を確認していた。
すると、いくつか読み込めない物があった。
(この時点では無知で、たとえばシャープBASICとHu-Basicのファイルシステムの違いなんか全く知らず、相互に違うフロッピーを読み込もうとしてエラーとなり読み込めない。勘違いして、壊れたフロッピーディスクだと思い込んだ)
確かに、フロッピーに傷が入っており、見た目で駄目なものもあった。ここまで削れたら駄目だよなと。そもそもタバコのヤニでコーティングされていたようなもの。
大量のフロッピーの中には、貴重なソフトもいくつかあったらしい。これは後から判明した。あとで送り主の本人と直接会う機会があり、雑談をしていたら、そのソフトは有ったはずだよと。
読み込めないものと勘違いして、捨ててしまった! 当時は庭でゴミを燃やすのは規制されてなかったから、ゴミと一緒に燃やしてしまった。
MZ-2000用のCP/Mもあったよ!と言われて、ええっ、まさか、そんな・・・大ショック。
これが2004年のMZ-2000へのCP/M移植へ結びつくとは。
なんでCP/Mが必要だったか?アセンブラやリンカが欲しかった。
当時アセンブラの開発環境(ソフト)は無く、ハンドアセンブルしかなかった。コード表を見ながら、ニーモニックからマシン語に変換していた。いま思えば地獄のようだった。
しかしこのおかげで、Z80のマシン語を覚えてしまい、いまでもダンプからニーモニックに変換できる。
BASIC上でアセンブラ、逆アセンブラを作ろうと試みたこともあった。結局、途中で挫折して(根性が続かない)中途半端に終わってしまっていた。
ハンドアセンブルでは、ある程度大きいプログラムを作ろうとすると非常に効率が悪い。相対アドレスをFF, FE, FD, FC, FB, FA・・・と逆に数えたり、命令を追加したり削ったりするたびにやりたくない。
MZの話から脱線するけど、アセンブラのソフトを手に入れたのは専門学校の学生になってから。
それだって最初はMSXの書籍に載っていたやつを打ち込んで使っていたもんな。確かモニタアセンブラって言わなかったっけ。BASIC上で動くやつじゃなかったか。
ソースをBASICのREM文の形で記述していって、アセンブラ自身が破壊されるので再びロードする手間がなかったっけ。
あんまり大変だったので、思い切ってMSX-DOS2 TOOLSを買って、MSX-Cも買って、MSX上での開発環境をようやく整えた。
さらにMSXからMZへ(または逆方向)の転送を行うハードウェアを手作りし、相互にプログラムやデータの転送ができるようにした。MSX上でアセンブルしたものをMZ上で動かす事も可能となった。
高校生の頃にもCP/M移植を考えたけど、ハンドアセンブルでは到底やりきれないものだった。いや、できるよそのくらいって言いたくなる人はいるかもしれないけど、やはり効率が違う。BIOS自体を作らなければならなかったのだから。
2004年のCP/M移植ではWindows PC上のアセンブラ(確かフリーソフトのZASM)を使って、TeraTermだったか、シリアル通信を使ってMZにプログラムを送り込んでいた。
もちろんMZ側のシリアルI/Fは当初手作りだった。
受信はBASICでも良く、MZ側は処理が遅くて取りこぼしそうだったが、遅くても確実に転送できるようにゆったり構えていた。
BASIC上からマシン語で記述した受信ルーチンを呼んでいたかどうかは忘れたけど、とにかくRAM上にBIOSなどCP/Mの動作に必要なプログラムが揃えば、BASICからBSAVEでフロッピーに保存できた。
あとは、これらをBLOADして、その開始アドレスへ飛べばCP/Mが動き始める仕掛けにした。
最初はシリアル通信で接続したPCからの1文字入力、1文字表示で動かしていたが、少しずつBIOSを整備しMZ側での画面表示を作り、次にキーボード入力を作ろうとしたがよくわからなくてそれっきりになっている。
すると、いくつか読み込めない物があった。
(この時点では無知で、たとえばシャープBASICとHu-Basicのファイルシステムの違いなんか全く知らず、相互に違うフロッピーを読み込もうとしてエラーとなり読み込めない。勘違いして、壊れたフロッピーディスクだと思い込んだ)
確かに、フロッピーに傷が入っており、見た目で駄目なものもあった。ここまで削れたら駄目だよなと。そもそもタバコのヤニでコーティングされていたようなもの。
大量のフロッピーの中には、貴重なソフトもいくつかあったらしい。これは後から判明した。あとで送り主の本人と直接会う機会があり、雑談をしていたら、そのソフトは有ったはずだよと。
読み込めないものと勘違いして、捨ててしまった! 当時は庭でゴミを燃やすのは規制されてなかったから、ゴミと一緒に燃やしてしまった。
MZ-2000用のCP/Mもあったよ!と言われて、ええっ、まさか、そんな・・・大ショック。
これが2004年のMZ-2000へのCP/M移植へ結びつくとは。
なんでCP/Mが必要だったか?アセンブラやリンカが欲しかった。
当時アセンブラの開発環境(ソフト)は無く、ハンドアセンブルしかなかった。コード表を見ながら、ニーモニックからマシン語に変換していた。いま思えば地獄のようだった。
しかしこのおかげで、Z80のマシン語を覚えてしまい、いまでもダンプからニーモニックに変換できる。
BASIC上でアセンブラ、逆アセンブラを作ろうと試みたこともあった。結局、途中で挫折して(根性が続かない)中途半端に終わってしまっていた。
ハンドアセンブルでは、ある程度大きいプログラムを作ろうとすると非常に効率が悪い。相対アドレスをFF, FE, FD, FC, FB, FA・・・と逆に数えたり、命令を追加したり削ったりするたびにやりたくない。
MZの話から脱線するけど、アセンブラのソフトを手に入れたのは専門学校の学生になってから。
それだって最初はMSXの書籍に載っていたやつを打ち込んで使っていたもんな。確かモニタアセンブラって言わなかったっけ。BASIC上で動くやつじゃなかったか。
ソースをBASICのREM文の形で記述していって、アセンブラ自身が破壊されるので再びロードする手間がなかったっけ。
あんまり大変だったので、思い切ってMSX-DOS2 TOOLSを買って、MSX-Cも買って、MSX上での開発環境をようやく整えた。
さらにMSXからMZへ(または逆方向)の転送を行うハードウェアを手作りし、相互にプログラムやデータの転送ができるようにした。MSX上でアセンブルしたものをMZ上で動かす事も可能となった。
高校生の頃にもCP/M移植を考えたけど、ハンドアセンブルでは到底やりきれないものだった。いや、できるよそのくらいって言いたくなる人はいるかもしれないけど、やはり効率が違う。BIOS自体を作らなければならなかったのだから。
2004年のCP/M移植ではWindows PC上のアセンブラ(確かフリーソフトのZASM)を使って、TeraTermだったか、シリアル通信を使ってMZにプログラムを送り込んでいた。
もちろんMZ側のシリアルI/Fは当初手作りだった。
受信はBASICでも良く、MZ側は処理が遅くて取りこぼしそうだったが、遅くても確実に転送できるようにゆったり構えていた。
BASIC上からマシン語で記述した受信ルーチンを呼んでいたかどうかは忘れたけど、とにかくRAM上にBIOSなどCP/Mの動作に必要なプログラムが揃えば、BASICからBSAVEでフロッピーに保存できた。
あとは、これらをBLOADして、その開始アドレスへ飛べばCP/Mが動き始める仕掛けにした。
最初はシリアル通信で接続したPCからの1文字入力、1文字表示で動かしていたが、少しずつBIOSを整備しMZ側での画面表示を作り、次にキーボード入力を作ろうとしたがよくわからなくてそれっきりになっている。
トラックバックURL
トラックバック一覧
コメント一覧
コメント投稿