Konamiman / Nextor

A disk operating system for MSX computers, forked from MSX-DOS 2.31
Other
183 stars 33 forks source link

Register corruption problem when calling memory mapper support extended BIOS #87

Closed hra1129 closed 3 years ago

hra1129 commented 3 years ago

[Issues] "Calling 'Get mapper variable table' will change the value of the DE register.

[Description] As the return value, DE is Reserved, so at first glance it looks fine. However, in MSX-DOS2, the DE register is not destroyed, but is maintained at 0401h.

The MSX Technical Guidebook, which was sold in Japan a long time ago, clearly states that 'Get mapper variable table' "maintains the value of DE". It is not important that the information in this document is appropriate for the MSX-DOS2 specifications. In MSX-DOS2, DEs are actually saved. And there is software out there that expects it.

[Appendix] For example, ”SZMMP (鈴見咲 MIDI Player) ver0.64” will run out of control due to this problem. http://sakuramail.net/fswold/midi.html

ASCAT Technical Guide Book http://www.ascat.jp/tg/tg2.html  ●マッパテーブルの先頭アドレスを得る方法 (How to get the top address of the mapper table)   DEは保存される (DE is saved.)

Konamiman commented 3 years ago

Fixed in v2.1.1 beta 1.