home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
archives
/
intel8051.tar.gz
/
intel8051.tar
/
i51misc.asm
< prev
next >
Wrap
Assembly Source File
|
1996-06-30
|
621b
|
46 lines
linput: mov dptr,#rcvbuf
linp1: push dpl
push dph
call sys_getc
pop dph
pop dpl
movx @dptr,a
inc dptr
cjne a,#cr,linp1
clr a
movx @dptr,a ; string terminator
ret
;
;=========================================
;
blkchk: mov b,a ; save check
anl a,#192
swap a
rr a
rr a
anl a,#3 ; a = a / 64
add a,b ; add check
anl a,#63
ret
;
; compute arithmetic sum
chksum: mov r2,#0
mov r3,#0ffh
jnb parity,cs1
mov r3,#07fh
cs1: movx a,@dptr
jz cs2
anl a,r3
add a,r2
mov r2,a
inc dptr
sjmp cs1
cs2: mov a,r2
ret
;
; calculate kermit checksum, dptr has string start
chkl: call chksum
call blkchk
ret
;