mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-25 09:24:19 +00:00
117 lines
4.1 KiB
Modula-2
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
|