IBM PC CONVERTIBLE Technical Reference page 160

Table of Contents

Advertisement

041B
MOTOILSTARTUP
FUNCTION: TO CHECK FOR MOTOR STATE, TURN ON MOTOR OF REQUESTED DRIVE
AND WAIT THE NECESSARY STARTUP TIME BEFORE RETURNING
TO CALLER.
I NPUT PARAMETERS:
DL = 0-3 (DISKETTE DRIVE NUMBER)
OUTPUT PARAMETERS:
MOTOILSTATUS FLAGS UPDATED
MOTOR OF DRIVE IS TURNED ON
REGISTERS MODIFIED: AX,BX,CX,DH
MOTOILSTARTUP
PROC
NEAR
;----- TURN ON THE MOTOR AND SELECT THE DRIVE
041B
B6 00
041D
MOV
MOL01:
DH,O
; SET FIRST TIME THROUGH FLAG
GET MOTOR STARTUP TI ME
0410
BB 0014
MOV
BX,20
GET THE MOTOR WAIT
0420
E8 0259 R
CALL
GELPARM
CH HAS MOTOR START UP DELAY
0423
80 FC 04
CMP
AH,04
MUST BE MINIMUM OF 500 MSECS
0426
73 02
JAE
MOLOn
JUMP IF OKAY
0428
B4 04
MOV
AH,04
DEFAULT TIME TO 500 MSECS
042A
MOLOll:
042A
8A EC
MOV
CH,AH
SAVE MOTOR START UP DELAY
042C
8A CA
MOV
CL,DL
GET DRIVE NUMBER AS SHIFT COUNT
042E
BO 01
MOV
AL,l
MASK FOR DETERMINING MOTOR BIT
0430
D2 EO
SAL
AL,CL
SHI FT THE MASK BIT
0432
FA
CLI
NO INTERRUPTS WHILE DETERMINING
MOTOR STATUS
0433
84 06 003F R
TEST
AL ,MOTOR_STATUS
TEST THAT MOTOR FOR OPERATING
0437
75 IB
JNZ
MOL02
IF RUNNING GO CHECK TIME
; TURN ON MOTOR
0439
80 26 003F R FO
AND
MOTOR_STATUS,OFOH
TURN OFF ALL MOTOR BITS
043E
08 06 003F R
OR
MOTOILSTATUS, AL
TURN ON THE CURRENT MOTOR
0442
BO 10
MOV
AL,10H
MASK BIT
0.4.44
8A CA
MOV
CL,DL
GET DRIVE NUMBER AS SHI FT COUNT
0446
D2 EO
SAL
AL,CL
DEVELOP BIT MASK FOR MOTOR ENABLE
0448
OA C2
OR
AL,DL
; GET DRIVE SELECT BITS IN
044A
OC OC
OR
AL,FDCDMILENAB+FDCRUN ; NO RESET, ENABLE DMA/INT
044C
52
PUSH
DX
SAVE REG
044D
BA 03F2
MOV
DX,DRIVE_CNTL
CONTROL PORT ADDRESS
0450
EE
OUT
DX,AL
0451
5A
POP
DX
RECOVER REGISTERS
0452
EB 07
JMP
SHORT MOL04
GO DELAY FOR STARTUP
CHECK TO SEE I F MOTOR ON LONG ENOUGH
0454
MOL02:
0454
F6 06 003F R 20
0459
75 24
TEST
JNZ
MOTOILSTATUS,MOTOILOK ; CHECK FOR MOTOR RUNNING LONG ENOUGH
MOL08
IF MOTOR OKAY THEN EXIT
,
; CH HAS TIME TO WAIT IN 1/8 SECONDS
045B
MOL04:
045B
C6 06 0040 R FF
MOV
MOTOILCOUNT,OFFH
SET LONG MOTOR DELAY
0460
FB
STI
I NTERRUPTS BACK ON
0461
OA ED
OR
CH,CH
DON'T WAIT IF NO WAIT SET
0463
74 1A
JZ
MOL08
0465
OA F6
OR
DH,DH
CHECK FOR FIRST TIME THROUGH WAIT
0467 75 08
JNZ
MOL06
I F NOT FIRST TIME BYPASS OP _SYS HOOK
NOTIFY OPERATING SYSTEM OF WAIT FOR MOTOR STARTUP
0469
F8
CLC
; RESET TIMEOUT INDICATOR
ROM BIOS 2-135

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents