revert memset.s
This commit is contained in:
parent
b8df5cb84b
commit
bf7021a3a9
1 changed files with 9 additions and 42 deletions
|
@ -18,8 +18,6 @@ big_set: ;sets $ff of memory
|
||||||
DEY
|
DEY
|
||||||
.endrepeat
|
.endrepeat
|
||||||
STA (A_start), Y ; dont forget Y =0
|
STA (A_start), Y ; dont forget Y =0
|
||||||
NOP
|
|
||||||
NOP
|
|
||||||
big_set_end:
|
big_set_end:
|
||||||
;;set all hole $ff memory chunks!
|
;;set all hole $ff memory chunks!
|
||||||
INC A_start + 1
|
INC A_start + 1
|
||||||
|
@ -28,46 +26,15 @@ big_set_end:
|
||||||
JMP big_set
|
JMP big_set
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;;sets the rest of the memory
|
||||||
|
;; note that this can use code above (smc) or the same method. may implement later.
|
||||||
small_set:
|
small_set:
|
||||||
STA data_to_write
|
LDY length
|
||||||
LDA length
|
small_set_loop:
|
||||||
STA length_copy
|
STA (A_start), Y
|
||||||
|
DEY
|
||||||
;; calculate rts-position
|
BNE small_set_loop
|
||||||
LDA #$00
|
STA (A_start), Y
|
||||||
STA length + 1
|
|
||||||
;; 4 bytes = STA DEY NOP = seting 1 byte of memory.
|
|
||||||
;; So we need to calculate: length*4
|
|
||||||
Mult_16 length, length + 1
|
|
||||||
Add_16 length, length + 1, length_copy, #$00
|
|
||||||
;; Now RTS_pointer = length*4 + big_set_label
|
|
||||||
CLC
|
|
||||||
LDA #<big_set
|
|
||||||
ADC length
|
|
||||||
STA RTS_pointer
|
|
||||||
LDA #>big_set
|
|
||||||
ADC length + 1
|
|
||||||
STA RTS_pointer + 1
|
|
||||||
|
|
||||||
;; read data we will change to RTS
|
|
||||||
LDY #$00
|
|
||||||
LDA (RTS_pointer), Y
|
|
||||||
STA instruction_backup
|
|
||||||
|
|
||||||
;; set RTS in big_set
|
|
||||||
LDA #$60
|
|
||||||
STA (RTS_pointer), Y
|
|
||||||
|
|
||||||
;; JSR to modified big_set
|
|
||||||
LDY length_copy
|
|
||||||
DEY ; because we want to count to Y=0 :)
|
|
||||||
LDA data_to_write
|
|
||||||
JSR big_set
|
|
||||||
|
|
||||||
;; revert changes
|
|
||||||
LDY #$00
|
|
||||||
LDA instruction_backup
|
|
||||||
STA (RTS_pointer), Y
|
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
.endproc
|
.endproc
|
||||||
|
|
Loading…
Add table
Reference in a new issue