// display.df


structure DCB:
	[
	next	word;
	mode	bit 1;
	bw	bit 1;
	htab	bit 6;
	nwrds	bit 8;
	sa	word;
	slc	word;
	];

structure X:
	[
	wordindex	bit 12;
	bitindex	bit 4;
	];

structure CVT:
// interpreted by machine code -- do not fiddle with !!
	[
	nwrds	word;
	bi	word;
	pwBase	word;
	xb	word;
	font	word;
	rgfinfo	word;
	rgxw	word;
	];

structure RTC:
	[
	high16	word;
	low10	bit 10;
	blank	bit 6;
	];

structure CNDCB:
	[
	dcbFirst	word;
	dcbLast	word;
	cDcb	word;
	dYd	word
	];

structure UPS:
	[
	ydCur	word;
	ydMacFreed	word;
	dlMacFreed	word;
	];

structure WWD:
	[
	dlFirst	word;
	dlLast	word;
	doc	word;
	cpFDispl	word;
	hpUsed	word;
	fUpdate	bit;
	fDirty	bit;
	fHd	bit;
	bw	bit
	blank	bit 12;
	cDlMac	word;
	dcbFirst	word;
	xdUd	word;
// 	mag	word;
	wwgroup	word
	cslc	word
	lru	word
	];

structure DLD:
	[
	cpLast	word;
	xdFirst	word;
	xdLast	word;
	pbm	word;
	nwrds	word;
	dYdBm	word;
	ld	word;
	dcb	word;
// 	bdnFun	bit 11;
// 	fFaultFun	bit 1;
// 	fCantUpd	bit 1;
// 	ul	bit 3;
	ul	word;
	];
manifest	[
// 	bdnFun0 = 1 lshift (size DLD.bdnFun - 1)
	ulMaxNorm = 1 lshift (size DLD.ul - 1)
	]


structure WGD:
	[
	ydFirst	word
	dyd	word
	doc	word
	cpFDispl	word
	dydLb	word
	bonw	bit
	fHd	bit
	blank	bit 14
	xdUd	word;
	mag	word;
	]

structure WGDTABLE:
	[
	cww	word
	@WGD↑1,5
	]


manifest
	[
	hpbuf = 600;
	displaybuf = #2000;
	maxcdcb = 200;
	dcbl = 4;
	lcvt = (size CVT)/16;
	inidl = 70;
	ptsperinch = 72;
	xperinch = 2540;
	lnRtc = (size RTC)/16
	dYdErr = 30
	maskLow10 = #1777 // 2 to the 10th-1
	lvCnDcbRoot = #420
	lCnDcb = (size CNDCB)/16
	lUps = (size UPS)/16
	lDld = (size DLD)/16
	lWwd = (size WWD)/16
	lwgd = ((size WGD)/16) * 8 + 1
	maxww = 15;
	maxdl = 70;
	wwsys = 0;
	dYdWwMin = 8
	dydsysww = 18
	dYdLineWidth = 2
	]