* this is the equates file * * document structure - each document has a memory block for it's document * structure, which has a memory block for the object table structure, and * a memory block for the group list. The memory handle to this structure is * store in w_tbl structure as memhndl * whandle equ 0 ;long ;the handle of this doc's window wmp equ whandle+4 ;long ;this windows message port wnext equ wmp ;long ;for the ST next window wgadget equ wmp+4 ;long ;gadget memory wtype equ wgadget+4 ;byte ;1 for document, 3 for clone changed equ wtype+1 ;byte ;has the document been edited? wname equ changed+1 ;30 chr ;null terminated window name (title on window) wpath equ wname+30 ;200chr ;this document's directory left equ wpath+200 ;word ;the actual inside dimensions of the window top equ left+2 ;word ; for this document. Usually the same as width equ top+2 ;word ; plft,ptop,pwdth,pht. height equ width+2 ;word wlft equ height+2 ;word ;the portion of the page we can see wtop equ wlft+4 ;word ; in the screen window. wrht equ wtop+4 ;word wbtm equ wrht+4 ;word plft equ wbtm+4 ;word ;the physical portion of the screen the 3600dpi ptop equ plft+2 ;word ; counterparts (wlft,wtop,wrht,wbtm) pwdth equ ptop+2 ;word pht equ pwdth+2 ;word dleft equ pht+2 ;long dtop equ dleft+4 ;long dright equ dtop+4 ;long dbottom equ dright+4 ;long vscale equ dbottom+4 ;word ;the current viewing scale (% * 100) uscale equ vscale+2 ;word ;the user viewing scale (% * 100) zscale equ uscale+2 ;word ;the last zoom scale (% * 100) xhitzone equ zscale+2 ;long ;used to scale x-coords to the screen yhitzone equ xhitzone+4 ;long ;used to scale y-coords to the screen pagew equ yhitzone+4 ;long ;the width of the document pageh equ pagew+4 ;long ;the height of the document hbleed equ pageh+4 ;long ;horizontal page bleed vbleed equ hbleed+4 ;long ;vertical page bleed docflag equ vbleed+4 ;word ;landscape or portait / single or double sided PAGEMODE equ 3 ;bits 0 & 1 DOUBLE equ 3 UGRID equ 5 UGUIDES equ 6 UINSMODE equ 7 mode equ docflag+2 ;byte ;which toolbox mode this document is in dmode equ mode+1 ;byte ;which drawing object mode this doc is in vflag equ dmode+1 ;byte ;which viewing modes are on (rulers, etc) SRULER equ 0 STABS equ 1 SPICTURE equ 2 SOUTLINE equ 3 SGRID equ 4 SGUIDES equ 5 SROUTE equ 6 vmode equ vflag+1 ;byte ;which view mode document is in * 0=full page * 1=50% * 2=100% * 3=200% * 4=full width * 5=user scale obj_tbl equ vmode+1 ;long ;object table memory handle group equ obj_tbl+4 ;long ;group list memory handle numobj equ group+4 ;word ;number of entries in the object table struct pgoff equ numobj+2 ;word ;the starting page number for this doc -1 lcurpg equ pgoff+2 ;word rcurpg equ lcurpg+2 ;word curpage equ rcurpg+2 ;word ;the current page number viewing prevpage equ curpage+2 ;word ;previous page number viewed mrkflag equ prevpage+2 ;byte ;set if text is marked csrflag equ mrkflag+1 ;byte ;set if cursor is placed csrcol equ csrflag+1 ;word ;column where cursor lies csroff equ csrcol+2 ;long ;offset into column(csrcol) for cursor position csrloff equ csroff+4 ;long ;offset into line table for cursor csrch equ csrloff+4 ;long ;cursor ch csrcv equ csrch+4 ;long ;cursor cv csrht equ csrcv+4 ;long ;cursor height csrtch equ csrht+4 ;long ;cursor ch csrtcv equ csrtch+4 ;long ;cursor cv mrkcol1 equ csrtcv+4 ;word ;column that hilight begins in mrkcol2 equ mrkcol1+2 ;word ;column that hilight ends in mrkch1 equ mrkcol2+2 ;long ;hilights ch start mrkch2 equ mrkch1+4 ;long ;hilights ch end mrkoff1 equ mrkch2+4 ;long ;offset into column(mrkcol1) for bgn of hilight mrkoff2 equ mrkoff1+4 ;long ;offset into column(mrkcol2) for end of hilight mrklof1 equ mrkoff2+4 ;long ;offset into lntable for beginning of hilight mrklof2 equ mrklof1+4 ;long ;offset into lntable for end of hilight * must be in this order dc_Defines equ mrklof2+4 dc_Font equ dc_Defines+4 ;font dc_Attrb equ dc_Font+4 ;attributes dc_XPoint equ dc_Attrb+4 ;x point size dc_YPoint equ dc_XPoint+4 ;y point size dc_Spacing equ dc_YPoint+4 ;character spacing dc_Lead equ dc_Spacing+2 ;leading amount, or auto leading offset dc_BMod equ dc_Lead+2 ;baseline offset dc_PIndent equ dc_BMod+2 ;paragraph indent/outdent dc_LIndent equ dc_PIndent+2 ;left indent dc_RIndent equ dc_LIndent+2 ;right indent dc_Tag equ dc_RIndent+2 ;tag dc_Justify equ dc_Tag+1 ;line justify/paragraph format dc_CFStyle equ dc_Justify+1 ;character fill style dc_CFColor equ dc_CFStyle+1 ;character fill color dc_CLStyle equ dc_CFColor+1 ;character line style dc_CLColor equ dc_CLStyle+1 ;character line color dc_CLWidth equ dc_CLColor+1 ;character line width * cs_Defines equ dc_CLWidth+2 cs_Font equ cs_Defines+4 ;font cs_Attrb equ cs_Font+4 ;attributes cs_XPoint equ cs_Attrb+4 ;x point size cs_YPoint equ cs_XPoint+4 ;y point size cs_Spacing equ cs_YPoint+4 ;character spacing cs_Lead equ cs_Spacing+2 ;leading amount, or auto leading offset cs_BMod equ cs_Lead+2 ;baseline offset cs_PIndent equ cs_BMod+2 ;paragraph indent/outdent cs_LIndent equ cs_PIndent+2 ;left indent cs_RIndent equ cs_LIndent+2 ;right indent cs_Tag equ cs_RIndent+2 ;tag cs_Justify equ cs_Tag+1 ;line justify/paragraph format cs_CFStyle equ cs_Justify+1 ;character fill style cs_CFColor equ cs_CFStyle+1 ;character fill color cs_CLStyle equ cs_CFColor+1 ;character line style cs_CLColor equ cs_CLStyle+1 ;character line color cs_CLWidth equ cs_CLColor+1 ;character line width * to here super equ cs_CLWidth+2 ;amount to superscript by subs equ super+2 ;amount to subscript by pindent equ subs+2 ;amount for paragraph indent poutdent equ pindent+2 ;amount for paragraph outdent mngreek equ poutdent+2 ;minimum point size shown correctly mxgreek equ mngreek+4 ;maximum point size shown correctly lwdth equ mxgreek+4 ;current line width ltype equ lwdth+2 ;current line type lcolor equ ltype+1 ;current line color ftype equ lcolor+1 ;current fill type fcolor equ ftype+1 ;current fill color lbgn equ fcolor+1 ;current beginning line type lend equ lbgn+1 ;current ending line type gridw equ lend+1 ;document grid width gridh equ gridw+2 ;document grid height ufill equ gridh+2 ;user definable fill pattern uline equ ufill+32 ;user definable line type mstrpg equ uline+2 * * * * * l_hg equ mstrpg+128 ;32 longs ;vertical guides table l_vg equ l_hg+128 ;32 longs ;horizontal guides table r_hg equ l_vg+128 r_vg equ r_hg+128 tagnumber equ r_vg+128 tagtable equ tagnumber+2 clrtable equ tagtable+4 dc_Sizeof equ clrtable+512 * * this is the data structure for pictures. the first few bytes have a * similar purpose as those of the document structure * pi_CX1 equ vmode+1 ;current outside window dimensions pi_CY1 equ pi_CX1+2 pi_CX2 equ pi_CY1+2 pi_CY2 equ pi_CX2+2 pi_OX1 equ pi_CY2+2 ;previous outside window dimensions pi_OY1 equ pi_OX1+2 pi_OX2 equ pi_OY1+2 pi_OY2 equ pi_OX2+2 pi_Type equ pi_CX1+20 pi_SFreq equ pi_Type+2 ;screen frequency pi_SAngle equ pi_SFreq+2 ;screen angle pi_SSpot equ pi_SAngle+2 ;spot function pi_SMap equ pi_SSpot+2 ;mapping function pi_XDpi equ pi_SMap+258 ;x dots per inch pi_YDpi equ pi_XDpi+2 ;y dots per inch pi_W equ pi_YDpi+2 ;pixels wide pi_H equ pi_W+2 ;pixels high pi_Width equ pi_H+2 ;words wide pi_BitPln equ pi_Width+2 ;number of bit planes pi_Palet equ pi_BitPln+2 ;color pallet entries (8 bytes per) pi_Ptr equ pi_Palet+2 ;offset to bit map data pi_DScale equ pi_Ptr+4 pi_DW equ pi_DScale+2 pi_DH equ pi_DW+2 pi_DWidth equ pi_DH+2 pi_DBitPln equ pi_DWidth+2 pi_DPtr equ pi_DBitPln+2 pi_Sizeof equ pi_DPtr+4 *** *** * equates for the tag table tg_Defines equ 0 tg_Name equ tg_Defines+4 TG_NAMELEN equ 27 tg_Font equ tg_Name+28 tg_Attrb equ tg_Font+4 tg_XPoint equ tg_Attrb+4 tg_YPoint equ tg_XPoint+4 tg_Spacing equ tg_YPoint+4 tg_Lead equ tg_Spacing+2 tg_BMod equ tg_Lead+2 tg_PIndent equ tg_BMod+2 tg_LIndent equ tg_PIndent+2 tg_RIndent equ tg_LIndent+2 tg_unused equ tg_RIndent+2 tg_Justify equ tg_unused+1 tg_CFStyle equ tg_Justify+1 tg_CFColor equ tg_CFStyle+1 tg_CLStyle equ tg_CFColor+1 tg_CLColor equ tg_CLStyle+1 tg_CLWidth equ tg_CLColor+1 tg_Sizeof equ tg_CLWidth+2 * tf_Defines values are * TG_FONT equ 0 TG_ATTRB equ 1 TG_POINT equ 2 TG_SPACING equ 3 TG_LEAD equ 4 TG_BMOD equ 5 TG_PINDENT equ 6 TG_INDENT equ 7 TG_TAG equ 8 TG_JUSTIFY equ 9 TG_CFSTYLE equ 10 TG_CFCOLOR equ 11 TG_CLSTYLE equ 12 TG_CLCOLOR equ 13 TG_CLWIDTH equ 14 *** *** * equates for the color table cl_Name equ 0 ;23 char (nul terminated) cl_Type equ cl_Name+24 cl_Cyan equ cl_Type+2 cl_Magenta equ cl_Cyan+2 cl_Yellow equ cl_Magenta+2 cl_Black equ cl_Yellow+2 cl_Map equ cl_Black+2 cl_Sizeof equ cl_Map+2 CL_NAMELEN equ cl_Type-cl_Name * colortype bits MECHANICAL equ 15 *** *** ob_Page equ 0 ;the page this object is located on ob_Left equ ob_Page+2 ob_Top equ ob_Left+4 ob_Right equ ob_Top+4 ob_Bottom equ ob_Right+4 ob_Type equ ob_Bottom+4 ob_Flag equ ob_Type+1 ob_Slant equ ob_Flag+1 ;the degrees of slant for this object ob_Twist equ ob_Slant+2 ;the degrees of twist ob_LWidth equ ob_Twist+2 ;width of line draw ob_LType equ ob_LWidth+2 ;line type ob_LColor equ ob_LType+1 ;line color ob_FType equ ob_LColor+1 ;fill type ob_FColor equ ob_FType+1 ;fill color ob_LBegin equ ob_FColor+1 ;line begin style ob_LEnd equ ob_LBegin+1 ;line end style ob_Ptr equ ob_LEnd+1 ;memory handle for grp,col,txt,pic,free/poly ob_BAngle equ ob_LEnd+1 ;beginning angle for circle(arc),ellipse(earc) ob_EAngle equ ob_BAngle+2 ;ending angle for circle(arc),ellipse(earc) ob_XRadius equ ob_LEnd+1 ;x radius for corner of box(rbox),square(rsqr) ob_YRadius equ ob_XRadius+2 ;y radius for corner of box(rbox),square(rsqr) ob_HStandOff equ ob_YRadius+2 ;textwrap left/right standoff ob_VStandOff equ ob_HStandOff+2 ;textwrap top/bottom standoff ob_SizeOf equ ob_VStandOff+2 *object flags defined as: * FLOWTEXT equ 7 ;and mask (bits 0,1,&2) PUBLISHED equ 5 GROUPED equ 6 LOCKED equ 7 * bit 0-2 text flow mode * * bit 6 grouped bit - if set then the object is in a group, and is * not selectable. just the group objects it * belongs to is selectable. * bit 7 locked bit - if set then the object can not be moved,sized,etc * tgroup equ 0 ; group tcol equ 4 ; columns ttxt equ 8 ; text line tpic equ 12 ; picture tpoly equ 16 ; polygon tfree equ 20 ; freehand tbox equ 24 ; box/rounded corner box tsqr equ 28 ; square box/rounded corner square thvln equ 32 ; horizontal/vertical line tdln equ 36 ; diagonal line tcir equ 40 ; circle/arc telp equ 44 ; ellipse/elliptical arc teps equ 48 ; encapsulated postscript * column structure - every column has a structure like this allocated for it. * it is not an array, but a seperate memory block for each column. * the memory handle for the column structure is kept in optr in the * object structure for this column. * cm_Lock equ 0 cm_Version equ cm_Lock+8 cm_Next equ cm_Version+4 ;next column object number in link (-1 if none) cm_Prev equ cm_Next+2 ;prev column object number in link (-1 if none) cm_LCalc equ cm_Prev+2 ;flag set if line table needs to be recalced cm_QCalc equ cm_LCalc+1 ;flag set if q-table needs to be recalced cm_LHandle equ cm_QCalc+1 ;this columns line table handle cm_QHandle equ cm_LHandle+4 ;this columns q-table handle cm_THandle equ cm_QHandle+4 ;text block handle (and for all others linked) cm_TOffset equ cm_THandle+4 ;offset into text block for this column cm_Left equ cm_TOffset+4 ;left edge of column (same as Olft) cm_Top equ cm_Left+4 ;top edge of column (same as Otop) cm_Right equ cm_Top+4 ;right edge of column (same as Orht) cm_Bottom equ cm_Right+4 ;bottom edge of column (same as Obtm) cm_Flag equ cm_Bottom+4 cm_unused equ cm_Flag+2 CM_OVERFLOW equ 0 CM_PARA equ 1 * these attributes describe the attributes of the start of this column. * the attributes in the first line table entry for this column will be the * same as these, the only differance is that the line table is purgable, and * I need to keep them in a "safe" place. cm_Font equ cm_unused+6 ;font cm_Attrb equ cm_Font+4 ;attributes cm_XPoint equ cm_Attrb+4 ;x point size cm_YPoint equ cm_XPoint+4 ;y point size cm_Spacing equ cm_YPoint+4 ;character spacing cm_Lead equ cm_Spacing+2 ;fixed leading /auto leading offset cm_BMod equ cm_Lead+2 ;baseline offset cm_PIndent equ cm_BMod+2 ;paragraph indent cm_LIndent equ cm_PIndent+2 ;left indent cm_RIndent equ cm_LIndent+2 ;right indent cm_Tag equ cm_RIndent+2 ;tag cm_Justify equ cm_Tag+1 ;line justify cm_CFStyle equ cm_Justify+1 ;character fill style cm_CFColor equ cm_CFStyle+1 ;character fill color cm_CLStyle equ cm_CFColor+1 ;character line style cm_CLColor equ cm_CLStyle+1 ;character line color cm_CLWidth equ cm_CLColor+1 ;character line width cm_Tabs equ cm_CLWidth+2 cm_Sizeof equ cm_Tabs+84 ;20 tabs + 0 * $00 character 0 * $01 cariage return * $02 invisible manual hyphen * $03 visible manual hyphen * $04 invisible auto hyphen * $05 visible auto hyphen * $06 jump to next tab stop * $07 page number command * $08 begin conditional * $09 end conditional * $0a forced end of column CMD_CH0 equ $00 CMD_CR equ $01 CMD_IMH equ $02 CMD_VMH equ $03 CMD_IAH equ $04 CMD_VAH equ $05 CMD_TAB equ $06 CMD_PGN equ $07 CMD_BGNC equ $08 CMD_ENDC equ $09 CMD_FEOC equ $0a * $10 xx tag (byte) * $11 xx justify mode (byte) * $12 xx fill style (byte) * $13 xx fill color (byte) * $14 xx line style (byte) * $15 xx line color (byte) * $16 xx line width (word) CMD_TAG equ $10 CMD_JST equ $11 CMD_CFS equ $12 CMD_CFC equ $13 CMD_CLS equ $14 CMD_CLC equ $15 CMD_CLW equ $16 * $20 xxxx font (long) * $21 xxxx attributes (long) * $22 xxxx character spacing (word) * $23 xxxx line spacing (word) * $24 xxxx baseline offset (word) * $25 xxxx paragraph indent (word) * $26 xxxx manual kern (word) * $27 xxxx auto kern (word) CMD_F equ $20 CMD_AT equ $21 CMD_CSP equ $22 CMD_LSP equ $23 CMD_BMOD equ $24 CMD_PIN equ $25 CMD_MKRN equ $26 CMD_AKRN equ $27 * $40 xxxx yyyy x/y point (2 longs) * $41 xxxx yyyy left/right indent (2 words) CMD_PT equ $40 CMD_IN equ $41 * attrb commands BOLD equ 0 ;bit ITALICS equ 1 ;bit SHADOW equ 2 ;bit OUTLINE equ 3 ;bit BCKSLNT equ 4 ;bit LIGHT equ 5 ;bit RVRS equ 6 ;bit MIRROR equ 7 ;bit UPSIDE equ 8 ;bit UNDER equ 9 ;bit WORDU equ 10 ;bit CHARU equ 11 ;bit DOUBLEU equ 12 ;bit STRIKE equ 13 ;bit * bits 16-19 bold levels (0-15 levels) * 0 normal bold/light (not specified) * 1 extra-ultra light * 3 extra-light * 5 light (same as 0?) * 7 normal (book? medium?) * 8 medium * 9 bold (same as 0?) * 11 extra bold * 13 black * 15 heavy!! * bits 20-23 condensed levels (0-15 levels) * 0 normal (uncondensed) * 1 extra condensed * 3 condensed * 5 normal (same as 0?) * 7 expanded * 9 extra expanded * bits 24-26 size levels (0-7 levels) * 0 normal size * 1 small * 2 medium (normal, same as 0?) * 3 large * bit 27 - caps * (bit 27 & bits24-26=1 means small caps!) * bits 28-31 special attribute numbers (0-15 values) * justify command * 0 = block left * 1 = center * 2 = block right * 3 = character justify * 4 = word justify * 5 = auto justify * line table structure * memory handle to this structure is stored in the column structure * under cltbl. The line table is an array, with a line table structure * entry for every line of text. It's possible that a single horizontal * strip of text is broken into two line table entries if the text needs to * flow around an object placed on top of the column. The end of the table * is denoted by ltop = -1. The size of each entry in the line table is * 34 bytes. * ln_Offset equ 0 ;offset from column offset to text ln_Left equ ln_Offset+4 ;left edge of this line ln_Top equ ln_Left+4 ;top edge of this line ln_Right equ ln_Top+4 ;right edge of this line ln_Bottom equ ln_Right+4 ;bottom edge of this line ln_CJust equ ln_Bottom+4 ;character justification amount. ln_WJust equ ln_CJust+2 ;word justification amount. * must be in this order ln_Font equ ln_WJust+2 ;these character attributes are ln_Attrb equ ln_Font+4 ; identical to the column attributes ln_XPoint equ ln_Attrb+4 ; but they are the attributes for ln_YPoint equ ln_XPoint+4 ; the start of this line. ln_Spacing equ ln_YPoint+4 ln_Lead equ ln_Spacing+2 ln_BMod equ ln_Lead+2 ln_PIndent equ ln_BMod+2 ln_LIndent equ ln_PIndent+2 ln_RIndent equ ln_LIndent+2 ln_Tag equ ln_RIndent+2 ln_Justify equ ln_Tag+1 ln_CFStyle equ ln_Justify+1 ln_CFColor equ ln_CFStyle+1 ln_CLStyle equ ln_CFColor+1 ln_CLColor equ ln_CLStyle+1 ln_CLWidth equ ln_CLColor+1 ln_Sizeof equ ln_CLWidth+2 ;length of line table * to here * * picture objects * pc_Lock equ 0 pc_Version equ pc_Lock+8 pc_Type equ pc_Version+4 pc_SFreq equ pc_Type+2 ;screen frequency pc_SAngle equ pc_SFreq+2 ;screen angle pc_SSpot equ pc_SAngle+2 ;spot function pc_SMap equ pc_SSpot+2 ;mapping function pc_XDpi equ pc_SMap+258 ;x dots per inch pc_YDpi equ pc_XDpi+2 ;y dots per inch pc_W equ pc_YDpi+2 ;pixels wide pc_H equ pc_W+2 ;pixels high pc_Width equ pc_H+2 ;words wide pc_BitPln equ pc_Width+2 ;number of bit planes pc_Palet equ pc_BitPln+2 ;color pallet entries (8 bytes per) pc_Ptr equ pc_Palet+2 ;offset to bit map data pc_DScale equ pc_Ptr+4 pc_DW equ pc_DScale+2 pc_DH equ pc_DW+2 pc_DWidth equ pc_DH+2 pc_DBitPln equ pc_DWidth+2 pc_DPtr equ pc_DBitPln+2 pc_Sizeof equ pc_DPtr+4 * * where pc_Type's are * PC_PALET equ 0 ;rgb defined only know PC_BW equ 1 PC_RGB equ 2 PC_RGBW equ 3 PC_CMY equ 4 PC_CMYK equ 5 * * RGB color pallet equates * pl_Red equ 0 ;red pl_Green equ pl_Red+2 ;green pl_Blue equ pl_Green+2 ;blue pl_ScreenColor equ pl_Blue+2 ;screen color pl_Sizeof equ pl_ScreenColor+2 ;size of color pallet entries * * polygon info * ply_Length equ 0 ply_Width equ ply_Length+4 ply_Height equ ply_Width+4 ply_XScale equ ply_Height+4 ply_YScale equ ply_XScale+2 ply_Count equ ply_YScale+2 ply_Sizeof equ ply_Count+2 NEWPATH equ 0 CLOSEPATH equ 4 FILLPATH equ 8 STROKEPATH equ 12 MOVETO equ 16 LINETO equ 20 CURVETO equ 24 ARCTO equ 28 ARCNTO equ 32 * * encapsulated postscript object * eps_Type equ 0 eps_Width equ eps_Type+2 eps_Height equ eps_Width+4 eps_PicPtr equ eps_Height+4 eps_PlyPtr equ eps_PicPtr+4 eps_DataLen equ eps_PlyPtr+4 eps_Sizeof equ eps_DataLen+4 * offsets into the font metric list * fm_Flag equ 0 fm_Type equ fm_Flag+2 fm_Family equ fm_Type+2 fm_Attrb equ fm_Family+4 fm_XPoint equ fm_Attrb+4 fm_YPoint equ fm_XPoint+4 fm_XDpi equ fm_YPoint+4 fm_YDpi equ fm_XDpi+2 fm_Name equ fm_YDpi+2 fm_SName equ fm_Name+48 fm_FName equ fm_SName+32 fm_Directory equ fm_FName+24 fm_FontN equ fm_Directory+2 fm_SymSet equ fm_FontN+4 fm_Metrics equ fm_SymSet+2 fm_Sizeof equ fm_Metrics+4 * offsets into the font list * ft_Flag equ 0 ft_Type equ ft_Flag+2 ft_Family equ ft_Type+2 ft_Attrb equ ft_Family+4 ft_XPoint equ ft_Attrb+4 ft_YPoint equ ft_XPoint+4 ft_XDpi equ ft_YPoint+4 ft_YDpi equ ft_XDpi+2 ft_FName equ ft_YDpi+2 ft_Directory equ ft_FName+24 ft_FontN equ ft_Directory+2 ft_SymSet equ ft_FontN+4 ft_Handle equ ft_SymSet+2 ft_Sizeof equ ft_Handle+4 fd_DName equ 0 fd_Sizeof equ fd_DName+256 * * offsets into font equivelent table * eq_Type equ 0 eq_Font1 equ eq_Type+2 eq_Font2 equ eq_Font1+4 eq_SizeOf equ eq_Font2+4 FONTEQUIV equ 0 FONTREPLC equ 1 * * offsets into font style table * fs_Type equ 0 fs_Font equ fs_Type+2 fs_Style equ fs_Font+4 fs_Name equ fs_Style+4 fs_Sizeof equ fs_Name+16 FONTSYMBOL equ 0 FONTSTYLE equ 1 * * compugraphic fontlist table * cg_FontN equ 0 cg_FName equ cg_FontN+4 cg_Directory equ cg_FName+24 cg_Offset equ cg_Directory+2 cg_Length equ cg_Offset+4 cg_Bucket equ cg_Length+2 cg_Sizeof equ cg_Bucket+2 * * * FM_MAGIK equ 0 FM_TYPE equ FM_MAGIK+2 FM_FONT equ FM_TYPE+2 FM_ATTRB equ FM_FONT+2 FM_XPOINT equ FM_ATTRB+2 FM_YPOINT equ FM_XPOINT+2 FM_XDPI equ FM_YPOINT+2 FM_YDPI equ FM_XDPI+2 FM_NAME equ FM_YDPI+2 FM_CWIDTH equ FM_NAME+32 FM_KRNCNT equ FM_CWIDTH+512 FM_KRNPRS equ FM_KRNCNT+2 FT_MAGIK equ 0 FT_TYPE equ FT_MAGIK+2 FT_FONT equ FT_TYPE+2 FT_ATTRB equ FT_FONT+2 FT_XPOINT equ FT_ATTRB+2 FT_YPOINT equ FT_XPOINT+2 FT_XDPI equ FT_YPOINT+2 FT_YDPI equ FT_XDPI+2 FT_BSLN equ FT_YDPI+2 FT_HT equ FT_BSLN+2 FT_CSET equ FT_HT+2 DM_MAGIK equ 0 DM_TYPE equ DM_MAGIK+2 DM_FONT equ DM_TYPE+2 DM_ATTRB equ DM_FONT+2 DM_XPOINT equ DM_ATTRB+2 DM_YPOINT equ DM_XPOINT+2 DM_XDPI equ DM_YPOINT+2 DM_YDPI equ DM_XDPI+2 DM_ULPOS equ DM_YDPI+2 DM_ULTHICK equ DM_ULPOS+2 DM_BBOX equ DM_ULTHICK+2 DM_CSET equ DM_BBOX+4 DM_LOOKUP equ DM_CSET+4 PF_MAGIK equ 0 PF_TYPE equ PF_MAGIK+2 PF_FONT equ PF_TYPE+2 PF_ATTRB equ PF_FONT+2 PF_XPOINT equ PF_ATTRB+2 PF_YPOINT equ PF_XPOINT+2 PF_XDPI equ PF_YPOINT+2 PF_YDPI equ PF_XDPI+2 PF_ULPOS equ PF_YDPI+2 PF_ULTHICK equ PF_ULPOS+2 PF_NAME equ PF_ULTHICK+2 PF_TOPBLUES equ PF_NAME+48 PF_BTMBLUES equ PF_TOPBLUES+40 PF_FTOPBLUES equ PF_BTMBLUES+40 PF_FBTMBLUES equ PF_FTOPBLUES+40 PF_BSCALE equ PF_FBTMBLUES+40 PF_BSHIFT equ PF_BSCALE+2 PF_BFUZZ equ PF_BSHIFT+2 PF_STDHW equ PF_BFUZZ+2 PF_STDVW equ PF_STDHW+40 PF_STEMSNAPH equ PF_STDVW+40 PF_STEMSNAPV equ PF_STEMSNAPH+40 PF_FORCEBOLD equ PF_STEMSNAPV+40 PF_OBLIQUE equ PF_FORCEBOLD+2 PF_COFFSET equ PF_OBLIQUE+2 PF_CSET equ PF_COFFSET+4 PF_SOFFSET equ PF_CSET+1024 PF_SSET equ PF_SOFFSET+4 PF_SLENGTH equ PF_SSET+4 PF_SIZEOF equ PF_SLENGTH+4 PS_MAGIK equ 0 PS_TYPE equ PS_MAGIK+2 PS_FONT equ PS_TYPE+2 PS_ATTRB equ PS_FONT+2 PS_XPOINT equ PS_ATTRB+2 PS_YPOINT equ PS_XPOINT+2 PS_XDPI equ PS_YPOINT+2 PS_YDPI equ PS_XDPI+2 PS_ULPOS equ PS_YDPI+2 PS_ULTHICK equ PS_ULPOS+2 PS_NAME equ PS_ULTHICK+2 PS_FNAME equ PS_NAME+48 PS_LOOKUP equ PS_FNAME+18 * * memory management stuff * PURGABLE equ 1 CHIP equ $8000 * * keyboard stuff * LRSHIFT equ $03 ; and mask CNTRL equ 2 ; bit number LRALT equ $08 ; and mask ;LRAMIGA equ $c0