mirror of
https://github.com/daniel5151/ANESE.git
synced 2025-04-02 10:32:00 -04:00
86 lines
957 B
ArmAsm
86 lines
957 B
ArmAsm
; Verifies that reset doesn't alter any RAM.
|
|
|
|
CUSTOM_RESET=1
|
|
.include "shell.inc"
|
|
.include "run_at_reset.s"
|
|
|
|
nv_res bad_addr,2
|
|
|
|
reset: sei
|
|
cld
|
|
ldx #$FF
|
|
txs
|
|
|
|
ldx #7
|
|
ldy #0
|
|
|
|
; Check first byte, and assume just powered
|
|
; if not as expected
|
|
lda <0
|
|
cmp #$DB
|
|
jne std_reset
|
|
iny
|
|
|
|
; Check second byte
|
|
lda <1
|
|
cmp #$B6
|
|
bne failed
|
|
iny
|
|
|
|
; Rest of internal memory
|
|
setb <0,0
|
|
setb <1,0
|
|
lda #$6D
|
|
clc
|
|
: eor (<0),y
|
|
bne failed
|
|
lda (<0),y
|
|
rol a
|
|
iny
|
|
bne :-
|
|
inc <1
|
|
dex
|
|
bpl :-
|
|
|
|
jsr init_shell
|
|
jmp tests_passed
|
|
|
|
failed:
|
|
sty bad_addr
|
|
txa
|
|
eor #$07
|
|
sta bad_addr+1
|
|
|
|
jsr init_shell
|
|
|
|
print_str "Addr: "
|
|
lda bad_addr+1
|
|
jsr print_hex
|
|
lda bad_addr
|
|
jsr print_a
|
|
|
|
set_test 3,"Reset shouldn't modify RAM"
|
|
jmp test_failed
|
|
|
|
main:
|
|
jsr prompt_to_reset
|
|
|
|
; Fill RAM with pattern
|
|
setb <0,0
|
|
setb <1,0
|
|
ldx #8
|
|
ldy #2
|
|
lda #$6D
|
|
clc
|
|
: sta (<0),y
|
|
rol a
|
|
iny
|
|
bne :-
|
|
inc <1
|
|
dex
|
|
bne :-
|
|
|
|
setb <0,$DB
|
|
setb <1,$B6
|
|
|
|
jmp wait_reset
|