This commit is contained in:
Martin Haye 2014-06-16 09:03:29 -07:00
commit 39e2f8a4e8
2 changed files with 157 additions and 570 deletions

View File

@ -184,6 +184,7 @@ end
; ;
; SET MEMORY TO VALUE ; SET MEMORY TO VALUE
; MEMSET(ADDR, SIZE, VALUE) ; MEMSET(ADDR, SIZE, VALUE)
; With optimizations from Peter Ferrie
; ;
asm memset asm memset
LDY #$00 LDY #$00
@ -193,25 +194,20 @@ asm memset
STA DSTH STA DSTH
INC ESTKL+1,X INC ESTKL+1,X
INC ESTKH+1,X INC ESTKH+1,X
SETMLP DEC ESTKL+1,X SETMLPL CLC
LDA ESTKL,X
SETMLPH DEC ESTKL+1,X
BNE + BNE +
DEC ESTKH+1,X DEC ESTKH+1,X
BEQ SETMEX BEQ SETMEX
+ LDA ESTKL,X + STA (DST),Y
STA (DST),Y
INY INY
BNE + BNE +
INC DSTH INC DSTH
+ DEC ESTKL+1,X + BCS SETMLPL
BNE + SEC
DEC ESTKH+1,X LDA ESTKH,X
BEQ SETMEX BCS SETMLPH
+ LDA ESTKH,X
STA (DST),Y
INY
BNE SETMLP
INC DSTH
BNE SETMLP
SETMEX INX SETMEX INX
INX INX
RTS RTS
@ -279,6 +275,7 @@ REVCPY ;CLC
REVCPYLP LDA (SRC),Y REVCPYLP LDA (SRC),Y
STA (DST),Y STA (DST),Y
DEY DEY
CPY #$FF
BNE + BNE +
DEC DSTH DEC DSTH
DEC SRCH DEC SRCH

File diff suppressed because it is too large Load Diff