EasyManua.ls Logo

IBM XT 5160 - Page 187

IBM XT 5160
420 pages
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
- - 0 I I 10 I
86
0 I
SKETTE
ADAPTER B I
OS
1-18
01-10-86
·----------- - ------ ----------------------------------------------
; GET PARM
- TH I S ROUT I NE
FETCHES
THE
I NDEXED
PO
I NTER FROM THE
DISK
BASE
BLOCK
PO
I
NTED
TO BY THE
DATA
VAR I
ABLE
;
(to
I SK
PO
INTER.
A
BYTE
FROM
THAT
TABLE
I S THEN MOVED
INTO
AH,
THE
INDEX
OF
THAT
BYTE
BEING
THE
PARAMETER
IN
DL.
SAVE
WA
IT
PARAMETER
LOAD
LARGEST
POSS I
BLE
MULTI
PL
I ER
MULTIPLY
BY
HALF
OF
WHAT'S
NECESSARY
CX
=
HIGH
WORD
CX
,OX
= 1
12
(#
OF
MICROSECONDS)
CLEAR
CARRY FOR
ROTATE
DOUBLE
LOW
WORD, CY CONT A I NS OVERFLOW
DOUBLE
HI,
I NCLUD I
NG
LOW
WORD
OVERFLOW
LOAD
WA
I T CODE
PERFORM
WA
I T
RESTORE
WA
I T PARAMETER
CY
MEANS
WA
I T COULD NOT
BE
DONE
GET
THE
MOTOR
WA
I T PARAMETER
AL
= MOTOR
WA
I T PARAMETER
AX = MOTOR
WA
I T PARAMETER
SEE I F AT
LEAST
A SECOND I S SPEC I F I ED
IF
YES,
CONTINUE
ONE SECOND
WA
I T FOR MOTOR
START
UP
SAVE
REG.
TURN
ON
MOTOR
IF
CY=1
NO
WAIT
TRANSLATE
STATE
TO
COMPATIBLE
MODE
LOAD
WA
I T CODE &
TYPE
TELL
OPERATING
SYSTEM ABOUT TO
DO
WAIT
SAVE
CY
FOR
TEST
TRANSLATE
STATE
TO
PRESENT
ARCH.
RESTORE
CY
FOR
TEST
BYPASS
LOOP
IF
OP SYSTEM
HANDLED
WA
I T
CHECK AGA I N I F
MOTOR
ON
IF
NO
WAIT
MEANS
IT
IS
ON
; PO I
NT
TO
BLOCK
; GET
THE
WORD
; RESTORE
BX
;
OS
= 0 ,
BIOS
DATA
AREA
;
BL
=
INDEX
;
BX
=
INDEX
DRIVE
TYPE
0
EX
I T
WITH
AL=TYPE
ACCORD I
NG
TO TRACKS
EX
IT
WITH
CARRY I F
DUAL
CARD
;
ROTATE
TO
ORIGINAL
POSITION
; ROT
ATE
BITS
6 AND 7 TO 0 AND 1
;
AX=NUMBER OF
DR
I VES
; I S
DR
I VE REQUESTED
PRESENT
;
C-->REQUESTED
DR
I VE NOT
PRESENT
;
TEST
CONTROLLER
1.0.
TEST
FOR
80
TRACKS
DR
I VE
TYPE
HAS
40
TRACKS
DR
I VE
TYPE
HAS
80
TRACKS
CX,8286
WAITF
AL
DX,I
CX,I
AH,86H
15H
AX
MOT_I
S_ON
AX
DX,62500
OX
CX,DX
DX,AX
AX,CX,DX
DESTROYED
DL,10
GET PARM
AL,AH
AH,AH
AL,8
GP2
AL,8
M
WAIT
TURN
ON
MOT_IS_ON
01
=
DRI
VE #
DL
= I NDEX OF
BYTE
TO
BE
FETCHED
AH
=
THAT
BYTE
FROM BLOCK
AL,DH
DESTROYED
AL,AL
AL,I
AL,I
AL,I
AH,AH
AX,DI
TYP
ZERO
(tHF-CNTRL,
DUAL
CR2-
(tDSK
STATE[DI],
TRK CAPA
AL,I-
-
CRI
AL,3
SHORT
CR
1
CRI
ENDP
AX CONTA I
NS
NUMBER OF
1/8
SECONDS
(125000
MICROSECONDS I TO
WA
I T
FOLLOW I
NG
LOOPS REQU I RED
WHEN
RTC
WA
I T
FUNCT
I
ON
I S
ALREADY
I N USE
WAIT
FOR
1/8
SECOND PER
(ALI
COUNT FOR
1/8
SECOND
AT
15.085737
US
GO
TO
FIXED
WAIT
ROUTINE
DECREMENT T I
ME
VALUE
MOV
CALL
DEC
PUSH
MOV
MUL
MOV
MOV
CLC
RCL
RCL
MOV
INT
POP
JNC
MOV
CALL
MOV
XOR
CMP
JAE
MOV
RET
ON
ENTRY:
ON
EX
IT:
ON
ENTRY:
ON
EXIT:
J13:
GP2:
·--- - -----------------------------------
--
-- - - - - - -----
--
-- -
-----
--
----
---
MOTOR
ON
PROC NEAR
- PUSH BX
CALL
TURN
ON
JC
MOT
IS
ON
CALL
XLAT
OLD
MOV
AX,
090FDH
INT
15H
PUSHF
CALL
POPF
JNC
CALL
JC
~~;
-
~~~~
--------
~~~~
----
~~~~
---------------------------
---
-------
- PUSH
OS
PUSH
SI
SUB
AX,AX
MOV
DS,AX
XCHG
DX,BX
SUB
BH,BH
ASSUME
OS
I ABSO
LOS S I
,(to
I
SK
PO
INTER
MOV
AH,
[S
I
+BX]
XCHG
DX,BX
POP
SI
POP
OS
RET
ASSUME
OS
:DATA
GET
_PARM ENDP
STC
JMP
CMOS_TYPE
ROL
ROL
ROL
XOR
CMP
JC
TEST
JNZ
TEST
MOV
JZ
MOV
JMP
TYP
ZERO:
-
XOR
·----------------------
--
---------------------
--
-------------------------
; MOTOR
ON
I
-TURN
MOTOR
ON
AND
WAIT
FOR
MOTOR
START
UP
TIME.
THE
(tMOTOR COUNT
I S
REPLACED
WITH
A
SUFF
I CI
ENTL
Y
HIGH
NUMBER
(OFFH
I TO ENSURE
THAT
THE MOTOR DOES NOT
GO
OFF
OUR
I
NG
THE
OPERAT I
ON
I F
THE
MOTOR NEEDED TO
BE
TURNED
ON,
THE
MULTI
TASK
I
NG
HOOK
FUNCTI
ON
(AX=90FDH,
INT
15HI
IS
CALLED
TELLING
THE
OPERATING
SYSTEM
THAT
THE B I
OS
I S ABOUT TO
WA
I T FOR MOTOR
START
UP.
IF
TH
IS
FUNCTION
RETURNS
WITH
CY =
1,
IT
MEANS
THAT
THE
MINIMUM
WAIT
HAS BEEN
COMPLETED.
AT TH I S PO I
NT
A CHECK I S MADE TO ENSURE
THAT
THE
MOTOR
WASN'T
TURNED
OFF
BY
THE
TIMER.
IF
THE
HOOK
DID
NOT
WA
IT,
THE
WA
I T
FUNCT
I
ON
(AH=086H
I I S
CALLED
TO
WA
I T THE
PRESCR I BED
AMOUNT OF T I
ME.
I F THE CARRY
FLAG
I S
SET
ON
RETURN,
I T MEANS
THAT
THE
FUNCT
I
ON
I
SIN
USE AND 0 I 0 NOT PERFORM
THE
WA
IT.
A T I
MER
1
WA
I T LOOP
WILL
THEN
DO
THE
WA
IT.
CRI
:
CR2:
1886
0808
DO
CO
1887
08DA
DO
CO
1888
08DC
DO
CO
1889
08DE
32
E4
1890
08EO
3B
C7
1891
08E2
72
14
1892
08E4
F6
06
008F
R 0 I
1893
08E9
75
10
1894
08EB
F6
85
0090
R 01
1895
08FO
BO
0 I
1896
08F2
74
06
1897
08F4
BO
03
1898
08F6
EB
02
1899
08F8
1900
08F8
32
CO
1901
08FA
1902
08FA
C3
1903
08FB
1904
08FB
F9
1905
08FC
EB
FC
1906
08FE
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
08FE
1921
08FE
IE
1922
08FF
56
1923
0900
2B
CO
1924
0902
8E
08
1925
0904
87
03
1926
0906
2A
FF
1927
1928
0908
C5
36
0078
R
1929
090C
8A
20
1930
090E
87
03
1931
0910
5E
1932
0911
IF
1933
0912
C3
1934
1935
0913
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
0913
1957
0913
53
1958
0914
E8
095E
R
1959
0917
72
43"
1960
0919
E8
0432
R
1961
091
C
B8
90FD
1962
09
I F CD
15
1963
0921
9C
1964
0922
E8
0404
R
1965
0925
90
1966
0926
73
05
1967
0928
E8
095E
R
1968
092B
72
2F
1969
1970
0920
1971
0920
B2
OA
1972
092F
E8
08FE
R
1973
0932
8A
C4
1974
0934
32
E4
1975
0936
3C
08
1976
0938
73
02
1977
093A
BO
08
1978
1979
1980
1981
093C
50
1982
0930
BA
F424
1983
0940
F7
E2
1984
0942
8B
CA
1985
0944
8B
DO
1986
0946
F8
1987
0947
01
02
1988
0949
01
01
1989
094B
B4
86
1990
0940
CD
15
1991
094F
58
1992
0950
73
OA
1993
1994
1995
1996
0952
1997
0952
B9
205E
1998
0955
E8
0000
E
1999
0958
FE
C8
5-40
DISKETTE
(Ol/lO/86)

Table of Contents

Related product manuals