FastFontList 1.0 By Matt Hey matthey@hotmail.com (11.10.97) REQUIREMENTS An Amiga RECOMENDED A lot of fonts Programs that use fonts DESCRIPTION (What is it?) FastFontList is a cache program for FONTS: font listing. In most cases it speeds up font requesters and font scanning. It is useful to Amiga owners with many fonts in their FONTS: and isn't much use otherwise. It SetFunctions (patches) the AvailFonts function in the diskfont.library and remains resident in memory. It has no GUI or interface; just run it to make font requesters faster. FixFontList is a program that comes with FastFontList and is used to make an up to date cache for FastFontList to use. It must be run before FastFontList or no speed increase will be seen. Advantages... 1. very fast font listing of FONTS: 2. works with the ASL font requester (and more) 3. saves CPU cycles when listing large FONTS: and sleeps otherwise 4. less memory is required to list a lot of fonts (yes, it's true) 5. doesn't fragment memory much 6. should work on any OS version and any 68k processor (not tested) Disadvantages... 1. not needed with few fonts 2. only works with programs that use the AvailFonts function 3. no speedup with less used (new) AvailFonts flags 4. requires ~1.5k of memory all the time to have installed 5. requires at most 46 bytes per font of disk space in FONTS: (often much less) 6. FixFontList should be run after adding or deleting fonts 7. the stack requirements are different with FastFontList installed INSTALLATION & USAGE Sorry there isn't any install script. Move FastFontList to the WBStartup Drawer. Move FixFontList to a permanent location (maybe the System drawer?) somewhere else. Double click on FixFontList once and then every time a font is added or deleted from FONTS:. FixFonts should be run before FixFontList if necessary. Wait for FixFontList to finish and then reboot or double click on FastFontList to activate. For advanced users and old OS versions... Run >NIL: in the S:user-startup works too. Do NOT run FastFontList twice! Remove FastFontList from the WBStartup drawer and place somewhere else to disable permanently after the next reboot. Send a Ctrl-C to FastFontList to remove from memory. Do NOT do this while listing fonts! Along with FastFontList and FixFontList, the _FontList file should be deleted from FONTS: when uninstalling. TECHNICAL FastFontList SetFunctions the diskfont.library AvailFonts function. When AvailFonts is called and the flags are acceptable, the file FONTS:_FontList is loaded which contains the information about the fonts on disk. In memory fonts are added if requested. If AFF_Tagged, AFF_Bitmap or any unknown flags are set then the function is passed through to the old AvailFonts function but offers no speedup. Likewise, if disk fonts are not requested then the request is passed through to the old Availfonts function. FixFontList simply calls AvailFonts with the AFB_Disk flag set and writes to FONTS:_FontList the size of the returned data that follows and then the data. Unused space is removed when writing. FastFontList and FixFontList are written in Assembler. Both are pretty well optimized and not much would be gained by optimizing for specific processors. If you must see the source code or need it then e-mail me. Also, both programs should be system friendly (i.e., pass all debugging tool tests). If any bugs are found, please e-mail me. BUGS Bugs: None known. E-mail me if you find any. Quirks: Running FastFontList twice SetFunctions AvailFonts again (shouldn't crash though) FastFontList could be more tolerant of corrupt FONTS:_FontList file Quitting FastFontList can cause a crash if listing fonts (SetFunction's problem) AFB_Scaled is ignored when listing diskfonts (I don't think it would ever matter) DISTRIBUTION FastFontList and FixFontList are free. Please include the docs when distributing. Please send bug reports to me. HISTORY This is version 1.0 and is the first version released. CREDITS & THANKS I would like to thank the following people... Chris Williams for giving me the idea to do this project Frank Wille for his great assembler & linker (PhxAss & PhxLnk) Amiga freeware/PD authors Amiga supporters Anyone able to resist the "Dark Side" (Microsloft)