	ld hl,027ffh		;настройка стека на конец RAM     
	ld sp,hl	
	ld de,2000h		;настройка de на начало RAM
	ld a,0h
	out (7fh),a		;очистка порта вывода

inbyte: in a,(0bfh)		;чтение порта ввода
	bit 1,a			;проверка бита 1 (кнопка или что угодно)
	jp z 2000h		;если 0 то переход на начало программы в RAM
	bit 7,a			;проверка бита 7 (чтение COM порта)
	jp nz inbyte  		;если не 0 то переход на ожидание start бита
				;если 0 то задержка
	ld b,25h	
	djnz -2
	
	ld b,08h		;загрузка счётчика битов
	xor a

byte:   call inbit		;вызов чтения бита
	rra			;сдвиг аккумулятора
	or h			;объединение с аккумулятором
	
	push bc			;задержка перед чтением 
	ld b,16h		;следующего бита 	
	djnz -2
	pop bc
	
	djnz byte		;переход на чтение следующего бита
	
	out (7fh),a		;вывод полученного байта в порт 
				;это не обязательно 
	ld (de),a		;запись полученного байта в RAM
	inc de			;получение следующего адреса RAM
	
		
	jp inbyte		;переход на ожидание приёма 				;следующего байта

inbit:	push af			
	in a,(0bfh)		
	bit 7,a			;проверка бита 7
	jp z zero		;далее как и до того
	jp nz one		;всё очевидно
one:	ld h,80h		
	jp e_bit
zero:	ld h,00h	
	jp e_bit
e_bit:	pop af
	ret




























































































