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 OS! LINE SOURCE<br />

2407 ;------ DISKETTE READ<br />

2408<br />

EOOE 2409 PROC NEAR<br />

EDOE 8046 2410 Al,046H ; READ COMNAHO fOR DNA<br />

E010 2411 J9: t DISK_READ_CONT<br />

EOIO ESMOl 2412 CALL DHA.SETUP • SET UP THE DNA<br />

EOll 8466 ~413 HOV AH,066H SET UP READ COMMAND FOR NEe CONTROLLER<br />

E015 EB16 2414 JMP SHORT RW.OPN ; GO 00 THE OPERATION<br />

:415 ENDP<br />

2416<br />

2411 ; -----­ DISKETTE VERIFY<br />

2418<br />

E017 2419 DISK_VEPF PROC NEAR<br />

E017 8042 2420 ~10V Al.0421" ; VER I F Y COMMAND FOR OMA<br />

E019 ESF5 2421 JMP J9 ; DO AS IF DISK READ<br />

2422 DISK_VERF EtfDP<br />

2423<br />

;------ DISKETTE FORNAT<br />

2425<br />

EDIB 2426 DISK]ORHAT PROC NEAR<br />

EOIB 800E3FOOSO 2421 OR HOTOR_STATUS.80H ; IHDICATE WRITE OPERATION<br />

EOZD B04A 2428 NOV AL,04AH 1 WILL WRITE TO THE DISKETTE<br />

£022 £8A701 2429 CALL OHA_SETUP j SET UP THE DNA<br />

E025 8440 2430 May AH,04DH ; ESTABLISH THE FORMAT COMMAHD<br />

EDZl EB24 2431 JMP SHORT RW_OPN ; DO THE OPERATION<br />

E029 2432 JIO: ; CONTINUATION OF RW_OPN FOR FMT<br />

E029 880700 2433 HOV BX,7 ; GET THE<br />

Eoze E84101 2434 CALL GET.PARM ; BYTES/SECTOR VALUE TO NEe<br />

EDlF 680900 2435 MOV BX,9 ; GET HIE<br />

EDll E83BOI 2436 CALL GET.PARM j SECTORS/TRACK VALUE TO NEC<br />

E035 BBOFOO 2437 HOV BX,15 ; GET THE<br />

E038 E83501 2438 CAll GET_PARM j GAP LENGTH VALUE TO NEC<br />

E03B B81100 2439 MOV BX,17 j GET THE FILLER BYTE<br />

EDlE E9ABOD 2440 JMP JI6 ; TO THE CONTROLLER<br />

2441 DISK]ORMAT ENDP<br />

2442<br />

2443 ;------ DISKETTE WRITE ROUTINE<br />

2444<br />

E041 2445 PROC NEAR<br />

E041 800E3FOD80 2446 OR MO rOR_STATUS ,80H ; IHDICATE WRITE OPERATION<br />

E046 8044 2447 MOV AL.04AH j DNA lomITE COMMAND<br />

f048 E88101 2448 CAL l DHA_SETUP<br />

E04S 8445 2449 MOV AH ,045H ; NEC COHHAt.lD TO WRITE TO DISKETTE<br />

2450 ENOP<br />

2451 ;----- ALLOW WRITE ROUTINE TO FALL INTO RW_OPN<br />

2452 i --------------------­------------­----­<br />

2453 ; RW.OPN<br />

2454 THIS ROUTINE PERFORMS THE READ/WRITE/VERIFY OPERATION<br />

2455 ; .-------­- --­---­ - - -------------------­<br />

E040 2456<br />

£040 7308 2457 JNe JII TEST FOR DMA ERROR<br />

E04f C606410009 2458 May DISKETTE_STATUS,DMA_BOUNDARY i SET ERROR<br />

ED 54 BODO 2459 MOV Al.O ; NO SECTORS TRANSFERRED<br />

EDS6 C] 2460 RET ; RETURN TO HAIN ROUTINE<br />

E057 2461 Jll: I DO_RW_OPN<br />

ED57 50 2462 PUSH AX ; SAVE THE COMMAND<br />

2463<br />

2464 ; -----­ TURN ON THE MOTOR AND SelECT THE DRIVE<br />

2465<br />

EO 58 51 2466 PUSH ex I SAVE THE T/S PARNS<br />

EDS9 SACA 2467 May Cl.Ol j GET DRIVE NUMBER AS SHIfT COUNT<br />

ED58 B001 2468 May Al,} I MASK FOR DETERMINING MOTOR BIT<br />

Ease 02EO 2469 SAL Al.Cl ; SHIFT THE MASK BIT<br />

EOSF FA 2470 eLI ; NO ItHERRUPTS WHILE DETERMINING MOTOR STATUS<br />

E060 C6064000FF 2471 May MOTOR_COUNT,OFFH ; SET LARGE COUNT DURUIG OPERATION<br />

E065 84063FOQ 2472 TEST AL,110TOR_STATUS ; TEST THAT MOTOR FOR OPERATING<br />

E069 7531 2473 J~IZ J14 ; IF RUNHING, SKIP THE WAIT<br />

EDbB e0263FOOfO 2474 AND I1OTOR_STATUS.OFOH ; TURN DFF ALL MOTOR BITS<br />

£070 08063FOO 2475 OR MOTOR_STATUS,AL j TURN ON THE CURRENT MOTOR<br />

£074 FB 2476 STI ; INTf.RRUPTS BACK ON<br />

E075 BOlO 2:477 MOV AL,IOH ; ~1ASK BIT<br />

Eon 02EO 2478 SAL Al,CL ; DEVelOP BIT MASK FOR MOTOR EHABLE<br />

£079 04C2 2479 OR AL.Ol ; GET (JRIVE SELECT BITS IN<br />

E078 oeoe 2480 OR AL,OCH ; NO RESET, EIIABLE DNA/INT<br />

f07D 52 2481 PU5H ox ; SAVE REG<br />

E07E SAFl03 248~ MOV DX.03F2H ; CO~HROL PORT ADDRESS<br />

E081 EE 2483 OUT DX,Al<br />

A-34

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

Saved successfully!

Ooh no, something went wrong!