[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: IDE and CF on CFFA
Rich,
Thank you much. I will play around with it
and see if I can get it to work. I don't
use Dave Lyon's driver so I'm good there.
I downloaded everything from your site a
while ago, and recently checked for any new
developments, but there was nothing I could
use, not having an Apple III. Hmmm, why don't
I have an Apple III? Good question. Anyway,
I thank you for taking the time to post this
and I'll be sure to send you anything I may
accomplish with it.
Bill @ GarberStreet Enterprizez };-)
Web Site - http://garberstreet.netfirms.com
Email - willy4SPAM6pa@comXcast.net
Remove - SPAM and X to contact me
"Rich" <***rich@dwave.net***> wrote in message
MPG.1a8107ac59d7b3d4989682@news.visi.com">news:MPG.1a8107ac59d7b3d4989682@news.visi.com...
: Bill,
:
: I wish I had time to work on your hack, but I have no free time
for more
: apple hacking these days. But I thought I might give you or
someone else
: a head start on your request:
:
: NOTE: Changing the CFFA's firmware will not change the behavior
of Dave
: Lyon's GS/OS driver which doesn't use the firmware once booted!
: So if your using his driver, changing the firmware won't help.
:
: The CFFA firmware currently maps all 4 drives (or 8 with jumper
change)
: onto one CF card. To change that mapping to map say 2 drives
onto the
: master card (the onboard socket) and the next 2 drives onto the
IDE
: connector (slave if you jumper the device that way) you would
have to
: change the following routine. (and no other routine should need
changes,
: I think :-o)
:
: Basically, the drive to access, master or slave is controlled
by bit6 of
: ATAHead,x so first that hardcoded $E0 would have to be changed
based on
: what drive prodos was trying to access and how you decide to
map them.
: Also, ATACylinderH,x would have to be changed to accomidate
your mapping
: scheme. As it is, the mapping scheme was easy because it just
worked out
: that the prodos drive number could be dropped into LBA address
bit 16 to
: 23 as long as you add in any overflow from LBA bits 8 to 15. In
any
: case, this is the routine, and the source, as always, is freely
: available at my web site: http://dreher.net/
:
: You know, what I would love to see is someone hack my card to
work with
: DOS 3.3. Is there someone out there that has done that kind of
thing? Is
: Beneath Apple DOS the only relevant reference available?
:
: Rich Dreher
:
:
;----------------------------------------------------------------
-------
: -------
: ; Block2LBA - Translates ProDOS block# into LBA and programs
devices'
: task file
: ; registers.
: ;
: ; Input:
: ; pd Command Block Data $42 - $47
: ; X = requested slot number in form $n0 where n = slot 1
to 7
: ; Y = $0n (n = slot#) for accessing scratchpad RAM;
: ;
: ; Ouput:
: ; None
: ;
: ; ZeroPage Usage:
: ; None
: ;
: ; CPU Registers changed: A, P
: ;
: ; This function translates the block number sent in the PRODOS
request
: ; packet, into an ATA Logical Block Address (LBA).
: ; The least significant 16 bits becomes the ProDOS block#.
: ; The most significant 16 becomes the ProDOS Drive #
: ;
: ; A ProDOS block and a ATA sector are both 512 bytes.
: ;
: ; Logical Block Mode, the Logical Block Address is interpreted
as
: follows:
: ; LBA07-LBA00: Sector Number Register D7-D0.
: ; LBA15-LBA08: Cylinder Low Register D7-D0.
: ; LBA23-LBA16: Cylinder High Register D7-D0.
: ; LBA27-LBA24: Drive/Head Register bits HS3-HS0.
:
:
: Block2LBA:
:
: lda #$E0 ;1, (LBA), 1, (Drive), LBA
27-24, where
: LBA=1,
: ; Drive=0
: sta ATAHead,x ;Talk to the Master device and
use LBA
: mode.
: ; Remember that this write will
seen by
: both
: ; the master and slave devices.
: ;
: ; Add BLOCKOFFSET to the ProDOS block number to offset the
first drive
: block we
: ; use. This keeps the device's first BLOCKOFFSET blocks free,
which
: usually
: ; includes a MBR at block 0.
: ;
: lda DrvMiscFlags,y ; bit 7 = raw block access
: and #$80
: eor #$80
: beq rawBlocks
: lda #BLOCKOFFSET
: rawBlocks: ; A = $00 or BLOCKOFFSET
: clc
: adc pdBlockNumber
: sta ATASector,x ;store ProDOS Low block # into
LBA 0-7
:
: lda pdBlockNumberH
: adc #0 ;account for any overflow in
LBA 0-7
: sta ATACylinder,x ;store ProDOS High block # into
LBA 15-8
:
: lda DriveNumber,y
: adc #0 ;account for overflow from LBA
8-15
: sta ATACylinderH,x ;store LBA bits 23-16
:
: lda #1
: sta ATASectorCnt,x
: rts
:
:
: In article <gvedne7W240bMY_d4p2dnA@comcast.com>,
willy46pa@comcast.net
: says...
: >
: > If someone has broken this barrier of
: > the CFFA, I would like it please. What
: > I want to do is use an adapter to hold
: > a second CF card that I can use for backups.
: > I'm not very good at assemblers yet, so
: > it would be better if I had the object
: > or binary file.
---
This email ain't infected, dude!
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.566 / Virus Database: 357 - Release Date: 1/22/04