アカウント名:
パスワード:
ゲームマシンとしての側面もあるが、多くのプログラマを育てた機種という側面もある。私もそのひとり。 とはいえ、今になってプログラミング環境まで忠実に再現したとて、そこに魅力を見いだせるかと言うと……。
実機は今も棚に飾ってある。人生の一部というほど思い入れのあるマシンだけど、自分にはそれだけでいいかなぁ。
スペック的にはUNIX動いてX-Window動いたんだろうけど そういう使い方している話はあまり聞こえてこなくて どこまでも高性能な「マニアックなホビーパソコン」でしたねぇ まあスプライトなんてゲーム以外に使わないでしょうから
68000にはMMUがないですし、X68030もMMUなしの68EC030を載せてるのでUNIXは無理ですよ。X68kで X Window System が動くOSとしてはMINIXとかNetBSD/x68kがありましたが、MMU有りのCPUへのCPU交換が必須でした。(MINIXは元が16bitのIBM PC用なので、移植版は素のX68000でも動きましたが、Xまでは動かせられなかった。)
他にはOS/9もありましたが、X68000用のOSとしては「MS-DOSをそのまんま68000に移植した」ような仕様の Human68k を使うのが基本ですね。「MS-DOSの感覚で12MBのメモリをリニアに使えるプラットフォーム」ってのは、プログラマにとっては手軽で良かったです。16bitでMS-DOSだと、64kB超のメモリが必要になると、セグメントの壁のせいで面倒が多い…
正 OS-9誤 OS/9
X68000はご指摘の通りMemory Management Unit(MMU)がなかったので、OS-9 for X68000はLEVELⅠで、仮想記憶は使えませんでした。
MC68000のニモニックはC言語との親和性も高くて覚えやすかったし、メモリ空間の壁もなくて楽でしたねえ。
#奇数アドレスの壁から目をそらしながら
当時としてはレジスタが潤沢に使えるのが楽だった。データレジスタだけでも8本あったし、最上位bitの扱いが違うだけのアドレスレジスタも8本。
アセンブリ言語を学習するにはとてもいい環境だったと思う。バイトオーダーで発狂しなくて済むし。
同じころ学校ではZ80のマイコンボードでの実習があったけど、レジスタ少なくて面倒くさかった。
68000のアセンブラを知るまでは、C言語ってなんかすごい変換をするコンパイラって印象でしたが、
68000のアセンブラを知ると、「C言語は高級アセンブラ」という言葉を体感できましたね。特に、X68000のCコンパイラVer1は、良くも悪くも教科書通りの実装って感じで、最適化も弱くて、C言語で書いたコードとアセンブリ出力がほぼ一対一対応したりするし。あれでC言語への理解が深まりました。
68000のポストインクリメント/プリデクリメント命令が上手く使われるように「*++p」と「*--p」を良く使ったりとか。gccは最適化がすごく強力だったけど、それでも、ループにDBRA (1引いて-1じゃなかったらジャンプする、という減算と条件ジャンプを同時に行う高速な命令)を使うために、「do {…} while (--i != -1);」とするってのもあった。DBRAの意味そのままのC言語コードなら、DBRAにしてくれる。
68000が良かった点としてエンディアンとかの知識が無くともそのまま読めるのも良かったんですよね。後になってリトルエンディアンの存在を知って、「面倒だ」って印象しか無かった。
ポインタのポインタはMC68Kのおかげで理解が進んだなあ#奇数アドレスの罠で暴走した経験から目をそらしながら
コア部分はMS-DOSもどきだったけどグラフィックやサウンド周りのAPIが体系的に整備されていたのが凄かった。98だと大半は自前で何とかしないといけなかったし。
BASICでもCで一通り何でもできてプログラミングのハードルが低かったのが当時としては画期的だったと思う。(私も持ってたよ)
今となってはソフトつきのミニシリーズなら何とかぐらいの価値しかないが。環境だけなら(ハード無しの)エミュレータで十分だしね。
Lisa/Macintosh XLではV7やSystem IIIベースのUNIXが走ってたよ、XENIXとかUniPlusだったかな。 CPUは当然68000(外部MMUは載ってたかも)
Lisa 2のMMUは、米国特許 US4926316A になってるようですね。論理アドレス24bitを物理アドレス21bit (2MB)で扱う感じ。68000勢は自前のMMUを実装必要だったから…。
コンテキストがたった4つかぁ(スーパーバイザx1、プロセスx3)。
68000にはMMUがないですし、X68030もMMUなしの68EC030を載せてるのでUNIXは無理ですよ。
初期のUNIXは仮想記憶なかったし「UNIXは無理」は物知らずなだけ。
細かいことを言えば初期のUNIXは仮想記憶を実装していなかったので、(実用になるかはともかく)MMUがなければUNIXは無理というわけではない。
超すごいスプライトで3Dグラフィックを実現したセガサターンというゲーム機があってだな
SH-2AがEOLになったの最近だからルネサス儲かっただろうな
68000はメモリ保護機能がないからUNIXはキツいな。MMU使えるのは68020以上じゃなかったっけ?(68010は68020の8bitバス版だったっけ?)
68010は、68000に以下の改良をしたもの。一部の68000コードで非互換問題あり。1、仮想マシン対応。ユーザーとスーパーバイザを分離しても、スーパーバイザからユーザーメモリにアクセス可能。2、仮想記憶対応。バスエラーからのアクセスの再開が可能。3、アドレスの24bit以上の有効化。4、例外ベクタが移動可能になった。
68008が、68000の外部バス8bit、アドレスバス20bit版。でも奇数アドレスからの16bitアクセスはできない。
C Compiler pro 68Kも本体とセットで買いましたよけど実際はタイトル忘れたけど黒字に緑と橙でタイトルが書かれたムックに付いてたGCC使ってたwたしかインタラプトスイッチ押すと内蔵デバッガが起動するのも面白かったな他にもOh!Xの連載で色々開発環境も手に入ったっけ
GCCのムック買ったわ。分厚いマニュアルが何冊も付いてきた。
HASやHLK(ハイスピードアセンブラとハイスピードリンカ)やDIS(ディスアセンブラ)にはお世話になった。
わいも買った。シャープのC Compilerが高くて買えなかったから。Oh!Xはレイトレーシングとかやってたわー。あとDoGaかなぁ。
レイトレはやったなぁ。X68030にMC68882入れた。純正は高かったから大塚商会でMac用に売ってたやつ。一晩かかってた計算が1時間ほどで終わって涙出た。
X68000の68881はほとんど効果無いって言われててX68030では改善されたんでしたっけ。
68881は本来68020用の数値演算コプロセッサですが、他のプロセッサでもIOアクセスデバイスとして接続可能でした。X68000でも拡張スロットのIO経由で接続されたため、メモリアクセスウェイトが大きく、速度低下がありました。さらに、数値演算のためにIOCSを拡張するデバイスドライバfloat3.xがコプロセッサをうまく利用できていないため、1割程度の速度向上しかありませんでした。直接コプロセッサを叩いたり、float3.xの高性能な互換ドライバfloat3p.x等が出てきたことにより、2倍程度の高速化を達成しました。68030と68882は専用のコプロセッサバスで接続されるため、float4.xを使用することで性能を発揮できますが、直接コプロセッサをたたくには及びませんでした。コプロセッサのない環境向けには、float2.xを使用することで、ソフトウェアエミュレーションできます。float[234].xは、IEEEフォーマットで浮動小数点演算を行いますが、シャープ独自フォーマットのfloat1.xというものもありましたが廃止されました。
お手軽なOS-9/68000の開発機としてあの当時、確か構内交換機の開発とかに使ってた。
そしてICEの繋がったPC-98で実機でって持っていくと、小文字ファイル名に引っかかったり。
PC-9801をゲーミングPCと言う [srad.jp]よりはマシだろ
まあでもゲームソフトの数は98のほうが圧倒的だから...
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家
ゲームマシン? (スコア:0)
ゲームマシンとしての側面もあるが、多くのプログラマを育てた機種という側面もある。私もそのひとり。
とはいえ、今になってプログラミング環境まで忠実に再現したとて、そこに魅力を見いだせるかと言うと……。
実機は今も棚に飾ってある。人生の一部というほど思い入れのあるマシンだけど、自分にはそれだけでいいかなぁ。
Re: (スコア:0)
スペック的にはUNIX動いてX-Window動いたんだろうけど
そういう使い方している話はあまり聞こえてこなくて
どこまでも高性能な「マニアックなホビーパソコン」でしたねぇ
まあスプライトなんてゲーム以外に使わないでしょうから
Re: ゲームマシン? (スコア:2)
68000にはMMUがないですし、X68030もMMUなしの68EC030を載せてるのでUNIXは無理ですよ。
X68kで X Window System が動くOSとしてはMINIXとかNetBSD/x68kがありましたが、MMU有りのCPUへのCPU交換が必須でした。
(MINIXは元が16bitのIBM PC用なので、移植版は素のX68000でも動きましたが、Xまでは動かせられなかった。)
他にはOS/9もありましたが、
X68000用のOSとしては「MS-DOSをそのまんま68000に移植した」ような仕様の Human68k を使うのが基本ですね。
「MS-DOSの感覚で12MBのメモリをリニアに使えるプラットフォーム」ってのは、プログラマにとっては手軽で良かったです。
16bitでMS-DOSだと、64kB超のメモリが必要になると、セグメントの壁のせいで面倒が多い…
Re: (スコア:0)
正 OS-9
誤 OS/9
X68000はご指摘の通りMemory Management Unit(MMU)がなかったので、
OS-9 for X68000はLEVELⅠで、仮想記憶は使えませんでした。
MC68000のニモニックはC言語との親和性も高くて覚えやすかったし、
メモリ空間の壁もなくて楽でしたねえ。
#奇数アドレスの壁から目をそらしながら
Re: (スコア:0)
当時としてはレジスタが潤沢に使えるのが楽だった。
データレジスタだけでも8本あったし、最上位bitの扱いが違うだけのアドレスレジスタも8本。
アセンブリ言語を学習するにはとてもいい環境だったと思う。
バイトオーダーで発狂しなくて済むし。
同じころ学校ではZ80のマイコンボードでの実習があったけど、レジスタ少なくて面倒くさかった。
Re: ゲームマシン? (スコア:1)
68000のアセンブラを知るまでは、C言語ってなんかすごい変換をするコンパイラって印象でしたが、
68000のアセンブラを知ると、「C言語は高級アセンブラ」という言葉を体感できましたね。
特に、X68000のCコンパイラVer1は、良くも悪くも教科書通りの実装って感じで、最適化も弱くて、
C言語で書いたコードとアセンブリ出力がほぼ一対一対応したりするし。
あれでC言語への理解が深まりました。
68000のポストインクリメント/プリデクリメント命令が上手く使われるように「*++p」と「*--p」を良く使ったりとか。
gccは最適化がすごく強力だったけど、それでも、ループにDBRA (1引いて-1じゃなかったらジャンプする、という減算と条件ジャンプを同時に行う高速な命令)を使うために、「do {…} while (--i != -1);」とするってのもあった。DBRAの意味そのままのC言語コードなら、DBRAにしてくれる。
Re: (スコア:0)
68000が良かった点としてエンディアンとかの知識が無くともそのまま読めるのも良かったんですよね。
後になってリトルエンディアンの存在を知って、「面倒だ」って印象しか無かった。
Re: (スコア:0)
ポインタのポインタはMC68Kのおかげで理解が進んだなあ
#奇数アドレスの罠で暴走した経験から目をそらしながら
Re: (スコア:0)
コア部分はMS-DOSもどきだったけど
グラフィックやサウンド周りのAPIが体系的に整備されていたのが凄かった。
98だと大半は自前で何とかしないといけなかったし。
BASICでもCで一通り何でもできてプログラミングのハードルが低かったのが
当時としては画期的だったと思う。
(私も持ってたよ)
今となってはソフトつきのミニシリーズなら何とかぐらいの価値しかないが。
環境だけなら(ハード無しの)エミュレータで十分だしね。
Re: (スコア:0)
Lisa/Macintosh XLではV7やSystem IIIベースのUNIXが走ってたよ、XENIXとかUniPlusだったかな。
CPUは当然68000(外部MMUは載ってたかも)
Re: (スコア:0)
Lisa 2のMMUは、米国特許 US4926316A になってるようですね。論理アドレス24bitを物理アドレス21bit (2MB)で扱う感じ。68000勢は自前のMMUを実装必要だったから…。
Re: (スコア:0)
コンテキストがたった4つかぁ(スーパーバイザx1、プロセスx3)。
Re: (スコア:0)
68000にはMMUがないですし、X68030もMMUなしの68EC030を載せてるのでUNIXは無理ですよ。
初期のUNIXは仮想記憶なかったし「UNIXは無理」は物知らずなだけ。
Re: (スコア:0)
細かいことを言えば初期のUNIXは仮想記憶を実装していなかったので、(実用になるかはともかく)MMUがなければUNIXは無理というわけではない。
Re: (スコア:0)
超すごいスプライトで3Dグラフィックを実現したセガサターンというゲーム機があってだな
SH-2 (スコア:0)
SH-2AがEOLになったの最近だからルネサス儲かっただろうな
Re: (スコア:0)
68000はメモリ保護機能がないからUNIXはキツいな。
MMU使えるのは68020以上じゃなかったっけ?
(68010は68020の8bitバス版だったっけ?)
Re: ゲームマシン? (スコア:1)
68010は、68000に以下の改良をしたもの。一部の68000コードで非互換問題あり。
1、仮想マシン対応。ユーザーとスーパーバイザを分離しても、スーパーバイザからユーザーメモリにアクセス可能。
2、仮想記憶対応。バスエラーからのアクセスの再開が可能。
3、アドレスの24bit以上の有効化。
4、例外ベクタが移動可能になった。
68008が、68000の外部バス8bit、アドレスバス20bit版。でも奇数アドレスからの16bitアクセスはできない。
Re: (スコア:0)
C Compiler pro 68Kも本体とセットで買いましたよ
けど実際はタイトル忘れたけど黒字に緑と橙でタイトルが書かれたムックに付いてたGCC使ってたw
たしかインタラプトスイッチ押すと内蔵デバッガが起動するのも面白かったな
他にもOh!Xの連載で色々開発環境も手に入ったっけ
Re: (スコア:0)
GCCのムック買ったわ。分厚いマニュアルが何冊も付いてきた。
HASやHLK(ハイスピードアセンブラとハイスピードリンカ)やDIS(ディスアセンブラ)にはお世話になった。
Re: (スコア:0)
わいも買った。
シャープのC Compilerが高くて買えなかったから。
Oh!Xはレイトレーシングとかやってたわー。
あとDoGaかなぁ。
Re: (スコア:0)
レイトレはやったなぁ。
X68030にMC68882入れた。
純正は高かったから大塚商会でMac用に売ってたやつ。
一晩かかってた計算が1時間ほどで終わって涙出た。
Re: (スコア:0)
X68000の68881はほとんど効果無いって言われててX68030では改善されたんでしたっけ。
Re: (スコア:0)
68881は本来68020用の数値演算コプロセッサですが、他のプロセッサでもIOアクセスデバイスとして接続可能でした。
X68000でも拡張スロットのIO経由で接続されたため、メモリアクセスウェイトが大きく、速度低下がありました。
さらに、数値演算のためにIOCSを拡張するデバイスドライバfloat3.xがコプロセッサをうまく利用できていないため、1割程度の速度向上しかありませんでした。
直接コプロセッサを叩いたり、float3.xの高性能な互換ドライバfloat3p.x等が出てきたことにより、2倍程度の高速化を達成しました。
68030と68882は専用のコプロセッサバスで接続されるため、float4.xを使用することで性能を発揮できますが、直接コプロセッサをたたくには及びませんでした。
コプロセッサのない環境向けには、float2.xを使用することで、ソフトウェアエミュレーションできます。
float[234].xは、IEEEフォーマットで浮動小数点演算を行いますが、シャープ独自フォーマットのfloat1.xというものもありましたが廃止されました。
Re: (スコア:0)
お手軽なOS-9/68000の開発機としてあの当時、確か構内交換機の開発とかに使ってた。
そしてICEの繋がったPC-98で実機でって持っていくと、小文字ファイル名に引っかかったり。
Re: (スコア:0)
PC-9801をゲーミングPCと言う [srad.jp]よりはマシだろ
Re: (スコア:0)
まあでもゲームソフトの数は98のほうが圧倒的だから...