@DATABASE "LC10 Font Editor Guide"
@AUTHOR "Michael Archer"
@FONT topaz.font 8
@WORDWRAP

@NODE main "main"
                             LC10 FONT EDITOR

                          ©1997 by Michael Archer

                                  ------

  LC10-Font editor is a program that allows you to change the appearance of
the fonts that your Star LC-10 printer uses.

  There  are  2  versions of the program on the disk, one for editing draft
fonts and one for editing N.L.Q.  fonts.

@{"  Legal Notice            " LINK Legal} <--- Read this before using the program.
@{"  Distribution            " LINK Distr}
@{"  Shareware Registration  " LINK share}
@{"  Using the program       " LINK instr}
@{"  Using the fonts         " LINK fonts}
@{"  Installing to a H.D.    " LINK hdisk}
@{"  The Future              " LINK future}
@{"  Send me your fonts!!    " LINK sendme}
@{"  And Finally...          " LINK finally}

@ENDNODE

@NODE hdisk "Installing the font editor on your Hard Disk"
  For  the  font editor to work it needs the 'AMOS.LIBRARY', if this is not
already  on  your  hard  drive  you  must  copy  it  across from this disk.

		COPY DF0:LIBS/AMOS.LIBRARY LIBS:

  Once this is done installing is just a matter of putting the two programs
anywhere you wish on your hard drive.

  When  loading and saving fonts the program always looks for the file path
'SYS:LC10-FONTS'.   So  it would be a good idea to create this directory on
your  hard  drive.  If you want to store your fonts in a different location
you can, the program does not need the 'SYS:LC10-FONTS' path to work.
@ENDNODE

@NODE finally "And Finally..."
  As  I  like  programming  for  a  hobby I am always writing crappy little
programs  that no one will ever use just for something to do.  I would much
rather write a program that other people are going to use.  So, if you feel
there  is  a program/utility that should be available on the P.D./Shareware
market  that  currently isn't available then write and tell me.  If I think
it is a good idea too then I will write it.

  Alternatively  if  you have a P.D.  program that although is a good idea,
is  really  craply  written and bug ridden send it me.  I may write a newer
better version if I feel one is justified.

  Please  don't  write with suggestions of demo creators/rippers/copiers or
other  such  stuff, I think the Piracy Scene has produced too many of these
programs already.

  Send ideas to.. Mike Archer
                  29 Holbeck Avenue
                  Marton
                  Blackpool
                  Lancs
                  FY4 4LS
@ENDNODE

@NODE sendme "Send me your fonts!!"
  If  you design any fonts using this editor (NLQ or DRAFT) send them to me
and  I will include them on any future release.  You will be fully credited
for  designing the font, and I will send you the latest version of the font
editor free of charge.

  Send your fonts to.. Mike Archer
                       29 Holbeck Avenue
                       Marton
                       Blackpool
                       Lancs
                       FY4 4LS
@ENDNODE

@NODE future "The future of LC10 editor"
  I  would like to update the LC10 font editor in the future with some more
features.   If  I  do  the  registration  password  will be the same as the
current  version  you are using, so you won't need to register again simply
get  the  new version from a P.D.  library or wherever.  Whether I actually
do  release a new version really depends on how many people register.  It's
pointless me upgrading a program if nobody is using the thing anyway!!

  Here  are  some  features  I  may include in future releases, if you have
ideas  on  how  these  features  could  be better, or if there is any other
features you would like to see then please let me know.

»  Make the font convert utility resize the font so it fits the font grid
   perfectly.   Possibly  could  automatically select ascender/descender to
   get the font as big as possible.

»  Include  a mask character definition, this will appear behind the actual
   character  grid  and will contain a basic shape that you are basing your
   font design on.

»  Include functions for drawing lines, arcs, boxes and circles.

»  Convert NLQ fonts down to DRAFT and vice versa.

»  More preferences aswell as the colour palette editor.

»  Preview the whole font on screen as it would appear on your printer.

»  Your suggestions ?...
@ENDNODE

@NODE legal "Legal Notice"
  This  program  is  provided for a very low cost, because of this there is
absolutely  no  guarantee  provided with this program.  Although every care
has  been taken to ensure that this program functions correctly, if it does
go  wrong and it causes damage to your computer, printer, disks or whatever
then the cost of repairing such damages must be paid for by you.

  In  the unlikely event that this program does go wrong please write to me
and let me know the exact details of the fault, then I can correct it.

@ENDNODE
@NODE Distr "Distribution Rights for this Program"

  LC10  font  editor  is  copyrighted  software,  it  may  not  be  used or
distributed by anybody unless they observe the following conditions...

1)  The programs and documentation provided must not be changed in any way.

2)  The  programs  and  documentation  are distributed together on the same
    disk,  or within the same archive file.

3)  The  password  you are given upon registration must not be disclosed to
    any other user.

  As  long  as these conditions are met, the programs and documentation may
be distributed by any means possible.  This includes PD Libraries, Bulletin
Boards,  CD  Rom Compilations and Magazine Coverdisks.  If you are going to
distribute  this  on  a C.D Rom or Magazine please contact me first to make
sure you have the latest version of the program.
@ENDNODE
@NODE Share "Shareware Registration"

  This  program  is shareware, this means that if after trying this program
you  decide you would like to use it regularly then you are morally obliged
to  send  the  author payment for using the program.  No features have been
taken  out  of  this  program  for  unregistered  users, so you can try the
program fully. (I do hate `save disabled' demo versions of programs!)

  If  you are using this program as an unregistered user then everytime you
select  a  gadget you will have to put up with a Shareware Notice appearing
on  the  screen  for  15  seconds.   When  you register you will be given a
password,  entering this password at the start of the program will stop the
shareware  message  from  appearing and you will be free to use the program
with no interruptions.

@{"  U.K. Registration      " LINK ukreg}
@{"  Non U.K. Registration  " LINK nonuk}
@ENDNODE

@NODE ukreg "Registering as a user"
@TOC share
  To register will cost you £3, you should send this to...

                             Michael Archer

                             29 Holbeck Avenue
                             Marton
                             Blackpool
                             Lancashire
                             FY4 4LS
    
  You can send a cheque, postal order or £3 worth of 1st class stamps.

  You can send cash if you want, but I can't be held responsible if it goes
missing in the post.
@ENDNODE
@NODE nonuk "Registering as a user if you live outside the U.K."
@TOC share
  I  recognise  that people who live outside the U.K may have difficulty in
getting  a  cheque/post order to me and getting currencies converted can be
costly, so I have the following solution...

  If  you  live  outside  the  United Kingdom then instead of sending me £3
simply  send  me 3 disks containing some of your favourite software, games,
or demos.

  This only applies to people not living inside the United Kingdom, anybody
in  the  U.K.   sending  me  disks  will  simply have them returned with no
password. (Sorry, but I do need the money!)

Send your disks to..         Michael Archer

                             29 Holbeck Avenue
                             Marton
                             Blackpool
                             Lancashire
                             FY4 4LS
                             ENGLAND

@ENDNODE
@NODE instr "Using the program"
|  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  +----+  +----------+  |
|  +@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}|  |@{" A " LINK viewr}|  |@{"          " LINK chars}|  |
|  +@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}+  +----+  |@{"CHARACTER " LINK chars}|  |
|  |@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}|          |@{"          " LINK chars}|  |
|  +@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}+     @{"y" LINK ascender}    |@{"SELECTION " LINK chars}|  |
|  |@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}|    +-+   |@{"          " LINK chars}|  |
|  +@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}+  +-+@{" " LINK scroll}+-+ |@{"   GRID   " LINK chars}|  |
|  |@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}|  |@{"SCROL" LINK scroll}| |@{"          " LINK chars}|  |
|  +@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}+  +-+@{" " LINK scroll}+-+ |@{"          " LINK chars}|  |
|  |@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}|    +-+   +----------+  |
|  +@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}+                        |
|  |@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}|  +------------------+  |
|  +@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}+  |@{"                  " LINK gadgets}|  |
|  |@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}|  |@{"                  " LINK gadgets}|  |
|  +@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}+  |@{"   MISCELLANEOUS  " LINK gadgets}|  |
|  |@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}|  |@{"                  " LINK gadgets}|  |
|  +@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}+  |@{"   GADGET  BOXES  " LINK gadgets}|  |
|  |@{" | | | | | | | | | | | | | | | | | | | | | | " LINK grid}|  |@{"                  " LINK gadgets}|  |
|  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |@{"                  " LINK gadgets}|  |
|                                                   |@{"                  " LINK gadgets}|  |
|  @{"                                               " LINK message}  +------------------+  |
@ENDNODE

@NODE viewr "Print view box"
@TOC instr
  This  box  shows  a graphical representation on how the current character
will be printed when it is downloaded to your printer.
@ENDNODE

@NODE gadgets
@TOC instr


                @{"  COPY  " LINK copy}  @{"  DBLX  " LINK dblx}  @{"  TEST  " LINK test}  @{"  INFO  " LINK info}

                @{"  SWAP  " LINK swap}  @{"  DBLY  " LINK dbly}            @{"  HELP  " LINK help}

                @{" FLIP-X " LINK flipx}                      @{"  CONV  " LINK conv}

                @{" FLIP-Y " LINK flipy}                      @{"  LOAD  " LINK load}

                @{"  NEG   " LINK neg}                      @{"  SAVE  " LINK save}

                @{"  CLR   " LINK clr}                      @{"  NEW   " LINK new}

                @{"  UNDO  " LINK undo}            @{"  COLS  " LINK cols}  @{"  EXIT  " LINK exit}


@ENDNODE

@NODE grid "The character editing grid"
@TOC instr
  This grid is used to define the look of the currently selected character.
To  change a square to black simply click on it with the left mouse button.
To clear a square simply click on it with the right mouse button.

  While  you  are  defining your character you will notice that some of the
dots  change from black to grey.  Your printer is incapable of printing two
dots  next  to each other, the dots shown as grey will not be printed.  The
program  let's  you define the dots still as it makes it easier editing and
the NEGATE function would not work if the grey dots were not there.

  More details of this limitation can be found in your LC10's manual under
the section on defining your own fonts.
@ENDNODE

@NODE scroll "The scroll gadgets"
@TOC instr
  This  gadget has four directional arrows on it.  Clicking on any of these
arrows  will  scroll  the whole of the current character definition in that
direction.   Any characters that scroll of the edge of the grid will be put
back onto the opposite side of the grid.
@ENDNODE

@NODE message
@TOC instr
  This  is  the  message  box,  any  errors or informative messages will be
displayed here.
@ENDNODE

@NODE chars
@TOC instr
  This  grid  shows all the characters that are available for editing.  The
character  shown  in white is the one that you are currently editing on the
main  grid.   Any characters highlighted in yellow, are ones that have been
edited and will be downloaded to your printer.  Any Other characters in the
grid will be printed using the printers ROM font.
   
  Clicking  the left mouse button on a character will select that character
for editing in the main grid.
   
  Clicking  the  right  mouse  button  on a character will `de-select' that
character,  in  other  words,  it's  definition  won't be downloaded to the
printer.   This  effectively wipes that characters definition.  However, if
you  select that character for editing again in the current session the old
definition will be restored.
@ENDNODE

@NODE copy "Copy Character"
@TOC gadgets
  This will copy the current character to any other character in the font.
The  character  you  have  copied  the  definition to will be automatically
selected for download.
@ENDNODE

@NODE swap "Swap Characters"   
@TOC gadgets
  This will swap the definitions of the currently edited character and any
other character in the font."
@ENDNODE

@NODE flipx "Flip Horizontally"
@TOC gadgets
  This  will  flip  the character definition so it's left side becomes the
right and vice versa.
@ENDNODE

@NODE flipy "Flip Vertically"
@TOC gadgets
  This  will  flip the character definition so it's top becomes the bottom
and vice versa.
@ENDNODE

@NODE neg "Negate image"   
@TOC gadgets
  This will negate all the dots in the character definition.  (IE:  change
them to the opposite of what they were.

  This may give some strange effects on characters that have been designed
with  alternate  dots missing to allow for the LC10's printing limitations.
For example character's designed with Jeff Tullen's Font Editor (CLU #17)
This is an unavoidable problem, but it should work okay with fonts designed
on this editor.
@ENDNODE

@NODE clr "Clear Definition"
@TOC gadgets
  This  will  clear the current font definition.  You should only use this
function  to  clear  the  grid  before  designing  a  new font.  Using this
function  to  erase  a character definition will not work, as the character
will  then be defined as a blank space when you download the font.  Instead
you  should de-select that character by clicking on it with the right mouse
button.
@ENDNODE   

@NODE undo "Undo"
@TOC gadgets
  Undo  will  restore  the  character  back to how it was when you started
editing  it.   Undo  will only remember the definition of the character you
are  editing  from when you started editing it, not from when the character
set was loaded.
@ENDNODE

@NODE conv "Convert Amiga Font"
@TOC gadgets
  The  convert function will convert a normal Amiga Disk Font into an LC10
printer  font.   All  characters  in the font will be converted, but as the
LC10 should only let you download a maximum of 78 characters, you will have
to deselect some of the characters first.  The font will not be resized, it
will be taken pixel by pixel.

NOTE:   In  the  manual  for  the  LC10  it  states that only 78 characters
definitions  may  be  downloaded to the printers RAM.  However I have found
that my printer allows me to download all the definitions, I do not know if
your  printer will restrict you to 78 characters or not, you will just have
to try more and see what happens.
@ENDNODE

@NODE load "Load a font"
@TOC gadgets
   This  will  load  a  previously saved LC10 font from disk.  It will also
load  fonts  saved  from  Jeff Tullen's LC10 Font Editor (CLU #17).  If you
know  of  any  other  font  editors  who's font files will not load into my
program,  write  and  let  me know then I can include that font format in a
future update.
@ENDNODE

@NODE save "Save a font"
@TOC gadgets
   This will save the currently defined fonts out to a file.  This file can
be downloaded into your printers RAM simply by copying the file to `PAR:'

   For example:-

                  COPY SciFi.NLQ to PAR:

   Always  copy  to  the  `PAR:'  device,  never `PRT:'.  The `PRT:' device
inserts it's own control codes which will corrupt the font definition.
@ENDNODE

@NODE new
@TOC gadgets
   This  command  will  erase  all the definitions for the current font and
de-select all the characters.

   Because  this command is so destructive it must be confirmed by clicking
the mouse pointer on the message box along the bottom of the screen.
@ENDNODE   

@NODE exit
@TOC gadgets
   This will exit the program. Any changes you have not saved will be lost.

   You  must confirm EXIT by also clicking the mouse pointer on the message
box along the bottom of the screen.
@ENDNODE

@NODE dblx
@TOC gadgets
   This  will  Double  the  width  of  the  left  hand  side of the current
character  so  it fills the whole grid.  Any dots on the right half will be
lost.  A test will be done first to see if dots will be lost and if this is
the case, you will be asked to confirm the operation first.
@ENDNODE

@NODE dbly
@TOC gadgets
   This  will Double the height of the top half of the current character so
it fills the whole grid.  Any dots on the bottom half will be lost.  A test
will be done first to see if dots will be lost and if this is the case, you
will be asked to confirm the operation first.
@ENDNODE

@NODE test "Test Font"
@TOC gadgets
  This button will download the current font to your printer and then print
the character set out for you, followed by a bit of text.

  When  using this make sure your printer is set up properly as if it isn't
the program will freeze up.  As soon as you set your printer up properly it
will unfreeze and carry on printing.  This is an unavoidable problem due to
the fact I have to use the parallel port directly to download the font, and
thus  I  don't  get the printer device's errors back if the printer doesn't
respond.
@ENDNODE

@NODE cols "Edit Colours"
@TOC gadgets
  This  function  will allow you to edit the screen colours.  Once you have
set  the  screen  colours  to your own preferences you may save them as the
default  colours.  The default colours are shared by both the draft and nlq
versions of the font editor, they are stored in the file `S:LC10-ED.COLS'.
@ENDNODE

@NODE ascender "Ascender/Descender"   
@TOC instr
  This  button  will  toggle between two states.  It indicates whether the
current character is an ascender or a descender.

  If  a  character  is  an ascender then it will be printed normally on the
line.   If  a  character  is a descender then it will be printed two pixels
lower  than usual.  The main use of this function is for characters such as
'g'  or  'y', it gives you those extra dots under the line for their tails,
obviously  two  dots  aren't  enough, but they're handy if your designing a
large font.
@ENDNODE

@NODE help "Help Mode On/Off"
@TOC gadgets
  This  button will toggle help mode on and off.  When help mode is on none
of the gadgets will have any effect, instead clicking on them will bring up
a description of what that gadget does.
@ENDNODE

@NODE info "Information"
@TOC gadgets
  This button brings up a screen of information about the font editor
@ENDNODE

@NODE fonts "Using the fonts"
@TOC main
  Once you have defined a font for your printer you will want to use it.

  The  font  file  the LC10 Font Editor saves out is in a format ready to be
downloaded to your printer. 

  All  you need to do is simply copy the font file to the PAR:  device.
    (or SER: if you have attached your LC10 to the serial port somehow)

  EG: COPY SYS:LC10-FONTS/BOLD.NLQ PAR:


    You  should  always  copy  the  font files to the PAR:  or SER:  device.
  Never  send  them to the PRT:  device.  Data sent to the PRT:  device will
  be  changed  by  your  printer driver before it is sent on to the PAR:  or
  SER:  device.


@ENDNODE
