DR I VE TYPE TABLE
ASSUME
CS :CODE,DS :DATA ,ES :DATA
THROUGHOUT THE 0 I SKETTE B I OS, THE FOLLOW I NG I NFORMAT ION I S CONT A I NED IN
THE FOLLOW I NG MEMORY LOCAT IONS AND REG I STERS. NOT ALL 0 I SKETTE B I OS
FUNCT IONS REQU I RE ALL OF THESE PARAMETERS.
5-25
I»~>
ENTRY POINT FOR ORG OEC59H
;
I NTERRUPTS BACK ON
; USER REG I STER
USER REG I STER
HEAD "
DR I VE ,
OR USER REG I STER
BUFFER OFFSET PARAMETER OR REG I STER
TRACK '-SECTOR ,
OR USER REG I STER
BP
=> PARAMETER LIST DEP. ON AH
~~~!
I] :
~~~6~R,'
[BP + 2 ]
= BUFFER OFF SET
FOR RETURN OF DR I VE PARAMETERS
I
CLI[BP] = BITS 7&6 HI BITS OF MAX CYL
BITS 0-5 MAX SECTORS/TRACK
~~n~~:H
:
~~~S\~~T; ~F
MAX CYL.
:
~~~I~~:;I
:
r : : I : : :
:N::~~:E:MOS
TYPE
; DHI
BP+5
= MAX HEAD ,
; 0
II
BP+6
= OFFSET TO 0 I SK BASE
; BUFFER SEGMENT PARM OR USER REG I STER
; USER REG I STERS
;
SEGMENT OF B I OS OAT A AREA TO OS
; CHECK FOR > LARGEST FUNCTI ON
; FUNCTION OK
,
; REPLACE WITH KNOWN I NVAL I 0 FUNCT I ON
RESET OR STATUS
?
IF RESET OR STATUS DRIVE ALWAYS OK
READ DR I VE PARMS
?
I F SO DR I VE CHECKED LATER
DR I VES 0, 1 ,2 AND 3 OK
I F 0 OR 1 THEN JUMP
REPLACE WITH KNOWN I NV AL I 0 FUNCT I ON
CL = FUNCT I ON
CX = FUNCT I ON
FUNCTI ON TIMES 2
LOAD START OF FUNCTION TABLE
ADD OFFSET I NTO TABLE => ROUTI NE
AX = HEAD ' , ' OF SECTORS OR DASD TYPE
OX = DRIVE'
S I
= HEAD ' , ' OF SECTORS OR DASD TYPE
01
= DRIVE'
LOAD STATUS TO AH FOR STATUS FUNCTION
INITIALIZE FOR ALL OTHERS
1-3
01-10-86
SRT=D, HD UNLOAD=OF -
1ST SPEC I FY BYTE
HD LOAD= 1, MODE=DMA -
2ND SPEC I FY BYTE
WA ITT I ME AFTER OPERAT I ON TILL MOTOR OFF
512 BYTES
I
SECTOR
EOT
( LAST SECTOR ON TRACK)
GAP LENGTH
DTL
GAP LENGTH FOR FORMAT
FILL BYTE FOR FORMAT
HEAD SETTLE T I ME
(M I LL I SECONDS)
MOTOR START T I ME
(I
18 SECONDS l
MAX. TRACK NUMBER
DATA TRANSFER RATE
DISKETTE (01/10/86)
7FH
80H
01
: DRI VE ,
CL,AH
CH,CH
CL,I
BX, OFFSET FNC TAB
BX,CX
-
AH,DH
DH,DH
S I ,AX
DI,DX
AH,ClDSKETTE STATUS
ClDSKETTE_STATUS, 0
AH,I
OK DRV
AH~8
OK DRV
DL~3
OK DRV
AH~14H
OS
SI
DDS
AH, (FNC TAE-FNC TAB)
12
OK FUNC-
-
AH~14H
PROC
FAR
BP
01
OX
BX
CX
BP,SP
01 SK
INT 1
DSKETTE SETUP
DISKETTE 10 1
NEC OUTPUT -
RESULTS
SEEK
DDS:NEAR
01 SK BASE:NEAR
WAITF:NEAR
MD TBL 1 : NEAR
MD-TBL2: NEAR
MD-TBL3: NEAR
MD-TBL4: NEAR
MD-TBL5: NEAR
MD:TBL6: NEAR
EQU
EQU
STRUC
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
ENDS
MOV
XOR
SHL
MOV
ADD
MOV
XOR
MOV
MOV
MOV
MOV
PUSH
PUSH
CALL
CMP
JB
MOV
OK FUNC:
-
CMP
JBE
CMP
JZ
CMP
JBE
MOV
DISKETTE 10 1
STI-
PUSH
PUSH
PUSH
PUSH
PUSH
MOV
EXTRN
EXTRN
EXTRN
EXTRN
EXTRN
EXTRN
EXTRN
EXTRN
EXTRN
CODE
SEGMENT BYTE PUBL I C
PUBLIC
PUBLIC
PUBLIC
PUBLIC
PUBLIC
PUBLIC
.
----------------------------------------------------------------
DR_TYPE
LABEL
BYTE
DB
0 1
; DR I VE TYPE, MED I A TABLE
OW
OFFSET MD TBL 1
DB
02+B I T70N-
OW
OFFSET MD TBL2
DB
02
-
OW
OFFSET MD TBL3
DB
03
-
OW
OFFSET MD TBL4
DB
04+B I T70N-
OW
OFFSET MD TBL5
DB
04
-
OW
OFFSET MD_TBL6
DR TYPE E
=1
; END OF TABLE
DR:CNT -
EQU
(DR_TYPE_E-DR_TYPEl/3; NUMBER OF DRIVE TYPES
PAGE
MD STRUC
MD-SPEC 1
MD-SPEC2
MD-OFF TIM
MD-BYT-SEC
MD-SEC-TRK
MD-GAP-
MD-DTL
MD-GAP3
MD-F IL BYT
MD-HD TIM
MD-STR TIM
MD-MAX-TRK
MD-RATE
MD:STRUC
BIT70FF
BIT70N
215
216
217
218
0000
219
0001
220
0002
221
0003
222
0004
223
0005
224
0006
225
0007
226
0008
227
0009
228
OOOA
229
OOOB
230
OOOC
231
0000
232
233
= 007F
234
= 0080
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
0000
254
255
256
257
258
259
260
0000
261
0000 01
262
0001
0000 E
263
0003 82
264
0004 0000 E
265
0006 02
266
0007 0000 E
267
0009 03
268
OOOA 0000 E
269
OOOC 84
270
0000 0000 E
271
OOOF 04
272
00100000 E
273
= 0012
274
= 0006
275
276
0012
277
0012 FB
278
0013 55
279
0014 57
280
0015 52
281
0016 53
282
0017 51
283
0018 8B EC
284
285
286
287
288
289
290
291
292
293
294
295
296
297
001A
IE
298
001 B 56
299
001 C E8 0000 E
300
001 F 80 FC 19
301
0022 72 02
302
0024 B4 14
303
0026
304
0026 80 FC 01
305
0029 76 OC
306
002B 80 FC 08
307
002E 74 07
308
0030 80 FA 03
309
0033 76 02
310
0035 B4
14
311
0037
312
0037 8A CC
313
0039 32 ED
314
003B DO EI
315
0030 BB 0060 R
316
0040 03 09
317
0042 8A E6
318
0044 32 F6
319
0046 8B FO
320
0048 8B FA
321
004A 8A 26 0041 R
322
004E C6 06 0041 R 00
323
324
325
326
327
328
I BM Persona I Computer MACRO Assemb I er
Vers
i
on 2.00
DSKETTE - -
01 110/86
0 I SKETTE ADAPTER B I OS