*/
Written some cool source code? Upload it to Programmer's Heaven.
*/

View \TIER1.ASM

BANEL GSM

Submitted By: jaroban
Rating: starstarstarstar (Rate It)


; version 1.0

; a=timeout in seconds
do_events:      mov     r4,#0
                mov     r5,a
                mov     tmp0,a
                mov     r6,#0
                mov     a,#t_wait
                call    tmr_int
                mov     r0,#srl_fifo
                call    fifo_clear
                pop     dph1
                pop     dpl1
de_lp1:         call    do_them
                call    read_serial
                jc      de_check
                mov     a,#t_wait
                call    tmr_zro
                jnc     de_lp1
                mov     dpl,dpl1
                mov     dph,dph1
de_lp2:         clr     a
                movc    a,@a+dptr
                inc     dptr
                jnz     de_lp2
                inc     dptr
                inc     dptr
                clr     a
                movc    a,@a+dptr
                inc     dptr
                jnz     de_lp2
                jmp     @a+dptr

de_check:       mov     r4,#0
                mov     r5,tmp0
                mov     r6,#0
                mov     a,#t_wait
                call    tmr_int
                mov     dpl,dpl1
                mov     dph,dph1
de_lp3:         push    dpl
                push    dph
                call    do_them
                pop     dph
                pop     dpl
                mov     r0,#srl_fifo
                call    fifo_pos
                mov     r1,a
de_lp4:         clr     a
                movc    a,@a+dptr
                inc     dptr
                jnz     de_lp4
                mov     a,r1
                jnz     de_jump
                inc     dptr
                inc     dptr
                clr     a
                movc    a,@a+dptr
                jnz     de_lp3
                jmp     de_lp1

de_jump:        mov     a,#1
                movc    a,@a+dptr
                push    acc
                clr     a
                movc    a,@a+dptr
                push    acc
                ret

; tmp1=ptr  tmp2=max  tmp3=term
read_string:    mov     r0,#srl_fifo
                call    fifo_clear
                call    tmr_int_f
                db      t_wait,0,5,0
rst_lp1:        call    do_them
                call    read_serial
                jnc     rst_skip0
                call    get_chr
                jc      rst_skip1
rst_skip0:      mov     a,#t_wait
                call    tmr_zro
                jnc     rst_lp1
                clr     c
                ret
rst_skip1:      push    acc
                call    tmr_int_f
                db      t_wait,0,5,0
                pop     acc
                mov     b,a
                clr     c
                subb    a,#' '
                jnc     rst_skip3
                mov     b,#' '
rst_skip3:      mov     a,b
                cjne    a,tmp3,rst_skip2
                mov     a,#' '
                mov     r0,tmp1
rst_lp2:        mov     @r0,a
                inc     r0
                djnz    tmp2,rst_lp2
                setb    c
                ret
rst_skip2:      mov     r0,tmp1
                mov     @r0,a
                inc     tmp1
                djnz    tmp2,rst_lp1
                setb    c
                ret

corner
© 1996-2008 CommunityHeaven LLC. All rights reserved. Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
North American business development: Nicolai Wadstrom. Publisher: Lars Hagelin.