IBM PC CONVERTIBLE Technical Reference page 150

Table of Contents

Advertisement

00A4
J6:
00A4
DC 08
OR
AL, FDCDMA.-ENAB
TURN ON INTERRUPT ENABLE
00A6
EE
OUT
DX,AL
RESET THE ADAPTER
00A7
C6 06 003E R 00
MOV
SEEICSTATUS,O
SET RECAL REQUIRED ON ALL DRIVES
OOAC
C6 06 0041 R 00
MOV
DISKETTE_STATUS,O
SET OK STATUS FOR DISKETTE
OOBI
DC 04
OR
AL, FDCRUN
TURN OFF RESET
00B3
EE
OUT
DX,AL
TURN OFF THE RESET
00B4
E8 0373
CALL
WAILINT
WAIT FOR INTERRUPT
00B7
72 3C
JC
J8
IF NO INTERRUPT THEN EXIT
00B9
B8 00F5 R
MOV
AX,OFFSET J8
SET ERROR RETURN ADDRESS FOR NECOUT
OOBC
50
PUSH
AX
OOBD
B9 0004
MOV
CX,4
READ RESET STATUS FOR ALL 4 DRIVES
oDeD
STALLOOP:
OOCO
B4 08
MOV
AH, READ_INLSTATUS
SENSE INTERRUPT STATUS
00C2
E8 022C R
CALL
NECOUTPUT
COMMAND TO NEC
00C5
E8 03B3 R
CALL
RESULTS
GET THE RESULTS
00C8
AO 0042 R
MOV
AL, NECSTATUS
IGNORE ERROR RETURN AND DO OWN TEST
OOCB
24 F8
AND
AL,OF8H
IGNORE DRIVE SPECIFIER
OOCD
3C CO
CMP
AL ,OCOH
TEST FOR DRIVE READY TRANSITION
OOCF
El EF
LOOPZ
STALLOOP
IF OKAY GET NEXT DRIVE READY INFO
0001
DB C9
OR
cX,ex
ALL BYTES PICKED UP?
0003
74 08
JZ
J7
I F SO THEN OKAY
NEC ERROR: ALL 4 DRIVE STATUSES NOT CORRECT AFTER RESET
0005
58
POP
AX
; DISCARD ERROR ADDRESS ON STACK
0006
80 OE 0041 R 20
OR
DISKETTE_STATUS,BAD_NEC ; SET ERROR CODE
OODB
EB 18
JMP
SHORT J8
; EXIT
SEND SPECI FY COMMAND TO NEC
0000
J7:
DRIVE_READY
0000
B4 03
MOV
AH,SPECIFY
SPECI FY COMMAND
OODF
E8 022C
CALL
NECOUTPUT
OUTPUT THE COMMAND
00E2
BB 0001
MOV
BX,l
FIRST BYTE PARM IN BLOCK
00E5
E8 0259 R
CALL
GELPARM
TO THE NEC CONTROLLER
00E8
E8 022C R
CALL
NECOUTPUT
OOEB
BB 0003
MOV
BX,3
SECOND BYTE PARM IN BLOCK
OOEE
E8 0259 R
CALL
GELPARM
TO THE NEC CONTROLLER
OOF!
E8 022C R
CALL
NECOUTPUT
00F4
58
POP
AX
DISCARD ERROR RETURN ADDRESS
00F5
J8:
RESELRET
00F5
C3
RET
RETURN TO CALLER
00F6
DISICRESET
ENDP
***********************************************************
----- DISKETTE STATUS ROUTINE
***********************************************************
00F6
DISICSTATUS
PROC
NEAR
00F6
AD 0041 R
MOV
AL, 01 SKETTE_STATUS
00F9
88 46 DE
MOV
ALSAVE[BP] ,AL
MOVE STATUS IN AL SAVE AREA
OOFC
C3
RET
OOFD
DISICSTATUS
ENDP
; ***********************************************************
;----- DISKETTE READ
; ***********************************************************
OOFD
DISICREAD
PROC
NEAR
OOFD
E8 050B R
CALL
DSKLCHANGE
CHECK FOR MEDIA CHANGE
0100
72 IF
JC
DSKLERR
0102
BO 46
MOV
AL,DMA_READ
READ COMMAND FOR DMA
0104
E8 02Fl
CALL
DMA_SETUP
SET UP THE DMA
0107
72 18
JC
DSKLERR
; JUMP I F ERROR
0109
C6 46 OF E6
MOV
AHSAVE[BP] ,READ_CMND ; RD COMMAND (AH SAVE)
0100
EB 41
JMP
SHORT RW_OPN
; GO DO THE OPERATION
010F
DISICREAD
ENDP
; ***********************************************************
DISKETTE VERI FY
ROM BIOS 2-125

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents