Init:
Outs=1
preTMR1=2
Tmax=FFFF 65,535мс * 2 предделитель
Tmin=85C  7000RPM (учитывая prescaler)
Tdiff=F7A3 (Tmax-Tmin)
Vmax=FF (5Вольт)
Stsflg:(Out.lvl Out.act 1st cycle)
set Stsflg:Out.lvl=1 Stsflg:1st=1
_t _p - предыдущ период, для запуска таймеров

Start:
ADC VT -> VT		1byte ADRESH
ADC Vt -> Vt		1byte ADRESH
T=(Tdiff*VT/Vmax)+Tmin	2byte*1byte/1byte
t=T*Vt/Vmax		2byte
p=T-t			2byte
p=FFFF-p	; потому что таймер считает от нуля
t=FFFF-t

if Stsflg:1st clr Stsflg:1st ; call Fall ; call copy_pre ; start TMR1(t) ; goto ADC

clr  Stsflg:cycle
scan Stsflg:cycle
goto ADC

int 04:	stop TMR
	if Stsflg:Out.lvl=0 ; call Rise ; start TMR(_p)
	else call Fall ; call copy_pre ; start TMR1(_t)
retfie

copy_pre: cp t, p -> _t, _p
	return

Fall:	set Stsflg:Out.lvl=0
	if Stsflg:Out.act=0 set Out1=0
	else set Out2=0
	set Stsflg:cycle
	return

Rise:	set Out1=1 Out2=1
	set Stsflg:Out.lvl=1
	invert Stsflg:Out.act
	return

end