IBM AT 5170 Technical Reference page 275

Table of Contents

Advertisement

IBM p.,.soflal Computer MACRO Assembl.,.
Versiofl 2.00
'-7
DSKETTE -- 06/10/85
DISKETTE BIOS
06-10-85
654
655
ON ENTRY:
DI
,
DRIVE
#
656
657
658
ON EXIT:
AH :
(lDSKETTE STATUS
00 -
DISK CHANGE LINE
INACTIVE,
CY :::
0
659
06 -
DISK CHANGE LINE ACTIVE,
CY :.
1
660
1 ­ - -- ­ - - -­ - - - - - - - - - - - ­ - - - - ­ - - - - ­ - - ­
"
I
662
•• 3
023C
023C E8
023F 8,1,
02C8 R
85 0090 R
DISK CHANGE
-
CALL
MOV
PROC
NEAR
XLAT NEW
AL,.5sK 5TATE[DI
J
TRANSLATE STATE TO PRESENT ARCH.
GET MEDIA STATE
INFORMATION
6.'
0243 OA CO
OR
AL,AL­
DR I VE PRESENT
?
.65
•••
•• 7
0245 74
0247 AS
0249 74
19
01
05
.JZ
TEST
.JZ
DC NON
AL 7TRK CAPA
SETIT -
.JUMP IF NO DRIVE
80 TRACK DR I VE
?
IF SO • CHECK CHANGE LINE
668
••9
024B Ea 08E3 R
CALL
READ OSKCHNG
GO CHECK STATE OF DISK CHANGE LINE
670
024E 14 05
JZ
FINIS
CHANGE LI NE NOT ACT! VE
671
.72
0250 C6 06 0041
R 06
SET IT:
MDV
tlOSKETTE_STATUS, MED I A_CHANGE
;
I NO I CATE MED I A REMOVED
673
674
0255 E8 02EE R
FINIS:
CALL.
XL AT OLD
TRANSLATE STATE TO COMPATIBLE MODE
675
0258 ES 0620 R
CALL
SETUP END
VAR IOUS CLEANUPS
b7.
025B 8B DE
"OV
BX.S'­
GET SAVED AL TO BL
677
678
025D 8,1,
025F C3
C3
"OV
RE7
AL,BL
PUT BACK FOR RETURN
b79
6.0
0260
681
02flO 80 OE 0041
R 80
OR
PDSKETTE STATUS,TlME OUT
1 SET TIMEOUT, NO DRIVE
682
0265 EB EE
.JMP
SHORT FINIS
-
683
.8'
0261
DISK_CHANGE
ENDP
~
-
­ ----­
- - -
­
- -
­
- ­ ---
­
- - -- -
--
- -- -- -
--­ -
-
­
- ­ - - - - - - - -- - - - -
­
-
-----­ --­ -------
- -
­
- - ­
685
THIS ROUTINE IS USED TO ESTABLISH THE TYPE OF MEDIA TO BE USED
686
FOR THE FOLLOWING FORMAT OPERATION.
687
.88
ON ENTRY,
S I
LOW
=
DASD TYPE FOR FORMAT
680
01
:
DRIVE'
690
b91
ON EXIT:
.OSKETTE STATUS REFLECTS STATUS
.92
AH :
PDSKETTE STATUS
693
CY :::
I
IF ERROR
694
695
0267
t~;~~ ~
-
~~ ~
------
;~~~
---­
~~~~
---------­----------­-----------------------------­
.9.
026
r
E8 02C8 R
-
CALL
XLAT NEW
;
TRANSLATE STATE TO PRESENT ARCH.
697
026A 56
PUSH
S I
-
;
SAVE DASD TYPE
698
026B 8B C6
MOV
AX,SI
;
AH
=
? ,
AL
=
DASD TYPE
699
026D 32 E4
XOR
AH,AH
1 AH = 0
• AL = DASD TYPE
700
026F 88 FO
MOV
S I ,AX
I
S I
= DASD TYPE
701
702
0211
80
0216 4E
,1,5 0090 R OF
~~g
;~SK_STATE[DI]
.NOT
MED_D~T~~~~KS~~~+~~673~~~
MEDiA
C~E~~
I
e~ATE
703
0217 75 07
.JNZ
NOT 320
I
BYPASS IF NOT
70'
0279 80 8D 0090 R
90
OR
POSK_STATE[DI] ,MED_DET+RATE_250 :
SET TO 320/360
705
021E EB 37
.JMP
SHORT SO
706
707
0280
NOT 320:
708
0280 E8 0416 R
-
CALL
MED CHANGE
;
CHECK FOR TI ME_OUT
700
0283 80 3E 0041
R 80
CMP
OD5KETTE STATUS,TIME OUT
710
0288 74 2D
JZ
SO
-
-
1FT I ME OUT TELL CALLER
711
7 I 2
713
028A 4E
028B 75 01
DEC
JNZ
SI
NOT 320
12
CHECK FOR 320/360K
• BYPASS I F NOT
IN
1.2M DRIVE
714
715
0280 80
0292 E8
8D 0090 R
23
70
OR
J"P
;~~~TS~~TE[D
11 ,MED_DET+DBL_STEP+RATE_300
;
SET STATE
7Ib
717
0294
NOT 320
-
-
12 :
718
0294 4E
OEC
719
0295 15 07
JNZ
720
0297 80 80 0090 R
10
OR
72.
029C EB
19
J,,"
722
72'
72.
029E
029E 4E
NOT
-
'2.
DEC
51
CHECK FOR SET DASD TYPE 04
725
029F 75 20
JNZ
FS_ERR
BAD COMMAND EXIT IF NOT VALID TYPE
72.
727
728
02AI FE:>
02A6 74
85 0090 R
09
04
TEST
JZ
POSK_STATEIDI
J
,DRV_DET
ASSUME
DR I VE DETERM 1 NED
?
IF STILL NOT DETERMINED ASSUME
729
730
731
02A8 BO
02AA FEo
02AF 75
50
85 0090 R
02
02
"OV
TEST
JNZ
AL .MED DET+RATE 300
OoDSK STATE[D I
J
.FMT CAPA
oR_I'f_IN
-
MULTIPLE FORMAT CAPABILITY 7
IF
1.2 hi THEN DATA RATE 300
732
73.
02BI
ASSUME:
734
02B I
80 90
"OV
SET UP
735
736
02B3
OR
IT
IN:
-
-
737
02B3 08 85 0090 R
OR
;
OR
IN THE CORRECT STATE
738
739
02B7
50,
7.0
02Bl E8 02EE R
CALL
XLAT OLD
TRANSLATE STATE TO COMPATIBLE MODE
7"
02BA E8 0620 R
CALL
SETUP END
VARIOUS CLEANUPS
7.2
02BD 58
POP
BX
-
GET SAVED AL TO BL
7.3
02BE SA C3
MOV
AL,BL
PUT BACK FOR RETURN
7 ••
02CO C3
RET
7.5
7••
oze
1
FS_ERR:
747
02Cl
C6 06 0041
R O'
"OV
ODSKETTE STATUS, BAD CMD
UNKNOWN STATE,BAD COMMAND
748
02C6 EB EF
J"P
SHORT SO­
-
749
750
02CB
FORMAT_SET
ENDP
751
- - ­
------------------ ­
752
;
XLAT NEW:
TRANSLATES DISKETTE STATE LOCATIONS FROM COMPATIBLE MODE TO
753
;
-
NEW ARCH I TECTURE.
754
755
756
;
ON ENTRY;
01: DRIVE
;- ­
- -- ----
--
- - - -
­
- - - ­ - -
-
-­ -------­
- -
­ -----
- ­ - -- - - - - - - -
-----------­ -----
- - - -
757
02C8
XLAT NEW
PROC
NEAR
;
758
02C8 S3 FF
01
-
CMP
01,1
I
VALID DRIVE?
750
02CB 77
IC
.JA
XN OUT
;
IF
INVALID BACK
760
761
02CD 80
0202 14
BD 0090 R
16
00
5~P
~gs~E~TATE[DI]
,0
;
7~ ~~I~~I~E
ATTEMPT DETERMINE
7.2
0204 8B CF
MOV
cx70 I
cx = DR I VE NUMBER
7.3
0206 CO E I
02
SHL
CL,2
CL
=
SHIFT COUNT,
A=O, 8=4
76'
0209 ,1,0 008F R
MDV
AL, OHF CNTRL
DR I VE 1 NFORMA T I ON
7.5
02DC 02 C8
ROR
AL,CL -
1 TO LOW NIBBLE
76b
02DE 24 07
AND
AL.DRV DET+FMT CAPA+TRK CAPA
;
KEEP DRIVE BITS
7b7
02EO 80 ,1,5 0090 R F8
AND
.DSK_Si'ATE[OI17NOT DRV_DET+FMT_CAPA+TRK_CAPA
DISKETTE
5-103

Advertisement

Table of Contents
loading

Table of Contents