IBM
Personal
Computer
MACRO
Assembler
Version
2.00
POST
-----
01/10/86
SYSTEM POST AND
BIOS
PROCEDURES
1-17
01-10';'86
INPUT
;
---
I
NT
15
----------------
---------------------------
--------
----------
I
NTERRUPTS
BACK
ON
SAVE SEGMENT
REGI
STER
GET THE CURRENT
SETT
I NGS
RECOVER SEGMENT
RETURN TO
CALLER
I
NTERRUPTS
BACK
ON
SAVE SEGMENT
GET
VALUE
RECOVER SEGMENT
RETURN TO
CALLER
ADDR OF ERROR
MSG
1/0
PAR I
TY
CHECK
01
SPLA
Y ERROR
MSG
MUST
BE
PLANAR
;
INIT
AND
SET
MODE FOR
VIDEO
CALL
V
IDEO
10
PROCEDURE
PR I NT
ERROR
MSG
FAR
FAR
AH,O
AL
,"CRT
MODE
10H
-
P_MSG
DX,DATA
DS,DX
SI,OFFSETDI
AL,40H
013
S I
,OFFSET
02
OF859H
o
1859H
ENDP
OS
DDS
AX,
"EQU
I P
FLAG
OS
-
OS
DDS
AX,
"MEMORY
SIZE
OS
-
MOV
MOV
INT
CALL
MOV
MOV
MOV
TEST
.JNZ
MOV
OUTPUT
(
AX
) I S
SET,
BITS
I
GN
I F I
CANT,
TO I
NO
I
CATE
A
TT
ACHED I 10
BIT
I 5 , 14 = NUMBER OF PR
INTER
S A
TT
ACHED
BIT
13
NOT USED
BIT
I 2 = GAME I
lOA
TT
ACHED
BIT
I 1
,10,9
= NUMBER OF
RS232
CARDS ATTACHED
BIT
8 UNUSED
BIT
7,6
= NUMBER OF 0 I
SKETTE
DR
I VES
00=
1,
0 1=2 , 10 =3 ,
11
=4 ONLY I
FBI
T 0 = 1
BIT
5,4
=
INITIAL
VIDEO
MODE
00
- UNUSED
01 -
40X25
BW
US I
NG
COLOR CARD
10
-
80X25
BW
US I
NG
COLOR CARD
1 I -
80X25
BW
US I
NG
BW
CARD
BIT
3,2
=
PLANAR
RAM
SIZE
(OO=256K,01=512K,10=576K,l1=640K)
BIT
1 = MATH COPROCESSOR
BIT
0 = I
PL
FROM 0 I
SKETTE
- - TH I S
BIT
I
NO
I
CATES
THAT
THERE ARE 0 I
SKETTE
DR
I VES
ON
THE
SYSTEM
013:
ORG
ORG
CASSETTE
10:
JMP
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
NO
OTHER REG I STERS
AFFECTED
;
; ----
--
---------------------------------------------------------------
--;
ASSUME
CS:CODE,DS:DATA
ORG
OF84DH
ORG
0184DH
EQU I PMENT PROC
STI
PUSH
CALL
MOV
POP
IRET
EQUIPMENT
ASSUME
CS:CODE,DS:DATA
ORG
OF841H
ORG
01841H
MEMORY
SIZE
DET
PROC
-
STI-
PUSH
CALL
MOV
POP
IRET
MEMORY
_
SIZE
_
DET
ENDP
.---------
--
- -
--
-- - - - -- -- -- - - -- -- ---
---
--
-- --
--
-
--
-
---
---
--
-- -
---
NM
I I
NT
I PROC NEAR
-
-ASSUME
OS
:DATA
PUSH AX SAVE
OR
I G CONTENTS OF AX
IN
AL,PORT
C
TEST
AL,
OCOH-
PAR I
TY
CHECK?
.JNZ
NMI
1
.JMP
014-
I
NO,
EXIT
FROM
ROUTINE
.----------------
--
- - -
--
- -
---
--
--
- - --
-----
-- -- - - -- -- -- --- - - -
---
--
NON-MASKABLE
I
NTERRUPT
ROUT I
NE:
TH
IS
ROUTI
NE
WILL
PR I
NT
A
"PAR
I
TY
CHECK I
OR
2"
MESSAGE
AND
ATTEMPT
TO
F I
NO
THE STORAGE
LOCATION
CONTA I NI
NG
THE
BAD
PAR I
TY
• I F
FOUND,
THE
SEGMENT ADDRESS
WILL
BE
PR I
NTED
• I F
NO
PAR I
TY
ERROR CAN
BE
FOUND
(I
NTERM I
TT
ANT
; READ
PROBLEM)
? ? ?? ?<-
WILL
BE
PR I
NTED
WHERE
THE
ADORESS
WOULD
NORMALLY
GO.
NO
REG I STERS
THE EQU I P
FLAG
V
AR
I
ABLE
I S
SET
OUR
I
NG
THE
POWER
ON
01
AGNOSTI
CS US I
NG
THE FOLLOW I
NG
HARDWARE ASSUMPT
IONS
I
PORT
60
=
LOW
ORDER
BYTE
OF EQUPMENT
PORT
3FA
= I
NTERRUPT
10
REG I STER OF
8250
BITS
7-3
ARE ALWAYS 0
PORT
378
= OUTPUT PORT OF
PRINTER
--
8255
PORT
THAT
CAN
BE
READ
AS
WELL
AS
WR
I
TTEN
;
---
INT
11
-----------------------------------------------------------
; EQU I PMENT DETERM I NAT I
ON
; TH
IS
ROUTI
NE
ATTEMPTS
TO DETERM I NE
WHAT
OPTI
ONAL
; DEV I CES ARE ATTACHED TO THE
SYSTEM.
PAGE
; - - - I
NT
12 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--
;
MEMORY
SIZE
DET
I
;
TH
I S ROUT I NE DETERM I NES
THE
AMOUNT OF MEMORY I N
THE
SYSTEM I
;
AS
REPRESENTED
BY
THE
SW
I TCHES
ON
THE
PLANAR.
NOTE
THAT
THE
I
; SYSTEM MAY NOT
BE
ABLE
TO USE
1/0
MEMORY
UNLESS
THERE I S A
FULL
I
; COMPLEMENT
OF
64K
BYTES
ON
THE
PLANAR.
I
;
INPUT
I
;
NO
REG I STERS I
; THE
MEMORY
SIZE
VARIABLE
IS
SET
DURING
POWER
ON
DIAGNOSTICS
I
; ACCORD I
NG-TO
THE FOLLOW I
NG
HARDWARE ASSUMPT
IONS
I I
; PORT
60
BITS
3,2
=
00
-
256K
BASE
RAM
;
; 0 I - 51
2K
BASE
RAM
;
;
10
-
576K
BASE
RAM
;
; I 1 -
640K
BASE
RAM
;
; PORT
62
BITS
3-0
INDICATE
AMOUNT OF
1/0
RAM
IN
32K
INCREMENTS I
;
E.G.,
0000
-
NO
RAM
IN
1/0
CHANNEL I
;
0010
-
64K
RAM
IN
1/0
CHANNEL,
ETC.
I
; OUTPUT I
;
(AX)
= NUMBER OF CONT I GUOUS 1K
BLOCKS
OF MEMORY I
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1841
1843
1841
1844
1841
FB
1845
1842
IE
1846 1843
E8
1A 12 R
1847 1846
A I
0013
R
1848 1849
IF
1849
184A
CF
1850
184B
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1840
1889
1840
1890
1840
FB
1891
184E
IE
1892
184F
E8
1AI2
R
1893 1852
A I
0010
R
1894
1855
IF
1895
1856
CF
1896
1857
1897
1898
1899
1900
1901
1859
1902
1859
1903 1859
E9
0000
E
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
185C
1915
1916
185C
50
191 7
1850
E4
62
1918
185F
A8
CO
1919
1861
75
03
1920 1863
EB
58
90
1921
1866
1922 1866
BA
----
R
1923
1869
8E
DA
1924
186B
BE
18E2
R
1925
186E
A8
40
1926
1870
75
03
1927
1872
BE
18F2
R
1928 1875
1929
1875
B4
00
1930
1877
AO
0049
R
1931
187
A CD
10
1932
187C
E8
1997
R
5-100 POST
(01/10/86)