True, hence the horrible BPTR/BSTR types (requiring shifting the pointer two bits). Most of the rest of the OS was written in C, but I think the point was that for a whole lot of us mere users of AmigaOS, writing in C felt horribly inefficient. E.g. the C compilers didn't know about the OS guarantees of which registers would not get clobbered by calls into system libraries, and so would unnecessarily reload the library base address all the time, for example, before considering the lack of all kinds of optimisations in the C compilers most of us had access to.
dos.library is a pus-filled abscess that simply does not belong anywhere near it.
It is unfortunate they were in a hurry and just tucked tripOS in there.
The ABI also makes you pass said pointers in data registers, unlike other libraries in AmigaOS, instead of address registers, because of course there'd be little point passing them in address registers when they need to be transformed for use. Horrible.
There's additional uglyness elsewhere. Like processes vs tasks, or the IPC ports. It ends up adding overhead, a layer of bad grease on top of exec.library.
vidarh|2 years ago
snvzz|2 years ago
dos.library is a pus-filled abscess that simply does not belong anywhere near it.
It is unfortunate they were in a hurry and just tucked tripOS in there.
The ABI also makes you pass said pointers in data registers, unlike other libraries in AmigaOS, instead of address registers, because of course there'd be little point passing them in address registers when they need to be transformed for use. Horrible.
There's additional uglyness elsewhere. Like processes vs tasks, or the IPC ports. It ends up adding overhead, a layer of bad grease on top of exec.library.