IBM XT 5160 Technical Reference page 183

Hide thumbs Also See for XT 5160:
Table of Contents

Advertisement

IBM Personal Computer MACRO Assembler
Version 2.00
OSKETTE - -
01 /1 0/86
0 I SKETTE ADAPTER B I OS
PAGE
SEND OUT THE PARAMETERS TO THE CONTROLLER
RWV COM
-
TH I S ROUT I NE SENDS PARAMETERS TO THE NEC SPEC I F I C
TO THE READ / WR I TE / VER I FY OPERAT IONS.
CH = TRACK #
MOVE TO CORRECT TRACK
RECOVER COMMAND
ERROR ON SEEK
LOAD ERROR ADDRESS
PUSH NEC_OUT ERROR RETURN
CARRY MEANS HIGH 4 BITS MUST BE INC
GET HIGHEST NIBBLE OF ES TO CH
ZERO THE LOW NIBBLE FROM SEGMENT
TEST FOR CARRY FROM ADD I TI ON
GET THE ES VALUE
ROTATE LEFT
o
I SABLE I NTERRUPTS OUR I NG DMA SET-UP
SET THE FIRST/LAST F/F
WAIT FOR I/O
OUTPUT THE MODE BYTE
DMA VER I FY COMMAND
NO
START ADDRESS
OUTPUT THE OPER AT I ON COMMAND
AH = HEAD #
BL = DR IVE #
MOVE I T TO BIT 2
I SOL ATE THAT BIT
OR I N THE DR I VE NUMBER
; FALL THRU CY SET I F ERROR
; THROW AWAY ERROR RETURN
; CY SET BY ABOVE I F ERROR
SAVE START ADDRESS
OUTPUT LOW ADDRESS
WAIT FOR I/O
OUTPUT HIGH ADDRESS
GET HIGH 4 BITS
I/O WAIT STATE
OUTPUT HIGH 4 BITS TO PAGE REG I STER
AL = # OF SECTORS
AH = # OF SECTORS
AL = 0, AX = # OF SECTORS • 256
AX = # SECTORS •
128
SAVE # OF SECTORS •
128
~ET
BYTES / SECTOR PARAMETER
SHIFT COUNT
(0=128,1=256 ETC)
AX = # OF SECTORS •
128
;
SHIFT BY PARAMETER VALUE
; -I FOR DMA VALUE
SA VE COUNT VALUE
LOW BYTE OF COUNT
WAIT FOR I/O
HIGH BYTE OF COUNT
RE-ENABLE INTERRUPTS
RECOVER COUNT VALUE
RECOVER ADDRESS VALUE
ADD, TEST FOR 604K OVERFLOW
MODE FOR 8237
I NIT I AL I ZE THE 0 I SKETTE CHANNEL
CH, [BP+l]
SEEK
AX
ER
I
BX-;-OFFSET ER
1
BX
-
t'DSKETTE_STATUS, CY REFLECT STATUS OF OPERATION
NEC OUTPUT
AX,SI
BX,DI
AH,1
AH,1
AH,00000100B
AH,BL
NEC OUTPUT
BX -
AH : NEC COMMAND TO BE PERFORMED
ENDP
CX
AX
AX,CX
AL,2
DMA+ 1O,AL
AX,SI
AL,AH
AL,AL
AX,
I
AX
DL,3
GET PARM
CL,AH
AX
AX,CL
AX
AX
DMA+5,AL
$+2
AL,AH
DMA+5,AL
AX
DMA+4,AL
$+2
AL,AH
DMA+4,AL
AL,CH
$+2
AL,00001111B
08IH,AL
t'DSKETTE_STATUS, CY REFLECT STATUS OF OPERATION
AX,ES
AX,1
AX,1
AX,1
AX,1
CH,AL
AL,llll0000B
AX, [BP+2]
..J33
CH
AL = DMA COMMAND
DMA+ 12,AL
$+2
DMA+ 11 ,AL
AL,42H
NOT VERF
AX,AX
SHORT ..J33
CALL
MOV
MOV
SAL
SAL
AND
OR
CALL
POP
MOV
CALL
POP
..JC
MOV
PUSH
..JNC
NO BAD
;
CHECK FOR ERROR
MOV
t'DSKETTE_STATUS ,DMA_BOUNDARY
;
SET ERROR
MOV
XCHG
SUB
SHR
PUSH
MOV
CALL
MOV
POP
SHL
DEC
PUSH
OUT
..JMP
MOV
OUT
STI
POP
POP
ADD
MOV
OUT
DETERM I NE COUNT
PUSH
OUT
..JMP
MOV
OUT
MOV
..JMP
AND
OUT
ON EX I T:
ON ENTRY:
ON ENTRY:
ON EXIT:
RET
NEC_INIT
ENDP
..J33:
NEC INIT
-
TH I S ROUT I NE SEEKS TO THE REQUESTED TRACK AND
I N I TI ALI ZES THE NEC FOR THE READ / WR I TE / VER I FY / FORMAT
OPERATION.
.
----------------------------------------------------------------
NEC I NIT
PROC
NEAR
-
PUSH
AX
SA VE NEC COMMAND
CALL
MOTOR_ON
TURN MOTOR ON FOR SPEC I F I C DR I VE
DO THE SEEK OPERA T I ON
DMA SETUP
-
TH I S ROUT I NE SETS UP THE DMA FOR READ / WR I TE / VER I FY
OPERAT IONS.
.
- -
- -- -
-
-
-
--
- -- - - - -
-
-
-
-
-
- - - -
-
-- -
-
- -
- -
-
- - - - - - - - - - - - - ---
-
-
-
- - - -- -
--
DMA SETUP
PROC
NEAR
-
CLI
OUT
..JMP
OUT
CMP
..JNE
XOR
..JMP
NOT VERF:
-
MOV
ROL
ROL
ROL
ROL
MOV
AND
ADD
..JNC
INC
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440 0668
1441
0668 FA
1442 0669 E6 OC
1443 066B EB 00
1444 0660 E6 OB
1445 066F 3C 42
1446 0671
75 04
1447 0673 33 CO
1448 0675 EB 15
1449 0677
1450 0677 8C CO
1451
0679 01
CO
1452 067B 01
CO
1453 0670 0 I CO
1454 067F 01 CO
1455 0681
8A E8
1456 0683 24 FO
1457 0685 03 46 02
1458 0688 73 02
1459 068A FE C5
1460 068C
1461
068C 50
1462 0680 E6 04
1463 068F EB 00
1464 0691
8A C4
1465 0693 E6 04
1466 0695 8A C5
1467 0697 EB 00
1468 0699 24 OF
1469 069B E6 8 I
1470
1471
1472
1473 0690 8B C6
1474 069F 86 C4
1475 06Al
2A CO
1476 06A3 01 E8
1477 06A5 50
1478 06A6 B2 03
1479 06A8 E8 08FE R
1480 06AB 8A CC
1481
06AD 58
1482 06AE 03 EO
1483 06BO 48
1484 06Bl
50
1485 06B2 E6 05
1486 06B4 EB 00
1487 06B6 8A C4
1488 06B8 E6 05
1489 06BA FB
1490 06BB 59
1491
06BC 58
1492 06BD 03 CI
1493 06BF BO 02
1494 06Cl
E6 OA
1495
1496 06C3 73 05
1497 06C5 C6 06 0041
R 09
1498
1499 06CA
1500 06CA C3
150 I 06CB
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512 06CB
1513 06CB 50
1514 06CC E8 0913 R
1515
1516
1517
1518 06CF 8A 6E 01
1519 0602 E8 OA I 4 R
1520 0605 58
1521
0606 72 18
1522 0608 BB 06FO R
1523 06DB 53
1524
1525
1526
1527 06DC E8 09FO R
1528 06DF 8B C6
1529 06E 1 8B OF
1530 06E3 DO E4
1531
06E5 DO E4
1532 06E7 80 E4 04
1533 06EA OA E3
1534 06EC E8 09FO R
1535 06EF 5B
1536 06FO
1537 06FO C3
1538 06F 1
1539
1540
1541
1542
1543
5-36
DISKETTE (01/10/86)

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents