8086 vs. Z80 vs. 6809 vs. 6502 その8
1 :
ナイコンさん :
2012/04/09(月) 18:54:57.87
2 :
ナイコンさん :2012/04/09(月) 21:05:54.45
おつ!
3 :
ナイコンさん :2012/04/09(月) 23:13:10.45
4 :
ナイコンさん :2012/04/10(火) 09:48:27.12
ああ、am9511は超有名だったからな。 そしていちょつ。
5 :
ナイコンさん :2012/04/10(火) 12:42:52.15
Zilog Z180(HD64180)やIntel 8231/8257 (Am9511/9517のセカンドソース) への 柔軟な対応と、HD63C09へのどうしようもない対応が歴史を決定した。 オリジナルの6809のアーキテクチャに最大限の敬意を払って拡張され、 高速化され、CMOS化された優秀なセカンドソーサのチップを潰したMotrora。 MC68040、MC68060、PowerPC620、PowerPC G4と複雑化→開発遅れを 何度も何度も何度も同じ轍を踏んで、半導体事業撤退に至る。
6 :
ナイコンさん :2012/04/10(火) 13:24:33.84
>>5 >高速化され、CMOS化された優秀なセカンドソーサのチップを潰したMotrora。
潰してないでしょ
7 :
ナイコンさん :2012/04/10(火) 14:56:30.86
6309の独自拡張がモトローラと日立の紛争の原因とはなったようだが。 インテルやザイログは西海岸の企業だから製品や考え方に違いはあるだろ。 モトローラは西海岸の企業ではないから、企業文化としても災いしたのだろう。 現在はモバイルと通信に分社化され、モバイルはグーグルに買収という状態だ。 モバイル部門すら買収され影も形もないとなると問題は半導体部門だけじゃないだろうな。
8 :
ナイコンさん :2012/04/10(火) 15:00:25.72
>>7 > 6309の独自拡張がモトローラと日立の紛争の原因とはなったようだが。
日立が勝手に拡張した内容をデータシートに載っけてモトローラに怒られただけ。
データシートの該当部分は削除になったけどチップの販売は普通に継続された。
9 :
ナイコンさん :2012/04/10(火) 15:29:30.49
拡張仕様がリファレンスやデータシートに載ってない6309など、互換チップ以外に存在意義はないな。 実質的な圧力だろう。当時貿易摩擦もあったろうし東海岸の企業らしい。 モバイル部門がグーグルに買収されたら終了だろうかね。 モトローラという企業は、ビジネス的にチップだけでなく企業としてもイマイチだったのだろう。 そんな企業の作るチップを信じてしまった昔のPC板住人氏は残念でならない。
>>9 >拡張仕様がリファレンスやデータシートに載ってない6309など、互換チップ以外に存在意義はないな。
CMOSだし、3MHz動作版もあったし、そんなことないでしょ。あんたバカじゃね?
ロストテクノロジーで盛り上がってるな
そもそもデータシートが外部非公開のエンジン制御用6301とかもっと魔改造されてるじゃん
>>13 マニアがどうこうした数なんて全体の生産量からすれば屁みたいなもんだろ。
臭いって事?
>>13 ないな。
ゲームが動かなくなるから。
あとFM77AV系はCPUが直付けだから、載せ換えはさらにハードル高い。
>あとFM77AV系はCPUが直付けだから、載せ換えはさらにハードル高い。 DIPだし大したことない
>>14 数が少ないからステータスになるのさ。
もちろんコテ持てない奴等はよだれ流してるだけ。
いい加減な改造して不安定になるよりも 遅くてもノーマルで安定している方が良い まして改造がステータスだなんて思っているヤツはアホゥ
>>19 いいかげんな改造しか出来ない奴のいいわけだな。
いい湯加減だよ
6309はTFR,EXGの非互換さえなけりゃ神CPUだったのに。 惜しい、とても惜しい。
この辺の話かいな?
http://www.6809.net/6809/?6309%CC%BF%CE%E1%C9%BD > exg a,x のようなサイズの違うレジスタ同士の演算で、16ビット側レジスタの値は、 6809では
> 下位バイトが対象になるが、 6309では8ビットレジスタが16ビットレジスタペアになったときに
> 対応する位置が対象となる。 exg a,x なら 6309では xの上位バイトが対象となる。
> ※ 実のところ、サイズ違いの演算は あまり未定義アドレッシングと意識せずに使用されて
> いたと思われ (アセンブラで普通に指定できてたと思う)、 オーソドックスに組まれたと思われる
> ソフトが 6309にCPU換装して動かなくなる原因はこのへんだったらしい(?)。
データシート上は互換だったのに、 未定義動作の互換性までは考えていなかったというオチ。
まあ、8080→Z80でもけっこう非互換部分あるけど、あんまし文句言ってる人見たことないし、いいんでないの?
26 :
sage :2012/05/24(木) 10:19:09.57
オーソドックスに組まれてないだろそれ。 素人ならともかく、プロが未定義使うってどうなの。
エラーにしないアセンブラが悪い希ガス
使うヤツが悪いに決まっているだろ アセンブラ、コンパイラのエラー報告は忠告程度 エラーがなくても疑うのがプロ
>>28 アセンブルのたび、リンクのたびに出力されたコードをプログラマが精査ですか? プロって大変なんですね。
全てやる訳無いだろ、バカかオメーはよ アグレッシブなコードだけ精査するに決まってんだろ とろい突っ込み入れてんジャネーヨボケが
>>30 え、それじゃあ「エラーがなくても疑うのがプロ」てのは嘘なの?
なんだ、テスト中は全然こなかったのに、テスト終わるとさっそくやって来たな。
ていうか、意識して未定義使うとかの話じゃなくて、 意図せずにないsrc/dstの組み合わせをしてしまったとかの話なの?
アマチュア製アセンブラやコンパイラが普通に使われていた時代 アマチュアとプロの境界線も曖昧だった時代 未定義動作の記述ハジくとか石の製造メーカーが作ったアセンブラぐらいしかなさそうな気が
>>35 > アマチュア製アセンブラやコンパイラが普通に使われていた時代
そんな時代あったか?
俺は使ったことない。
なんか、マシン語とか言いながらバイナリダンプを指すような人達の会話に見えてるな…
>>36 お仕事でCP/Mとか使っていたヒトは知らないかもしれんけど
アマチュアホビーストはそんな高いモノ普通は手が出なかったから
ホビーストお手製のシステムプログラムでお茶を濁していたのだ
この場合は6309だからCP/MじゃなくてOS-9とかだな。
パソコン一台買って小遣いが干上がった子供はソフトは自作か雑誌で手入力
>>33 ならいいな、そろそろ赤いちゃんちゃんこに手が届きそうなんだよ。
>>42 頭の中が学生気分であるか否かと、年齢ってあんま関係ないんじゃない?
1D SEX
符号拡張命令はホントに人気だねぇ
CBWすげぇ
だから、未定義命令を仕事で使っちゃだめだろ 純正品だってrevisionが変わったら動かなくなるかもしれん
>動かなくなるかもしれん その修正を有料で受けることを考慮した仕事を(ry
TB級のHDDをカセットレコーダーエミュレーションさせて8bit機に活用出来ませんかね
ICレコーダーでいいだろ
999GBまど読んでエラーにする機能も実装
>>48 ゲームとかでは使われている事が多々あって、実際MSXではHD64180機で動かないソフトが(ry
規格なんて、大手だって無視するんだぜwwww
iPadのUSB充電とか有名でしょw
>>53 >MSXではHD64180機で動かないソフトが(ry
MSXでは64180の方が規格違反だろ。日立も64180のことをZ80コンパチとか謳ってないし。
64180搭載機はZ80と切り替えられるから規格違反ではない
>>55 動かないんだからどっか違反してんだろうな
>>56 HD64180とかZ180とかZ380では
Z80のインデックスレジスタ関連の未定義命令が排除されてるってだけの事だな。
Zilog的には公式には存在しない命令なんだから
排除も何もない訳だがwww
Z80も各命令の挙動についてマニュアルに全て書かれてる訳じゃないしな
裏挙動があるのかー
裏命令を使うとか今の基準で考えるとありえない事やってたんだな
今は例外割り込みとかあるからな、普通に使えない。 (まぁまだCPUにもよるが…) 当時は速度が必要十分じゃなかったことと、メモリが高すぎたからな。 1バイト節約のためにトリッキーなことをするのも、たしなみみたいな意識もあったし。 (それはそれで色々問題あるが)
ホントにメモリが逼迫していたり処理を速くしたくて 裏技を使うのは仕方が無いと思うけど 知っている事を自慢したくてとか、興味本位で使うヤツはギルティーだな
64180とZ80じゃDAAしたときの挙動が違ってた気がする
DAA命令って、8080でも、Z80でも、64180でも、マニュアルでちゃんとした動作の定義なかった気がする
>>62 ある意味IOポート命令でVRAM(16bitアドレス指定アクセス)をするのもそうだな。
確か当初はOUT(C),Aとか上位バスにBレジの内容が出るとかいうのは、正式にはなかったはずだし。
DAAは8080A以降の命令じゃなかったかな、Aなしはなかったと思う。
それ以前に積極的に使う場所が限られてたような。
>>65 >ある意味IOポート命令でVRAM(16bitアドレス指定アクセス)をするのもそうだな。
>確か当初はOUT(C),Aとか上位バスにBレジの内容が出るとかいうのは、正式にはなかったはずだし。
少なくともシャープのマニュアルには書いてあったぞ。
>DAAは8080A以降の命令じゃなかったかな、Aなしはなかったと思う。
Aなし→Aあり は電気的に改良されただけ。
あ、そうだNECの偽物の話とごっちゃになってた。ぐぐって確認。 シャープのZ80だってところがミソってことだったんだろうなw
Z80ってバグあったよね
Zilogのマニュアルにも書いてあるがな
288ページしかないんだが
288ページもあれば、充分だと思うが。 まあ、out (c),a というニーモニックだし、"select the I/O device at one of 256 possible ports" なんて書いてるから、たまたま A8-A15 に Bレジスタの内容がでるような設計になってて、 便利そうだということで仕様になったんだろうね。
>>73 古い版のにはなかったとか言いたいならお前がそれ提示すればいいと思うよ
ドヤ顔(笑)
>>72 The contents of register C are placed on the bottom half (A0 through A7) of
the address bus to select the I/O device at one of 256 possible ports. The
contents of Register B are placed on the top half (A8 through A15) of the
address bus at this time.
>>76 Bレジスタがアドレスの上半分に出てくるなんて書いてないだろ
>>76 何を言いたいのか書いてくれないかな?
>>77 > The contents of Register B are placed on the top half (A8 through A15) of the
> address bus at this time.
> レジスターBの内容は、アドレスバスのトップの半分(A15によるA8)にこの時期に置かれます。
ZiLOG Z80 Family User's Manual OUT (n), A Description: The operand n is placed on the bottom half (A0 through A7) of the address bus to select the I/O device at one of 256 possible ports. The contents of the Accumulator (register A) also appear on the top half (A8 through A15) of the address bus at this time. Then the byte contained in the Accumulator is placed on the data bus and written to the selected peripheral device. OUT (C), r Description: The contents of register C are placed on the bottom half (A0 through A7) of the address bus to select the I/O device at one of 256 possible ports. The contents of Register B are placed on the top half (A8 through A15) of the address bus at this time. Then the byte contained in register r is placed on the data bus and written to the selected peripheral device. Register r identifies any of the CPU registers shown in the following table, which also shows the corresponding three-bit r field for each that appears in the assembled object code:
ザイログ発行の資料にBレジスタの事が謳われていないんだから それを見込んだプログラミングはトリッキーと言われても仕方が無いね シャープについてはもう言う事無い、ただ異常としか これからは使わないようにしようね
>これからは使わないようにしようね そもそも、今後Z80のプログラムを組む可能性のある人は ほとんど居ないんじゃなかろうか。
>>81 だからそれのどこにもそんなこと書いてないじゃん
ザイログの資料にないことは全部裏技
裏技使えばどこかで問題が出る可能性が残る
だから使わないようにしようね
正統派のプログラマーは
>だからそれのどこにもそんなこと書いてないじゃん ???
都合の悪いことは見えなくなる人かな?
古いのもってこいよ
88 :
ナイコンさん :2012/06/17(日) 12:31:27.41
レジスタBの値がアドレスバスの上位に出るから積極的に使ってネ VRAMなんかI/Oアドレスに繋いでアクセするすると良いよ とでも書いてあると思っているのか マニュアルは事実だけしか書かれていない それをどう使うかはユーザー次第 トリッキーなコード書くのもユーザー次第 メンテナンスが出来るならどんなコードでも良いんだよ
>>70 それさところどころ間違ってるとこあるよね。
IN A(C)はED 7BじゃなくてED 78だよね。
ED 7B xx xx は LD SP,(nn)だよね。
Z80の売りの一つなブロック入出力命令だと実質使えないんだから 積極的に16bitI/Oアドレス使ってねとは書けないよなwww
>>90 Z80の売りの一つはDRAMのリフレッシュ機能だからDRAM以外は繋いじゃダメ、くらいナンセンスな話だな。
>>90 Bレジスタがアドレスバスに出るから、OTIRとかINIRとかで
「あと何回で転送が終わるか」がCPUの外からも見えて便利なわけだなwww
I/OはA0-A7とA8-A15を入れかえて配線すると便利ですよ とマニュアルに書いてて欲しかった そうすれば公知の事実になったのに
>>94 SONYのSMCナントカはそんな感じのI/Oマップだったらしいけど、なんか便利だった?
VRAMの並びがリニアでない時点でダメダメな気がするけど。
なんでリニアでないとダメダメなの?
16ビットでアドレス計算したあとペアレジスタの上下入れ替えるなんてしたくないよね
I/Oのアドレス上下入れ替えて、VRAMはI/Oにぶら下げられるわ、1命令でI/Oは アクセスできるわって話なら、I/Oのアドレス入れ替えるの止めてメモリの64KBの内 256バイト潰してメモリマップドI/Oにするのも考慮していいと思う。
たとえば 320x200 の解像度で1ドット1バイトのビットマップを実現したとして、 アドレスがリニアなら 0000〜F9FF になるとこをアドレスの上下入れ替えて 0000〜FFF9(XXFA〜XXFF は非使用)に割り当てる。 そうすると VRAM を I/O 領域にマッピングできるし、XXFA〜XXFF の非使用 領域はアドレスの下位のみデコードして他のペリフェラルを繋げられ、アクセスも OUT(n),A の1命令でアクセスできるってことだろ。 VRAMのアクセスは上下入れ替えが生じてる分面倒くさくなる。
OUTI命令並べられるし16ビット計算は元々遅いから使ってないし
SMCっリニアに見せ掛けてんじゃないの?
702 : 名無しの挑戦状 : 2011/12/19(月) 21:24:17.72 ID:rrRB54Gw [4/5回発言]
>>700 いい加減に知ったかやめてマジでw
自分はZ80も6502もやってたゲームプログラマだよ
その流れで当然68000もいじってる
本当に斜めでしか知らない人とはわけが違うんで
クロックで当時のCPUを語るなんて愚の骨頂
ちょっと調べればわかるが6502の1MhzはZ80の4Mhz相当の処理能力で
アドレッシングモードの豊富さや割り込みが実質256使えるために
リアルタイムの例外処理に非常に優れている
テーブルジャンプが使えるので非常に効率良いプログラムが書ける
Z80は本当にちまちました処理を全部書かなきゃならないんで処理効率が非常に悪い
ただ単純なのでコード自体は書きやすいけどね
6502は特にリアルタイム性が必要とされ
音と絵をフレーム単位で処理しなきゃ行けないゲームでは相当の差が現れてくる
時分割処理のムダが分かってればZ80推すプログラマなんて居ないってくらい
アケではこれに加えてコイン関係の入力処理が加わる
どこで蓄えたクズみたいな知識か知らないけど
いい加減にしたほうがいいよ
恥晒してるだけって気づきなさい
そんな事も知らないのにウォズの名を上げるとかおこがましすぎる
元プロ相手にとことんまでやりますか?
元プロが「hz」とか。 大丈夫か? おめでたいな。
>割り込みが実質256使えるために どういう意味だろ? 割り込みの数を比べるならZ80の割り込みモード0に勝てるわけないと思うが。
106みたいなバカが相手なら「いい加減に知ったかやめてマジでw」というセリフが出るのも仕方ないかな。
>>106 知らないくせに話題に参加しようという姿勢は評価する
6502の1MhzはZ80の4Mhz相当ってのは正しいな
>6502の1MhzはZ80の4Mhz相当の処理能力 知ってたらこんなバカなこと書けない
>6502の1MhzはZ80の4Mhz相当の処理能力 何倍相当かなんて何やらすかにも拠るけど、6502で4倍のクロックのZ80相当に働かせるって なかなかそんな処理ないだろ。
>>110 その話は前スレでなぁなぁになったでしょ、お爺ちゃん
ここには6500系がまともに使える奴は絶対にいないな 何せまともな話が出てこないものな
何を持ってまともに使えると言ってるのか知らんけど、 普通に使ってた奴はいくらでもいると思う。 て言うか、そういう奴しか見てないだろ、この板。
>ここには6500系がまともに使える奴は絶対にいないな という奴がアセンブリ言語の話題を絶対に振らないという不思議W
インストラクションの実行を考えないクロックの比較の無意味さとか、過去にやってたよな?
コピペ連呼君は芸が無いからな… 今だったら、B-CASカードにも内蔵されてる6502最強!とか書くべきなのにww
>B-CASカードにも内蔵されてる6502 芸がある人は流石だと思う。
ARM使えりゃ十分だろ
ARMだけだと消費電力に制限ある場合とか困る。 ついでにARM用語に慣れすぎてると、他のCPU使う時にまごつく。MPUとかw
>ついでにARM用語に慣れすぎてると、他のCPU使う時にまごつく。MPUとかw ARMしか知らんとこういう勘違い平気で口にできたりすんのか。
ARM用語でのMPUはMemory Protection Unitの略で コントローラー向けに使われる簡易版MMUの事。 他にもARM独自略語がふつ〜にあるので英文マニュアルを読む時は注意が必要。 日本語訳本も略語等の意味が間違ってる物があるのでマジヤバイ。
ARM開発での会話だと「MPUって滅多に叩かなくね?」とか普通に言ってるwww
АРМ
まあ、略語なんてどんなプロセッサにも付きもんだし、 どうと言うこともないと思うが。
>>126 最初、ARMが使っちゃったんだと思
その後、ARMコア対抗の奴が皆使い出したwwww
ふつう〜避けるでしょ〜MPUなんてのはwww
>>125 ARM Partner's Meeting
МПЮ
132 :
ナイコンさん :2012/07/19(木) 16:04:47.79
6502-1MHz=Z80A-4MHz=6809-2MHz つまり6502は8bit最強ってことだな
>>132 6502って実際そんなに速くない。
命令レベルで見ても、同クロックのZ80の4倍に相当する速さの命令なんてほとんどないし、
256バイト超えるテーブル操作とかガクッと効率落ちる。
インデクスレジスタ2本のおかげでシューティングゲームの当たり判定や弾移動は効率よく書けたな Z80のLD r,(IX+d)は19クロックだから6502のABS,Xの4クロックはムダがなくて気持ちよかった
>6502のABS,Xの4クロックはムダがなくて気持ちよかった ページ境界超えると+1クロック
>>134 ADD命令すらないプロセッサで効率よく書けたもないもんだわ
>>134 Z80慣れてるプログラマは、LD r,(IX+d)みたいな遅い命令は積極的には使わない。
IX,IYレジスタ使うぐらいならメモリに退避させるわ。
レジスタ使えよ
インデックスアドレスもどきするためにRAM上にコード置いてjmpしてたな、昔は
IX,IYレジスタ使うのと、それ以外のレジスタとメモリ駆使して処理するのとが メモリ量的にも速度的にも変わらないからな。
やっぱ6502信者って底が浅いな
ゼロページが足りてる間だけは結構効率が良いと思う
IX,IYは無いものと思っている
Z80はIX,IYレジスタ削って16bitのSUB命令入れろ。
ALUが4bitなのに無理言うなよ。
>>145 そんな事より、メモリアクセスを2クロックサイクルにして
M1サイクルと同じタイミングにすべきだった。
>>132 派生CPUはともかくとして、主CPUにしても時期的なものは有るがCLOCKは色々ある。
63C09や、Z80もBやHもある。
6502は速いのあるの?
Z80、今だに現行品なのでZilog公式のCMOS20MHz品(Z84C0020)も買えます。 HD64180ZのZilog版であるZ180も今だ健在です。こっちは33MHzが最高クロック品かな。 6502、B-CASカードにIPが使われている事で話題になりましたが、単体のチップとしてはWestern Design Center版の65C02や65C816は現行品です。 WDCの65C02なら、現行品の高クロック版は14MHz版ですかね。
65C02っちゃ6502のバグ直したやつだから動かない場合あるよね
複雑さにおいて桁外れのIntelの最新CPUが数年で消えてしまうのが何か虚しいですね
>>15 8bitだって似たようなもんだろ。
Z80や6502は現行だが、6809はwwwww
154 :
153 :2012/07/21(土) 13:55:50.25
あれ?
直しとくぜ!
>>152 8bitだって似たようなもんだろ。
Z80や6502は現行だが、一番複雑な6809はwwwww
155 :
ナイコンさん :2012/07/21(土) 14:03:08.38
6809って使われてるっしょ
Z80はIX/IYが遅いのではなくて、(HL)関連が「相対的に速い」んだよね LD (IX+d), r が6809や6502での5クロック相当の命令だとすると LD (HL), r は6809や6502での2クロック相当の命令だからなぁ
メモリアクセスが3クロックでOPコードが4クロックか8クロック使うんだから ツボにはまった命令やINC rだけでやりくりできる特殊な状況でなければ3〜4倍ってのが妥当 ビッグエンディアンの6800は論外
単純なプログラムだと6800>6809だよね
6309E使えば解決。
↑ジジイになるとそういうひねくれたレスしか出来なくなるんだね
知ったか乙とか言っとけば気が済むんだから放置しろよ。
>>160 から見て
>>149 が本当に知ったかなら、どこがどう知ったかなのか指摘するでしょ。
>>149 >6502、B-CASカードにIPが使われている事で話題になりましたが、
6805でしょ。6502とは全然違うよ。
>>151 >65C02っちゃ6502のバグ直したやつだから
違うよ
直したよフラグを
>>165 そだね。直したら文句言われたという orz
>>151 一口に65C02と言ってもWDCとRockwellとで別もんだよ。
そこまで判ってるのに、>151 の意図も判らない?
>>168 151「ぼくわバカですウヘヘあーウンコもれちゃったー」
こういうこと?
使ったことないガキは黙ってろ
バグ修正ではなく仕様変更
167は何がいいたいの?
理解できないバカがいます
このごろあちこちで程度の低い奴がごろごろ出てきたな、しかも真っ昼間を中心に。 夏休みも仕方ないもんだ。
バグじゃねーエラッタ
バグって書いてあんじゃん
そこに
そこかよ
大方、Wikipediaかなんかの記述をありがたがってる半可通だろう。
爽健美茶のシールの下四桁が6502だった〜
最強じゃないか
それはうpしないと価値が十分の一になる
いらない
おう、ジーサン共 暑さでくたばってるんじゃないか
ガキが来るところじゃないよ
cpuが熱暴走しない程度にエアコンつけとけよ 年寄りに熱中症は命取りだからな
ガキが来るところじゃないよ
逝ったらスレに訃報出すように遺言状に書いとけよ
1D SEX
もうだんだんNOPばっかになってきて最後にHALTするんでしょ
Z80を超えられるものはでなかったな
スレチかもしらんが、PPCのEIEIOも好き
ゼロのページのアドレスに 今日も修飾吹き荒れる リフレッシュ無用のザイログに サイクルスチール見せてやれ
闇に隠れて 生きる 俺達ゃ常駐ソフト なのさ 人にコードを 見せられぬ 獣のような この実装 (割り込みベクタを 奪い取れ〜!) ティー! エス! アール! 常駐 ソフト
200 :
ナイコンさん :2012/09/17(月) 20:17:13.47
TSRBIOS.SYSってなんぞや?
「プログラムを終了させてシステムに制御を戻すが、そのプログラムはメモリに残しておく」 例:デバイスドライバ、DOSKEY Terminate and Stay Resident (TSR) 常駐プログラム Terminate and Stay Resident − Wikipedia
202 :
ナイコンさん :2012/09/21(金) 00:56:37.48
同一クロックなら6800はZ80よりも処理が速いの?
>>202 最短実行クロックが
6800 → 2
Z80 → 4
だから、同じクロックで同じような命令なら6800の方が速い。
6502>6809≧6800>Z80>8080
>>207 同一クロックで?
>6502>6809≧6800>Z80>8080
扱うデータの量にも拠るな。6502は256バイト超えると途端に効率が落ちる。
>>207 場合によっては8080>Z80もありうる。
こうか 6502>6809>6800>8080>Z80
6800…世界的にパソコンやゲーム機にあまり使われなかった。 しかし16bit拡張の後継CPUが出ている(68HC12と68HC16) 6809…後継CPUの出なかった残念なCPU 仮に6809の16bit版があったなら、6800の16bit版とどっちが使いたい?
6800 → 6809 \ 68HC11 → 68HC12 \ 68HC16
>6800…世界的にパソコンやゲーム機にあまり使われなかった。 > しかし16bit拡張の後継CPUが出ている(68HC12と68HC16) ライバルだった筈の8080は64bit版が出てるってぇのにえらい差ぁついたなw
>>216 6800系の場合、バイナリ上位互換じゃ無いので水平展開のように見えてしまう…
HC11 = 6800 + Yレジスタ
HC12 = 6809 - Uレジスタ (HC11にポストバイトを設けて命令形態を再設計した感じ)
HC16 = アドレス20bitの独自設計(オペコードマップも大きく異なる)
まあ、PDFでしか見たこと無いけど
6800は16ビットのレジスタ持ってるくせにバカみたいに遅い命令しかなかったな Z80でLD A,(HL)みたいなことができなくて常に3サイクル浪費しさせられた 子孫のHCS08はACCBがなくなってIXが上位と下位に分轄されてマトモなCPUになったが 6809の頃にんな形にしとけばよかったのに
6809もprefixバイトで拡張してるからなぁ、あれがなければもうちっと綺麗だったような。 または逆に大幅に拡張しとけ、って感じでもあったんだが当時はあのへんが色々妥協点だったんだろうね。 モトローラのバスは、設計は美しいような気がするが周辺デバイスとの親和性がいまいち(ファミリーなら問題ないが) だったから最終的にコストがかかる感じだったんだよね。 そこらへんがメーカーが採用しぶった部分だと思う。 いまとなってはどの8bitCPUが優れてるとかそうじゃないとか、些末なことだな。 年寄りの昔は良かったに近い、思い出だけが増幅される。
集積度か低かった時ならいざ知らず、今時レジスタ分割とか何言っちゃってるんだ?
今時でもオペコードはバイト単位にまとなきゃならんし 割込み時には保存しなきゃならんし
オペコードサイズとレジスタ分割に何の関係が? 割り込み時の保存はまあそうだが、集積度活かしてレジスタウィンドとか使えばいいだけでしょ。
バイナリ互換ではないがアセンブリ言語レベルでは互換 8008 - 8080 - 8086 6800 - 6809
8008 - 8080 - 8086 - (略) - 80386 - (略) - Sandy Bridge
そこまで書くなら、4004 からにしてやりなよ。
バイナリ互換以外は互換とは認めん
古いバイナリなんて動いても価値無い
んなこたーない
>>231 4004のバイナリが今のPCで動いたとして、どういう価値があるのか詳しくPLZ
233 :
ナイコンさん :2012/09/22(土) 01:21:20.42
I4004とI4040は互換性あったよな
当時既にアドレスが16bitでは足りないのが判ってたんなら、MMUなんかにしないで24bitにすればよかったのに。 当然、インデックスレジスタ、スタックポインタは24bit、アキュムレーターは3個にして、三つ繋げて使えるとか。 駄目かな。
3ていうのが2進数に収まり悪いし効率悪いだろ。
236 :
ナイコンさん :2012/09/22(土) 02:48:56.96
i4004は12bitで4KB i4004は13bitで8KB 典型的な8bitCPUは24bitで64KB 8086は20bitで1MB 典型的な16bitCPUは24bitで16MB 典型的な32bitCPUは32bitで4GB 典型的な64bitCPUは48bitで256TB
i4004は12bitで4KB i4004は13bitで8KB 典型的な8bitCPUは24bitで64KB i8086は20bitで1MB 典型的な16bitCPUは24bitで16MB 典型的な32bitCPUは32bitで4GB 典型的な64bitCPUは48bitで256TB
>>236 >i4004は12bitで4KB
>i4004は13bitで8KB
>典型的な8bitCPUは24bitで64KB
何言いたいのか分からん
>>236 >典型的な16bitCPUは24bitで16MB
「典型的な16bitCPU」ってどんなんよ?
i4004は12bitで4KB i4004は13bitで8KB 典型的な8bitCPUは16bitで64KB i8086は20bitで1MB 典型的な16bitCPUは24bitで16MB 典型的な32bitCPUは32bitで4GB 典型的な64bitCPUは48bitで256TB
>>240 >i4004は12bitで4KB
>i4004は13bitで8KB
どっちが正しいの?
典型的なバカ
スパゲッティ絡まった
244 :
ナイコンさん :2012/09/22(土) 17:05:07.88
i4004は12bitで4KB i4040は13bitで8KB 典型的な8bitCPUは16bitで64KB i8086は20bitで1MB 典型的な16bitCPUは24bitで16MB 典型的な32bitCPUは32bitで4GB 典型的な64bitCPUは48bitで256TB
うんこっこ
>>244 >典型的な64bitCPUは48bitで256TB
典型的な64bitCPUってDECのAlphaだろ? そんなでかい物理アドレス持ったチップなんてあったかな?
>>244 >典型的な16bitCPUは24bitで16MB
典型的な16bitCPUであるTMS9900はそんなにメモリ積めないゾw
CPUの擬人化漫画はまだですか?
結局
>>244 は何が言いたいのかわからない
究極の8ビット機スレによく沸いた
「メインCPUが8008でサブCPUがcore-2」
とかいう内容を延々書き込んでいたバカと同じ匂いがする
>>250 名作だよね、一度作ってみたいけど
込み入ってくるとジャンパー飛ばすのがめんどくさそうで
部品集めしたけどまだ手を付けていないのが現実
252 :
ナイコンさん :2012/09/23(日) 10:52:51.21
>>250 買った、読んだ、色々な意味で感動した
Verilog-HDL とやらで FPGA に移植を試みた
初っ端のクロック 1 Hz を作る段階で、虚しくなって頓挫 w
仮に超高クロックの究極8bitCPUが有ったとしても 今時のソフトウェアはFloatだのDoubleだの16bit以上の演算ばかりなので 大したパフォーマンス出ないだろうな
>>254 今だとCPUよりGPUの方が重視されそうだしな。
FPUとGPU外付すれば。
そもそもそんな高パフォーマンスが必要なのか?
もちろんないよ
>>254 8bitアドレスのCPU作るなら別だけど、8bitCPUだってアドレス演算は16bit以上だからね。
8bitCPUに追加するFPUなんてカシオの電卓で十分やで
実際電卓用のLSIを繋げようとした試みはあった。
そういや、外付け乗算器とかあったなぁ
8bitようのマスコプロも色々出てたな
トランスピュータとか?
は?
違ったね。失礼。
そういやWikiのFP-1100の解説でサブCPUは電卓のだとかむちゃくちゃ書いてたな 今見たら差し障りのない解説でつまらん
>2CPU構成(メイン Z80互換 4MHz、サブ 4bitマイコン) これかな? 意味は違うけど
嘘にしちゃ意図わからんな。履歴見れるのも知らず、適当な伝聞に脚色したのかな 「wikiとはどっかのwikiであってwikipediaとは誰も言っていない」説に切り替えられると予想
wwwなるほどwww
Z80も言い方変えれば4bitなんだけどな。
>Z80も言い方変えれば4bitなんだけどな。 ↑バカ丸出しw
>>275 はALUかなんかのことと勘違いしてると見た
まあ○ビットCPU なんて、メーカーが適当につけてるだけだからねぇ。 ちゃんとした定義があるわけでもないし。
>>275 に言わせるとドリームキャストは128bit
>>279 Z80当時はデータバス幅の意味で各社例外なかったと思う
インテルが8bit CPUとして販売していた8088を、IBMがPCに採用して16bit PCと言って売ったり、 ナショセミが外部16ビットのNS16032を32ビットアーキテクチャMPUとして売ったりした辺りから 崩れてきた気がする。
284 :
ナイコンさん :2012/09/30(日) 13:34:27.87
Z80も6809も6502も言い方変えれば16bitなんだけどな。
285 :
ナイコンさん :2012/09/30(日) 16:46:45.64
>>285 スレの流れ的に貼るのはこっちの方だろ。
http://ja.wikipedia.org/wiki/FM_TOWNS#cite_note-32 > 29. ^ X68000が搭載する68000(より厳密にはそのセカンドソース品の日立製作所HD68HC000)は
> 汎用レジスタが32ビット長であるが、アドレスバスは24ビット幅、データバスは16ビット幅となっており、
> 開発元であるモトローラの定義では16ビットCPUとなる。同社のライバルであったインテルの場合は
> CPU内部の汎用レジスタ長をもってCPUのビット数として取り扱ったが、モトローラではデータバス幅を
> もってCPUのビット数を表現した。このため、同じ16ビットパソコンと表記する場合でもインテル製CPU
> 搭載マシンとモトローラ製CPU搭載マシンではその意味合いが異なる場合がある。X68000の場合も
> インテル流に表記すれば全て32ビットパソコンということになり、データバス幅16ビットの386SXを搭載
> したFM TOWNSの廉価機はモトローラ流の表記に従えば16ビットパソコンとなる。ここでいう32ビット
> パソコンとは、データバス幅も32ビット化されたマシン、つまりMC68020やMC68030(およびその
> 派生モデル)を搭載したマシンを指す。
>>286 > 開発元であるモトローラの定義では16ビットCPUとなる。同社のライバルであったインテルの場合は
> CPU内部の汎用レジスタ長をもってCPUのビット数として取り扱ったが、モトローラではデータバス幅を
> もってCPUのビット数を表現した。
8088は? 68008は?
288 :
ナイコンさん :2012/09/30(日) 17:14:55.76
Wikipediaの注釈書いた奴が発狂してるのか?w
マルチポストしてるアホにいちいちかまうなよ。
じゃ元祖Pentiumは64bitになるじゃんか
292 :
ナイコンさん :2012/09/30(日) 20:32:08.06
294 :
ナイコンさん :2012/09/30(日) 23:10:18.58
うんこっこ
295 :
ナイコンさん :2012/10/01(月) 21:12:03.87
288や388は無いのか〜
そういや、i80386sxも外部バスは16bit、アドレスバスは24bitだったけど、32ビットって言ってたもんなぁ
297 :
ナイコンさん :2012/10/02(火) 00:28:32.09
16bitな486 IBM 486SLC、486SX(J) 、Cyrix Cx486SLC
486はダイナミックバスサイジングができるから8bitも可
300 :
ナイコンさん :2012/10/02(火) 07:38:02.41
>>298 NECがV30後継として8080/Z80互換機能搭載の486を作ってくれたら最強だったのにね。
別に他のメーカーが同様の発想で作っても良かった。
68000搭載のメガドライブは32bitと言いたいところだが、 外部アドレスバス32bit無いから32bitゲーム機とは言いがたいかも
>>301 68000自体は自称でも32bitCPUとは言ってないけどな。
>>301 68000は内部16bitのプロセッサだよ。レジスタの幅が32bitあるというだけ。
現在担当のフリースケールはローコスト32bitと言ってるけどな
モトローラと違う会社なんだから流儀が違っても不思議はない>フリースケール
今の「このCPUはRISCかCISCか」みたいな論争と同様、 「このCPUは16bitか32bitか」なんてほとんど意味ないだろ 外部バス幅がどうとかレジスタ長がどうとかメーカーがこう言ってるとか・・・
>>306 意味がないとかあるとか、そんな話誰もしてませんよ?
>>306 >今の「このCPUはRISCかCISCか」みたいな論争と同様、
いまどきそんな論争しとるバカなんていないだろ。
>>306 >「このCPUは16bitか32bitか」なんてほとんど意味ないだろ
68000や386が現役の頃やそれ以前はマーケティング的な意味があったよ。
中はデュアルポート32ビットRAMと独立バスのROMだから128bitと呼んでもいいレベル 演算対象がメモリへでも1サイクルで終わるんだから68000の子孫も6809の子孫も大したもんだ
>>310 >中はデュアルポート32ビットRAMと独立バスのROMだから128bitと呼んでもいいレベル
せめて何について言及してるんだかくらい書いとけ。
313 :
ナイコンさん :2012/10/02(火) 22:59:43.67
68000は32bit、メガドライブは32bit、X68000は32bit 、メガドライブにメガCDと32Xを装着すれば、 Z80(8bit)+68000(32bit)×2+SH2(32bit)×2だから 136ビット級だな。
315 :
ナイコンさん :2012/10/02(火) 23:17:17.89
自称16bitのテキサス・インスツルメンツ TMS9900やゼネラル・インスツルメンツ CP1600 、なんか8bitとあまり変わらないような希ガス。外部メモリーアドレス幅は16bit。 8086も64KB以上にアクセスするにはセグメント方式(バンク切り替え機能と言えるか) でアクセスするから似たようなもんかな。
8bit CPUよりも16bit CPUの方が意外と種類が少ない感じだね。32bit になると RISC系が沢山出てくるし。純粋な16bit CPUってもの少数派の感じで、 よく使われている16bit CPUでは8-16bit系(8086、65816)と 16-32bit系(MC68000)って感じだな。
いまDIPで入手可能な一番性能が良いCPUってどれよ
>>316 16bitは中途半端だからな。
アドレス幅が16bitじゃさすがにアレだし24bitとか欲しくなるのが目に見えてるんだから
最初から32bitにしとけって事だ。
>>317 はいはいPIC、PIC
PIC32なら中身はMIPSだし性能的には問題無いだろ
最近、ARMコアのDIP品も出回ってるけどアレはM0だからな〜
>>318 >PIC32なら中身はMIPSだし性能的には問題無いだろ
サンクス、これから資料集めて読みまくる
MIPSってキャリーフラグとかローテートって機能がないんだな C言語にまったく無い概念だからどうでもいいといえばどうでもいいんだが
mipsなんて完全にオワコンのアーキテクチャだったけどな、ライセンスが安いとかあんのかな? いまだに生きてるのが信じられん。
>>316 >8bit CPUよりも16bit CPUの方が意外と種類が少ない感じだね。
お前が知らないだけ。
組み込み用途には結構使われてるし種類も多い。最近32bitプロセッサに侵食されてきてはいるけどな。
323 :
ナイコンさん :2012/10/04(木) 15:35:44.93
>68000 CPUは外部データバスが16bitであったため当時は16bit CPUとして分類される。
またぞろ誰かさんが書き換えてくれたわけですが(しかもID作った直後に。そして
現在に至るまでX68000以外の編集履歴もなしときているわけだなこれが)。
これってぶっちゃけ「外部データバス幅が16bitしか無い386SXが32bitCPUを名乗れ
るなら、68000も32bitを名乗れるはずだ」という、当時Oh!X誌あたりで気持ち悪い
信者と無知なライターが主張して気勢を上げていたネタですよねぇ?
結論から言えば、一般的には(もちろん異論もありますが)CPUのビット数ってのは
第一にALU(算術演算ユニット)のビット幅によって規定されるものであって、68000
はこのALUが16bitしか無いため純然たる16bitCPUであると(そして386SXが何故32bit
を名乗れるかといえば、386SXのALUは32bitあるからです)、こんなことはWikiの
MC68000の項目にもしっかり書かれている事実なわけですよ。
レジスタ幅が32bitだから32bitCPUだろうとか、後の68020や030などの純然たる
32bitCPUと同じ命令アーキテクチャを持っているから実質32bitだとか、中身は
最初から32bitだったのに外部データバス幅が16bitだったから不当に貶められたと
かは、まあ外野が噂話をする分には構わないしそういう(無知だからこそ)流布した
噂が当時存在していたことも事実ですが、百科事典に書いてしまったらまずい訳です
わ。そういう(恥ずかしい誤認による)主張があったという事実を記述したいので
あれば、無知なライターと阿呆なユーザーが一部でそう主張していたという事実を
きちんと書かなければならない。違いますか?
でも68kは置いとくとして、例えばオリジナルの8080やZ80なんかはALUは4bitで
実装されていて、2回回しで8bit演算を行ってたはずでは。論理的(もしくはISA的)
には8bitで、機能面の充実を優先するために実装上の等価回路として4bit2回回し
を選択した訳だし(電子情報通信学会より)。
そういう前例からも、ALUのbit幅は単なる実装上の数値でしかないんじゃないかな
ー。--125.28.0.232 2006年8月23日 (水) 17:20 (UTC)
ノート:X68000 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%8E%E3%83%BC%E3%83%88:X68000
324 :
ナイコンさん :2012/10/04(木) 15:37:29.50
なんだ8080とZ80は4ビットか
ノート:CPU - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%8E%E3%83%BC%E3%83%88:CPU > bit数
> CPUのビット幅がALU幅である旨の要出典。反例として8080やZ80はALU4bit構成(2回廻し)で
> あるが矛盾する。従って信頼性の高い出典なければ独自研究と判断) (取り消し)
> ちぇすさん、取り消しは? CPUのビット幅の定義、または説明は必要でしょう。 この件は
> 各メーカーの定義、或いは共通の認識で決まると思います。 bit数は必要な説明ではない
> ですか? 削除ではなく×bitCPUに対して、その定義、或いは説明を考えませんか?
> > CPUのビット幅がALU幅である旨の要出典。 との事ですが >反例として8080やZ80は
> > ALU4bit構成(2回廻し)である
> のソースを教えていただけないでしょうか。
> ちなみにWikipedia初心者で使い方がイマイチ解っていません。 何となく変な事をしている気が
> します。 ご指摘を頂けると幸いです。Shisan 2007年10月19日 (金) 16:25 (UTC)
見やすくするために、4bit ALUの2回回しは省いたんチャウチャウかわいいよね
Z80は4bitALU。 設計者の嶋氏の著書マイクロコンピュータの誕生p144で「8ビット構成のALUを4ビットに変更した事によって〜」と触れられている。
嶋氏の著書で8080の演算回路についても書かれているが、キャリールックアヘッドってか プロセス違いによる回路設計上の問題点が主題になってる。 Z80ALU回路について触れられる文章において 「8080Aでは〜かなりの面積を無駄にした。こんどは内部〜、先に述べた8ビット構成のALUを4ビットに〜」と書かれているので 8080Aでは8bitALUである事が推測されるが。 実際の8080チップ写真に置いてもALU部分が8bit処理である事は見て取れるが。
>>323 >こんなことはWikiの
>MC68000の項目にもしっかり書かれている事実なわけですよ。
オモロイw
1D SEX
MC68000はあの巨大なDIPパッケージで他を圧倒するだろ MC68000と同じ基板に並べたら8086なんてただのICにしか見えん あのでかさは32bit級と言っても過言ではない
334 :
ナイコンさん :2012/10/05(金) 22:32:56.16
組込系だ制御系だといいつつプログラムしかしなかったからプロセッサが8ビットだとか16ビットだとか32ビットだとか気にしなかったな。 データやロジックが実装されているストレージに収まるかどうか、処理が時間道理に完了するかどうかのほうが重要だったから。 「おい、処理をあとnクロック短くしてくれ」だけなら意外に簡単。 『処理をnクロック短く、かつ、データをmバイト以下に抑えてスタック消費をpバイト以下にしろ』とかの複合攻撃だったからなぁ・・・
>>334 >組込系だ制御系だといいつつプログラムしかしなかったからプロセッサが8ビットだとか16ビットだとか32ビットだとか気にしなかったな。
アセンブリで組んでなかったんじゃね?
>>334 8ビットと32ビットじゃプログラムのチューニングの仕方も結構違うと思うけど、気にしないで
やってけるもんなのか?
最近スレ違いが度を越しているな 誰も8086,Z80,6809,6502の話してないじゃん 組み込みがどうのこうの、なんて話は電気電子板でやれよ。
組み込みって言っても範囲広いからなあ。
UI 周りとかだと、あまりビット数なんて意識しないけど、8bit でリッチな UI と言うのは
あまりないだろうね。
そもそもクロック気にするような状況だと、ビット数というよりプロセサの種別の方が気
になると思うから、
>>334 はどう見ても聞きかじりの知ったか君にしか見えない。
Z80に32bit演算の出来るFPUを繋げたら 究極の8bitCPUになれる
>>334 プロセッサのアーキテクチャも意識しないでプログラムの最適化なんて大したことできないと思うんだけど、現実の話ですか?
>>334 >「おい、処理をあとnクロック短くしてくれ」だけなら意外に簡単。
>『処理をnクロック短く、かつ、データをmバイト以下に抑えてスタック消費をpバイト以下にしろ』とかの複合攻撃だったからなぁ・・・
ヌルいプログラム書いてっただけの話だろ。
342 :
ナイコンさん :2012/10/06(土) 02:11:24.56
Z800・Z280 24ビットリニアアドレッシング Z380 24ビットリニアアドレッシング/32ビットリニアアドレッシング eZ80 24ビットリニアアドレッシング いずれもZ80上位互換だが、拡張部分はそれぞれ非互換である
>>344 >Z800
Z800って実在しないだろ
Z800・Z280 24ビットリニアアドレッシング Z380 24ビットリニアアドレッシング/32ビットリニアアドレッシング eZ80 24ビットリニアアドレッシング R800 24ビットリニアアドレッシング eZ80はR800の技術を使用しているとか
>>346 >R800 24ビットリニアアドレッシング
MMUで物理アドレス空間が24ビットまで使えるってだけじゃん
>>346 は「リニアアドレッシング」の意味を理解してない
Z280 20886的拡張で使い難い。遅い。 Z380 32bit扱うにはショボイ。 R800 速い。 eZ80 速い。仮想80モードも搭載。 Z380とR800とeZ80は似ているらしい
>>334 >『処理をnクロック短く、かつ、データをmバイト以下に抑えてスタック消費をpバイト以下にしろ』とかの複合攻撃だったからなぁ・・・
コンパイラの出力眺めながら最適なコードを吐くようソースを修正したり、場合によっては
アセンブラで関数書いたりって作業になると思うけど、「プロセッサが8ビットだとか
16ビットだとか32ビットだとか」気にしないでどうやるんだ??
アセンブリレベルの最適化しないにしても、プロセッサによって効率のいい変数のサイズも
違ったりすんのに。
>>350 >Z280 20886的拡張で使い難い。遅い。
286的って事?例えが変だろう。
パソコン向けの拡張と言うべき。
速度が期待外れ的に遅いってのがZ280の問題点だが
もし速度が速かったら、今度は16bitアドレスが枷になって、Z80互換CPUの限界を露呈しただろう。
命令セット互換の辛さだな…
インテルは8080用のソースプログラムを8086や80386、現在のSandy Bridgeに至るまで 簡単なコンバータで変換できる機構を用意できてんのにザイログは何馬鹿なことやってんだ? バイナリ互換なんてパソコンでもない限り必要ないのにな。
356 :
ナイコンさん :2012/10/06(土) 10:37:56.19
アセンブラとかバイナリ直うちとか、原始時代のお猿さんたちかよw
ああごめ。 パソコンこそ必要だったわ 素で間違った
mipsまだ生きてるみたいじゃんスマホ・タブレット向けにやってる。javaにopengl、mipsと くればワークステーションの怨念の塊よね、ARMだといまいち怨念が足りない。
360 :
ナイコンさん :2012/10/06(土) 11:20:39.38
361 :
ナイコンさん :2012/10/06(土) 12:39:44.94
362 :
ナイコンさん :2012/10/06(土) 13:43:53.37
ARMってどうにもマイコンって気がするんだよな。 先入観的に。
363 :
ナイコンさん :2012/10/07(日) 17:53:01.16
組込みなんて動いてナンボな世界だろ。 コロコロ石かえたりすんの? リスキー過ぎるな
コロコロ石変えるなんて誰か言ってる?
誰も言ってないと思う。 ただ、例の震災で石変える羽目になったとかで、いくらか受注案件が増えたよ (w
366 :
ナイコンさん :2012/10/07(日) 21:11:14.51
色々な石を経験してるとしか思えない書き込みがちらほらあるから。 今の現場はプログラミングリレーからPCボードで窓組込7になったんだ。
> 色々な石を経験してるとしか思えない書き込みがちらほらあるから。 この板ジジイばっかだから、何十年もやってりゃそりゃ色々経験すんだろ。
368 :
ナイコンさん :2012/10/08(月) 13:42:17.19
同じ世代の複数機種を経験するって…
別に普通にあると思うが。
>>368 外注でソフト開発する会社なんかだとふつー。
元請けレベルのデカい機器メーカーだと、そうでもないのだろうけど。
>同じ世代の複数機種を経験するって… 普通じゃね? つーかそれぐらい対応できんとその道でメシ食えないだろ。
372 :
ナイコンさん :2012/10/08(月) 16:58:31.75 BE:622257825-BRZ(10002)
柔軟に他機種でアセンブルプログラミングできないとね。
まあ組み込み系だと珍しくないわな。 業務系だと、それこそ 30年間 COBOL 一筋の COBOLER とか VB しかやったことない VBer とかがいたりしたけど。
>>368 いままでどういうのやってきたかちょろっと書いてみ?
PCやゲーム機が8bitだった時代はどうやってソフト開発したんだ ROM BASIC使わずマシン語で高速に実行したい場合 FORTRANやC言語などのコンパイラとかあったの? それとも全部人間がアセンブリ言語で作っていたのか
>>376 >FORTRANやC言語などのコンパイラとかあったの?
あった。
>それとも全部人間がアセンブリ言語で作っていたのか
こっちの方が主流。
↑釣られるなよ
>↑釣られるなよ 意味分からん。当たり前の事実しか書かれていないが?
まあこんな閑静なスレだから、釣り宣言も釣られたレスも枯れ木の賑わいだろ
381 :
ナイコンさん :2012/10/09(火) 08:01:01.87
ITどかた上がりのじい様たちが集う枯れ木山だね。
>>376 今は効率的なコンパイラとコンパイラに合わせたcpuがあるけど、当時は下手にコンパイルするより
人間が組んだ方が速かったもんなぁ。
そのノウハウがいまのコンパイラに注ぎ込まれてるから、今は下手にニーモック書くよりコンパイラ通した方が速いし。
>>382 >今は下手にニーモック書くよりコンパイラ通した方が速いし。
ホントに下手糞が書いた場合よりはな。
BDS Cはなかなか速かった。 Lattice C 1.xは糞だった
>>382 > 今は下手にニーモック書くよりコンパイラ通した方が速いし。
いまでもちゃんと効率考えて組めばコンパイラの吐いたコードなんかよか早いもん組めるよ。
いまどきのプロセッサで極限まで高速化するにはキャッシュやパイプラインやストールの
原因なんかを意識しないといけないんでけっこうしんどいけど。
>今は下手にニーモック書くよりコンパイラ通した方が速いし。 ↑こーゆーこと訳知り顔で語る奴は大抵の場合分かってない
388 :
ナイコンさん :2012/10/10(水) 08:54:22.03
95年ぐらいまでのコンパイラが吐くより効率の良いコード書けるが21世紀になってからのは太刀打ちできねーな。 元より今時のプロセッサ相手にアセンブラとか無駄なことはしないけど。
389 :
ナイコンさん :2012/10/10(水) 09:24:11.47
>>387 はAVRとかPICとかのセルフコンパイラーとアセンブラ比べたりしてんのかな?
まあ1バイト単位でガリガリ削ったりしないしな。 当然速度も十分速いし。
>>389 >
>>387 はAVRとかPICとかのセルフコンパイラーとアセンブラ比べたりしてんのかな?
AVRやPICにセルフコンパイラなんてある? ちょっと想像できん。
言葉の意味分かってないんじゃないかな。
393 :
ナイコンさん :2012/10/10(水) 18:26:19.57
仕事なら1バイト削らなきゃ仕様を満たさないとなれば削るが、んな馬鹿馬鹿しいことはやらないし。 ページャーぐらいしかンな経験ないな。
月間マイコン1986/05のT-TIMEインタビュー記事で デーモンクリスタルってゲームを作ったプログラマーの人が 「MZ-1500でコンパイラ使ってる」って書いてたな。 GAMEか何かだとは思うけど、まぁアセンブラ絶対主義ってのもな…
>まぁアセンブラ絶対主義ってのもな… 誤爆?
>>394 >まぁアセンブラ絶対主義ってのもな…
何関係ない話してんの?
>>394 当時の市販ソフトで、BASICで組まれたのやなんらかのコンパイラ使用を謳ったソフトなんて珍しくなかったけど、知らんの?
つーか何言いたいのか解らん。
最適化の話をしてる人を見るとアセンブラ絶対主義者に見える病気の人では? 要求される条件に従い実行効率や開発効率を考慮してアセンブラでもコンパイラでもインタプリタでも使い分けれればいいってだけの話だけどね、頭悪い人なんだろうな。
399 :
ナイコンさん :2012/10/11(木) 19:05:30.79
まあ極限の世界で闘えるのはアセンブラだけやな
そんなことはない
>極限の世界で闘えるのはアセンブラだけ ↑こーゆーこと訳知り顔で語る奴は大抵の場合分かってない
使えないヤツの書くコードはムダだらけ
403 :
ナイコンさん :2012/10/11(木) 21:07:28.12
今どきアセンブラにこだわる奴が使える奴とは思えないわな〜 おまけにアセンブラーが威力発揮せるようなプアな環境なんて使い物にならんし。 30年前はともかくw
ゲームやら組み込みやら、動作環境のパフォーマンス引き出さな商売ならんこともあるの知らんのね。
>今どきアセンブラにこだわる奴が使える奴とは思えないわな〜 >おまけにアセンブラーが威力発揮せるようなプアな環境なんて使い物にならんし。 いまだに使われてるちっこい組み込み用のマイコンとか想像もつかんのだろうな
>今どきアセンブラにこだわる奴が使える奴とは思えないわな〜 >おまけにアセンブラーが威力発揮せるようなプアな環境なんて使い物にならんし。 >30年前はともかくw JavaかVBしか知らんようなニワカが言いそうなセリフだなw 釣りとしてはよく出来てる。
最初は30年前のこと言っていて、途中から現代の話かよ 年寄りってのは話がむちゃくちゃで、憑いていくのが大変だな
アセンブラなんて選択肢のひとつでしかないのに、端っから否定するような奴にできる仕事なんてたかが知れてるだろ。
409 :
ナイコンさん :2012/10/11(木) 22:37:36.29
組み込みだってずいぶん前からクロス開発当たり前だし、アセンブラー使わなきゃならないなんて案件は絶無だけどね。 たいていは言語仕様的に書けないような部分をインラインアセンブラで書くぐらいだな。 隠居爺の脳内歴史じゃ違うのかもしれんが。
>組み込みだってずいぶん前からクロス開発当たり前だし、 それ以前はセルフ開発が当たり前だったみたいな言い方だなw
411 :
ナイコンさん :2012/10/11(木) 22:53:47.14
AMD64でアセンブル、やる気の起こるハードが無い
アセンブリ使わなければ要求する性能を達成できないというなら コンパイラで書いても十分な性能を達成できるハードウェアに変更するし コンパイラで書いて十分な性能が出ているものを、さらに効率化するため とか言ってアセンブリで書こうとするような奴はプロジェクトから叩き出すし 大昔の、しょぼいプロセッサに狭いメモリしか無かった時代に それ以上のものを求めても手に入らなかったから仕方なく書いていたならともかく、 デバイスドライバや割り込み・メモリマネージャまでCで書く時代が いったい何十年続いてると思ってるんだか、あるいはそれを知らないのかしらんが、 21世紀の今頃になってアセンブリ最強とか言ってる奴は頭どうかしてる
えらそうに「コンパイラが吐くコードを意識しながらコーディングするんだ」とか言ってた奴らも、 実際はそんなことできていなかった。 口プロレスでこういう事ほざく奴に限って、能力はたいした事のない口だけ野郎だったしなー
使わないと使えないの区別ができないバカ
>>413 職場のレベルの低さを自慢してどうすんの?
>>412 >アセンブリ使わなければ要求する性能を達成できないというなら
>コンパイラで書いても十分な性能を達成できるハードウェアに変更するし
家庭用ゲームとかでも同じことできる?
>コンパイラで書いて十分な性能が出ているものを、さらに効率化するため
>とか言ってアセンブリで書こうとするような奴
なんでプロジェクトに基地外がいるの?
417 :
ナイコンさん :2012/10/11(木) 23:03:37.25
C++のコードをアセンブラレベルで効率的に書き直せるのかな?
>>417 ループの内っ側や末端の関数なら大した手間ではないし効果も期待できることもある
アセンブラ最高 アセンブラは大人のたしなみ
小生も最近物忘れが目立ってきたのでボケ防止のためにアセンブリ
421 :
ナイコンさん :2012/10/12(金) 00:04:15.33
>>418 万とか億とかの単位で単純ループするとか?
もしそんな事があるなら、言語以前の問題でわないかと…
アセンブラ アセンブリ アセンブル アセンブレ アセンブロ
昔のPC板で「21世紀」とか何を言っているんだか。 21世紀とは永遠に訪れない夢のような未来。
>家庭用ゲームとかでも同じことできる? 家庭用ゲームのプログラマーなんて、底辺中の底辺じゃねーか しかも今はメーカー・ミドルウェア開発(こっちはエリート)と アプリケーション(消費者向け製品)のプログラマは完全に階層が別れてる
>>421 >万とか億とかの単位で単純ループするとか?
1万回ループするなんて全然珍しい話ではないけど何言ってんの???
ループ内処理をアセンブリにして小手先で効率化するくらいなら ループ展開しちゃった方がたぶんずっと楽になるよね(メモリは喰うけど)
>>424 >しかも今はメーカー・ミドルウェア開発(こっちはエリート)と
>アプリケーション(消費者向け製品)のプログラマは完全に階層が別れてる
実際そんなにミドルウェア製品なんて使われないぞ? ゲーム関係で仕事したことあんの??
>>427 いまどきのプロセッサはループ展開すると速くなるって単純なもんでもなかったりするよ
プレステ3のようにハードウェア設計者側のオナニーで扱いにくい構成にしてしまった結果 効率的なミドルウェアの開発に失敗して、アセンブリ使わないと性能を発揮できない糞ハードが なぜか21世紀の10年期をまたいで存在してしまっているけど、そのくらいへぼい、最低の環境でもないと いまどき「家庭用ゲームのプログラマー」はアセンブリなんか使わないよ 10年くらい前なら、CPU側でSIMD命令を使った処理を書くのにアセンブリしか無かった みたいな事情はあったけど、それも今ではGPUに丸投げする時代だしねえ モダンなGPUでは命令は中間コードで持っていて(これ自体をコンパイラが吐くわけだけど)、 それをデバイスドライバ内に持ったJITコンパイラでさらに機械語に変換して食わせてるわけで。 最も処理の効率化が求められ、その見返りも大きなGPU内の処理でさえ、こんな有り様なんだよね。 MS-DOSで頭が止まっているような怠惰なオッサン連中には、想像もつかない世界だったかもしれないね。 ちょっと残酷なことをした。
>>427 ループ内処理をアセンブリ化するのと、ループ展開は全然別の話じゃん。
それに、ループ展開で効率化すんならアセンブリ化の際に当たり前にやってるだろ。
>いまどきのプロセッサはループ展開すると速くなるって単純なもんでもなかったりするよ キャッシュを無駄に食いつぶしちゃうからね。 それに、いまどきループ処理で無駄なコードを吐くようなコンパイラも、ごみだ。
>実際そんなにミドルウェア製品なんて使われないぞ? ゲーム関係で仕事したことあんの?? いまどき碌なミドルウェアもないゲーム機なんて、SONYの据え置き機くらいしかないぞ? ゲーム関係で仕事したこと、ないよね?
>>430 >プレステ3のようにハードウェア設計者側のオナニーで扱いにくい構成にしてしまった結果
>効率的なミドルウェアの開発に失敗して、アセンブリ使わないと性能を発揮できない糞ハードが
>なぜか21世紀の10年期をまたいで存在してしまっているけど、そのくらいへぼい、最低の環境でもないと
>いまどき「家庭用ゲームのプログラマー」はアセンブリなんか使わないよ
なんだ現代の話じゃん。何必死に否定してんの?
最低の例外くらいしか存在しない、って話してやってるのに、なにを一般化して語ってんの? それにゲーム本体のプログラマはアセンブリなんか書かないし、書けないよ。
じゃあなんだ、アセンブラ使ってると思ってる連中は、いまだにゲームのプログラムではアセンブラで直接ハードウェアを叩いてると思っているわけかw
>>433 >いまどき碌なミドルウェアもないゲーム機なんて、SONYの据え置き機くらいしかないぞ?
任店のはライブラリってレベル
>>436 必要があればアセンブラも使うけど何か?
素人でも分かりやすい例だと8bitのPICなんかだとコンパイラで組んだ場合とアセンブラでの場合とで速度やサイズが段違いだから今でも全然アセンブラ有利だけどな。 まあ、ここ数年でPICの上位シリーズが随分伸びてるんで8bitにこだわる理由もなくなっては来てるが。
>>421 億は兎も角、万ならそんな驚く話ではないな。
いまだに8bitなんか使ってるような底辺・小規模の組み込み系くらいだろ それもブートストラップの一部だけどうしても(CPUがマイナーすぎてコンパイラが対応してないから)アセンブリで書かないと通らない みたいなニッチな事情で。
>>435 >それにゲーム本体のプログラマはアセンブリなんか書かないし、書けないよ。
ゲーム本体のプログラムが全てとでも言いたげだなワロタw
>>441 >いまだに8bitなんか使ってるような底辺・小規模の組み込み系くらいだろ
いまだに数が一番多い分野じゃん。馬鹿なの?
ファミコンのゲームソフトも職人がコード書いてハードの限界を追求したんだろうな
6502の職人で有名どころだと岩田とかナーシャジベリとかか まあ岩田が限界に挑戦したって言ってるところ話は想像つかんけど
いまでもパチンコ/パチスロの当たり制御は保通協の関係でアセンブラなんじゃないかな。
>>413 コンパイラの出力見てソースの書き方考えるって普通のことじゃん。
>>413 >えらそうに「コンパイラが吐くコードを意識しながらコーディングするんだ」とか言ってた奴らも、
>実際はそんなことできていなかった。
>口プロレスでこういう事ほざく奴に限って、能力はたいした事のない口だけ野郎だったしなー
じっさいそういう必要があるからVTuneみたいなツールも存在するわけだが。
>>427 ループ展開するとキャッシュヒットが減ることがあるのであんまし薦められない
キャッシュに入れば爆速に出来るが外れると速度が落ちる
後、分岐予測でミスが出にくくなる必要もあるだろう
ある程度短くブロック分けして、サブルーチンにする所とただのループとベタ展開を使い分ける事が大事じゃないかな
塵も積もれば山となる 標準関数なんか激遅だから気をつけろよ
( ´−`) .。oO(なんでみんなそんなに必死なんだろう・・)
分からないものを無理に理解しようとしなくていいし、知らないものを必死に否定しなくとも良い。
>標準関数なんか激遅 場合に拠る
456 :
ナイコンさん :2012/10/12(金) 07:21:24.68
OSやデバドラでなきゃアセンブラ使わないのは何年も前からの常識だよ。 そういう極一部のニーズが全てにあてはまるとか思うのは勝手だけど、世間の非常識だって理解しような。
自分の知らん世界のことは非常識と思える頭は幸せだヌーン
>そういう極一部のニーズが全てにあてはまるとか思うのは勝手だけど、 誰も言ってもいないことを喚き始めたかw
>OSやデバドラでなきゃアセンブラ使わないのは何年も前からの常識だよ。 >そういう極一部のニーズが全てにあてはまるとか思うのは勝手だけど、世間の非常識だって理解しような。 十年前、二十年前に作られていまだに稼動してるシステムなんてゴマンとあんのに、 プログラムの保守とか想像したこともないんだろうなあ。
Visual Studioにアセンブラが入ってるのも非常識とか言いそう
コンパイラの出力コードを手直しすればいいだけなのでコンパイラに負ける事はほぼ有り得ない 想定と実環境が大きく異なったときにたまたま負ける可能性はある
462 :
ナイコンさん :2012/10/12(金) 10:19:20.02
プレイステーション系のゲーム機はアセンブリでガリガリ書かないと パフォーマンスを発揮しない。
プレステ2でゴリゴリ書いてみたい^^
64bitOS開発やったときはアセンブラの読解力は必須だったよ。 ソースはメモリーコピー部分以外Cだったけど。
高級言語を扱う場合でも パッケージに入ってるDLLがクソな場合、 機械語を見てバグの当たりをつけて メーカーにねじ込む目的でVSのアセンブラは使うけどな。 まあ、書いたりはしない。
知って損は無い言語。
467 :
ナイコンさん :2012/10/12(金) 21:34:49.61
損はしないが役に立つこともあまりないな。
ここ昔のPC板だぜ? アセンブラを語るんなら、今現在アセンブラが役立つか、じゃなくて 8bit機や、ごく初期の16bit機でのアセンブラの意義を語るべきだと思うんだが。 今のこのスレには当時のアセンブラ経験者なんて居なさそうだな。
当時のアセンブラは経験ないな。 なんせアセンブラがなかったからな。 ハンドアセンブル。 (なかった=一般人は入手困難って意味)
471 :
ナイコンさん :2012/10/12(金) 22:59:08.39
8-bit CPUでC言語を使う会
472 :
ナイコンさん :2012/10/12(金) 23:10:08.07
ベーマガだかザベだかに自作アセンブラを投稿してた人もいたよな。 DOSのTASMとかならそれなりに経験者いるんでないかい。 俺はCP/MのASM使ってたけど。
レジスタやアドレスを意識しなくていいIntrinsicsだけどSSEやAVX使うならアセンブラ必須 欲しい命令があちこちで抜けてるIntelのバカアーキテクチャは最低だぜ
>>471 BDS-Cはまあまあ使えた。
当時としてはコンパイルが軽かったのと、実行効率が低すぎてはなかったギリギリのバランスだった。
FMのDOH-CやDraco-Cを使ってた人の感想が聞きたい
>467 役に立たせるだけの知能がないだけだろ。
自分がそうだから他人も含めて世の中世間の全てはそうだと思ってるおめでたい頭の奴に何か言ったところで無駄
下駄
6809と6502ってどう違うの? 両方ともよく知らないもので
6809は6502に比べて307大きい
307命令追加されているって事でイイの?
483 :
ナイコンさん :2012/10/13(土) 06:41:39.84
そういや、CPUの特性にあわせたアルゴリズムで最大性能ひきだせるとか言ってたバカが居たな。 CPUの特性にあわせた実装するとかならわかるが。
484 :
ナイコンさん :2012/10/13(土) 06:51:37.52
組込みの仕事の何パーセントがアセンブラー必須なんだ? 100? 99? アセンブラ使わないのは組込みでわありませんw 朦朧爺の妄想垂れ流しww
>組込みの仕事の何パーセントがアセンブラー必須なんだ? >100? >99? >アセンブラ使わないのは組込みでわありませんw > >朦朧爺の妄想垂れ流しww ↑ちょっと何いいたいのか分からん
> 組込みの仕事の何パーセントがアセンブラー必須なんだ?
> 100?
> 99?
> アセンブラ使わないのは組込みでわありませんw
これは
>>484 の主張? それとも朦朧爺の妄想?
解釈次第で主張が180度変わる投稿を平気でする
>>484 は馬鹿だと思う。
>>483 乗除算の機能のないCPUで、乗除算を使わないアルゴリズム(実装でなく)を使用した経験ならあるが?
>>483 >そういや、CPUの特性にあわせたアルゴリズムで最大性能ひきだせるとか言ってたバカが居たな。
>CPUの特性にあわせた実装するとかならわかるが。
バカはお前じゃね?
バカども同士、仲良くね
>>483 > そういや、CPUの特性にあわせたアルゴリズムで最大性能ひきだせるとか言ってたバカが居たな。
> CPUの特性にあわせた実装するとかならわかるが。
DDAとか知らない世代かしら?
494 :
ナイコンさん :2012/10/13(土) 08:07:38.34
LZH圧縮をCPUにあわせたアルゴリズムで〜と言ってた奴。 LZH圧縮てか、ハフマン符号化とかスライド辞書とかのアルゴリズムはCPU関係ないしょ? DDA?
>>494 > LZH圧縮てか、ハフマン符号化とかスライド辞書とかのアルゴリズムはCPU関係ないしょ?
V30みたいなビットフィールド操作命令が使えるCPUだと便利かもね。
>>494 >LZH圧縮てか、ハフマン符号化とかスライド辞書とかのアルゴリズムはCPU関係ないしょ?
ハフマン木やLZSSの辞書の表現はCPUの特性を考慮すべきだな。
>>483 >そういや、CPUの特性にあわせたアルゴリズムで最大性能ひきだせるとか言ってたバカが居たな。
仮にLZHのことだとして、
・圧縮率
・圧縮速度
・圧縮時のメモリ使用量
・展開速度
・展開時のメモリ使用量
性能って上の5つぐらいで評価できると思うけど、そりゃCPUの特性に合わせて何を重視するかで
アルゴリズムなんて当たり前に変わってくるだろ。確かDOS版のLhaでも何種類かの圧縮形式
サポートしてたぞ。
>>494 >LZH圧縮てか、ハフマン符号化とかスライド辞書とかのアルゴリズムはCPU関係ないしょ?
LZH自体、当時の16ビットプロセッサ用に最適化された実装だと思うけどね。
499 :
498 :2012/10/13(土) 08:41:07.76
訂正 実装→仕様
>>494 >LZH圧縮てか、ハフマン符号化とかスライド辞書とかのアルゴリズムはCPU関係ないしょ?
どうだろ?
Lha当時のPCといまどきのPC比べても、いまどきのPCはCPUが速くなった程度には
メモリの方は速くなってないから、「最大性能」目指すなら、アルゴリズムがいくらか
複雑になってもメモリアクセス減らす工夫したりすんのは有効だったりすんじゃないの。
アルゴリズムはCPUのアーキテクチャに左右されると思うぞ。 たとえばZ80のパソコンが全盛期だった頃、 乗除算命令が当たり前のように実装されていたら 画面に斜めの直線引くのにBresenhamのアルゴリズムなんか使わずに 乗除算命令を使う奴が大多数を占めていたと思う
メモリアクセス減らすって、レジスタだけで圧縮演算するんすか!?
一旦ハッシュ値計算しておいて辞書の検索に使ったりすんのは有効かもね。
>>501 どうせ除算は遅いから、ブレゼンハムおいしいです^q^になる
ふつーの人は速いのを呼ぶだけ
>どうせ除算は遅いから、ブレゼンハムおいしいです^q^になる 最初に一回やるだけの除算がそんな問題になるかな?
> そういや、CPUの特性にあわせたアルゴリズムで最大性能ひきだせるとか言ってたバカが居たな。 > CPUの特性にあわせた実装するとかならわかるが。 > LZH圧縮をCPUにあわせたアルゴリズムで〜と言ってた奴。 > LZH圧縮てか、ハフマン符号化とかスライド辞書とかのアルゴリズムはCPU関係ないしょ? なんかマヌケなこと書いて引っ込みが付かなくなって、必死に考えた言い訳がLZHかw 笑えるww
Z80の時はアルゴリズム2、3個考えてどれが速いか比較してプログラム書いてた。 32bitCPUあたりからは命令数減らすようには考えるけど、アルゴリズムまではそんなにこだわらなくなった。
>>506 整数演算で直線の方程式を使うのを想定していたから、ソレは無理。
510 :
ナイコンさん :2012/10/13(土) 13:07:54.88
6809 ビッグエンディアン 6502 リトルエンディアン
>どうせ除算は遅いから、ブレゼンハムおいしいです^q^になる それは、当時の「除算は加減算より遅い」というアーキテクチャに依存する発言だな。 今のLSI技術なら整数の除算なんて1クロックで終わる。 当時そういうアーキテクチャがなかったからからこそBresenhamが重視された。
>>506 最初に割り算使うやり方だと小数計算使うから途中の計算も重くなるよ
>>512 >最初に割り算使うやり方だと小数計算使うから途中の計算も重くなるよ
横640ドットとかだったら、小数点以下10ビットの固定小数点で精度は十分だよ。
>>509 >整数演算で直線の方程式を使うのを想定していたから
意味分からん
>>511 >それは、当時の「除算は加減算より遅い」というアーキテクチャに依存する発言だな。
割り算は最初に一回だけやればいいので、加算と単純に較べられない
>今のLSI技術なら整数の除算なんて1クロックで終わる。
そんなわけはない。
除算は原理的に並列化できないから整数除算はビット数分だけ時間がかかる。
浮動小数点除算なら、表引き+ニュートン法で逆数+乗算で加速できるけど、
どんなに頑張っても2〜3クロックは必要(普通はもっと遅い)
例えばほら。
http://sonnyclark.seesaa.net/article/151202289.html 今でもこの手の問題(有理数倍のリサンプリングとか)には DDA 使ってるけどな。
だいたい DDA も固定小数点の積算も本質的に同じだろ。
最初の除算が無駄なだけ。
>>513 640*480の頃のVRAMはピクセルとビットが対応してたからそんな実装非効率すぎる
画面のXY座標からアドレスとビットパターンをもう一回計算するのかい
>>516 >>今のLSI技術なら整数の除算なんて1クロックで終わる。
>そんなわけはない。
10bit ÷ 10bit 程度なら、表から引けばいいだけだろ。
>>516 >だいたい DDA も固定小数点の積算も本質的に同じだろ。
>最初の除算が無駄なだけ。
加算一回してキャリー見るだけの積算とDDAが同じなわけないじゃん
>>517 >640*480の頃のVRAMはピクセルとビットが対応してたからそんな実装非効率すぎる
>画面のXY座標からアドレスとビットパターンをもう一回計算するのかい
お前にコーディング能力がないことは解った
昔のハードを前提に語ってるのなら除算テーブルなんかに貴重なメモリを消費する訳にいかないだろ
>>521 >昔のハードを前提に語ってるのなら
「今のLSI技術なら〜」が読めないんですね分かります
>>521 > >今のLSI技術なら整数の除算なんて1クロックで終わる。
>
> そんなわけはない。
>>521 PC-8001用のフライトシミュレータ(と言う名のワイヤーフレームデモ)で除算テーブルにごっそりメモリ割いてたの見たことあるけどな?
526 :
ナイコンさん :2012/10/14(日) 10:39:17.53
RAMの節約の為に640x400か512x480にしてください。
というか、8ビット時代の実際のコーディングの話なら 高速化重視のときラインルーチンはBresenhamをやめて最初に除算で差分を求めるのが定石だったけどな nドット連続で書き込むことが先に確定しているほうがループ展開や場合分けで高速化できるから 除算のコストを払っても短い線でなければずっと速い
528 :
518 :2012/10/14(日) 11:04:46.35
>>521 読んで、突っ込もうと思ったら既にボッコ状態だった (w
>>527 >除算のコストを払っても短い線でなければずっと速い
ラインの長さで場合分けをするのが正しい
何を持って正しいかも定義しないで、「正しい」とか言い切る奴って…
正しいは正義
>>516 >>今のLSI技術なら整数の除算なんて1クロックで終わる。
>そんなわけはない。
できるよ。VHDLで大雑把に書くと下のような感じ。
ビット数が多くなるほどにディレーが多くなるからこれを何百MHzで動かすのは無理だろうけど当時の8BitCPUみたいな一桁MHzなら余裕。
signal y:std_logic_vector(7 downto 0);
process div(a,b)
variable t:std_logic_vector(7 downto 0);
begin
if(a > b) then
t := a-b;
y(7) <= '1';
else
t := a;
y(7) <= '0';
end if;
if(t > b) then
t := t-b;
y(6) <= '1';
else
t := t;
y(6) <= '0';
end if;
:
(ビット5〜0も同様に)
:
end process;
>>532 t への代入を繰り返してるけど、展開して1クロックで終わるようにしてくれるの?
>>533 VHDLだとこの8個の引き算は並列に動く減算器8個にしてくれるよ。
ついでに、いまちょっと間違いに気づいた。bをシフトしてなかった。
2回目(ビット6)の処理はこうなる。
if(t > b(7 downto 1)) then
t := t-b(7 downto 1);
y(6) <= '1';
else
t := t;
y(6) <= '0';
end if;
ビット5〜0も同様に1ビットずつ右にシフトした値を比較・減算する。
>>527 今でもDDAだぜ
WindowsのGDI関数はおバカだから対象がメモリ上の仮想スクリーンでも
自分で描かないと遅くて使い物にならん
>>519 8bitや16bitCPUなら分数を分数のまま扱うから余分な精度確保と整数部分の取出しがない分
キャリー発生時に減算が一個入るだけのDDAの方が速いよ
>>530 >何を持って正しいかも定義しないで、「正しい」とか言い切る奴って…
「何を持って正しいかも定義しないで、「正しい」とか言い切る」ことが正しいのか誤っているのかまず定義すれ。
>>535 >8bitや16bitCPUなら分数を分数のまま扱うから余分な精度確保と整数部分の取出しがない分
お前にコーディング能力がないことは十二分にわかった
>>535 >8bitや16bitCPUなら分数を分数のまま扱うから余分な精度確保と整数部分の取出しがない分
まっさか座標を小数点以下まで持って計算するとでも思ってるのかな?
>>535 > 8bitや16bitCPUなら分数を分数のまま扱うから余分な精度確保と整数部分の取出しがない分
> キャリー発生時に減算が一個入るだけのDDAの方が速いよ
馬鹿がいる
540 :
ナイコンさん :2012/10/14(日) 14:12:37.74
ピクセル座標で演算するなら隣のピクセルにドット打ったりしなきゃいいだけのはずだから、小数点以下10ビットは取りすぎだと、素人は思う。 点が抜けたり余分に打ったりしないていど、がどのぐらいの精度になるか分からないだけだが小数点以下2ビット以上あればよさげな気がする。 垂直水平と斜め線と円弧でロジック違うのは判るけど線の長さでも変えるもんなの?
傾きがちょうど1.0の時も場合わけがいるな 線分発生なんてボトルネックでも何でもないのにアホくせ
>>540 >ピクセル座標で演算するなら隣のピクセルにドット打ったりしなきゃいいだけのはずだから、小数点以下10ビットは取りすぎだと、素人は思う。
横640ドット移動する間に縦1ドット移動する程度の傾きのラインを描画するとした場合、
1/640ドットの精度が必要となる。 →10bitの精度が必要ということ
>>540 >垂直水平と斜め線と円弧でロジック違うのは判るけど線の長さでも変えるもんなの?
高速化を考えるなら有効。
ただし、場合分けにも処理やコード量が嵩むから、そのへんはトレードオフを考慮しなければいけない。
544 :
ナイコンさん :2012/10/14(日) 15:33:33.28
精度は画面幅に依存ってことね。 10ビット要るのは納得。 直線ひくだけなら単純な等差数列だからわり算一度きりでいいはずだよね? しかし0度〜45度と45度〜90度と45度ドンピシャとでロジック変えないとドットが縦か横にズレるとか、意外だった。 8ビットCPUじゃ面倒そうだっのが正直な感想。 ググる先生大活躍したけど日本語の画像座標のこと書いてるサイトがあんまり見つからなかった。 コンピュータ系の専門学校とかで扱わないのかな。
普通のLINE ●●●●●□□□□□ □□□□□●●●●● N-BASICのLINE ●●●●●●●●●□ □□□□□□□□□●
>>516 >例えばほら。
>
http://sonnyclark.seesaa.net/article/151202289.html > 私のCPU Athlon64 X2 3600+では、
> 加算 0.501秒/10億回
> 減算 0.501秒/10億回
> 乗算 0.501秒/10億回
> 除算 35.57秒/10億回
> という結果であった。
> つまり除算の速度は他の演算の71倍という想像以上に大きな
> 数値がでた。また乗算は加減算より手間がかかりそうなのだ
> が同速度というのも意外な結果だった。もちろんCPUによっ
> て結果は変わるのだが。
とあるが、これ正しいのか? ちょっと除算が遅すぎる気がする。
---------------------------------------------------------------- 試しに今使ってる core2duo 2.67GHz の PC の Cygwin 環境で 1: int main() 2: { 3: asm volatile( 4: "\tmov $1000*1000, %ecx\n" 5: "1:\n" 6: "\t.rept 1000\n" 7: "\tmov $0xfffffffe, %edx\n" 8: "\tmov $0xffffffff, %eax\n" 9: "\tmov $0xffffffff, %ebx\n" 10: "divl %ebx\n" 11: "\t.endr\n" 12: "\tdec %ecx\n" 13: "\tjnz 1b\n" 14: ); 15: return 0; 16: } ↑のプログラムを gcc でコンパイル、time ./a で実行したら > real 0m5.113s > user 0m4.741s > sys 0m0.031s だった。
7〜9行を 7: "\tmov $0, %edx\n" 8: "\tmov $0, %eax\n" 9: "\tmov $1, %ebx\n" に変えると > real 0m1.947s > user 0m1.684s > sys 0m0.015s となったので、値にも拠るようだ。 Athlon64 X2 3600+ と core2duo でそれほど世代が違うとも思わないので、全体としてそれほどパフォーマンスに大きな差はないと思う。実際、7〜10行を 7: "\tadd %eax, %eax\n" に変えて加算のみの数値を測ってみると、 > real 0m0.437s > user 0m0.405s > sys 0m0.015s となったので、加算についてはそれほど差はないようだ。 ブログ主も書いてるが、CPUによって結果が異なるのは事実だと思うが、除算のような基本的な命令でこれほど大きな差が出るのだろうか? 俄かには信じ難い。
>>548 ソースコード出てこないと何とも言えないですよね。
550 :
546 :2012/10/14(日) 17:37:46.01
考え直してみると、ブログ主は64bit-ubuntu上で確認を行ったということなので、128bit÷64bit の命令を試したということだろうか? それなら倍かそれ以上は遅くなって当たり前だな。
割り算が遅いって思ってるから/3するより.33…掛けた方がいいかなと思ってる、最近のマシン速いし 意味無さそうだけど。識者の方は如何してますか。
8bit CPUの頃に約1/3の計算をしたくて、8bitの値を85倍して16bitの値にし、インクリメントして上位8bitを使ったような記憶ならある。 同様に、22倍して7で割って 直径→円周 ということにしたこともあった。
>>551 Cray-1 には、除算命令がなく逆数を掛けることで処理していたのは結構有名な話
554 :
ナイコンさん :2012/10/14(日) 18:57:17.78
>>545 座標の基準がドットの左上か中心かで変わるみたいだね。
>>554 DDAの積和のところで初期値が適正でないだけな気がする。
556 :
ナイコンさん :2012/10/14(日) 19:17:10.48
>>555 不慣れな英語を流し読みしただけだから勘違いかもしれないけど
CGと学術系(サイエンティフィ?)なグラフでは使い分けられてる、見たいなことが書かれてたよ。
初期値を0.5変えるだけだろうけど。
ブクマしときゃよかったorz。
ガラケだから検索辛いんだ。
>>556 数学的には(0,0)-(1,1)にプロットしたとして2ドット描かれるのはおかしいと気付け
558 :
ナイコンさん :2012/10/14(日) 19:37:52.40
別におかしくないよ。 (0,0)と(0,0.5)が同じ位置にドットが打たれるかそうじゃないかだから。 ピクセルの中心が基準なら違う位置に、左上基準なら同じ位置にドットが打たれるってだけだから。
>>558 座標(0,0)から(1,0)を結ぶ線分の長さは1だが、画面には長さ2のラインが描かれる。
↑説明してみ?
560 :
ナイコンさん :2012/10/14(日) 19:46:37.29
(0,0)-(1,1)で2つ打つのは正しい。 (0,0)-(0.9,0.9)なら1つだけになる左上基準と2つになる中心基準で違いがでてくる。
561 :
ナイコンさん :2012/10/14(日) 19:53:04.96
画面上の座標1,1の守備範囲は1.0≦x<2.0、yも同じ。 終点座標は始点と異なるピクセルを示してる。 こんなんで良い?
563 :
ナイコンさん :2012/10/14(日) 19:58:20.12
中心基準なら 0.5≦x<1.5 以下略。 線分の縦横どちらかの長さが≧1.0の時点で2個以上のドットが打たれるんだよ。 中心基準も左上基準もどちらもね。
長さ1の線分を描画すると長さ2のラインが描画されるということは、ドットの中心に座標があるということ。 そう考えると、N-BASICのラインの描画は正しくないという結論になる。
モダンなハードだと、座標はドットの角にあるのでひとつの辺を共有するポリゴンを2個描画したとしても共有する辺は二度描きされない。
566 :
ナイコンさん :2012/10/14(日) 20:21:47.86
条件書き出してみればかんたんだよ。 左上基準なら 0≦x<1なら一番左、 1≦x<2なら2番目 だから。 0,0-1,0は隣接する2つのピクセルにドットか打たれるって一目瞭然でしょ?
面倒なのは画面内の線分だけ切り出すクリッピングなんだよな まじめにやると乗除算を使うからZ80には重荷
>>567 昔やってたときはバイナリーサーチみたいなアルゴリズムで乗除算は使わなかったような記憶があるなあ。
>>566 「線分の長さ」の意味が理解できないバカは引っ込んでてね
イタタタ。 論理座標とディスプレイ上の描画が頭のなかでリンクしてないバカにバカとか言われたよ。 どんなコンピュータでも最後はハードウェアに依存するって当たり前すぎる認識がない奴がこのスレに居るんだな。
ドットの中心に座標があることが理解できないバカは滑稽w
>>516 >除算は原理的に並列化できないから整数除算はビット数分だけ時間がかかる。
例えば、除数を 0倍〜15倍した値を予め求めておいて(16個)、被除数の上の桁から
引けるかどうかの判定を16個同時に並列してやって、引けた数字の一番大きいやつ
採用すれば一度に4ビット分計算できんじゃないの?
>>542 固定小数点で小数点以下を精度良く計算、は正攻法だけど、除算を整数部までの計算で済ませる方法もある。
例として(x1,y1)-(x2,y2)にラインを引くとする。
話を簡単にするためsx=x2-x1>2 sy=y2-y1>1 sx>sy だとしよう。
このとき、(sx+1)/syの除算をするのだが、(sx+1)÷sy=d あまり r 、と整数のdとrまで求める。小数点以下は計算しない。
高速化に寄与が大きいのは「dドット連続して描いてよい」という情報だからこれで十分。
あとは描画でx方向に連続するdドットの横線を描いていくときに
「y方向の(sy+1)ラインのうち(d+1)ドットのラインをr本だけバランスよくはさむ」と考えればいい。
具体的にはカウンタfを用意して、
・ y方向に移動するとき f+=r する。
・ f>=sy になったらそのラインはd+1ドットにして f-=sy。
をsy回繰り返す。
実は割り算の続きをしてるみたいなものだが、整数演算と分岐なのでオーバーヘッドはほとんどないし
小数計算だと精度が足りないと終点まで届かなかったり、はみ出したりする可能性があるが
この方法だと始点から終点までピッタリ確実につながる。
fの初期値は sy/2 にしておくとそれっぽい線になる。
>>573 よくわからんから図を書いて説明してくれ
DDAループ内で2分の1の確率で発生するレジスタ加算の1命令4クロックを節約するために 長さチェックして頭で割り算やって45度専用ルーチン用意するなんて実装本当にやった人いるの? オレならそんな長い線分来たらゴメンナサイで済ますぞ。どうせフレームレートは変わらんし
>>573 まともに読んでないけど言ってることはDDAじゃね?
>>575 >DDAループ内で2分の1の確率で発生するレジスタ加算の1命令4クロックを節約するために
>長さチェックして頭で割り算やって45度専用ルーチン用意するなんて実装本当にやった人いるの?
DDAも45度専用ルーチンも理解してないなw
そういや昔、初代Pentiumの中にある除算表の一部がバグって 誤った計算結果が出てリコールするかしないかの騒動があったな
>>578 あれは浮動小数点の割り算だから関係ない話
アレは今でもIntelにお願いすれば交換してくれる
6809ならやる価値あるか 個々の命令がクソ遅いから節約効果は大きいし 逆数表と得意の乗算使えば損益分岐点はかなり短い
この時代のCPUって除算が1クロックで終わらせられるほどIPC高いの?
バカは放置で
Bresenhamはテクスチャマッピングをするまで
>>573 傾きが3/7の線なら途中の横並び数は2-2-3-2-2-3だから意味無いよね
傾きが水平に近くて長い線分専用にするしかないけど普通はやらないわ
シルフィードは偉大だよ。
>PC-8001用のフライトシミュレータ(と言う名のワイヤーフレームデモ)で除算テーブルにごっそりメモリ割いてたの見たことあるけどな? サインテーブルとか68k使ってた頃でもインチキして
インチキして360度は4096分割(1象限1024度)なスチャラカプログラム作ってたな Z80でやってた頃は1象限256分割で、360度が1024分割というアバウトさ 640x400だとさすがに襤褸が出るが、320x200や256x256ならいける
>>586 >1ページ3プレーンのVRAMで2色のワイヤーフレーム
解析してないから断言できんけど、描画と表示を別プレーンに割り当てて、パレット切り替えでページフリップしてると思う。こんな感じで。
発進のシーン
Bプレーン描画 Rプレーン表示 Gプレーン表示
↓
Bプレーン表示 Rプレーン描画 Gプレーン表示
↓
Bプレーン表示 Rプレーン表示 Gプレーン描画
機体のスペック表示のシーン
Bプレーン描画 Rプレーン表示 Gプレーン表示
↓
Bプレーン表示 Rプレーン描画 Gプレーン表示
シルフィードは母艦と戦闘機で色が違うから、明らかに2プレーン使ってるよ OP後半の諸元表示のところは1色だけどな ゲーム本編でも2プレーン3色(赤青白+黒)だし 移植されたPCDOS版のOPは、全編通して320x200ドット単プレーン表示へ退行 (その甲斐あって、フレームレートは向上したが)
>>591 >シルフィードは母艦と戦闘機で色が違うから、明らかに2プレーン使ってるよ
同時に更新する必要はないと思うから描画中に隠すプレーンは1枚でいいと思うよ。
FM77版もあったよな?
595 :
546 :2012/10/15(月) 19:18:26.40
>>550 で言いっ放しはどうかと思ったので、64bitも確認してみた。
1: int main()
2: {
3: asm volatile(
4: "\tmov $1000*1000, %rcx\n"
5: "1:\n"
6: "\t.rept 1000\n"
7: "\tmov $0xfffffffffffffffe, %rdx\n"
8: "\tmov $0xffffffffffffffff, %rax\n"
9: "\tmov $0xffffffffffffffff, %rbx\n"
10: "divq %rbx\n"
11: "\t.endr\n"
12: "\tdec %rcx\n"
13: "\tjnz 1b\n"
14: );
15: return 0;
16: }
↑のプログラムをCygwin上のx86_64-w64-mingw32-gcc でコンパイル、time ./a で実行したところ
> real 0m20.898s
> user 0m0.000s
> sys 0m0.031s
4倍程遅くなった。2倍かそこらを予想していたが、4倍は予想外だったな。加減算は変わらなかったのだが。
>何に文句をつけているのか理解できない 目も頭も悪いんだなw
>分かりやすいのはこの辺 一部のボス以外は2プレーン描画だよ 3プレーン目はステージやシーンによって背景に使ったり ボスに使うなど使い分けているが、 自機や弾やザコ敵は3プレーン目は使わない 自機も地形も2プレーン描画で、 レーザーと爆炎を3プレーン目に持って行ったテグザーや キャラは2プレーンで地形を1プレーン描画した ドラスレ/ザナドゥと同じ考え方だ
テクスチャー入ってもいないんだし、88SRのALU使って描画してるだろうから、 重ね合わせとかしない限りはプレーン数減らしても描画の速度は変わらん筈。
>>591 >ゲーム本編でも2プレーン3色(赤青白+黒)だし
なんだ嘘か
あれって頂点データ垂れ流し方式なのかな
>>585 あの時代のライン描画の高速化はVRAMの読み書き回数をいか減らすか、がポイントで
特に水平に近い長い線を描くときそれが効いてくるからそれでいいんだよ。
1点を描くのに、まともに3プレーンアクセスが必要な機種はVRAM3枚分の読み込み・合成・書き込みが必要になるが、
横8ドット=1バイトが線で埋まることがあらかじめわかっていれば書き込み以外をまるまる省くことができる。
VRAMアクセス減らすのにBresenhamで空ループさせる手もあるけど、なら割り算したほうが結局は速い。
逆に短い線や縦に伸びる線はどの方法を使ってもVRAMアクセス回数は大して変わらないから
それなら横長の線が劇的に速くなるほうがいい。実際やってみるとかなり効果あったよ。
>>605 おそらく予期した返答だと思うけど、現存してない。
公開するには思い出しながら一から作り直すことになるが、完成させる自信はないなw。
Coreアーキテクチャ以降は倍精度実数でも除算が6クロックなんだよな 逆数テーブル引くのが空しくなるぜ
>>596 >何に文句をつけているのか理解できない
りかいできまちたか?
盛り上がってるな
611 :
ナイコンさん :2012/10/16(火) 15:19:21.25
ここはレベルの低い話しかしてないんだねー もっと深い話題があると思ったんだが
そのレベルの低い話もできないのがお前。
語りたい深い話題があるなら自分から話を振るべき
>ここはレベルの低い話しかしてないんだねー >もっと深い話題があると思ったんだが そりゃ8bit全盛期の、いまから見たらクソみたいなCPUを語る場だからな。 最新のCPUの高度な話題を求めてるんなら、こんなスレに来たお前が情弱。
Z80全盛時でもロクな乗算除算ルーチンが公表されていなかったよな 平方テーブル方式や16bit加算を使わない8x8乗算が一般化してりゃもう少し文化が育っていたかもしれん
オープンソースという概念やネットワークがなかった技術的に発展途上だったなどとなんとなく想像
>>615 出来が良い乗除算ルーチンはなくてもコプロつかえばOKでしょ
ニューメリカルレシピとかをどれだけのプログラマーが読んだんだろ。
Z80用はなかったけど、8bit一般用のはあったろ
雑誌ならインターフェースやbit、ときどき数学セミナー、無理して書泉グランデでDDJ 最新知りたきゃACMの論文見ろな時代だった。
>>620 数値演算プロセッサとコプロの区別がつかない人?
うん区別が付かない 何が違ってどう使い分けるか教えていただけると助かる
CPUの機能が拡張されて見えるのがコプロセッサ 数値を演算するのが数値演算プロセッサ
CPUガワにもコプロと結託する機能が必要って事?
コプロに完全に乗っ取られるものもありました。はい。
627 :
ナイコンさん :2012/10/16(火) 20:47:13.68
8087は8086の命令読み込みを監視しながらESC命令を見つけたら乗っ取る。 んで処理したら8086へ主導権を返す。 487SXは486SXを止めて乗っ取る。 ぐらいしか乗っ取り型のコプロセッサは知らない。
487SXは486SXを止めっぱなしになるのでコプロではないと思う。
80287からI/Oポートを使うようになったでしょ だれかこの事を簡単に説明してくれませんか
>>565 旧MacOSのQuickDrawはそういう環境だった。もう25年は前の話なんだな。
簡単に平方根を求める方法を教えてください! 符号なし、小数切り捨てで構いません
sqrt()
>簡単に平方根を求める方法を教えてください!
>>488
Am9511,CDP1855,74LS384 Z80にわざわざこんなの付けて自分で専用プログラム作る必要あるなら16bitマシン調達するのが正解 ROMカートリッジのソフトならありだけどゲーム機で高速CPU載せたのが少し出ただけだったな
>>634 TurboPascalでAm9511サポートされてたり…
ポートアドレス書いてライブラリ再構築で使える。
向こうはS100バス機普及もあって使える機械が多かったって事だろう。
74LS384に関してはI/Oか日経バイトかなんかに8801向けカードの製作記事が載った事があったかな。
>りかいできまちたか? わからんね。自キャラ・雑魚キャラ・弾は2プレーン描画、地形と爆炎が別プレーン ボス級キャラのみ3プレーン使う「場合もある」ようにしか見えないが。 (自機・雑魚と重複するのは1プレーンのみで、ボス・地形も2プレーン描画かもしれない)
赤緑のアレだろう
>>636 >自キャラ・雑魚キャラ・弾は2プレーン描画、地形と爆炎が別プレーン
>ボス級キャラのみ3プレーン使う「場合もある」ようにしか見えないが。
「ゲーム本編でも2プレーン3色(赤青白+黒)だし」という主張だった筈だが?w
雑魚キャラ・ボスキャラが「3色(赤青白+黒)」以外使ってる時点で主張はボロボロなんだがなあ?ww
全然スレチ。
>>599 >レーザーと爆炎を3プレーン目に持って行ったテグザーや
>キャラは2プレーンで地形を1プレーン描画した
>ドラスレ/ザナドゥと同じ考え方だ
要するにお前の頭がそれ以上ついていってないってことだよ
憶測でなく、実機でN-BASICリセットでVRAM吸い出して確認してみたら?
OPのワイヤーフレーム、変わった処理してるね。 プレーン1を縦縞で固定。 プレーン2と3を切り替えながら描画して 偶数ラインONなら青、奇数ラインONなら黄色を表示。 プレーン1 : 01010101 固定 プレーン2/3 : 00000000 黒+黒 プレーン2/3 : 10101010 青+黒(母艦描画に使用) プレーン2/3 : 01010101 黒+黄(星描画に使用) プレーン2/3 : 11111111 青+黄(時機描画に使用) これで1プレーン書き換えだけで4色表示させてる。
随分暗い白だな
ゲームアーツのことだから、面の途中で描画プログラム変えるぐらいはやりそう。
M88の画面キャプチャBMPのカラーパレットが実際のパレットと一致してるかわからんが 000:黒 001:白 010:グレー? 011:赤 100:青 101:緑 110:水色 111:黄色 さて、ゲームアーツが何も考えずにこんな配色にするとは思えないんだが…。
>>649 同じステージでも、背景に地上が表示されているときと表示されなくなったときで
爆発パターンの色が違うからパレットも固定ではないと思う。
ダメージ食らったときに画面が赤くなるのもパレットチェンジだろうし。
651 :
ナイコンさん :2012/10/18(木) 20:54:46.90
ゲームアーツだしな。 何やらかしてても納得するよ。 だってゲームアーツなんだもん。
4096色中同時発色16色が使えるとかあったけれど絵とか表現する時どう?
PC-98のことか? 某漫画家がエロゲの画像描いてた時は「64色あればなんでも描けるのに」って愚痴ってたらしい。
>>631 敵キャラとの距離か?
テーブル用意したら?
走査線ごとに切り替えて32色出す
8801SRに320*200のモードがあればもっと色々なことができたのに残念 PC6000シリーズに遠慮したとしても不要と判断したにしても大きな誤り
>>545 富士通の場合 (F-BASIC v1.0〜v3.0)
階段部分が太い特殊なLINE
●●●●●□□□□□
□□□□●●●●●●
これは酷いなぁ 階段部分が目立って目について仕方なさそう
円も32角形とかそんなんだった気がする >FM
モンテカルロなやり方と誤差でかそうなだな>>FM
最近自作したMC680ボードでtiny basicを動かそうとした。 OS-9の会社のアセンブラソースが入手できたので走らせようとしたが動かん。 解読したところ自分自身のコードを動的に書き換えて動作してる部分を発見。 それをフラッシュROMに焼いて動かそうとしたのがダメだった。富士通がイン デックス関係の演算追加したくなった意味が理解できた。6502も改良方向の 1つはそれなのだろう。そういう不足アドレシングモードを自己書き換えで 補って使ってたのだろう。自己書き換え部分修正して動かす予定。
自作といえばラッピングワイヤーと電動ラップツールの存在は知っていたけどハンドラップツール の存在を最近知った。もっと前から知ってれば電子工作で色々作れたな。最近だと秋葉の大きな 工具屋にも殆ど置いてないし。電子立国日本の終焉か。
>もっと前から知ってれば電子工作で色々作れたな。 やる気さえあれば、方法なんて二の次でハンダ付けでも電動工具使ってでも電子工作やってただろ。
簡単な工作ならそれでいいけど。ハンドラップツール無しでハンドラップしてみなw
>ハンドラップツール無しでハンドラップしてみなw なんで?
ラッピングした事無いような素人はほっとき
>>668 「自作といえばラッピングワイヤーと電動ラップツールの存在は知っていた」ってんだから、
「ラッピングした事無いような」じゃなくて実際無いんだろ。
>>664 >最近だと秋葉の大きな
>工具屋にも殆ど置いてないし。電子立国日本の終焉か。
今どきラッピングで工作できる部品なんてほとんど使わんだろ。
アマチュアがFPGA使って個人で業者に基板発注する時代なの理解してっか?
なんでわざわざ発注すんだよ秋月あたりで出来合いの基盤買ってデータ焼いてコネクタ挿して 動かしてそれを自作でございとやりゃいいだろ。
趣味なんだから、人それぞれの方法でやればいいだけだろ。 まあ、ラッピングしたことあるとかぐらいしか自慢のネタがないなら しょうがないけど。
FPGA評価ボードとかは使った事ある人なら判るかも知れないが
特に半導体ベンダ提供の物はFPGA機能を試す為に作られている物が多く
大抵のGPIOが配線済みになってたりするので、使う用途によっては、とても使いにくいものだったりする。
ttp://akizukidenshi.com/catalog/g/gM-05113/ これなんか、FPGAの評価用というより、ソフトプロセッサIPであるMicroBlazeを評価する為の物だったりするので、I/Oはほぼ使えなかったり。
秋月ではFPGAやCPLDの扱いって昔から弱いからな。
秋葉の店頭小売なら千石やマルツの方がまだ強い。
それはともかく、アマチュアなら、今はラッピング線よりもUEW使って配線してる人が多いのでは無いかな。
ラッピング線、専用工具無しだと剥きづらいし、実際にラッピングで作るには専用ICソケットとか使わなきゃいけないしな〜
>>673 この間転職したソフト屋だけど、プロの人も試作とかではUEW使ってるね。
治具とかつくるのにハンダやらされるんだが、実装の話なんてそれこそ
ラッピングの時代までの知識しかなくてUEWなんて知らなかったから、導通しなくて頭抱えたわ。
1プレーンのVRAMへの16bitDDAライン処理を書いてみたら Z80が71〜104クロック/dot 6809が39〜66クロック/dotくらいになった FMもSRも長さ50の線を1秒間に1000本くらいは描けるがいろんな意味でどっちもダメダメなことに違いは無い
スタックポインタをVRAM上に設定して PUSH PUSH PUSH PUSH PUSH ...
>1プレーンのVRAMへの16bitDDAライン処理を書いてみたら >Z80が71〜104クロック/dot >6809が39〜66クロック/dotくらいになった 遅杉じゃね?
8bitにしてALUと自己書き換え使えば8801SR専用の方は50〜80ck/dotまで縮むけど 大勢に影響はない
>>679 >8bitにしてALUと自己書き換え使えば8801SR専用の方は50〜80ck/dotまで縮むけど
遅すぎじゃね?
>>679 >8bitにしてALUと自己書き換え使えば8801SR専用の方は50〜80ck/dotまで縮むけど
なんでそんなに掛かるのか理解できん。つかそれを自慢げに語るのが更に理解できんわ。
「性能の限界で〜」とか軽々しく口にする奴のコードは大抵の場合限界には達していない …ことが多かった希ガス
>>683 そんな事言ったら披露しにくくなっちゃうだろ
ここはまずおだてておいてだな・・・
>>675 >1プレーンのVRAMへの16bitDDAライン処理を書いてみたら
>Z80が71〜104クロック/dot
>6809が39〜66クロック/dotくらいになった
すごーい!見して見して!!
>>679 >8bitにしてALUと自己書き換え使えば8801SR専用の方は50〜80ck/dotまで縮む
凄いテクニックですね!
ゼヒ参考にして勉強させていただきたいと思いますで、公開してはいただけないでしょうか?
687 :
ナイコンさん :2012/10/22(月) 21:52:43.19
ドットあたり何クロックが妥当で、どんぐらいなら速いの?
>Z80が71〜104クロック/dot >6809が39〜66クロック/dotくらいになった 恐らくは↑が最速。神の領域に達していると言っても過言ではない。
ADD HL,DEとLD (HL),CとDJNEだけで31クロックだから 46〜64ck/dotじゃとてもお見せできません
>>679 をヒントにして dy>dx : 45 〜 69 clock/dot
; 前略
DY_LOOP:
ld (hl), c
sub a, $dx
jr c, DY_SLIDE
add hl, de
djnz DY_LOOP
; 後略
DY_SLIDE:
add a, $dy
rlc c
adc hl, de
djnz DY_LOOP
; 後略
こんな感じかいな?あとは頼んだw
>>690 とりあえず3クロック高速化した。
DY_LOOP:
ld (hl), c
sub d
jr c, DY_SLIDE
add hl, sp
djnz DY_LOOP
; 後略
DY_SLIDE:
add a, e
rlc c
adc hl, sp
djnz DY_LOOP
; 後略
692 :
ナイコンさん :2012/10/23(火) 02:30:05.85
なんかもりあがっとるなあ
これで36〜48clock/dot? rept 640 ld (hl), c sub d jp nc, *+6 add a, e rlc c adc hl, sp endm ; 後略
訂正 rept 640 ↓ rept 200
さすがに全てのアンロールは… アンロールは2回分にしてdyの偶数奇数で、というのはどう?
>さすがに全てのアンロールは… 何の問題が?
>>697 未成立分岐7clockが効率よく使えなくなり、
煩雑コード & 効果薄だったのでスマンが取り下げる
ループ処理はとりあえずは考えなくていんじゃね?
>>675 >>679 で言ってるのがループ処理を含んだ話なのか分からんし。
ld (hl), cでいいの? or使わないと他の点消えない?
ALUでORしてんだろ
>>700 88SRのALU機能が前提らしいので
事前に(この場合Cレジスタの)ビットを書くか消すかを設定しておけばいいらしい
ALUのおかげでギリギリ表レジスタに収まってるから OR使うとEX AF,AFも加わって一気にスピードダウン これにOUT命令のプレーン切り替えとANDクリアも加わったら絶望的 さらに垂直ブランク期間中しかVRAMにアクセスできないマシンとか何考えているんだか
>>703 >ALUのおかげでギリギリ表レジスタに収まってるから
>OR使うとEX AF,AFも加わって一気にスピードダウン
SET n,(hl) 使えばいいじゃん
>>703 SRのALU使う前提のプログラムに何言ってんの?
>>704 8パターン分アンロールか、その発想は無かったわ
ALU使用って、6809版もそうなのけ?
>sub d >add e をイミディエイトにして、自己書き換えでdeレジスタ空けるってどうよ?
スタックをそのままにしておけばret cc(5/11ck)が使える
使わなくていいじゃん
16bitDDAで書いてみた。 z80のアセンブラ忘れている。#はイミディエイトだと思ってくれ。$は16進だと思ってくれ ix,iy使ってすまんこ。つか256dotしか描けない(泣 ld ix,固定小数点 ld @1+1,ix ; 書き換える ld iy,#$8000 ; 初期値 xor a,a loop: ld (hl),c @1: ld de,#1234 ; 自己書き換えられる adc iy,de ;キャリーが立ったらCをローテートして、はみ出たらまたキャリーを立てる sbc a,a and a,c add a,c adc a,#0 cp a,c ld c,a ;縦に移動 ld de,#80 adc hl,de djnz loop クロック数の計算のしかた忘れた。
DDAじゃないだろ
715 :
713 :2012/10/25(木) 07:10:24.43
>DDAじゃないだろ むう、abs(dx)/abs(dy)の小数点部を16bitにしたときの値をixに入れたとして (iyの$8000は、0.5を表している) DDAしたつもりなのだが(´・ω・`)
メモリのスピードが同じなら6809はZ80の1/2.5〜1/3のサイクルで終わって欲しいけど 6809 Z80 STA ,X 4ck LD (HL),A 7ck LEA 1,X 5ck INC L 4ck LEA 80,X 5ck ADD HL,80できないが実質11ck RLC Bできないし意味無い RLC C 8ck 尾を引く敵弾を1000個くらい画面にバラまいたら速いんだろうけど単純な処理には向かないな OPコードが大きいのと空きサイクルが痛かった、6309作りたくなるのも無理はない
昔、PC88の高速ライン描画ルーチンとかで雑誌に載ってなかったっけ?
PC-8801/mkIIのCLS 3遅すぎ。
roll命令使え
>>717 Oh!XのMAGICとか
ことりちゃんの男前な奴が載っていたような
ことりちゃん、あの時のままならまだよかったのに、今や(;_;)
ことりさーん、プラズマラインをdirectxでつくってよ いや、ことりさんじゃなくても良いんだけどさ
自分で作りゃいいじゃん
よし、いっちょやったるか
お前ら初めてかZ80は? 力抜けよ
728 :
ナイコンさん :2012/11/09(金) 23:30:07.96
directxを良くactivexと間違える…
729 :
ナイコンさん :2012/11/09(金) 23:40:12.81
directsex
actisex
>>728 さすがにこの業界向いてないから、辞めたほうがいいんじゃね。
リタイヤした爺なら、もうそういう単語には忘れてもいいと思う、お疲れ様でした。
,___ o'⌒) `ヽ (i:i:i:i:i:☆i:i) Z80に追加して欲しい命令を3つ言え ( ´・ω・) ( ∽) (~) ) ノ γ´⌒`ヽ (_ {i:i:i:i:i:i:i:i:} [il=li] (ω・` ) 3つだけか・・・ )=(_ (:::::::∪) (-==-) し─J `ー‐''
リフレッシュのタイミングを変更、あるいは止める命令は欲しい。
>>732 EnterARMMode ... 以降 ARM Cortex-A15 相当になる。
あと2つは、64bit 版と予備に取っとく。
64180のMLT ssは欲しい あと2つ…どうせ2バイト命令だしなあと思うと難しい…
LD A,A とか無くてもいい命令潰していいじゃん
NOPもいらない
NOPは結構使われてるから必要
Z80に欲しい命令… 命令っつーかアドレッシングモードは欲しかったな、 レジスタ潰さずにオフセットアドレス使えるとかLD B,(A+HL)みたいな。
フラグやレジスタに影響する命令がNOPの代わりになるわけないべや
LD HL,(HL) LD BC,(HL) LD DE,(HL)
IX,IYとかもあったな、そいえば(すっかり忘れてたが…)
AFもSPもPCもあったよ。
アドレッシングモード、A〜HLまでの全てのレジスタをアキュムレータと同等に扱える命令形態 って考えるともうZ80じゃないんだよな…
rが8bit欲しいのは俺だけか。
Rは8bitあるからな。7bitなのはカウンタ。
LD r8,(SP + imm8) LD (SP + imm8),r8 LDA r16,(SP + imm8)
SP相対にするとPUSH/POPするだけでオブジェクトを指すオフセットの値変わるし使い辛そう
FADD FSUB FMUL FDIV
命令はどうてもいいがリフレッシュを8bitでやってほしかったな」
753 :
ナイコンさん :2012/11/22(木) 20:10:57.49
LD r16,(HL)ってなかったっけ?
ない
>>753 Z280なら
LDWHL,(HL)ed28
LDWBC,(HL)ed06
LDWDE,(HL)ed16
756 :
755 :2012/11/22(木) 20:49:33.47
おおぅ。 ×LDW HL,(HL) ed28 ○ LDW HL,(HL) ed26 ついでに LDW HL,(SP+im16) ed04,im16 とか色々…
裏レジスタ使用 EXX 裏裏レジスタ使用 EXXX 裏裏裏レジスタ使用 EXXXX 裏裏裏裏レジスタ使用 EXXXXX
レジスタバンクでいいだろ
jr a,... jr na,...
Z80をどう弄ってもどうにかなる問題でもないしな… 選択肢が他にあまりない当時とか、ソフトの互換性問題とかそういうのじゃなければ オリジナルCPUを趣味で自作する程度のお遊びか学習目的くらいだからなぁ。
6800・6502のゼロページは実質256個のレジスタとして使えたなあ。 6809は半端にそれを引き継いだので、アキュムレータ潰してTFRでDPRへ上位8bit転送しないといけなかったっけな。DPRってリセット時の値って保証されてたっけ?
ゼロにはなるが命令短縮以外になんのメリットも無いバカCPUだったな エクステンドの方も1サイクル余分に食うから6809の中じゃ意味があったんだが 6502はともかく6800より遅いなんてバカ過ぎる
>命令短縮以外になんのメリットも無い 命令短縮ってあの当時としてはすげえメリットだろ。
>>762 >6502はともかく6800より遅いなんて
同じじゃん
6502:
LDA ZEROPAGE 3cycles
LDA ABSOLUTE 4cycles
6800:
LDAA DIRECT 3cycles
LDAA EXTENDED 4cycles
>>764 普通に考えて
[ 6809 は ] 6502はともかく6800より遅いなんてバカ過ぎる
だと思うが…
6809:
LDA Direct 4 cycles
LDA Extended 5 cycles
>>765 6502も6800も同じなのに「6502はともかく6800より遅いなんて」て言ってるのがバカだろ
> 6502はともかく6800より遅いなんて 6502信者w
>>769 >つまり、「6502はともかく」と書いてある時点で、6502 はどうでもいい存在なんだよ。
どうでもいい存在の6502の名をわざわざ挙げている
>>762 は頭がおかしいと?
>>769 >つまり、「6502はともかく」と書いてある時点で、6502 はどうでもいい存在なんだよ。
6502は別格ってことだよ。
>>771 わざわざ「交通の便は―、閑静でいい」と言うような用例まで書いてあるんだから、
理解しようよ。
色々犠牲にしている 6502 にスピードで負けるのは別にいいけど、前身の 6800 に
負けるのは許せないってことだろ JK
書いてる内容の是非はともかく、内容ぐらい理解できるようになろうね (w
~~~~~~~~~~~
>>773 > 色々犠牲にしている 6502 にスピードで負けるのは別にいいけど、前身の 6800 に
> 負けるのは許せないってことだろ JK
色々犠牲にしているという6502も、6800と速度は変わらんて話だが、理解できてる?
>>773 >わざわざ「交通の便は―、閑静でいい」と言うような用例まで書いてあるんだから、
この場合の用法は、交通の便については否定的なニュアンスが含まれるぞ。
>>774 > 色々犠牲にしているという6502も、6800と速度は変わらんて話だが、理解できてる?
そんな話しでないことも理解できてないのかよ…
>>775 「否定的な」とは?
ニュアンスとして「どうでもいい」あたりまでは含まれることもあるけど、普通は
A) 交通の便よし、でも騒がしい
B) 交通の便悪い、でも閑静
の2物件があったら、B を選ぶってことだろ。
もちろん、
C) 交通の便よし、でも閑静
があったら、C を選ぶ。
※ もちろん、他の条件が同じ場合ね。
>>776 > > 色々犠牲にしているという6502も、6800と速度は変わらんて話だが、理解できてる?
>
> そんな話しでないことも理解できてないのかよ…
>>764 読んでないの?見ても理解できないのかな??
778 :
ナイコンさん :2012/11/25(日) 19:41:37.59
age
779 :
ナイコンさん :2012/11/25(日) 19:47:20.45
逝去をねがってage
780 :
ナイコンさん :2012/11/25(日) 20:32:19.06
1976年に「今の知識でチートして」新しいCPU作るとどうなるんだろうね。 Z80を市場から駆逐できるだろうか?
>>777 >>764 自体がおかしいと指摘されてることすら理解してないのか…
まあ、
>>769 見て理解できないならどうしようもないけど、少なくとも
理解度が世間と違うことぐらいは覚えておいた方がいい。
>>780 半導体技術 (集積度とか) は、当時を想定するの?
そうであれば、Z80 を駆逐するのはちょっと難しいかも。
>>769 >つまり、「6502はともかく」と書いてある時点で、6502 はどうでもいい存在なんだよ。
「
>>769 が真性包茎なのはともかく6800より遅いなんてバカ過ぎる」ぐらいどうでもいい存在の話
してるってこと?
頭おかしいね。
>>780 当時の半導体技術で実現可能なことは実際に当時に行われてるんじゃないかな。
久しぶりに見に来たらガイキチが暴れているようですな
と気違いが申しております。
ここID出るようにしてほしいな
IDなんかいらないよ 俺と俺以外、それがわかれば十分
いえ、おたくの都合なぞ知りませんよ
791 :
ナイコンさん :2012/11/26(月) 09:23:08.09
真性包茎
>>762 DP レジスタが 16 bit だったらもっと使いでがあったかもしれない。
それってアドレスを20ビットにするってこと?
それって 16+8=20 ってこと?
そうじゃなくて、 256 Byte 飛びじゃなく任意のアドレスから 256 Byte 使えるということ。
それじゃインデクスレジスタがもいlっこ増えるのとあんま変わらんな
しかもモトローラの技術じゃ実行に5サイクルかかる 耐え切れずに日立が3サイクルに改造しても因縁付けられて封印されると
>>798 どゆこと? 日立が勝手にマイクロコードいじったとかの話じゃないの?
6809はマシンサイクル短いけれどCISCなんですか?
うわ、バカがいる!
802 :
ナイコンさん :2012/11/29(木) 01:22:41.19
RISCの原型どす
比較的速い命令も、遅い命令もある6809がRISCなわけねーべや
じゃあZ80はRISC?
比較的速い命令も、遅い命令もあるZ80がRISCなわけねーべや
べや
とにかく演算器を休ませない為、どうデータを流し込んで逝くかって設計思想になる前のモノだからな〜
808 :
ナイコンさん :2012/11/29(木) 15:52:53.68
6502とR800はRISC
比較的速い命令も、遅い命令もある6502やR800がRISCなわけねーべや
内部でパイプライン動作してるプロセッサをRISCとか言うのバカ丸出しだからやめて
R800の頃はRISCという言葉が流行りだったから仕方ない
ペンティアムやコールドファイヤはRISC
なわけねーべやべやべや
814 :
ナイコンさん :2012/11/29(木) 18:17:21.25
老いぼれどもage
815 :
ナイコンさん :2012/11/30(金) 02:40:07.99
>なぜ Z80 を飛ばしてるんだろう? 納得がいかん 「今までのインテル系CPUの場合…」ってあるからだろ。
817 :
ナイコンさん :2012/11/30(金) 21:11:41.60
AMD64はインテル系CPUでは無い!
AMD64? 何の話?
819 :
ナイコンさん :2012/11/30(金) 22:19:40.89
どうしよう、ゼルビーノがお肉盗んじゃったよ お金なんてボクもってないしどうしよう
むしろ8085を入れるべきだろ
8085本流から外れた枝葉のチップだし必要ないだろ
>>820 ホビーで 8085 なんて、使ってた奴なんて見たことないぞ。
PC-8201やTK-85なんかをホビー用途に使ってた人も多いことだろう
>>823 >↑の最初のイラストでホビーって??
俺に言わずに
>>815 に言ってくれ。
>>824 TK-85 を使ってる奴はいないとは言わないけど、俺は見たことない。
PC-8201 の CPU が 8085 とは知らんかった、PC-8201 は使ってた奴見たことあるから、
>>822 は撤回するわ。
カシオのFP-200も8085だと思ったが、この頃のハンドヘルド機に8085の採用が多く見られるのは C-MOS版があったからかしら?
>>826 そう。8085のCMOS版は、沖がかなり早い時期に出した。
そういう用途だとメモリーもCMOSのSRAMを使うから、リフレッシュ機能がないことはデメリットにならない。
828 :
ナイコンさん :2012/12/02(日) 18:50:56.02
AVRって76年に投入は無理かな?
HC-20は6301という珍しいCPU使ってたな 6800とバイナリ互換のくせにASLDとかABXが1サイクルで終わる優れものだった 6809と違って内部はちゃんと16bitになってたのに惜しかった
Canonが確かZ80のHHC出してたよなぁ、あれどっかで修理してるブログとか見たような。
>>833 X-07?
NSC800でソフトはZ80、バスは8085コンパチって言う変な奴だったね。
(サブにCUSTUM8BitCPU)
小型でいろんな拡張機器が有ってなかなか意欲的とは思ったが、拡張機器付けたら動かせなくなるから?と思った。
i8085はもっと評価されてもいいと思うんだけどなぁ バス系はi8086に繋がっていくし
呼んだ?
組み込み用だし後が続かなかったからなあ。 >8085 8086のフラグとか見ても8080の仕様引き継いでて、8085は無視されてるもんなあ。
8085は、8085の後継機にしてはショボかったからな。 8224と8228を一体化しましたとか言っても Z80と比べるとアドレスラッチがいる分ダサいし 命令の拡張もイマイチ 「シリアル入出力命令追加」とか言ってるけど それ単なる1ビットI/Oポートだろ、みたいな。
すまん、入力ミス 8085は、8085の後継機にしてはショボかったからな。 ↓ 8085は、8080の後継機にしてはショボかったからな。
オーバーフローフラグが増設されたのに隠し仕様だったし8086に引き継がれなかったしなあ。 つーかZ80でパリティフラグとオーバフローを同居させたのは見識を疑う。
8051は組み込み用やらコントローラ用やらで、生き残ってるね
8085の条件ジャンプは飛ばない時は命令の3バイト目を読まずに次の命令を読みに行くのか これはZ80でもやって欲しかった
割り込みのピンが40本中5本(RESETも含めれば6本)と豊富なところがカッコイイ
NECはTK-80の後継機に8085を採用したのはなぜだろう? uPD8085よか、uPD780のほうが よっぽど売れ筋だったと思うのだが。 8085を組み込み用と位置づけた上で、組み込みを勉強するための教材として企画された 製品ということだろうか? 8085の組み込みに便利な特徴としては、 ・少ないチップ数で構成可能 ・豊富な割り込みピン ・1ビットづつある入力/出力ポート こんなところがあると思うのだが、TK-85で活かされてたのは一番下のみだな。
>>835 アドレスラッチを使うと数ピン別目的で使う事が可能になる訳だけど
その別目的にしたピンの用途ってのが微妙だとね。
ついでに。
アドレス下位をデータバス共用にするよりも
アドレス上位をデータバス共用としてラッチする形にしておけば
DRAM使用前提のバス構造として使いやすくなったんじゃないか?とも思う。
DRAM用信号をCPU側で作ってくれたならば、だけど。
特にアドレスマルチプレクサの切り替え信号。
>>838 Zilogの対抗品なSuper8もそうだけど
後発だけあって、バイト操作に特化した命令セットで、コントローラ用途だと扱い易いからね。
乗算/除算命令だってあるし。
その代わり、16bit演算&操作は80系より弱いがww
やっぱZ80最強だよ
Z80にまたがってブイブイ言わせていた頃が懐かしいぜ
今はARM最強かな。
DIPもあるしな I/O足りないから40ピンのも欲しい
8bit時代のシンプルさを受け継ぎながらもエレガントな32bitアーキテクチャを体現したという事か
ARMって6502のなれの果てか
>ARMって6502のなれの果てか まだこんなこと信じてる奴いるの?
なれの果てはスーファミCPUじゃろ
6502も進化してんだなARMとして
>6502も進化してんだなARMとして まだこんなこと信じてる奴いると信じてる奴いるの?
まだこんなこと信じてる奴いると信じてる奴いると信じてる奴いるの?
6502を日立が魔改造した62C02を見てみたかった
6502とARMってアーキテクチャが似ているけど 後継CPUなの?
まだこんなこと信じてる奴いると信じてる奴いると信じてる奴いると信じてる奴いるの?
まあ、単細胞生物が進化して人間になったと考えたらそれもありかな。
6502の超進化形態!ARM
昔、64KbitDRAMの頃、α線ソフトエラーとか言われてたけれど今の4GbitDRAMはどうよ? セルの大きさからしてエラーの嵐でも不思議でないが
結局、CPUの進化ってアドレス空間の拡張への欲求によって突き動かされてるのよ もう処理能力なんて32bitで十分 だから64bitなんて中途半端な事言わずに128bitアドレッシングにしなかったのかなあって思うのよ
864 :
ナイコンさん :2013/02/01(金) 23:13:14.38
すげーなARMって6502だったのかよ!
>>863 >もう処理能力なんて32bitで十分
意味わからん…
いつから、bit 数が処理能力の単位になったんだ?
ARMってSun?
64bit は 32bit の倍偉いとか言い出すバカ現る
8から16なら倍以上偉くなったな
8080 → 8086 はそれほどでもなかったな
PC-8801/mkIIからSRへはCPU変わらなくても処理早くなったけどな。
872 :
ナイコンさん :2013/02/02(土) 18:16:47.09
128bitアドレッシングなんてだれも必要としていないからwww。 メモリーを無駄使いするだけ
必要とか関係ないし
874 :
ナイコンさん :2013/02/02(土) 20:36:30.66
メモリとハードディスクは有って有りすぎるってことは絶対にない。 「もっとメモリを!」ってのがプログラマーという生き物だからな。 ROM16kビット、RAM2kビットのターゲットんときは泣けたけど。 単4電池2本で2〜3週間動いたって言う通信機器といえばわかる人はわかるかな。
8086が最初に出たときもアドレス空間1メガバイトとか絶対使いきれないだろ と思ったけどあっという間に足りなくなったな。
いや中途半端なアドレス空間でせまっって思ったけど
>>865 文面通りにしか解釈出来なくて論理エラーを吐く8bitレベルの脳はお前位のもんだ
まともな人間の知能なら「今の32bitCPUレベルの処理能力」と補完をする
粘着するなよ、脳硬化症ジジイ
>まともな人間の知能なら「今の32bitCPUレベルの処理能力」と補完をする 「今の32bitCPU」なんて一口に言っても色々あんのにねw
ひとこと言おうちょこちょこ進化させるのは単に商売がからんでるから
>>878 そもそも何を持って 32bit ? という例の議論になるだけだし。
>>880 >そもそも何を持って 32bit ? という例の議論になるだけだし。
メーカーが32bitと謳ってるCPUが32bit CPU。
いや別に「君の意見」が聞きたいわけじゃないから。
8088って8bitって言ってたよね
当然だろ、型番を見れば解る 16ビットならF0FFって名前で出してたはずだ
それだと 15bit だろ…
とりあえずAVRと比較してみよう
>>887 > バカとは議論にならない。
確かに、君の理解力だと話しにならないね。
確かに、バカの妄言を理解するのは常人には困難。
891 :
ナイコンさん :2013/02/03(日) 19:14:01.05
お、あげとくか
>>887 >> メーカーが32bitと謳ってるCPUが32bit CPU
思いっきりお前の意見じゃねーか、頭大丈夫?
893 :
ナイコンさん :2013/02/03(日) 19:27:40.69
不可解age
895 :
ナイコンさん :2013/02/03(日) 19:39:20.58
iAPX86
896 :
ナイコンさん :2013/02/03(日) 20:36:21.06
iAPX88
128bitアドレス空間なんて必要無いなんて言ってるけれど 1mmを1とすると128bit空間は一辺が二万数千kmの立方体になる 二万数千km四方の空間にオブジェクトを配置して自由に動かすなんてモデルを考えれば結構、実用的だろ 128bitアドレスは線として考えれば確かに非現実的な程、長大だけれど立体として考えればありうるレンジなんだよ
>1mmを1とすると128bit空間は一辺が二万数千kmの立方体になる どういう計算? 2**(128/3) = 6.98146366e12 ではないの?
えーと、その縮尺ルールで多層回路組んだらどんなCPUがうまれるかな?
((2^128)/(1000^3)/1000)^(1/3) (km)でないの?
なんか実数部は
>>898 と同じになった。
まあ、俺のはkm尺度だから同じなのか。
年をとってくると何か新しい事を考え出す事が出来なくなり他人のあら探しに血道をあげるようになってきます
「何か新しい事」ってデタラメってこと?
としとってくるっつーか、今30台〜40前後くらいの人はなんかねぇ…
年代関係なく、普通の意味で頭おかしいんじゃねぇの?って奴は そこかしこに居るんだなーと最近よく思うね。
そんなのに限ってカキコしまくるからなんとも
ああ、納得したわw
伊達や酔狂がわからないノータリンってこと? まあ2chには昔から多かったけど、こういう板にはあまり寄りつかなかった気がするな。
>>901 なんか揚げ足でも取られて悔しかったりしたわけ?
909 :
ナイコンさん :2013/02/13(水) 20:33:20.39
age age
糞爺が何匹も釣れたわ
アラ良かったわね。
まだ後釣り宣言なんてする奴いるんだな… 何もかも懐かしい
爺弄るなら逝って良し位言やぁいいのに最近全然聞かない毒蝮
なんか妙な事言ってる奴がいたら突っ込みたくなるんだよな。
>>897 みたいな
例えが微妙w
東京ドーム何杯分とかそういう感じかw
IPv6の例えもそんな感じだったな、地球上を1m四方に区切ってIPつけても 10bit分与えられる云々とか。
>>897 >1mmを1とすると128bit空間は一辺が二万数千kmの立方体になる
1mmを1として、一辺が二万数千kmの立方体を表すのに必要なビット数って103〜105bitってとこじゃない?
log(21000e6**3)/log(2) = 102.86901083
log(29000e6**3)/log(2) = 104.266001547
おいおい、ログの使い方も知らねーのかよ中卒
3*log(21000e6)/log(2) = 102.86901083
920 :
ナイコンさん :2013/02/14(木) 21:14:32.06
128bitで足りないならセグメントレジスタ付ければいいのに
Z80最強だよ
8bit最強と言うならμCOM-87(w
925 :
ナイコンさん :2013/02/20(水) 11:50:41.07
「あぁあん? 聞こえんなぁ」AA略。 実物見たことも触ったことも使った子もないんだけど、Z80とどっちがつおい?
μCOM-87はテレビとプリンタに入ってたの見たな ミシンとかにも入ってるらしい
がっがり8085
がっかりするポイントが解らん。醜く拡張されたZ80なんかよかよっぽど美しいアーキテクチャ(RIM、SIM命令を除く)なのに。
マルチプレクスバス(笑)
あれは8086/8088と合わせただけだろ インテルは8Bit見限ってた感じ
当時他のCPUがこぞって高性能化してたのに8085は必要なチップ数を減らしただけだからな。 なんかちょろっと割り込み制御線が増えてたようだけど、中途半端だった。 それなら8048系の方を増強した方が良かった。 そりゃ初めから単電源・専用クロックジェネレータ・コントローラ不要なZ80に ユーザーが流れるのは自明。
勝ち負けの結果でしか判断できない奴っているんだなあ
i8085なんぞゴミすぎてZ80の敵ではないわな
もはや8bit CPUに対して性能がどうこう言う時代ではないし、評価の視点はいろいろあって然るべき。
8085ほど恥ずかしいものは無かったよ
世界初の本格的8ビットCPUが8080で、それを更に完成度を高めたのが8085だからなあ、 純粋な血統と確かな技術に裏打ちされた完成度で、他のCPUのユーザが嫉妬する気も 分からんではない。
バスは糞だし遅いしでどうしようもなかったな8085
8ビットCPUにしては命令の直行性も高かったしアーキテクチャが美しかったな>8085 条件分岐命令で条件不成立の場合にはオペランドの2バイト目を読まないのも素晴らしい。
Z80はパリティとオーバーフローのフラグが兼用になってたり、インデックスレジスタ相対の オフセットが符号付で評価されたりと仕様に意味不明な点が多々あるからなあ、やはり 8085と較べると見劣りしてしまう。
そんなにゴミがすきなのかw
Z80の欠点を挙げれば限がないが、最も酷いのはアセンブリソースの汚さだろう。 ADD A,B、ADC A,B、SBC A,B があって、SUB A,Bがないとか、 ADD HL,DE、ADC HL.DE、SBC HL,DE があって、SUB HL.DEがないとか、 正気とは思えん。
インテルは8080からの流れで常に適当なアップグレードパスを用意していた。 ザイログにそれが出来なかったのは、Z80のアーキテクチャが腐ってたからに他ならない。
てか電卓上がりのCPUなぞどういじくってもゴミくず
8080系の相対ジャンプとかもうね
6800も6809も電卓上がりのCPUに勝てなかったんだよなあ。 6800は8080と比べても性能も低かったし、6809は高級言語志向が ウリだったくせに開発ツールに力入ってなかったしなあ、廃れて当然。
ALU4bit(笑)
ポジションインデペンデント不可
>>948 インテルの特許回避の為とかなんとか。
>>949 素人がハンドアセンブルでプログラム作る以外ではあんまメリット無いよね。
6809でも無駄に遅くなるし。
8085載ってるマイコンってマイブレーンくらい覚えてないな
TK-85とか、PC8201とか、知らん人は知らん鴨ね。
8085にDRAM使おうとすると外部リフレッシュ回路が必要になるのけ?
DRAMのリフレッシュはソフトでもできるのでリフレッシュ回路は必須ではない
やっぱゴミかw
そういや6800を使った電卓ってあったんだろうか 6502はコアが小さいからか採用例があったよね 6809は役不足()か
68系信者は80系を電卓が出自と馬鹿にするが、68系にも10進補正の命令や機能って 載ってるし、68系も用途として電卓への採用も想定してたんだろなあ。
>>956 6809の頃には電卓は既に激しい価格競争に晒されてた上、6809は大して売れなかったので
値段がこなれなかったから電卓に採用とか有り得んだろう。
じゃ、ポケコンへの応用は?
CMOS版6809って 6309の登場を待たずして存在したの?
私の記憶が確かならば〜・・ 「無かった」ハズ 6309が初のC-MOS版かと
初っつーか、最初で最後?
でも最初なんだろ だったら初じゃねーか
6809 みたいな路線でもっと「綺麗な」 CPU ってその後何かあったの?
>>957 10進命令って電卓専用って言うわけじゃないよ。
COBOL の DECIMAL 型サポートのために、IBM の汎用機にだってある。
> 68系信者は80系を電卓が出自と馬鹿にするが
知識が無いからバカにされてるんだろ…
RISCやVLIWは綺麗だと思うが8bitは無いな
綺麗っつーかアーキテクチャに感銘うけたのはSparcかなぁ、舌足らずではあったけれど。
>>964 「6809 みたいな路線」ってどういう意味で言ってる?
高級言語志向と言うならそんなプロセッサゴマンとあるが。
>>965 > 10進命令って電卓専用って言うわけじゃないよ。
> COBOL の DECIMAL 型サポートのために、IBM の汎用機にだってある。
System/360のAPとかの話?
「10進補正の命令や機能」とは別物と理解できない人かな??
68系が綺麗なのではなくて、80系が猥雑すぎるのである
人はその80系の猥雑さを見て「これは電卓より出でたカラクリにていたしかたなく候」といい、 それより「電卓の化け物」と言われるやふになったのである
80系というか、8080に対してZ80とか8086以降CPUの下位互換命令とかがアレなだけで 本来純粋なオリジナルはそれほどでもない。 まぁでももうちょい頑張ってほしかったような気もしなくもないけれど、 オリジナルがそうだったから後継(上位互換)のCPUが複雑怪奇になったというべきだろうけれど。 強いて言うならば6800に対して6809だって複雑怪奇になった、とも言えなくもないが。
6800は綺麗なアーキテクチャではない。単純なだけ。 アドレスを自由に指標できるレジスタが一つしかない欠陥品。
>>965 >10進命令って電卓専用って言うわけじゃないよ。
>COBOL の DECIMAL 型サポートのために、IBM の汎用機にだってある。
8080や6800の加算しか補正できないDAA命令って、COBOLのPACKED DECIMALに生かすには
機能が足らんでしょ。
>知識が無いからバカにされてるんだろ…
成る程ね。
>>969 ,
>>974 汎用機にも 10進関連の命令があると言うだけで、
機能が同じなわけ無いじゃん。
電卓上がりの頭だと、理解できないかな (w
>>965 汎用機に10進演算命令があったということと、8ビットマイコンの10進補正命令が電卓用か
否かってのは全然関係ない話だよ。関係ないこと例示して何が言いたいのかな?
>知識が無いからバカにされてるんだろ…
バカにされたいんですね、了解了解。
>>976 >汎用機に10進演算命令があったということと、8ビットマイコンの10進補正命令が電卓用か
>否かってのは全然関係ない話だよ。関係ないこと例示して何が言いたいのかな?
10進関係の機能が電卓だけのものじゃないと言いたいだけですが何か?
あと、組み込みでも BCD 使うことはいくらでもあるし。
>>知識が無いからバカにされてるんだろ…
相当図星だったみたいだな (w
>>977 >10進関係の機能が電卓だけのものじゃないと言いたいだけですが何か?
だったら8ビットマイコンの10進補正命令の具体的な使いみちなり何なり挙げればいいのになあ、
汎用機の10進命令とかCOBOLのDECIMAL型だとかってアホかww
インテルってマイコン製品の上位互換性に掛ける努力は他の追随を許さないし、DAA命令って電卓用に開発された4004の頃からあるからなー、8080やそれ以降のx86に引き継がれたのは当然の結果。
>>965 >10進命令って電卓専用って言うわけじゃないよ。
>COBOL の DECIMAL 型サポートのために、IBM の汎用機にだってある。
いまどきの新しいアーキテクチャでは採用されないこと多いよ>10進命令
>>978 > だったら8ビットマイコンの10進補正命令の具体的な使いみちなり何なり挙げればいいのになあ、
本物のバカ?
>> あと、組み込みでも BCD 使うことはいくらでもあるし。
って書いてあるのも理解できないのかよ…
そもそも 「汎用機の10進命令」 ⇒ 「ミニコンの10進命令」 ⇒ 「6800の DAA」 の
流れぐらい理解しようよ (w
>>980 > いまどきの新しいアーキテクチャでは採用されないこと多いよ>10進命令
うん、そうだけど、それがどうかしたのか?
>>981 >>> あと、組み込みでも BCD 使うことはいくらでもあるし。
>
>って書いてあるのも理解できないのかよ…
だったら「COBOL の DECIMAL 型サポートのために、IBM の汎用機にだってある。」なんて
バカなこと書かないで8ビットマイコンの10進補正命令の具体的な使いみちなり何なり挙げれば
いいのになあ、とか言われないと理解できないバカ?
>>965 >10進命令って電卓専用って言うわけじゃないよ。
>COBOL の DECIMAL 型サポートのために、IBM の汎用機にだってある。
うん、そうだけど、それがどうかしたのか?
>>982-983 >> そもそも 「汎用機の10進命令」 ⇒ 「ミニコンの10進命令」 ⇒ 「6800の DAA」 の
>> 流れぐらい理解しようよ (w
流石に本物のバカは違うな (w
>そもそも 「汎用機の10進命令」 ⇒ 「ミニコンの10進命令」 ⇒ 「6800の DAA」 の >流れぐらい理解しようよ (w 加算の補正しか出来ない6800のDAAが何だって??
>>985 >加算の補正しか出来ない6800のDAAが何だって??
「COBOL の DECIMAL 型サポートのため」だってよw
>>> そもそも 「汎用機の10進命令」 ⇒ 「ミニコンの10進命令」 ⇒ 「6800の DAA」 の >>> 流れぐらい理解しようよ (w > >流石に本物のバカは違うな (w ワロタ(w
>>985-986 >> 汎用機にも 10進関連の命令があると言うだけで、
>> 機能が同じなわけ無いじゃん。
集積度って知ってる?
当時の 6800 の集積度で AP 命令とか実装できるわ
けないことぐらい理解しようよ…
>>988 別モン例示することがナンセンスだって言われてんの理解できないバカ
>>988 >集積度って知ってる?
>
>当時の 6800 の集積度で AP 命令とか実装できるわ
>けないことぐらい理解しようよ…
ENIACって知ってる? あの当時で内部10進演算だったんだぜ?
>>981 >そもそも 「汎用機の10進命令」 ⇒ 「ミニコンの10進命令」 ⇒ 「6800の DAA」 の
>流れぐらい理解しようよ (w
その主張が正しいなら、「DAA命令持ってる4004は汎用機由来のアーキテクチャ」なんて主張も可能だよなあ。
えっそうじゃなかったの?
>>989 > 別モン例示することがナンセンスだって言われてんの理解できないバカ
別モン?
>>984 から、またループするの (w
>>980 ENIAC の真空管数 17,468本, 6800 のトランジスタ数 5,400個
ていうか、10進しかサポートしてないから。
>>991 主張は可能だよ,当然命令セット作る時に参考にしただろうし。
ただ、4004 には「ミニコンを参考した」と言うより「電卓の実現」と言う
比重が高いだけでしょ。
>>993 >> 別モン例示することがナンセンスだって言われてんの理解できないバカ
>
>別モン?
別モンらしいね。
> 当時の 6800 の集積度で AP 命令とか実装できるわ
> けないことぐらい理解しようよ…
995 :
993 :2013/03/09(土) 21:36:39.25
すまん、Typo した。
まあ、わかるだろうけど。
>>980 ⇒
>>990 ENIAC の真空管数 17,468本, 6800 のトランジスタ数 5,400個
ていうか、10進しかサポートしてないから。
>>993 >ENIAC の真空管数 17,468本, 6800 のトランジスタ数 5,400個
アーキテクチャが違うもんをトランジスタ数で同列に比較できると思ってるのかな??
>>993 > 主張は可能だよ,当然命令セット作る時に参考にしただろうし。
あれあれ? ↓の主張はどうなったの??
> > 68系信者は80系を電卓が出自と馬鹿にするが
>
> 知識が無いからバカにされてるんだろ…
>>994 勝手に
>>984 からループしててくれ。
お前の頭には一緒か、そうでないかの二種類しかないのかな?
8080 以下の 1bit CPU かよ…
>>997 バカにしてるのは「68系も用途として電卓への採用も想定してた」の方だよ
ちょっと冷静になれよ (w
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。