/media/sda-magnetic/david/Dokumente-15/fernuni-hagen/cs-i-ii/fsm/fsm/avr-asm/ram3.asm


.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, 'a'
           st Z+, r20
           ldi r20, 'x'
           st Z+, r20
           ldi r20, 'b'
           st Z+, r20
           ldi r20, 'v'
           st Z+, r20
           ldi r20, 'c'
           st Z+, r20
           ldi r20, 't'
           st Z+, r20
           ldi r20, 'd'
           st Z+, r20
           ldi r20, 'r'
           st Z+, r20
           ldi r20, 'e'
           st Z+, r20
           ldi r20, 'p'
           st Z+, r20
           ldi r20, 'f'
           st Z+, r20


           ldi r21, 12
           ldi ZL, LOW(str1*2)        
           ldi ZH, HIGH(str1*2)       

sortloop1:  mov r20, r21
            mov XL, ZL
            mov XH, ZH
sortloop2:  ld r22, Z
            ld r23, X
            cp r22, r23
            brlt goon
            st Z, r23
            st X, r22
            goon:
            ld r24, X+
            dec r20
            cpi r20, 0
            brne sortloop2
            
            ld r24, Z+
            dec r21
            cpi r21, 0
            brne sortloop1
           
           
           ldi ZL, LOW(str1*2)        
           ldi ZH, HIGH(str1*2)       
           

           ldi r21, 12
outloop:   ld r20, Z+
           mov temp1, r20     
           rcall lcd_data
            dec r21
            cpi r21, 0
            brne outloop
           


loop:
           rjmp loop

.include "lcd-routines.asm"
           
.DSEG
    str1: .byte 20