IBM 5150 Technical Reference page 166

Hide thumbs Also See for 5150:
Table of Contents

Advertisement

LOC OBJ
LINE
SOURCE
EF6F 53
3100
PUSH
BX
EF70 6307
3101
MOV
Bl,7
J MAX STATUS BYTES
310l
3103
; ----­ WAIT FOR REQUEST FOR MASTER
3104
EF72
3105
J38:
; INPUT_LOOP
EF72 33C9
3106
XOO
CX,CX
; COUNTER
EF74 8AF403
3107
MOY
OX , 03F4H
I STATUS PORT
EF77
3108
J39:
I WAIT FOR HASTER
~
EF77 EC
3109
IN
A.l,DX
i GET STATUS
EF78 A880
3110
TEST
AL,080H
I MASTER READY
EF7A 750C
3111
JNZ
J40A
i
TEST_OIR
Ef7e E2F9
3112
LOOP
J39
i I-IAIT_HASTER
EF7E 800E410080
3113
00
OISKETn:_STATUS. TIME_OUT
EF83
3114
J4a:
J RESULTS_ERROR
EF83 F9
3115
STC
I SET ERROR RETURN
EF84 58
3116
pop
BX
EF85 SA
3117
pop
OX
EF86 59
3118
pop
CX
EF87 C3
3119
OET
3120
3121
1----- TEST THE DIRECTION BIT
3122
"88
3123
J40A:
EF88 EC
3124
IN
AL,DX
; GET STATUS REG AGAIN
Ef89 A840
3125
TEST
AL.040H
I TEST DIRECTION BIT
fFBB 7507
3126
JNZ
J42
; OK TO READ STATUS
EFBD
3127
J41:
; NEC_FAIL
£FeD 800£410020
3128
OR
DISKETTE_STATUS .BAD_NEC
EF92 EBEF
3129
JMP
J40
; RESULTS_ERROR
3130
3131
;----- READ IN THE STATUS
3132:
"94
3133
J42 :
; INPUT_STAT
£F94 42:
3134
INC
DX
)
POINT AT DATA PORT
EF95 EC
3135
IN
AL.DX
; GET THE DATA
EF96 8805
3136
MOV
(DIltAL
i STORE THE BYTE
EF98 47
3137
INC
01
I INCREMENT THE POINTER
EF99 890AOO
3138
MeV
eX,lo
I lOOP TO KILL TIME FOR NEC
~
EF9C EZFE
3139
J41;
lOOP
J43
EF9E 4A
3140
DEC
OX
I
POINT
AT STAruS PORT
EF9F EC
3141
IN
AL,DX
; GET STATUS
EfAO A810
3142
TEST
AL,OlOH
I TEST FOR NEe STILL BUSY
EFAl 7406
3143
JZ
J44
I RESULTS DONE
EFA4 FEee
3144
DEC
BL
I DECREMENT THE STATUS COUNTER
EFA6 75CA
3145
JH2
J3.
I GO BACK FOR HOR E
EFA8 EBD
3146
JMP
J41
; CHIP HAS FAILED
3147
314S
j-----
RESULT OPERATION IS DONE
3149
EFAA
3150
J44:
EFAA 58
3151
POP
BX
EFAB SA
3152
POP
ox
HAC 59
3153
POP
CX
; RECOYER REGISTERS
EFAD C3
3154
OET
1 GOOD RETURN CODE FROM TEST INST
3155
1---------------------------------------------------------------­
3156
; NUtCTRAHS
3157
THIS ROUTINE CALCULATES THE HUI1BER OF SECTORS THAT
3156
WERE ACTUALLY TRANSFERRED TO/FRON THE DISKETTE
31.59
INPUT
3160
ICH)
=
CYLINDER OF OPERATION
3161
I CU
=
START SECTOR OF OPERATION
3162
i
OUTPUT
3161
(AU
=
Nl..lHBER ACTUALLY TRANSFERRED
3164
NO OTHER REGISTERS MODIFIED
3165
;
---­
---------­----------------------------------­
--­
------_.---­
EFAE
316b
HUH_TRANS
PROC
NEAR
EFAE A04500
1167
MeV
AL,NEC_STATUS+3
I GET CYLINDER ENDED UP ON
EFBI 3AC5
3168
CMP
AL,CH
I SANE AS WE STARTED
/"""\
EFB3 A04700
EFB6 740A
3169
3170
MOV
JZ
AL,NEC.STATUS+5
J4.
I GET ENDING SECTOR
J IF ON SANE CYL, THEN NO ADJUST
EFBS 8B0800
3171
MOV
BX,8
EFBB E6AEFE
3172
CALL
GET_PAR"
; GET EOT VALUE
EFBE 8AC4
3173
MeV
AL.AH
,
INTO AL
EFCO FECO
3174
INC
AL
; USE EOT+l FOR CALCULATION
EFC2
3175
J45:
EFC2 ZACI
3176
S\JB
AL,CL
I S18TRACT 5T ART FROt1 END
System BIOS 5-73

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents