無限に収益性の高いプログラム

アタリ向けのアセンブリゲームのプログラミングに関する最近のSlashdotの記事( ドンキーコングと私 )は、私が青春時代に書いたアセンブラアプリケーションと当時のコンピュータを思い出しました



最初はDEC PDP-8で経験を積んでいましたが、 CP / Mが登場したときに話題になりました。 CP / Mはもともと「ビジネスオペレーティングシステム」でしたが、自宅で手に入れる余裕のあるシステムでもありました。これは、若い新進オタクにとって深刻なことです。



それから私は大同で働きました。 彼らはコンピューターを組み立てたので、私は非常に高価なものを楽しみました:2つの5インチドライブとそれすべて! 主にERSO BIOSのデバッグに取り組みました。 それはたまたまXtal DOSと呼ばれる互換性のあるより洗練されたバージョンのCP / Mを使用したコンピューターTatung Einsteinにありました。



しばらくの間、アインシュタインは本当に素晴らしいマシンでした(MS-DOSを搭載したコンピューターが犠牲になるまで)。 VisiCalc、WordStarなど、あらゆる種類のCP / Mプログラムが起動されました。



また、組み込みのサウンドとグラフィック(色とスプライト!)があったため、おもちゃを楽しむことができました。 そして、すべて499ポンド(思い出してください、それは1984年でした)。 その時までに、たくさん!



ピートユーティリティ


Tatungのアインシュタインの雑誌に記事を書きました(彼らはまだどこかに横たわっています)。 また、彼は商用プログラムも書きました。 最も成功したのはソフトウェアパッケージで、私は非常に創造的に「Pete Utilities」と呼んでいました(1986)。



ユーティリティはZ80アセンブラーで作成され(当時はCについては知りませんでした)、undelete、16進エディター、ファンクションキーにコマンドをぶら下げるためのプログラム(常駐!)、プログラムオートローダー、プリンターコントローラー、タイプライターエミュレーター(はい、私は実際に言葉を使った

「タイプライター」)および他の多くのもの。 ときどきすべてをMS-DOSで移植すると、 Peter Nortonになる可能性があると思います(彼はNorton's Utilitiesから大金を稼いだと思いますが、私はそうしません)。 私は最近、Pete Utilitiesの契約を見つけました。1コピーで1ポンドを受け取りました。



完全を期すために、Pete Utilitiesがどのように書かれたかを伝える価値があります。 それは非常に興味深く、また時代の精神を伝えます。



私はそれらをCP / Mを備えた商用機で書きました-Tatungの別の子孫(TPC-2000-写真の右端のコンピューター)。



 !



写真の左側はタトゥンアインシュタインです。



TPC-2000はEinsteinよりも高速で、より多くのメモリを備えていたため、私のマクロアセンブラはより効率的に作業を行いました。 さらに、「クリーン」なCP / Mがあったため、開発中にアインシュタイン固有の機能を使用しないことを確信できました。 TPC-2000でプログラムを作成した後、特別なカーミットプログラムを使用してアインシュタインに移植しました。 そこで、それをテストし、適切にデバッグすることができました! 当時の完全なコード/ビルド/テストサイクルだけです!



GO.COM


ユーザー(TPC-2000とEinsteinの両方)は、単純なディスク操作を実行する(たとえば、n枚のディスケットの1つでファイルを見つける)ために、現在のアプリケーション(VisiCalc、WordStarなど)を閉じなければならないとしばしば不満を言いました。 本当に迷惑だった。 人気のあるWordStarワードプロセッサを実行していて、既存のファイルを編集したいとします。 ダースがどのフロッピーにあるかわからない場合、つまり、それを見つけるには組み込みのCP / M-DIRコマンドを実行する必要があるとします。 ただし、このためには、まずWordStarを終了する必要があります。 もちろん、ファイルを見つけたら、フロッピーディスクからWordStarを再度起動する必要があります。これは、ドライブの速度をカメと見なして、それ自体がひどいものです(「チャンク-チャンク-チャンク」、覚えている-理解します)!



この問題を解決するために、私はGO.COMを思いつきました。これはおそらく、これまでに書かれた中で最も成功し、無限に収益性の高いプログラムです。



CP / Mのプログラムがメモリにロードされるとき、それは常に同じアドレスから始まり、0100hはいわゆる「一時プログラム領域」(TPA)の始まりです。 DIRなどのネイティブCP / Mプログラムは、別の場所にダウンロードされます。



WordStarはまだメモリ内にあるため(ユーザーが置き去りにしたものの、TPA領域は変更されていない)、フロッピーディスクから再起動するのではなく、TPAから直接再起動することが非常に有用であることを認識しました。 実際、なぜメモリに既にあるものをロードするのですか? DIRまたは他の何かを実行した後にWordStarを再起動するには、0100hにあるコードを実行するだけです。 しかし、これを行う方法は? たとえば、「アドレス0100hに移動」という命令を含む通常のプログラムを作成することはできません。このプログラムはアドレス0100hからTPAにロードされ、そこにあったものが消去されるためです。



その後、GO.COMが登場しました。



GO.COMには単一の命令が含まれておらず、完全に空でした。 ただし、空ではありますが、CP / Mの観点からはまだ本格的なプログラムであったため、CP / Mローダー(ディスクからプログラムを読み取り、TPAに入れるシステムの一部)が静かにロードしました。



これはどのように役立ちますか? 次のシナリオを検討してください。





したがって、0バイトのコードで構成され、1コピーあたり5ポンドで販売されているGO.COMは、世界で最も収益性が高いことが判明しました。



彼女は無限に利益を上げましたか? まあ、私たちがそれでどれだけ稼いだかについて話すならば、もちろん、いいえ-私は無限に金持ちではありません。 ただし、GO.COMは、実際には「何もしないお金」を得る例として役立ちます。 たとえば、バイトあたりの価格は次のように計算できます。







GO.COMについての面白い電話や手紙を思い出します(当時はメールはありませんでした)。 明らかに「コンピューターに精通している」顧客の中には、Tatungに電話して、プログラムのサイズを隠す方法と理由を尋ねました(結局、DIRは0バイトであることを示しました)。 私は彼らにプログラムが本当に0バイトかかると言ったとき、一部はinするようになりました:「あなたは何のために5ポンドを取ることを敢えてしますか?!」



CP / Mシェルにこれ以上組み込みコマンドが含まれていないのは残念です。 有用なディスクコマンドはほとんどありませんでした。





その後、MS-DOSの以前のバージョンにGO.COMを移植しました-.EXE形式が現れるまで。 そして、彼女も素晴らしい仕事をしました!



翻訳者から:翻訳を編集してくれたKVieに感謝します。



All Articles