.include "m32def.inc"
.org 0x000
rjmp start
Start:
;always set up stack pointer!
;
ldi r16,LOW(RAMEND) ;set up stack pointer low
out SPL,r16
ldi r16,HIGH(RAMEND) ;set up stack pointer high
out SPH,r16
main:
rcall clrRam ;clear Ram to 0100
rcall fillRam ;fill ram to 0100
rjmp main ;loop
clrRam:
ldi r16,0xFF ;fill ram with value 0xFF
ldi YL, 0x60 ;start of ram
ldi YH, 0x00 ;
clrRam1:
st Y+,r16 ;store data in r16 @Y
;and increment Y
cpi YH,0x01 ;clear Ram to 0100
brne clrRam1
ret
;------------------------------------------
;fill ram with values 00,01,02,03,04,etc...
FillRam:
clr r16 ;start with 0 value in r16
ldi YL, 0x60 ;start of ram
ldi YH, 0x00 ;
FillRam1:
st Y+,r16 ;store data in r16 @Y
;and increment Y
inc r16 ;add 1 to r16
cpi YH,0x01 ;Fill Ram to 0100
brne FillRam1
ret
.exit