[Contents] [Index] [Help] [Retrace] [browse <] [Browse >]

        IFND    LIBRARIES_DISKFONT_I
LIBRARIES_DISKFONT_I    SET     1
**
**      $Filename: libraries/diskfont.i $
**      $Release: 2.04 Includes, V37.4 $
**      $Revision: 36.3 $
**      $Date: 90/10/22 $
**
**      diskfont library definitions
**
**      (C) Copyright 1985-1999 Amiga, Inc.
**          All Rights Reserved
**

        IFND    EXEC_TYPES_I
        INCLUDE "exec/types.i"
        ENDC
        IFND    EXEC_NODES_I
        INCLUDE "exec/nodes.i"
        ENDC
        IFND    EXEC_LISTS_I
        INCLUDE "exec/lists.i"
        ENDC
        IFND    GRAPHICS_TEXT_I
        INCLUDE "graphics/text.i"
        ENDC

MAXFONTPATH     EQU     256     ; including null terminator

 STRUCTURE  FC,0                ; FontContents
    STRUCT  fc_FileName,MAXFONTPATH
    UWORD   fc_YSize
    UBYTE   fc_Style
    UBYTE   fc_Flags
    LABEL   fc_SIZEOF

 STRUCTURE  TFC,0               ; TFontContents
    STRUCT  tfc_FileName,MAXFONTPATH-2
    UWORD   tfc_TagCount        ; including the TAG_DONE tag
    ;
    ;   if tfc_TagCount is non-zero, tfc_FileName is overlayed with
    ;   Text Tags starting at:  (struct TagItem *)
    ;       &tfc_FileName[MAXFONTPATH-(tfc_TagCount*sizeof(struct TagItem))]
    ;
    UWORD   tfc_YSize
    UBYTE   tfc_Style
    UBYTE   tfc_Flags
    LABEL   tfc_SIZEOF


FCH_ID          EQU     $0f00   ; FontContentsHeader, then FontContents
TFCH_ID         EQU     $0f02   ; FontContentsHeader, then TFontContents


 STRUCTURE  FCH,0               ; FontContentsHeader
    UWORD   fch_FileID          ; FCH_ID or TFCH_ID
    UWORD   fch_NumEntries      ; the number of FontContents elements
    LABEL   fch_FC              ; the [T]FontContents elements follow here


DFH_ID          EQU     $0f80
MAXFONTNAME     EQU     32      ; font name including ".font\0"

 STRUCTURE  DiskFontHeader,0
    ; the following 8 bytes are not actually considered a part of the
    ; DiskFontHeader, but immediately preceed it.  The NextSegment is supplied
    ; by the linker/loader, and the ReturnCode is the code at the beginning
    ; of the font in case someone runs it...
    ; ULONG dfh_NextSegment     ; actually a BPTR
    ; ULONG dfh_ReturnCode      ; MOVEQ #0,D0 : RTS
    ; here then is the official start of the DiskFontHeader...
    STRUCT  dfh_DF,LN_SIZE      ; node to link disk fonts
    UWORD   dfh_FileID          ; DFH_ID
    UWORD   dfh_Revision        ; the font revision in this version
    LONG    dfh_Segment         ; the segment address when loaded
    STRUCT  dfh_Name,MAXFONTNAME ; the font name (null terminated)
    STRUCT  dfh_TF,tf_SIZEOF    ; loaded TextFont structure
    LABEL   dfh_SIZEOF

; used only if dfh_TF.tf_Style FSB_TAGGED bit is set
dfh_TagList     EQU     dfh_Segment     ; destroyed during loading


    BITDEF  AF,MEMORY,0
    BITDEF  AF,DISK,1
    BITDEF  AF,SCALED,2

    BITDEF  AF,TTATTR,16        ; return TAvailFonts

 STRUCTURE  AF,0                ; AvailFonts
    UWORD   af_Type             ; MEMORY, DISK, or SCALED
    STRUCT  af_Attr,ta_SIZEOF   ; text attributes for font
    LABEL   af_SIZEOF

 STRUCTURE  TAF,0               ; TAvailFonts
    UWORD   taf_Type            ; MEMORY, DISK, or SCALED
    STRUCT  taf_Attr,tta_SIZEOF ; text attributes for font
    LABEL   taf_SIZEOF

 STRUCTURE  AFH,0               ; AvailFontsHeader
    UWORD   afh_NumEntries      ; number of AvailFonts elements
    LABEL   afh_AF              ; the [T]AvailFonts elements follow here

        ENDC    ; LIBRARIES_DISKFONT_I