IBM 5150 Technical Reference page 157

Hide thumbs Also See for 5150:
Table of Contents

Advertisement

LOC OBJ
LINE
SOLIRCE
EC44 75E8
2407
JHZ
K.5
I DO ANOTHER CYCLE
EC46 58
2408
pop
AX
I RECOVER CONTROL
EC47 E661
2409
CXJT
KB_CTl,A.L
I OUTPUT THE CONTROL
EC49 E912FE
2410
JHP
K27
2411
; ---------------.------------ -----------­
2412
ROS CHECKSUM SUBROUTINE
2413
i ---------------------------------------­
EC4C
2414
; NEXT.RDS.MODULE
EC4C B90020
2415
HOV
CX.8192
I NUt1BER OF BYTES TO ADO
EC4F
2416
RDS.CHECKSUM.CNT:
; ENTRY FOR OPTIONAL RDS TEST
EC4F 32CO
2417
XOR
Al,U
EC51
2418
e26:
ECSI 0207
2419
ADD
Al,OS:
lex]
EC53 43
2420
INC
BX
I POINT TO NEXT BYTE
EC54 EZFB
2421
LOOP
C2'
I ADD All BYTES IN RDS MODULE
EC56 OACO
2422
OR
AL,Al
J SUM
=
O?
ECS8 C3
2423
RET
2424
RDS.CHECKSUM
ENDP
2425
2426
J--
INT 13 -------------------------------------------------------------­
2427
J DISKETTE
110
2428
J
THIS INTERFACE PROVIDES ACCESS TO THE 5 1/4" DISKETTE DRIVES
2429
J
INPUT
2430
(AH)=O
RESET DISKETTE SYSTEM
2431
HARD RESET TO NEC, PREPARE COtl1Atl), RECAl REQUIRED
2432
ON ALL DRIVES
2433
UH )=1
READ THE STATUS OF THE SYSTEH INTO IAll
2434
DISKETTE_STATUS FROH LAST OPERATION IS USED
2435
2436
J
REGISTERS FOR READIWRITEIVERIFYlFORMAT
2437
(DU -
D~IVE t-n.JHBE~
(0-3 ALLOWED. VA-WE CHECKED)
2438
CDH) - HEAD NUMBER (0-1 ALLOWED. NOT VAWE CHECKED)
2439
(CH) - TRACK NUHBER (0-39. NOT VALUE CHECKED)
2440
(CL) -
SECTO~
NUl'IBER 11-8. NOT VALUE CHECKED.
2441
NOT USED FOR FORMAlI
2442
(AL) -
Nl.JMBE~
OF SECTOR'S ( MAX =
8.
NOT VALUE CHECKED. HOT USED
2443
FOR FORMAT)
2444
(ES:BXI - ADDRESS Of BUffER
I
HOT
REQUI~ED
FOR
VE~IFy)
2445
2446
IAHJ=2
READ THE DESIRED SECTORS INTO MEMORY
2447
(AH )=3
WRITE
THE
DESIRED
SECTO~S F~OM
MEHORY
2448
IAHJ=4
VERIFY THE DESIRED SECTORS
2449
I AH )=5
fORHAT THE DESIRED TRACK
2450
FOR THE fORHAT OPERATION. THE BUFFER POINTER IES.BX)
2451
tlUST POINT TO THE COLLECTION OF DESIRED ADDRESS FIELDS
2452
FOR THE TRACK.
EACH FIHD IS COMPOSED Of 4 BYTES.
2453
(C.H.R.N). WHERE C = TRACK NUMBER. H=HEAD HUf1BER.
2454
R = SECTOR NUMBER. N= NUHBER OF BYTES PER SECTOR
2455
(00=128. 01=256. 02=512. 03=1024J.
THERE tllST BE ONE
2456
ENTRY FOR EVERY SECTOR ON THE TRACK.
THIS INfORMATION
2457
IS USED TO FIND THE REQUESTED SECTOR DlRING READIWRITE
2458
ACCESS.
2459
2460
; DATA VARIABLE -- DISK_POINTER
2461
DOlSLE 1ol0RD POINTER TO THE CURRENT SET Of DISKETTE PARAHETERS
2462
J
OUTPUT
2463
AH
=
STATUS OF OPERATION
2464
STATUS BITS ARE DEFINED IN THE EQUATES fOR
2465
DISKETTE_STATUS VARIABLE 1N THE DATA SEGMENT OF TH1S
2466
MDOULE.
2467
CY
=
0
SUCCESSfUL OPERATION (AH=O ON RETURN)
2468
CY
=
1
FAILED OPERATION IAH HAS ERROR REASONJ
2469
FOR READ/WRITEIVERIFY
2470
DS.BX.DX.CH,CL PRESERVED
2471
Al
=
NUMBER OF SECTORS ACTUAllY READ
2472
*****
AL MAY NOT BE CORRECT IF TIME OUT ERROR OCCURS
2473
NOTE:
IF AN ERROR IS REPORTED BY THE DISKETTE CODE. THE
2474
APPROPRIATE ACTION IS TO RESET THE DISKETTE. THEN
~ETRY
2475
THE OPERATION. ON READ ACCESSES.
NO
MOTOR START DELAY
2476
IS TAKEN.
so
THAT THREE RETRIES ARE REQUIRED ON REAOS
2477
TO ENSURE THAT THE PROBLEt1 IS NOT DUE TO HOTOR
2478
START-UP.
2479
J-----------------------------------------------------------------------­
2480
ASSUME
CS:COOE,OS:DATA.ES:DATA
EC59
2481
ORG
OEC59H
EC59
2482
DISKETTE_IO
PROC
fAR
EC59 FB
2483
STI
INTERRUPTS BACK ON
5-64 System BIOS

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents