remove COM_* code.
This commit is contained in:
@@ -140,7 +140,7 @@ ioRawWaitForValidMsg:
|
||||
ioRawWaitForValidMsg_attnLow:
|
||||
ldi xl, LOW(flashRecvBuffer)
|
||||
ldi xh, HIGH(flashRecvBuffer)
|
||||
ldi r16, COM2_MAINTENANCE_ADDR
|
||||
ldi r16, NET_MAINTENANCE_ADDR
|
||||
ldi r17, FLASH_RECVBUFFER_MAXLEN-3
|
||||
rcall ioRawReceivePacketIntoBuffer
|
||||
brcs ioRawWaitForValidMsg_packetReceived
|
||||
@@ -174,7 +174,6 @@ ioRawWaitForValidMsg_end:
|
||||
; @param R17 maximum value for accepted msg data (i.e. buffersize minus 3)
|
||||
; @param X buffer to receive to
|
||||
; @return CFLAG set if okay (packet received), cleared on error
|
||||
; @return R16 error code if CFLAG is cleared (COM2_ERROR_NOTFORME, COM2_ERROR_IOERROR, COM2_ERROR_DATAERROR)
|
||||
; @clobbers: r16, r17, r18, X (r19, r20, r21, r22)
|
||||
|
||||
ioRawReceivePacketIntoBuffer:
|
||||
@@ -183,7 +182,7 @@ ioRawReceivePacketIntoBuffer:
|
||||
; read destination address
|
||||
rcall ioRawReceiveByte ; read byte (R16, R17, R20, R21, R22)
|
||||
pop r17 ; pop from R16 to R17
|
||||
brcc ioRawReceivePacketIntoBuffer_ioError
|
||||
brcc ioRawReceivePacketIntoBuffer_error
|
||||
#ifndef COM_ACCEPT_ALL_DEST ; accept every destination address
|
||||
; compare destination address (accept "FF" and own address)
|
||||
cp r16, r17
|
||||
@@ -197,27 +196,22 @@ ioRawReceivePacketIntoBuffer_acceptAddr:
|
||||
st X+, r16 ; store dest address, lock buffer
|
||||
; read msg length
|
||||
rcall ioRawReceiveByte ; read packet length (R16, R17, R20, R21, R22)
|
||||
brcc ioRawReceivePacketIntoBuffer_ioError
|
||||
brcc ioRawReceivePacketIntoBuffer_error
|
||||
st X+, r16
|
||||
cp r16, r18 ; (COM2_BUFFER_SIZE-3)
|
||||
brcc ioRawReceivePacketIntoBuffer_contentError ; packet too long
|
||||
brcc ioRawReceivePacketIntoBuffer_error ; packet too long
|
||||
inc r16 ; account for checksum byte
|
||||
mov r17, r16
|
||||
ioRawReceivePacketIntoBuffer_loop:
|
||||
push r17
|
||||
rcall ioRawReceiveByte ; read byte (R16, R17, R20, R21, R22)
|
||||
pop r17
|
||||
brcc ioRawReceivePacketIntoBuffer_ioError
|
||||
brcc ioRawReceivePacketIntoBuffer_error
|
||||
st X+, r16
|
||||
dec r17
|
||||
brne ioRawReceivePacketIntoBuffer_loop
|
||||
sec
|
||||
ret
|
||||
ioRawReceivePacketIntoBuffer_ioError:
|
||||
ldi r16, COM2_ERROR_IOERROR
|
||||
rjmp ioRawReceivePacketIntoBuffer_error
|
||||
ioRawReceivePacketIntoBuffer_contentError:
|
||||
ldi r16, COM2_ERROR_DATAERROR
|
||||
ioRawReceivePacketIntoBuffer_error:
|
||||
clc
|
||||
ret
|
||||
@@ -281,36 +275,29 @@ ioRawReceiveByte_error:
|
||||
; @clobbers R16, R22 (R17, R21, X)
|
||||
|
||||
ioRawSendPacket:
|
||||
rcall ioRawAcquireBus ; (none)
|
||||
brcc ioRawSendPacket_lineBusyError
|
||||
rcall ioRawAcquireBus ; (none)
|
||||
brcc ioRawSendPacket_ret
|
||||
|
||||
rcall ioRawWaitForOneBitLength ; wait for one bit duration (R22)
|
||||
rcall ioRawWaitForOneBitLength ; wait for one bit duration (R22)
|
||||
rcall ioRawWaitForOneBitLength ; wait for one bit duration (R22)
|
||||
rcall ioRawWaitForOneBitLength ; wait for one bit duration (R22)
|
||||
|
||||
adiw xh:xl, COM2_MSG_OFFS_MSGLEN
|
||||
adiw xh:xl, NETMSG_OFFS_MSGLEN
|
||||
ld r17, X
|
||||
sbiw xh:xl, COM2_MSG_OFFS_MSGLEN
|
||||
inc r17 ; account for dest addr
|
||||
inc r17 ; account for msglen byte
|
||||
inc r17 ; account for crc byte
|
||||
sbiw xh:xl, NETMSG_OFFS_MSGLEN
|
||||
inc r17 ; account for dest addr
|
||||
inc r17 ; account for msglen byte
|
||||
inc r17 ; account for crc byte
|
||||
|
||||
ioRawSendPacket_loop:
|
||||
ld r16, X+
|
||||
rcall ioRawSendByte ; send byte (R16, R21, R22)
|
||||
rcall ioRawSendByte ; send byte (R16, R21, R22)
|
||||
brcc ioRawSendPacket_releaseBusRet
|
||||
dec r17
|
||||
brne ioRawSendPacket_loop
|
||||
sec
|
||||
ioRawSendPacket_releaseBusRet:
|
||||
cbi COM_ATTN_DDR, COM_ATTN_PIN ; release ATTN line (by setting direction to IN)
|
||||
brcc ioRawSendPacket_ioError
|
||||
; packet successfully sent
|
||||
ret
|
||||
ioRawSendPacket_ioError:
|
||||
ldi r16,COM2_ERROR_COLLISION
|
||||
ret
|
||||
ioRawSendPacket_lineBusyError:
|
||||
ldi r16,COM2_ERROR_BUSY
|
||||
cbi COM_ATTN_DDR, COM_ATTN_PIN ; release ATTN line (by setting direction to IN)
|
||||
ioRawSendPacket_ret:
|
||||
ret
|
||||
; @end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user