CHANNEL- & SCR_-DEFINITION BLOCKS


CHANNEL- & SCR_-DEFINITION BLOCKS


SV_CHBAS thru SV_CHMAX point to a table of longwords: each of those longwords points to a CHANNEL DEFINITION BLOCK in the following offsets format.
ALL CHANNELS:
$00.L CH__LEN Length of channel definition block
$04.L CH__DRIVR Address of driver
$08.L CH__OWNER Owner Job
$0C.L CH__RFLAG Address to be set when space released
$10.W CH__TAG Channel ID (channel tag)
$12.B CH__STAT Status:
* = 0 OK
* = -1 (A1)
* = $80 (A1,A6.L)
* = -ve waiting
$13.B CH__ACTIN Stored action for waiting Job
$14.L CH__JOBWT ID of Job waiting on IO
$18 CH__END -- here on differs depending on the kind of channel --
EXTENDED CHANNEL DEFINITION FOR PLAIN SERIAL QUEUES:
$18.L CH__QIN pointer to input Q (or 0)
$1C.L CH__QOUT pointer to output Q (or 0)
$20 CH__QEND -- end --
EXTENDED CHANNEL DEFINITION FOR SCREEN DRIVER:
$18.W SD__XMIN Window top lefthand side
$1A.W SD__YMIN
$1C.W SD__XSIZE Window size
$1E.W SD__YSIZE
$20.W SD__BORWD Border width
$22.W SD__XPOS Cursor position
$24.W SD__YPOS
$26.W SD__XINC Cursor increment
$28.W SD__YINC
$2A.L SD__FONT Font address
$2E.L - Second font address
$32.L SD__SCRB Base address of screen ($20000 on QLs, differs on THOR)
$36.L SD__PMASK Paper colour mask
$3A.L SD__SMASK Strip colour mask
$3E.L SD__IMASK Ink colour mask
$42.B SD__CATTR Character attributes:
* bit 0 - Underline bit
* bit 1 - Flash bit
* bit 2 - Transparent background
* bit 3 - XOR characters/graphics
* bit 4 - Double height
* bit 5 - Extended width
* bit 6 - Double width
* bit 7 - Graphics positioned characters
$43.B SD__CURF Cursor flag, 0=suppressed, >0=visible
$44.B SD__PCOLR Paper colour byte
$45.B SD__SCOLR Strip colour byte
$46.B SD__ICOLR Ink colour byte
$47.B SD__BCOLR Border colour byte
$48.B SD__NLSTA New line status ( >0 implicit, <0 explict)
$49.B SD__FMOD Fill mode (0=OFF, 1=ON)
$4A.F SD__YORG Graphics window x origin (6 bytes)
$50.F SD__XORG Graphics window y origin (6 bytes)
$56.F SD__SCAL Graphics scale factor (6 bytes)
$5C.L SD__FBUF Pointer to fill buffer
$60.L SD__FUSE Pointer to user defined fill vectors
$64.W SD__LINEL Line length in bytes
$68 SD__END -- end --
I've used ".F" to mean "6-byte floating point". -- KL


Last updated 4th January 1999.

Back to my QL home page
Disclaimer