Showing changes from revision #1 to #2:
Added | Removed | Changed
This page is orphaned and may be deleted.
The Operating System makes extensive use of buffers as temporary holding areas for data after you or a device generate it, and before a device or you use it. For example, when a character is typed on the keyboard, the character is stored in the keyboard input buffer by the keyboard interrupt handler, and remains there until it is ready to be used.
All buffers are handled by the Buffer Manager. It is used by DeviceFS to provide buffers for various devices to perform tasks such as:
All these facilities are provided by the Buffer module, and for more information please see the Buffer? section.
RISC OS uses buffers to hold whole areas of files in memory to increase file access efficiency. The buffers are integrated seamlessly into the Operating System and thus there is now direct way of accessing their contents. This section will not cover filing system buffers.
A complete list of buffers is available here.
Because the purpose of buffers is to store data before they are ready for use, the method of processing the data is First In, First Out (FIFO). This ensures that data loaded into the buffer first is removed first.
Some operations are not explicitly stated, such as when sending a character to the printer port; as this actually inserts the character into a buffer. There are several key buffer operations available:
Fn1. The buffer is cleared implicitly when the escape condition is cleared – see the Character Input? section for more details.
With the exception of the mouse buffer, the data format is byte-orientated ASCII data. The keyboard buffer is provided in more detail within the Character Input? section.
Numerous OS_Byte SWI calls are provided to control buffers. They are listed below:
Changing buffer sizes is handled by the Buffer_Create and Buffer_Register. A full list of Buffer SWI Calls? are available. The printer buffer can be configured by the use of *Configure PrinterBufferSize.