IBM AT 5170 Technical Reference page 242

Table of Contents

Advertisement

IBM Personal Computer MACRO A •• embler
Veraion 2.00
1-13
TEST2 ---- 06/10185
POST TESTS AND INITIALIZATION ROUTINES
06-10-85
1321 06C8 14 46
"Z
J_OK3
IF SO JUMP
1322
1323 06CA BA 05Fl
MOV
DX,OSF1H
FIXED DISK DIAGNOSTIC REGISTER
1324 06CD EC
IN
AL.DX
READ F I XED 0 I SK TYPE CODE
1325 06CE 24 FO
AND
AL
I
1 1 1 10000B
KEEP ONLY UNIQUE CODE FOR F/o
1326 0600 3C AD
CMP
AL
I
10 100000B
F I XED 0 I SK ADAPTER
?
1321 0602 14 2F
"Z
J_FAIL
MUST BE COMBO ELSE ERROR
1328
1329 0604 B3 OF
MOV
BL ,OFH
; OUTER LOOP COUNT
IA
1 T FOR BUSY OFF
1330 0606 2B C9
SUB
CX,CX
1331 0608 BA 01Fl
MOV
DX,OIFIH
;
HARD FILE STATUS PORT
1332 060B
J_OK 1:
1333 060B EC
IN
AL,DX
GET THE STATUS
1334 060C A8 80
TEST
AL,080H
IS THE CONTROLLER BUSY?
1335 06DE 14 DC
JZ
J OK2
CONT I NUE I F NOT
1336 06EO E2 F9
LOOP
J-OK 1
TRY AGAIN
1331 06E2 FE CB
DEC
BL
DECREMENT OUTER LOOP
1338 06E4 15 F5
JNZ
J OKI
TRY AGAIN IF NOT ZERO
1339 06E6 24 DC
AND
AL,OCH
BITS 2
&
3
=
0 IF MULTI
DATA CAPABLE
1340 06E8 14 26
JZ
J OK3
GO
IF YES
1341 06EA EB 17
JMP
SHORT ,J_FA I L
NO MULTIPLE DATA RATE CAPABILITY
1342 06EC
J_OK2;
1343 06EC BA 01F4
MOV
oX,IF4H
VERIFY MULTIPLE DATA RATE CAPABLE
1344 06EF BO 55
MOV
AL,055H
WR I TE TO THE CYL I NDER BYTE
1345 06Fl
EE
OUT
DX,AL
1346 06F2 EB 00
JMP
110 DELAY
' _ 2
1341 06F4 EC
IN
AL,DX
CHECK DATA WRITTEN
=
DATA READ
1348 06F5 3C 55
CMP
AL ,055H
1349 06Fl
Hi
OA
JNZ
J FAIL
GO IF NOT
1350 06F9 BO AA
MOV
AL.OAAH
WRITE ANOTHER PATTERN
1351 06FB EE
OUT
DX,AL
1352 06FC EB 00
110
DELAY
' _ 2
""P
I
1353 06FE EC
IN
AL,oX
1354 06FF 3C AA
CMP
AL.OAAH
I S DATA PATTERN THE SAME?
13550701
14 00
"Z
J_OK3
GO IF SO
1356
1351 0103
J_FAIL:
1358 0703 80 OE 0016 R 40
OR
ClMFG_ERR_FLAG+ 1 .0SK_FA IL;
<><><> <><><><><><><> <> <> <>
1359
<><> DISKETTE FAILED
1360 0708 BE 0000 E
MOV
5 I ,OFFSET E60 I
GET ADDRESS OF MESSAGE
1361 0708 E8 0000 E
CALL
E MSG
GO PRINT ERROR t.!ESSAGE
1362 070E EB IE
"MP
SHORT F15C
SK I P SETUP I F ERROR
1363
1364 OlIO
J_OK3:
1365 0710 80 DE 008B R 01
OR
OLASTRATE. DUAL
I
TURN ON DSP/COt.!80 FLAG
1366
1361
;-----
INITIALIZE FLOPPY FOR DRIVE TYPE
1368
1369 0115 BO 3D
MOV
AL,3DH
<><><><><><><><><><><><>
1310 0717 E6 80
OUT
MFG PORT ,AL
<><> CHECKPOINT
30
<><>
1311 0719 E8 0000 E
CALL
DSKETTE_SETUP
INITIALIZE FLOPPY
1372
1373
;-----
CHECK FOR 2ND DISKETTE DRIVE
1374
1315 011C E8 0000 E
CALL
005
INSURE DATA SEGt.!ENT
1316 011F 8A 26 0091
R
MOV
AH,.oSK STATE+ I
GET STATE OF SECOND DR I VE
1311 0123 OA E4
OR
AH.AH
-
I S THERE A DR I VE 2 ATTACHED?
1378 0725 14 01
JZ
FI5C
;
SKIP
IF NOT
1379012180 OE 0010
OR
8YTE PTR "EQUIP FLAG,40H; ELSE SET SECOND DRIVE
INSTALLED
1380 012C 84 FF
MOV
AH,OFFH
-
SET TEST t.!ASK FOR DRIVE PRESENT
1381
012E
FISC:
1382 072E 80 8E
MOV
AL,CMOS DIAG+NMI
I GET THE CMOS DIAGNOSTIC STATUS
1383 0730 E8 0000 E
CALL
CMOS READ
1384 0733 A8 CO
TEST
AL,BAO 8AT+8AO CKSUt.!
BATTERY!CHECKSUt.! OK
1385 0735 75 22
JNZ
ROM_SCAN I
-
BYPASS 0 I SK SETUP
I F NOT
1386
1387 0737 BO 90
MOV
AL,Ct.!OS DISKETTE+NMI
ADDRESS
0 I SKETTE TYPE BYTE
1388 0739 E8 0000 E
CALL
Ct.!OS READ
GET
0 I SKETTE TYPES
1389
onc
24 OF
AND
AL,OQFH
LOOK AT SECOND DR I VE TYPE DEF I NED
1390 013E 3A C4
e"p
AL,AH
ARE 80TH INDICATORS ZERO
1391 0140 14 01
JE
FI5D
SKIP IF NO SECOND DRIVE
1392
1393 0142 22 C4
AND
AL,AH
ARE BOTH INDICATORS NON-ZERO
1394 0744 15 03
"NZ
FISD
SKIP IF DRIVE FOUND AND DEFINED
1395
1396 0746 E8 0000 E
CALL
;
SET 8AD_CONFIG IN CMOS_DIAG
1391
1398
INITIALIZE HARD FILE
1399 0749
1400 0749 BO 3E
"OV
AL,3EH
<><><><><><><><><><> <> <>
1401 014B E6 80
OUT
MFG_PORT. AL
<><> CHECKPOINT
3E <><>
1402
1403 0140 BO 92
MOV
AL,CMOS DISK+NMI
INSURE CMOS DEFINES TYPE OF FIXED DISK
1404 014F E8 0000 E
CALL
CMOS READ
1405 0752 3C 00
CMP
AL,OH
INSURE TYPE
IS DEFINED
1406 0754 14 03
ROM_SCAN 1
8YPASS DISK SETUP IF NOT
1401
"Z
1408 0156 E8 0000 E
CALL
DISK_SETUP
INITIALIZE HARD FILEISI
1409
1410
1411
; TEST.22
1412
; CHECK FOR OPTIONAL ROt.! FROt.! C800->EOOO
IN 2K BLOCKS
:
1413
IA VALID MODULE HAS
'55AA'
IN THE FIRST 2 LOCATIONS:
1414
LENGTH INDICATOR
(LENGTH/512)
IN THE 3RD LOCATION
:
1415
AND TEST/INIT. CODE STARTING IN THE 4TH LOCATION)
1416
14110759
~~~-;;~~~~--
~
ST
I
1418 0759 F8
ALLOW
INTERRUPTS
1419 075A BO 3B
MOV
AL.38H
<> <> <> <> <> <><><> <> <> <><>
1420 075C E6 80
OUT
t.!FG PORT ,AL
<><> CHECKPOINT
3B <><>
1421 075E E8 0000 E
CALL
DDS-
SET REAL MODE DATA SEGMENT
1422 0761 BO OA
MOV
AL,IO
LINE FEED ON DISPLAY
1423 0763 E8 0000 E
CALL
PRT_HEX
1424 0766
ROM_SCAN:
1425
1426
SET Dt.!A MASK AND REQUEST REGISTERS
1421
1428 0166 2A CO
SUB
AL,AL
1429 0768 E6 02
OUT
Dt.!AI8+2,AL
SEND ZERO TO t.!ASK REG I STER
1430 076A E8
00
""P
' _ 2
1431
076C E6 04
OUT
DMAI8+4,AL
SEND ZERO TO REQUEST REG I STER
1432 016E BA C800
"OV
DX.OC800H
SET BEGINNING ADDRESS
14330111
ROM SCAN2a
14340111 8E OA
-
MOV
DS,DX
5-70
TEST2

Advertisement

Table of Contents
loading

Table of Contents