
		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.
