IBM AT 5170 Technical Reference page 273

Table of Contents

Advertisement

IBM Person"l
Computer MACRO Assembler
VerSion 2.00
1-5
DSKETTE --
06/10/85
DISKETTE BIOS
06-10-85
426
010380 OE 003F R 80
OR
O'MOTOR STATUS,I00000008
:
INDICATE WRITE OPERATION
421
0108 E8 035C R
CALL
RD_WR_VF
;
COMMON READ/WRITE/VERIFY
428
0 I 08 C3
RET
429
0 I OC
DISK_WRITE
ENDP
430
431
DISK VERF:
DISKETTE VER I FY •
432
ON ENTRY:
Dl
:
DR IVE
#
434
S
I-HI
:
HEAD
#
435
S I-LOW
:
# OF SECTORS
436
E5
:
BUFFER SEGMENT
431
[BP]
:
SECTOR
#
438
[BP+
I]
:
TRACK
#
435
[BP+2]
:
BUFFER OFFSET
440
441
ON EXIT:
(lDSKETTE STATUS,
CY REFLECT STATUS OF OPERATION
442
443
0 I OC
DISK VERF
PROC
NEAR
444
OIOC 80 26 003F R 7F
-
AND
(lMOTOR STATUS,OIIIIIIIB
;
INDICATE A READ OPERATION
445
0111
B8 E642
MaY
AX,OE642H
;
AX
~ NEC COMMAND.
OMA COMMAND
446
0114 E8 035C R
CALL
RD_WR_VF
;
COMMON READ/WRITE/VERIFY
447
0117 C3
RET
448
0118
01 SK_ VERF
ENDP
449
450
DISK FORMAT:
DISKETTE FORMAT.
451
452
ON ENTRY:
DI
DRI VE #
453
51-HI
HEAD
#
454
SI -LOW
# OF SECTORS
455
E5
BUFFER SEGMENT
456
[BP]
SECTOR
#
457
[BP+ I]
TRACK
#
458
[BP+2]
BUFFER OFFSET
459
460
ON EXIT:
@DSKETTE_STATUS,
CY REFLECT STATUS OF OPERA T I ON
461
462
0118
DISK FORMAT
PROC
NEAR
463
0118 E8 02C8 R
-
CALL
XLAT NEW
TRANSLATE STATE TO PRESENT ARCH.
464
OIIB E8 03CE R
CALL
FMT INIT
ESTA8L1SH STATE
IF UNESTA8L1SHED
465
OIIE 80 OE 003F R 80
OR
<ltMO'fOR STATUS,I 00000008
INDICATE WRITE OPERATION
466
0123 E8 0416 R
CALL
MED CHANGE
CHECK MED [A CHANGE AND RESET
I F
SO
461
0126
7231
JC
FM DON
MED I A CHANGED,
SK I P
468
0128 E8 0451
R
CALL
SEND RATE
SEND DATA RATE TO CONTROLLER
469
012B 80 4A
MaY
AL,04AH
WILL WRITE TO THE DISKETTE
470
0120 E8 0471
R
CALL
DMA SETUP
SET UP THE DMA
471
0130
7220
JC
FM DON
RETURN WlTH ERROR
472
0132 84 40
MaY
AH704DH
ESTABLI SH THE FORMAT COMMAND
473
0134 E8 04C7 R
CALL
NEC
INI T
INITIALIZE THE NEC
474
0131 88 015F R
MaY
AX,OFFSET FM DON
LOAD ERROR ADDRESS
475
013A 50
PUSH
-
PUSH NEC OUT ERROR RETURN
AX
476
0138 82 03
MaY
DL,3
BYTES / SECTOR VALUE TO NEe
477
0130 E8
06CC R
CALL
GET PARM
478
0140 E8
0780 R
CALL
NEC-OUTPUT
419
0143 B2 04
MDY
DL,4
SECTORSITRACK VALUE
TO NEC
480
0145 E8
06CC R
CALL
GET PARM
481
0148 E8
07BO R
CALL
NEC-OUTPUT
482
014B 82 01
MDY
DL,7"
GAP LENGTH VALUE TO NEC
483
0140 E8 06CC R
CALL
GET PARM
484
0150 E8
0780 R
CALL
NEC-OUTPUT
485
0153 B2
08
MaY
DL,8
FILLER BYTE TO NEC
486
0155 E8
06CC R
CALL
GET PARM
481
0158 E8
0180 R
CALL
NEC-OUTPUT
AX ­
488
0158 58
POP
THROW AWAY ERROR
489
015C E8
0530 R
CALL
NEC TERM
TERMINATE.
RECEIVE STATUS.
ETC.
490
015F
491
015F E8
02EE R
CALL
XLAT OLD
TRANSLATE STATE TO COMPATIBLE MODE
492
0162 E8
0620 R
CALL
SETUP END
VAR I OUS CLEANUPS
493
0165 8B DE
MaY
BX, SI
GET SAVED AL TO BL
49401678AC3
MaY
AL,BL
PUT BACK FOR RETURN
495
0169 C3
RE7
496
016A
DISK FORMA T
ENDP
497
1-----
- - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ­
498
I
FNC _ERR
:
I NVAL
I
0 FUNCT
I
ON REQUESTED OR
I NVAL I
0
DR
I
VE;
SET BAD COMMAND
IN
499
STATUS.
500
;
501
I
ON EXIT:
<ltDSKETTE_STATUS,
CY REFLECT STATUS OF OPERATION
502
--------------------------------------------------­
503
016A
FNC ERR PROC
NEAR
INVALID FUNCTION REQUEST
504
016A 8B C6
-
MOV
AX,SI
RESTORE AL
505
016C B4 01
MaY
AH,BAD CMD
SET BAD COMMAND ERROR
506
016E 88 26
MaY
(lDSKETTE S TA TUS. AH
STORE
IN DATA AREA
501
0112 F9
5TC
SET CARRY
I NO I CAT I NG ERROR
508
0173 C3
RET
509
0114
FNC_ERR ENDP
510
511
01 SK_PARMS:
READ DR I VE PARAMETERS.
512
513
ON ENTRY:
0 1 :
DRIVE #
514
515
ON EXIT:
CLI [BP]
;=
BITS
7
&
6 HIGH 2 BITS OF MAX CYLINDER
516
BITS 0-5 MAX SECTORS/TRACK
517
CHI
[BP ... I
J
=
LOW 8 BITS OF MAX CYLINDER
518
BLI [BP+2j
;=
BITS
1-4
=
0
519
BITS 3-0
;=
VALID CMOS DRIVE TYPE
520
8H/ [BP+3]
~
0
521
DLI[BP+4]
;=
# DRIVES
INSTALLED
(VALUE CHECKED)
522
DH/ [BP+5]
::; MAX HEAD #
523
01/ [BP+6]
::; OFFSET OF 0 I SK BASE
524
E5
SEGMENT OF DISK BASE
525
AX
o
­
526
527
THE ABOVE
I NFORMA T I ON
ISS TORED
I N THE USERS
ST ACK
AT
528
THE LOCATIONS WHERE THE MAIN ROUTINE WILL POP THEM
529
I NTO THE APPROPR I A TE REG I S TERS BEFORE RETURN I NG TO THE
530
CALLER.
531
532
0174
PROC
NEAR
533
017481
FF 0080
0l,80H
;
CHECK FOR FIXED MEDIA TYPE REQUEST
534
0178
72 06
01 SK_P2
I
CONTINUE
IF NOT REQUEST FALL THROUGH
535
536
F I XED 0 I SK REQUES T FALL THROUGH ERROR
537
538
017A 8B C6
MaY
:
RESTORE AL WITH CALLERS VALUE
539
0 17C B4 0 I
MOY
;
SET BAD COMMAND ERROR
IN
{AH )
DISKETTE
5-101

Advertisement

Table of Contents
loading

Table of Contents