Rev 1346 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
MODULE Uart
init:
;╨╕╨╜╨╕╤Ж╨╕╨░╨╗╨╕╨╖╨╕╤А╤Г╨╡╨╝ ╨┐╨╛╤А╤В
di
ld bc,#55FE ;55FEh
in a,(c) ;╨Я╨╡╤А╨╡╤Е╨╛╨┤ ╨▓ ╤А╨╡╨╢╨╕╨╝ ╨║╨╛╨╝╨░╨╜╨┤╤Л
ld b,#C3 ;╨║╨╛╨╝╨░╨╜╨┤╨░ - ╤Г╤Б╤В╨░╨╜╨╛╨▓╨╕╤В╤М ╤Б╨║╨╛╤А╨╛╤Б╤В╤М ╨┐╨╛╤А╤В╨░
in a,(c)
ld b,3 ;╨┐╨░╤А╨░╨╝╨╡╤В╤А - ╤Г╤Б╤В╨░╨╜╨╛╨▓╨╕╤В╤М ╤Б╨║╨╛╤А╨╛╤Б╤В╤М ╨┐╨╛╤А╤В╨░ 19200(6) 38400(3) 115200(1) 57600(2) 9600(12) 14400(8)
in a,(c)
ei
ret
read:
di
read2:
ld bc,#55FE ;55FEh
in a,(c) ;╨Я╨╡╤А╨╡╤Е╨╛╨┤ ╨▓ ╤А╨╡╨╢╨╕╨╝ ╨║╨╛╨╝╨░╨╜╨┤╤Л
ld b,#C2 ;╨║╨╛╨╝╨░╨╜╨┤╨░ - ╤З╤В╨╡╨╜╨╕╨╡ ╤Б╤З╨╡╤В╤З╨╕╨║╨░ ╨▒╤Г╤Д╨╡╤А╨░ ╨┐╤А╨╕╨╡╨╝╨░
in a,(c) ;╨Я╨╛╨╗╤Г╤З╨╕╨╗╨╕ ╤З╨╕╤Б╨╗╨╛ ╨▒╨░╨╣╤В ╨▓ ╨▒╤Г╤Д╨╡╤А╨╡
or a
jp nz,togetb ; ╨Т ╨▒╤Г╤Д╨╡╤А╨╡ ╨╡╤Б╤В╤М ╨▒╨░╨╣╤В
call startrts2 ; ╨▓ ╨▒╤Г╤Д╨╡╤А╨╡ ╨╜╨╡╤В ╨▒╨░╨╣╤В╨░, ╨┐╤А╨╕╨┐╨╛╨┤╨╜╨╕╨╝╨╡╨╝ ╨╜╨░ ╤Б╨╡╨║╤Г╨╜╨┤╨╛╤З╨║╤Г RTS
jp read2 ; ╨Р ╤В╨╡╨┐╨╡╤А╤М ╨╡╤Б╤В╤М?
togetb:
ld bc,#55FE ;╨┐╨╛╨┤╨░╤В╤М ╨║╨╛╨╝╨╜╨░╨┤╤Г ╨║╨╛╨╜╤В╤А╨╛╨╗╨╗╨╡╤А╤Г ╨║╨╗╨░╨▓╨╕╨░╤В╤Г╤А╤Л
in a,(c) ;╨Я╨╡╤А╨╡╤Е╨╛╨┤ ╨▓ ╤А╨╡╨╢╨╕╨╝ ╨║╨╛╨╝╨░╨╜╨┤╤Л
ld b,#02 ;╨║╨╛╨╝╨░╨╜╨┤╨░ - ╤З╤В╨╡╨╜╨╕╨╡
in a,(c) ;╨Я╨╛╨╗╤Г╤З╨░╨╡╨╝ ╨▒╨░╨╣╤В ╨▓ ╨Р
ei
ret
write:
di
push bc
push de
ld d, a ;╨Т ╨Р ╨┐╨╛╨╗╤Г╤З╨░╨╡╨╝ ╨▒╨░╨╣╤В, ╤Б╨╛╤А╨░╨╜╤П╨╡╨╝ ╨╡╨│╨╛ ╨▓ D
readytx:
ld bc,#55FE ;55FEh
in a,(c) ;╨Я╨╡╤А╨╡╤Е╨╛╨┤ ╨▓ ╤А╨╡╨╢╨╕╨╝ ╨║╨╛╨╝╨░╨╜╨┤╤Л
ld b,#42 ;╨║╨╛╨╝╨░╨╜╨┤╨░ - ╨┐╤А╨╛╤З╨╡╤Б╤В╤М ╤Б╤В╨░╤В╤Г╤Б
in a,(c)
bit 6,a ;╨Я╨░╤А╨░╨╝╨╡╤В╤А╤Л - TX
jp z,readytx ; ╨▓╨╡╤А╨╜╤Г╤В╤М╤Б╤П ╨╡╤Б╨╗╨╕ ╨▒╨░╨╣╤В╨░ ╨╜╨╡╤В
ld bc,#55FE ;55FEh
in a,(c) ;╨Я╨╡╤А╨╡╤Е╨╛╨┤ ╨▓ ╤А╨╡╨╢╨╕╨╝ ╨║╨╛╨╝╨░╨╜╨┤╤Л
ld b,#03 ;╨╖╨░╨┐╨╕╤Б╤М
in a,(c)
ld b,d ;╨С╨Р╨Щ╨в ╨┤╨╗╤П ╨┐╨╡╤А╨╡╤Б╤Л╨╗╨║╨╕
in a,(c) ; ->
pop de
pop bc
ei
ret
startrts2
ld bc,#55FE ;55FEh
in a,(c) ;╨Я╨╡╤А╨╡╤Е╨╛╨┤ ╨▓ ╤А╨╡╨╢╨╕╨╝ ╨║╨╛╨╝╨░╨╜╨┤╤Л
ld b,#43 ;╨║╨╛╨╝╨░╨╜╨┤╨░ - ╤Г╤Б╤В╨░╨╜╨╛╨▓╨╕╤В╤М ╤Б╤В╨░╤В╤Г╤Б
IN a,(c)
ld b,#03 ;╨Я╨░╤А╨░╨╝╨╡╤В╤А╤Л - ╤Г╨▒╤А╨░╤В╤М RTS (START)
in a, (c)
; EX (SP),HL
; EX (SP),HL
push de
pop de
ld bc,#55FE ;55FEh
in a,(c) ;╨Я╨╡╤А╨╡╤Е╨╛╨┤ ╨▓ ╤А╨╡╨╢╨╕╨╝ ╨║╨╛╨╝╨░╨╜╨┤╤Л
ld b,#43 ;╨║╨╛╨╝╨░╨╜╨┤╨░ - ╤Г╤Б╤В╨░╨╜╨╛╨▓╨╕╤В╤М ╤Б╤В╨░╤В╤Г╤Б
in a,(c)
ld b,0 ;╨Я╨░╤А╨░╨╝╨╡╤В╤А╤Л - ╤Г╤Б╤В╨░╨╜╨╛╨▓╨╕╤В╤М RTS (STOP)
in a,(c)
ret
ENDMODULE