IBM AT 5170 Technical Reference page 271

Table of Contents

Advertisement

IBM Personal Computer MACRO A""embler
Version 2.00
1-3
DSKETTE -- 06/10/85
DISKETTE BIOS
06-10-85
20'
PAGE
20.
ASSUME
CS:CDDE,DS:DATA,ES:DATA
201
,LI ST
208
0000
DISKETTE 10 1
PROC
ENTRY PO I NT FOR ORG OEC59H
209
0000 FB
STI­
I
I NTERRUPTS BACK ON
210
0001
55
PUSH
8P
; USER REG I STER
211
0002 57
PUSH
01
I USER REGISTER
212
0003 52
PUSH
OX
I HEAD "
DRIVE" OR USER REGISTER
213
0004 53
PUSH
BX
I 8UFFER OFFSET PARAMETER OR REG I STER
214
0005 51
PUSH
ex
; TRACK "-SECTOR ,
OR USER REGISTER
215
0006 8B EC
MOV
BP,SP
BP
0::> PARAMETER LIST DEP. ON AH
21.
ISP]
= SECTOR"
211
IsP+
I] :: TRACK"
216
Isp+ 2]
0:: BUFFER OFFSET
21'
FOR RETURN OF DR I VE PARAMETERS:
220
CLI[BPj
:: BITS 7&6 HI BITS OF MAX CYL
221
BITS 0-5 MAX SECTORS/TRACK
222
CH/[BP+I]
=
LOW 8 BITS OF MAX CYL.
223
BL/IBP+2]
= BITS 7-4 = 0
22.
BITS 3-0
=
VALl 0 CMOS TYPE
22'
BH/[BP+3]
0
22.
DL/IBP+4]
=
#
DRIVES
INSTALLEO
227
DH/IBP+5]
0:: MAX HEAD'
226
DI/IBP+6]
=
OFFSET TO DISK BASE
229
0008
IE
PUSH
BUFFER SEGMENT PARM OR USER REG I STER
0'
230
0009 56
PUSH
51
USER REG I STERS
231
OOOA E8
DODD
E
CALL
DDS
SEGMENT OF B [aS OAT A AREA TO OS
232
0000
80 FC 18
eMP
AH,IFNC TAE-FNC TAB)
12
CHECK FOR> LARGEST FUNCTION
233
0010 72 02
JB
OK_FUNC-
-
FUNCT ION OK
23'
235
00 I 2 B4
14
MOV
AH,I4H
REPLACE WITH KNOWN
I
NV AL I
0
FUNCT I ON
236
0014
OK FUNC:
237
0014 80 FC 01
-
CMP
AH,l
RESET OR STATUS
?
238
0017 76 OC
JBE
OK DRV
IF RESET OR STATUS DRIVE ALWAYS OK
239
0019 80 FC 08
eMP
AH78
READ OR I VE PARMS
?
240
OOIC 74 07
JZ
OK DRV
I F SO DR I VE CHECKED LATER
241
OOIE 80 FA 01
eMP
DL-:-I
DRIVES
a
AND
1 OK
242
0021
76 02
JBE
OK ORV
IF 0 OR
I THEN ,JUMP
243
0023 B4
14
MOV
AH-:-!4H
REPLACE WITH KNOWN INVALID FUNCTION
244
0025
245
0025 8A CC
MOV
CL,AH
CL
=
FUNCTION
246
0027 32 ED
XDR
CH,CH
CX
=
FUNCTION
247
0029 00 EI
SHL
CL,I
FUNCTION TIMES
2
248
002B
BB
004E R
MOV
BX,OFFSET FNC TAB
LOAD START OF FUNCTION TABLE
249
002E 03 09
ADD
BX,CX
-
ADD OFFSET INTO TABLE => ROUTINE
250
0030 8A E6
MDV
AH,OH
AX :: HEAD , , , OF SECTORS OR DASD TYPE
251
0032 32 F6
XDR
DH,OH
OX :: DRIVE'
252
0034 8B FO
MDV
SI,AX
;
S I
:: HEAD ' , ' OF SECTORS OR DASD TYPE
253
0036 8B FA
MDV
OJ ,DX
I 01 :: DRIVE.
254
0038
8A
26 0041
MDV
AH,@DSKETTE STATUS
: LOAD STATUS TO AH FOR STATUS FUNCTION
255
003C C6 06 0041
DO
MDV
ODSKETTE_STATUS,O
;
I N I TI AL I ZE FOR ALL OTHERS
25.
257
THROUGHOUT THE DISKETTE BIOS,
THE FOLLOWING INFORMATION IS CONTAINED IN
256
THE FOLLOWING MEMORY LOCATIONS AND REGISTERS.
NOT ALL DISKETTE BIOS
25.
FUNCTIONS REQUIRE ALL OF THESE PARAMETERS.
2.0
2.,
01
DRIVE'
2.2
51-HI
HEAD.
2.3
S I-LOW
I
,
OF SECTORS OR DASD TYPE FOR FORMAT
2 ••
ES
BUFFER SEGMENT
2.'
[BP]
"
SECTOR
2 ••
IBP+l ]
TRACK.
2.7
IBP+2]
BUFFER OFFSET
2.6
ACROSS CALLS TO SUBROUT 1 NES THE CARRY FLAG
I CY= I I
WHERE
I NO I CATED IN
I
2.'
270
SUBROUT I NE PROLOGUES, REPRESENTS AN EXCEPT I ON RETURN
(NORMALLY AN ERROR
271
CONDITION).
IN MOST CASES,
WHEN CY
= 1, @DSKETTE STATUS CONTAINS THE
272
SPEC I F I C ERROR CODE.
­
273
IAHI
=
IltDSKETTE STATUS
214
0041
2£, FF
17
CALL
WORD PTR CS: [BX1
CALL THE REQUESTED FUNCT I ON
275
0044 5E
POP
51
RESTORE ALL REGISTERS
276
0045
IF
POP
OS
277
0046 59
POP
ex
278
0047 5B
POP
BX
279
0048 5A
PDP
ox
280
0049 SF
POP
01
281
004A 50
PDP
BP
282
004B CA 0002
RET
2
; THROW AWAY SAVED FLAGS
263
26'
:.~~ -~~; -~;
- - - - - -
~ ~~;
-
~~~~~
- - - - - - - - - -
-
- - ­
285
004E 007E R
AH
00 I RESET
286
0050 00E8 R
-
OW
DISK-STATUS
AH
01; STATUS
287
0052 00F4 R
OW
0 I SK-READ
AH
02; READ
288
0054 0 I 00 R
OW
DISK-WRITE
AH
031 WRITE
289
0056 0 I OC R
OW
D! SK-VERF
AH
041 VERIFY
290
0058 0 I 18 R
OW
D! SK-FORMAT
AH
05; FORMAT
291
005A a 16A R
OW
FNC ERR
AH
06;
INVALIO
292
005C 016A R
OW
FNC-ERR
AH
01;
INVALID
293
005E 0174 R
DW
0
J
SK PARMS
AH
08; READ DRIVE PARAMETERS
294
0060
aT
6A R
OW
FNC ERR
AH
09;
INVALID
295
0062 0 I 6A R
OW
FNC-ERR
AH
OAj
INVALID
296
0064 0 I 6A R
OW
FNC-ERR
AH
OB,
INVALID
297
0066 016A R
OW
FNC-ERR
AH
OC;
INVALID
298
0068 0 I 6A R
OW
FNC-ERR
AH
00;
INVALID
299
006A 0 I 6A R
OW
FNC-ERR
AH
DE;
INVALID
300
DD6C 016A R
OW
FNC-ERR
AH
OF;
INVALID
30 I
006E 0 I 6A R
OW
FNC-ERR
AH
10;
INVALID
302
0070 016A R
OW
FNC-ERR
AH
II;
INVALID
303
0072 016A R
OW
FNC-ERR
AH
12;
INVALID
304
0074 016A R
OW
FNC-ERR
AH
13;
INVALID
305
0076 016A R
OW
FNC-ERR
AH
14;
INVALID
306
0078 021A R
OW
DISK TYPE
AH
15; READ DASD TYPE
307
007A 023C R
OW
DISK-CHANGE
AH
16; CHANGE STATUS
308
007C 0267 R
OW
FORMAT SET
AH
17; SET DASO TYPE
309
= 007E
FNC_TAE EQU
,
-
END
310
311
OISKETTE_IO_1
ENOP
DISKETTE
5-99

Advertisement

Table of Contents
loading

Table of Contents