IBM AT 5170 Technical Reference page 291

Table of Contents

Advertisement

IBM Personal Computer MACRO Allilembler
VersIon 2.00
1-'
DISK -----
06/10/85
nXEO DISK BIOS
06-10-aS
270
PAGE
271
1------------- - - ------- -------------------------------------- -- ­
272
; FIXED DISK
110 SETUP
273
274
! -
ESTABl I SH TRANSFER VECTORS FOR THE FI XED 01 SK
275
1
-
PERFORM POWER ON DIAGNOSTICS
27'
;
SHOULD AN ERROR OCCUR A
~1701~
MESSAGE IS DISPLAYED
277
278
I - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ---- - - - - - - - - - - - - - - - - - - - - ­
279
ASSUME
CS:CODE,DSIABSO
I WORK OFF OS REGISTER
280
281
0000
DISK SETUP
PROC
NEAR
282
0000 FA
-
ClI
283
000 I 88
~---
R
MOV
AX,ABSO
GET ABSOLUTE SEGMENT
28.
0004 8E 08
MOV
DS,AX
SET SEGMENT REG) STER
285
0006 A I 004C R
MOV
AX, WORD PTR OORG VECTOR
GET 0 I SKETTE VECTOR
28.
0009 A3 0100 R
MOV
WORD PTR 4!ODISK VECTOR,AX
INTO INT 40H
287
OOOC A I 004E R
MOV
288
OOOF A3 0102 R
MOV
:~R~O~~RP!~
I
;~ReE~~g~~~: ~X
28'
0012 C7 06 004C R 0lA9 R
MOV
WORD PTR IIORG VECTOR, OFFSET 0 I SK
10
F (XED 0
I
SK HANDLER
2'0
0018 8C OE 004E R
MOV
WORD PTR OORG-VECTOR+2,CS
2"
OOIC C7 06 0108 R 06CD R
MOV
WORD PTR OHDISK
INT ,OFFSET HD INT
FIXED DISK
INTERRUPT
2'2
0022 ac OE 01DA R
MOV
WORD PTR OHDISK-INT+2,CS
­
2.3
0026 C7 06 0104 R 0000 E
MOV
WORD PTR OHF TBe VEC, OFFSET FD TBl
PARM TABLE DR I VE
eo
2 ••
002C 8C OE 0106 R
MOV
WORD PTR OHF-TBl-VEC+2,CS
­
2 ••
0030 C7 06 0118 R 0000 E
MOV
WORD PTR OHFT TBC VEC,OFFSET FD TBl
PARM TABLE DRIVE 8]
2"
0036 8C OE 011A R
MOV
WORD PTR OHFI-TBL-VEC+2,CS
­
2.7
003A E4 AI
IN
Al.INTBOl
-
-
; TURN ON SECOND INTERRUPT CHIP
2.8
003C 24 8F
ANa
AL,OBFH
299
003E E8 00
JMP
300
0040
EEl
AI
OUT
INTBOI,Al
"2
30 I
0042 E4 21
IN
Al,INTAOI
LET
I
NTERRUPTS PASS THRU TO
302
0044 24 FB
ANa
Al.OFBH
SECOND CHIP
303
0046 EB 00
JMP
30'
0048 E6 21
OUT
INTA01,Al
"2
305
30.
004A FB
STI
307
ASSUME
DS:DATA,ES:ABSO
308
0048 IE
PUSH
as
MOVE ABSO PO I NTER TO
309
004C 01
POP
ES
EXTRA SEGMENT PO INTER
310
0040 E8 0000 E
CALL
005
ESTABLISH DATA SEGMENT
311
0050 C6 06 0074 R 00
MOV
ODISK STATUS
I
,a
RESET THE STATUS INDICATOR
312
0055 C6 06 0075 R 00
MOV
OHF NOM,O
ZERO NUMBER OF F I XED
0 [
SK S
313
005A CEI 06 0076
R
00
MOV
OCONTROL BYTE,
a
31'
005F BO 8E
MOV
Al.CMOS DIAG+NMI
315
0061
E8 0000 E
CAll
CMOS READ
CHECK CMOS VALIDITY
31'
0064 8A EO
MOV
AH,AC
SAVE CMOS FLAG
317
0066 24 CO
ANa
AL.BAD BAT+BAD CKSUM
CHECK FOR VAL
10
CMOS
318
0066 74 03
JZ
LI
­
-
319
006A E9 00F8 R
JMP
POD_DONE
I CMOS NOT VALID -- NO FIXED DISKS
320
0060
1I:
321
0060 80 E4 F7
ANa
AH,NOT HF FAIL
ALLOW Fl XED 01 SK
IPL
322
0070 80 8E
MOV
AL.CMOS DTAG+NMI
WRITE
IT BACK
323
0012 E8 0000 E
CALL
CMOS WRITE
32.
0075 80 92
~OV
Al.CMOS DISK+NMI
325
0077 E8 0000 E
CALL
CMOS READ
32'
007A C6 06 0077 R 00
OOV
IIPORT OFF.O
ZERO CARD OFFSET
327
007F 8A Da
OOv
Bl,AL-
SAVE F I XED DISK BYTE
328
0061
25 OOFO
ANa
AX,OOOFOH
GET FIRST DRIVE TYPE AS OFFSET
32.
0064
74 72
JZ
POD_DONE
NO FIXED DISKS
330
331
00a6 3C FO
COP
AL.OFOH
CHECK FOR EXTENDED DR I VE TYPE BYTE USE
332
0088 75
10
JNE
L2
USE DRIVE TYPE
I
-->
14 IF NOT IN USE
333
33'
ooaA 80 99
OOv
AL.CMOS DISK
I+NMI
GET EXTENDED TYPE FOR DR I VE C:
335
ooac E8 0000 E
CALL
CMOS READ
-
FROM CMOS
33.
OOaF 3C 00
COP
Al,O-
I S TYPE SET TO ZERO
337
0091
74
65
JE
POD DONE
EXIT IF NOT VALID AND NO FIXED DISKS
338
0093 3C 2F
eMP
Al.47
IS TYPE WITHIN VALID RANGE
339
0095
77 61
JA
POD_DONE
EXIT WITH NO FIXED DISKS IF NOT VALID
3.0
0097 CI EO 04
SHL
AX.4
ADJUST TYPE TO
HIGH
NIBBLE
3.,
009A
L2.
3'2
009A 05 FFFO E
AOO
AX. OFFSET FD TBl -
]00
COMPUTE OFFSET OF FIRST DRIVE TABLE
3'3
0090 26: A3 0104 R
OOV
WORD PTR OHF-TBl VEC. AX
SAVE IN VECTOR POINTER
3 ••
OOAI C6 06 0075 R 01
OOV
OHF NUM,]
-
-
AT LEAST ONE DR
I
VE
3.5
00A6 8A C3
MOV
Al.Bl
3 ••
00A8 CO EO 04
SHL
Al,4
; GET SECOND DR I VE TYPE
3.7
OOAB 14 2A
JZ
SHORT l4
, ONLY ONE DRIVE
3'8
OOAD B4 00
MOV
AH,O
3.9
350
OOAF 3C FO
eMP
Al,OFOH
CHECK FOR EXTENDED
DR I
VE TYPE BYTE USE
351
OOBI
75 10
JNE
L3
USE DRIVE TYPE I
-->
14 IF NOT IN USE
352
353
00B3 BO 9A
MOV
Al,CMOS DISK 2+NMI
GET EXTENDED TYPE FOR DR I VE
0:
35'
00B5 E8 0000 E
CAll
CMOS REAO
FROM CMOS
355
00B8 3C 00
eMP
Al,O-
I
S TYPE SET TO ZERO
35.
OOBA 74 IB
JE
SKIP IF SECOND FIXED DISK NOT VALID
L'
357
OOBC 3C 2F
eMP
Al,47
IS TYPE WITHIN VALID RANGE
L'
358
OOBE 77
17
JA
SKIP IF NOT VALID
359
OOCO Cl EO 04
SHL
AX,4
AD..JUST TYPE TO HIGH NIBBLE
3.0
00C3
l3:
3.,
00C3
05
FFFO E
ADD
AX, OFFSET FD TBl - [60
COMPUTE OFFSET FOR SECOND F I XED
0
I SK
3.2
00C6 8B 08
MOV
BX ,AX
­
3.3
ooce
2E:
83 3F 00
eMP
WORD PTR CS: [BX) ,0
CHECK FOR ZERO CYLINDERS IN TABLE
3 ••
OOCC 14 09
JE
SKIP DRIVE IF NOT A VALID TABLE ENTRY
L'
3.5
OOCE 26:
A3 0118 R
"OV
WORD PTR OHFI
TBl VEC,AX
3 ••
0002 C6 06 0075 R 02
MOV
OHF_NUM.2
-
-
TWO DR I YES
3.7
0007
L',
3.8
0007 82 80
MOV
Dl.80H
CHECK THE 'CONTROllER
3 ••
0009 84
14
OOV
AH,14H
USE CONTROllER
0
I AGNOST I C COMMAND
370
OODB CD
13
INT
13H
CAll BIOS WITH DIAGNOSTIC COMMAND
371
0000 72
lA
.JC
CTl ERR X
DI SPLAY ERROR MESSAGE IF BAD RETURN
372
OODF A I
a06C
R
OOV
AX,
'iTi
MER lOW
GET START TIMER COUNTS
373
00E2 88 08
OOV
BX, AX
­
374
00E4 05 0444
AOO
AX.o-182
60 SECONDS·
18.2
375
00E7 88 C8
MOV
CX,AX
37.
00E9 E8 0 I 04 R
CAll
HD RESET ]
SET UP DR I VE 0
377
OOEC 80 3E 0075 R 01
COP
4!OHF NUM. T
WERE THERE TWO DRIVES?
378
OOFI
76 05
JBE
POD-DONE
NO-ALL DONE
37.
00F3 B2 81
MOV
DL.8IH
SET UP DR I VE
I
380
OOFS Ea 0104 R
CALL
HD_RESET_I
381
OOFe
POD DONEz
382
00F8 C3
-
RET
383
DISK
5-119

Advertisement

Table of Contents
loading

Table of Contents