[comp.sys.m6809] OS9 Level II device drivers

harmon@abvax.icd.ab.com (Larry Harmon) (09/10/87)

	When I was running Level 1 os9 on my Dragon I had two device
drivers which I loaded and linked only as needed then unlinked when
I no longer needed them.  One was a parallel printer driver the other
was a serial port driver.  
	I am now using the same hardware with my CoCo 3 Level II system, but
have been unable to use the old drivers.  When I try to load them I get a
"System RAM full" error.  What does it all mean?  Do drivers need to be linked
into the bootfile?  Should my driver be using the attach system call? What
are the differences between level 1 and level II drivers?

					Thanks in advance.
							Larry Harmon

draco@chinet.UUCP (09/13/87)

In <58@abvax.icd.ab.com> harmon@abvax.icd.ab.com (Larry Harmon) writes:

>        When I was running Level 1 os9 on my Dragon I had two device
>drivers which I loaded and linked only as needed then unlinked when
>I no longer needed them.  One was a parallel printer driver the other
>was a serial port driver.
>        I am now using the same hardware with my CoCo 3 Level II system, but
>have been unable to use the old drivers.  When I try to load them I get a
>"System RAM full" error.  What does it all mean?

Each module that is explicitly loaded under Level II occupies a minimum of
one 8K block. So assuming that you loaded 4 modules (2 drivers and 2 device
descriptors), this would be a total of 32K. These modules will be mapped
into the system space in order for them to execute, which will cause the
error which you reported.

If you just want to test them out under Level II, merge them all into one
file first. This way they will only occupy a single 8K block, which the
system space should be able to support in most instances.

But once you have determined that they will function correctly under Level
II, they should be incorporated into your bootfile so that they will take
up the absolute minimum of your precious system RAM.

If you have already merged the modules and the error still persists, it is
probably because of the form of the extended addresses in the Level I device
descriptors. 

To run under Level II, the extended addresses must be changed from
$FFFF(xx) to $07FF(xx). Otherwise OS9 will try to map another block into
the system space, producing an "Error #207".

Kent D. Meyers
PO Box 266
Le Roy, MN 55951

(507)-324-5836 (After 8:30PM CDT)              Net> ihnp4!chinet!draco

tds@ojibwa.UUCP (09/15/87)

Larry,
  I had the same problem with a device drive i'd written.  I discovered
that if the device driver was put into the boot file, i no longer got
this error.  I suspect it's 'cause the entire 8K DAT block containing the
device driver's gotta get mapped into the system address space, which 
is also limited to 64K.

     tim sirianni

pete@wlbr.EATON.COM (Pete Lyall) (09/15/87)

In article <58@abvax.icd.ab.com> harmon@abvax.icd.ab.com (Larry Harmon) writes:
>
>	I am now using the same hardware with my CoCo 3 Level II system, but
>have been unable to use the old drivers.  When I try to load them I get a
>"System RAM full" error.  What does it all mean?  Do drivers need to be linked
>into the bootfile?  Should my driver be using the attach system call? What
>are the differences between level 1 and level II drivers?
>

What it all means is as follows:

a) System RAM full - question: have you modified the extended address
byte in the device descriptor from $FF to $07?? This is required on
the COCO III level II system.

b) re: loading device drivers & descriptors vice 'bootfiling' them..
you *should* do the latter, as each load of a driver (or other system
entity) will consume 8K of system RAM. Since there's only a total of
64K of system RAM, using it up in 8K increments can make it go
quickly. Don't forget that system RAM is also used for all buffers,
process descriptors, path descriptors, system data structures, etc.

c) Implicit attaches are done when the device(s) is/are initialized.


-- 
                                                   Pete Lyall

Usenet:     {trwrb, scgvaxd, ihnp4, voder, vortex}!wlbr!pete
Compuserve: 76703,4230 (OS9 Sysop) OS9 (home): (805)-985-0632 (24hr./1200 baud)

harmon@abvax.UUCP (09/21/87)

	Thanks to all of you who responded to my request.  My problem has
been solved.  I had to change the device page address from $ff to $07 and also
rebuild my bootfile with the driver included, as most of you advised.
					Thanks again.
							Larry Harmon