//CHAT.D - Bob Sproull - General definitions
// Copyright Xerox Corporation 1979
// modified: October 19, 1980  2:25 PM (E. Taft)
// modified: July 7, 1983  11:00 AM (T. Diebert)

manifest [
// Telnet protocol definitions
	socketTelnet = 1
	socketMiscServices = 4
	typeWhereUserRequest = 230B
	typeWhereUserReply = 231B

	MarkSync=1
	MarkLineWidth=2
	MarkPageLength=3
	MarkTerminalType=4
	MarkTiming=5
	MarkTimingReply=6

//Typescript parameters:
	TypeScriptTimeOut=12000		//2 minutes between flushes
	TypeScriptFlushCount=5000	//or 5000 characters

//Size of "big stack"
	bigStackSize=1000

//Allocation issues (all numbers must be >4):
	nBytesPerPup = 200	//somewhat less than half normal size
	nTotalPBI=15
	nTtyPBI=14			//When no display going
	nTtyPBIDis=7
	nDisplayPBI=7			//For display connection

//Display protocol things:
	maxNDisplayFonts=15
	]

manifest [
	lFP=5				//Mirrors OS definition
	]

structure PARM[
	ConnectString	word 20		//Name of partner
	TypeScriptFP	word lFP	//FP of typescript file
	TSFileName	word 20
	TypeScriptLength word		//Number of chars in typescript file
	FontName	word 20		//Name of single .AL font (not display)
	ScreenChars	word		//Number of chars/line to tell MAXC
	ScreenLines	word		//Number of lines/screen
	CalcScreenParms	word		//True if should calculate above
	Ding		bit		//True if should type "ding" on bell
	Flash		bit		//True if should flash screen on bell
	Echo		bit		//True if should locally echo chars
	LineFeeds	bit		//True if should keep linefeeds in typescript
	DisplayProtocol bit		//True if should use display protocol
	Server		bit		//True if should function as server
	tsTypeIn 	bit		//True if should save chars struck.
	tsTypeOut 	bit		//True if should save chars echoed.
	ControlChars	bit		//True if should type control chars as ↑x
	Border		bit		//Color of system window
	Audio		bit		//True if should "ding" via Diablo printer interface
	PCmode		bit		//True if LFs are to be added to remote machine &  stripped off on return
	spare bit 4
	MAXCForce	word		//How to deal with MAXC defaulting:
						// 3 = attach
						// 2 = login
						// 1 = nothing
						// 0 = default
	DoFileName	word 20		//File to type in
	DoDirective	word		//How to handle do file
	YMax	word		//Height of total display bitmap (for ChatDis only)
	nRegions	word		//Number of display regions
	nDisplayFonts	word		//Number of display fonts used
					//FP's for the font files
	DisplayFontFP	word lFP*maxNDisplayFonts
	InitialString	word 25		//Initial thing to say to MAXC
	]

manifest lPARM= (size PARM)/16

structure STR[
	length byte			//Standard Bcpl string defn
	char↑1,255 byte
	]

//Display things:
manifest [
	YMaxDefault=807		// YMax is a static
	XMax=605
	disWidth=((XMax+1+31)&(-32))/16
	]


//BitBlt command table structure

structure BBC[
	Function	word		//Must be even word boundary
	spare		word		//AC2 saved here during BitBlt
	DBCA		word		//Destination: address
	DBMR		word		//		raster
	DLX		word		//		left x
	DTY		word		//		top y
	DW		word		//		width (bits)
	DH		word		//		height
	SBCA		word		//Source:	address
	SBMR		word		//		raster
	SLX		word		//		left x
	STY		word		//		top y
	Gray		word 4		//Pattern words
	]

manifest [
	BBCReplace=0
	BBCPaint=1
	BBCInvert=2
	BBCErase=3

	BBSBitMap=0
	BBSNegBitMap=4
	BBSBrush=8
	BBSGray=12

	lBBC=size BBC/16
	]