Difference between revisions of "84PCE:Syscalls:021D7C"
From WikiTI
(→Synopsis) |
|||
Line 16: | Line 16: | ||
<nowiki>SignExtendDE_broken: | <nowiki>SignExtendDE_broken: | ||
push af | push af | ||
− | + | xor a | |
− | + | ld (0D02AD7h), de | |
− | + | bit 7, b ; This should be d, not b | |
− | + | jr z, _+ | |
− | + | dec a | |
_+: | _+: | ||
− | + | ld (0D02AD9h), a | |
− | + | ld de, (0D02AD7h) | |
pop af | pop af | ||
ret </nowiki> | ret </nowiki> |
Revision as of 17:41, 4 May 2015
Synopsis
Hypothesized Official Name: SignExtendDE_broken
Syscall Address: 021D7Ch
This is supposed to extend the signed 16-bit DE value to be 24-bit signed.
However, due to what looks like a copy-paste error by TI, this routine is pretty much useless.
It looks like they tried to use code from SignExtendBC, and forgot to change a byte.
Here is what this routine calls, if you can find a particular use for it, go for it.
SignExtendDE_broken: push af xor a ld (0D02AD7h), de bit 7, b ; This should be d, not b jr z, _+ dec a _+: ld (0D02AD9h), a ld de, (0D02AD7h) pop af ret