<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Sun, 09 Oct 1988 22:30:36 GMT
From   : hpda!athertn!paul@ucbvax.Berkeley.EDU (Paul Sander)
Subject: CP/M+ BIOS

I own an old Apple II Plus system into which I have installed a "CP/M Card
[TM]"
from Advanced Logic Systems.  The Card runs CP/M 3.0 in a banked memory
configuration.

My application is a disk conversion program which will move files to and from
CP/M and Apple DOS 3.3 formats.  It seems that making BIOS calls will not
work properly when accessing the disk, as most of the BIOS related to disk
activity reside in the bank opposite the application code.

I have tried setting my disk access parameters by calling the BIOS SELDISK,
SETTRACK, SETSECTOR, SETDMA, SELMEM, and SETBNK routines before calling READ.
The result is that this sequence of calls will in fact transfer the data into
my buffer if it happens to be in the area of memory that is shared between the
two banks (no surprise).

There are two reasons why I don't use the code that works:  First, SID is
loaded into the part of memory that is shared between banks, so my broken
program breaks worse under the debugger; second, my programming environment
(one of the C implementations) makes it hard to allocate my transfer buffer
in the shared memory area as that is where the stack resides.

Has anyone solved this problem?  Or does anyone have any suggestions for
anything I have left out?

Second, I see that the BDOS provides a "DIRECT BIOS CALLS" function which
takes as a parameter the address of some sort of parameter block which
presumably contains parameters that are loaded into registers before calling
the BIOS.  Does this facility overcome the bank dependence of the BIOS?
What is the format of this parameter block?

None of the literature I got with my Card has the information I need.  Neither
does the application note describing ALS' banked memory implementation, nor do
the other CP/M books I've bought over the years.

Any help you could give me would be much appreciated.

Many thanks in advance,

Paul Sander
paul@athertn.Atherton.com
{decwrl,sun}!athertn!paul

<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>