Commit b933e265 authored by ROOL's avatar ROOL 🤖
Browse files

This commit was manufactured by cvs2git to create tag 'unused'.

Sprout from master 1996-11-05 09:35:05 UTC Neil Turton <nturton@gitlab.riscosopen.org> 'Import from cleaned 360 CD'
Delete:
    Doc/!Changes
    Doc/!Notes
    Doc/!ReadMe
    Doc/!ToDo
    Doc/ADFS/Main
    Doc/ADFS/ReadData
    Doc/ADFS/irq
    Doc/IDELock
    Doc/IDEregs
    Doc/Main
    Doc/ReadData
    Doc/irq
    Makefile
    MkClean,fd7
    MkRom,fd7
    Test/!Dir,feb
    Test/!Load,feb
    Test/CacheTest,ffb
    Test/EjectDisc,ffb
    Test/Error,ffb
    Test/GConfig,ffb
    Test/GetDrives,ffb
    Test/MPEG/!Dir,feb
    Test/MPEG/ReadBytes,ffb
    Test/MPEG/TextFile
    Test/MPEG/atapi,ffd
    Test/MPEG/off0
    Test/MPEG/off1
    Test/MPEG/scsi,ffd
    Test/Notset
    Test/RandRead,ffb
    Test/Reading/!ATAPI,feb
    Test/Reading/ReadFar,ffb
    Test/Reading/ReadLots,ffb
    Test/SetTo0
    Test/TSPEED,ffb
    Test/Test2,ffb
    Test/TextFile
    Test/Try,ffb
    Test/colour,ffb
    Version
    hdr/ATAPI
    hdr/IDEdefs
    hdr/Macros
    hdr/hashes
    s/DriverCode
    s/Extras
    s/Main
    s/Module
    s/OnError
    s/Strings
    s/Variables
parent e5462ee5
hdr/** gitlab-language=armasm linguist-language=armasm linguist-detectable=true
s/** gitlab-language=armasm linguist-language=armasm linguist-detectable=true
*,ffb gitlab-language=bbcbasic linguist-language=bbcbasic linguist-detectable=true
ATAPI driver changes: (Eesox: Mark Watson)
------------------------------------------------------------------------------------------------
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
------------------------------------------------------------------------------------------------
1.02 18-Dec-94 Added: Implemented ReadUserData
GetAudioParms (volume level)
SetAudioParms (volume level)
------------------------------------------------------------------------------------------------
1.02 = 1.05 in SrcFiler (AMcC) 02-Feb-95
Notes:
1. Disc busy light indicator:
Using Read CD (&BE) command causes both hard disc and CD-ROM drive lights to come on.
This happens on the Panasonic drive, don't know about Sony. Read &A8 only turns on the
CD-ROM drive light as expected.
10-Nov-94
Dear Martin,
please find version 1.00 of ATAPI driver on this disc.
Drives tested with Noticed
------------------ -------
Sony CDU55E BC Works fine with audio, mode 1 and mode 2 form 1 (PhotoCD)
Doesn't work with mode 2 form 2 - CD-I green/white book discs
Panasonic CR-571 Works fine with audio, mode 1, mode 2 form 1, green/white book
Seems a bit pushed to play Replay in mode 28 on A5000. Just copes.
Basically, I'd go with the Panasonic drive - especially if it's cheaper. I would advise
testing it out playing MPEG videos as these may be heavy on processor power. It's probably
fine, but it's the one thing I can't test (as it is v. important to you guys).
Mark
ps I've still got a 40MB harddisc of yours and an 8MB A5000. Do you want them back ? (ho-ho)
= "ReadData",0 ; OK
= "SeekTo",0 ; OK
= "DriveStatus",0 ; OK
= "DriveReady",0 ; OK
= "GetParameters",0 ; OK
= "SetParameters",0 ; OK
= "OpenDrawer",0 ; OK
= "EjectButton",0 ; OK
= "EnquireAddress",0 ; OK
= "EnquireDataMode",0 ; OK
= "PlayAudio",0 ; OK
= "PlayTrack",0 ; OK
= "AudioPause",0 ; OK
= "EnquireTrack",0 ; OK
= "ReadSubChannel",0 ; OK
= "CheckDrive",0 ; OK
= "DiscChanged", 0 ; OK
= "StopDisc", 0 ; OK
= "DiscUsed", 0 ; OK
= "AudioStatus", 0 ; OK
= "Inquiry", 0 ; OK
= "DiscHasChanged", 0 ; OK
= "Control", 0 ; OK
= "Supported", 0 ; OK
= "Prefetch", 0 ;
= "Reset", 0 ; OK
= "CloseDrawer", 0 ; OK
= "IsDrawerLocked", 0 ; OK
= "AudioControl", 0 ; OK
= "AudioLevel", 0 ; OK
= "Identify", 0 ; OK
= "ReadAudio", 0 ;
Locking IDE interface
Working on a RISC PC
This diff is collapsed.
This diff is collapsed.
Interrupts
==========
There are several conditions that must exist before the IDE driver receives
an interrupt:
a. the controller must assert IRQ14;
b. IEN must be enabled in the controller digital output register;
c. the interrupt must be enabled in IOC (or on the podule);
d. the CPU must have IRQs enabled.
Condition (b) is always true except during the handling of an interrupt from
the controller. In order to maintain a low interrupt latency, the driver
enables CPU IRQs (d) in its interrupt handler. If the interrupt were not
masked during this time, the controller could interrupt the interrupt
handler which is not designed to be reentrant. (As an example, consider a
multi-sector read: after the interrupt for the first sector, the driver
reads the sector data and the controller interrupts again immediately
because it has cached the next sector.) Option (b) has been chosen instead
of (c) because it requires fewer instructions. Interrupts *are* disabled in
IOC (or on the podule) when no IDE command is active.
Offsets in ADFS workspace for the WinIDECommandActive
ADFS v 2.67 = offset 0x21C
ADFS v 2.91 = offset 0x197
ATAPI use of IDE registers
----------------------------
Offset Read Write
00 Data register Data register
04 Error register Features register
08 Interrupt Reason register Interrupt Reason register
0c RESERVED RESERVED
10 Byte Count low Byte Count low
14 Byte Count high Byte Count high
18 Drive select Drive select
1c Status Command
20 Drive address UNUSED
This diff is collapsed.
This diff is collapsed.
Interrupts
==========
There are several conditions that must exist before the IDE driver receives
an interrupt:
a. the controller must assert IRQ14;
b. IEN must be enabled in the controller digital output register;
c. the interrupt must be enabled in IOC (or on the podule);
d. the CPU must have IRQs enabled.
Condition (b) is always true except during the handling of an interrupt from
the controller. In order to maintain a low interrupt latency, the driver
enables CPU IRQs (d) in its interrupt handler. If the interrupt were not
masked during this time, the controller could interrupt the interrupt
handler which is not designed to be reentrant. (As an example, consider a
multi-sector read: after the interrupt for the first sector, the driver
reads the sector data and the controller interrupts again immediately
because it has cached the next sector.) Option (b) has been chosen instead
of (c) because it requires fewer instructions. Interrupts *are* disabled in
IOC (or on the podule) when no IDE command is active.
# Copyright 1996 Acorn Computers Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Makefile for the ATAPI Driver module
#
# ***********************************
# *** C h a n g e L i s t ***
# ***********************************
# Date Name Description
# ---- ---- -----------
# 07-Dec-94 AMcC Created.
# 03-Jan-95 AMcC Now exports hdr.ATAPI
#
#
# Paths
#
EXP_HDR = <export$dir>
#
# Generic options:
#
MKDIR = cdir
AS = aasm
CP = copy
RM = remove
CFLAGS = -c -depend !Depend -IC:
AFLAGS = -depend !Depend -Stamp -quit -module
CPFLAGS = ~cfr~v
#
# Program specific options:
#
COMPONENT = ATAPI
EXPORTS = ${EXP_HDR}.ATAPI
SOURCE = s.Main
TARGET = rm.ATAPI
RDIR = Resources
LDIR = ${RDIR}.${LOCALE}
CDFSRES = <src$dir>.OS_Core.FileSys.CDFS.CDFSRes
RESDIR = ${CDFSRES}.Resources.${Locale}.Resources.CDFSDriver.${COMPONENT}
#
# Generic rules:
#
rom: ${TARGET}
@echo ${COMPONENT}: rom module built
export: ${EXPORTS}
@echo ${COMPONENT}: export complete
install_rom: ${TARGET}
${CP} ${TARGET} ${INSTDIR}.${COMPONENT} ${CPFLAGS}
@echo ${COMPONENT}: rom module installed
resources:
@echo ${COMPONENT}: Resources are in CDFSRes
clean:
${RM} ${TARGET}
@echo ${COMPONENT}: cleaned
${TARGET}: ${SOURCE}
${AS} ${AFLAGS} -To $@ -From ${SOURCE}
${EXP_HDR}.ATAPI: hdr.ATAPI
${CP} hdr.ATAPI $@ ${CPFLAGS}
# Dynamic dependencies:
| Copyright 1996 Acorn Computers Ltd
|
| Licensed under the Apache License, Version 2.0 (the "License");
| you may not use this file except in compliance with the License.
| You may obtain a copy of the License at
|
| http://www.apache.org/licenses/LICENSE-2.0
|
| Unless required by applicable law or agreed to in writing, software
| distributed under the License is distributed on an "AS IS" BASIS,
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
| See the License for the specific language governing permissions and
| limitations under the License.
|
Dir <Obey$Dir>
amu_machine clean
| Copyright 1996 Acorn Computers Ltd
|
| Licensed under the Apache License, Version 2.0 (the "License");
| you may not use this file except in compliance with the License.
| You may obtain a copy of the License at
|
| http://www.apache.org/licenses/LICENSE-2.0
|
| Unless required by applicable law or agreed to in writing, software
| distributed under the License is distributed on an "AS IS" BASIS,
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
| See the License for the specific language governing permissions and
| limitations under the License.
|
Dir <Obey$Dir>
amu_machine rom
| Copyright 1996 Acorn Computers Ltd
|
| Licensed under the Apache License, Version 2.0 (the "License");
| you may not use this file except in compliance with the License.
| You may obtain a copy of the License at
|
| http://www.apache.org/licenses/LICENSE-2.0
|
| Unless required by applicable law or agreed to in writing, software
| distributed under the License is distributed on an "AS IS" BASIS,
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
| See the License for the specific language governing permissions and
| limitations under the License.
|
*adfs
*key1 *LOAD EJECTDISC|M
*key2 *MEMORYI 30107c0
*dir <Obey$Dir>
| Copyright 1996 Acorn Computers Ltd
|
| Licensed under the Apache License, Version 2.0 (the "License");
| you may not use this file except in compliance with the License.
| You may obtain a copy of the License at
|
| http://www.apache.org/licenses/LICENSE-2.0
|
| Unless required by applicable law or agreed to in writing, software
| distributed under the License is distributed on an "AS IS" BASIS,
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
| See the License for the specific language governing permissions and
| limitations under the License.
|
rmkill cdfssoftATAPI
rmreinit cdfsdriver
rmreinit cdfs
rmload <Obey$Dir>.ATAPI
SCSI::Guiness.$.CDFS.DevXTypeX.!ATAPI
SCSI::Guiness.$.CDFS.DevXTypeX.Identify
echo OK
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