Introduction
Assembly Routine
BASIC Routine
List of Known Planar IDs
List of Planar ADFs
Content by David L. Beem (original HERE). Edited by Tomáš Slavotínek.
Introduction
"Planar" is IBM-speak for what other computer manufacturers call a
motherboard. Starting from the Micro Channel computer systems, which introduced
hardware that could be identified and configured with software, IBM (and other
licensed manufacturers producing Micro Channel systems or planars) set a
semi-unique (there are several duplicates) 16-bit "Planar ID" so that software
can identify the planar it is operating on. Most, but not all, systems that have
a Planar ID will have a Micro Channel bus (there is also the dual bus MCA/PCI
Server 320/520 planar, and the dual bus EISA/PCI Server 320/520 planar, both
with Planar IDs) so the CheckMCA routine normally
should be run before trying to retrieve a Planar ID. The Planar ID value is
gained by clearing the Most Significant Bit ("MSB") on port 94h, getting the
high byte value from port 101h, then the low byte value from port 100h. Once you
have retrieved the Planar ID, set the MSB for port 94h again.
Note: These routines do not incorporate any I/O
port read delays and may get inconsistent and/or inaccurate results on some
planars.
Assembly Routine
;----------------------------------------------
; PlanarID Assembly routine
;
; This routine retrieves the MCA planar ID.
; The CheckMCA routine should be run first to
; make sure it is a Micro Channel computer.
;
; Entry:
; None
;
; Exit:
; AX = Planar ID
;
;----------------------------------------------
PlanarID proc near
cli
out 94h,7Fh
mov DX,101h
in AL,DX
mov AH,AL
dec DX
in AL,DX
out 94h,0FFh
sti
PlanarID endp
BASIC Routine
'----------------------------------------------
' PlanarID BASIC function
'
' This function retrieves the MCA planar ID.
'----------------------------------------------
FUNCTION PlanarID
OUT &H94, &H7F
HighByte = INP(&H101)
LowByte = INP(&H100)
PlanarID = (HighByte * 256) + LowByte
OUT &H94, &HFF
END FUNCTION
|