Showing changes from revision #2 to #3:
Added | Removed | Changed
Entry | |
---|---|
R1 | Buffer number plus flags: |
b31 clear for Single Removal, set for Block Mode | |
b30 used by the DeepKeys extension |
Entry | |
---|---|
R1 | Buffer number, bit-31 clear for byte operation |
R9 | 21 (&15) vector number |
V flag is set if buffer to be examined only, or 0 if data should be removed |
Byte removed (remove option), or corrupted (examine operation) | |
C flag set if buffer was empty on entry |
Exit | |
---|---|
R0 | Next value to be removed (examine option), or “corrupted” (remove option) |
R1 | Preserved |
R2 | Value removed (remove option), or “corrupted” (examine operation) |
C flag set if buffer was empty on entry |
Entry | |
---|---|
R1 | Buffer number, bit-31 set for block operation |
R2 | Pointer to block to be filled |
R3 | Number of bytes to place into block |
R9 | 21 (&15) vector number |
V flag is set if buffer to be examined only, or 0 if data should be removed |
To work around historical keyboard handling bugs, the Kernel always returns the same value in R0 and R2 for its buffers if C is clear. BufferManager does not match this sensible behaviour.
Entry | |
---|---|
R1 | Buffer number, b31 set |
R2 | Pointer to block to be filled |
R3 | Number of bytes to place into block |
R9 | 21 (&15) vector number |
V flag is set if buffer to be examined only, or 0 if data should be removed |
Exit | |
---|---|
R0 | Preserved |
R1 | Preserved |
R2 | Pointer to updated buffer position |
R3 | Number of bytes still be to be removed |
C flag set if buffer was empty on entry |
This vector is called to remove one or more bytes from a buffer.
All characters removed from buffers are sent through this vector. Used byOS_Byte 145 and OS_Byte 152.
If called via OS_CallAVector then interrupts must be disabled first.
Note that Block Mode is not supported for all buffer numbers. BufferManager does support it for the buffers it manages (Serial, Printer, Mouse).