PWM1_COUNTER	DATA	0xXX			; pwm counter
PWM1_LOW	DATA	0xXX			; low duration reload value
PWM1_HIGH	DATA	0xXX			; high duration reload value

; timer isr
T0_ISR:
	MOV	TH0,#T0_SCALE_H			; reload value for timed-quanta
	PUSH	ACC

	DJNZ	PWM1_COUNTER,T0_ISR_PWM2	; wait loop
; time to do
	CPL	Px.x				; toggle output
	JB	Px.x,T0_ISR_PWM1_H
	MOV	PWM1_COUNTER,PWM1_LOW		; low duration
	JMP	T0_ISR_PWM2
T0_ISR_PWM1_H:
	MOV	PWM1_COUNTER,PWM1_HIGH		; high duration
; next PWM
T0_ISR_PWM2:
; next PWMs here