Difference between revisions of "OSBYTE &97"
(Removed warning, see Discussion page.) |
(reinstate warning (see talk page)) |
||
Line 1: | Line 1: | ||
[[Category:OSBYTE]] | [[Category:OSBYTE]] | ||
− | OSBYTE &97 (151) - Write | + | OSBYTE &97 (151) - Write SHEILA |
X=offset within page &FE and Y=byte to write | X=offset within page &FE and Y=byte to write | ||
+ | |||
+ | '''Warning:''' Acorn MOS 1.20 writes the byte using STA &FE00,X. As it is an indexed-addressing instruction, the 6502 CPU (always) performs a dummy read immediately before the write. Some hardware, though not all, may operate inappropriately due to the dummy read: outputs could momentarily be set to the wrong level, or an interrupt condition could be cleared and lost. Review the datasheet for the hardware being accessed to see whether it will be adversely affected. | ||
+ | |||
+ | A safer alternative is to call [[OSWORD &06]] with !XY=&FFFFFE00 + offset, XY?4=byte. | ||
==See Also== | ==See Also== |
Revision as of 17:55, 18 April 2016
OSBYTE &97 (151) - Write SHEILA
X=offset within page &FE and Y=byte to write
Warning: Acorn MOS 1.20 writes the byte using STA &FE00,X. As it is an indexed-addressing instruction, the 6502 CPU (always) performs a dummy read immediately before the write. Some hardware, though not all, may operate inappropriately due to the dummy read: outputs could momentarily be set to the wrong level, or an interrupt condition could be cleared and lost. Review the datasheet for the hardware being accessed to see whether it will be adversely affected.
A safer alternative is to call OSWORD &06 with !XY=&FFFFFE00 + offset, XY?4=byte.
See Also
Jgharston 22:08, 26 May 2009 (UTC)