
title	'Serial Data Structures'

;***************************************************
;						   *
;	SERIAL IO DATA STRUCTURES MODULE           *
;	Last changed : 2/15/84			   *
;						   *
;***************************************************
 
include serdata.equ
include flags.equ
include chrcomm.equ

eject

public  ciqctl
public  icdesctbl
public	ocdesctbl
public	oq0desc
public	oq7desc
public	oq8desc

cgroup	group	code, data, siq_seg

	cseg

extrn	conin_0:near

	dseg	

icdesctbl	dw	ciqctl	; 0	system support usart
		dw	ci1qctl	; 1	interfacer 3 usart 0
		dw	0       ; 2     interfacer 3 usart 1
		dw	0       ; 3	interfacer 3 usart 2
		dw	0       ; 4 	interfacer 3 usart 3
		dw	0       ; 5	interfacer 3 usart 4
		dw	0       ; 6	interfacer 3 usart 5
		dw	ci7qctl ; 7	interfacer 3 usart 6
		dw	ci8qctl	; 8     interfacer 3 usart 7

eject

siq_seg		dseg	para

                                ; Q control structure for main system console

ciqctl	db	C0IN_F		; System flag
	dw	0		; Q status
	db	27H		; Command register image
	dw	0		; un-processed characters
	dw	0		; interrupt side input Q index
	dw	0		; processes side output Q index
	db	SS_U		; Usart number ( System support board code )
	db	05fH		; Usart command port
	db	05dH		; Usart status port 
	db	05cH		; Usart data port
	db	SS_U		; transmitter interrupt mask
	dw	0		; input escape Q index
	dw	0		; output escape Q index
	db	0		; last char read from Q
	db	0		; last status byte read from Q
	dw	conin_0		; current state for this console
	db	0		; physical console number
	db	0		; virtual console number
	db	0		; error reset count
	rb	06H		; pad
	rb	10H		; the state machines escape Q
	rb	80H		; the usarts data Q
	rb	80H		; the usarts status Q

                                ; Q control structure for 2nd physical console
                                ; It is USART 0 on the Interfacer 3 board.

ci1qctl	db	C1IN_F		; system flag
	dw	0		; Q status
	db	27H		; Command register image
	dw	0		; un-processed characters
	dw	0		; interrupt side input Q index
	dw	0		; processes side output Q index
	db	00H		; Usart number ( System support board code )
	db	013H		; Usart command port
	db	011H		; Usart status port 
	db	010H		; Usart data port
	db	US_0		; transmitter interrupt mask
	dw	0		; input escape Q index
	dw	0		; output escape Q index
	db	0		; last char read from Q
	db	0		; last status byte read from Q
	dw	conin_0		; current state for this console
	db	0		; physical console number
	db	0		; virtual console number
	db	0		; error reset count
	rb	06H		; pad
	rb	10H		; the state machines escape Q
	rb	80H		; the usarts data Q
	rb	80H		; the usarts status Q
				
				; Q control structure for printer 1.
				; 6th USART on the system support board.
				; 8th bit in data byte is masked off.

ci7qctl db	c7IN_F
	dw	0014H		; Q status
	db	27H		; Command register image
	dw	0		; un-processed characters
	dw	0		; last char read from Q
	db	0		; Last status byte read from Q
	dw	conin_0		; current state for this console
	db	0		; physical cons #
	db	0		; virtual console #
	db	0		; error reset count
	rb	6h		; pad
	rb	10h		; state machine escape Q
	rb	80h		; usart data q
	rb	80h		; usart status q

                                ; Q control structure for printer 0.
                                ; 7th USART on the system support board. 
                                ; This Q is set up for Xon Xoff protocol.
                                ; 8th bit in data byte is masked off.

ci8qctl	db	C8IN_F		; system flag
	dw	0014H		; Q status
	db	27H		; Command register image
	dw	0		; un-processed characters
	dw	0		; interrupt side input Q index
	dw	0		; processes side output Q index
	db	07H		; Usart number ( System support board code )
	db	013H		; Usart command port
	db	011H		; Usart status port 
	db	010H		; Usart data port
	db	US_7		; transmitter interrupt mask
	dw	0		; input escape Q index
	dw	0		; output escape Q index
	db	0		; last char read from Q
	db	0		; last status byte read from Q
	dw	conin_0		; current state for this console
	db	0		; physical console number
	db	0		; virtual console number
	db	0		; error reset count
	rb	06H		; pad
	rb	10H		; the state machines escape Q
	rb	80H		; the usarts data Q
	rb	80H		; the usarts status Q


;***********************************************************
;                      					   *
;       OUTPUT  DATA  CONTROL  STRUCTURES                  *
;        					           *
;***********************************************************

cgroup    group    soq_seg

          dseg

ocdesctbl	dw	offset oq0desc	; system support
		dw	offset oq1desc	; interfacer 3 from here on down
		dw	0               ; offset oq2desc
		dw	0               ; offset oq3desc
		dw	0               ; offset oq4desc
		dw	0               ; offset oq5desc
		dw	0               ; offset oq6desc	
		dw	offset oq7desc  ; printer 1
		dw	offset oq8desc  ; printer 0

soq_seg         dseg    para


oq0desc		db	c0out_f			; Concurrents flag #
		db	0			; local flag byte, bit vector
		rb	4			; char count & position
		db	5CH			; IO PORT
		db	5DH			; STATUS PORT
		db	NO_SELECT		; Usart number
		db	0			; escape count
		db	0			; output bit mask
		db	0			; current Vcon
		db	0			; pad
		db	TXRDY, DSR, 0
		rb	onmsgs


oq1desc		db	c1out_f
		db	0
		rb	4
		db	10H
		db	11H
		db	0
		db	0
		db	01
		db	4
		db	0
		db	TXRDY, DSR, 0
		rb	onmsgs
						; printer 1
oq7desc		db	c7out_f
		db	0A0H
		rb	4
		db	10H
		db	11H
		db	6
		db	0
		db	40h
		dw	0
		db	TXRDY, DSR, 0
		rb	onmsgs

						; printer 0
						; set for xon xoff mode

oq8desc		db	c8out_f
		db	20H
		rb	4
		db	10H
		db	11H
		db	7
		db	0
		db	80h
		dw	0
		db	TXRDY, DSR, 0
		rb	onmsgs


	end

