究極の8ビット機を妄想するスレ Part 11
俺レギュレーション
加減乗除論理演算に関わらないレジスタやシステムやビデオやI/Oバス幅は無制限
ようはCPUだけ8bit妄想なんだから好きにやれよ
マジカルDMAはビット操作や論理演算可能であるが性能と使い勝手を優先し規制対象外 OSが8bitならCPUが16bit以上でも構わない(8bitモード以外でコーディングは禁止
だがメモリー参照やハードを叩くのに一部止むなく使うのはおけ
基本システムコールやデバドラに任すべし
例)
スーファミを6502モードで使う
ワンダースワンをZ80モードで使う
メガドラをZ80で使う core iに仮想80モードとか仮想09モードとか仮想6502モードとかがあれば良い気がしてきた ごめん8080モード無いのねてっきりGBその他からの移植のために付いてるもんだと CPU Z80 100MHz
メモリバス 32ビットに拡張
VDP 安いグラボチップを使う
これでいいなもう メモリバスは8ビットのままでいいんじゃね?
32ビットアクセス前提のデバイス使うんでなけりゃ8ビットのままなのが小回り効きそうな気するし。 メモリーバスはビデオ周りDMAストレージが絡むからそれら優先でいいんじゃないの
将来にボトルネック残してもしょうがない
既存ワンボードマイコンにてんこ盛り拡張するならそれらに依存するしかないし
設計次第で変わってくる設計者の任意だね v9958でいいじゃん
VRAMも192k乗っけて >>14
> 将来にボトルネック残してもしょうがない
将来?w んなのはレトロマシンで普通にやってればいいし全然究極ではないな
でも徹底的に限界まで叩きたい気はする
カラーバスでVRAM直書き換えってどうやんだろググっても出てこない
誰か言ってたような気がするが俺がミスリードしてるのかもしれんが 将来FPGAで64bit一括リードする互換CPUや8bit以外にも転用出来ればいくない? メモリバス32ビットって、8ビットx4列?
マップドI/Oなデバイスのレジスタが4バイトおきにでてくるが、そういう設計はどうなんだろう? バスコントローラ内でa0-a2で1バイトが選ばれるから普通の8bitバスに見える
ポートの方もa0-a2使って1バイトづつマッピングすればいい ああ出力時に1バイトでも32-64bit書き込まれるのかそいつは困ったな メモリーコントローラーから見れば下位3bit無効で64bit書き込まれるけど
I/Oデバイス選択にa0-a2がくれてあるのでキッチリ選択されるな メモリにしろI/Oにしろアドレス空間狭いからギチギチに詰めたほうが良い、と言う考えかたなのかな?
DOS時代に奇数アドレスと偶然アドレスで別々のデバイスのせたの見たことあるんだけど。
デバイスAが00h,02h,04hを、デバイスBが01h,03h,05hを使う、みたいな割り振りだった。
コントローラがプアだったからかな? 8bitは80系なら256しか無かったりその他はメモリーマップだったりでケチる必要が
といっても必要なI/Oはそんなに無い気もするけどね
なんかごく稀に途中送信するなすまんこ まあ今更けちる事ないからアドレスはフルデコードにすればいいんじゃないの >>24
>DOS時代に奇数アドレスと偶然アドレスで別々のデバイスのせたの見たことあるんだけど。
>デバイスAが00h,02h,04hを、デバイスBが01h,03h,05hを使う、みたいな割り振りだった。
NECのPC-98シリーズやね
16bitバスに8bitデバイスをぶら下げるのに偶数奇数で割り振るとハード設計的に好都合だったらしい
その代償としてソフト的には飛び飛びのアドレスになってしまった
しかも初期の98シリーズではI/Oアドレスは00h〜0FFhの256バイト空間のみ、という手抜き設計だった(8bitデコード。アドレスの上位8bitは単純に無視される)
流石に拡張性に支障をきたしたので、途中の98シリーズからは一部のデバイスのみ12bitデコードになった >>28
> 16bitバスに8bitデバイスをぶら下げるのに偶数奇数で割り振るとハード設計的に好都合だったらしい
> その代償としてソフト的には飛び飛びのアドレスになってしまった
バイト毎にアクセスできるようにするにはIO側の8bitデータバスをシステムバスの上位側につなぐ必要あるから当時の16bitバスマシンで飛び飛びになってるのは珍しくないよ
68000はmovepと言うそのための命令まで作ってた
32bit時代になるとダイナミックバスサイジングが普及してそういう苦労をしなくても良いようになったけど