rt_IRQ0_interrupt:
	push %ds
	push %es
	pushl %eax
	pushl %edx
	pushl %ecx
	movl $0x18,%edx
	mov %dx,%es
	mov %dx,%ds
	movb $0x20,%al
	outb %al,$0x20
	call *(RTaction + 0 * 4)
	cmpl $1,SFIF
	je 1f
	popl %ecx
	popl %edx
	popl %eax
	pop %es
	pop %ds
	iret
1:	
	sti
	popl %ecx
	popl %edx
	popl %eax
	pop %es
	pop %ds
	push %ds
	push %es
	pushl %eax
	pushl %edx
	pushl %ecx
	movl $0x18,%edx
	mov %dx,%es
	mov %dx,%ds
	cli
	movl SFREQ,%edx
	andl SFMASK,%edx
	bsrl %edx,%eax
	jz 991f
	movl $0,SFIF
	sti
	jmp  *SFIDT,%eax,4
991:
	movl $1,SFIF
	sti
	popl %ecx
	popl %edx
	popl %eax
	pop %es
	pop %ds
	iret
