HISTORY of the BitFontEdit package By David S. Lawyer, Feb., 1997 Contents: POON'S PROGRAM MODIFICATIONS 1990-7 LAWYER'S REWRITE CHANGES in 1996 NOT WIDELY DISTRIBUTED FUTURE PROPOSALS POON'S PROGRAM This history goes back about 10 years to the late 1980's when Victor Poon posted a couple of programs (in the C language = source code) to usenet (I think to the APL newsgroup). These programs created an APL character set on Wyse 60 "dumb" terminals. His waplfont.c program had the APL character set hard-coded into it. If you understand the C language, he used array initializers (enclosed in {} brackets) to represent bitmaps which in this case was the APL character set. However there was a way to create your own character set (font) if you didn't like his. You drew a pattern_file (he called it a "printable display") using #'s (almost like for my program pat2sf) using any editor so that the #'s showed the shape of the characters. Then you ran the second program Poon supplied: cvtapl.c on the file with the #'s in it. This created a ascii data file which one could then incorporate (using any editor) into his waplfont.c source code. Thus creating soft-font from a pattern_file was a 3 step process involving (at the 3rd step) the editing of (copying of "data" into) source code. LAWYER'S REWRITE Since I was using Wyse terminals and used APL (but not on Wyse terminals), I picked up this free code which Poon released into the Public Domain. I was then interested in putting Russian Cyrillic characters on Wyse terminals (although no one else I knew was). I studied his source code and began to modify it for Russian. I soon realized that Poon's program could be improved so it would generate soft-font with a fraction of the effort it took to do so by his 3-step process. I then did a complete rewrite starting from scratch (without copying his code). My new program created soft-font in one step by merely running my program on a pattern_file (*-file). I then wrote another program to do the same for DEC VT220 terminals which encoded font much differently than Wyse. Then in the fall of 1990 I took an "Individual Study" class at the University of CA at Irvine in order to get academic credit for my work and also to improve on it. I added error checking to it so as to notify the user of any errors in the pattern_file format. I also improved on the documentation of it. Here is a notice which I posted to comp.terminals and comp.fonts in July 1990 shortly after completing the independent study course. Note that I also sent a copy to Victor Poon (vipoon) and that my programs were then called "font generators". For VT200 the source code was named GenFontVT200.c. For Wyse it was GenFontWyse.c. Article 1624 of comp.terminals: Xref: orion.oac.uci.edu comp.terminals:1624 comp.fonts:1410 Newsgroups: comp.terminals,comp.fonts Path: orion.oac.uci.edu!eaeg015 From: eaeg015@orion.oac.uci.edu (David Lawyer) Subject: Re: Font generators for Wyse and VT200 terminals Message-ID: <26AC0268.21883@orion.oac.uci.edu> Followup-To: bork@ics, dlawyer, vipoon@sbcs.sunysb.edu, support@ics Reply-To: dlawyer@balboa.eng.uci.edu (David Lawyer) Keywords:terminal font generators , VT200, Wyse, Russian font Organization: University of California, Irvine Date: Tue, 24 Jul 90 08:10:16 GMT Lines: 20 I have written a couple of programs in C to generate soft-fonts which can be downloaded into Wyse and/or VT200 terminals. You first create a drawing of the characters with the * symbol representing a pixel. ***** This example is unusually small (only 5x5) and a typical cheap *.... terminal will use 7x12 characters. Next you run my font generator ***** on your characters and obtain the softfont code to download to a *.... terminal. The font will then display on the CRT. You will ***** probably need to write a shell script to set up your terminal correctly, load the font into the appropriate bank, etc. I have only used these programs for a Wyse99GT terminal but one of them should work on a Wyse 60 and the other should work on most of the many terminals which have a VT200 or VT220 mode of operation. I have used these for Cyrillic font (Russian) and have a pattern file for this font. This is the first release of them and they haven't been used or tested much. These programs should be in a TermFonts directory for ftp from ics.uci.edu. Dave Lawyer (As of 1997 it had been moved to: www.ics.uci.edu/pub/support/TermFonts) NOT WIDELY DISTRIBUTED Dec. 1996: Internet sites having my 1990 TermFont programs: www.funet.fi/pub/culture/russian/comp/cyril-term (Sent a note to timaham@nic.funet.fi.) http://sunsite.sut.ac.jp/russia/russian-studies/Software/Terminals Apparently a few people did get this software from UCI as it is still on the net in obscure locations at noted above. Then in the summer of 1990 I lost my Internet access. I was planning on putting my font software in the US Army's Simtel archive but was unable to do so. In 1993 Simtel was closed and the archives taken over by 2 private concerns, one of which only deals in Dos/Windows software. Since 1990 until 1997 it was never posted again on the net. MODIFICATIONS 1990-7 Since 1990 some changes were made but no new devices besides Wyse and Vt terminals were supported. A minor improvement was to permit large size character cells for VT terminals. However, the changes made since 1990 will make it easy to add support for other fonts languages (in addition to Wyse and VT200+). Originally (and in 1990) there was a different program (and source code) for each font language: one for the VT220 language and another for the Wyse language. These were merged into a single program and then that program was split into 3 parts. One part is a short header file pat2sf.h. The first program file, scan.c (original name pat2sf.c), scans the pattern_file, checks it's format, and puts the *'s into an array of matrices. Each such matrix is a character matrix with *'s for "on" pixels. The other file: encode.c contains all the algorithms for encoding the *-matrices into soft-font. It has separate sections for each font language. The functions in encode.c are passed as pointers so as to assign "standard" functions in scan.c the appropriate function. In 1993 a program to convert soft-font code into a pattern_file was written. This enables conversion between font languages. About this time support for HP printers was started but never completed. VERSIONS: Only the first version in 1990 was posted. The next version to be posted was in 1997: version 3.1. In Version 2.0 the main program was called fontgen.c but in version 3 (3.0 dated May 1994) its became pat2sf (=PATtern to SoftFont). CHANGES in 1996 I obtained a 486 computer and eventually installed Linux on it. The compiler was many times faster than on my previous computer which operated at only 4MHz on a 68000 CPU. Long options (using --) were incorporated and many help messages rewritten. Some code for X-Window and HP printers was incorporated into the source code, but it was inoperable since it was incomplete. Documentation was improved. City public libraries started to provide free Internet read access so I surfed the Internet for other free font editors since if they existed and did the same as mine (and more) there would be no need to post this one (or continue work on it). I found that there was apparently no software freely available which fully duplicated my program (see other_font_tools). The name was changed to BitFontEdit. POSTED in 1997 but WEBSITE CLOSED In early 1997, BitFontEdit was placed on the website www.patchbay.com. Patchbay offered free websites with no advertising and was physically located just a few miles from where I lived. I converted some of the documentation to html format and then converted again to Linux-Doc sgml format which can be automatically converted to either html or text. Then in November 1997, Patchbay went off the Internet and BitFontEdit ceased to be on the Web. I then arranged for it to reside at Shuford's website (where it is now) but didn't send him the files until April 1998. FUTURE PROPOSALS The first priority should be to make sure that it fully supports Wyse and VT terminals using the latest (and not 1990) manuals. Then it needs to be extended to printers and X-window terminals. It needs to be publicized on the Internet and an attempt made to find others to work on it and test it. I don't even have a printer to test it on since I'm using a thimble impact printer with fonts cast in plastic fingers of the thimble.