IBM 5150 Hardware Reference Manual page 230

Hide thumbs Also See for 5150:
Table of Contents

Advertisement

LOC OBJ
LINE
SOURCE
EE52: 800£410080
2639
OR
o
ISKETTE_STATUS. TIME_OUT
££57 59
2640
POP
CX
EE58 SA
2641
POP
OX
; SET ERROR CODE AND RESTORE REGS
EES9 56
2.642
POP
AX
; DISCARD THE RETUF!N ADDRESS
EESA F9
2643
STC
; INDICATE ERROR TO CALLER
EES9 C3
2644
Rn
2645
EESC
2646
J25:
EESC 33C9
2647
XOR
cx.cx
; RESET THE COUUT
EESE
2648
J26:
EESE EC
~649
IN
.u,ox
; GET THE STATUS
EESF AB80
2650
TEST
AL.OBOH
J
IS IT READY
J""
r""\
fE61 7504
2651
J27
I YES. GO OUTPUT
fE63 E2F9
2652
LOOP
J2.
J
COUNT
omm
AHD TRY AGAIN
fE65 EBEB
2653
J"P
J2'
J ERROR CONDITION
fE67
2654
J2:7:
; OUTPUT
fE67 84C4
2655
t10V
AL,AH
• GET BYTE TO OUTPUT
E£69 BAF501
2656
DX,03F5H
; DATA PORT
""V
Efbe EE
2657
OUT
OX.AL
; OUTPUT THE BYTE
EE60 59
2:658
POP
CX
; RECOVER REGISTERS
fE6E 5A
2659
POP
OX
EE6F C3
2.660
Rn
; CY
=
0 FROM TEST INSTRUCTION
2661
NEt_OUTPUT
ENOP
2662
;
---
------------------------------
--------­
2663
; GET_PARM
2664
I
THIS ROUTINE fETCHES THE IHOEXED POINTER FROM
2665
I
THE DISK_BASE BLOCK POINTED AT BY THE DATA
2666
I
VAF!IABLE DISK_POINTER
2667
; A eYTE FROM THAT TABLE IS THEN HOVED INTO AH,
2668
;
THE INDEX OF THAT BYTE BEING THE PARrt IN ex
2669
; ENTRY -­
2670
BX
=
INDEX OF BYTE TO BE FETCHED
*
2
2671
IF THE lOW BIT OF ex IS ON. THE BYTE IS IMMEDIATELY
2672
OUTPUT TO THE NEC CONTROLLER
2673
EXIT - ­
2674
AH
=
THAT BYTE fROM BLOCK
2675
;
-
------------------------------------------ ­
r""\
EE70
2676
GET_PARl1
PROC
t~EAR
E£70 IE
2677
PUSH
as
SAVE SEGMENT
EE71 2BCO
2678
SUB
AX.AX
J
ZERO TO AX
EE73 8E08
2679
"OV
OS,AX
2680
ASSUME
OS:ABSO
E£75 C5367800
2681
LOS
51 ,DISK_POINTER ; POINT TO BLOCK
EE79 DIES
2682
SHR
ax,l
; DIVIDE BX BY 2. AND SET flAG FOR EXIT
EE7B 8A20
2683
"OV
AH,lSI+BXl
; GET THE WORD
EE7D IF
2684
POP
OS
j
RESTORE SEGMENT
268S
ASSUME
OS:OATA
EE7E 72C4
2686
JC
NEC_OUTPUT
; IF FLAG SET, OUTPUT TO CONTROLLER
EE80 C3
2687
RET
; RETURN TO CALLER
2688
GET_PARI1
ENOP
2689
;-------------------------------------------­
2690
; SEEK
2691
THIS ROUTINE WILL MOVE THE HEAD ON THE NAMED DRIVE
2692
TO THE NAMED TRACK.
IF THE DRIVE HAS NOT BEEN ACCESSED
2693
SINCE THE DRIVE RESET COMMAND WAS ISSUED, THE DRIVE WILL BE
2694
RECALIBRATED.
2695
; INPUT
.2:696
(DU
=
DRrVE TO SEEK ON
2697
(CH)
=
TRACK TO SEEK TO
2698
; OUTPUT
2699
CY
=
0 SUCCESS
2700
CY
=
1 FAILURE -- DISKETTE_STAn../S SET ACCORDINGLY
2701
(AX I DESTROYED
2702
;
-- -
-------------------------------
-----
----­
EE81
2703
SEEK
PROC
HEAR
EE8l· 8001
2704
MV
AL,1
; ESTABLISH MASK fOR RECAL TEST
EE63 51
2705
PUSH
CX
; SAVE INPUT VALUES
EE84 8ACA
2706
CL,OL
; GET DRIVE VALUE INTO CL
r""\
""V
EE86 D2CO
2707
ROL
AL,CL
; SHIFT IT BY THE DRIVE VALUE
EE88 59
2708
POP
CX
; RECOVER TRACK VALUE
EE89 84063EOO
2709
TEST
AL,SEEK_STATUS
; TEST FOR REeAL REQUIRED
EE8D 7513
2710
JIlZ
J2.
-; NO_RECAl
EE8F 06063EOO
2711
OR
SEEK_STATUS,AL
; TURn ON THE HO RECAL BIT IN FLAG
EE93 6407
2712
"OV
AH ,07H
i
RECALIBRATE COMMAND
EE95 E6ACFF
2713
CALL
NEC_OUTPUT
EE98 6AE2
2714-
"OV
AH,DL
EE9A E6A7FF
2715
CALL
tlEC_OUTPUT
; OUTPUT THE DRIVE HUMBER
A-37

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents