IBM AT 5170 Technical Reference page 222

Table of Contents

Advertisement

IBM Personal Compute,. NACRO Allllembl.,.
VersIon 2.00
1-23
TESTI
----
06/10/85
POWER ON SELF TEST
(POST)
06-10-85
2339
2340 01FA E4 61
IN
AL,PDRT B
2341
01FC OC OC
OR
AL, RAM PAR OFF
TOGGLE PARITY CHECK ENABLES
2342 01FE E6 6 I
OUT
PORT
B~AL
­
2343 0800 24 F3
AND
AL,RAM PAR ON
2344 0802 E6 6 I
OUT
PORT
B~AL
­
2345 0804 6A FF
PUSH
BYTE-PTR OFFH
PLACE OFFFFH IN STACK
(BUS BITS aNI
2346 0806 58
POP
AX
DELAY -
CAUSING BUS BITS ON
2347 0801 26: 8B 05
NOV
AX,ES: IDll
CHECK PARITY
2348
2349 080A E4 6 I
IN
AL,PORT B
CHECK FOR PLANAR OR
110 PAR I TY CHECK
2350 080C 24 CO
AND
AL,PARITY ERR
2351
060E 261 89 05
NOV
ES: [01] ,AX
CLEAR POSS I BLE PAR [TY ERROR
2352 0611
15 3A
JN'
HOW_BI G_ENO
GO
IF PLANAR OR
[/0
PARITY CHECK
2353
2354
CHECK ALL BITS WRITE OK
2355
2356 Oel3 26: C7 05 FFFF
NOV
WORD PTR ES: [0 I ] ,OFFFFH
TURN ON ALL BITS
2351 oe I e 26: 8B 05
NOV
AX,ESdOl1
CHECK FOR FFFFH
2358 oelB 50
PUSH
AX
SAVE RESULTS
2359 oelc E4 61
IN
AL.PORT B
CHECK FOR PLANAR OR
!
/0
PAR [TY CHECK
2360 081E 24 CO
AND
AL.PARITy ERR
2361
0820 26: 89 05
NOV
ES:[OI].AX
CLEAR pass
J
BLE PAR
J
TY ERROR
2362 0823 58
POP
AX
GET RESULTS
2363 0824 15 21
JNZ
HOW BIG END
GO 1 F PAR I TY CHECK
2364 0826 30 FFFF
CNP
AX ,OFFFFH
2365 0829 15 22
IN'
HOW_BIG_END
2366
2361
CHECK 64K BLOCK FOR PAR I TY CHECK
2368
2369 082B
HOW BIG 2:
-
-SUB
2310 082B 2B CO
AX ,AX
WR I TE ZEROS
231'
0820 B9 8000
NOV
CX,2000H*4
SET COUNT FOR 321( WORDS
2312 0830 F3/ AB
REP
STOSW
FILL 321( WORDS
2313
2374 0832
IE
PUSH
OS
2375 0833 06
PUSH
ES
2376 0834 06
PUSH
ES
I GET ES TO OS
2317 0835
IF
POP
OS
2318 0836 B9 8000
NOV
CX,2000H*4
SET COUNT FOR 32K WORDS
2319 0839 2B F6
SUB
SI •
S I
2380 083B F3/ AD
REP
LODSW
2381
0830 2B FF
SUB
OI,OJ
SET TO BEG I NN I NG OF BLOCK
2382 083F E4 6 I
IN
AL,PORT B
CHECK FOR PLANAR OR 110 PAR
I TY
CHECK
2383 0841
24 CO
AND
AL,PARITY ERR
2384 0843 26: C1 05 0000
NOV
WORD PTR ES:ID1},0
CLEAR POSS IBLE PAR
I TY
ERROR
2385 0848 01
POP
ES
RESTORE SEGMENTS
2386 0849
1 F
POP
OS
2381 084A 15 01
JNZ
HOW_BIG_END
I GO I F PLANAR OR I/O PAR I TY CHECK
2388
2389 084C C3
RET
2390
2391
0840
HOW BIG ENO:
2392 0840 9C
-
-PUSHF
2393 084E BO I C
MOV
AL,ICH
;
SAVE
T~;<;~~~;~;<~~:~;<><><><>
2394 0850 E6 80
OUT
MFG_PORT, AL
<><> CHECKPOINT
IC <><>
2395
2396
SET OR RESET 512 TO 640
INSTALLED FLAG
2391
2398 0852 B8 B383
NOV
AX ,X* (CMOS_I NFOI28+NNI)
SET IRESET 640K STATUS FLAG
2399 0855 E8 000 0 E
CALL
CMOS READ
GET THE DIAGNOSTIC STATUS
2400 0858 OC 60
OR
AL,M640K
2401
065A 81 FB 0200
CNP
BX,512
CHECK MEMORY SIZE
2402 085E 11 02
JA
K640
SET FLAG FOR 512 -> 640
INSTALLED
2403 0860 24 7F
AND
AL, NOT M640K
2404 0862
K640:
2405 0862 86 C4
XCHG
AL,AH
SAVE THE S T A TUS
2406 0864 E8 0000 E
CALL
CMOS_WR I TE
RESTORE THE STATUS
2401
2408 0861 6A
18
PUSH
BYTE PTR RSOA_PTR
RESTORE THE DATA SEGMENT
2409 0869
IF
POP
OS
2410 086A 89
IE 0013 R
MOV
@MEMORY_SIZE,BX
SAVE MENORY SIZE
2411
086E 90
POPF
RESTORE THE FLAG REG I STER
2412 086F C3
RET
2413
2414
i --------- - - ---- -- ­
2415
I TEST. 13A
2416
;
PROTECTED MODE TEST AND MEMORY SIZE DETERMINE
(ABOVE 10241( )
2411
;
2418
;
DESCRIPTION:
2419
THIS ROUTINE RUNS
IN PROTECTED MODE
IN OROER TO ADDRESS ABOVE
1 MEG.
2420
THE NEMORY SIZE
IS DETERMINED AND SAVED IN CMOS.
2421
OUR I NG A POWER UP SEQUENCE THE MEMORY SIZE DETERM I NE
I S DONE WITH
2422
PLANAR AND
I/O PAR I TY CHECKS 0 I SABLEO.
OUR ING A SOFT RESET THE MEMORY
2423
SIZE DETERM [NE W! LL CHECK FOR PAR I Ty ERRORS.
2424
2425
2426 0810
DONE:
2421 0810 6A 08
PUSH
BYTE PTR GOT PTR
j
PO I NT OS TO THE OESCR I PTOR TABLE
2426 0812
IF
POP
OS
~
2429
2430
START WITH SEGMENT ADDRESS
10-0000
lONE MEG AND ABOVE)
2431
2432 0873 C6 06 004C
10
MOV
BYTE PTR OS: (ES TEMP.BASE HI
8YTEI, 10H
2433 0818 C1 06 004A 0000
MOV
OS: ES_TEMP. BASE:LO_WORD, oR
­
2434
2435 087E BO 10
MOV
AL,IOH
<> <><><><> <> <> <> <> <><><>
2436 0880 E6 80
OUT
MFG_PORT ,AL
<> <> CHECKPO! NT
10 <> <>
2437
2438 0882 2B DB
SUB
BX,BX
START WITH COUNT 0
2439
2440
START STORAGE SIZE/CLEAR
2441
2442 0884
NOT DONE 1 :
2443 0884 6A 48
-
PUSH
BYTE PTR ES TEMP
POINT ES TO DATA
2444 0886
POP
PO I NT TO SEGMENT TO TEST
01
ES
~
2445 0881 E8 08A3 R
CALL
HOW BIGI
DO THE FIRST 64K
2446 088A 14 03
JZ
DONEA
CHECK
I F TOP
2447
2448 088C E9 092A R
JMP
DONE I
IGOIFTOP
2449
2450 088F 83 C3 40
OONEAr
ADO
BUMP MEMORY COUNT BY 64K
2451
2452
1-----
DO NEXT 64K
(XXOOOO)
BLOCK
5-50
TESTl

Advertisement

Table of Contents
loading

Table of Contents