IBM PC CONVERTIBLE Technical Reference page 152

Table of Contents

Advertisement

016C
DO E4
016E
DO E4
0170
80 E4 04
0173
OA E2
0175
E8 022C R
SAL
SAL
AND
OR
CALL
AH,l
AH,l
AH,4
AH,DL
NECOUTPUT
; ----- TEST FOR FORMAT COMMAND
MOVE IT TO BIT 2
ISOLATE THAT BIT
OR IN THE DRIVE NUMBER
0178
80 7E OF 40
CMP
JNE
AHSAVE[BP] ,FORMALCMND ; IS THIS A FORMAT OPERATION
017C
75 20
017E
BB 0007
0181
E8 0259 R
0184
E8 022C R
0187
BB 0009
0l8A
E8 0259 R
0180
E8 022C R
0190
BB OOOF
0193
E8 0259 R
0196
E8 022C R
0199
BB 0011
019C
EB 30
019E
019E
8A 66 OB
01Al
E8 022C R
01M
8A 66 01
01A7
E8 022C R
01AA
8A 66 OA
01AD
E8 022C R
01BO
B8 0007
01 B3
E8 0259 R
01B6
E8 022C R
01B9
BB 0009
01 BC
E8 0259 R
01 BF
E8 022C R
01C2
BB 'OOOB
01C5
E8 0259 R
01C8
E8 022C R
OlCB
BB 0000
OlCE
01CE
E8 0259 R
OlD1
E8 022C R
OlD4
58
0105
E8 0373 R
0108
0108
72 49
OlDA
E8 03B3 R
0100
72 42
OlDF
FC
OlEO
BE 0042
01E3
AC
01E4
24 CO
01E6
75 03
01E8
EB 3E 90
OlEB
3C 40
OlED
75 29
J15
; NO. CONTINUE WITH R/W/V
GET THE DATA FOR A FORMAT OPERATION
MOV
CALL
CALL
MOV
CALL
CALL
MOV
CALL
CALL
MOV
JMP
BX,7
GELPARM
NECOUTPUT
BX,9
GELPARM
NECOUTPUT
BX,15
GELPARM
NECOUTPUT
BX,17
SHORT J16
GET THE
BYTES/SECTOR VALUE TO NEC
GET THE
SECTORS/TRACK VALUE TO NEC
GET THE
GAP LENGTH VALUE TO NEC
GET THE FILLER BYTE
TO THE CONTROLLER
SEND THE DATA FOR A READ/WRITE/VERIFY OPERATION
J15:
MOV
CALL
MOV
CALL
MOV
CALL
MOV
CALL
CALL
MOV
CALL
CALL
MOV
CALL
CALL
MOV
AH,CHSAVE[BP]
NECOUTPUT
AH, DHSAVE [BP]
NECOUTPUT
AH,CLSAVE[BP]
NECOUTPUT
BX,7
GELPARM
NECOUTPUT
BX,9
GELPARM
NECOUTPUT
BX,l1
GELPARM
NECOUTPUT
BX,13
CYLINDER NUMBER (CH SAVE)
HEAD NUMBER FROM STACK
SECTOR NUMBER
(CL SAVE)
BYTES/SECTOR PARM FROM BLOCK
TO THE NEC
EOT PARM FROM BLOCK
TO THE NEC
GAP LENGTH PARM FROM BLOCK
TO THE NEC
DTL PARM FROM BLOCK
COMPLETE SETUP TO NEC AND WAIT FOR INTERRUPT
J16:
CALL
CALL
POP
GELPARM
NECOUTPUT
AX
RW_OPN_F I N I SH
TO THE NEC
CAN NOW DISCARD THAT DUMMY
RETURN ADDRESS
LET THE OPERATION HAPPEN
CALL
J17 :
JC
CALL
JC
WAILINT
J21
RESUL TS
J20
WAIT FOR THE INTERRUPT
MOTOR_OFF
LOOK FOR ERROR
GET THE NEC STATUS
LOOK FOR ERROR
CHECK THE RESULTS RETURNED BY THE CONTROLLER
CLD
MOV
LODS
AND
JFZ
JNZ
JMP
CMP
JNZ
; SET THE CORRECT DIRECTION
SI,OFFSET NEC_STATUS ; POINT TO STATUS FIELD
NECSTATUS
GET STO
AL,OCOH
TEST FOR NORMAL TERMINATION
J22
OPN_OK
$+5
I F NOT ZERO JUMP AROUND JUMP
J22
ELSE TAKE A LONG JUMP
AL,040H
TEST FOR ABNORMAL TERMINATION
J18
NOT ABNORMAL, BAD NEC
;----- ABNORMAL TERMINATION, FIND OUT WHY
ROM BIOS 2-127

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents