.include "m8def.inc"
.def temp1 = r16
.def temp2 = r17
.def temp3 = r18
ldi temp1, LOW(RAMEND)
out SPL, temp1
ldi temp1, HIGH(RAMEND)
out SPH, temp1
ldi temp1, 0xFF
out DDRD, temp1
rcall lcd_init
rcall lcd_clear
ldi ZL, LOW(str1*2)
ldi ZH, HIGH(str1*2)
ldi r20, 'z'
st Z+, r20
ldi r20, 'y'
st Z+, r20
ldi r20, 'x'
st Z+, r20
ldi r20, 'w'
st Z+, r20
ldi r20, 'v'
st Z+, r20
ldi r20, 'u'
st Z+, r20
ldi r20, 'a'
st Z+, r0
ldi r20, 'c'
st Z+, r20
ldi r20, 'b'
st Z+, r20
ldi r20, 'a'
st Z+, r20
ldi r20, 0
st Z+, r20
ldi ZL, LOW(str1*2)
ldi ZH, HIGH(str1*2)
loop1: ld r20, Z
cpi r20, 0
breq loop1end
mov XL, ZL
mov XH, ZH
loop2: ld r21, X
cpi r21, 0
breq loop2end
cp r21, r20
brge goon
st X, r20
st Z, r21
goon:
ld r24, X+
rjmp loop2
loop2end:
ld r24, Z+
rjmp loop1
loop1end:
ldi ZL, LOW(str1*2)
ldi ZH, HIGH(str1*2)
outloop: ld r20, Z+
cpi r20, 0
breq outloopend
mov temp1, r20
rcall lcd_data
rjmp outloop
outloopend:
loop:
rjmp loop
.include "lcd-routines.asm"
.DSEG
str1: .byte 0x100