-- Compiler IxDefs
-- Tiberi January 21, 1980 12:41 AM
DIRECTORY
AltoDefs: FROM "AltoDefs" USING [BYTE];
IxDefs: DEFINITIONS =
BEGIN OPEN AltoDefs;
BcplLong: TYPE=MACHINE DEPENDENT RECORD[highbits,lowbits: CARDINAL];
IXType: TYPE = [0..16);
IXTypeEnd: IXType = 0;
IXTypeName: IXType = 1;
IXTypeWidths: IXType = 4;
IXTypeMultiChars: IXType = 6;
IXH: TYPE = MACHINE DEPENDENT RECORD -- IX header
[ type: IXType, length: [0..4096) ];
IXName: TYPE = MACHINE DEPENDENT RECORD --for debugging
[header: IXH,
code: WORD,
name: PACKED ARRAY [0..20) OF CHARACTER];
IXWidths: TYPE = MACHINE DEPENDENT RECORD --for debugging
[header: IXH,
fam,face: BYTE,
bc,ec: BYTE,
siz: INTEGER,
rotation: CARDINAL,
sa: RECORD[highbits,lowbits: CARDINAL],
len: LONG CARDINAL,
resolutionx: INTEGER,
resolutiony: INTEGER];
IX: TYPE = MACHINE DEPENDENT RECORD
[header: IXH,
body: SELECT OVERLAID * FROM
IXTypeName =>
[code: WORD,
name: PACKED ARRAY [0..20) OF CHARACTER],
IXTypeWidths =>
[fam,face: BYTE,
bc,ec: BYTE,
siz: INTEGER,
rotation: CARDINAL,
sa: BcplLong,
len: BcplLong,
resolutionx: INTEGER,
resolutiony: INTEGER],
ENDCASE ];
WTB: TYPE = MACHINE DEPENDENT RECORD --Width Table Block
[XL,YB, --X,Y offset
XW,YH: INTEGER, --width, height
XWidthFixed,YWidthFixed: BOOLEAN,
spare: [0..16384)
];
--Codes in the height entry for a char that indicate something else:
HNonExCode: INTEGER = -1;
HSplineCode: INTEGER = -2;
CharWidth: TYPE = RECORD --Block describing char widths
[WX,WY: LONG INTEGER, --X width,Y width
XL,YB: INTEGER, --X left, Y bottom (offset)
W,H: INTEGER --Width, {Height or special}
];
END.