Plan 9 from Bell Labs’s /usr/web/sources/contrib/quanstro/root/sys/src/boot/pc-e820/real820.s

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


/*
 * do e820 scan before we switch to protected mode.
 * the loader is really getting in the way here.
 */

#define	smap		0x534d4150
#define	e820tab		(0x1200 + 0x20)		/* CONFADDR */
#define	e820sz		20
#define	e820end		(16*e820sz+e820tab)

e820:
	OPSIZE; BYTE $0x1e			/*	pushl ds			*/
	OPSIZE			/* 66 */		/*	.code16			*/
	XORL	BX, BX				/* 	xorl 	ebx, ebx		*/
	OPSIZE; BYTE $0x8e; BYTE $0xdb	/* 	movl 	ebx, ds		*/
	OPSIZE; MOVL	$e820end, AX		/*	movl 	$e820end, eax	*/
	BYTE $0x67; BYTE $0x66	/**/
	MOVL	BX, 0(AX)			/*	movl	bx, 0(eax)	*/
	LWI(e820tab, rDI)	/* 31 db bf */	/*	mov	$e820tab, di	*/
_1b:						/*1:				*/
	OPSIZE			/* 66 */
	MOVL	$0xe820, AX	/* b8 20 e8 0 0 */	/*	movl	$0xe820, ax	*/
	OPSIZE
	MOVL	$smap, DX			/*	movl	$smap, edx	*/
	LWI(20, rCX)		/* 14 00 */	/*	mov	$20, cx		*/
	OPSIZE; BYTE $0x1e	/* 66 1e */	/*	pushl	ds		*/
	OPSIZE; BYTE $0x07	/* 66 07 */	/*	popl	es		*/
	INT	$0x15		/* cd 15 */	/*	int	$0x15		*/
	JC	_1f		/* 72 xx */	/*	jc	1f		*/
	OPSIZE
	CMPL	AX, $smap	/* 66 3d PMAS */	/*	cmpl	$smap, eax	*/
	JNE	_1f		/* 75 xx */
/*	INCB	(e820end) */			/*	incb	e820end		*/
	BYTE	$0xfe; BYTE $0x06; BYTE $0x60; BYTE $0x13
	OPSIZE
	ADDL	$e820sz, DI	/* 66 83 c7 14 */	/*	addl	$e820sz, di	*/
	OPSIZE			/* 66 */
	CMPL	DI, $e820end	/* 81 ff 10 04 */	/*	cmpl	di, e820end	*/
	JE	_1f		/* 74 xx (06)	/*	je	1f		*/

	OPSIZE			/* 66 */
	CMPL	BX, $0		/* 83 fb 00	*	cmpl	$0, ebx		*/
	JNE	_1b				/*	jne	1b		*/

_1f:
	BYTE $0x66; BYTE $0x1f			/*	popl	ds	*/

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.