FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

#include <librm.h>

	.text
	.arch i386
	.section ".prefix", "awx", @progbits
	.code16
	.org 0
	.globl	_hd_start
_hd_start:

	movw	$load_image, %bp
	jmp	find_active_partition

#include "bootpart.S"

load_image:
	/* Get disk geometry */
	pushal
	pushw	%es
	movb	$0x08, %ah
	int	$0x13
	jc	load_failed
	movb	%cl, max_sector
	movb	%dh, max_head
	popw	%es
	popal
	
1:	/* Read to end of current track (or end of image) */
	movb	%cl, %al
	negb	%al
	addb	max_sector, %al
	incb	%al
	andb	$0x3f, %al
	movzbl	%al, %eax
	movl	load_length, %ebx
	cmpl	%eax, %ebx
	ja	2f
	movl	%ebx, %eax
2:	call	*read_sectors
	jc	load_failed
	
	/* Update %es */
	movw	%es, %bx
	shll	$5, %eax
	addw	%ax, %bx
	movw	%bx, %es
	shrl	$5, %eax
	
	/* Update LBA address */
	addl	%eax, %edi
	adcl	$0, %esi
	
	/* Update CHS address */
	andb	$0xc0, %cl
	orb	$0x01, %cl
	incb	%dh
	cmpb	max_head, %dh
	jbe	3f
	xorb	%dh, %dh
	incb	%ch
	jnc	3f
	addb	$0xc0, %cl
3:
	/* Loop until whole image is read */
	subl	%eax, load_length
	ja	1b
	ljmp	$BOOT_SEG, $start_image

max_sector:
	.byte	0
max_head:
	.byte	0
load_length:
	.long	0
	
	.section ".zinfo.fixup", "a", @progbits	/* Compressor fixups */
	.ascii	"ADDL"
	.long	load_length
	.long	512
	.long	0
	.previous


load_failed:
	movw	$10f, %si
	jmp	boot_error
10:	.asciz	"Could not load iPXE\r\n"

	.org 510
	.byte 0x55, 0xaa

start_image:
	/* Install iPXE */
	call	install

	/* Set up real-mode stack */
	movw	%bx, %ss
	movw	$_estack16, %sp

	/* Jump to .text16 segment */
	pushw	%ax
	pushw	$1f
	lret
	.section ".text16", "awx", @progbits
1:
	/* Run iPXE */
	virtcall main

	/* Uninstall iPXE */
	call	uninstall

	/* Boot next device */
	int $0x18
