IBM AT 5170 Technical Reference page 285

Table of Contents

Advertisement

IBM Personal Compl.lt.r MACRO Assembler
Version 2.00
1-11
DSKETTE -- 06/10/85
DISKETTE BIOS
06-10-85
1194
1195
1196
1191
1198
1199
1800 0855
1801
0855 B8 0873 R
1802 0858 50
1803 0659
E6
D67C
R
1804 085C 12 14
1805 085E 84 08
1806 0860 E8 01BD R
1807 0863 E8 08A4 R
1608 0866 12 OA
1809 0868 AD 0042
R
1810 0868 24 60
1811 0860 3C 60
1812 086F 14 03
1813 0871
F8
1814 0872
1815087258
1816 OS73
1817 0813 C3
1818
1819 OS74
IS20 0674 80 DE 0041
R 40
1821 0879 F9
1622 087A E8 F6
1823 087C
1824
1825
1826
1821
1828
1829
1830
1631
OS7C
1832 OS1C F8
1833 0810 FS
1634 081E 88 9001
1835 0881
CD 15
1836 0683 72
11
1837
t
838
0885
83 04
1839 0887
33 C9
1840 0889
1841
0889 F6 06 003E R 80
1842 088E 75 OC
1843 0890 E2 Fl
ISH 0892 FE C8
IS45 0894 75 F3
1846
IS47 0896 80 OE 0041
R 80
1848 0898 F9
1849 089C
1850 OS9C 9C
IS51 0890 80 26 003E R 7F
IS52 08A2 90
IS53 08A3 C3
IS54 08A4
1855
1856
IS57
185S
1859
1860
1861
1862 08A4
1863 08A4 51
1864 08A5 8F 0042 R
1865 08A8 83 07
1866 08AA 8A 03F4
1861
1868
1869
1870 08Ao 87 02
1871
08AF 33 C9
1872 0881
1813 0881
EC
1814 0882 24 CO
1875 0884 3C CO
1816 0886 74 DE
1877 0888 E2 F7
1818
1879 088A FE CF
'880 088C 15 F3
1881
! 882 068E 80 DE 0041 R 80
1883 OSC3 F9
1884 08C4 EB
18
1885
1886
1887
1888 OSC6
1889 08C6 42
1890 08Cl
EC
1891 OSC8 88 05
IS92 OSCA 41
IS93
IS94 OSCB B9 0002
1895 08CE E8 0000 E
1896 OSol
4A
1897 0802 EC
1898 0803 A8
10
1899 0805 14 OA
1900
1901
0807 FE C8
1902 0809 15 02
1903 080B 80 OE 0041 R 20
1904 08EO F9
1905
1906
1907
THIS ROUTiNE HANDLES THE INTERRUPT RECEIVED AFTER RECALl8RATE,
SEEK, OR RESET TO THE ADAPTER. THE 1NJERRUPT 1 S WA 1 TEO FOR, THE
INTERRUPT STATUS SENSED, AND THE RESULT RETURNEO TO THE CALLER.
ON EXITI
CtDSKETTE STATUS, CY REFLECT STATUS OF OPERATION.
I - -- --- - - - - - --- - - - - --- - -::" - - - - - - - - - - - -- - --------- - ------ - ------ - - - - - - - - - - - - -- -- ­
CHK STAT 2
PROC
NEAR
-
MOV
AX ,OFFSET CS 8ACK
I LOAD NEC_OUTPUT ERROR AODRESS
PUSH
AX
­
CALL
WA I TINT
WA I T FOR THE INTERRUPT
JC
J34 -
1 F ERROR, RETURN IT
MOV
AH,08H
SENSE INTERRUPT STATUS COMMAND
CALL
NEC OUTPUT
CALL
RESDL TS
READ
I N THE RESULTS
JC
J34
GET THE FIRST STATUS 8YTE
~~6
~t: ~7Tgo~~~~us
ISOLATE THE BITS
CMP
AL, 0
I
1000008
TEST FOR CORRECT VALUE
JZ
J35
IF ERROR, GO MARK IT
CLC
GOOO RETURN
J34:
POP
AX
I
THROW AWAY ERROR RETURN
CS BACK:
-
RET
J35:
OR
CIIDSKETTE_STATUS ,
BA~_SEEK
STC
ERROR RETURN CODE
JMP
SHORT J34
CHK STAT 2
ENDP
,--=---' : : : - -----------------------------------------------------------:----------­
; WAIT
INT:
THIS ROUTINE WAITS FOR AN INTERRUPT TO OCCUR A Tlh4E OUT ROUTINE
-
TAKES PLACE DURING THE WAIT, SO THAT AN ERROR MAY BE RETURNED
IF THE DRIVE IS NOT READY.
I ON EXIT:
PDSKETTE STATUS. CY REFLECT STATUS OF OPERATION.
I - - ---- - - - - -- - - - - - - - - - - -::- - - - - - - - - - - - --- ------------------- ---- - - - - - - - - - - - - - - - - ­
WAIT INT
PROC
NEAR
-
ST!
TURN ON INTERRUPTS, JUST IN CASE
CLC
CLEAR TIMEOUT INOICATOR
MOV
AX,0900fH
LOAD WAI T CODE AND TYPE
INT
15H
PERFORM OTHER FUNGT I ON
"C
J36A
8YPASS TIMING LOOP IF TIMEOUT DONE
MOV
BL,4
CLEAR THE COUNTER S
XOR
CX,CX
FOR 2 SECONO WAiT
J36s
TEST
PSEEK_STATUS, I NT_FLAG
I TEST FOR INTERRUPT OCCURR I NG
"NZ
"3.
"31
LOOP
COUNT DOWN WHILE WAI,TING
OEC
BL
SECOND LEVEL COUNTER
"NZ
"3.
..)36A:
OR
PDSKETTE_STATUS, T I ME_OUT
j
NOTH I NG HAPPENED
STC
ERROR RETURN
J31 :
PUSHF
; SAVE CURRENT CARRY
ANa
CtSEEK STATUS,NOT INT FLAG
; TURN OFF
INTERRUPT FLAG
POPF
-
-
1 RECOVER CARRY
RET
j
GOOD RETURN COOE
WAIT
INT
ENDP
1- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --
---- - - - - - - - - - - - - - - - - - ­
: RESULTS:
THIS ROUTINE WILL REAO ANYTHING THAT THE NEC CONTROLLER RETURNS
:
FOLLOWING AN INTERRUPT.
ON EXIT:
ClDSKETTE STATUS, CY REFLECT STATUS OF OPERATION.
I
AX ,BX ,CX-;-DX DESTROYED
~~;~~~;
-
~~~~
--
--~~~R-
--------------­
PUSH
01
h40V
01 ,OFFSET .NEC STATUS
PO
I
NTER TO OAT A AREA
MOV
BL,l
-
MAX STATUS 8YTES
MOV
OX, 03F4H
STATUS PORT
;-----
WA 1 T FOR REQUEST FDR MASTER
RIOs
MOV
BH,2
HIGH ORDER COUNTER
XDR
CX,CX
COUNTER
J39:
WA
I
T FOR h4ASTER
IN
AL,DX
GET STATUS
ANa
AL,II0000008
KEEP OPILY STATUS AND DIRECTION
CMP
AL,II0000008
STATUS I AND DIRECTION 0
?
"Z
"42
STATUS AND DIRECTION OK
LOOP
"39
LOOP TILL TIMEOUT
OEC
BH
DECREMENT HIGH ORDER COUNTER
"NZ
"39
REPEAT TILL OELA Y DONE
OR
CIIDSKETTE_STATUS, TIME_OUT
STC
SET ERROR RETURN
"MP
SHORT POPRES
POP REGI STERS ANO RETURN
READ IN THE STATUS
J42:
INC
OX
POINT AT DATA PORT
IN
AL,DX
GET THE DATA
MOV
[01] ,AL
STORE THE 8YTE
INC
01
I
I NCREMENT THE PO INTER
MOV
CX,2
MINIMUM 12 MICROSECONDS FOR NEC
CALL
WAITF
WAIT
15 TO 30 1041 CROSECONOS
OEC
OX
POINT AT STATUS PORT
IN
AL,DX
GET STATUS
TEST
AL,OOOl00008
TEST FOR NEC ST I LL 8USY
POPRES
RESULTS OONE
7
"Z
DEC
BL
DECREMENT THE STATUS COUNTER
"NZ
RIO
GO 8ACK FOR MORE
OR
CtOSKETTE_ST ATUS, 8Ao_NEC
TOO MANY STATUS BYTES
STC
SET ERROR FLAG
1-----
RESULT OPERATION I S DONE
DISKETTE
5-113

Advertisement

Table of Contents
loading

Table of Contents