| カテゴリ | 重要度 | ステータス | 解決状況 | 登録日時 | 最終更新 |
|---|---|---|---|---|---|
その他 | 低 | 解決済み | 修正済み | 2013-02-03 20:49 | 2013-02-03 21:27 |
| テスター | Bletch | 担当者 | Bletch | ソース | trs/coco3.cpp |
| バージョン | 0.148 | 発生バージョン | 修正バージョン | ||
| 修正コミット | プルリク | ||||
| フラグ | |||||
| セット | coco, coco3 | ||||
| セット詳細 | |||||
| 概 要 | 特定のIOレジスタについて、浮動小数点バス値しか読み込みが行われない。 | ||||
| 詳 細 | I ran into this problem because when I was first writing my system setup code, I wasn't completely sure of all of the bit values to write in the GIME initialization register 0 ($FF90). I thought that I would be safe and read the value of the register, only set/reset the bits that I needed with and/or, and then store it back to the GIME. This works under MESS because reading $FF90 will return the last value that was written there. But on a real coco 3, this register (and many others) are read-only, so I started with a bogus base value and of course my final value written to this register was incorrect and caused the bad behavior. So I wrote a simple BASIC program to print out the values of all of the GIME registers and ran it on the real coco3 and on MESS to show the difference. The basic differences are: 1. With the exception of the IRQ/FIRQ registers $FF92/3, it looks like all of $FF90-$FF9D are write-only on the coco and always read as $7E. Under MESS they all appear to read out the last value written to them. 2. For the MMU block registers $FFA0-$FFAF, the upper 2 bits are always cleared on MESS, but bit 6 is always set on my real coco. The official documentation says that the upper 2 bits are undefined. 3. The palette registers $FFB0-$FFBF read the same in both MESS and the real coco. 4. The 8-byte area $FFD8-$FFDF (which really just contains 4 write-only flags mapped to bytes) reads as all 0 under MESS, but $7E on my coco. | ||||
| 再現手順 | |||||
| 追加情報 | |||||
| 添付ファイル | |||||