8086 vs. Z80 vs. 6809 vs. 6502 その16
8086(8088)・Z80・6809・6502のうち、どのCPU(MPU)が優れているか議論するスレッドです。
CPU(MPU)アーキテクチャや周辺デバイス制御など
基本的に「石」に関連する議論なら、ほぼ何でもアリです。
♪ /.i /.i /.i
♪ ∠__ノ ∠__ノ ∠__ノ
〈,(・∀・;)ノ・∀・;)ノ・∀・;)ノ
└i===|┘i===|┘.i===|┘
〈__〈 〈__〈 〈__〈
■過去スレ(勝手にワッチョイ化)
8086 vs. Z80 vs. 6809 vs. 6502 その15
https://kizuna.5ch.net/test/read.cgi/i4004/1624078918/ >>197
確かに8bitCPUとしては最後の最後くらいのローンチだった
枯れた技術でファミコンより速くて使いやすいチップセットを作るのが目標だったようだから
NECとケンカになるようなPC向けに流用なんて発想はそもそもなかったのだろうな >>197
MMUのブロック単位の細かさとのトレードなんだし、2kBずつでは指定数が多すぎ、8kBほどにして指定数を減らすべきって価値観なのだな
1983年にしては細かすぎるって年代も考慮してなのだろうが
実際、8bit CPUだと8kBずつも多いようだし 今時のx86でもページサイズは4KB以外の動作モードはあまり使われてないぐらいなんだから、逆に言えば、ページサイズが大きすぎると使い勝手が悪いんじゃない?
んで2KBにしてみたが、細分化しすぎで使いにくかったってことでしょ 1979年のメモリ事情では細分化してロスを無くした方が良いと判断されて、1983年にも互換保って同じ単位にした、ってパターンか
4kBはUNIXが元々そういう前提で作られてたからそのまま使えて都合が良いからだな
UNIXが動かない8bit CPUではこだわる必要は無いから、I/O空間とや書き換え速度やらのトレードで程良く作れば良い データチャンクを置いとくページをあまり細かく刻まれる一連の切替オーバーヘッドが増える。
マルチタスクOSならアプリサイズに合わせて細かく管理したいかもしれないが、ゲーム用途だと常駐するルーチンやら
仮想VRAM領域やら並べてくだけで軽く2kBは超えてしまう (コード最適化が足りないとか言わない)
ページサイズは4か8kBがちょうどいいくらいに感じる まめちしき
Apple Silicon Macのページサイズは16kB 8bitCPUってか
64kBアドレスだと16kBページは厳しいな
コードとデータ空間別けられるタイプならともかく
4ページしか取れないとなると、ページ境界を跨ぐブロック転送とかでメンドイ事になるw 16KBだと、MSXのメモリマッパーみたいなレベルなんかなあ?
元のMSXは16KBのバンク切り替えやったけど
8KBならMZ2500のが近いかも >>206
PCエンジンは最後に大容量高速DRAMカードを発売してそれを広いデータ置き場にした
ページという概念がない21bitのメモリ空間の好きなところからシーケンシャルアクセスできた
(事前にアドレスレジスタを設定する必要があるがアクセス毎のオートインクリも可能)
CD-ROMやVRAMと大量にブロック転送しまくる用途ならこういう仕様もアリなのだと思う >>208 補足
21bitのメモリアドレス → 2MB容量
これすら大量のグラフィックデータで埋め尽くされてしまうのがCD-ROMゲームの宿命だった >――MSXで覚えているソフトや、お気に入りのゲームというのはあるのですか?
>西 いやあ、僕はそもそもゲームが好きじゃありません。なぜなら楽しくないから。 8bit向けにコーディングしてる人ら、みんな何のエディタ使ってるんかな >>211
1981年頃(MZ-80Z)
ED.COM メッチヤ使いにくい
WS.COM(WordStar)機能は良いが起動も操作も遅い
WM.COM(WordMaster)必要充分、我慢できる程度に速い
1984年頃(9801+Plus80環境)
色々使ったけど、Pmateが使いやすい 文字コードでSJISを指定できるメモ帳はエディタとしての機能はろくにないがとりあえず使うにはまずまずだの >>213
使ってる人は少なそうだけど、X68000のED.Xの評判は、どう? ターゲットで動かすか、ホストでイケてるエディタつかうかの話でなぜその質問 >>213
最後の Pmateは MS-DOSだけど基本は CP/M-80なんだわ
思い返すと 8bit+ FDD環境でコンパイル GOなんて修行そのものだったな
それでも 紙テープで FACOM230-15使うより楽しかったw アセンブラ系のスレってもうほとんとスレ落ちしてたのね。ここは残ってるが。
CPU比較が趣旨のこのスレでは若干スレ違いの話題かもしれないけど関連話題として。
80年代当時、マシン語プログラムのダンプリストはたくさん雑誌掲載されていたけど
アセンブラのソースリストはごくわずかしか載っていなかったよね。
これって何故なんだろう? というかある程度の推測はできるけど
雑誌の都合上
・雑誌のページ数の都合上
・読者は入力してゲームができればそれでよくて、そもそもソースリストなどに興味がない
作者の都合上
・ハンドアセンブルでそもそも他人に見せられるまとまったソースリストがない
・とても他人様に見せられるようなソースリストじゃなくて、作者が恥ずかしい
・作者はソースリストに自信はあるけど、研究されて技術と盗られたくない
(続く) 自分が気になるのは
>>・作者はソースリストに自信はあるけど、研究されて技術と盗られたくない
こういうケースが実際にあったのかどうか
自分の想像では、
プログラマーってのはできたプログラムの結果だけを見て評価してもらいたいのではなく
ソースリストの隅から隅まで全部見てもらって
随所にいかなる工夫をしているか理解してもらった上で
評価してもらいたいのではないかと想像する。
であるならば、
>>・作者はソースリストに自信はあるけど、研究されて技術と盗られたくない
こういう心情に作者はいたのであろうか・・・?
はたまた相反する両方の気持ちがあって、ソースリストを見せる事に葛藤があったのかどうか
色々なご意見を聞きたいです 投稿時はテープを送るだけなので、そこまで考えてなかっただけでは
編集部が開発者と同じツールを持っているかどうかもわからんし >>218
プログラムのお勉強以外でアセンブラソースの需要が無い
アセンブラのツール等の表記違いも(要は利用者の保持環境と合わない)
低レベル言語相当なので紙面におけるコード密度がダンプリストより下がる。
結局アセンブラソース打つよりダンプ入力の方が紙面でコード密度高く入力も文字数が少ない分概ね速いから
ではないか? >>218
I/OのRANDAM BOXってコーナーで小ネタを発表って人もいたな
誤植があったりするけど移植の過程で気付くので問題はなかった
読みにくいプリントアウトを取るかきれいなバグ付き写植をとるか アセンブラソースがなければ解析が一苦労だからメンテナンスが非常に困難 そもそもアセンブラソースからバイナリを作ってない
日本語でのルーチン記述から手動マクロアセンブルする機械語を口頭で喋る人々が居た ハンドアセンブルに慣れるとオペコードは表を見なくても書けるようになるが
ブランチ先をカウントするのは面倒だった思い出
命令を追加・削除すると数え直しだし 俺は6809だったが表を見ないと無理だった
というかハンドアセンブルなんかしたくなかった >>227
命令の直交性が高くてアドレシングモードが自由だとオペコードを直接書き込むのが面倒で、直交性がなくてアドレシングモードが自由度ゼロだとハンドアセンブルしやすい印象
後者の場合は、ニーモニック書くのとオペコードを書くのが大差ないように思えるからな(アドレス計算は除く) ダンプリストから逆アセンブルできるからソースは要らないのでは?
結果として何をやってるか分かってれば細かい解析は趣味の領域だと思うし まあ、逆アセンブラとはいっても当時は解析能力がそんなに高くなくて、ツールとしてはそんなに使えるほどでもなかったんじゃないかな。
せいぜいDDTぐらいのレベルじゃ、一発で全部解析できるのとは程遠いし。
一方で、ソース付きなのにラベルが全部無関係な女の子の名前になっていて、逆に解析が超苦痛な投稿もあったなw 皆さん、ご意見ありがとうございました
>>222
なるほど、作者が使っているツールを皆が皆同じものを持っているわけではないですしね
色々なご意見から推測するに、作者の都合上よりも
雑誌の都合上、当時の状況の都合上などが大きな要因だったと思いました
この板でしたら当時の雑誌に掲載されたことがあるという方もおられると思うのですが
そうした作者さんの心情はどうだったのしょうか
自分のソースリストって他人に見せたかったものなのでしょうか?
それとも隠したかったものなのでしょうか? 何故こんな質問をするかというと
自分が今作っている8ビットアセンブラのゲームのソースリストを
自分としては他人に見せたい気持の方が強いのですか
自分の技術を取られないように隠した方がいいのかな?という思いも少しあります
最終的には自分が好きなようにすれば、という事になるでしょうか
自分の視点とは別の角度からの意見も聞いてみたいと思いました 今どき金にもならない技術を隠しておく意味ある?
日付を明示して公開した方がみんなのためにも
自分の名誉のためにもいいのでは
本当にそんな凄い技術なのかはしらんが ラベルにまったく無関係な名前付けるのは難読化のテクニックかな…
まあ、ほとんどのプログラマーは今さらアセンブリソースなんか目もくれないんじゃない?
このところMSXが流行ってるから意外とそうでもないかもしれないけど、ライブラリのライセンスに縛られてるとかでもない限り
秘伝のソースにすることは作者の自由だし、最適化したいところだけ公開して他人に添削してもらってもいいし もちろん、自作ライブラリを他人に使ってもらう意味で公開するならソースはオープン(ライセンス形態は自分で決めて提示)にしないとよろしくない。
というか動作不具合あったら勝手に解析されるから秘伝のソースにしておくことに特段の意味がない。 ラベルの名前が難読化のテクニックとか考えたこともなかったわwww 逆アセンブルしずらい様に命令の自己書き換えをふんだんに入れとくとか、やたらめったらジャンプするとか、命令の一部をしれっとデータとして使うとか、解析対策は色々あったみたいだけど、そこまでするほどの事なんて今はあんまりないだろうね。
自分では気付かなかった高度な記述法も過去にはいっぱいあったみたいだけど、それがアセンブラレベルだとソースが公開されててもほとんど継承されないで消えていくのは寂しい気はするね。 命令の一部をデータとして使う系になるのかしらんけど、
Z80で相対分岐命令のオペランドにマイナス1を試w定するとリスャ^ート命令(マャCナス1を命令とみなして読み込み直すので、ff、つまりRST 38Hを実行する)ってのを使って、条件付き相対分岐命令都の組み合わせで条件付きリスタート命令にしてしまうやつって、逆アセンブル効くのかなあ?
使ってる事例も少なそうだけど。 > マスコミは、ずっとMSXを
> 任天堂のファミコンと比べて
> 「失敗したゲーム機」というレッテル
> を貼り続けた >>233
>>今どき金にもならない技術を隠しておく意味ある?
そうか。あまり意味ないかな
>>日付を明示して公開した方がみんなのためにも
そう。自分の書いたソースリストを誰かに参考にしてもらえたら嬉しい
>>自分の名誉のためにもいいのでは
うむ。何よりも自分のためにそうしたい
自分の書いたソースリストを誰かに見てもらいたい、って欲求があります
>>本当にそんな凄い技術なのかはしらんが
改めて聞かれると、うーん・・ごにょごにょ・・・全然凄い技術ではないです
当時、BASICのリストはあんなに載っていたのに
マシン語のソースリストはあまり載っていなかったのは
もしかしてそういうものは出し惜しみするのが一般的なのかな、とも思いました
公開する方向で考えてみます。ありがとうございました >>238
言ってもそこの周辺数バイトの流れを確認して手で直せば済むことじゃない?
逆アセンブルの目的はまずデータブロックとコードブロックをちゃんと切り分けることが最大だと思うよ
どうせ8bitCPUの命令なんて単純なのばっかりだしね ベーマガでDr.Dが読者からの「アセンブラの投稿が採用されないのはなぜ?」って質問に「紙面の問題」って答えてたことがあったような。
他の言語と比べて行数を喰うのでアセンブラの投稿はほぼ採用されないというのが理由だったはず。 >>241
そういや、たしかに、命令とデータの混入はあっても、それによって命令のフレームが狂うわけではないし、
ラベルの無いなぞの相対分岐が1つ混じるだけだもんな
手でどうにか出きるか >>240
githubで公開すれば?
結構レトロPC向けのプロジェクトもあるよ githubなら勝手にcopilotに学習されて知らずに誰かの役に立ってしまう可能性も出てくる
なんならMSXのBASICプログラムを手コンパイルしてマシン語ルーチンにするだけでも誰かは見てくれそう
今の自分は8bitCPU向けの圧縮展開ルーチンについて強い需要がある 車のナンバー8008は地域によっては抽選なのだそうだ知らんかった 16kBを越えるデータチャンクに対するメモリのやりくりが難しすぎる
いや適当に分割しろよと言われたらそのとおりなんだが 昔のゲーム機のやたら少ないワークRAMでプログラムとデータはROMからちょこまか読み出して動かすこと考えたら
6502はだいぶ優秀なんじゃないかと思った
まあZ80でもいいんだけど 時代がセドリックの後を追う。
日本初のECCS(コンピューター制御エンジン)
日本初のターボ。
日本初の6気筒ディーゼル
https://i.imgur.com/pwkCRtz.jpeg
コンピューター制御ECCSエンジン
さまざまな先進エレクトロニクス技術を駆使したセドリック。その頂点に立つのが、
日本初のECCSエンジンです。マイクロコンピューターが燃料噴射、点火時期、
EGR、アイドリング制御のすべてを、あらゆる運転状況に応じて、つねに最適な
レベルにコントロール。この、世界で最も進歩したエンジン制御システムが、
セドリックならではの快適操作・快適走行をお約束します。
by 日産自動車 セドリック AD 実は、初期のMPUを使用していたのはクルマだった。
「1979年にコンピューター制御のモノを一般人に提供」を実現していた
だが、当初の目的はインジェクターを制御することであり
「キャブレーターでは苛酷になる一方の排ガス規制には対応できない」という目的だった
おじさんたちは、「コンピューター付きのクルマを下さい!」
と真顔で販売店に行ったという逸話まで残されている。
なお、当時、このクルマに搭載されていたECUは・・・・・。
CPU=モトローラ 6802(実際に採用されたモノは日立の互換品)
RAM=128バイト(CPUに128バイトのRAM)
ROM(PROM)8KB
https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=25152&item_no=1&attribute_id=1&file_no=1 試作段階だっけ?6800も使われた
そもそもM6800シリーズは自動車のエンジン制御も用途として想定されていた ゲーム機がZ80じゃなかったのは
80年代はZ80がまだIP販売されてなかったからじゃないの?
ゲーム用チップはカスタマイズが基本だからIP販売されてないコアは使えないはず ゲーム機用でカスタマイズされたZ80ってありましたっけ
確かゲームボーイはそうだったかも Z80がトランジスタ数が多くて家庭用ゲーム機出始め時期ではまだ他の機能と1チップ化難しかったからでは
6502のように音源と1チップ化とかできるほど小規模CPUではない
ゲームボーイのでもレジスタ数半減以下に減らしてたし 世代を考えたら、ゲームギアならカスタム化されてるかもしれんけど、マーク3とかマスターシステムとかの頃ならカスタム化されてないやろうなあ
他にZ80使ってるゲーム機って何があったっけ、忘れたわ >>258
オセロマルチビジョン、マイコン麻雀、ゲームパソコンm5 >>259
当時のカスタムチップの製造コストを考えたら、カスタム化しない方が安く上がりそうなのばっかりやな
カスタム化して旨味が出るとしたらせいぜいゲームギアぐらいじゃ? >>249
日産にいた人が、自分の車をEFI化してMZ80を助手席に乗せて制御させて、
できたばかりの関越を百んー十キロでかっ飛びしたって話を聞いたっけなあ(遠い目 >>260
ファミコンが一番の出世頭でカスタムされてたからな
カスタムが基本だと思ってしまうのも無理はない >>261
それはマジですごい
ちゃんとデータ取らないと焼き付くし、制御失敗しても焼き付く >>251,261,264
ただし、当時の車載コンピューターは「バカコン」って言われていた
1980年代のECUは8bit CPUが主流だった
データ量もそれほど多くなかったためエンジンの出力特性は簡単に書き換えることができました。
スピードリミッターも簡単にごまかしができたものです。
現在は32bit以上のCPUが主流となり、スピードや回転数、ABS、トラクションコントロール、
電子制御サスペンション、トランスミッションなどの各部分をCAN通信で高速に制御を行うため、
ちょっとしたデータ変更は困難です。書き換えなければならないデータは膨大な量になる
そのため、チューナーにとっては、現在のECUはチューニングの難易度が上がっている。 >>265
スクリプト?
人間が書いてるとしたら馬鹿か何かですね 確か東芝の12ビットCPUは車の制御に12ビット必要だったからとかじゃなかったっけね? >>265
今はセキュリティ対策なのか変なもの繋ぐと文鎮化したりするそうだしね。 >>267
0.1%を実現するには有効桁数が10ビット以上が必要だったとか? >>263
ファミコンは任天堂自体は自社アーケードで使用実績のあるZ80の使用を検討してたけど半導体の製造依頼したリコーがライセンス持ってる6502を提案、その時のリコーの言い分がZ80よりダイサイズの小さい6502なら他の周辺回路み組み込めますよ。で、コスト削減にも繋がるんでリコー提案をのんだって話をどっかで見た記憶。知らんけど。 6502が国内では使用実績が少なかったから解析されにくいっていう説もあったけど
大当たりするって思って設計してなかったろうから
その説は怪しいな しぶちんの任天堂なら開発者のことよりコストだろうね。 単に6502の方が安かったんじゃないの?
Apple IIとかも安かったから6502を使ったのだし >>271
国産パソコンとして使われないだけで組み込み用とかアーケードゲーム用とかには使われてたのだから、
6502なら知られてないは都市伝説では
アーケードでも国内開発機はZ80や6809や68000でも、
アメリカのは御三家パソコンやATARIの家庭用ゲーム機だけで無くアーケードゲーム機にも6502が使われてて国内にもROMだけ入れ替えてる基板まで兼用のとか使われてた
今更初期のアーケードゲーム基板とか発掘されてるが 6502はゼロページが使えないとほぼプログラム組めんから、ブートROMでRAMチェックするのに苦しんだり、スタックが1ページ目に固定で256バイトしか取れんしで再起使ったプログラムの移植で四苦八苦した覚えがあるなあ。
WDCの65C02とか、16ビット化したのがMOUSERとかで売ってるよね。 ナムコの人がROMのデータみて6502と気がついて内部解析してゲーム作って任天堂に持ち込んだくらいなので解析されにくいという事はない
Apple IIは日本でもそこそこユーザーいただろうし PETも6502だったしそんなにマイナーではない
SC/MP使ってたのはOrangeだったっけ 任天堂社長だった岩田聡氏も大学入学時に購入したPET2001を使い込み6502のプログラミングに習熟していたので
HAL研究所がファミコンのゲームソフト作成を請け負ったときには思う存分に腕を振るっていたそうだな ニモニックを見比べた限りでは6502のほうが使いやすそうだよね >>276
それ解析したNAMCOの人って昔POWERTOAYで散々語られた伝説のハッカーやで資料も何もない状態からファミコン解析しNAMCO社内でのファミコンの性能デモ用に一人でギャラクシアン移植したら出来が良いからってそのまま発売されたという逸話のある 当時舶来PCはお高かったからな
ユーザー数は相当少なかっただろう 1982年にコモドール64日本語版99800円、
日本開発廉価版コモドールマックスマシーン34800円、
って安く売り出してた
ファミコンに完全敗北するが 1980年頃は$1=220円以上だった(ちなみに現在は150円程度)。
しかし1985年のプラザ合意により急速に円高が進行、1986年には$1=168.5円となる。
その後もじわじわと円高傾向は強まり、コンパック・ショックが起きた1992年には$1=126.7円となり、1991年のバブル崩壊とあいまってNECのPC-98シリーズ凋落の予兆が始まった VIC-1001→マックスマシーン→コモドール64の順番だったかな?
本屋で買えるZX-81とかもあった
apple][とamigaは憧れだった >>261
1979年時点のセドリックのカタログ
1979年時点のPC業界を考えた場合、丁度PC-8001、MZ-80が登場した頃。
AppleⅡが登場して2年後
当時のPCがオモチャと大差ない頃にそれなりに実用的用途にCPUが使われていたのが凄い
https://i.imgur.com/o0bZCGv.jpg
https://i.imgur.com/igksChk.jpg
ただし、↑でわかるのは、
1979年時点の技術では集積度はそれほど高くない。
そして、オプションだった装備が11種類の機能を持つドライブコンピューター
https://i.imgur.com/hA2rno1.jpg
平均燃費や平均車速も出ますし、希望時間とラジオのチャンネルをセットすると、時間になるとラジオが入るという(しかも20セットも記憶出来る)
今でこそ電卓に毛が生えた程度のヤツですが、当時としてはコレでも最先端の凄い装備だったと思います! そもそもマイクロコンピュータの当初の主要用途は制御コントローラーであってパソコン用ではなかった。
1チップでCPUを作ろうとなったときに、そんなもの何に使うのか?
(コンピュータと言えば空調の効いた部屋にある大型コンピュータを想像して、このコンピュータとしてはオモチャみたいなものをいったい何に使うのかと)
それに対して制御コントローラーに使えますというのが答だった。 >>287
いや、開発に3年ぐらいかけてると考えて、75から76年あたりのチップをつってルと考えるべきなんだよな 元々が制御用だしね。
だから、NECでも半導体部門の製品で、コンピュータ部門の製品じゃなかったんで。 当時のCPUの信頼性や堅牢性はどうだったんだろうね
車載なんて超ハードな要件だと思うから処理性能以上に物理耐久性がないと使い物にならなかったろう
Z80にしろ6502にしろ洗濯機でうっかり洗っても乾かせば動いたみたいな話はあったかもしれないけど ファンレス動作だしパッケージされてるし
電源やコンデンサにくらべたら気にするほどでもないような まあ、世界初のマイコン(i4004じゃないよ)はF-14トムキャットに搭載されてるしな 宇宙に行くことに比べたら割と余裕な感じだったのね
やっぱりトランジスタは偉大だなあ
真空管もいいもんだけど intel 4004は電卓用でしょ
8008もターミナル用に作られた(採用されなかったけど)
motorola 6800は制御用だった
8080辺りでパソコン的なものは大量に出てきたようなので以降はパソコン用途も念頭になってると思うけどな
組み込み制御用は8048がけっこう早い段階で出ている 8008は精工舎がS500という建築土木向けの計算端末として採用したようだよ
設計段階で精工舎がかかわってて
8008と同じ動作をするシミュレータを精工舎で作ってS500の動作実験してたらしい
「インテルがまだ小さかった頃」という本に書かれてる >>296
8008の頃にシミュレータといっても大変だったと思う >>291
自動車史上最初にエンジンにコンピュータが使われたのは、点火タイミング制御ではなく燃料噴射装置です。それまでに燃料噴射装置自体はありましたが、それは完全機械式!でした。
こちらの歴史はかなり古く、1930年にはダイムラ・ベンツ社の航空機用エンジンDB600(第2次大戦のドイツ軍戦闘機、メッサーシュミットMe109~Bf109のDB601エンジンの元ネタです)に標準装備されていました。
さて史上初の電子式燃料噴射装置ですが、1967年、(当時の)西ドイツ、ロバート・ボッシュ社からD-ジェトロニック(Dジェトロ)という名称で発表されました。
(Dはドイツ語のDrucksensorの頭文字で、圧力センサのこと。世界初の電子式燃料噴射装置は、現代の様にフローセンサ=流量計を持たず、吸気管内の圧力を測定して吸入空気量を測っていました。)
当初の目標はカリフォルニア州の排ガス規制を突破するのが目的でした
コイツが実装されて販売された自動車史上初の市販車は、なんとベンツでもポルシェでもBMWでもありません。
VW(フォルクスワーゲン)社の1600LEとTLE、いわゆる空冷リヤエンジンのタイプ3と呼ばれているヤツで、
これが「世界ではじめてコンピューターで走るフォルクスワーゲン」として発売されたのが1967年のことです
制御装置には約 30 個のトランジスタと 40 個のダイオードが含まれており、サイズはブリーフケースの約半分でした。ただし、CPUはありません