X68000に足りなかったもの part2
ピーコ嫌いなユーザー パターン定義用のSRAM スプライトのサイズ 高品質なADPCM音源 ADPCMステレオ化、PCM対応、高サンプリング化 ピーコ嫌いなユーザー X68版がオリジナルのソフト。 今でいうところのオフィススイート。 68030(ECつかない奴)搭載モデル。 DOSもどきじゃない、ちゃんとしたマルチタスクなOS。 モラルがあるユーザー。 ピーコ嫌いなユーザー ※前スレ X68000に足りなかったもの https://kizuna.5ch.net/test/read.cgi/i4004/1654543014/ あの頃はそれまでにも増して技術進歩が加速していた時期だから、高解像度のウィンドウを表示出来るだけだと厳しかったかも。 まあ5年間SX-Window3.0で進歩を止めるならありかもしれないけど。PCIバスのような高速ローカルバスや制御用のチップセットやらGA用のチップ等々…シャープ1社でこなすには厳しかったかと。 貧相なCPUでCD-ROMを生かすには、PCエンジンのシステムカードやアーケードカード的な物が(高速な読み書きバッファ)あれば良かったかもね。 バッファがどんだけあっても、そこからVRAMに書き込むのがCPUか、たいして速くないDMAじゃねぇ… その上色数に関係なくピクセル辺り16ビットという、使いやすいけど速度考えてない設計だし。 1ドットごとに書き換えられるモードが用意されてるってだけで、 後からは高速化のために非表示期間にモード切り替えして4ドット同時書き込みするとかしてたから、 選択肢があるだけな複数モード対応ってので良いのでは >>736 非表示期間中しか使えないあの技じゃ大して意味ねーだろw そんなハードの仕様の隙間付いたような裏技を誇られても・・ CRTCいじって解像度変えるとかもだけど、必要に迫られたとはいえそういう行儀の悪いソフトばかりだったから 初代からなにも進歩させられないで陳腐化したんだろうなぁ・・ X68kは最初にハイスペック()な初代を出したから進歩させる必要がなかったんだぞw >>733 1024表示のときはインターレス表示でチラつきまくり、それ防ぐ民生向けの超残光高解像度ディスプレイは NEC PC-98XA(/XL)ハイレゾ機向けしかなく価格もべらぼうに高かったから事実上無理だったんだよ。 CRTC触って無理やりどうにかすること自体はPC-9801向けの30行BIOSでも行われてたけど。 X68000に足りなかったもの ユーザーの民度wwwww 足りないのはユーザの民度だけでなくユーザの知能もだ 互換性あるのはシャープがやれば正しいことでNECがやれば間違ってるとか言うレベルだし 「時間」かな。 3年早く出ていれば状況が変わってた。 3年早くX68k出そうと思ったら安くても100万円コース テレビ屋には無理 パクリ元と同じ年に出す? ムリムリ、シャープにそんな技術力ないよ >>748 実はあまり根拠ない 初期X68のころ68000って32bit級だけど286より遅いことが多いよねって印象で それなら286以前でいいじゃんってことで まぁその時でAV機って無理だよね・・ >>753 Amigaが1985年だから2年早く出すことなら可能では X1が行き詰まらないと次にならん turboZだけで足りずダメだってなったからだろ と言うか、当時のシャープのホビー機の迷走はザイログのセカンドソースやってた関係上Z800を使おうとしてたのにZ800が出ないからの次が出せない失敗だろうし 書いてて無理無茶すぎると思ったけど68000じゃなくて286で、商品名も「X86」あるいは「X286」 最上位アドレス1M($xF00000$xFFFFFF)にROM、メモリマップドI/Oなどを押し込めVRAMはその手前の空間に配置し下位アドレスはRAMとして開放→386化したらそのぶんRAM用に使える空間は広くなる 画面周りの機能・構造はX68000実機と同じにする(1ピクセル16ビット、スプライト) OSはCP/M-86、MS-DOSといったメジャーな80x86用OSを採用しサードパーティ製アプリの取込みも諮る ぐらいを84年か85年にやってれば16ビットPCで覇権をとれたかもしれないな 84年にRAM1Mなんて積んだら定価が100万でおさまるのかすらわからんけど 286前提ならDOSでも、 RAMディスクなどでプロテクトモードの16MBをリアルモードのままで使えてたように、 レジスタ操作でメモリブロック自体は使える VRAMを矩形書き換えとか重ね合わせとかはドライバ提供だけでDOSの拡張無しなままで使える サブCPU経由と同じような直接に扱えない面倒くさい仕様にはなるが 80286ではリアルモードで触れるメモリ空間は0M-1M+64K までで、プロテクトモードでないと 1M-16M には触れないんだ 従って上記のVRAMにリアルモードからアクセスするにはプロテクトモードへ切り替えてメモリアクセスし、CPUリセットを行いリアルモードに復帰するのような大変時間のかかる処理が必要になるので 幾らメモリを積んでも速度的にせいぜいRAMディスク位にしか使えないのが286のリアルモードの1MB超メモリ つまりVRAMなんて到底おける場所ではない(メモリウィンドウ経由でアクセスできない限り)、当然ROMなんてもっと置けない したがって、(MS-)DOSの拡張無しなままで使えるという主張がまず破綻している プロテクトモードで動作するOSを提供するとどうかというと、上記の制限はなくなるが64K単位でしか同時に扱えないので,16色時にVRAMを全て塗りつぶそうとすると32回に分けてアクセスする必要がある それでもリアルモードの1MB制限からは解き放たれてはいるのでないよりはましだが、MC68000 の32ビットアドレッシングとは使いやすさがかなり違うのでプロセッサの魅力でパワーユーザーを誘引するのも難しいだろう それまでのMS-DOS資産も使えないため結局は現実のX68000と同じように最初からソフトウェア資産を構築する必要があるので後発のOSとハードウェアアーキテクチャが覇権を取るのは(相当のキラーアプリケーションでも無い限り)無理だろう これが80386対象で32ビットアドレッシングが使えるのであれば或いはワンチャンという所だと思うが、386は85年末なのでどんなに急いでも86年以降となるわけで、84年という命題を満たさないのだよね >>758 LOADALLってリアルモードの命令でレジスタを書き換えてプロテクトモード領域の拡張メモリをアクセスする手法があって、 DOSに付いてるRAMディスクドライバのRAMDISK.SYSで使ってるんだよ RAMDISK.SYSはプロテクトメモリを指定してもリセットを繰り返してる訳ではない >>760 その裏技は知りませんでした、ちょっと調べてみます それでも仰る構成は>>756 でご自分も述べているように厳しいとは思いますが パソコンなんてソフトがすべて データレジスタ8本、アドレスレジスタ8本(1本はスタック) レジスタ数合計16本で16MBリニアアドレス空間なんて プログラム組まない人にはそんなの関係ない PC9801が普及したのはソフトが充実してたからだから コンピュータ、ソフトがなければただの箱 今思えばデータレジスタとアドレスレジスタの区分は要らなかった 16本自由に使えた方が効率いい 後のCPUではこの区分はなくなっている 分けないと1979年当時はトランジスタ数的に難しかったのでは? TRONチップはレジスタ16本で区別なかったね TRONチップは後発だったからレジスタ数が15本 (そのうち1本はフレームポインタ、もう1本がスタックポインタ) 命令セットもかなりスッキリしててキレイだったが普及しなかった ソフト資産がないといくらいい設計のCPUでも普及しない 間違えた、TRONチップはレジスタ15本じゃなくてR0からR15の16本ね トローンなんか使わなくてもシャープはZ8000のライセンス持ってたんだから Z8000使ったニュー新マシン作れば良かった NC68000使ったのがむしろ失敗だった LOADALL を調べてみたところ、The LOADALL Instruction by Robert Collins ttp://www.rcollins.org/articles/loadall/tspec_a3_doc.html が一番詳しいようでした (残念ながらソースコードはリンク切れ) クロックが200弱で恐らく実行中に割り込みがあると暴走するので、1回のコールは他の割り込みを邪魔しない程度が望ましいとすると、 286 12MHz でメモリアクセスノーウェイトと仮定しての概算で、画像描画に専念すれば1フレーム当たり128KB書き換えが出来そう(768x512全更新で3フレーム) アクセスタイムが最低80nsのSRAMが当時存在するかと価格など未調査ですが、存在しておりコスト度外視であれば何とかなるの……かな? >>767 ポールポジションを完全移植して標準添付とかにすれば大ヒットしたかも >>767 Z8002はアドレス空間64KBでZ8001はセグメント方式だぞ 64KBの壁は8086だけじゃないんだ アドレスを16bitレジスタで管理するCPUには必ず64KBの壁が存在する >>768 286の頃はメモリを2つや4つ組みにしてノーウエイトアクセスするメモリインターリーブで高速化してた メモリインターリーブじゃなきゃ286の25MHzをノーウエイトアクセスなんかできてない その分、大容量メモリに必然的になるのでメモリチップ数がやたらと大量 68020が安ければよかったんだよな 1986年10月頃の雑誌で68020の電子部品屋の価格で16MHzの68020が13万円 13万円もするCPUはさすがにパソコンにはのせられない >>773 せめて68EC020が2万ぐらいならそれで妥協でもよかったんだが実際は4倍ぐらいしたしな 386SXや386に関しては デジタルリサーチが32bitのCP/Mを開発してくれればよかったのにね CP/M-68kやCP/M-8000は開発したのになんでCP/M-386はないの? ググったらデジタルリサーチのFLEXOS/386というのはあったんだな >Z8000 ワープロ「書院」で使われてた。今も持ってる とはいえ私がZ8001みかけたのはその1機種だけだったんで 何かスジ悪かったんだろうな loadallは本来80286のセグメントディスクリプタ(LDTやGDT)をメモリ上に一気に 設定する命令なので、レジスタとしてはデタラメな値を単なるデータ転送として 使うのは想定外の使い方だな。 >>772 ページングノーウェイト(RAS-CAS-CAS...で、CASが連続するうちはノーウェイト) の方が一般的じゃなかっただろうか。これなら実装は簡単で、しかも80286は上位 アドレスが先出されてたし(なのでRASを早いタイミングで確定できた)。 >>779 モトローラは最初は68000を16ビットだと言ってたからその認識は間違いじゃないよ 68000は16bitの技術で32bitの命令セットを実現した感じ 16bitのALUを3つも使ってるらしい 逆に386SXは中身386でデータバス16bit、アドレスバス24bitにした製品 386とトランジスタ数同じらしい 386と同じトランジスタ数なのに廉価版っていういかにもIntelらしい製品 Z8000が芳しくないのは68000に性能も機能も負けたから 68000が出るまでは順調だったらしいよ 680x0は68000、68010、68020と順調にワークステーションに採用された 68000がリニア16MBのリニアアドレス使えたのに 高解像度ディスプレイを持つワークステーションに セグメント方式のZ8000が採用されるわけがない ワークステーションは680x0を採用することで MIPSの性能、メガピクセルの解像度、メガバイトのメモリと3Mを実現できた 1億円したVAX11/780が1MIPSだったらしいからな 68000はそれに近い性能を実現できただけでも1980年当時はすごかったんだよ 68000を使ったからこのSUN Workstationができたはず (SUN Workstationは Sun Microsystemsのワークステーションのことじゃないよ) https://en.wikipedia.org/wiki/SUN_workstation このSUN Workstationは Sun Microsystemsのワークステーションの元になってて Ciscoのルータの元にもなってるらしいよ >>764 そこを考えず機能もりもりで失敗したiAPX432を思い出した 後の世でも浮動小数点レジスタと整数レジスタの区別を付けなかったため、無駄に規模が大きくなった88000ってのがあったな 開発案にあったV30機でいいよ 画面は15/24kHzで、市場に溢れる88/98用のカラーモニタを流用できる方向で 画面解像度も640x400と320x200でいい。それよりも正方形ピクセルの方が万倍も重要だわ 8086系だと既存機種が多すぎてマニア層への訴求力足んないかもな。 モトローラ68000の名は長い間高級ブランド扱いだったと思う。 >>788 何そのMZ-2861(1987年)どころかMZ-2500(1985年)同等スペック >>791 88VA、パレットが16本とは言わないがせめて4本あればちょっとは違ったはず 可変スプライトとか、ゲーム機にしか乗ってなかったいいところもあるし 可変スプライト→可変サイズスプライト 当時のゲーム基板は大体乗ってたから、デカキャラでもスプライトが1枚で済んだ >>794 いやVAのスプライトは水平表示限界を超えるとVRAMを共有してるテキスト画面をも巻き込んでグチャグチャのでたらめな映像が出力されるんだよ 問題外 完全に欠陥 >>795 ゲーム機なら当たり前の上下左右反転機能がない スプライト座標の左上が0で、画面から少しだけ顔を出すスプライトを表示するにはプログラマがスプライトサイズを変更、パターン読み出し位置を変更しなければならない 大きなスプライト表示できても32個はいくらなんでも少なすぎ 水平解像度が640固定じゃなかったかな おかげで最大表示可能なピクセル面積ではX68Kを超えるのに実表示面積では超えないようなこともあったような >>798 そう、グラフィック解像度に関わらずスプライト画面解像度は常に横640ドット 水平表示制限が256ドットなので画面の半分も満たない量が並んだだけですぐに表示が破綻する 256ドットまでならスプライトのドットを横2倍にして320ドット中256ドットまでにすれば良かったろうに 自機と弾だけに限定するとか、あらかじめ配置を限定するとかまじめに配置をチェックして消すとかは出来たにしても、やらないで済むならやりたくない苦労だよね 640なのはマウスカーソルに使いたいというのもあるのだろうから残すにしても、制限超超過表示されないだけにして、320ドットモードも追加していたら使い勝手比べようもないくらい良くなったのにね >>801 VA版のR-TYPEは自機と自弾だけスプライトで他はグラフィックで描画という設計だった 欠陥仕様のせいでスプライトあるのにスプライトを積極的に使えないという悲しい惨状 VAのR-TYPE、出来自体は良いけどスクロールがモッサリして遅かった記憶がある ま、まぁおかげでキレイに表示できてるので…… (グラフィック2面の1つを背景、1つにキャラクタ描画というのは PC-8001mkIISR や 77AVや、FM-TOWNS[ハード描画] みたいよね) >>793 横からすまん おそらく私の書き込みから始まった一連のレスなんで・・・ >>778 固定アドレスからディスクリプタキャッシュまで含んでロードする命令なのでデーター転送に使うのは無理だけど、どういう想定なのだろう >レジスタとしてはデタラメな値を単なるデータ転送として使う >>806 セグメントレジスタまで書き換えるので普通のリアルモード命令では指定できないプロテクトメモリのアドレスまで指定できてしまう >>807 こういうことでしょ? これは普通な使い方じゃない? (本来想定の処理としてはデバッガ実装での使用だと思うけど) (セグメントレジスタではなく、ディスクリプタキャッシュね) pushf cli cld pushf pop bx xor ax,0x80 mov es,ax 中略 mov word ptr es:[0x18],bx mov word ptr es:[0x26],0x0000 ; si mov word ptr es:[0x28],0x0000 ; di mov word ptr es:[0x32],0x8000 ; cx //848 のベースアドレスははds*16 を設定し、 // esのディスクリプタキャッシュのベースアドレスを2MBに設定 mov word ptr es:[0x36],0x0000 mov byte ptr es:[0x36],0x20 中略 loadcli rep movsw ds:0 から 0x300000:0 へ64K転送 popf >>778 で、「メモリ上に一気に設定する」というのは「メモリ上【から】一気に設定する」の書き間違いとして「レジスタとしてはデタラメな値」はグラフィックやテキストなどのユーザーデーターを示していると思われるので、LOADALL命令のメモリロード処理を用いてメモリ間データー転送をするという話なのだろうけど普通に考えると不可能なので、どういう想定なのかと…… って、あれ? もしかして、書き間違えではなくて本当にLOADALLがメモリに値を書き込み処理と勘違いしていたのかしら?? (それでも対象メモリが固定領域なのでメモリ間転送には使えないのでやっぱり不思議) ♯ スレチごめんなさい >データレジスタとアドレスレジスタの区分は要らなかった 68000MPUのことはよく知らんけどレジスタ指定ビットが増えたりせんの? レジスタが分かれてればそもそも別命令ってことでレジスタ分3ビットだけど すべて汎用だとすると4ビット必要 たかが1ビットじゃんといわれりゃそれまでだけどな コード空間とデータ空間が明確に分かれてたら意味あったけど 68kは曖昧だったからね モード別に空間分かれてたから、モード別にレジスタセット用意するほうが意味あったかも >>804 VA版はグラフィック32色モードだからそこまで綺麗じゃないけどね 68kはハーバードアーキテクチャ風にシステム(ROM)空間とデータ(RAM)空間で16MB別々にも持てた 実際にそういう実装をした汎用PCにはお目にかかったことないが 68000のアドレッシングモードも削れたと思う・・・ インデックスレジスタ間接とかディスプレースメント付きアドレスレジスタ間接とか とにかくなんでもアセンブラで書くのがあたりまえの時代だったから、速度を削ってもアセンブラで作りやすくするべきという思想 コンパイラの最適化もあてにならなかったし。 アセンブラなんて時代遅れ、これからはコンパイラだぜ!ということでもてはやされたのがRISC 1982年にRISC-I、命令数は32個 1983年にRISC-II、命令数は39個 同時期のCISCというと80x86系だと82年に80186、83年にとMC68000 命令数は数えたくないっすね 性能はというと、RISC-I VS 186、RISC-II VS MC68000どちらもRISCが勝ってる そう、性能「は」ね・・・ 当時どこの馬の骨ともわかんないなんの互換性もないRISCを選ぶのは厳しいよ ・・と無理やりX68に話を戻してみる。 べらぼうにお高いUNIXコンピュータ用で私ら一般とは無縁だった。 雑誌の海外の話題コーナーにあった程度と思う 大学の電算室でSPARCいじってた記憶、結構面白いアーキテクチャだった 32bitフラットな680x0ってのは憧れだった。 「20bitの壁」や「16bitの壁」の時代なんで 24bitのリニアなメモリ空間を誇っても 実メモリなんか1MBしか無くて、そこにドライバのみならずフォントやIOCSのパッチ等まで読み込まれ 実際に利用可能なユーザー空間は640KBを笑えなかった、という不都合な真実は語られないよねえ X68kなんかそれでもまだ初代から1MBの大容量RAMカッコワライ だったが AMIGAでさえ商業ソフトは512KB基準、初代Macintoshなんてたったの128KBだもんなあ …あれあれ?24bitの広大なメモリ空間が売りじゃなかったっけ? エミュ環境で何の疑問もなく12MBフル実装の環境で遊んでみても、特に使い道もないし、感慨も無いよなあ… なんなら8MBくらいRAMディスク+ディスクキャッシュにでも充てた方が快適まである 24bitの広大なリニア空間を、ただのディスクキャッシュにする贅沢カッコワライ EMSでおつりが来る罠 アミガやマッキントッシュは存じませんが、きちんと増設できたでしょ? 98だってVMは384KBで増設しないとアドレス空間に空きがあったのは同じことですよね、何が違うというのでしょう? 1MBの場合は実際に使えたメモリはどれくらいなの? 24ビットアドレスの最大の恩恵はアドレスレジスタひとつの値変えるだけでVRAM全てが触れたことだな MS-DOS前提のパソコンじゃそんなのムリだろ メインメモリの空きはおま環だから600k台空けられる人も居ただろうし500k切ってた人も居ただろう 俺はメモリ2M載せてたんで空きメモリで苦労した憶えはない SMDOS(笑)環境は最大でもプレーン単位でアクセスできれば良いので一プレーン32KB VGAのマジック解像度だった320x200x8bppパックドピクセルも、64KBセグメントに納まる(が故のマジック解像度だった) 実際にアクセスするのはパターン書き換え領域などのもっと小さな面積/データ量だったので 全域リニアにアクセスできるからってポインタが常にGVRAMの先頭からでないと発狂するようなアレな子以外は、何も困ることがない ディスクI/Oも、実際にI/O1回ごとに転送するのはレコード単位だと数KB~せいぜい数十KBなので 64KBセグメントデハ~ 16MBのリニアアドレッシングデナケレバー …みたいな事は、全くない。 DOS環境ですら、何MB読み書きしようがsmallモデルどころかcomモデルで足りる…と言われる所以 Etherのパケットだって1パケット数KBだからな ディスクI/Oがレコード単位・・・? FDがセクタ単位でR/WしてたからHDもセクタ単位じゃないかな MOは判らん >>825 機種やOSバージョンによって違うがRA以降とV30HL搭載PC-9801なら704KB(うちEMSが64KB、 コンベンショナルが640KB) セクターはかろうじて聞きかじっているが、バッファやレコードには馴染みがないのだという。 程度が知れますなあ…ディスクI/O触ったことないか。まあそうだろうよ… パソコンの外部記憶装置、FATのようにフォーマットされた媒体ならセクタ、トラック、シリンダを使う レコードは使わない BIOS任せ、OS任せにすりゃそうなるわな でもそれが普通なのよ ディスクI/O直叩きできるから偉いってもんでもないんよね read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる