IBM AT 5170 Technical Reference page 300

Table of Contents

Advertisement

IBM Pe ....
~onal
Comput"r MACRO Assembl"r-
Ver-alon 2.00
1-13
DISK ----- 06/10/85
FIXEO DISK 810S
06-' 0-85
1223
PAGE
1224
-------------------- --- --- ­
1225
I
CHECK FIXED DISK ERROR REG I STER
1226
.
---- - -- - -
--------------
- -- - - - ------- - --­
1221 0669
CHECK ER
PROC
NEAR
12280669 8A OIFI
-
MOV
OX,HF PORT+l
GET THE ERROR REG I STER
1229 066C EC
IN
AL,DX­
1230 0660 A2 0080 R
MOV
IPHF ERROR, AL
1231 061053
PUSH
ax ­
1232 0611 89 0008
MOV
CX ,B
TEST ALL
8 SITS
1233 0614 DO EO
CK
I:
SHL
AL,I
MOVE NEXT ERROR 8 I T TO CARRY
1234 0616 12 02
JC
CK2
FOUND THE ERROR
1235 0618 E2 FA
LOOP
CK I
KEEP TRY I NG
1236 061A BB 068B R
CK2:
MOV
BX, OFFSET ERR T8l
COMPUTE ADDRESS OF
1231 0610 03 09
ADD
ax,cx
-
ERROR CODE
1238 061F 2E: 8A 21
MOV
AH.BYTE PTR CS: [BX]
GET ERROR CODE
1239 0682 88 26 0014 R
CKEX:
MOV
IPOISK STATUSI,AH
SAVE ERROR CODE
1240 0686 58
POP
ax
124
I
0681 80 FC 00
CMP
AH,O
1242 068A C3
RET
1243 0688 EO
ERR TBL DB
NO ERR
1244 06BC 02 40 01
B8
-
DB
BAD ADOR MARK, BAD SEEK, BAD CMD, UNDEF ERR
1245 0690 04 BB
10 OA
DB
RECORD NOT FND, UNDEF ERR, BAD ECC, BAD-SECTOR
1246 0694
CHECK_ER
E N D P - -
-
-
­
1241
1248
;
---- - - ---- - - -
-
---------------- - - - - -------- ------­
1249
; CHECK DMA
1250
-CHECK ES: BX AND # SECTORS TO MAKE SURE THAT
I
T
'III I
LL
1251
FIT WITHOUT SEGMENT OVERFLOW.
1252
-ES:BX HAS SEEN REVISED TO THE FORMAT SSSS:OQOX
1253
-OK
IF # SECTORS
<
BOH
11FH IF lONG READ OR WRITE)
1254
-OK
IF # SECTORS
=
BOH
11FHI
AND BX <= OOH i04H)
1255
;
-ERROR OTHERWI SE
1256
.-
-----
-
-
-
------
- - -
-
- -- ------------- --- - - ----
-
12510694
CHECK OMA
PROC
NEAR
1258 0694 50
-
PUSH
AX
SAVE REG I STERS
1259 0695 88 BOOO
MOV
AX ,BOOOH
AH
=
MAX
#
SECTORS
AL
=
MAX OFFSET
1260 0698 F6 46 FE 02
TEST
.CMD BlOCK+6,ECC MODE
126 I 069C 74 03
..IZ
CKDI-
­
1262 069E B8 1F04
MOV
AX. 1F04H
ECC IS 4 MORE BYTES
1263 06AI
3A 66 F9
CKDI:
CMP
AH,.CMD 8LOCK+ 1
NUMBER OF SECTORS
1264 06A4 11 06
.JA
CKDOK
-
IT WILL FIT
1265 06A6 12 01
J8
CKDERR
TOO MANY
1266 06A8 3A C3
CMP
AL,Bl
CHECK OFFSET ON MAX SECTORS
1261 06AA 12 03
J8
CKDERR
ERROR
1268 06AC F8
CKDOK:
CLC
CLEAR CARRY
1269 06AD 58
POP
AX
1210 06AE C3
RET
NORMAL RETURN
1211 06AF F9
CKDERR:
STC
,
I NO I CATE ERROR
1212 06BO C6 06 0014 R 09
MOV
IPOISK STATUS
I
,DMA_BOUNDARY
1213 06B5 58
POP
AX
1214 06B6 C3
RET
1215 0681
CHECK_DMA
ENDP
1216
1211
;
---- ---- - - -- - - - - ------------
-
- - -----
--- ­
1218
SET UP
ES: BX-> DISK PARMS
1219
~~~-~~~- ;;~;----~~~~----
-
- -
- -
-------
- ­
1280 0681
1281 06B1 2B CO
-
SUB
AX,AX
GET DISK PARAMETER ADDREsS
1282 06B9 8E CO
MOV
ES,AX
1283
ASSUME
ES:ABSD
1284 068B F6 C2 01
TEST
DL,I
1285 06BE 14 01
JZ
GV D
1286 06CO 26: C4
lEO
I
18 R
ES;SX
->
DRIVE PARAMETERS
1281 06C5 EB 05
3~~
~~6=~F~v~~~T;EC
1288 D6C7
1289 06C7 26: C4
IE 0104 R
LES
SX, ilIHF _ TBL_ VEC
ES: BX
->
DR I VE PARAMETERS
1290 06CC
GV EXIT:
1291
06ce C3
-
RET
1292 06CD
GET _ VEC ENOP
1293
1294
;--- HAROWARE INT
16H --
I
IRQ LEVEL
14
I
1295
1296
F I XED DISK I NTERRUPT ROUT I NE
1291
1298
1299
1300 06CD
HD INT
PRoe
NEAR
-
1301
06CD 50
PUSH
AX
1302 06CE IE
PUSH
DS
1303 06CF E8 0000 E
CALL
DDS
1304 0602 C6 06
DOSE
R FF
MDV
PHF_I NT_FLAG, OFFH
ALL DONE
1305 0601 BO 20
MDV
AL,EOI
NON-SPECIFIC END OF
INTERRUPT
1306 0609 E6 AD
OUT
INT800 ,AL
FOR CONTROLLER
.2
1301 0608 EB 00
oMP
WAIT
1·2
1308 0600 E6 20
OUT
INTAOO,AL
FOR CONTROLLER
"
1309 06DF IF
PDP
OS
1310 06EO FB
STI
RE-ENABlE INTERRUPTS
13
I I
06E 1 B8 9
I
00
MDV
AX,9100H
DEVICE POST
1312 06E4 CD 15
INT
15H
INTERRUPT
1313 06E6 58
PDP
AX
1314 06E1 CF
IRET
RETURN FROM
INTERRUPT
1315
1316 06E8
HD INT
ENDP
1311
-
1318 06E8 30 36 2F 31
30 2F
'06/10/85'
RELEASE MARKER
1319
3835
1320 06FO
CODE
ENDS
1321
END
5-128
DISK

Advertisement

Table of Contents
loading

Table of Contents