Commit e8fae392 authored by Neil Turton's avatar Neil Turton
Browse files

Initial revision

parent 226169db
***************************************************************************
* *
* Project: Black *
* *
* Module: ATAPI *
* *
* Created: Tue 13-Dec-94 By: Aideen McConville *
* *
* First version: 1.01 *
* *
* Copyright: (C) 1994, Acorn Computers Ltd., Cambridge, England. *
* *
***************************************************************************
Purpose:
========
***************************************************************************
Change Log:
===========
---------------------------------------------------------------------------
Version: 1.01 Tue 13-Dec-94 Aideen McConville
Created from sources provided by Mark Watson (Eesox)
ATAPI driver changes:
------------------------------------------------------------------------------------------------
0.02 27-Sep-94 First version given to Acorn (Martin Neville-Smith)
------------------------------------------------------------------------------------------------
0.03 12-Oct-94 Added: AudioPause.
Checks on startup for ATAPI, CD-ROM and removable.
Takes into account slow devices that need a pause after
sending a command, before checking INTRQ or DRQ.
Writing 16 bit value now writes 2 copies (high and low)
for RISC PC.
Removed: Module_CheckForATAPIDrive instead does identify drive.
Fixed: On initialisation accidently stored at location 0 !!!
------------------------------------------------------------------------------------------------
0.04 23-Oct-94 Fixed: EnquireDataMode for Sony CDU55E.
Fixed: Read data for Sony CDU55E.
Fixed: Now works with PhotoCD and mode 2 form 1, not m1 form 2
------------------------------------------------------------------------------------------------
0.05 09-Nov-94 Added: On initialisation if there are no drives found then module
errors and dies with 'No CD-ROM drive present'.
------------------------------------------------------------------------------------------------
0.06 10-Nov-94 Added: Locking and unlocking of IDE registers
------------------------------------------------------------------------------------------------
1.00 10-Nov-94 NO CHANGES - Version number brought up to release
------------------------------------------------------------------------------------------------
1.01 05-Dec-94 Added: SWI to find out number of ATAPI drives found.
Changed: Method of dying if no drives found changed from using
OS_GenerateError to AddCallBack then *RMKill. Nice huh.
There must be a better way than this ?
Removed: CompareStrings routine as it wasn't used
---------------------------------------------------------------------------
Version: 1.02 Tue 20-Dec-94 Steve Cormie
* Driver now internationalised.
* Fixed MED-03912: Start up but with no workspace if registration fails (or if no
ATAPI drives connected).
---------------------------------------------------------------------------
Version: 1.03 Tue 03-Jan-95 Aideen McConville
* Created hdr.ATAPI (standard SWI definition file) and updated Makefile
to export it.
---------------------------------------------------------------------------
Version: 1.04 Wed 11-Jan-95 Steve Cormie
* Fixed SWI ATAPI_GetDrives so that it actually returns a value again.
---------------------------------------------------------------------------
Version: 1.05 Thu 02-Feb-95 Aideen McConville
* Merged in changes from Mark Watson (Eesox, Tel/Fax: 01223 264242)
(Version id was: 1.02 18 Dec 94, based on version 1.01 above)
(MEW) Added: Implemented ReadUserData
GetAudioParms (volume level)
SetAudioParms (volume level)
Changed files:
hdr.hashes
hdr.IDEdefs
hdr.Macros
s.ATAPIStuff
s.DriverCode
s.Module
Doc.!Changes
Test: MPEG (new)
Test: RandRead (new)
---------------------------------------------------------------------------
Version: 1.06 Tue 28-Feb-95 Timothy Roddis
Checked in MEW (Eesox) changes. These confine themselves to DriverCode and
ATAPIStuff with a new definition of XOS_Word in the headers.
The bulk of it is lines 624 of DriverCode onwards and deals more
robustly with the mode sense command.
Changed files: hdr.hashes
hdr.Macros
s.ATAPIStuff
s.DriverCode
s.Module
s.OnError
s.Variables
AMcC: Updated Version file to 1.06
Removed Resources dir (resources now in FileSys.CDFS.CDFSRes)
Updated Makefile (no longer exports resources)
---------------------------------------------------------------------------
AMcC (13-Mar-95): These changes never made it to the SrcFiler
Version 1.06 (above) believed to correspond to Mark's
Version 1.09 (below).
>>| ---------------------------------------------------------------------------
>>| Version: 1.06 Wed 15-Feb-95 Mark Watson
>>| * Moved all debugging options to 'hdr.hashes'
>>| * Changed method of locking/unlocking IDE registers
>>| ---------------------------------------------------------------------------
>>| Version: 1.07 Wed 24-Feb-95 Mark Watson
>>| * This version is only for Simon Proven to try out on the new hardware.
>>| The method of reading from IDE and writing data to memory has been
>>| simplified to see if it reduces problems.
>>| ---------------------------------------------------------------------------
>>| Version: 1.08 Wed 26-Feb-95 Mark Watson
>>| * removed left over debugging from ReadData. Discovered cause of IDE busy
>>| lights being on - ReadCD &BE command.
>>| * improved GP_FindModePage to make sure that don't run over end of buffer
>>| * changed GP_CurrentModeSense - buffer length was lo/hi should be hi/lo
>>| * reduced functionality of GetParameters
>>| ---------------------------------------------------------------------------
>>| Version: 1.09 Tue 28-Feb-95 Mark Watson
>>| * fixed ReadData so that it uses to different Read opcodes (Sony bug)
>>| ---------------------------------------------------------------------------
>>| Version: 1.10 Wed 01-Mar-95 Mark Watson
>>| * Put very small delays in ATAPI_Control in 'ATAPIStuff'
>>| * Put GetParameters back to state it was in v 1.07
>>| ---------------------------------------------------------------------------
>>| Version: 1.11 Wed 01-Mar-95 Mark Watson
>>| * Put small delay after selecting drive number in ATAPI_Control in 'ATAPIStuff'
>>| ---------------------------------------------------------------------------
>>| Version: 1.12 Wed 02-Mar-95 Mark Watson
>>| * Increased the delay when polling INTRQ
>>| * Moved test for not caring about data to be lower down so that the status
>>| register is read.
>>| ---------------------------------------------------------------------------
>>| Version: 1.13 Wed 03-Mar-95 Mark Watson
>>| * Do retries on any error
>>| * Changed first 2 tests for BUSY status to use the alternative status register.
>>| ---------------------------------------------------------------------------
>>| Version: 1.14 Mon 13-Mar-95 Christopher Partington
>>| * Rewrite of IDE access code as old code violated specification in several
>>| places. This was the cause of data corruption and countless "Compact disc
>>| is faulty" errors. Special code to handle Panasonic CR571B 1.0e strange
>>| behaviour after IRQ.
>>| * Added special pleading for Sony CDU50E 0.3n in IDENTIFY phase - bytes of
>>| capabilities word are in wrong order.
>>| * Conditionalled out code to send page D in MODE SELECT as Sony CDU50E 0.3n
>>| aborts if this page is sent.
>>| * General tidyup and commenting of bits of code touched during this work.
>>| This still has many known faults, particularly when discs are changed.
---------------------------------------------------------------------------
Version: 1.20 Mon 13-Mar-95 Christopher Partington
Chris' 1.14 with the Version incremented to 1.20
---------------------------------------------------------------------------
Version: 1.21 Wed 22-Mar-95 Christopher Partington
* Recognise "interrupt DRQ" (Panasonic 571) and "accelerated DRQ" (Sony
50/55) drive types on startup and drive them differently for packet
(i.e. most) commands. Fixes many problems with Panasonic CR571B 1.0e.
* Treat drive not ready as disc changed - otherwise CDFS doesn't notice
when drive door is open and some disc changes are missed.
* Rewrite data transfer code to be faster and not read the drive more times
than it should.
* Reset drive when it fails to respond before timeout expires.
* Fix multisession Photo CDs by correcting code to find PVD.
* Change ReadData to avoid using READ(10)/(12) commands as these sometimes
seem to return bad blocks on Panasonic CR571B 1.0e. This necessitates
issuing multiple reads when ILLEGAL REQUEST is returned to avoid problems
when swapping between currently mounted discs with different modes.
* Change EnquireDataMode to return mode 0 if READ HEADER fails with ILLEGAL
REQUEST. Fixes "faulty" errors when trying to catalogue audio discs.
* General tidy. Remove OS_GenerateError calls and other debug MEW added
between 1.06 and 1.13 and did not mean to leave in.
Tested with mode 0, 1, 2/1 discs only.
---------------------------------------------------------------------------
Version: 1.22 Fri 24-Mar-95 Christopher Partington
* Change read of mode 2 form 2 discs to pass "ANY" as sector type as that
seems to be what CDFS wants. Makes 2/2 discs work with CDFS 2.33 (except
for some 2/2 discs on Panasonic CR571B 1.0e) and gives better error with
CDFS 2.28 in Black ROM.
* Trap reads of mode 0 discs (audio) and treat as mode 1 as that is,
effectively, what SCSI drivers do by accident. Improves behaviour when
swapping between audio and data discs.
* Reenable code to send page D (inactivity stuff) to drive in MODE SELECT
but now ignore any error (returned by Sony CDU50E 0.3n).
* Change IDE lock code to return error returned by lock SWI (rather than "CD
is faulty") if unable to get lock before timeout.
Changed files: hdr.hashes
s.ATAPIstuff
s.DriverCode
Version
---------------------------------------------------------------------------
Version: 1.23 Fri 31-Mar-95 Christopher Partington
* Add code suggested by dodgy fax from Panasonic to try to work around
their cache problem on the CR571B 1.0e.
* Disable retries when IDENTIFY fails, to make booting with no drive
present faster.
* Disable checks for specific lengths of mode sense data as drives can
return any length.
* Add 1us delay after IRQ for future-proofing.
Changed files: hdr.hashes
s.ATAPIstuff
s.DriverCode
Version
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment