Is there anybody who can help ?
I'm currently developing a small shared runtime-library for the AmigaOS used to
access XBASE-alike databases. The library is nearly completed and I think I will
release it in the next weeks (if a few more tests have been performed).
It will be a library accessable by any Amiga-program like the system libraries
and allows shared access to databases and the according indexes.
Now I've encountered a big problem:
I've tested the library using an Amiga 3000T with AmigaOS 3.9, BoingBag 2 (I've
also tested BoingBag 1). The computer is equiped with a
CyberstormPPC/060-50/604e-200 with 138MB ram overall and an UW-SCSI drive at the
SCSI-controller of the Cyberstorm formated using FFS from OS 3.9.
A second testsystem is an A3000T with AmigaOS 3.1. This computer is equiped with
an A3640/25MHz with 18 MB ram and an (fast)SCSI-drive at the build-in
SCSI-controller, formated using FFS from OS 3.1.
The third system is an A2000 with AmigaOS 2.04, equiped with an A2630/25MHz with
0MB 32-bit RAM :-(, 1MB Chip and 4 MB 16-bit FastRam and an 30MB(!)
RLL-format(!) HD at an Omti-Controller accessed via A.L.F. 2, formated using FFS
from AmigaOS 2.04.
The library works fine on every of these Amigas, using either datatables stored
on the HD or in the ram-disk, except for the A3000T using AmigaOS 3.9 ! At this
Amiga, the ram-disk dies, if it encounters a lock-collision:
If a record is shared locked (REC_SHARED) using the AmigaDos function
"LockRecord()" and I try to lock this record exclusive (REC_EXCLUSIVE) from
another application running in another shell, this should lead to the
Dos-failure ERROR_LOCK_TIMEOUT (as it does at the other Amigas), but instead it
results in a meeting with the Guru 8000000B, a dead-end alert.
This is not a hardware-dependend error, it works if I boot the Amiga with OS
3.1 (shut off the computer, wait 10 seconds, start it again, press both
mousebuttons and select the partition with the old OS 3.1 installation as
bootdevice -- fine that I've not killed it -- and start the test-application
under AmigaOS 3.1).
Is there anybody out there, who could help me with my problem ? I won't like to
say "Here is the new database.library, enjoy it, but don't use with datatables
in the ram-disk." :-(
I think there is a problem with the OS 3.9 ram-handler, there should be a way to
say the SetPatch function, which patches the OS 3.1 libraries on system startup
with the new OS 3.9 functions, to exclude the patching of the ram-handler, so
the OS 3.1 ram-handler is used instead. The according option is named
"SKIPROMMODULES" but which name has the module to be skipped ?
I've also started a support-request by "Haage + Partner", the companie that
developed AmigaOS 3.9, but I don't have much hope they answer very fast.
Noster
DON'T PANIC
-- Douglas Adams, Hitch Hiker's Guide to the Galaxis