// MSG.DF

structure LOOK1:
	[ pi	bit 4;
	[ bits	bit 12 ] =	[ blank	bit 1;
			[ cases	bit 2 ] =	[ uppercase	bit
					lowercase	bit ]
			trailer	bit
			visibuf	bit
			ovstrike bit
			ul	bit
			vanish	bit
			[ modchar	bit 2 ] =	[ boldface	bit
					italic	bit
					]
			ext	bit
			visible	bit
			] 
	] 

structure LOOK2:
	[ tc	bit 4;
	fun	bit 4;
	[ ofset	byte ]  =	[ ofsetsgn	bit;
			blank	bit 7
			] 
	] 

structure TAB:
	[ fOldtab	bit 1
	[ dxtb	bit 15 ] =	[ siTtbl	bit 15 ]
	]

structure PAR:
	[ xrightmarg	word
	xleftmarg	word
	xleftmargf	word
	ypos	word
	[ spec	word ] =	[ lead	bit 6
			parspacing	bit 7
			control	bit 1
			[ quad	bit 2 ] =	[ rj	bit 1
					center	bit 1
					]
			]
	[ tab	word ] =	[ @TAB ]
	ykeep	word
	par	word
	nextpar	word
	trailerlength	word
	fcofpar	word
	fcofnextpar	word
	label	word
	] 
manifest	[
	maskLdln = (1 lshift size PAR.lead) - 1
	maskLdhdr = (1 lshift size PAR.parspacing) - 1
	dxtbStd = #4104
	dxtbMin = 64
	siTtblNil = siNil & #77777
	]

structure TTBL:
	[ cw	word;
	ampitbxtb	word;
	] 
manifest	[
	offampTtbl = offset TTBL.ampitbxtb / 16
	itbMax = 15
	lnttblMax = itbMax + offampTtbl
	xtbNil = -1
	tcPlain = 0
	] 

structure IPAR:
	[ doc	word;
	cpfirst	word;
	cptrailer	word;
	cplast	word;
	par	word;
	] 

structure PSTAT:
	[ siz	word;
	@PAR
	] 

manifest	[
	sizparastatstd = (offset PSTAT.label)/16
	offparParastat = offset PSTAT.xrightmarg / 16
	]

manifest	[
	ofsetsgnext = #177400;
	parovhd = (size PAR)/16;
	cwinfopar = (offset PAR.par)/16
	sizfunfld = (size LOOK2.fun);
	trailerfun = (1 lshift sizfunfld)-1;
	vanbit = #20;
	visimask = #177776
	trailerbits = vanbit % #400;
	]

manifest	// decimal!
	[
	ldlnstd = 6;
	ldhdrstd = 12;
	maskvbuf = 1 lshift 7;
	visiblebit = 1;
	]