IBM PC CONVERTIBLE Technical Reference page 154

Table of Contents

Advertisement

023A
023F
0240
0241
0244
0245
0246
0246
0248
0248
0249
024B
0240
024F
0251
0251
0253
0255
0256
0257
0258
0259
0259
0259
025A
025C
025E
0262
0264
0266
0267
0268
0268
0268
026B
026C
026E
0270
0272
0274
0278
027A
027E
0281
0281
C6 06 0041 R 80
MOV
DISKETTLSTATUS, TIME_OUT
59
POP
CX
5A
POP
OX
SET ERROR CODE AND RESTORE REGS
83 C4 02
ADD
SP,2
DISCARD THE RETURN ADDRESS
F9
STC
INDICATE ERROR TO CALLER
C3
RET
J25:
33 C9
XOR
CX,CX
RESET THE COUNT
J26:
EC
IN
AL,DX
GET THE STATUS
A8 80
TEST
AL,
REQ~ASTER
IS IT READY
75 04
JNZ
J27
YES, GO OUTPUT
E2 F9
LOOP
J26
COUNT DOWN AND TRY AGAIN
EB E9
JMP
J24
ERROR COND IT I ON
J27 :
OUTPUT
8A C4
MOV
AL,AH
GET BYTE TO OUTPUT
B2 F5
MOV
DL ,OF5H
DATA PORT (3F5)
EE
OUT
DX,AL
OUTPUT THE BYTE
59
POP
CX
RECOVER REGISTERS
5A
POP
OX
C3
RET
CY
=
0 FROM TEST INSTRUCTION
NECOUTPUT
ENDP
---
-
--
- - -
- -
- - -
- - - - - - - -
- - - - -
-
- -- -
-
- - - - -- - - - - --
-
- - -
--
-
- -
- - - - - - -
- -
- -
- - - -
-
--
GELPARM
THIS ROUTINE FETCHES THE INDEXED POINTER FROM THE DSKLBASE
BLOCK POINTED AT BY THE DATA VARIABLE DISK-POINTER. A BYTE FROM
THAT TABLE IS THEN MOVED INTO AH, THE INDEX OF THAT BYTE BEING
THE PARM IN BX
ENTRY --
BX
=
INDEX OF BYTE TO BE FETCHED
*
2
EX IT --
AH
=
THAT BYTE FROM BLOCK
-
-- - -
- - -
- -
--
- - --
-
- - -
--
- - - - - - -- - - - - - - - - -- - - - - - - - - - -- - - - - - - - - - - - - - - - - - - ---
GELPARM
PROC
NEAR
IE
PUSH
OS
SAVE SEGMENT
2B CO
SUB
AX,AX
ZERO TO AX
8E 08
MOV
DS,AX
ASSUME
OS: ABSO
C5 36 0078 R
LOS
SI,DISK-POINTER
POINT TO BLOCK
01 EB
8A 20
IF
C3
SEEK
INPUT
OUTPUT
SHR
BX,1
DIVIDE BX BY 2, AND SET FLAG
FOR EXIT
MOV
AH, [SI+BX]
GET THE WORD
POP
OS
RESTORE SEGMENT
ASSUME
DS:DATA
RET
RETURN TO CALLER
GELPARM
ENDP
THIS ROUTINE WILL MOVE THE HEAD ON THE NAMED DRIVE TO THE
NAMED TRACK.
IF THE DRIVE HAS NOT BEEN ACCESSED SINCE THE
DRIVE RESET COMMAND WAS ISSUED, THE DRIVE WILL BE RECALIBRATED.
FOR DRIVES 0,1 NO SEEK PERFORMED I F ALREADY ON TRACK
(DL)
=
DRIVE TO SEEK ON
(CH)
=
TRACK TO SEEK TO
CY
=
0 SUCCESS
CY
=
1 FAILURE -- DISKETTE_STATUS SET ACCORDINGLY
(AX, OJ) DESTROYED
--
---
- -- - -
-
- -
- -- -
- - - -
-
- - - -
- -
- - -
- - -
- - -
- - -
- - - - -
-
- - - - - - - -- - - - - - - - - - - - - - - - --
SEEK
PROC
NEAR
B8 02EE R
MOV
AX,OFFSET J32
SET ERROR EXIT FOR NECOUTPUT
50
PUSH
AX
BO 01
MOV
AL,1
ESTABLISH MASK FOR RECAL TEST
8B F9
MOV
OJ, CX
SAVE TRACK NUMBER (01 HIGH)
8A CA
MOV
CL,DL
GET DRIVE VALUE INTO CL
02 CO
ROL
AL,CL
SHIFT IT BY THE DRIVE VALUE
84 06 003E R
TEST
AL,SEEK-STATUS
TEST FOR RECAL REQU I RED
75 IB
JNZ
J28
NO_RECAL
08 06 003E R
OR
SEEK-STATUS,AL
TURN ON THE NO RECAL BIT IN FLAG
B9 0002
MOV
CX,02H
#
RECALS ATTEMPTS FOR 80 TRACKS
J27A:
B4 07
MOV
AH,RECALIBRATE
RECAll BRATE COMMAND
ROM BIOS 2-129

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents