Changes

Peripheral Soft Reset

7 bytes added, 08:26, 10 September 2022
Port F8FFh is a documented, but rarely known I/O address, used by the standard BIOS functions MC_BOOT_PROGRAM and MC_START_PROGRAM (vector BD13h and BD16h). These functions are usually executed when starting a binary program with RUN"FILENAME.BIN", both functions do issue an "OUT [F8FFh],FFh". This feature is intended to allow Peripherals to re-initialize themselves when needed. From the official [[SOFT158]] specs:
:"All expansion peripherals should be reset when an output is performed to I/O channel #F8FF. In particular a peripheral that generates interrupts must not generate an interrupt until it is re-initialised after such an output has been performed."
Most or all peripherals (including Amstrad's own [[DDI-1]]) aren't following that suggestion, and usually there is no need to do so. There may be a few special cases there hardware could take use of it, such like interrupt generating devices, especially if they do access formerly allocated memory.
== Known Hardware ==
The Soft Reset feature isn't too is useful(initialize hardware expansions), and there's but no used a lot; the [[PlayCity]], [[Nova]] and [[CPCISA]] are the only hardware known to be (intentionally) expansion using that intentionally this feature (though when reverse engineering things by only examining the software drivers one may easily miss its presence, since the OUT [F8FFh] is issued by the BIOS, not by the driver). The only known hardware that is (maybe unintentionally) using Port F8FFh is [[CPCISA by Yarek]].
Moreover, there are probably various devices that do not directly use Port F8FFh, but that do react to the OUT because of incomplete port decoding. For example, the [[ACU Real Time Clock (DIY)]] decodes only A10,A4,A3 of its Port FBFFh, and so, it will also react to OUT [F8FFh],FFh.
* [[Media:S158ap12.pdf|SOFT 158 Appendix 12 (XII) (The Hardware)]] - general info on Port F8FFh (page 3)
* [[Media:S968ap13.pdf|SOFT 968 Appendix 13 (XIII) (Hints Tips and Workarounds)]] - info on Port F8FFh and interrupts (page 7)
 
[[Category:Hardware]]
194
edits