IBM PC CONVERTIBLE Technical Reference page 161

Table of Contents

Advertisement

046A
B8 90FD
MOV
AX ,90FDH
SET WAIT ON DISKETTE MOTOR
0460
CD 15
INT
15H
SLEEP OR DO OTHER WORK
046F
72 OE
JC
MOL08
BYPASS TIME DELAY I F TIMEOUT
TIME DELAY LOOP TO WAIT FOR MOTOR STARTUP
0471
MOL06:
0471
8A E5
MOV
AH,CH
MOVE TIME IN AH
0473
OA E4
OR
AH,AH
TEST FOR NO WAIT
0475
MOL07:
TESLWAILTIME
0475
74 08
JZ
MOL08
EXIT WITH TIME EXPIRED
0477
2B C9
SUB
CX, CX
SET UP 1/8 SECOND LOOP TIME
0479
E2 FE
LOOP
$
WAIT FOR THE REQUIRED TIME
047B
FE CC
DEC
AH
DECREMENT TIME VALUE
0470
EB F6
JMP
SHORT MOL07
ARE WE DONE YET
MOTOR IS RUNNING SO CONTINUE WITH OPERATION
047F
047F
C6 06 0040 R FF
0484
B6 01
0486
F6 06 003F R OF
048B
74 90
MOL08:
MOV
MOV
TEST
JZ
MOTOR_COUNT,OFFH
DH,Ol
MOTOR_STATUS,OFH
MOLOI
SET LARGE COUNT AFTER WAIT
SET 2ND TIME THROUGH FLAG
TEST FOR MOTORS STILL ON
I F NOT OKAY THEN GO BACK AND RESTART
; MOTORS STI LL ON AFTER WAIT
0480
80 OE 003F R 20
OR
MOTOR_STATUS,MOTOR_OK ; SET MOTOR ON LONG ENOUGH FLAG
0492
FB
STI
; ALLOW INTERRUPTS
0493
C3
RET
0494
MOTOR_STARTUP ENDP
; -
~
-
~
-
~
-
~
--
~
-i -;; -
K -
~
-
~
-
~
-E --
~
-
~
-
i-v -
E --P -
~
-
~
-
~
-M -E -
~
-E -R -;; --
~
-
a -u -
~
-i -
N -E
;
--
--
------
--
--------
- -- - - - - - - -
--
--
--
-----
----
--
---------
- -- - -
-
-
----
-
----
0494
0494
E8 0586 R
0497
2B FF
0499
2B C9
049B
2B 02
0490
8E C2
049F
8A E6
04Al
3C 00
04A3
74 10
04A5
BE 0000
04A8
3C 03
04AA
74 07
04AC
BE 0000
04AF
3C 01
04Bl
75 OF
04B3
04B3
2E
8E 04
04B6
2E
8B 7C 02
04BA
2E
8B 4C 04
04BE
2E
8B 54 06
04C2
04C2
89 7E 04
04C5
89 4E OA
04C8
89 46 OC
04CB
2B CO
04CD
89 46 OE
0400
8A 16 0010 R
0404
Bl 06
0406
02 EA
0408
FE C2
04DA
89 56 00
0400
C6 06 0041 R 00
04E2
C3
04E3
DSKLRDPARM
PROC
NEAR
CALL
GELDRLCONFIG
SUB
01,01
SUB
CX,CX
SUB
DX,DX
MOV
ES,DX
MOV
AH,DH
CMP
AL,NO_DRIVE
JE
RDPARM_02
GET DRIVE CONFIGURATION IN AL
CLEAR REGISTERS
CLEAR ES
CLEAR AH
DRIVE PRESENT?
MOV
SI,OFFSET PARMS_TPIl35 ; SET
720K
DRIVE
CMP
AL, TPL135
JE
RDPARM_Ol
MOV
SI,OFFSET PARMS_TPI48
SET 360K DRIVE
CMP
AL, TPL48
JNE
RDPARM_02
RDPARM_Ol :
MOV
ES,CS:[SI]
MOV
DI,CS: [SI+2]
MOV
CX,CS: [SI+4]
MOV
DX,CS: [SI+6]
RDPARM_02 :
MOV
DISAVE[BP] ,01
MOV
CXSAVE [BP], CX
MOV
BXSAVE[BP] ,AX
SUB
AX,AX
IF NOT VALID SET NO DRIVE
SETUP SEG TO DSKLPARMS
POINTER TO PARMS
TRACKS AND SECTORS
GET HEADS
MODIFY REGISTERS ON STACK
SET DRIVE TYPE IN BL
MOV
AXSAVE [BP],AX
; CLEAR AL
MOV
DL,BYTE PTR EQUIP_FLAG; GET LOW BYTE OF EQUIPMENT
MOV
CL,6
GET
#
DISKETTES IN LOW
SHR
DL, CL
BITS
INC
DL
CORRECT FOR AT LEAST 1 DRIVE
MOV
DXSAVE [BP], OX
SAVE
#
HEADS AND
#
DRIVES
MOV
DISKETTE_STATUS,O
GET RETURN CODE
RET
DSKLRDPARM
ENDP
2-136 ROM BIOS

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents