IBM 5150 Hardware Reference Manual page 232

Hide thumbs Also See for 5150:
Table of Contents

Advertisement

LOt OBJ
LINE
SOURCE
fFOZ E605
fF04 8;'C4
EFOb E60S
EFDa 59
EF09 58
EFOA 03Cl
fFoe S9
EFOD B002
EFOF E60A
EFll C3
EFI2
Eft2: E81EOO
EFlS 7214
EFI? 8408
Ef19 E828FF
EFtC EMCOD
EFIF 720A
EF21 A04200
EF24 2460
EF26 3e60
EF2:6 7<+02
EFlA Fe
EF2B
EF2B C3
EF2:C
EF2C 800E410040
Enl F9
EF32 C3
EF33
EF33 FB
EF34
53
Ens
51
EFl6 8302
EF38 33C9
EnA
EF3A F6063E0080
EF3F 750C
EF41 E2F7
EF43 FECB
EF45 7SF3
EF47 800E410080
EF4C F9
EF40
EF40 9C
EF4E 80263E007F
EF53 9D
EF54 59
EF55 58
EF56 C3
OUT
DNA+5,Al
MOV
AL,AH
OUT
DMA+5,AL
POP
CX
POP
AX
ADO
Ax.ex
POP
CX
2800
MOV
Al,2
; MODf FOR 8Z37
2801
OUT
DMA+IO ,AL
; IUITIAlIZE THE DISKETTE CHANNEL
2:802
RET
; RETURN TO CALLER. eFl SET BY ABOVE IF ERROR
,e03
DNA_SETUP
ENIlP
2804
; --------------­ -----------------­ - ---------­
2805
j
CHK_STAT_2
2806
THIS ROUTINE HANDLES THE INTERRUPT RECEIVED AFTER
2607
A RECALIBRATE. SEEK, OR RESET TO THE ADAPTER.
2606
THE ItITERRUPT IS WAITED FOR. THE INTERRUPT STATUS SENSED.
2609
AUQ THE RESULT
RETUR~IED
TO THE CALLER.
2810
INPUT
2&11
NONE
2612
; OUTPUT
2813
ty ; a
SUCCESS
2814
CY ;
1
FAILURE -­ ERROR IS IN DISKETTE_STATUS
2815
(AX)
DESTROYED
2816
; --­ --------­ ---------------­ -----­ ---------­
2817
CHK_STAT_,
PROC
NEAR
2818
CALL
WAIT_INT
; WAIT FOR THE INTERRUPT
2819
JC
J34
; IF ERROR, RETURN IT
2820
MOV
AH,OBH
; SENSE INTERRUPT STATUS COMMAND
2521
CALL
NEC_OUTPUT
2822
CALL
RESULTS
; READ IN THE RESULTS
2523
JC
J34
; CHK2_RETURN
2824
MOV
Al,t4EC_STATUS
; GET THE FIRST STATUS BYTE
2825
ANO
AL,060H
; ISOLATE THE SITS
2826
CHP
AL,060H
; TEST FOR CORRECT VALUE
2827
JZ
J3S
i
IF
ERRO~.
GO MARK
IT
28,8
CLC
; GOOD RETURN
2829
J34:
2830
RET
; RETURN TO CALLER
2831
J35:
; CHK,_ERROR
2832
OR
o
ISKETTE_ST
A
TUS, BAD_SEEK
2833
STC
; ERROR RETURN CODE
2834
RET
2835
CHK_STAT_2
ENDP
2836
; ---­ ---------------------------------------­
2837
; WAIT_INT
2838
nils
ROUTINE WAITS FOR AN INTERRUPT TO OCCUR
2839
A TIME
OUT
ROUTINE TAKES PLACE OU;;!WG THE WAIT, SO
2840
THAT AN ERROR MAY BE RETURUED IF THE DRIVE IS NOT READY
2841
; INPUT
2842
~lONE
2843
OUTPUT
2844
CY ;
0
SUCCESS
2845
CY
=
1
FAILURE -­ DISKETTE_STATUS IS SET ACCORDINGLY
2846
2847
(AX I
DESTROYED
J------------------------------------------- ­
2848
WAIT_INT
PROC' NEAR
2849
STI
; TURN ON INTERRUPTS, JUST IN CASE
2850
PUSH
ax
2851
PUSH
CX
; SAVE REGISTERS
2852
MOV
BL,2
; CLEAR THE COUNTERS
2853
XOR
ex,cx
; FOR 2 SECOND WAIT
Z554
J36:
2855
TEST
SEEK_STATUS, HITJlAG
; TEST FOR INTERRUPT OCCURRING
2856
JHZ
J37
2857
LOOP
J3'
COUNT
DOWN
WHILE WAITING
2858
DEC
BL
SECOND LEVEl COUNTER
2859
Jt~Z
J36
2860
OR
DISKETTE_STATUS, TIME_OUT
I
NOTHWG HAPPENED
2861
STC
ERROR RETURN
2862
J37:
2863
PUSHF
; SAVE CURRENT CARRY
2864
Arm
SEEK_STATUS,NOT INTJLAG
; TURN OFF INTERRUPT
FLAG
2865
POPF
; RECOVER CARRY
2866
POP
cx
2867
POP
ax
j
RECOVER REGISTERS
2868
RET
; GOOD RETURN CODE COMES FROM TEST INST
2869
WAlT_1NT
ENDP
A-39

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents