EasyManua.ls Logo

IBM XT 5160 - Page 188

IBM XT 5160
420 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
IBM
Personal
Computer
MACRO
Assembler
Version
2.00
DSKETTE
- - 01
/10/86
0 I
SKETTE
ADAPTER
810S
AH
CONTA I NS NUM8ER
OF
MILL
I SECONDS TO
WA
I T
TURN
ON
- TURN MOTOR
ON
AND RETURN
WAIT
STATE.
5-41
CHECK FOR
WA
I T TO
8E
ZERO
IF
NOT
WRITE
AND 0
THEN
EXIT
AL
= #
MILL
I SECONDS
AX = #
MILL
I SECONDS
SAVE HEAD
SETTLE
PARAMETER
SET
UP FOR
MULTI
PL
Y TO MICROSECONDS
OX,
AX = # MICROSECONDS
CX
,AX
= # MICROSECONDS
CX
,OX
= # MICROSECONDS
LOAD
WA
I T CODE
PERFORM
WA
I T
RESTORE HEAD
SETTLE
PARAMETER
CHECK FOR
EVENT
WA
I T ACT I VE
I
MILL
I SECOND LOOP
COUNT AT
15.085131
US PER COUNT
DELA
Y FOR 1
MILL
I SECOND
DECREMENT
THE
COUNT
DO
AL
MI
LLI
SECOND # OF
TIMES
PO I
NT
TO HEAD
SETTLE
PARAMETER
GET PARAMETER
SEE
IF
A
WRITE
OPERATION
IF
NOT,
DO
NOT ENFORCE ANY
VALUES
IS
WAIT
15
MILLISECONDS
OR
GREATER?
I F THERE
DO
NOT ENFORCE
HEAD
SETTLE
MIN
I
MUM
DO
WAIT
OPERATION
NO
RESET,
ENA8LE
DMA
/
INTERRUPT
SELECT
DR
I VE AND TURN
ON
MOTOR
NEW
MOTOR TURNED
ON
?
NO
WA
I T REQU I RED I F
JUST
SELECT
SET
CARRY MEAN I
NG
WA
I T
SET
NO
WA
I T REQU I RED
INTERRUPTS
8ACK
ON
AH
=
DR
I
VE
SELECT
AND MOTOR
ON
SAVE
COpy
OF
OMOTOR
STATUS
8EFORE
KEEP
ONLY MOTOR
81
TS
CLEAR
OUT
DR
I VE
SELECT
AND MOTORS
OR
I N
DR
I VE
SELECTED
GET 0 I G I
TAL
OUTPUT REG I STER
REFLECTI
ON
8L=tlMOTOR
STATUS
AFTER,
8H=8EFORE
KEEP
ONLY-MOTOR
81
TS
ENA8LE
INTERRUPTS
AGA I N
STRIP
AWAY
UNWANTED
81TS
PUT
81TS
IN
DESIRED
POSITIONS
REQUESTED
DR
I VE
ALREADY
SELECTED
?
I F NOT
SELECTED
JUMP
TEST
MOTOR
ON
81
T
JUMP I F MOTOR
ON
AND
SELECTED
8X
=
DR
I
VE
#
CL
=
DR
IVE
#
8L
=
DR
I VE
SELECT
NO
INTERRUPTS
WH
I
LE
DETERM I N I
NG
STATUS
ENSURE
MOTOR
STAYS
ON
FOR
OPERATION
GET 0 I G I
TAL
OUTPUT REG I STER
REFLECT
I
ON
KEEP
ONLY
DR
I VE
SELECT
81
TS
MASK FOR DETERM 1NI
NG
MOTOR
81
T
AH
=
MOTOR
ON,
A=OOOOOOO
1,
8=00000010
RESTORE
REG.
; ARE
WE
DONE
YET
CX,66
WAITF
AL
J29
AL,AH
AH,AH
AX
DX,1000
OX
CX,DX
DX,AX
AH,86H
15H
AX
HW_DONE
AX,
8X,
CX,
OX
DESTROYED
01
:
DRIVE
#
AL,OO
1111118
AL,I
AL,I
AL,I
AL,
I
AL,000011008
DX,03F2H
DX,AL
8L,8H
NO_MOT_WA I T
AH,8L
8H,tlMOTOR
STATUS
8H,
0000
lIT
18
tlMOTOR
STATUS,
1
10000008
tlMOTOR-STATUS,
AH
AL,tlMOTOR
STATUS
8L,AL
-
8L
,
0000
1 1 118
tlMOTOR
COUNT,
OFFH
AL,
tlMOTOR
STATUS
AL,
00
1
100008
AH,I
AH,CL
AL,8L
TURN
IT
ON
AH,tlMOTOR
STATUS
NO_MaT_WATT
CY
= 0 MEANS
WA
I T REQU I RED
CY
= 1 MEANS
NO
WA
IT
REQU I RED
AX,
8X,
CX,
OX
DESTROYED
01
=
DRI
VE #
J13
8X
ENDP
MOV
XOR
PUSH
MOV
MUL
MOV
MOV
MOV
INT
POP
JNC
DISKETTE
(01/10/86)
NEC OUTPUT
- TH I S ROUT I NE SENDS
A
8YTE
TO
THE
NEC CONTROLLER
AFTER
ON
ENTRY:
ON
EXIT:
ON
ENTRY:
ON
EX
IT:
J29:
MOV
CALL
DEC
JNZ
HW
DONE:
- RET
HD_WA
IT
ENDP
.---
--
--------------- - --------------- ------------------------ ----
HD_WA I T PROC NEAR
MOV
DL,9
CALL
GET PARM
TEST
tlMOTOR
STATUS,
100000008
JZ
I SNT WRI
TE
CMP
AH,15
JAE
DO
WAT
MOV
AH-;15
JMP SHORT DO_WAT
I SNT
WR
ITE:
-
OR
JZ
HD
WAIT
-
WA
I T FOR HEAD
SETTLE
T I
ME.
CMP
JNZ
TEST
JNZ
TURN_IT
ON:
-OR
MOV
AND
AND
OR
MOV
MOV
AND
STI
AND
ROL
ROL
ROL
ROL
OR
MOV
OUT
CMP
JZ
CLC
RET
NO
MOT
WAIT:
- - STC
STI
RET
TURN_ON ENDP
AL
=
DR
I
VE
SELECT
FROM tlMOTOR
STATUS
8L
=
DR
I
VE
SELECT
DES I RED -
AH
=
MOTOR
ON
MASK DES I RED
.
----------------------------------------------------------------
TURN
ON
PROC NEAR
-
MOV
8X,DI
MOV
CL
,8L
ROL
8L,1
ROL
8L,1
ROL
8L,1
ROL
8L,1
CLI
MOV
MOV
AND
MOV
SHL
JNZ
MOT
I
SON:
- - POP
RET
MOTOR_ON
2000
095A
15
F6
2001
2002
095C
2003
095C
58
2004
0950
C3
2005
095E
2006
2001
2008
2009
2010
2011
2012
2013
2014
2015
2016
095E
2011
095E
88
OF
2018
0960
8A
C8
2019
0962
DO
C3
2020
0964
DO
C3
2021
0966
DO
C3
2022
0968
DO
C3
2023
096A
FA
2024
0968
C6
06
0040
R
FF
2025
0910
AO
003F
R
2026
0913
24
30
2021
0915
84
01
2028
0911
02
E4
2029
2030
2031
2032
2033
2034
0919
3A
C3
2035
0918
15
06
2036
0910
84
26
003F
R
2031
0981
15
31
2038
2039
0983
2040
0983
OA
E3
2041
0985
8A
3E
003F
R
2042
0989
80
E1
OF
2043
098C
80
26
003F
R
CO
2044
0991
08
26
003F
R
2045
0995
AO
003F
R
2046
0998
8A
08
2041
099A
80
E3
OF
2048
0990
F8
2049
099E
24
3F
2050
09AO
DO
CO
2051
09A2
DO
CO
2052
09A4
DO
CO
2053
09A6
DO
CO
2054
09A8
OC OC
2055
09AA
8A
03F2
2056
09AD
EE
2051
09AE
3A
OF
2058
0980
14
02
2059
0982
F8
2060
0983
C3
2061
2062
0984
2063
0984
F9
2064
0985
F8
2065
0986
C3
2066
0981
2061
2068
2069
2010
2011
2012
2013
2014
2015
0981
2016
0981
82
09
2011
0989
E8
08FE
R
2018
098C
F6
06
003F
R
80
2019
09C
I
14
09
2080
09C3
80
FC
OF
2081
09C6
13
08
2082
09C8
84
OF
2083
09CA
E8
04
2084
09CC
2085
09CC
OA
E4
2086
09CE
14
1F
2081
2088
2089
2090
0900
2091
0900
8A
C4
2092
0902
32
E4
2093
0904
50
2094
0905
8A
03E8
2095
0908
F1
E2
2096
09DA
88
CA
2091
09DC
88
DO
2098
09DE
84
86
2099
09EO
CD
15
2100
09E2
58
2101
09E3
13
OA
2102
2103
09E5
2104
09E5
89
00"12
2105
09E8
E8
0000
E
2106
09E8
FE
C8
2101
09ED
15
F6
2108
09EF
2109
09EF
C3
211009FO
2111
2112
2113

Table of Contents

Related product manuals