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.
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@shore.net