; PIC to PC IR Decoder.
; Written by Roger Thomas.

; This version sends the value of cbinary to the PC.
; Modify the SIRC.asm or RC5.asm assembler program.

; add to equate

MYPORT	EQU H'25'
RS232	EQU H'03'


; add to main or start routine

BCF	PORTB, RS232  ; rs232 output


; Replace leddisplay with the following code
; Replace CALL LEDDISPLAY with CALL TXDATA
 

TXDATA	BSF	MYPORT,RS232
	CALL	OP
; rs232 = cbinary and b'00000001' ; 1
	MOVF	CBINARY,W
	ANDLW	H'01'
	BTFSS	STATUS,Z
	BSF	MYPORT,RS232
	BTFSC	STATUS,Z
	BCF	MYPORT,RS232
	CALL	OP
; rs232 = cbinary and b'00000010' ; 2
	MOVF	CBINARY,W
	ANDLW	H'02'
	BTFSS	STATUS,Z
	BSF	MYPORT,RS232
	BTFSC	STATUS,Z
	BCF	MYPORT,RS232
	CALL	OP
; rs232 = cbinary and b'00000100' ; 4
	MOVF	CBINARY,W
	ANDLW	H'04'
	BTFSS	STATUS,Z
	BSF	MYPORT,RS232
	BTFSC	STATUS,Z
	BCF	MYPORT,RS232
	CALL	OP
; rs232 = cbinary and b'00001000' ; 8
	MOVF	CBINARY,W
	ANDLW	H'08'
	BTFSS	STATUS,Z
	BSF	MYPORT,RS232
	BTFSC	STATUS,Z
	BCF	MYPORT,RS232
	CALL	OP
; rs232 = cbinary and b'00010000' ; 16
	MOVF	CBINARY,W
	ANDLW	H'10'
	BTFSS	STATUS,Z
	BSF	MYPORT,RS232
	BTFSC	STATUS,Z
	BCF	MYPORT,RS232
	CALL	OP
; rs232 = cbinary and b'00100000' ; 32
	MOVF	CBINARY,W
	ANDLW	H'20'
	BTFSS	STATUS,Z
	BSF	MYPORT,RS232
	BTFSC	STATUS,Z
	BCF	MYPORT,RS232
	CALL	OP
; rs232 = cbinary and b'01000000' ; 64
	MOVF	CBINARY,W
	ANDLW	H'40'
	BTFSS	STATUS,Z
	BSF	MYPORT,RS232
	BTFSC	STATUS,Z
	BCF	MYPORT,RS232
	CALL	OP
; rs232 = cbinary and b'10000000' ; 128
	MOVF	CBINARY,W
	ANDLW	H'80'
	BTFSS	STATUS,Z
	BSF	MYPORT,RS232
	BTFSC	STATUS,Z
	BCF	MYPORT,RS232
	CALL	OP
; rs232 = 0 and 0
	MOVLW	H'00'
	ANDLW	H'00'
	BTFSS	STATUS,Z
	BSF	MYPORT,RS232
	BTFSC	STATUS,Z
	BCF	MYPORT,RS232
	CALL	OP
	RETURN

OP	MOVF	MYPORT,W
	MOVWF	PORTB
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	RETURN

