IBM PC CONVERTIBLE Technical Reference page 157

Table of Contents

Advertisement

0340
0340
0350
0352
0355
0356
0358
035B
035E
0360
0361
0364
0366
0368
036A
036B
036B
036C
036C
0371
0372
0373
0373
0373
0374
0375
0376
0379
037B
0370
037F
0381
0381
0386
0388
038A
038C
038E
E8 0373 R
72 19
B8 036B R
50
B4 08
E8 022C R
E8 03B3 R
72 OB
58
AO 0042 R
24 60
3C 60
74 02
F8
C3
CHLSTAL2
INPUT
OUTPUT
THIS ROUTINE HANDLES THE INTERRUPT RECEIVED AFTER A
RECALIBRATE, SEEK, OR RESET TO THE ADAPTER.
THE INTERRUPT IS WAITED FOR, THE INTERRUPT STATUS SENSED,
AND THE RESULT RETURNED TO THE CALLER.
NONE
CY = 0 SUCCESS
CY
=
I FAILURE -- ERROR IS IN DISKETTE_STATUS
(AX) DESTROYED
CHLSTAL2
PROC
NEAR
CALL
WAILINT
JC
J34
MOV
AX,OFFSET J34
PUSH
AX
MOV
CALL
CALL
JC
POP
MOV
AND
CMP
JZ
CLC
J34:
RET
J35 :
AH, READ_INLSTATUS
NECOUTPUT
RESUL TS
J34
AX
AL,NECSTATUS
AL ,060H
AL,060H
J35
WAIT FOR THE INTERRUPT
I F ERROR, RETURN IT
SET ERROR RETURN ADDRESS
SENSE INTERRUPT STATUS COMMAND
READ IN THE RESULTS
CHKLRETURN
DISCARD ERROR RETURN ADDRESS
GET THE FIRST STATUS BYTE
ISOLATE THE BITS
TEST FOR CORRECT VALUE
I F ERROR, GO MARK IT
GOOD RETURN
80 OE 0041 R 40
OR
STC
RET
RETURN TO CALLER
; CHKLERROR
DISKETTE_STATUS, BAD_SEEK
F9
C3
FB
51
F8
B8 9001
CD 15
7211
B3 04
2B C9
; ERROR RETURN CODE
CHLSTAL2
ENDP
;
--
--
-
-
--
-
- - -
- -
- -
- -
- - - - - -- - - - - - -
- -
-- -
- -
--
-
- - - - - - - - - - - -
-
- - - -
-
- - -
-
- - - -
-
-
---
WAILINT
INPUT
OUTPUT
THIS ROUTINE WAITS FOR AN INTERRUPT TO OCCUR. A TIME OUT
ROUTINE TAKES PLACE DURING THE WAIT, SO THAT AN ERROR MAY BE
RETURNED I F THE DRIVE IS NOT READY.
NONE
CY
=
0 SUCCESS
CY
=
I FAILURE -- DISKETTE_STATUS IS SET ACCORDINGLY
(AX, BX) DESTROYED
;
-- -
--
---
-
----
-
---------
-
---
-
---
--
---
---
-
---
-
- --
- -
- - - - - -- -
-
- - - -
--
-
-
- - - -
--
WAILINT
PROC
NEAR
STI
; TURN ON INTERRUPTS, JUST IN CASE
PUSH
CX
; SAVE REGISTERS
CLC
CALL DEVICE BUSY SERVICE ROUTINE
MOV
AX,D900IH
CALL DEVICE BUSY (DISKETTE)
INT
15H
JC
J36~
JUMP I F TIMEOUT OCCURRED
BIOS WILL PASS CONTROL HERE WITH CARRY FOR TIMEOUT OR WITH NO CARRY FOR
OPERATION COMPLETE.
MOV
BL,4
; WAIT FOR 2 SECONDS
SUB
CX,CX
; CLEAR THE COUNTER
J36:
F6 06 003E R 80
TEST
SEELSTATUS,INLFLAG ; TEST FOR INTERRUPT COMPLETE
75 OC
E2 F7
FE CB
75 F3
JNZ
J37
LOOP
J36
DEC
BL
JNZ
J36
NO INTERRUPT RECEIVED TIMEOUT ERROR
J36~:
JUMP I F INTERRUPT COMPLETE
I NNER LOOP COUNT
OUTER LOOP COUNT
2-132 ROM BIOS

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents