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