>> On Nov 26, 2:48 pm, David Wilson <mcs6...@gmail.com> wrote:
>> > Good news. I checked my copy of the Beneath Apple ProDOS supplement
>> > and it turns out that the Disk II driver occupies $D000..$D6FF
>> $D6ff - $d000 = 1791 bytes! almost 2k for 5.25 access. This could
>> be a
>> good place to hide a bunch of stuff...
>1792 bytes as you need to add 1 when subtracting first from last.
>> copy d000 through d6ff to disk
>non Disk II disk obviously...
>> load your program to d000
>> if you want to access a 5.25, reload the driver to RAM.
>> will lack of disk II driver cause problems with any other
>> prodos functions?
>Provided you remove all references to disk II drives from the ProDOS
>global page, no, I do not see how it could.
>This might be useful on my UDC equipped IIe as the 5.25" drives show
>up as SmartPort devices
where does Prodos call D000-D6FF from? I'd like to patch ProDOS to
call
the disk II driver at another location.
Rich
> where does Prodos call D000-D6FF from? I'd like to patch ProDOS to
> call
> the disk II driver at another location.
>
>
> Rich
Hi Rich,
Not sure that the disk ][ drivers are at that location in all versions.
Seem to remember this from when patching later versions for 40track
operation.
IIRC, the MLI just calls the drivers from the addresses in the Global
page, after making sure the correct RAM banks are switched in.
Red
> <aiia...@gmail.com> wrote in message
> news:6809420d-cbaf-42b2...@o40g2000prn.googlegroups.com...
>
> > where does Prodos call D000-D6FF from? I'd like to patch ProDOS to
> > call the disk II driver at another location.
>
> Not sure that the disk ][ drivers are at that location in all versions.
The safest way to locate them is to find a slot containing a Disk ][
controller (look for the official ID bytes), then get the driver pointer
from the MLI global page.
The ID bytes for a Disk ][ controller (or later equivalent) are:
$Cn01 = $20
$Cn03 = $00
$Cn05 = $03
$Cn07 = $3C
The driver pointer table starts at $BF10 in the MLI global page. $BF12
through $BF1F are the pointers for drive 1 in each slot, $BF22 through
$BF2F are the pointers for drive 2 in each slot.
> Seem to remember this from when patching later versions for 40track
> operation.
> IIRC, the MLI just calls the drivers from the addresses in the Global
> page, after making sure the correct RAM banks are switched in.
That agrees with my recollection as well. The driver has to be in main
RAM (below $BF00), or in the same bank of the language card where it is
currently located. If you wanted to put it somewhere else (such as
auxiliary memory) you would need a stub which did the bank switching.
There is a also a rule that a driver located in main RAM must start with
a CLD instruction, but I don't recall whether the ProDOS MLI enforces
this, or if it is just a BASIC.SYSTEM convention. The original driver
within the ProDOS kernel may not have this instruction so you might have
to insert it just before a copy of the driver (or as part of a front-end
stub).
--
David Empson
dem...@actrix.gen.nz
MLI, I think. The "ProDOS 8 Technical Reference Manual" says clock-
calendar routines, interrupt handling routines, and disk driver routines
must start with CLD and end with RTS. A check does not occur when the
routine is installed.
"Beneath Apple ProDOS" suggests that the CLD is required only for main
memory drivers, but I see the disk driver starts with CLD at $D000.
--
John B. Matthews
trashgod at gmail dot com
home dot woh dot rr dot com slash jbmatthews