			 ORG     00H            ; Reset
ljmp start
org 03
ljmp isr0
org 80h
start:
    setb it0
	setb ex0
    MOV TMOD,#20H        ;enable timer1, mode 2 (auto reload)
    MOV TH1,#0FDH        ;9600 Baud rate
    MOV SCON,#50H        ;8 bit, 1 stop bit, REN enabled
    SETB TR1


HERE:JNB RI,HERE            ;wait for character to come in
    MOV A,SBUF            ;get data in A
    CJNE A,#0FFH,DOWN        ;chk if the char is synch byte ie.offh or 255
                    ;if not jump to clear RI
    CLR RI            ;get ready to get next byte
WAIT:JNB RI,WAIT            ;wait for character to come in
    MOV A,SBUF            ;get data in A
    CJNE A,#00H,NXT        ;chk if the char is 0
    CLR P1.4            ;switch on LED
    SJMP DOWN            ;jump to clear RI
nxt:CJNE A,#02H,NXT1        ;chk if the char is 2
	mov r6, #00h
	clr p3.2
         push 00
                    push 01
                    mov r0,#30
bbbb:   mov r1,#255
cccc:   djnz r1,cccc
                    djnz r0,bbbb 
                    pop 01
                    pop 00	
		 setb p3.2
    SJMP DOWN            ;jump to clear RI
NXT1:CJNE A,#01H,bxt1        ;chk if the char is 1
    SETB P1.4            ;switch off LED
    SJMP DOWN            ;jump to clear RI
bXT1:CJNE A,#031H,nxt4        ;chk if the char is 1
    	mov r6, #01h
    SJMP DOWN            ;jump to clear RI
nxt4: cjne a,#04H, down
start1:
mov dptr, #dots
mov r0, #18h
loopq:
       clr a
       MOVC A,@A+DPTR
      CLR TI 
      MOV SBUF,A
      JNB TI,$
      INC dptr
delay_16ms:         push 00
                    push 01
                    mov r0,#30
delay_16ms_loop1:   mov r1,#255
delay_16ms_loop2:   djnz r1,delay_16ms_loop2
                    djnz r0,delay_16ms_loop1 
                    pop 01
                    pop 00
      djnz r0, loopq
; 
DOWN:CLR RI            ;get ready to get next byte
    SJMP HERE            ;keep getting the data
delay:
	dec a
 d_olp:
    push acc
	mov a, #0a6h
d_ilp:
    inc a
	nop
	nop
	nop
	nop
	jnz d_ilp
	nop
	nop
	pop acc
	djnz acc, d_olp
	mov a, #0a6h
d_lp2:
    inc a
	nop
	nop
	nop
	nop
	jnz d_lp2
	nop
	nop
	nop
ret		

   isr0:
     mov r5, #0ffh
	loop5:
	mov r1, #0ffh
	   loop1:
	     lcall delay
		 cjne r6, #00, nxt3
   djnz r1, loop1
        djnz r5, loop5
    CLR P1.4            ;switch on LED
nxt3:   reti
dots:
   db "Eibox is now connected!"
 end