Files
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

117 lines
4.1 KiB
Modula-2

;************************************************
;*
;* Virtual Console Control Block Definition
;*
;* +---------+---------+---------+---------+
;* 00 | attach | queue |
;* +---------+---------+---------+---------+
;* 04 | flag | startcol| column | nchar |
;* +---------+---------+---------+---------+
;* 08 | mimic | msource | pc | vc |
;* +---------+---------+---------+---------+
;* 0C | btmp | rsvd | state |
;* +---------+---------+---------+---------+
;* 10 | maxbufsiz | vinq |
;* +---------+---------+---------+---------+
;* 14 | voutq | vcmxq |
;* +---------+---------+---------+---------+
;* 18 | qpbflags| qpbfill | qpbqaddr |
;* +---------+---------+---------+---------+
;* 1C | qpbnmsgs | qpbbuffptr |
;* +---------+---------+---------+---------+
;* 20 | qbuff | cosleep |
;* +---------+---------+---------+---------+
;* 24 | usleep | vsleep |
;* +---------+---------+---------+---------+
;* 28 | Reserved |
;* +---------+---------+---------+---------+
;*
;*
;*
;* attach - current owner of device
;* if 0, no owner
;* if 0ffffh, a mimic device
;* queue - linked list of PDs waiting to attach
;* flag - run-time flags
;* startcol- used for line editing
;* column - used for line editing
;* nchar - 1 character read ahead for CTRL chars.
;* mimic - cio dev that mimics us.
;* 0ffh means no mimic device
;* msource - if attach = 0ffffh, we are a
;* mimic device and msource is the
;* device we are mimicing.
;* pc - physical console number
;* vc - virtual console number
;* btmp - temporary line editing variable
;* rsvd - unused
;* state - current state of virtual console
;* maxbufsiz - maximum file size for buffered mode
;* vinq - address of QPB for this virtual console's
;* input. written by PIN, created by the VOUT
;* process associated with this virtual console
;* voutq - address of QPB for this virtual console's
;* output. written and created by the assoc. VOUT
;* vcmxq - MX queue for changing of virtual console state
;* qpbflags- the 1st 8 bytes of a Queue Parameter Block, for
;* queue reads and writes, used only by reentrant
;* intercept code
;* qbuff - buffer for queue writes
;* cosleep - temporary list for processes waiting for XIOS console output
;* usleep - user process sleeps here
;* vsleep - vout process sleeps here
;*
c_attach equ word ptr 0
c_queue equ word ptr c_attach + word
c_flag equ byte ptr c_queue + word
c_strtcol equ byte ptr c_flag + byte
c_column equ byte ptr c_strtcol + byte
c_nchar equ byte ptr c_column + byte
c_mimic equ byte ptr c_nchar + byte
c_msource equ byte ptr c_mimic + byte
c_pc equ byte ptr c_msource + byte
c_vc equ byte ptr c_pc + byte
c_btmp equ byte ptr c_vc + byte
c_rsvd equ byte ptr c_btmp + byte
c_state equ word ptr c_rsvd + byte
c_maxbufsiz equ word ptr c_state + word
c_vinq equ word ptr c_maxbufsiz + word
c_voutq equ word ptr c_vinq + word
c_vcmxq equ word ptr c_voutq + word
c_qpbflags equ byte ptr c_vcmxq + word
c_qpbfill equ byte ptr c_qpbflags + byte
c_qpbqaddr equ word ptr c_qpbfill + byte
c_qpbnmsgs equ word ptr c_qpbqaddr + word
c_qpbbuffptr equ word ptr c_qpbnmsgs + word
c_qbuff equ word ptr c_qpbbuffptr + word
c_cosleep equ word ptr c_qbuff + word
c_usleep equ word ptr c_cosleep + word
c_vsleep equ word ptr c_usleep + word
ccblen equ c_vsleep + word + 4
; Flags for c_flag
cf_listcp equ 001h ;control P toggle
cf_compc equ 002h ;suppress output
cf_switchs equ 004h ;XIOS supports switch screening
cf_conout equ 008h ;ownership flag of console output
cf_vout equ 010h ;process writing to VOUTQ
cf_bufp equ 020h ;just sent a char to a VOUTQ, don't
;echo to list if csm_ctrlP is set.
;CCB state flags
csm_buffered equ 00001h
csm_background equ 00002h
csm_purging equ 00004h
csm_noswitch equ 00008h
csm_suspend equ 00010h
csm_abort equ 00020h
csm_filefull equ 00040h
csm_ctrlS equ 00080h
csm_ctrlO equ 00100h
csm_ctrlP equ 00200h
;LCB - list control block is first ten bytes of VCCB
lcblen equ 10