IBM XT 5160 Technical Reference page 185

Hide thumbs Also See for XT 5160:
Table of Contents

Advertisement

IBM Personal Computer MACRO Assembler
Version 2.00
DSKETTE - -
01 /10/86
0 I SKETTE ADAPTER B I OS
1-16
01-10-86
RETRY
;
-
--
-
----
- - - - - -
-- --
-
-- - -
----
-
-
- -------------
- - -
--- -
---------- ----
DETERM I NES WHETHER A RETRY I S NECESSARY.
I F RETRY IS
REQU I RED THEN STATE I NFORMAT I ON I S UPDATED FOR RETRY.
SETUP STATE INDICATOR FOR RETRY ATTEMPT TO NEXT RATE
OOOOOOOOB (500)
-> 10000000B (250)
10000000B (250 I
-> 01 OOOOOOB (300)
01000000B (300 I
-> OOOOOOOOB (500)
STORE UPON RETURN
RESTORE NUMBER TRANSFERRED
GET STATUS OF OPERATION
CHECK FOR ERROR
NO ERROR
CLEAR NUMBER RETURNED
I SOLATE RATE BITS
ALL RATES TR I ED
I F YES, THEN TRUE ERROR
; GET TRACK ENDED UP ON
;
I SIT ASKED FOR TRACK
;
I F SAME TRACK NO INCREASE
; ADD SECTORS/TRACK
; ADD SECTORS / TRACK
;
SUBTRACT START FROM END
; TO AL
; RETURN DRIVE TYPE IN (ALI
CMOS BAD ASSUME DEFAULT
, TYPE 2 DRIVE?
; YES-->ASSUME MULTI FORMAT CAPABILITY
; TYPE 4 DR I VE ?
; YES-->ASSUME MULTI FORMAT CAPABILITY
BL, [BP]
AL,BL
CH,ONEC STATUS+3
CH, [BP+T]
SAME_TRK
BL,AH
BL,AH
CLEAR CARRY NO RETRY
NO RETRY RETURN
AH,RATE 500+ I
; SET CY FOR RATE 500
AH,I
-
; TO NEXT STATE
AH,RATE MSK
; KEEP ONLY RATE BITS
:g~~-~i:i~(g:
I
:~~T RATE_~S~~~~LD~T~~W RAT~
RATE, DBL STEP OFF
ODSKETTE STATUS, 0
; RESET STATUS FOR RETRY
-
;
SET CARRY FOR RETRY
; RETRY RETURN
ODSK_STATE[DI] ,DRV_DET+FMT_CAPA
; TURN ON DETERMINED
&
FMT CAPA
:g~~-~i~i~(g:
I
:~~~ 6~i-C~P~ARK DR;V~U~~T~~~I~~~MAT
CAPABILITY
SHORT SETBAC
-
; BACK
CMOS TYPE
M 12-
AL,2
M 12
AL,4
M_12
ADD
MOV
CMP
JZ
ADD
SAME TRK:
-
SUB
MOV
NT_OUT:
DIF_HD:
RET
NUM_TRANS
ENDP
:
-
~~;~;
-
~~~
---
------
---
-----
-
---
---------
-------
-
-------
--
-
------
;
-RESTORES OMOTOR COUNT TO PARAMETER PROV IDEO I N TABLE
;
AND LOADS ODSKETTE STATUS TO AH, AND SETS CY.
; ON EXIT:
-
;
AH, ODSKETTE_STATUS, CY REFLECT STATUS OF OPERATION
~~;~;
-
~~~
---
----
;~~~
-
---
~~~~
-
-
----
-
-
-----
-
--
-
-----------
-
-
--
---
--
-
MOV
DL, 2
GET THE MOTOR WA IT PARAMETER
PUSH
AX
SAVE NUMBER TRANSFERRED
CALL
GET PARM
MOV
OMOTOR COUNT, AH
POP
AX
-
MOV
AH,ODSKETTE STATUS
OR
AH,AH
-
JZ
NUN ERR
XOR
AL,AL
CMP
RCR
AND
AND
OR
MOV
STC
RET
NO RETRY:
-
CLC
RET
RETRY
ENDP
;
---
- ------
-
- - - - - - -
---
-
- ----
-
----
----- - - -
--
-----
- -
--
- ---
--
- -
-
----
; NUM TRANS
-
THIS ROUTINE CALCULATES THE NUMBER OF SECTORS THAT
;
WERE ACTUALLY TRANSFERRED TO / FROM THE 0 I SKETTE •
; ON ENTRY:
[BP+ 1]
=
TRACK
SI-HI
=
HEAD
[BP]
=
START SECTOR
;
; ON EX IT:
AL
=
NUMBER ACTUALLY TRANSFERRED
~~~-;~~~~-------;~~~----~~~~-------------------------------------
-
XOR
AL ,AL
; CLEAR FOR ERROR
CMP
ODSKETTE STATUS,O
; CHECK FOR ERROR
JNZ
NT OUT
-
;
I F ERROR 0 TRANSFERRED
MOV
DL-;4
;
SECTORS /TRACK OFFSET TO DL
CALL
GET PARM
; AH
=
SECTORS/TRACK
MOV
BL,ONEC STATUS+5
; GET ENDING SECTOR
MOV
CX, S I
-
; CH
=
HEAD # STARTED
CMP
CH,ONEC STATUS+4
; GET HEAD ENDED UP ON
JNZ
DIF_HD -
;
IF ON SAME HEAD, THEN NO ADJUST
ON EX IT:
CY
=
1 FOR RETRY, CY
=
0 FOR NO RETRY
~~;~;
--
-
;~~~
----
~~~~
-
-
-------
---------
--
------
----------
---------
CMP
ODSKETTE STATUS,O
; GET STATUS OF OPERATION
JZ
NO RETRY-
;
SUCCESSFUL OPERATION
S~P
~gs~~i~~_STATUS,
TIME_OUT;
;
IF TIME OUT NO RETRY
MOV
AH-;ODSK STATE[DI]
; GET MEDIA STATE OF DRIVE
TEST
AH,MED DET
; ESTABLISHED/DETERMINED?
JNZ
NO RETRY
;
IF ESTABL I SHED STATE THEN TRUE ERROR
AND
AH-;RATE MSK
;
I SOLATE RATE
MOV
CH,OLASTRATE
; GET START OPERATION STATE
ROL
CH, I
; TO CORRESPOND I NG BITS
ROL
CH,I
ROL
CH,I
ROL
CH,I
AND
CH,RATE MSK
CMP
CH,AH-
JE
NO_RETRY
CALL
JC
CMP
JE
CMP
JE
M_120:
AND
OR
JMP
M
-
12:
OR
SETBAC:
RET
DSTATE
ENDP
1658
1659 019F E8 08CF R
1660 01A2 12 14
1661 01A4 3C 02
1662 01A6 14 10
1663 01A8 3C 04
1664 01AA 14 OC
1665 01AC
1666 01AC 80 A5 0090 R FD
1661 01BI 80 80 0090 R 04
1668 01B6 EB 05
1669
1610 01B8
1611 ilB8 80 80 0090 R 06
1612
1613 01BD
1614 01BD C3
1615 01BE
1616
1611
1618
1619
1680
1681
1682
1683 01BE
1684 01BE 80 3E 0041 R 00
1685 01C3 14 3E
1686 01C5 80 3E 0041 R 80
1681 01CA 14 31
1688 01CC 8A A5 0090 R
1689 0100 F6 C4 10
1690 0103 15 2E
1691 0105 80 E4 CO
1692 0108 8A 2E 008B R
1693 01DC DO C5
1694 01DE DO C5
1695 OlEO DO C5
1696 01E2 DO C5
1691 01E4 80 E5 CO
1698 01El 3A EC
1699 01E9 14 18
1100
1101
1102
1103
1104
1105
1106 01EB 80 FC 01
1101 01EE DO DC
1108 01FO 80 E4 CO
1109 01F3 80 A5 0090 R 1F
1110 01F8 08 A5 0090 R
1111 01FC C6 06 0041 R 00
1112 0801 F9
1113 0802 C3
1114
1115 0803
1116 0803 F8
1111 0804 C3
1118 0805
1119
1120
1121
1122
1123
1124
1125
1126
1121
1128
1129
1130 0805
1131 0805 32 CO
1132 0801 80 3E 0041 R 00
1133 080C 15 23
1134 080E B2 04
1135 0810 E8 08FE R
1136 0813 8A IE 0041 R
1131 0811 8B CE
1138 0819 3A 2E 0046 R
1139 0810 15 OB
1140
1141 081F 8A 2E 0045 R
1142 0823 3A 6E 01
1143 0826 14 04
1144
1145 0828 02 DC
1146 082A
1141 082A 02 DC
1148 082C
1149 082C 2A 5E 00
1150 082F 8A C3
1151
1152 0831
1153 0831 C3
1154 0832
1155
1156
1151
1158
1159
1160
1161
1162 0832
1163 0832 B2 02
1164 0834 50
1165 0835 E8 08FE R
1166 0838 88 26 0040 R
1161 083C 58
1168 0830 8A 26 0041 R
1169 0841
OA E4
1110 0843 14 02
1111 0845 32 CO
5-38
DISKETTE (01/10/86)

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents