【8bit機】CRTC,VDP,ALU,メモリマップ,MMU 専スレ
64KBの制約の中、各社様々な工夫を凝らした
VRAMのバンク切り替え,MMU管理,I/O空間配置, 専用GPU
高速化のための 直線補完、サイクルスチール、プレーン同時書き込み
当時のマシン(PC,FM,X1,MSX等)のメモリマップのあり方、アクセス方法の技術について語ろう 15.6MHzの音か…
市役所に行って「聞こえるんです!」って力説すると税金免除されたり、
色々なものが割引になりそうだな >>586
初代プレイステーションはかなり違うと思うけど。
個人的に注目した点は、低コスト設計のためにMIPSのCPUバスをローカルに出してること。
(普通はARMのようにAHBとかCPU専用とI/Oに分けるのだがPS1はバス一本で済ませてる)
んで、その結果としてアドレスのオーバーレイが作られること。(メモリ速度の差や
キャッシュ動作をアドレッシングで分けるのね)。それでキャッシュなしにして
低コスト化してる。PCでは考えられない設計。
おもちゃだから良いのだけど、かなり低コスト化しているなと思った。
GPUは今のと変わらないけど設計はVDPとはかなり違うよ。 >>595 >>597
今にして思えば、テキストのドットアスペクト比とグラフィックのドットアスペクト比を変えてスーパーインポーズしてても良かったろうにな
テキストの80x25は大正義だったからコスパの良い640x400が主流なのは仕方ないが、グラフィックは正方形ピクセルが欲しかったんだし
8:7でテキスト部分のグラフィックは560だけにしてテキストよりも一回り広い576x432とかで >>609
液晶画面にドットバイドットで映せなくなる致命的問題が... 英語圏のパソコンで640x400の解像度を持つものって極端に少ないよね。
有名なのだとOlivettiやT3100あたりしかない 海外製のビデオカードの640x350なんていうモードがあったとは思うが。 日本はなんでもかんでもガラパコスに篭るのが好きだからしょうがないね
昔はそれでもやっていけたけど今はそういう時代じゃないから世界に取り残される 今はそういう時代じゃないから世界に取り残される
だから日本はもっと海防に力を入れるべきだ 今時のASIC製造なんて大したコストじゃないんだからガラパゴスを追求してもええ
FPGAで書き換えを許容してもええ 炊飯器とか自動車とかガラパゴスで大成功してるじゃん 成功すれば「ガラパゴス」じゃないんだよ 、たぶんw >>610
液晶画面が使えるような時代になったら、もっとROMフォントにもコストをかけるべきだったろう
サブピクセルレンダリングで横3倍ドットやグレースケールレンダリングやらを
何で何時までもあんな低品質な文字のままだったのだろう グレースケールフォントはもっとやっても良いと思った。
IBMもNECもやらなかったけど。
コモドールのパソコンだとグレースケールフォント(4階調)できるものがあるけど、
フォントサイズが4x8になるので誰も使わなかった >>622
初代NeXTはジョブズの拘りに依り64bit gray scaleやで(笑) >>626
Mac
印刷業務も視野に入れてOS設計してた ザイログがZ80VDPを出して
TMS9918を駆逐してほしかった >>611
81年のCGAが縦200、84年のEGAが縦350。
EGAの互換ボードだといくつか400モードを持つものもあって、ノートだと24kの外部モニタいらないからそれに相当する機能を含んだ機種もあった。 >>630
80系はまともなCRTCさえなくてザイログ教のX1シリーズでもMC6845を使ってたくらいだから。 セガマーク3のVDPみたいに16bit化しないとどうにもならん YAMAHAの1981年からのグラフィック関連LSIの開発は凄い。 >>636
その反動で8801mkIISRという化物を顕現させてしまうんだから
どう転ぶかわからんな >>631
Hercules Graphics Card互換が流行ってて、720x348がデファクトスタンダードだった時代が有ったってのがな
一切残らないのが不思議って仕様見直してたら50Hzなのな
そりゃ残らんか IBMが決めた仕様以外のものは残らなかったね。
VGAがデファクトスタンダードになって、VGAはEGAとCGAの機能は
内包していたから。
Herculesは"Monochrome Display Adapter"のディスプレイと
互換性があるように設計されていた。MDAの出力は50Hzだった。
MDAはテキストモードのみで、テキストグラフィックがなかった。
Olivettiの640x400も50Hzです。
J-3100は分かりません。
EGAの640x350は60Hzです。
VGAの640x350は70Hzです。 CGAはNTSCビデオの周波数なので60Hz。
Commodore 128の高解像度モード(640x200)は米国は60Hzで
欧州は50Hzのようだ。 そういえばバブコム80はμPD3301積んでたな。
表示能力は8001と同じ。
640×200 8色のグラフィックボードはオプションでZ80のI/Oポート接続。
アタリと同じ型のDサブ9ピンコネクタを2つ持ち、おそらく日本で最初のジョイスティックコネクタ持ちのパソコン。
モノクロながら2KBのPCGを持ち256キャラクタ全部の再定義が可能。
あれ?CRTCはともかく、なんか1年半後のあのマシンに似てね? バブコム80の640×200 8色グラフィックってオプションだったのか
>>あれ?CRTCはともかく、なんか1年半後のあのマシンに似てね?
どのマシンだか素でわかりません BUBCOM80面白いね。
検索したら分解して基板写真をUPしているページが見つかったよ。
確かに名CHIP μPD3301D-2を載せてた。
それにしても、富士通が製造したとはとても思えないくらいの富士通製
ICの少なさよw よくこれ受託したな。
Z80周辺の信号もチラっと観測していて、500μs毎にBUSREQが
発生しているも用途は不明ってw きっと知ってるくせにw しがらみがないからなのか、部品は他社製のが安く使えるというのはときどき聞くな。 日本は縦割り社会だから社内の他の部署より他社の方が口が聞きやすいとかよくある グラフィックスがI/Oの向こう側ってのはPASOPIA(初代の方、7は知らない)もそうだね。
2個使いした8255がグラフィックス回路へのI/Oの全てを受け持つ構成っぽいね。
実機を持ってたわけじゃなくて、回路図見てるだけだから間違ってるかもしれないけど。 ハーキュリーズのMDAは、CGA/EGAとはVRAMのウィンドウアドレスが別だったので
大雑把に言うと単純に互換性が無かった
まあソフト側で対応するのは楽(マップアドレスが違うだけ)だったけど
あとVRAMのウィンドウが違うからCGA/EGA/VGAを叩くアプリとかの開発で
MDAにデバッガを表示するみたいな裏技応用もあった
TurboCやTurboPascalのデバッガが確かMDA対応
世間的にはLotus123でMDAの方が見渡せるセル数多くて捗る、とかか 台湾の漢字表示用には、720x348を640×408に設定して漢字を使えてたらしいんだよな
日本でも同じ画面モードを使って漢字を使ってりゃ良かったろうに >>657-658
ttps://www.disney.co.jp/content/dam/disney/images/studio/bd_ondemand/hero/54_Hercules_l.jpg
ttps://grand_order.wicurio.com/index.php?plugin=ref&page=%E3%83%98%E3%83%A9%E3%82%AF%E3%83%AC%E3%82%B9&src=04700.jpg
有名だろ >>657
人名だけどエルキュールも仲間に入れてあげてください。 88のビデオアートボードって、ビデオ機器との連携をしない時には
24KHz出力可能な設計にはできなかったのだろうか?
大半の88ユーザーは854n等の24KHz専用高解像度(懐かしい響きだ)
モニタしか持ってなかったはずから、導入のハードルが高杉。
320x200とはいえ、手持ちのモニタに32K色表示ができたらあの時代
喜ぶ人は多かったと思うのだけど。 それ以前に実用的な速度出せたの?
どうせ大半は拡張メモリとしてお茶濁してたとしか思えんな uPD3301ってあれインテル製のCRTCのパクリではないのか
Application Manualないなーと調べたらintel製のマニュアル詳しく書いてるし
DMAもインテルのチップセットのパクリだろうし >>664
パクりもなにもPC8001にはインテル製のDMACそのものを使ってるけどな。 N88BASICで、
10 CONSOLE 0,25,0,1
20 N=1
30 FOR C=1 TO 4
40 COLOR C
50 PRINT "A";
60 NEXT
70 IF N<20 THEN N=N+1:GOTO 30
を実行すると、
21番目から色指定が利かなくなる。
故障したのかと調べたら、
仕様だと初めて知った。
X1のGVRAMが変態仕様だと、
よく言われるけど、
88のTEXTVRAMの仕様(V2も)も相当変わっているな。 >>668
文字80バイト+アトリビュート40バイト=120バイト/行
これが表示24行+スクロール用1行+ファンクションキー用1行=26行分ある
合計3120バイト
uPD3301の場合、アトリビュートが
上線,下線,反転,点滅,消去,R,G,B,簡易グラフィック
と9ビットだから、本来は2バイト必要になる(個人的には消去なんて何に使うんだ?と思ったが)
もし馬鹿正直に1文字ごとにアトリビュート割り振れるようにしたら、1文字あたり3バイト必要になる
トータルだと 80*(25+1)*3=6240バイトとなり、全64kB空間の約 1/10 もTVRAMが占有してしまう
なので、アトリビュートを2タイプに分けて、bit3が0か1でタイプを区別できる様にして1バイト化し、
1行で20回まで設定可能、に制限してやれば、上記の通り
(80+40)*(25+1)=3120バイト、と半分のメモリだけで済む。
それでもTVRAMが、全64kB空間の約 1/21 を占有している事になる。 88も8001と同様にテキスト画面の1行あたりの色変更回数に制限があったのか >>671
テキストVRAMについては全く同じ仕様じゃなかったかしら。 8001のようなセミグラも可能なのかな
それなら640x200の画面とセミグラとの重ね合わせを使えば面白いものができそう >>669で書いた「消去」は「シークレット」と表現した方が分かりやすいか
シークレットがONの間、単純に文字が表示されなくなる
でもそれって空白で上書きしても同じ事だから、上記の通り個人的には要らねー機能だと思った
推測だがPC-80/88のuPD3301って、大型コンピュータに接続するダム端末用のビデオ回路を流用したものなんだと思う
大型コンピュータからRS-232C経由で送られてくるテキストを、ただ表示するだけなら
1行当たり20回のアトリビュート制限でも十分、と判断されたのだろう
台数そろえる必要があるダム端末の場合、1台当たりのコストを安くする必要があるから
TVRAMに6kBのメモリは贅沢すぎる、と思われたのかもね これも推測だが、もともとダム端末用のモノクロ専用のビデオIC(uPD3300?)があって、
それをベースにPC-8001用にカラー機能とセミグラフィック機能を追加したのが uPD3301なのかな?と考えている
アトリビュートのbitの割り振り方を見ても、カラーとセミグラフィックは後付けっぽく見える 面白いかは置いといて、88でセミグラとグラフィック画面の合成はたまに見かけた PCE/MD/SFC世代までのゲーム機は、本体側のVRAMには座標や各種の属性、パレット等のデータのみを格納する設計
(スプライトやBGのドット絵はROMやCD-ROMバッファRAM上から本体VRAMへのロードは無しで、画面へ直接表示)
だったということなんでしょうか? そんなんだったらPCエンジンHuカードのゲームで
BGのパターン書き換えしまくってるのはなんなんだって話になるわな >>678
その構成は主にアーケード基板だね
家庭用ではファミコンくらいじゃないかな ありがとうございます。
調べてみたら、PCエンジンでBG描き変えによる擬似多重スクロールを
しているものは、ビデオメモリに高速なSRAMを使っているPCエンジン
ならではの手法だったようで。
正直、格闘ゲームのようなキャラが大きく、しかも中割もけっこうあるような
ゲームは、いくら大容量のROMやアーケードカードがあっても、最終的には
背景も込みで64KのVRAMに収めるのは難しいのではと思っていたのですが
ROMやバッファRAMからの出し入れをうまくやり繰りして実現していたなんて
驚きです。 >>678
PCE、MD、SFC、マーク3はパターンデータをVRAMに転送しないと表示できない
ファミコンはROMから直表示 実際はバンク切り替えみたいな手法でどうにかしているのだろうけど、
マークIIIはVRAMがあと8K余分にあれば、色々と楽になっただろうな。 BG書き換えはMDやSFCでもさんざんやってただろ
PCEキチガイか セガマーク3はTMS9918と変わらない16KBのVRAMで16色BG/OBJやったのがすごいよ
その代わりパレットが1本だけ
まあ同時発色16/64色という意味ではファミコンと対等か
ファミコンの4倍もRAM積んでようやく対等と見るとあれだが >>685
ファンタシースターの3Dダンジョンにマーク3の底力を見たな >>685
9938もこれの上位版で出すべきだったな IBM-PCのEGAで実績がある「デジタルRGBで64色発色」を、
当時の日本のパソコンでは出来なかったのだろうか。
1984年はX1がturboになるタイミングで、この場合どうせ
モニタも買い換えることになるわけだし、640x400/8色とセット
で200ラインでは64色表示(64色中16色でも十分)もつけといて
くれればよかったのに。
(その代わり、Zのような4096色対応機は出さない。
どうせ新型機=X68000の方に注目が行ってしまうので。) くだらない妄想を垂れ流す前に、まずデジタルRGBモニタの仕組みから勉強しましょう。 当時、色数はどんどん増えていく傾向なのに、
モニタ側で色がプリセットされるデジタルRGBは不便さね IBMも1984年にデジタル64色なEGAとアナログ4096色中256色なPGCと両方出してたしな
ただデジタル64色は低価格で結構生き延びた
アナログのみになったのが高価格安定な国内のモニター事情に貢献してしまってた要素はあったかも デジタルRGBでも1画素の表示期間中に高速で0/1を切り替えれば、恐らく輝度を調整できるはず!
水平15.75kHzで640画素なら、計算上、約20MHzのPWMなら可能だ!!
もちろんRGBごとに必要。 24bitパラレルなインターフェースを採用したら、最強のデジタルRGB。
高bitなD/A変換器をモニターに搭載したら更に高価になるか hdmiがデジタルRGB?4k8kでもいける。
今のモニタ及びTVなんかはbit深度あるけるど歩留りを上げるために色斑や輝度を補正する為に使っているね。
CIE表色を100%近くカバーして欲しい。 HDMIのあるブラウン管テレビ・モニタって、内部的にはそのへんの中華コンバータと同じように
HDMIのデジタル信号を単にアナログRGBorD5(1080p)に変換してるだけなんだろうか。
TOSHIBA 30HF66
https://support.dynabook.com/support/staticContentDetail?contentId=2845593&isFromTOCLink=false NTSCの滲みカラーってあるけど、PALだとどうなるか気になっていたが、
貴重な映像を見つけた。
PAL-M color artifacting on Brazilian CoCo 1 clone
https://www.youtube.com/watch?v=QiYO83mFTOY
普通のPALだと4.43MHzでピクセルクロックよりも高い為にうまく滲みカラーが表現できないが、
ブラジルのPAL-Mだと3.57MHzで周波数が低い為にNTSCのような滲みカラーが表現できるようだ。
https://i.imgur.com/WaMPLuH.jpg NTSCの滲みカラーはカラーバーストが-180度に対して、
大よそ+45度(紫)と-135度(緑)の色相が出現する。(NTSCなのでテレビによっては
色相が多少異なるが)
PALの場合はカラーバーストが1ラインごとに-45度と-135度が入れ替わる。
奇数、偶数ラインのどこからカウントするかで異なるが、例えば
奇数ラインで+45度(紫)と-135度(緑)の色相が出現した場合は偶数ラインでは
-45度(オレンジ)と+135度(青)の色相が出現する。
そしてPALはR-Y信号がラインごとに反転している為に
偶数ラインと奇数ラインの信号を合成した場合は
黄色(-180)と青紫(180)の色相が出現する。
https://i.imgur.com/WaMPLuH.jpg 概念図
ドットクロックがカラーサブキャリア×2の場合(320x200)
NTSC
■■■■■■ ←黒
□□□□□□ ←白
■□■□■□ ←緑
□■□■□■ ←紫 PAL-M
■■■■■■ ←黒
■■■■■■
□□□□□□ ←白
□□□□□□
■□■□■□ ←緑
■■■■■■
□■□■□■ ←紫
■■■■■■
■■■■■■ ←オレンジ
■□■□■□
■■■■■■ ←青
■□■□■□
■□■□■□ ←黄
■□■□■□
□■□■□■ ←青紫
□■□■□■ 訂正
抜けていたパターンがあった。
PAL-M
■■■■■■ ←黒
■■■■■■
□□□□□□ ←白
□□□□□□
■□■□■□ ←緑
■■■■■■
□■□■□■ ←紫
■■■■■■
■■■■■■ ←オレンジ
■□■□■□
■■■■■■ ←青
■□■□■□
■□■□■□ ←黄
■□■□■□
□■□■□■ ←青紫
□■□■□■
■□■□■□ ←赤
□■□■□■
□■□■□■ ←水色
■□■□■□