IBM XT 5160 Technical Reference page 191

Hide thumbs Also See for XT 5160:
Table of Contents

Advertisement

IBM Personal Computer MACRO Assembler
Version 2.00
OSKETTE - -
01 /10/86
0 I SKETTE ADAPTER B I OS
1-22
01-10-86
DRIVE IS A 360;
SET DRIVE TO DETERMINED;
SET MEDIA TO DETERMINED AT RATE 250.
OR
(IIDSK STATE[DI] ,DRV DET+MED DET+RATE 250
RET
-
- ; ALL I NFORMAT I ON SET
DR IVE DET
-DETERM I NES WHETHER DR I VE IS 80 OR 40 TRACKS AND
UPDATES STATE I NFORMAT I ON ACCORD I NGLY •
THROW AWAY
TURN ON THE MOTOR I F OFF
ADDRESS 0 I G I TAL I NPUT REG I STER
INPUT DIGITAL INPUT REGISTER
CHECK FOR 0 I SK CHANGE LINE ACT I VE
RETURN TO CALLER WITH ZERO FLAG SET
ERROR NO DR I VE
SEEK TO TRACK 10
TURN ON MOTOR I F NOT ALREADY ON
RECAL I BRA TE DR I VE
ASSUME NO DR I VE PRESENT
;EEK TO TRACK 48
DECREMENT TO NEXT TRACK
END LOOP IF CYL I NDER COUNT NEGAT I VE
;AVE TRACK
POP AND RETURN
~OAD
NEC OUTPUT ERROR AODRESS
SENSE DR I VE STATUS COMMAND BYTE
OUTPUT TO NEC
AL
=
DRI VE
AH
=
DR I VE
OUTPUT TO NEC
GO GET STATUS
THROW AWAY ERROR ADDRESS
RESTORE TRACK
TRACK 0
?
GO TILL TRACK 0
I S HOME AT TRACK 0
?
MUST BE 80 TRACK DR I VE
POINT AT DATA PORT
GET THE DATA
STORE THE BYTE
I NCREMENT THE PO INTER
MIN I MUM 12M I CROSECONDS FOR NEC
WA I T
15 TO 30 MICROSECONDS
POINT AT STATUS PORT
GET STATUS
TEST FOR NEC ST I LL BUSY
RESUL TS DONE
?
DECREMENT THE STATUS COUNTER
GO BACK FOR MORE
TOO MANY STATUS BYTES
SET ERROR FLAG
HIGH ORDER COUNTER
COUNTER
WA I T FOR MASTER
GET STATUS
KEEP ONLY STATUS AND 0 I RECTI ON
STATUS
I AND 0 I RECT I ON 0
?
STATUS AND DIRECTION OK
LOOP TILL TIMEOUT
; RETURN WITH CARRY SET
AL,DX
AL, 1 1000000B
AL, 1 1000000B
J42
J39
01
OX
AL,DX
[01] ,AL
01
01
=
DRI VE #
BH,2
CX,CX
CX
CX,2
WAITF
OX
AL,DX
AL, 000 I OOOOB
POPRES
ENDP
(IIDSK_STATE[DI),TRK_CAPA ;
SETUP 80 TRACK CAPABILITY
BL
RIO
(IIDSKETTE_STATUS, BAD_NEC
CH
IS 40
CX-
SEEK
POP BAC
AX ,OFFSET DO BAC
AX
-
AH, SENSE DRV ST
NEC OUTPUT
-
AX,OI
AH,AL
NEC OUTPUT
RESUL TS
AX
CX
(IINEC STATUS ,HOME
SK
GIN
CH~CH
IS_80
WA I T FOR REQUEST FOR MASTER
DEC
JNZ
OR
STC
OR
(IIDSKETTE_STATUS, T I ME_OUT
STC
SET ERROR RETURN
JMP
SHORT POPRES
POP REG I STERS AND RETURN
READ IN THE STATUS
RESUL T OPERAT I ON I S DONE
OR
INC
IN
MOV
INC
MOV
CALL
DEC
IN
TEST
JZ
DEC
BH
DECREMENT HIGH ORDER COUNTER
JNZ
J39
REPEAT TILL DELAY DONE
IN
AND
CMP
JZ
LOOP
MOV
XOR
RET
DEC
JS
PUSH
CALL
JC
MOV
PUSH
MOV
CALL
MOV
MOV
CALL
CALL
POP
POP
TEST
JZ
OR
JZ
ON ENTRY:
J42:
J39:
·
-------
-
------
-
-
- ---
-
- - - - - - - - - - - - -- -
-
- - - - - -
--
- -- -
-
- -- - - - - - - - - - --
READ DSKCHNG
-
READS THE STATE OF THE 0 I SK CHANGE LI NE •
; ON ENTRY:
01
=
DRIVE #
; ON EX IT:
0 I
=
DR I VE #
ZF
=
0 : 0 I SK CHANGE LI NE I NACTI VE
ZF
=
1 : 0 I SK CHANGE LI NE ACT I VE
AX, CX, OX DESTROYED
POP
RET
RESUL TS ENDP
POPRES:
RIO:
·
- - - - - - -
- --
- -
-
- -
---
- -
--
-
-
--
- - -
-
- - - - -- -
-
- - - - - - - - - - - - - - - - -- - -
- - - -
--
DR I VE DET
PROC
NEAR
-
CALL
MOTOR ON
CALL
RECAL-
JC
DO BAC
MOV
CH~TRK
SLAP
CALL
SEEK-
JC
DO BAC
MOV
CH~QUIET_SEEK+l
·
--------
- -- - - -
- -
- - - - - -
--- -
- ---- - - - --
-
-
- - - - - - - - - - - - - - - -
-- - -
- - - - --
READ DSKCHNG
PROC
NEAR
-
CALL
MOTOR ON
MOV
OX, 03F1H
IN
AL,DX
TEST
AL,DSK_CHG
RET
READ_DSKCHNG
POP BAC:
-
POP
RET
DR I VE_DET
ENDP
2342
2343
2344 OAEB B1 02
2345 OAED 33 C9
2346 OAEF
2341 OAEF EC
2348 OAFO 24 CO
2349 OAF2 3C CO
2350 OAF4 14 OE
2351
OAF6 E2 F1
2352
2353 OAF8 FE CF
2354 OAFA 15 F3
2355
2356 OAFC 80 OE 0041 R 80
2351 OBOI F9
2358 OB02 EB 1B
2359
2360
2361
2362 OB04
2363 OB04 42
2364 OB05 EC
2365 OB06 88 05
2366 OB08 41
2361
2368 OB09 B9 0002
2369 OBOC E8 0000 E
2310 OBOF 4A
2311
OB10 EC
2312 OBll
A8 10
2313 OB13 14 OA
2314
2315 OBI5 FE CB
2316 OBI1 15 02
2311 OBI9 80 OE 0041 R 20
2318 OBIE F9
2319
2380
2381
2382 OBIF
2383 OBIF 5F
2384 OB20 C3
2385 OB21
2386
2381
2388
2389
2390
2391
2392
2393
2394
2395
2396
2391 OB21
2398 OB21 E8 0913 R
2399 OB24 BA 03F1
2400 OB21 EC
240 I OB28 A8 80
2402 OB2A C3
2403 OB2B
2404
2405
2406
2401
2408
2409
2410
24110B2B
2412 OB2B E8 0913 R
2413 OB2E E8 OA1C R
24 I 4 OB3 I
12 3E
2415 OB33 B5 30
2416 OB35 E8 OA 14 R
2411 OB38 12 31
2418 OB3A B5 OB
2419 OB3C
2420 OB3C FE CD
2421
OB3E 18 26
2422 OB40 51
2423 OB41 E8 OA 14 R
2424 OB44 12 2C
2425 OB46 B8 OB11 R
2426 OB49 50
2421 OB4A B4 04
2428 OB4C E8 09FO R
2429 OB4F 8B C1
2430 OB5 I 8A EO
2431
OB53 E8 09FO R
2432 OB56 E8 OAE2 R
2433 OB59 58
2434 OB5A 59
2435 OB5B F6 06 0042 RIO
2436 OB60 14 DA
2431 OB62 OA ED
2438 OB64 14 06
2439
2440
2441
2442 OB66
2443 OB66 80 80 0090 R 94
2444 OB6B C3
2445
2446 OB6C
2441 OB6C 80 80 0090 R 01
2448 OB11
2449 OB11
C3
2450
2451
OB12
2452 OB12 59
2453 OB13 C3
2454
2455 OB14
5-44
DISKETTE (01/10/86)

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents