ushort
    FS_NORMAL		= 0,
    FSB_EXTENDED	= 3,
    FSF_EXTENDED	= 1 << 3,
    FSB_ITALIC		= 2,
    FSF_ITALIC		= 1 << 2,
    FSB_BOLD		= 1,
    FSF_BOLD		= 1 << 1,
    FSB_UNDERLINED	= 0,
    FSF_UNDERLINED	= 1 << 0,

    FPB_ROMFONT 	= 0,
    FPF_ROMFONT 	= 1 << 0,
    FPB_DISKFONT	= 1,
    FPF_DISKFONT	= 1 << 1,
    FPB_REVPATH 	= 2,
    FPF_REVPATH 	= 1 << 2,
    FPB_TALLDOT 	= 3,
    FPF_TALLDOT 	= 1 << 3,
    FPB_WIDEDOT 	= 4,
    FPF_WIDEDOT 	= 1 << 4,
    FPB_PROPORTIONAL	= 5,
    FPF_PROPORTIONAL	= 1 << 5,
    FPB_DESIGNED	= 6,
    FPF_DESIGNED	= 1 << 6,
    FPB_REMOVED 	= 7,
    FPF_REMOVED 	= 1 << 7;

type
    Message_t = unknown 20,

    TextAttr_t = struct {
	*char ta_name;
	uint ta_YSize;
	ushort ta_Style;
	ushort ta_Flags;
    },

    TextFont_t = struct {
	Message_t tf_Message;
	uint tf_YSize;
	ushort tf_Style, tf_Flags;
	uint tf_XSize, tf_Baseline, tf_BoldSmear;
	uint tf_Accessors;
	char tf_LoChar, tf_HiChar;
	*byte tf_CharData;
	uint tf_Modulo;
	*byte tf_CharLoc;
	*byte tf_CharSpace;
	*byte tf_CharKern;
    };

extern
    AddFont(*TextFont_t font)void,
    AskFont(*RastPort_t rp; *TextAttr_t ta)void,
    AskSoftStyle(*RastPort_t rp)uint,
    CloseFont(*TextFont_t f)void,
    OpenFont(*TextAttr_t textAttr)*TextFont_t,
    RemFont(*TextFont_t textFont)void,
    SetSoftStyle(*RastPort_t rp; ulong style, enable)ulong;
