Subject: Re: Stack Depth requirements for CP/M 2.2 CBIOS
From: "Chuck Guzis" <cclist at sydex.com>
Date: Fri, 30 Jan 2009 16:28:52 -0800
To: "General Discussion: On-Topic and Off-Topic Posts" <cctalk at
classiccmp.org>
On 30 Jan 2009 at 19:08, ROBO5.8 wrote:
I have rewritten my old systems CP/M 2.2 CBIOS to
add an IDE Drive.
I've run into a problem that has me stumped. Everything works as long as I
don't try and copy or assemble a large Assembly file (>80KB).
I will be going along fine and then out of nowhere I will see CP/M request
access to Drive "T". My debug info says SELDSK is requesting Drive 0FF00h.
I have added debug code to all the CBIOS routines so that they report what
they are doing to the console (slow but nice).
I've gone through my code many times and tested each routine via an embedded
debug monitor. I believe I have added every CP/M 2.2 patch (1-6 and 9)that
is specific to the CBIOS including those dealing with Blocking/Deblocking.
What do you mean by "large"? I've run 2.2 with disks up to 20MB with
no problems.
I have many systems with a minimum of 10mb drives and one has a
two 32mb and the other has 45mb SCSI/ However partitions are
limited to 8Mb as its' CP/M2.2.
CP/M's stack can't be depended upon for much
space at all. Since my
BIOS code was interrupt driven, every interrupt service routine
started with a change to a private "system" stack. I recall having a
lot of problems before doing that.
Nominally one should preserve the stack and have one locally for that reason.
Howeer if the BIOS is using the minimal IO drivers (no interrupts) the stack
should be fine. Hoever is acc to drive "T" says he either has more than 16
partitions or he is crushing drive select.
Allison
Cheers,
Chuck