POST Probes -> Was -> Re: Here's a plan

David J. Coffin dcoffin at shore.net
Thu Mar 11 13:38:01 CET 1999


> If you're looking for a basic functionality POST card, I did a quickie web
> search and came up with several.  Check out:
>
> http://megacode.com/index.htm
> http://www.datadepo.com/mpost.htm
> http://www.micro2000.com/postprobe.htm

     These three products are hardwired to show only port
0x80.  That's good enough for technicians, but engineers
need more.  You might be able to change the port number by
cutting address lines and inserting inverters.

> http://www.quicktech.com/qppcplus.htm

     This card can be set for *any* ISA port 0x0 to 0x3ff,
although the web page doesn't explain how.  Unfortunately,
this company's phone number has been disconnected.

     Here's why having POST cards on two or three different
ports is so important:

--
; Print a word value to ports 300h/84h and an optional
; tag to 80h.  Give the user two seconds to read it.

%macro		print	1-2
		push	eax
		push	dx
		mov	ax, %1
		out	84h, al
		mov	dx, 300h
		mov	al, ah
		out	dx, al
%if %0 > 1
		mov	al, %2
		out	80h, al
%endif
		mov	eax, 600000	; Change this to adjust delay
%%loop:		dec	eax
		jnz	%%loop
		pop	dx
		pop	eax
%endmacro
--

     When writing code, you insert something like this:

--
%include "debug.mac"

print ax,0xaa		; Print 16-bit values
print dx,cl
print si,0x51
print ds,0xd5
print [memval],0x22

ror ebx,16		; Print a 32-bit register
print bx,0xb1
ror ebx,16
print bx,0xb2
--

     It takes some trial and error to get the delay count
right.  It depends on your CPU, and whether the BIOS is
running from ROM or RAM (RAM is about 30 times faster).

     Early POST code runs with no stack, because DRAM is
not yet ready.  Any print statements made in stackless
code will destroy EAX and DX.

				Dave Coffin  3/11/99
--
David Coffin		Evening: 781-397-9932
967 Salem Street	Daytime: 978-686-6468x341
Malden, MA 02148-4515	E-mail:  dcoffin at shore.net




More information about the openbios mailing list