| カテゴリ | 重要度 | ステータス | 解決状況 | 登録日時 | 最終更新 |
|---|---|---|---|---|---|
その他 | 低 | 解決済み | 修正済み | 2019-10-13 19:15 | 2020-04-08 07:47 |
| テスター | cmonkey | 担当者 | AJR | ソース | yamaha/fb01.cpp |
| バージョン | 0.214 | 発生バージョン | 修正バージョン | 0.220 | |
| 修正コミット | プルリク | ||||
| フラグ | |||||
| セット | fb01 | ||||
| セット詳細 |
fb01 - FB-01 FM Sound Generator | ||||
| 概 要 | 未マップのメモリ領域のせいでテストモードが動作しない。 | ||||
| 詳 細 | At boot FB-01 checks for the System Setup + Inst. Select + Data Entry -1/No buttons being pressed and jumps to test mode code @ $32df if they are. Test mode code sets the stack to $ffd0 and uses the 48 bytes from $ffd0 to $ffff as scratch ram. Currently the only mapped RAM region in the fb01 driver is $8000-$bfff, which is realised on hardware by the 2x8Kb SRAMs. After a bit of head scratching as to what test mode was using for its RAM I've come to the conclusion that it must be using 64 bytes of the 80 bytes of DDRAM in the HD44780 as stack/scratch ram (16 bytes stack/48 bytes scratch). The other 16 bytes are used for the LCD display. The HD44870 manual clearly states, on p.10 'the area in display data RAM (DDRAM) that is not used for display can be used as general data RAM.' It's possible to get test mode running perfectly in the current driver by editing all instructions that target $FFxx addresses above $32d7 in the rom and changing them to $BFxx (64 addresses in total need changing) to remap them into the currently mapped 16Kb SRAM region. I've attached a bsdiff patch which will do this, so you can see how test mode should look, if you don't have access to a physical FB-01. I'm not sure whether, when the fb01 driver was originally written, test mode was ever planned to be implemented or not, and as such you may decide that this is really a BTNAB, if it wasn't, as a non-functional test mode doesn't affect how the rest of the emulated machine works. Also, I wasn't sure what category to choose for this report so if you feel 'Misc' is incorrect then please feel free to change it to something more appropriate. As ever, many thanks to all the MAME devs for their continued hard work and support on MAME. | ||||
| 再現手順 | Hold down the keys that are mapped to the 'System Setup', 'Inst. Select' and 'Data Entry -1/No' buttons and reset the machine. This will cause a jump to test mode code at $32df but upon return from the first subroutine call code execution will resume at $0000 due to the fact that the first CALL instruction will attempt to place its return address onto a non-mapped stack so the RET instruction will pop $0000 of the (non-existent) stack into the PC and resume from there. | ||||
| 追加情報 | bsdiff patch to remap all $FFxx address references in test mode to $BFxx, to allow test mode to run successfully in current driver SHA1 of original nec__-011_xb712c0__8709ex700__d27c256c-15.ic11 = 049c482d6c91b7e2846757dd0f5138e0d8b687f0 SHA1 of bsdiff patch = f070db69fbb71955278dfb2eda7d41c264824dca SHA1 of patched nec__-011_xb712c0__8709ex700__d27c256c-15.ic11 = 9e849c04167e53352a9635712d95dcc5ea34ad2f | ||||
| 添付ファイル | |||||