アカウント名:
パスワード:
8080 vs 8088
ソースはトランスレータが移植に使われたんでしたっけ。
CP/MもMS-DOSもカーネルのかなりの部分はファイルシステムだし、CP/MとMS-DOSとでファイルシステムの構造からして違うし、トランスレータなんか使うとこほとんどないと思うぞ。
もしかしてMS-DOS V2の話ですか?
Ver.2で組み込まれた階層ディレクトリかなんかの話と勘違いしてるのかな?MS-DOSはそれ以前のQDOSの頃からファイルシステムはFATですよ。CP/Mとはぜんぜん違う。
何が「そうですね」か分からんけど、CP/Mはユーザー番号で擬似的に名前空間分けれるよ。
アプリの移植とOSの移植と区別つかない人ですか?
大元コメのトランスレータはアプリの話であって、お前がOSの話だと勘違いしてるだけやないの?
じゃあ大元コメは関係ない話をしてることになるなw
>ソースはトランスレータが移植に使われたんでしたっけ。の変換のソースはどこからやってくるんだよ。CP/MのソースをMSが持ってるわけじゃないんだから、アプリの話だと分かるだろ。
の変換のソースはどこからやってくるんだよ。
ふつーに考えて逆アセンブルだろ。
>変換のソースはどこからやってくるんだよ。
逆汗とか、事務所忍び込むとか、内通者がいるとか、可能性は色々考えられる罠。
>CP/MのソースをMSが持ってるわけじゃないんだから
QDOS作ってた頃はMSじゃないぞ。
逆アセンブル→トランスレート→アセンブルするぐらいだったら、直接バイナリ変換すると思う。
完全に自動でできるわけではなかったから人間にも(多少は)読みやすい形式のほうが都合よかったんじゃね。当時は16進のダンプリストを直接読めたとかオープンリールの磁気の濃淡からプログラムを読み取れたとか信じられないような伝説もあるみたいだけど
コードとデータの判別どーすんの?
当時のコードは自己書き換えとか命令の途中にジャンプで飛び込むと違う命令列として解釈されるとか当たり前のように行ってたしな
CP/M-80でしたら、BDOS(ファイルシステム)とCCP(コンソール)はそんなトリッキーなことはしてなかったような。大半はPL/Mで書いてあって、レジスタの使い方が決まっていましたし。
思い出すと、ユーザプログラムのロードを低位アドレスからにしているため、CP/M自体は最上位に置かれました。ただしユーザが使用するメモリサイズを自由に(といっても上限64kB)設定できるので、OSのメモリマップが確定しません。ところが8080は絶対ジャンプ/コールしかできないのでプログラムはリロケータブルにできません。そこで、専用のリロケータがOSの一部として含まれていました(MOVCPM.COM)。これは逆アセンブルしてみたところ、たとえばDEレジスタにポインタが入っている、といった前提で絶対アドレスを書き換える仕組みのものでした。なので、あまりハンドコーディングで最適化してしまうと問題がでたんじゃないかと想像します。
BIOS(コンソールやFDDなどの入出力)はハードウェア依存なので、お手本のソースが添付されており、それをユーザがめいめいカスタマイズして使うことができました。もちろん、メーカーが自社製品に添付するものは専用にカスタマイズしたものが最初からFDに書き込まれれていましたが、多くはソースコードが添付されていたようです。
以上オフトピック気味な昔話でした。
マルウェア業界では今でも使われてませんか?>命令の途中にジャンプで~
途中の命令にジャンプ~は使われてると思うけど、命令の途中にジャンプ~はあんまないんじゃないかな。
整理しよう・CP/Mのソースは当時公開されていた(も同然だった)・CP/MとCP/M-86の関係は別物なので論点には要注意・インテルニーモニックで表記しておけば、8080→8086への変換はトランスレータを作らずとも簡単だった
それは構成的にわざと互換を持たせたってだけだと思うのだが。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie
ヒント (スコア:0)
8080 vs 8088
ソースはトランスレータが移植に使われたんでしたっけ。
Re:ヒント (スコア:0)
CP/MもMS-DOSもカーネルのかなりの部分はファイルシステムだし、CP/MとMS-DOSとでファイルシステムの構造からして違うし、トランスレータなんか使うとこほとんどないと思うぞ。
Re: (スコア:0)
もしかしてMS-DOS V2の話ですか?
Re: (スコア:0)
Ver.2で組み込まれた階層ディレクトリかなんかの話と勘違いしてるのかな?
MS-DOSはそれ以前のQDOSの頃からファイルシステムはFATですよ。CP/Mとはぜんぜん違う。
Re:ヒント (スコア:1)
Re: (スコア:0)
何が「そうですね」か分からんけど、CP/Mはユーザー番号で擬似的に名前空間分けれるよ。
Re: (スコア:0)
アプリの移植とOSの移植と区別つかない人ですか?
Re: (スコア:0)
大元コメのトランスレータはアプリの話であって、お前がOSの話だと勘違いしてるだけやないの?
Re: (スコア:0)
じゃあ大元コメは関係ない話をしてることになるなw
Re: (スコア:0)
>ソースはトランスレータが移植に使われたんでしたっけ。
の変換のソースはどこからやってくるんだよ。
CP/MのソースをMSが持ってるわけじゃないんだから、アプリの話だと分かるだろ。
Re: (スコア:0)
ふつーに考えて逆アセンブルだろ。
Re: (スコア:0)
>変換のソースはどこからやってくるんだよ。
逆汗とか、事務所忍び込むとか、内通者がいるとか、可能性は色々考えられる罠。
>CP/MのソースをMSが持ってるわけじゃないんだから
QDOS作ってた頃はMSじゃないぞ。
Re: (スコア:0)
逆アセンブル→トランスレート→アセンブルするぐらいだったら、直接バイナリ変換すると思う。
Re: (スコア:0)
完全に自動でできるわけではなかったから人間にも(多少は)読みやすい形式のほうが都合よかったんじゃね。当時は16進のダンプリストを直接読めたとかオープンリールの磁気の濃淡からプログラムを読み取れたとか信じられないような伝説もあるみたいだけど
Re: (スコア:0)
コードとデータの判別どーすんの?
Re: (スコア:0)
当時のコードは自己書き換えとか命令の途中にジャンプで飛び込むと違う命令列として解釈されるとか当たり前のように行ってたしな
Re:ヒント (スコア:4, 興味深い)
CP/M-80でしたら、BDOS(ファイルシステム)とCCP(コンソール)はそんなトリッキーなことはしてなかった
ような。大半はPL/Mで書いてあって、レジスタの使い方が決まっていましたし。
思い出すと、ユーザプログラムのロードを低位アドレスからにしているため、CP/M自体は最上位に置かれました。
ただしユーザが使用するメモリサイズを自由に(といっても上限64kB)設定できるので、OSのメモリマップが確定しません。
ところが8080は絶対ジャンプ/コールしかできないのでプログラムはリロケータブルにできません。
そこで、専用のリロケータがOSの一部として含まれていました(MOVCPM.COM)。
これは逆アセンブルしてみたところ、たとえばDEレジスタにポインタが入っている、といった前提で絶対アドレスを
書き換える仕組みのものでした。なので、あまりハンドコーディングで最適化してしまうと問題がでたんじゃないかと
想像します。
BIOS(コンソールやFDDなどの入出力)はハードウェア依存なので、お手本のソースが添付されており、それをユーザが
めいめいカスタマイズして使うことができました。もちろん、メーカーが自社製品に添付するものは専用にカスタマイズ
したものが最初からFDに書き込まれれていましたが、多くはソースコードが添付されていたようです。
以上オフトピック気味な昔話でした。
Re:ヒント (スコア:1)
マルウェア業界では今でも使われてませんか?>命令の途中にジャンプで~
Re: (スコア:0)
途中の命令にジャンプ~は使われてると思うけど、命令の途中にジャンプ~はあんまないんじゃないかな。
Re: (スコア:0)
整理しよう
・CP/Mのソースは当時公開されていた(も同然だった)
・CP/MとCP/M-86の関係は別物なので論点には要注意
・インテルニーモニックで表記しておけば、8080→8086への変換はトランスレータを作らずとも簡単だった
Re: (スコア:0)
それは構成的にわざと互換を持たせたってだけだと思うのだが。