Buffers
Certain internal buffers have changed in operation from Kernel 9.01 onward. This mainly affects the legacy interfaces which have been carried forward from the BBC. The following should be read with reference to PRM 1-162.
Buffer 0 (Keyboard)
Remains as before, 255 byte limit.
Note that this is not necessarily 255 characters, or 255 key presses depending on the territory in use, etc.
This buffer is now managed by the BufferManager module, instead of the Kernel.
Buffer 1 (Serial input)
Buffer is now limited to 32767 bytes, rather than the 255 byte limit which was previously used.
This buffer is now managed by the BufferManager module, instead of the Kernel. Instead of being registered with Buffer_Register, the buffer is created with Buffer_Create. For details of the distinction, consult the PRMs.
Buffer 2 (Serial output)
Buffer is now limited to 32767 bytes, rather than the 191 byte limit which was previously used.
This buffer is now managed by the BufferManager module, instead of the Kernel. Instead of being registered with Buffer_Register, the buffer is created with Buffer_Create. For details of the distinction, consult the PRMs.
Buffer 3 (Printer)
Remains as for RISC OS 3 systems, defined by *Configure PrinterBufferSize. Since Select 2, however, the default value for the buffer size on a NVRAM reset is now 32K rather than 1K.
In the future this buffer may be managed by a dedicated support module.
Buffer 4-7 (Sound 0-3)
Legacy BBC buffers with no use under RISC OS. These will return errors on data insertion and removal (failure to insert or remove flagged).
Buffer 8 (Speech)
Legacy BBC buffer with no use under RISC OS. These will return errors on data insertion and removal (failure to insert or remove flagged).
Buffer 9 (Mouse)
This buffer is now managed by the OSPointer module from Kernel 8.56 onward. Operations on the buffer will function as before but will be managed by BufferManager on behalf of OSPointer rather than by the kernel.
These changes are not expected to affect most applications. The effect on legacy BBC applications is expected to be minimal because the buffers removed are only 3 bytes in length. Users should benefit from the increased size of the serial buffers.
|