	;PROGRAM OF TWO EXTERNAL INPUTS AND 4 OUTPUTS
	;PORTD PIN NUMBER 1 AND 2 IS USED FOR EXTERNAL INPUTS
	;PORTB PINS 0 TO 4 ARE USED FOR 4 BITS OUTPUT
	;TIME DELAY=4SECOND
	LIST	P=18F452,	F=INHX32, MM=OFF, ST=OFF, N=0, R=HEX	
	#INCLUDE	<P18F452.INC>
	CONFIG	OSC =HS,	OSCS=OFF
	CONFIG	WDT = OFF
	CONFIG	BORV = 45, PWRT = ON, BOR = ON
	CONFIG	DEBUG = OFF, LVP = OFF, STVR = OFF
R2	EQU		20H
R3	EQU		21H
R4	EQU		22H
	ORG	0H
	MOVLB	0*01
	CLRF	TRISB
	SETF	TRISD
HERE	BTFSS	PORTD,1	;IF BIT 1 OF PORTD IS HIGH SO BTFSS SKIPS THE NEXT INSTRUCTION
	GOTO	OVER
	BTFSC	PORTD,2	;IF BIT 2 OF PORTD IS LOW SO BTFSC SKIPS THE NEXT INSTRUCTION
	GOTO	OVER
	MOVLW	B'00001010'
	MOVWF	PORTB
	CALL	DELAY
	MOVLW	B'00000101'
	MOVWF	PORTB
	CALL	DELAY
	MOVLW	B'00000011'
	MOVWF	PORTB
	CALL	DELAY
	MOVLW	B'00001100'
	MOVWF	PORTB
	CALL	DELAY
	GOTO	HERE
OVER	MOVLW	B'00000000'
	MOVWF	PORTB
	GOTO	HERE
	RETURN	
	ORG	300H	;START ADDRESS FROM 300H
DELAY	;STARTING OF LOOP	
	MOVLW	D'200'
	MOVWF	R2
L1	MOVLW	D'200'
	MOVWF	R3
L2	MOVLW	D'50'
	MOVWF	R4
L3		NOP
	NOP
	DECF		R4,F
	BNZ		L3
	DECF		R3,F
	BNZ		L2
	DECF		R2,F
	BNZ		L1
	RETURN
	END
