IBM 5170 Technical Reference page 240

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

---------------------
0599
75 FO
JNZ
J38
REPEAT Til DELAY DONE
059B
80 DE 00
1
11
R 80
O,~AO
J40:
RESULTS ERROR
O~AO
CO
STC
SET ERROR RETURN
05/1.1
5B
POP
BX
05A2
pOP
OX
,.
pop
05A4
C3
RET
OSA3
59
CX
;------ TEST THE DIRECTION BIT
OSA5
EC
J40A:
IN
AL, llX
;
GET STATUS REG AGAIN
05A6
A8 40
TEST
Al,040H
;
TEST DIRECTION BIT
05A8
75 07
JNZ
J42
; OK TO READ STATUS
05AA
J41 :
;
NEC_FAI l
05AA
80 DE 0041
R 20
OR
DISKETTE_STATUS, BAD_NEC
05AF
EB EF
JMP
J40
; RESUL TS_.ERROR
READ IN THE STATUS
05[11
J42;
INPUT STAT
0')1.31
42
INC
OX
POINT-AT DATA PORT
0')B2
EC
IN
AL,DX
GET THE DATA
0'>B3
88
05
MOV
[01 J,Al
STORE THE BYTE
05B~
47
INC
01
I NCREMENT THE PO INTER
05B6
1.39 0014
MOV
CX,20
lOOP TO Kill TIME FOR NEC
05B9
E2 FE
J43 :
lOOP
J43
05BB
4A
DEC
OX
POINT AT STATUS PORT
O~IJC
EC
IN
Al,DX
GET STATUS
05BO
A8 10
TEST
Al,OlOH
TEST FOR NEC ST
I
I I BUSY
D5BF
74
06
JZ
J44
RESULTS DONE
05Cl
FE CIJ
DEC
Be
DECREMENT THE STATUS COUNTER
05C3
15 C4
JNZ
Rl0
; GO BACK FOR MORE
05C5
EB E3
JMP
J41
; ·CH
I
P I-lAS FAJ lED
;------ RESULT OPERATION
IS DONE
05C7
J44:
05C7
5B
POP
BX
05C8
5A
POP
OX
05C9
59
POP
ex
;
RECOVER RE(; I STERS
05CA
C3
RET
; GOOD RETURN CODE FROM TEST
I NST
;
~------------
------------
--­
NUM TRANS
-
THIS ROUTINE CALCULATES THE NUMBER OF SECTORS THAT
WERE ACTUAllY TRANSFERRED TO/FROM THE DISKETTE
INPUT
(CH) '" CYliNDER Of OPERATION
(Cl)
=
START SECTOR OF OPERATION
OUTPUT
(Al) = NUMBER ACTUAllY TRANSFERRED
NO OTHER REG I STERS MOD I F I ED
05CB
~U;:TRANS
-------
;~~c
----
N
EA~
----------------------­
05CB
AO 0045 R
MOV
Al,NEC_STATlJS+3
GET CYLINDER ENDED UP ON
05eE
3A C5
CMP
Al, CH
SAME AS WE ST ARTEO
0500
AD 0047 R
MOV
Al, NEC_STATUS+5
GET END I NG SECTOR
0503
74 0/1.
JZ
J45
I F ON SAME CYl. THEN NO ADJ UST
0505
BB 0008
MOV
BX,8
0508
E8 0382 R
CALL
GET_PARM
GET EaT VALUE
05DB
8A C4
MOV
Al,AH
INTO Al
0500
FE CO
INC
Al
USE EOT+l
FOR CALCULATION
05DF
2/1. Cl
Jjf~
:
SUB
AL, Cl
SUBTRACT START FROM END
05[1
C3
RET
05E2
NUM TRANS
ENDP
05E2
RESULTS ENOP
HANDLE 0 I SK CHANGE
I F FOUND TO BE
ACT I VE
05£2
C6 87 0090 R 61
J1F:
MOV
DSK_STATE[BX],POA_DUAl
;
CLEAR STATE FOR THIS DRIVE
THIS SEQUENCE OF SEEKS IS USED TO RESET DISKETTE CHANGE SIGNAL
05£1
E8 OleA R
CAll
DISK Ri:.SET
RESET NEC
05£A
8B 56 00
MOV
DX,[BP]
RESTORE DRIVE PARMETER
O')ED
1.35 01
MOV
CH,D1H
MOVE TO CYLINDER 1
O~£F
[8 041C R
CAll
SEEK
ISSUE SEEK
05F2
8B 56 00
MOV
OX, [BP
J
RESTORE DR I VE PARMETER
05F5
B5 00
~10V
CH,OOH
MOVE TO CYl I NDER 0
0~F7
£8 041C R
CALL
SEEK
;
I SSUE SEEK
05F/I.
CG 060041 R 06
MOV
DISKETTE_STATUS,MEOIA_CHANGE ;
INDICATE MEDIA REMOVED FROM DR I VE
05FF
5A
POP
OX
;
RESTORE PARAMETERS
0600
59
PDP
CX
;
*
0601
5B
POP
OX
0602
58
POP
AX
0603
C3
RET
MEDIA CHANGE, GO DETERMINE NEW TYPE
;
--------------------------
------
-----
--- --------­
READ DSKCHNG
;
THIS ROUTINE READS THE STATE OF THE
;
0 I SK CHANGE LI NE
ZERO FLAG:
0 - DISK CHANGE:. liNE INACTIVE
1 -
DISK CHANGE liNE ACT!VE
0604
READ_DSKCHNG
PROC
NEAR
0604
32 FF
XOR
BH,BH
;
CLEAR HiGH OfWER 0 FSET
0606
8A DA
MOV
Bl,Dl
;
lOAD DRIVE
NU~1l3[R
AS OFFSET
0608
BO 01
MOV
Al,Ol
; MASK FOR DETERNININ8 MOTOR BIT
060A
80 26 003F R CF
AND
MOTOR STATUS,DCFH ; CLEAR ENCODED DHIVE SELECT BITS(4
8: 5)
060F
B1 04
MOV
CL,4 -
SHIFT DRIVE
~WMBER
INTO HIGH NIBBLE COUNT
0611
02 C3
ROL
Bl,Cl
SHIFT DRIVE NUM3ER
INTO HIGH NIBBLE
0613
08 1E OOlF R
OR
MOTOR_STATUS,Bl
ADD IN DRIVE NUMBEH SELECTED FOR LATER USE
0617
02 CB
ROR
BL,CL
RESTORE DRIVE NUMBER
0619
8A CB
MOV
Cl,Bl
RESTORE DRIVE NUMBER
061B
02 EO
SHe
Al,Cl
FORM MOTOR ON BIT MASK
0610
FA
CLI
NO INTERRUPTS WHilE DETERMING MOTOR STATUS
061E
84 06 003F R
TEST
Al,MOTOR_STATUS
TEST
0622
15 09
JNZ
R8
DONT NEED TO SELECT DEVICE I f MOTOR ON
0624
08 06 003F R
OR
MOTOR STATUS, Al
TURN ON CURRENT MOTOR
0628
C6 06 0040 R FF
MOV
MOTOR=COUNT, 0 F FH ;
SET lARGE COUNT DURING OPERATION
0620
R8 :
STI
ENABLE
I NTERRU PTS AGA! N
062E
IJA
03F2
MOV
OX, 03 F2H
ADDRESS DIGITAL OUTPUT REGISTER
'"
0631
AO 003F R
MOV
Al, MOTOR_STATUS
GET DIGITAL OUTPUT REGISTER REFLECTION
0634
24 3F
AND
AL,03FH
STRIP AWAY UNWANTED BITS
0636
Bl 04
MOV
Cl,4
SHI FT COUNT
0638
02 CO
ROL
Al,Cl
PUT BITS IN DESIRED POSITIONS
OG3A
ac oc
OR
Al,OCH
NO RESET,
ENABLE OMA/I NT
063C
EE
OUT
DX,Al
SELECT DRIVE
0630
BA 03F7
MOV
DX,03F7H
ADDRESS DIGIT)/l.l INPUT REGISTER
0640
EB 00
JMP
$+2
DELAY FOR SUPPORT CHI P
5-98 Diskette

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents