IBM 5150 Technical Reference page 164

Hide thumbs Also See for 5150:
Table of Contents

Advertisement

LaC OBJ
LINE
SOURCE
EEC9 FA
CLI
• NO MORE INTERRUPTS
'94.
EEeA
Eboe
' 9 47
OUT
DMA-t12,AL
l SET THE FIRST/LAST F/F
EEee 50
PUSH
AX
'94.
EeCD 58
2949
POP
AX
EEeE £60e
2950
OIIT
DI1A+ll,AL
l OUTPUT THE HOOE BYTE
EEDO 8CCD
2951
MOV
AX,ES
; GET THE ES VALUE
fEOZ 8104
2952
MOV
CL.4
• SH IF T COUNT
EED4 03CO
2953
ROL
AX,CL
J ROTATE LEFT
fED6 8Af8
2954
I10V
CH.A.l
; GET HIGHEST NYBLE OF ES TO eH
~
EED8 24fO
2955
AND
Al,OFOH
; ZERO THE LOW NYBBLE FROM SEGMENT
EEDA 03e3
2956
ADD
AX.
ox
; TEST FOR CARRY FRON ADDITION
EEOC 7302
2957
JHC
J33
EEOE FEes
2958
INC
CH
J CARRY MEANS HIGH 4 BITS truST BE INC
fEED
2959
J33:
fEED 50
2960
PUSH
AX
; SAVE START ADDRESS
HEl E604
2961
OUT
DHA+4,AL
; OUTPUT LOW ADDRESS
EEE3 8AC4
2962
MOV
AL,AH
fEES E604
2963
OUT
DMA+4,AL
; OUTPUT HIGH ADDRESS
EE£7 8AC5
2964
I10V
AL.CH
; GET HIGH 4 BITS
EEE9 240F
2965
AND
AL,OFH
EEEB E681
2966
OUT
D81H.AL
I Q\JfPUT THE HIGH 4 BITS TO
2967
;
THE PAGE REGISTER
2968
2969
;----- DETERMINE COUNT
2970
EEED 6AE6
2971
MDV
AH.DH
f
NUMBER OF SECTORS
EEEF lACO
2.972
sua
AL.AL
I
TIMES 256 INTO AX
EEFI DIE8
2973
SHR
AX.1
; SECTORS • 128 INTO AX
EEF3 50
2.974
PUSH
AX
EEF4 8B0600
2975
MDV
BX.6
I GET THE 8YTES/sECTOR PARM
EEF7 E872FF
2976
CALL
GET_PAR"
EEFA SAce
2977
MOV
CL.AH
; USE AS SHIfT COUHT (O=128. 1=2:56 ETC)
EEFe 58
2978
PDP
AX
EEFD DUO
2979
SHL
AX,CL
; MULTIPLY BY CORRECT AHaUNT
EEFF 48
2980
D'C
AX
, -1 FOR DHA VALUE
EFOO 50
2981
PUSH
AX
I SAVE COUNT VALUE
HOI E605
2982
DIIT
OMA+5.Al
j
lOW BYTE OF COUNT
EFO] 84C4
2983
MDV
Al.AH
EF05 E605
2964
OUT
DHA+S.Al
l HIGH BYTE OF COUNT
~
EF07 F8
.2985
sn
l INTERRUPTS BACK ON
EF08 59
2986
POP
CX
I RECOVER COUNT VALUE
EF09 58
.2987
PDP
AX
I RECOVER ADDRESS VALUE
EFOA 03CI
2988
ADD
AX.CX
I AOD. TEST FOR 64K OVERflOW
EFOC 59
.2989
POP
CX
o RECOVER REGISTER
HOD B002
2990
MDV
AL,2:
J. MODE FOR 6237
HOF E60A
2:991
OUT
DHA+IO.AL
; INITIALIZE THE DISKETTE CHANNEL
EFll C3
2992
RET
J RETURN TO CALLER,
2993
I
CF L SET BY ABOYE IF ERROR
2994
DMA.SETUP
'HOP
2995
J-----------------------------------------------------------------------­
2996
I OIK_STAT_2
2997
THIS ROUTINE HANDLES THE INTERRUPT RECEIYED AFTER A
2998
RECALIBRATE. SEEK, OR RESET TO THE ADAPTER.
2999
THE INTERRUPT 15 WAITED FOR. THE INTERRUPT STATUS SENSED.
3000
AND THE RESULT RETURNED TO THE CALLER.
3001
I
IHI'UT
3002
I
HCN'
3003
I OUTPUT
3004
CY
=
0 SUCCESS
3005
CY
=
I FAILURE -- ERROR IS IN DISKETTE.STATUS
3006
(AX) DESTROYED
3007
J---- - - - --- - ----- ---- - - - - - - ----------- - - - - ---------- ---- ---- ---- --- -----­
EFI2
3006
CHK_STAT.2
NEAR
"'DC
H12 £81EOO
3009
CAll
WAIT.INT
l WAIT FOR THE INTERRUPT
EFlS 7214
3010
JC
J34
I IF ERROR. RETURN IT
EF17 8408
3011
HOV
AH .OSH
J SENSE INTERRUPT STATUS COHHAI«I
EF19 E825Ff
3012
CAll
NEC_OUTPlTT
HIe E84AOO
3013
CALL
RESULTS
J. READ IN THE RESULTS
EFIF 720A
3014
JC
J34
I CHK2_RETURN
HU A04200
3015
I10V
Al.NEC_STATUS
I GET THE FIRST STATUS BYTE
EF.24 2460
3016
AND
Al.060H
J ISOLATE THE BITS
EF26 3C60
3017
CI1P
Al.060H
I TEST FOR CORRECT VAlue
EF26 7402
3018
JZ
J15
; IF ERROR. GO HARK IT
EF2A. F8
3019
CLC
; GOOD RETURN
EF2B
3020
J34:
EF2B C3
3021
RET
J RETURN TO CALLER
EF2C
3022
J35:
I CHK2.ERROR
~
System BIOS 5-71

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents