2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

8086 vs. Z80 vs. 6809 vs. 6502 その13

1 :ナイコンさん(ワントンキン MM40-H0Yp):2016/09/22(木) 21:55:59.59 ID:q3U9eYbNM.net

8086(8088)・Z80・6809・6502のうち、どのCPU(MPU)が優れているか議論するスレッドです。
CPU(MPU)アーキテクチャや周辺デバイス制御など
基本的に「石」に関連する議論なら、ほぼ何でもアリです。


     ♪    /.i   /.i  /.i
   ♪     ∠__ノ ∠__ノ ∠__ノ  
        〈,(・∀・;)ノ・∀・;)ノ・∀・;)ノ
         └i===|┘i===|┘.i===|┘
           〈__〈 〈__〈 〈__〈

■過去スレ
8086 vs. Z80 vs. 6809 vs. 6502 その12 [無断転載禁止]©2ch.net
http://hanabi.2ch.net/test/read.cgi/i4004/1468637057/l50

8086 vs. Z80 vs. 6809 vs. 6502 その11 [無断転載禁止]c2ch.net
http://hanabi.2ch.net/test/read.cgi/i4004/1462424764/
8086 vs. Z80 vs. 6809 vs. 6502 その10
http://hanabi.2ch.net/test/read.cgi/i4004/1407651926/
8086 vs. Z80 vs. 6809 vs. 6502 その9 (再び)
http://hello.2ch.net/test/read.cgi/i4004/1365951318/
8086 vs. Z80 vs. 6809 vs. 6502 その9 (短命)
http://ikura.2ch.net/test/read.cgi/i4004/1362833400/
8086 vs. Z80 vs. 6809 vs. 6502 その8
http://ikura.2ch.net/test/read.cgi/i4004/1333965297/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

248 :ナイコンさん :2018/04/27(金) 02:40:33.93 ID:PGnxVeT40.net
命令表をINするとゲートロジックが出てくるAIとか出来そう

249 :ナイコンさん :2018/04/27(金) 22:48:03.67 ID:XgoeaLRp0.net
>>247
v30ってES納期が決まっていて、ギリギリなスケジュールで開発してたから8080のエミュしか
実装できなかった。納期が緩ければz80エミュは楽勝だったのに。というお話だったのさ。

250 :ナイコンさん :2018/05/03(木) 10:01:33.91 ID:+P5xAI+P0.net
>>249
チップ面積の制限だった、とどこかに書いてあった記憶があるが。

251 :ナイコンさん :2018/05/03(木) 16:16:00.16 ID:8wF37e3q0.net
納期とは書けないから面積が足りないと誤魔化したんでは?

252 :ナイコンさん :2018/05/03(木) 17:21:19.78 ID:uH03JRwr0.net
時間をかけて最適化を進めたらZ80エミュを入れれたって意味じゃないの?

設計時には入れられるかどうかすら未知数だったが、後の試行で無事に詰め込めたとかの実態があって、
あのとき時間をかけてたら入れれててたのにと開発者が後々まで思ってたとかを推す

誤魔化してただけの可能性もあるけど

253 :ナイコンさん :2018/05/03(木) 20:43:33.87 ID:gnuxY6up0.net
当事者しかわかんねえだろまあ当事者もボケはじめてる歳かもな

254 :ナイコンさん :2018/05/19(土) 20:36:40.90 ID:XYiLoCdv0.net
Z80エミュにしたバージョンは88VAに積んだ

255 :ナイコンさん :2018/05/20(日) 03:13:11.23 ID:61eGgder0.net
88VAに作ったCPUは大損だったね

256 :ナイコンさん :2018/05/24(木) 18:29:34.20 ID:XH51H3xT0.net
今更のZ80符号なし16bit*16bit乗算
符号有りでも無しでも下位16bitは同じ結果というのは不思議
RR Cを削れることに今頃気付いて落ち込み中

;HL*DE > HLDE
mult16:
    LD C,H
    LD A,L
    LD HL,0
    LD B,16
    SRL C
    RRA
LOOP: JR NC,SKIP
    ADD HL,DE
SKIP: RR H
    RR L
    RR C
    RRA
    DJNZ LOOP
    LD D,C
    LD E,A

257 :ナイコンさん :2018/05/25(金) 06:03:17.23 ID:WZqXHYbI0.net
削れないよね。
というより正しいのか?

258 :ナイコンさん :2018/05/28(月) 08:44:21.76 ID:QyzWbaeR0.net
16bit 符号付き乗算が内部レジスタだけで実行できて
6809@ 1MHzと処理時間が変わらないZ80なのに
効率の悪い8080のコードだらけだった

259 :ナイコンさん :2018/05/28(月) 12:33:04.74 ID:SgcESfrI0.net
その1MHzのと変わらないのは何MHzのZ80ですか?

2.5MHz? 4MHzのZ80A? 6MHzのZ80B? 8MHzのZ80H?

260 :ナイコンさん :2018/05/28(月) 13:47:04.41 ID:u55+PHd00.net
Z80-4MHzで6809-1MHzと互角、どっちも170usくらいで終わる
メモリのスピードは2倍違うから6809の方が優秀ってのが現実

261 :ナイコンさん :2018/05/29(火) 19:58:27.85 ID:RIhOeSu40.net
>>256
とりあえず正しくて、RR Cは削れないけど…
これって随分前に別スレに投下されたヤツだよね?

262 :ナイコンさん :2018/05/29(火) 21:23:48.25 ID:yuZKPeZI0.net
正確にはRR Cをループの中から取るって意味でして書き直すと下のようになります
記憶にないけど別スレに投下したのはたぶん私です
;HL*DE > HLDE
mult16:
    LD C,H
    LD A,L
    LD HL,0
    LD B,8
    RRA
LOOP1: JR NC,SKIP1
    ADD HL,DE
SKIP1: RR H
    RR L
    RRA
    DJNZ LOOP1
    LD B,A
    LD A,C
    LD C,B
    LD B,8
    RRA
LOOP2: JR NC,SKIP2
    ADD HL,DE
SKIP2: RR H
    RR L
    RRA
    DJNZ LOOP2
    LD D,A
    LD E,C

263 :ナイコンさん :2018/05/31(木) 18:06:38.74 ID:LTH5PeBJ0.net
Z80機のザ・コックピットに使われていた16bit乗算を少し改変
傑作コードである
;無符号 DE*BC > DEHL
    LD HL,0000H
    LD A,16
MUL321: ADD HL,HL
    EX DE,HL
    ADC HL,HL
    EX DE,HL
    JR NC,MUL322
    ADD HL,BC
    JR NC,MUL322
    INC DE
MUL322: DEC A
    JR NZ,MUL321

264 :ナイコンさん :2018/06/03(日) 16:48:18.26 ID:QjkpInDZ0.net
さっきニュースサイトで希望ナンバーの人気数字の話が出てたけど、8008がランクインしてた
CPUの名前と重なる人気ナンバーはこれ1つだけだね

265 :ナイコンさん :2018/06/04(月) 18:05:41.11 ID:z9UVUrADM.net
Intel 8086生誕40周年を記念したモデル「Core i7-8086K」が中国サイトに登場
https://gigazine.net/news/20180604-intel-core-i7-8086k/

266 :ナイコンさん :2018/06/04(月) 20:55:35.69 ID:5dbEveWs0.net
>>263
傑作って… >>256,>>262の後で傑作と言われてもねぇ…
それはプログラムサイズの点で、かな?

267 :ナイコンさん :2018/06/05(火) 03:48:01.18 ID:ivQ3V9ut0.net
>>265
68000円か

268 :ナイコンさん :2018/06/05(火) 12:07:26.78 ID:me15Luzk0.net
>>263はこっちのが少し速い?
; DEHL=BC*DE
; PASS88
MUL16:
LD HL, 0
LD A, 16
RPT
ADD HL, HL
RL E
RL D
IF C
ADD HL, BC
IF C
INC DE
FI
FI
DEC A
RPTE NZ

269 :ナイコンさん :2018/06/05(火) 13:19:56.92 ID:/J2xkC0E0.net
6809のニーモニックもよろ

270 :ナイコンさん :2018/06/05(火) 19:47:54.49 ID:gbnnuo5e0.net
>>268
速いね。
1回あたり7クロック、16回も実行されるので全体としては10%程度所要クロック数が削減される。

271 :ナイコンさん :2018/06/06(水) 02:02:00.35 ID:2etfW4wt0.net
6809らしくないダイレクトページを使ったコード
ザ・コックピットのダンプリストを逆アセして改造
; D x X => WORK32 符号あり
    STX WXD
    STD WXD+2
    LDA WXD+1
    MUL
    STD WORK32+2
    LDA WXD
    LDB WXD+3
    MUL
    ADDB WORK32+2
    ADCA #0
    STD  WORK32+1
    LDD  WXD+1
    MUL
    ADDD WORK32+1
    STD  WORK32+1
    LDA  #0
    ADCA #0
    STA  WORK32
    LDA  WXD
    LDB  WXD+2
    MUL
    ADDD WORK32
    TST  WXD
    BPL $+4
    SUBD WXD+2
    TST  WXD+2
    BPL $+4
    SUBD WXD
    STD  WORK32

272 :ナイコンさん :2018/06/07(木) 12:03:47.41 ID:kz8bIemn0.net
>>271
TST WXD+2はCMPX #0に置き換えて2サイクル節約

273 :ナイコンさん :2018/06/17(日) 14:43:49.52 ID:KslgSXVX0.net
クロック基準のベンチマークってあまり意味無いんだよな。Z80だと64180やKC80では命令当
たりのクロック数は変わるし。KC80はスクラッチパッドメモリ積んでるのでゼロウエイト動作
するから書き方で変わるし。

>>268,271
どうせ作るなら16bit乗算よりも24/32bitサイズの四則演算ルーチんのほうがありがたいのだが。

274 :ナイコンさん :2018/06/20(水) 17:05:04.31 ID:ddTKl2p+0.net
加減算とか難しそうだな。

275 :ナイコンさん :2018/06/22(金) 01:21:57.93 ID:zWnKK5IE0.net
どこが?
乗除の高速化の間違いか。

276 :ナイコンさん :2018/09/21(金) 23:58:52.54 ID:CU1FpCVf0.net
CPUは、Centrral Prosessing Unitの略。「CPUをLSI化したもの」がMPUである。

277 :ナイコンさん :2018/09/22(土) 01:31:51.41 ID:84goj7TiM.net
モトローラがMPUと呼んだから

278 :ナイコンさん :2018/09/22(土) 02:25:47.74 ID:E5FU4oJK0.net
サラダ記念日

279 :ナイコンさん :2018/12/03(月) 13:42:48.23 ID:QMvpSF260.net
Z80割り算16bit/8bit
; L=HL/E
 LD A,H
 LD B,08H
LOOP1: SLA L
 RLA
 CP E
 JR C,SKIP
  SUB E
 INC L
SKIP: DJNZ LOOP1

280 :ナイコンさん :2018/12/03(月) 23:44:35.28 ID:Mdgt0f4j0.net
話の流れをぶった切って悪いが、i368とi368SXのような関係で、Z80にも内部16ビットのやつがあれば良かったな。
BC、DE、HL等の16ビット演算の高速化やPUSH、POPも数割高速化とかあったら楽しかっただろうな。

281 :ナイコンさん :2018/12/03(月) 23:55:59.40 ID:s24VaHGZ0.net
Z280 とか Z8000 ってなかったっけ

詳細は知らんw

282 :ナイコンさん :2018/12/04(火) 09:08:43.33 ID:bAWrBFBg0.net
どっちもzilogの16bitCPU。同類でナショセミにNSC800というCMOSなz80があったが
なかなか出荷されず。通称uso800といわれたいわく付き。

283 :ナイコンさん :2018/12/04(火) 11:04:09.12 ID:npI/DuqZ0.net
R800のことか

284 :ナイコンさん :2018/12/04(火) 18:29:13.40 ID:4g+t+8b00.net
64180とか言うのもあった気が

285 :ナイコンさん :2018/12/04(火) 18:31:00.97 ID:SDelBrVN0.net
Z80でも16ビット演算機能はあったぞ。INC/DEC のみだが。

The Z-80's 16-bit increment/decrement circuit reverse engineered
http://www.righto.com/2013/11/the-z-80s-16-bit-incrementdecrement.html

通常、1命令フェッチするたびにPCがインクリメントされる訳だが、その機構をINC/DEC BC/DE/HL/SP/IX/IYにも流用していたようだ
ADD HL命令が11clkなのに対して、16bit INC 命令が6clkと、半分ちょいで済んでたのは、このお陰。

ただし、この16bit INC/DEC 機構はフラグ変化しない(命令フェッチさせるだけなら不要)ので、
その副作用として16bit INC 命令もフラグ変化しなかった(できなかった)。

286 :ナイコンさん :2018/12/04(火) 18:45:13.17 ID:SDelBrVN0.net
16bit INC命令だけでなく、16bit DEC命令も同様ね

16bit INC/DEC命令でも、Zフラグか、あるいはCフラグだけでも変化してくれればプログラム書く上で便利だったんだが
残念ながら16bit INC/DEC機構にそういう機能自体がなかったようだ。

同様に8080のINX命令も5clkだったんで、もしかするとZ80だけでなく8080も16bit INC/DEC機構を持ってたのかもしれん。

287 :ナイコンさん :2018/12/04(火) 20:35:57.47 ID:4g+t+8b00.net
つか、Z80の16bit INC命令が8080のINXのZ80版なだけではないの
速度で劣らせないために同じ仕組みで実行してるだけで

プラグ変化も8080と同じ仕様に揃えてるだけではないかな?

288 :ナイコンさん :2018/12/04(火) 23:18:19.55 ID:SDelBrVN0.net
>>287
8080もZ80も両方とも嶋正利氏が携わったのだから、おそらく8080の時点で既にそうなっていたのだと思う。
ただ、>>285に引用したreverse engineerがZ80のもので、8080もそうだったとは断言できないので、上記の様に濁して書いた。

289 :ナイコンさん :2018/12/04(火) 23:34:55.38 ID:H+o6RKOF0.net
8086のincでフラグが動かないのは最初はほんとハマるよな。

290 :ナイコンさん :2018/12/05(水) 00:01:44.28 ID:Ci4Albm10.net
>>287
よくみたらフラグがプラグに

寝ぼけてたようだ……

291 :ナイコンさん :2018/12/11(火) 15:37:54.39 ID:nbVIrjmW0.net
2018/12/11 09:03
共同通信
https://this.kiji.is/445012311270179937
---------------------
NASAの探査機ボイジャー2号、太陽圏を脱出し星間空間到達。打上げから41年

COSMAC頑丈杉

292 :ナイコンさん :2018/12/11(火) 18:57:34.73 ID:GizWtgmoM.net
ボイジャーのCOSMAC見たいから誰か取ってきて

293 :ナイコンさん :2018/12/11(火) 21:23:35.48 ID:rWIgDV8+0.net
>>285
インクリメンタ/デクリメンタが活躍するのはそれだけじゃない。
LD HL,(nn) が16クロック(4+3+3+3+3)で済むのはインクリメンタがあるおかげ。
PCから分離されて全体から利用できるようになっていなければ、Z80は4bitなので
恐らく 4+3+3+3+2+3=18CLK になっていたと思われる。

また、CALL命令でSPを素早くデクリメントしてくれているから 4+3+4+3+3=17CLK
で済んでいる。ALUに任せたら 4+3+3+5+3+2+3=23CLKになるんじゃないかな?
RETのSPインクリメントもそう。

インクリメンタ/デクリメンタの構成は頑張ってるね。何も考えずに速度優先(ゲート
消費多め)で考えたら全bitキャリールックアヘッドで作っちゃったりするけど、ゲート
段数が最長7段でよく考えてるよ。教科書の回路のようだ。
それでも結構な面積だな…そりゃ、とことん使い倒したくなるか。

にしても、何で4bitALUにしたかな?要らない裏レジスタをやめたら、現状のチップ
サイズでは難しくても、ほんの少しチップサイズの拡大で8bitALUにできただろうに。

294 :ナイコンさん :2018/12/11(火) 23:17:18.87 ID:QJi9hjFy0.net
>>293
>Z80は4bitなので

はぁ?

どこかで流行ってたネタなのか?

295 :ナイコンさん :2018/12/11(火) 23:29:15.76 ID:v1mht/Ht0.net
>>294
Z80のALU自体は4bit ALUなんよ
The Z-80 has a 4-bit ALU. Here's how it works.
http://www.righto.com/2013/09/the-z-80-has-4-bit-alu-heres-how-it.html

296 :ナイコンさん :2018/12/11(火) 23:36:49.00 ID:v1mht/Ht0.net
>>293
>にしても、何で4bitALUにしたかな?
intelから訴えられた時の対策、とか嶋氏がどっかで書いていたのを読んだような記憶がある
「ほら、ALUは4bit長だから、Z80は8080の模倣ではありません」と言うためだったらしい。
どこで読んだっけかなぁ・・・
当時zilogはできたての会社だから、もしintelから訴えられたら、ひとたまりもなかっただろうね。

297 :ナイコンさん :2018/12/12(水) 23:41:10.74 ID:LKG+ty5K0.net
これから書くのはあくまで俺の想像で、全く裏づけゼロなので、そのつもりで読んでほしい。
また、すでに似たような話が他の人によって書かれていた場合は容赦してほしい。

現状のZ80の拡張命令群(0EDhで始まる命令)は以下の様になっている。
  ED 00〜3F : 空きA
  ED 40〜7F : LD,ADC,SBC,RETIなど
  ED 80〜BF : LDIR命令など
  ED C0〜FF : 空きB
何でこんなに偏った配置になっているのか前々から不思議に思っていたが、ある時、気づいた。
ひょっとすると当初のZ80案では、空きA・空きBにも命令が入る予定だったのではなかったのか、と。

そう考えたのは DDCB/FDCB 命令群の奇妙な機械語フォーマットだ。
これらの命令では DD/FD CB dd XX という風に符号付8bit偏移値 dd が前倒しで3バイト目に配置されている。
こちらも前々から不思議に思っていたが、これも当初のZ80案では、DDCB/FDCB 命令群だけでなく
DD/FD 命令群の全てが、この前倒し機械語フォーマットになる予定だったのではないか、と気が付いた。
つまり、全てが DD/FD dd XX という並びになるはずだったのではないか。(現行のZ80では DD/FD XX dd という並びになっている)
この場合、3バイト目の XX をフェッチするのと同時に IX/IY+dd の計算が並列で行えるので、3〜4clk分は確実に高速になる。
(また、その場合は、DDCB/FDCB 命令群も DD/FD dd CB XX の並びになっていただろう。ついでに現行よりも高速になっていただろう)
現行の DDCB/FDCB 命令群が前倒し機械語フォーマットになっている事から、この事に気が付かなかったとはとても思えない。

298 :ナイコンさん :2018/12/12(水) 23:41:32.19 ID:LKG+ty5K0.net
ただし、この方法だと ADD A,(IX+dd) という様な命令は良くても、
LD IX,nnnn や INC IX、PUSH IX といった命令が 0DDh や 0FDh に入れられなくなってしまう。
そこで、これらの命令は当初のZ80案では、0EDh の空きA・空きBの箇所に入るはずだったのではなかろうか。
  命令の例    現行のZ80   当初のZ80案?
  LD IX,nnnn   DD 21 nn nn  ED 01 nn nn
  LD IY,nnnn   FD 21 nn nn  ED 21 nn nn
  PUSH IX     DD E5     ED C5
  PUSH IY     FD E5     ED E5
  LD SP,IX    DD F9     ED D9
  LD SP,IY    FD F9     ED F9
これの対象になりそうな命令は 00h〜3Fh と 0C0h〜0FFh の範囲のみなので、ちょうど空きA・空きBに上手い事、はまってくれる。

ところが何らかの理由により、この当初Z80案は破棄されて、IX関連命令は全て0DDhに、IY関連命令は全て0FDhに
集約するという現行のZ80機械語フォーマットに変更されてしまったのではないだろうか。
しかし、拡張命令群(0EDh)の設計は途中まで進んでいたので、丸々捨てる様な事はせず、単純にIX/IY 関連命令だけを除外したため
現行の様な空きA・空きBが生じてしまったのではないだろうか。
また、DDCB/FDCB 命令群までも DD/FD CB XX dd という機械語フォーマットにしてしまうと余りにも遅くなってしまい、
DRAMリフレッシュに影響を及ぼしてしまいかねないため、これらだけは特例で前倒し機械語フォーマットのままにされたので
他の DD/FD 命令群との整合性が合わなくなってしまったのではないだろうか。

299 :ナイコンさん :2018/12/12(水) 23:41:55.67 ID:LKG+ty5K0.net
なお、機械語フォーマットの変更だけなら(やや小さくて見づらいが)下記写真の "instruction PLA" の部分だけを
修正すれば可能そうに思える。これなら大幅に作り直さなくても済む。(それでも大変だろうが)
http://static.righto.com/images/z80/z80_labeled_inc.png

それと(1バイト短くなるので高速なはずの)偏移なし (IX)/(IY) アドレッシングが現行のZ80に無いのも、
隠し命令の IXH/IXL/IYH/IYL が明文化されなかったのも、この流れだったら上手く説明できる。
なぜなら、当初案の DD/FD dd XX の機械語フォーマットなら、(IX)/(IY) や IXH/IXL/IYH/IYL を入れる余地自体がないからだ。
途中で機械語フォーマットが変更になった時に、かろうじて IXH/IXL/IYH/IYL だけは追加でねじ込めれたけれど、
(一方で (IX)/(IY) の追加は "instruction PLA" のスペース不足で断念か)、すでにザイログ・ニーモニックを使った
開発環境の開発が進んでしまっていたため、機械語フォーマットの変更だけで手一杯で、構文修正を伴うような大幅な変更
(LD IXH,(IX+dd) とかができないので、単純に H/L の置き換えだけでは済まない)は見送られたためなのかもしれない。

繰り返しになるが、以上の話はあくまで俺の想像なので、真相はどうだったのかは分からない。

300 :ナイコンさん :2018/12/13(木) 10:54:06.12 ID:64Mn6FOG0.net
Z80の場合周辺チップがM1サイクル中のデータバスを常に監視して
ベクトル出したり割り込み処理終了を検出しなきゃならないから
しまった!と思った時はもう手遅れだったとか

301 :ナイコンさん :2018/12/14(金) 01:33:25.32 ID:jlSTDHdC0.net
詳しいね。トランジスタ数の限界で作れなかった(PLA)のでしょう。

302 :ナイコンさん :2018/12/14(金) 15:06:43.35 ID:HHy4snt30.net
4byte語長だと遅くなるしロードストアのアドレッシングのみにウエハの面積割く位なら
掛け算命令追加したり当時普及したDRAMと接続しやすいようコントローラつけたり、
裏レジスタ設置してpush/popを避けるほうが良いと思う。
LSIの製造コスト小さくしてCMOS化したほうが低消費電力にもなると思うよ。

ソフト的には8080主流なので、互換性維持したほうがセールしやすいだろうし、
開発環境も8080用なのであえてロードストアだけZ80特有の命令使う事は無いだろうし。
高級言語ではスタック渡しも多いのでレジスタ直交的なアドレッシングは使わないんだよね。
LD IXH,(IY+dd)のようなポインタのポインタみたいなの使わないんじゃないかな。

303 :ナイコンさん :2018/12/15(土) 06:42:07.80 ID:RaoNNVgt0.net
うちの職場、今年最後の産廃が終わってしまった。
まあ産廃箱の基板(古いCPUのってる)拾っても、それ使う頭ないけどな(´・ω・`)

304 :ナイコンさん :2018/12/15(土) 06:46:38.29 ID:RaoNNVgt0.net
>嶋
昔「わが青春の4004」って副題の本読んだけど元ネタはそれかな?

記憶確認のために読み返そうと思ったけど、
古書の出物少ないし出物あっても高価なんで確かめようもない(´・ω・`)

305 :ナイコンさん :2018/12/15(土) 06:54:37.81 ID:RfF/KKxxa.net
そういう時こそ図書館を活用するべきだろう。

306 :ナイコンさん :2018/12/15(土) 10:04:54.77 ID:yx164FWu0.net
>>299
とても面白い考察ありがとう、少しだけ感動したw
確かに、DD,FD系の基本が CB系に通用しないのがずっと謎だと思ってたし、
ED系も謎の空白があるのは謎だった。
でもそこまで深く考えた事はなかったので、とても面白く読ませてもらいました。

307 :ナイコンさん :2018/12/15(土) 13:15:11.47 ID:QGiFQZE+a.net
割込みモード2だっけ?
使ったことないんだよな。

308 :ナイコンさん :2018/12/15(土) 13:51:12.64 ID:yx164FWu0.net
>>307
割込みモード1だと割込みベクタが0038hに固定だけど、割込みモード2を使うと
別のアドレスにズラす事が出来ると気付いてから、たまに使うようになった。

309 :ナイコンさん :2018/12/15(土) 19:19:37.80 ID:ry4GFT+a0.net
>>306
謎の空白の中には、命令として実装した後で何かあって削除してから発表したものも多分ある
OUT (C) 命令でアドレスバスに(BC)として16ビットアドレスが出力される件みたいにさ

310 :ナイコンさん :2018/12/16(日) 22:46:09.93 ID:PzbcfxzY0.net
>>307
Z80のアセンブリ言語(機械語)を知っていて、それを使わないとは勿体ない。

311 :ナイコンさん :2018/12/18(火) 19:39:19.14 ID:byhiqfII0.net
冬休みの中学生はCでエミュレータ書いてみよう。

312 :ナイコンさん :2018/12/18(火) 21:15:55.78 ID:WFFz8vCla.net
Java、C#、ExcelVBAだろ、中学生に書かせるなら

313 :ナイコンさん :2018/12/18(火) 21:17:20.28 ID:sDBuav6j0.net
>>311
エミュはボケマジ化な退職者しごとでしょ。
中学生ならPython@ラズパイでdeep learningしいぇみてよ

314 :ナイコンさん :2018/12/18(火) 23:00:02.08 ID:Lzb31aVO0.net
>>313
前途ある若者になんでそんな罰ゲームさせんだよ
ディープラーニングの末端コード書くのなんか土方の仕事だろ

315 :ナイコンさん :2018/12/18(火) 23:02:07.48 ID:RZ2Xv/zN0.net
インタプリタ好きなら、今はPythonだよね〜!

316 :ナイコンさん :2018/12/19(水) 08:25:25.70 ID:Iycbr4LL0.net
>>314
中学生はドカタじゃないよ! キリッ!
ゲームや趣味領域やお勉強の領域でね。

職業マに堕ちたらお終いということをまず教えないとねw

317 :ナイコンさん :2018/12/19(水) 13:59:47.99 ID:0SUZL+40d.net
第5世代コンピーター。。組合せ爆発。。。未踏プロジェクト。。。うっ頭が

318 :ナイコンさん :2018/12/22(土) 18:52:57.41 ID:xF7X2hJg0.net
>>296
なるほどね、そういう側面もありえたかも。

8080は3電源かつノンオーバーラップの2相クロックという仕様なので、Z80と比べたら
トランジスタレベルでは別物に見えるとしても、ブロック図レベルではかなり近い相似形
な感じっぽいし。ま、アーキテクトが同じでオブジェクト互換なら嫌でもそうなるか。

上で挙げられたblogの詳細なブロック図のお陰で色々判ってきて面白いよ。

例えば INC HL の所要CLK数をみてみたりとか。
インクリメンタ・デクリメンタを色々なところから使い倒そうとして、かつトランジスタをケチ
った構造にするためにlatchの入力のところで双方向BUSを形成したことでPCのインクリ
メントに2CLK、続いてリフレッシュカウンタのインクリメントに2CLK。
通常の命令ではリフレッシュサイクルの2CLK目、M1サイクルの4CLK目から内部動作を
オーバーラップさせる目論見なんだろうけど、肝心のインクリメンタが塞がっていてリフレッ
シュサイクル終了まで待ちになって、その後にHLのインクリメントに2CLK。
通常の命令なら内部実行と次の命令のOPコードフェッチをオーバーラップさせるんだろうけど、
その際PCのインクリメントに必要なインクリメンタが塞がっているのでそれも出来ず、全部の
動作をシーケンシャルに実行して、それらの合計が6CLK。

対する8080では INX H は5CLK(かな?)、リフレッシュサイクルのせいでZ80の方が1CLK
余計にかかっている。
これも「いや〜、8080より遅いですしぃ」って言い訳の一つだったりするなら面白いな。

319 :ナイコンさん :2018/12/22(土) 19:26:31.43 ID:wox+0E/a0.net
うーん、うったえられたとき対策って後付け言い分けのような気もしなくはないかなあ

8080比で命令数激増とレジスタ増量でトランジスタ数が増えすぎて、どっかで回路規模を削る必要に迫られたのでALUを小さくしただけじゃないの?

320 :ナイコンさん :2018/12/22(土) 20:57:33.02 ID:xF7X2hJg0.net
ALUを4bitにしても、実はあまりチップ面積は減らなかったりするかも。
例のblogのインクリメンタ/デクリメンタの記事の冒頭にチップ全体写真が載っている
けれど、その中で"ALU logic"とあるのが4bit ALUを複数クロックに亘って駆動する
ステートマシンだろうね。これは8bit ALUなら基本的に不要。
それと、4bit化したせいでALUとあるブロック中の随所に入れざるを得なくなった
latchも不要。
さしてチップ面積縮小には寄与していないと思うよ。

そのせいで負うことになった性能上の不利に比べたら割に合わないと思うし。

「クローンを作るならALUを4bitに制限しろ」って言われたという方が説得力あるかな。

321 :ナイコンさん :2019/01/10(木) 23:50:56.64 ID:noTanJtp0.net
CPUよりもメモリ売りたかったintelが訴える可能性ってあったのかな
文句言わなそう

322 :ナイコンさん :2019/01/11(金) 18:26:31.84 ID:pC37QlDA0.net
チップセットよりCPUを売りたがっていた頃の、まだチップセットがCPU販促アイテムみたいだった時期でさえ、Intelは互換チップセットのベンダーに、法廷闘争含めた執拗な攻撃をしただろ

323 :ナイコンさん :2019/01/11(金) 18:42:26.07 ID:mbsyfR+zr.net
チップセットメーカーが力つけ過ぎて支配される前に排除したのはインテルの立場なら正しい判断思うが

324 :ナイコンさん :2019/01/11(金) 21:51:51.54 ID:pC37QlDA0.net
チップセットよりかCPUのほうが利益率が圧倒的に大きいから、利幅の小さいチップセットはライセンス料だけ取って他者に任せる方がいいんじゃないかと思う(第三者だから思うだけだが)んだがなあ

だいたい、互換チップセットは安いだけで性能が低かったしな
メモリアクセスのレイテンシが大きかったりアドレス変換テーブルのキャッシュサイズが小さかったりしてメモリアクセス遅かった。

325 :ナイコンさん :2019/01/24(木) 21:42:28.11 ID:9700It+L0.net
socket7からslotへの移行時に、互換チップセットにAGP対応socket7チップセット作られて、移行が遅れたとか
i820の時、Rambusへ誘導しようとしたけど、SDRAM対応チップセット作られて失敗したとか
intelは痛い目見てるんで

それと、古くなったFabに作らせて、Fab稼働率を上げるという作業もあるんで

326 :ナイコンさん :2019/01/25(金) 00:52:48.33 ID:WDpFSKKy0.net
市場が求めてるものと違うものを強引に普及させようとしたから失敗したんだろ

そんなこと、それ以前にIBMだって失敗したわけじゃん、なんでIBMにできなかったことをIntelなら成功させられると思い込んでたんだろうな。

327 :ナイコンさん :2019/01/31(木) 18:51:14.93 ID:nqS7ahKtd.net
スタックポインタを
システムとユーザーの2つ持つ方式と
フレームポインタを別に持つ方式とを
比較したら
思想の違いが面白いと思った今日この頃

328 :ナイコンさん :2019/01/31(木) 19:34:22.57 ID:1Ji+tF8j0.net
VAX?

329 :ナイコンさん :2019/02/16(土) 23:21:45.96 ID:zaK1bs95a.net
ユーザスタック、システムスタック、割込み処理用スタックを持ってるCPUもあるよね。

330 :ナイコンさん :2019/02/16(土) 23:45:14.50 ID:eKDW+/u00.net
68020とかか

331 :ナイコンさん :2019/02/17(日) 12:40:24.08 ID:mwtxEAfg0.net
ARMもスタックポインタ複数型だね
ARM cortex-Mだとメインスタックポインタとプロセススタックポインタの2つ。SSPとUSPに近い感じだろうか

332 :ナイコンさん :2019/02/17(日) 18:08:31.91 ID:kqx+imUe0.net
モトローラは6809からUSPあったな

333 :ナイコンさん :2019/02/17(日) 19:29:27.97 ID:RzCV7gj70.net
333

334 :ナイコンさん :2019/02/18(月) 13:10:35.29 ID:dC0VH6OR0.net
Wikipedia見てちょっと混乱してるんだけど、65C02とWDC 65C02とW65C02Sって完全に同じものなの?

Programing the 65816 including the 6502, 65C02, and 65802って本には
"65C02は6502のCMOS版としてWDCで設計したのじゃよ"
”65C02の追加命令は(アドレッシングモードの拡張を除けば)BRA PHX PHY PLX PLY STZ TRB TSBの8種類で全部じゃよ?"
"RockwellのR65C02は、それが悪いとは言わんけど、独自追加されてるRMB SMB BBR BBSのせいで65C02や65802/65816との非互換を抱えているので、アペンディクス送りにしたのじゃよ”
てな感じの事が書かれてるんだけどさ

W65C02Sデータシートを見るとRMB SMB BBR BBSに加えて65802/65816で追加されたSTPとWAIもあることになってるんだ(ニモニックだけでなくオペコードも同じ)
じゃあ、65C02とW65C02Sは別物って事??
でもWikipediaにある日本語版のWDCのページではW65C02Sが1978年に開発されたって書いてあんのよね
じゃあ、65C02とW65C02Sは同じものってこと??

詳しい人いたら本当のところを教えて、お願い・・・

335 :ナイコンさん :2019/02/21(木) 17:42:59.65 ID:6oKDneLv0.net
拡張命令が問題の場合本家を尊重するだろうね本家の命令セットのみを使っても
不具合あるなら別物だろうねここの暇人たちのリソースも有限だからな質問に応える
メリットがあるならば答えてくれるかもね聞いて終わりですか

336 :ナイコンさん :2019/02/21(木) 20:30:07.39 ID:totusu7u0.net
追加された命令を装ってるけど本当は未定義だった命令を動作通りにオペコードを与えただけかもしれんしなあ

337 :ナイコンさん :2019/02/22(金) 08:18:29.44 ID:XMPLKbBg0.net
65C02の時に未定義部分は意図的に全てNOP動作にしたという話なので
65C02でNMOSな6502の隠し命令は65C02では動かない
となると、本を信用するなら、Rockwell R65C02の命令は65C02では動かなかった、ハズで

Apple //eとかで65C02の実物を当時実際に使ってた人がいたら
”そこらへんのトコ、どうなんですかね?”と聞いてみたかったんですが
もしかして、その、6502って日本では通りすがりにポロッと情報が出てこない程度には
マイナーだったりするんですかね?(汗

今でも簡単に手に入るW65C02S系列(W65C02S、W65C134SとかのS付きなやつ)ではR65C02のスーパーバージョンとして
x7とxFの列にR65C02のビット操作命令が詰め込まれてるんで、それらが乗ったボードで遊ぶ分にはスーパーバージョンとして使えばいいんですけ
でも、65C02向けに書いたつもりのプログラムが、現役当時の石では動かない可能性があるなんて、ちょっと悲しいじゃないですか

338 :ナイコンさん :2019/02/22(金) 12:23:02.04 ID:ogBMbi6o0.net
Apple|| とか、当時の値段で軽く30万円越えてた(日本で)と記憶してるな
この値段じゃ、持ってたヤツの数もたがが知れてるだろ

だから、オリジナルの6502 or 派製品(Rockwll/WDC/etc) を弄る機会が有ったヤツが 多数いたとは思えない
日本で6502系といったら、 ファミコン & PCエンジン の方になっちう
こっちなら、ユーザーも多し、詳しいヤツもいるだろ

どれでも動くようにしたければ、拡張された命令の類は一切使わない
Rockwell と WDC とで C02 を作ったときに 異なる実装してしまったんだから
それについて、今更あれこれ言ってもしょうがない

339 :ナイコンさん :2019/02/22(金) 12:27:14.38 ID:o1pc46nlr.net
ファミに6502を採用された理由がマイナーだったからだしな

340 :ナイコンさん :2019/02/22(金) 12:57:52.97 ID:ipMOFEBb0.net
>>339
えっそうなの?
リコーがライセンス持ってたからかと思ってた

341 :ナイコンさん :2019/02/22(金) 16:25:43.21 ID:s1mW31Kn0.net
わざとマイナーなCPUを採用することってあるよね。アーケードのV70とか。

342 :ナイコンさん :2019/02/22(金) 18:45:33.96 ID:to+vWzA8M.net
>>341
それはバイナリ改ざん防止だな

343 :ナイコンさん :2019/02/22(金) 19:40:01.53 ID:ipMOFEBb0.net
うーん
Apple、VIC/C64、PET とだいたい6502じゃね?
メジャーじゃね?

日本製のマイコン(パソコン前時代)は6502採用なかったね
だいたいZ80/68だよねえ

344 :ナイコンさん :2019/02/22(金) 19:46:48.60 ID:X4p48TEZM.net
アーケードのV70使用って、デッドコピー基板対策でしょ。
当時学生だった俺にもデータシート入手出来たくらいだし、
バイナリ提示されればいくらでも改竄なんて出来たよ。

345 :ナイコンさん :2019/02/22(金) 22:20:15.17 ID:to+vWzA8M.net
>>344
逆アセンブルできる技術者が少ないから標的になりにくいだけってことだな

346 :ナイコンさん :2019/02/22(金) 22:30:18.80 ID:/e4eo06s0.net
>>343
それアメリカの話
日本じゃどマイナーだよ
当時aplleIIなんかの輸入品の超高級PCなんて持ってる人は金持ちか好事家くらい

347 :ナイコンさん :2019/02/22(金) 23:00:37.54 ID:EzwM6uro0.net
>>340
正しい!
任天堂は使い慣れた80系にしたかったがコスト重視でリコー案を飲んだ。その後に後付けの理由が出てきた。

総レス数 961
275 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200