X



トップページ昔のPC
72コメント24KB
究極の8ビット機を妄想するスレ Part 11
0001ナイコンさん垢版2019/10/19(土) 08:32:43.74
できるだけ実在するデバイスのみで、究極の8ビット機を妄想してみよう。
ただし現状のPC界を見てもわかるとおり数値的なスペック追求のみでは無意味と知れ。
お前らの妄想力&創造力に期待する!

前スレ:
究極の8ビット機を妄想するスレ Part 10
https://matsuri.5ch.net/test/read.cgi/i4004/1566789025/
究極の8ビット機を妄想するスレ Part 9
https://matsuri.5ch.net/test/read.cgi/i4004/1564217758/
究極の8ビット機を妄想するスレ Part 8
https://matsuri.5ch.net/test/read.cgi/i4004/1562275959/
究極の8ビット機を妄想するスレ Part 7
https://matsuri.5ch.net/test/read.cgi/i4004/1560227682/
0023ナイコンさん垢版2019/12/28(土) 01:35:26.27
天才プログラマの >>20 が居ると聞いて、飛んできました!!
確かに!
確かに割込みかかる度に裏レジが破壊されるようでは、裏レジは使い物になりません!!
0024ナイコンさん垢版2019/12/28(土) 02:17:31.27
>>16
ここに Z80 のダイの写真がある
http://www.righto.com/2014/10/how-z80s-registers-are-implemented-down.html

オレンジの枠で囲った部分がレジスタ・ファイルなんだが、こいつがダイの結構な面積を食っている事が分かる
さらにオレンジの枠を拡大した写真の中で AF/BC/DE/HL と書かれている部分は、実際には表レジスタ・裏レジスタのペアに
なっている訳だから、拡大写真の縦に等間隔で並んでる筋6本中の2本分の領域を裏レジスタだけで食っている事になる

また、記事の下の方にある回路図を見ると、レジスタの1bitを記憶するのにトランジスタ4個+抵抗2個が必要だと分かる
つまり裏レジスタの AF',BC',DE',HL' の為にトランジスタ256個+抵抗128個を費やしている計算になる
(さらにEXA,EXX命令用の処理の為のトランジスタも別途必要になるので、もっとコストが掛かる)

ちなみにZ80全体のトランジスタ数は8200個だそうだから、裏レジスタ関連だけで3%〜4%のトランジスタを消費している計算になる

それだけのコストを掛けて実装されている機能を、単なるノリで追加した、と考えるのは浅はかすぎる
0025ナイコンさん垢版2019/12/28(土) 03:05:15.37
日本でこんな内容のブログ出したらアウトだぞ。
日本ではリバースエンジニアリングは違法だからな。
0026ナイコンさん垢版2019/12/28(土) 05:43:37.67
割込みでないレジスタ退避に使うならまだ判る。
しかし「割込みのレジスタ退避に使います」は重割込み禁止、割込み以外で裏レジ使用禁止って縛りがついて使い勝手悪すぎる。
8086のPUSHA・POPA相当の命令のほうがよっぽど役に立つ。
0027ナイコンさん垢版2019/12/28(土) 07:04:11.82
>重割込み禁止、
普通割り込みの頭にDIじゃね多重割り込み可能なシステムって知らない

>割込み以外で裏レジ使用禁止
割り込みの時に表が破壊されないってだけで裏も使用可でしょ
どーしても自前ルーチン内で使いたいときは割り込み禁止で裏の破壊を防止すればいい
0028ナイコンさん垢版2019/12/28(土) 13:59:40.05
退避コストを減らしたい処理はどこかと考えるとリアルタイム性が要求される処理。
退避コストが問題ならないならどう裏レジスタ使っても問題にならない。
0029ナイコンさん垢版2019/12/28(土) 18:37:26.18
Z80は物凄くメモリーが遅い前提でのCPUだしな
裏レジスタは超遅いDRAM前提だと解釈すると理解しやすい
0030ナイコンさん垢版2019/12/28(土) 19:51:45.67
>>25
> 日本ではリバースエンジニアリングは違法だからな。
どこの日本だよw
0031ナイコンさん垢版2019/12/28(土) 21:00:52.24
8080/Z80 の PUSH BC 命令の実際の挙動
 SP + 0FFFFH ⇒ SP
 B ⇒ (SP)
 SP + 0FFFFH ⇒ SP
 C ⇒ (SP)

8080/Z80 の POP BC 命令の実際の挙動
 (SP) ⇒ C
 SP + 0001H ⇒ SP
 (SP) ⇒ B
 SP + 0001H ⇒ SP

これじゃあ、クソ遅いに決まっている

一方、EXA/EXX命令なら、T型FlipFlop を1回叩くだけ、やからな

その差は歴然だ
0032ナイコンさん垢版2019/12/29(日) 05:31:11.22
数バイトのデータをOPNに送るのにもめちゃくちゃ時間かかるからなw
0033ナイコンさん垢版2019/12/29(日) 08:52:07.33
走査線割込みでこなそうとすると1クロックでも無駄に出来ない
0034ナイコンさん垢版2020/01/02(木) 10:38:43.29
走査線割込みがある機種ってどんだけ?
0035ナイコンさん垢版2020/03/14(土) 13:31:31.22
> 日本ではリバースエンジニアリングは違法だからな。

上の人とは別だけど、似たような事は普通にやってるよ。国内でも海外でも。
今だと中国製のスマホのチップを分解している記事あるでしょ。
0036ナイコンさん垢版2020/03/14(土) 13:55:33.30
走査線割り込みだとpush/popは厳しいだろうな。
任天堂のファミコンだと走査線割り込みで画面効果出して本来の機能にはない描写を
ゲームに持たせてるものがあるが6502は早いので走査線割り込みには適してる。
Z80だとカートリッジに割込み支援ハード等がないと難しいかもしれない。

海外のAmigaのような16bit世代になるとGPU部分にコプロセッサが付いている。
といっても予めコードを配置しておいて垂直同期割り込みなどのイベント駆動で呼び
出され実行される処理なので分岐処理などはなく完全なCPUではないが。
走査線割り込みなどはNTSCのビデオ信号と完全に同期した処理になるのでシーケンサ
で十分な訳。
今だとTIのBeagleBoneに積んでるチップに似たようなコプロセッサがある。あれは
リアルタイム処理の補助用のコプロセッサだが。
Playstation世代になると今のGPUに近くなる。CPUが走査線気にする必要はない。
0037ナイコンさん垢版2020/03/31(火) 00:08:38.60
走査線割込みがある8ビットCPUのシステムがどんだけあるんだろうねぇw
タラレバなネタでマウント取りたいだけちゃうんかw
0038ナイコンさん垢版2020/07/15(水) 21:39:56.90
8bitマシンで256dot以上ってどうやって扱うんですか?
0039ナイコンさん垢版2020/07/16(木) 08:01:56.17
8bitだからといって16bitが扱えないわけじゃない
0040ナイコンさん垢版2020/07/16(木) 16:00:41.30
外字な回答するやつは何処にでもいるんだなぁ
0041ナイコンさん垢版2020/07/16(木) 23:20:26.05
8bitマシンで256byte以上ってどうやって扱うんですか?
0043ナイコンさん垢版2020/11/24(火) 11:40:07.88
>>41
アドレス関係のレジスタは
16ビット長な事が多い。
カウンタなんかは、レジスタや
バイトメモリをペアにして使って、
16ビット長で使ったり。

6502みたいにスタックポインタが
8ビットとか言うキッツい縛りの
チップもあるけど。
0044ナイコンさん垢版2020/11/25(水) 00:32:13.25
16bitマシンで256kilobyte以上ってどうやって扱うんですか?
0045ナイコンさん垢版2020/11/25(水) 10:40:18.42
16bitで表現できる数は最大65536
つまり、最大64KBしか扱えない(1024を64倍すると65536になる)
なので64KB以上のメモリを扱いたければ、バンク切り替え、セグメントなどを使うか
アドレス関係のレジスタを32bitにして扱うことになる
セグメントを使うようにしたのが8086でレジスタを32bitにしたのが68000

アドレス関係のレジスタを32bitにするとより多くのトランジスタが必要になり
CPUの規模が大きくなってしまう
最近のマイコンなどでは集積度が上がりすぎてトランジスタ数の制約があまりなくなってきてて
64KB以上のRAMを扱う用途だと32bitマイコンを使うようになってきてる
マイコンはプログラムを格納するROMとデータ部分のRAMに分かれてて
16bitマイコンでもROM部分は64KBを越えるものも珍しくないが
データ部分のRAMは64KB以内のものがほとんど
16bitのマイコンはアーキテクチャ上データ部分は64KBしか扱えないものが増えてるし
実際の16bitマイコンも64KB以上のRAMを実装してるものは極僅か
0046ナイコンさん垢版2022/04/16(土) 18:12:29.37
98はゴミ
0047ナイコンさん垢版2022/07/12(火) 21:52:01.29
X68ピーコ太郎さんがこんなところにも!
0049ナイコンさん垢版2022/08/09(火) 08:27:19.40
X68000をMC68008に変えたら究極の8ビットパソコンだろw
0050ナイコンさん垢版2022/08/09(火) 09:24:37.54
>>49
そんなんでいいなら8bit PCに68008カード載せたらいいだけやん
0051ナイコンさん垢版2022/10/19(水) 09:14:20.18
そうなの?
0052ナイコンさん垢版2023/03/05(日) 08:33:29.14
そーなんですよ
0053ナイコンさん垢版2023/03/05(日) 09:58:10.54
むかーし、むかし
MZ-2000にはー
MZ-1M01というものがあったんだと

(日本昔ばなし風に)
0054ナイコンさん垢版2023/03/14(火) 04:46:59.47
>>53
元々のZ80を取り外してボード繋ぐのに、Z80がI/Oプロセッサとして残るって、デザインが悪すぎた
8088だけで動くモードとZ80だけで動くモードと、行き来できるように作るべきだろうに
0055ナイコンさん垢版2023/12/12(火) 14:14:01.75
妄想なぞせんでも究極の8ビット機はFM11AD2+と決まっている
0056ナイコンさん垢版2023/12/31(日) 01:19:41.47
>>16
裏レジスタ → 補助レジスタ
>どの時点においても交換命令を用いてどちらかの側のレジスタ群を作業用として使用することができる。
>システム内で高速の割り込み応答が要求される場合、この手法を使ってアキュムレーター、フラグ類、汎用レジスタ群の内容を他方へ素早く待避させても良いだろう。
>交換命令を用いるだけでルーチン間の移行が行える。
>割り込み、サブルーチン処理の期間、スタックへ移したり、戻したりする必要がなくなるので、割り込みサービス時間を大幅に短縮

>どのような幅広い用途に対しても利用し得るものである。
>単純なプログラム、とくにROMベースのシステムなどで、簡単な読み出し/書き込みメモリが必要な場合に、汎用レジスタで代用すれば良い。
シャープMZマニュアルに付属するCPU参考資料に書いてあった

EEPROMライターで27256など32KBを丸ごとバッファリングする関係で外部RAMは一切使えない
裏(補助)レジスタを用いてスタックは積まないしサブルーチンのコールも行わず頑張ったとロムライターキットに書いてあった気がする
0057ナイコンさん垢版2024/01/03(水) 21:57:04.10
>>16
>>裏レジって作った連中は使い方を想定してたのか?
yes
割り込み時に使用する使い方を想定していた

>>「あれば便利じゃね?」ぐらいのノリで作ったんじゃないかと思うんだ。
いいえ

>>有効なレジスタを表裏で入れ替える命令、じゃなくて、表と裏の値を入れ替える命令しかないからそう考えてるだけだけどさ。
表と裏の値を入れ替える命令しかないのは
割り込み時の最初で全部ひっくり返して戻る時にまた全部ひっくり返す
そうした使い方をするためだけのもの

有効なレジスタ云々は、裏レジスタなどアテにしないでメモリやPUSH & POPを活用してください

>>20
>>割込みのたびに裏レジ壊されるんじゃ、裏レジ使えないじゃん。
そうです
表のコーディングで勝手に使わないでください
割り込み時に使用するため 「だけ」 に用意したレジスタセットです
割り込み処理以外に勝手に使わないように

>>そんなら裏レジないほうがましじゃん。
割り込み時に使用する時はあるとマシマシです
0058ナイコンさん垢版2024/01/04(木) 00:00:46.63
裏レジスタが割り込みで使うと便利なのは知ってるけど
多重割り込みかかったらどうすんの?って40年位思ってる
0059ナイコンさん垢版2024/01/04(木) 01:58:22.72
多重割り込み全部が裏レジスタ使わなきゃならないほど速度を要求されても、
それじゃ結局は間に合わなくなる
割り込み禁止したまま処理終わるのだけ裏レジスタ使い、
割り込み処理と言っても多重割り込み許すのは裏レジスタは使わない使い分けでは
0060ナイコンさん垢版2024/01/04(木) 08:36:16.64
割込み中はその場で処理しなきゃいけないことだけ処理するってのは基本中の基本だけど
RTOSのタスク管理、メッセージ管理みたいな感じに割込みとそれをトリガーにした処理が分離したつくりにでもしないと割込み処理で全部やりたくなるよね
0062ナイコンさん垢版2024/01/07(日) 13:31:07.43
>>60
割り込み処理と割り込みをトリガーとしての処理ルーチンは繋がってても分けて作ってるような

割り込み開始時の割り込み禁止状態で裏レジ切り替え
割り込み禁止されたままの処理部分
裏レジ戻してから割り込み許可
多重割り込み可な割り込み継続処理

ってな
多重割り込みされては困る割り込み禁止なまましたい処理のような速度を要求してる部分だからこそ、
レジスタ退避時間すらも惜しくて裏レジ使う
裏レジ使ってる間に更に多重割り込みで裏レジ使おうとしたら表レジでしかないからさせる訳には行かない
0063ナイコンさん垢版2024/01/07(日) 17:41:26.60
割込み処理で裏レジ使ってて内容破壊するなら割込み処理以外では裏レジ使えないんだよな
0064ナイコンさん垢版2024/01/07(日) 20:14:42.47
使うなそんなもの
裏レジ使いたがる人ってBASICから入った人でレジスター = 変数 って発想なんだろ
だからレジスターが足りなくなって 「もっとレジスター使いたい → 裏レジ使えねーか?」 ってなってしまう
レジスターは変数じゃねぇ
メモリを変数として使うんだよ
0065ナイコンさん垢版2024/02/01(木) 11:53:17.57
裏レジ君、こんなところに居たのか。

それで、実際に割り込み処理に裏レジスタを占有するのでゲーム側で裏レジスタを一切使えないという、その仕様のアホらしさからその実在を根底から疑われている88用のFM音源ドライバというのは、具体的にどの市販ソフトで使われていたんだい?
0066ナイコンさん垢版2024/02/02(金) 16:29:30.98
まっ、作り方は人それぞれ
やりたいようにやれば良いのさ
ちゃんと動けばそれが正義
0067ナイコンさん垢版2024/02/02(金) 20:02:53.66
動くとも思えないし、なにより実在するという話なので、そんな馬鹿な実装を実現したソフトや開発者がいるなら晒…もとい、日に当てて広く知らしめなければねぇ
0068ナイコンさん垢版2024/02/02(金) 22:38:14.60
何の話かよくわからんのだが元々このスレで出た話?
それともどこか別のスレでの話?
0069ナイコンさん垢版2024/02/03(土) 21:22:31.95
以前よそのスレでバカが実在すると言い切った、Z80の裏レジスタを活用したという、88系用のFM音源ドライバ
FM音源の割り込み制御は、いくら4MHzのZ80でもレジスタの待避に汲々とするほどシビアなタイミングは要求されないので、その場でもデタラメだと総ツッコミだったが
彼曰く、PC8801系向けの市販ソフトで実装例があるのだという

追及したがそのまま逃げられた…と思ったらここで同じ事言ってるキチガイを見かけてしまったので、ああコイツは本人だろう…と。
0070ナイコンさん垢版2024/02/03(土) 21:24:27.03
実在するというならおれだって見てみたいよ、Z80の裏レジスタをFM音源ドライバが占有するという、狂った実装。
そんなバカげた構造をしていたソフトが本当に存在するなら、むしろ今となっては天然モノとしてもっと広く知られるべき。
0071ナイコンさん垢版2024/02/05(月) 09:29:39.17
8080からZ80になった頃はそんな使い方をしたりもしたけどもねえ
0072ナイコンさん垢版2024/02/05(月) 10:09:59.45
いつ壊されるかわからんレジスタなんか使えんわな
レスを投稿する


ニューススポーツなんでも実況