1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2024-10-18 22:24:28 +00:00

divmod returning values in right order

This commit is contained in:
Dave Schmenk 2018-01-14 20:05:39 -08:00
parent c3feb152ba
commit 3651cb6373

View File

@ -515,28 +515,29 @@ asm uword_islt(a,b)#1
RTS
end
asm divmod(a,b)#2
LDA #>(_divmod-1)
PHA
LDA #<(_divmod-1)
PHA
JSR $03D0 ; CALL DINTERP
!BYTE $0A, $5C ; MOD, RET
_divmod DEX
LDA DSTL ; DVDNDL
JSR _divmod
DEX
LDA ESTKL+1,X
STA ESTKL,X
LDA DSTH ; DVDNDH
LDA ESTKH+1,X
STA ESTKH,X
LDA DSTL ; DVDNDL
STA ESTKL+1,X
LDA DSTH ; DVDNDH
STA ESTKH+1,X
LSR DVSIGN ; SIGN(RESULT) = (SIGN(DIVIDEND) + SIGN(DIVISOR)) & 1
BCS +
RTS
+ LDA #$00
; SEC
SBC ESTKL,X
STA ESTKL,X
SBC ESTKL+1,X
STA ESTKL+1,X
LDA #$00
SBC ESTKH,X
STA ESTKH,X
SBC ESTKH+1,X
STA ESTKH+1,X
RTS
_divmod JSR $03D0 ; CALL DINTERP
!BYTE $0A, $5C ; MOD, RET
end
asm sext(a)#1
LDY #$00