2006年10月22日
・1-Chip MSX2、仕様アップデート(D4 Enterprise)
・この記事のコメントとトラックバック
・くろろん:
う〜ん ( 2006/10/23 12:46:27 )
本気でプログラム組むと分かるのですが、1MB使えてもほんとに使いにくくて。
そもそもZ80のメモリウィンドウは64kBしかないのはご存知かと思いますが、BASIC上でプログラム作る場合にはさらにページ0/1の32kBはROMでマスクされ切り替えにかなりの制限があり(MSX1では使えなかった気がする)、ページ3の16kBは割り込みハンドラーやらシステムワークの関係で事実上切り替え不可。残ったページ2は当然自身のコードが入りますので、やって出来ないことはないと思うけど大変なことになるw。つまり、まともに切り替えられないから使えない。
DOS上で動くプログラムだと、ページ0の16kBは、CP/M的なマップやら割り込みベクトルの存在するアドレスなので切り替えはとっても面倒。ページ3の16kBは割り込みハ
ンドラーやシステムワークが存在するので事実上切り替え不可。真ん中の32kBは切り替えられますが、自身のコードとかぶらないようにする責任は当然自身にあるので、とってもめんどい。
結局大量にメモリを搭載しても、こういう事情で実際には自由にマップ出来ないために、その利用には膨大なオーバーヘッドかかり、事実上ワークエリアにすら使える場
面が限定されるという状況で、なかなか使えなかった訳ですね。
こういったシステムのおかげで、見かけ上は沢山メモリ積めても、MMCやDMAが使えないことが、MSXという規格の縛りになっていた訳で、企画段階でもう少し頭使ったワークエリアの設計とかすべきだったよなぁと思います。・彷徨:
ま、ね ( 2006/10/23 13:29:46 )
システムに影響しないようにスロット機構を使うための技としてインタースロットコールとか色々ありますが、あれはあれで問題アリアリですからねぇ(結局は切り替えを行っていることには違いが無いし、動作も怪しいし)。
せっかくの大容量メモリですが、実質的にはDOS2のRAMDISK用になるんじゃないかと。
…いっそ自前で再設計するトカ(笑)
・記事にコメントする
・*で囲むと強調表示、**で囲むと赤強調表示、(( ))で囲むと縮小表示、>で行を始めると斜体表示になります。強調せずに*を表示したい場合は\*と書いてください。
・コメント時にエラーになった場合は管理者までご連絡をお願い致します。
・基本的にいただいたコメントには極力応答いたしますが、必ずしも全てのコメントに応答しない場合があります。
・ボケたら突っ込みましょう。
・記事に戻る