IBM 5150 Hardware Reference Manual page 227

Hide thumbs Also See for 5150:
Table of Contents

Advertisement

LOC OS!
LINE
SOURCE
2407
;------ DISKETTE READ
2408
EOOE
2409
PROC
NEAR
EDOE 8046
2410
Al,046H
; READ COMNAHO fOR DNA
E010
2411
J9:
t
DISK_READ_CONT
EOIO ESMOl
2412
CALL
DHA.SETUP
• SET UP THE DNA
EOll 8466
~413
HOV
AH,066H
SET UP READ COMMAND FOR NEe CONTROLLER
E015 EB16
2414
JMP
SHORT RW.OPN
; GO 00 THE OPERATION
:415
ENDP
2416
2411
; -----­ DISKETTE VERIFY
2418
E017
2419
DISK_VEPF
PROC
NEAR
E017 8042
2420
~10V
Al.0421"
; VER I F Y COMMAND FOR OMA
E019 ESF5
2421
JMP
J9
; DO AS IF DISK READ
2422
DISK_VERF
EtfDP
2423
;------ DISKETTE FORNAT
2425
EDIB
2426
DISK]ORHAT
PROC
NEAR
EOIB 800E3FOOSO
2421
OR
HOTOR_STATUS.80H
; IHDICATE WRITE OPERATION
EOZD B04A
2428
NOV
AL,04AH
1 WILL WRITE TO THE DISKETTE
£022 £8A701
2429
CALL
OHA_SETUP
j
SET UP THE DNA
E025 8440
2430
May
AH,04DH
; ESTABLISH THE FORMAT COMMAHD
EDZl EB24
2431
JMP
SHORT RW_OPN
; DO THE OPERATION
E029
2432
JIO:
; CONTINUATION OF RW_OPN FOR FMT
E029 880700
2433
HOV
BX,7
; GET THE
Eoze E84101
2434
CALL
GET.PARM
;
BYTES/SECTOR VALUE TO NEe
EDlF 680900
2435
MOV
BX,9
; GET HIE
EDll E83BOI
2436
CALL
GET.PARM
j
SECTORS/TRACK VALUE TO NEC
E035 BBOFOO
2437
HOV
BX,15
; GET THE
E038 E83501
2438
CAll
GET_PARM
j
GAP LENGTH VALUE TO NEC
E03B B81100
2439
MOV
BX,17
j
GET THE FILLER BYTE
EDlE E9ABOD
2440
JMP
JI6
;
TO THE CONTROLLER
2441
DISK]ORMAT
ENDP
2442
2443
;------ DISKETTE WRITE ROUTINE
2444
E041
2445
PROC
NEAR
E041 800E3FOD80
2446
OR
MO rOR_STATUS ,80H
; IHDICATE WRITE OPERATION
E046 8044
2447
MOV
AL.04AH
j
DNA lomITE COMMAND
f048 E88101
2448
CAL l
DHA_SETUP
E04S 8445
2449
MOV
AH ,045H
; NEC COHHAt.lD TO WRITE TO DISKETTE
2450
ENOP
2451
;----- ALLOW WRITE ROUTINE TO FALL INTO RW_OPN
2452
i --------------------­ ------------­ ----­
2453
; RW.OPN
2454
THIS ROUTINE PERFORMS THE READ/WRITE/VERIFY OPERATION
2455
; .-------­ - --­ ---­ - - -------------------­
E040
2456
£040 7308
2457
JNe
JII
TEST FOR DMA ERROR
E04f C606410009
2458
May
DISKETTE_STATUS,DMA_BOUNDARY
i
SET ERROR
ED 54 BODO
2459
MOV
Al.O
; NO SECTORS TRANSFERRED
EDS6 C]
2460
RET
; RETURN TO HAIN ROUTINE
E057
2461
Jll:
I
DO_RW_OPN
ED57 50
2462
PUSH
AX
; SAVE THE COMMAND
2463
2464
; -----­ TURN
ON
THE MOTOR AND SelECT THE DRIVE
2465
EO 58 51
2466
PUSH
ex
I
SAVE THE T/S PARNS
EDS9 SACA
2467
May
Cl.Ol
j
GET DRIVE NUMBER AS SHIfT COUNT
ED58 B001
2468
May
Al,}
I MASK FOR DETERMINING MOTOR BIT
Ease 02EO
2469
SAL
Al.Cl
; SHIFT THE MASK BIT
EOSF FA
2470
eLI
; NO ItHERRUPTS WHILE DETERMINING MOTOR STATUS
E060 C6064000FF
2471
May
MOTOR_COUNT,OFFH
; SET LARGE COUNT DURUIG OPERATION
E065 84063FOQ
2472
TEST
AL,110TOR_STATUS ; TEST THAT MOTOR FOR OPERATING
E069 7531
2473
J~IZ
J14
;
IF RUNHING, SKIP THE WAIT
EDbB e0263FOOfO
2474
AND
I1OTOR_STATUS.OFOH
; TURN DFF ALL MOTOR BITS
£070 08063FOO
2475
OR
MOTOR_STATUS,AL
j
TURN ON THE CURRENT MOTOR
£074 FB
2476
STI
; INTf.RRUPTS BACK ON
E075 BOlO
2:477
MOV
AL,IOH
;
~1ASK
BIT
Eon 02EO
2478
SAL
Al,CL
; DEVelOP BIT MASK FOR MOTOR EHABLE
£079 04C2
2479
OR
AL.Ol
; GET (JRIVE SELECT BITS IN
E078
oeoe
2480
OR
AL,OCH
; NO RESET, EIIABLE DNA/INT
f07D 52
2481
PU5H
ox
; SAVE REG
E07E SAFl03
248~
MOV
DX.03F2H
;
CO~HROL
PORT ADDRESS
E081 EE
2483
OUT
DX,Al
A-34

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents