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