25.03.2015 Views

IBM 5150 PC Technical Reference (6025005, August, 1981) (PDF)

IBM 5150 PC Technical Reference (6025005, August, 1981) (PDF)

IBM 5150 PC Technical Reference (6025005, August, 1981) (PDF)

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

LOC OBJ LINE SOU-RCE<br />

~<br />

f082: 5A 2464<br />

2485<br />

E08l F60b3F0080<br />

EO&6 7412<br />

EDBA B81400<br />

EDeD E8EOOO<br />

£090 0.4.£4<br />

E092<br />

Eon 7408<br />

E094 2BC9<br />

E096 E2FE<br />

ED98 FEce<br />

ED9A fBF6<br />

EDge<br />

EDge FB<br />

ED90 59<br />

ED9E £8EOOO<br />

EoAl 58<br />

fOAl 8AFe<br />

EDA4 6600<br />

EDAb 7246<br />

EDA8 BEF1ED90<br />

EOAe 56<br />

EDAD E89400<br />

EDBD 8A6601<br />

EoB3 DOE4<br />

EoBS 00E4<br />

EOB7 80£404<br />

EDBA OAE2<br />

EDBC E86500<br />

EDBF 60FF4D<br />

£oe.2 7503<br />

EDC4 E96ZFF<br />

EOC7 BAES<br />

Eoe9 £87800<br />

Eoce 8MbOl<br />

EOCF f87200<br />

E002 8AEl<br />

EDD4 E86000<br />

E007 B60700<br />

EDDA E89300<br />

EOoD B60900<br />

£OEO £88000<br />

EDEl 860600<br />

EDE6 f88700<br />

EOE9 eeoooo<br />

fDEC<br />

EDEC E88100<br />

EDEF 5f<br />

fDFO £84001<br />

EOFl<br />

EOF3 7245<br />

EDFS £67301<br />

fDFS 7.23F<br />

EOFA Fe<br />

EDFB 6£4200<br />

EOFE AC<br />

EOFF 24eo<br />

2486<br />

2487<br />

2488<br />

2489<br />

2490<br />

2491<br />

2492<br />

2493<br />

2494<br />

2495<br />

2496<br />

2497<br />

2:498<br />

2499<br />

2500<br />

2501<br />

2502<br />

2503<br />

2504<br />

2505<br />

2506<br />

Z507<br />

2508<br />

Z50~<br />

Z510<br />

Z511<br />

2512<br />

2513<br />

2514<br />

2515<br />

2516<br />

2517<br />

2518<br />

2519<br />

2520<br />

2521<br />

2522<br />

2523<br />

2524<br />

2525<br />

2526<br />

2527<br />

2528<br />

2529<br />

2530<br />

2531<br />

2532<br />

2533<br />

2534<br />

2535<br />

2536<br />

2537<br />

2538<br />

2539<br />

2540<br />

2541<br />

~542<br />

2543<br />

2544<br />

2545<br />

2546<br />

2547<br />

2548<br />

254';1<br />

2550<br />

2551<br />

2.552<br />

2553<br />

2.554<br />

2555<br />

2556<br />

2557<br />

2558<br />

2559<br />

2560<br />

POP ox ; RECOVER REGISTER'S<br />

;------ WAIT FOR MOTOR' IF WRITE OPERATION<br />

J12:<br />

J13:<br />

J14:<br />

TEST<br />

JZ<br />

MaV<br />

CALL<br />

DR<br />

JZ<br />

SUB<br />

lOOP<br />

DEC<br />

JMP<br />

STI<br />

POP<br />

MOTOR.:,.STATUS.80H<br />

J14<br />

BX.20<br />

GET_PARH<br />

AH.AH<br />

Jl4<br />

cx.ex<br />

J13<br />

AH<br />

Jlt<br />

ex<br />

~------ 00 THE SEEK OPERATION<br />

; IS THIS A WRITE<br />

; NO. CONTINUE WITHOUT WAIT<br />

; GET THE MOTOR WAIT<br />

; PARAMETER<br />

; TEST FOR NO WAIT<br />

; TEST_WAIT_TIME<br />

; EXIT WITH TItlE EXPIRED<br />

; SET UP 1/8 SECOND LOOP TIME<br />

; WAIT FOR THE REQUIRED TIME<br />

; DECREMENT TIME YALUE<br />

; ARE WE DONE YET<br />

; MOTOR_RUNNING<br />

INTERRUPTS BACK ON FOR BYPASS WAIT<br />

CAll SEEK ; MOVE TO CORRECT TRACK<br />

POP AX ; RECOVER COMMAUO<br />

NOV BH, Aft l SAVE COH11AND IN BH<br />

HOV DH.O ; SET NO SECTORS READ IN CASE OF ERROR<br />

JC J 17 ; IF ERROR. THEt! EXIT AFTER MOTOR Off<br />

MOV 51 ,OffSET J17 ; DUMMY RETURN ON STACK FOR ~IEC_OUTF'UT<br />

PUSH 51 ; SO THAT IT WILL RETURN TO MOTOR Off LOCATION<br />

}------ SEND OUT THE PARAMETERS TO THE CONTROllER<br />

CALL<br />

MOY<br />

SAL<br />

SAL<br />

AIm<br />

OR<br />

NEC_OUTPUT<br />

AH,[ BP+ II<br />

AH,l<br />

AH.l<br />

AH.4<br />

AH.DL<br />

j------ TEST FOR FORMAT COMMAND<br />

JlS~<br />

J16:<br />

eMP<br />

Jt~E<br />

JMP<br />

MOV<br />

CALL<br />

MOV<br />

CALL<br />

MOV<br />

CALL<br />

MOV<br />

CAll<br />

MOV'<br />

CALL<br />

MOY<br />

CALL<br />

nov<br />

6H .04DH<br />

JIS<br />

JIO<br />

AH,CH<br />

AH, [BPtl J<br />

NEe_OUTPUT<br />

AH,CL<br />

NEC_OUTPUT<br />

BX.7<br />

GET _PARM<br />

BX.9<br />

GET_PARM<br />

BX,Il<br />

GET_PARM<br />

BX.13<br />

CALL GET_PARM<br />

POP 51<br />

;------ LET THE OPERATION HAPPEN<br />

J17:<br />

CALL<br />

Je<br />

CALL<br />

Je<br />

J21<br />

RESULTS<br />

J20<br />

; OUTPUT THE OPERATION COMMANO<br />

I GET THE CURRENT HEAD NUMBER<br />

j MOVE IT TO BIT 2<br />

; ISOLATE THAT BIT<br />

; OR IN. THE OP.IVE NUMBER<br />

I IS THIS A fORMAT OPERATION<br />

; NO. CONTINUE WITH R/W/V<br />

; IF SO. HAt.fDlE SPECIAL<br />

; CYlINDER NUMBER<br />

HEAD NUt1BER FROM STACK<br />

SECTOR NUMBER<br />

; BHES/SECTOR PAPM FROM BLOCK<br />

TO THE NEe<br />

i EOT PARM FRaN BLOCK<br />

I TO THE NEe<br />

; GAP LEHGTH PARI1 FROM BLOCK<br />

i TO THE NEe<br />

j OTl PARM fRCi~ BLOCK<br />

; Rll_OFt~_FItHSH<br />

; TO THE NEC<br />

CAN NOW DISCARD THAT DUHtI'f RETlIRN ADDRESS<br />

I WAIT FOR THE INTERRUPT<br />

; MOTOR_OFF<br />

; LOOK FOR ERROR<br />

; GET THE NEC STATUS<br />

; LdaK fOR ERROR<br />

;------ CHECK THE RESULTS RETURNED BY THE CONTROllER<br />

; set THE CORRECT DIRECTION<br />

CLD<br />

MOV 51 ,OFFSET NEC_STATUS ; porNT TO STATUS FIElD<br />

LODS NEC_STATUS<br />

; GET STO<br />

AND Al.OCOH ; TEST fOR NORMAL TERMINATION<br />

A-35

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!