perm filename CANON.RAS[UP,DOC]7 blob sn#623884 filedate 1981-11-17 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00013 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00003 00002	---- ImPrint-10 Printer system overview --- by RAS ----
C00012 00003	TEX to ImPress, and TEX fonts
C00016 00004	CPrint: printing your IMP file 
C00021 00005	Fonts for the ImPrint-10
C00024 00006	DviImp: switches
C00028 00007	        text output and errors
C00034 00008	ImPress format, Read-IMP program
C00036 00009	ImPrint-10: starting the CPU
C00040 00010		    Console messages while printing
C00042 00011		    Starting the ImPrint-10 Printer
C00047 00012		    Diagrams
C00050 00013
C00055 ENDMK
C⊗;
---- ImPrint-10 Printer system overview --- by RAS ----

    Note: parts of this file are somewhat old and need updating!

      Address questions, suggestions and bug sightings to RAS.  
   (incl questions on DviImp, CPrint and Rst fonts, font
  conversion, using an ImPrint, supplies and quality of the output.)

----------------------------------------------------------------------
NOTE	this file is under construction.  Each page is correct from the
NOTE	first line to the line that contains the sign:
NOTE	"---- CLOSED DUE TO REMODELLING ----".  
NOTE	Do NOT imagine any further info on the page is of any use 
NOTE	whatsoever.  You are hereby warned -RAS
----------------------------------------------------------------------


OVERVIEW:
There is no such thing as a  Canon printer at Margaret Jacks Hall.  We  do
have its successor,  an ImPrint-10, manufactured  and `maintained' by  the
Imagen Corporation.   The  ImPrint-10  in our  basement  is  hereby  named
`Canon' to honor its ancestor.

The ImPrint-10 printer  system is  made up of  a Canon  LBP-10 printer,  a
printer controller board, an M68000  based micro, a serial line  connected
to a console terminal and  either a 9600 baud  serial line or an  ethernet
board on which printing requests are received.

The ImPrint-10 is a  stand-alone entity.  We  (at Sail) talk  to it via  a
9600 baud  terminal  port and  protocol.   The HeathKit  console  terminal
alongside  allows  direct  communication   with  the  ImPrint  micro   for
initialization, indecipherable status messages and debugging.

ImPrint software:  
    ImPress Translater, Painter program
    Texto currently at Diablo- will be in ImPrint-10 someday
	currently can only be used from IAZ's account at Diablo
	    with output sent to the ImPrint in LTP's office

Sail software:
    PTex, to create DVI files from TEX files;
    DviImp, to translate DVI into IMP files;
    Troff→ImP, coming soon to a CPU near you;
    Scribe→ImP, is it coming?  Only its hairdresser knows for sure;
    CPrint, to send an IMP file to the ImPrint for printing.

Roughly, the procedure for using the ImPrint is:
    Prepare your ImP file, run PTex on a TEX file, then run DviImp;
    Make sure the ImPrint CPU is ready (page 9);
    Make sure the ImPrint printer is ready (page 11);
    Send your file to Canon with DO CPrint[can,sys] (page 4).

NOTES:
    There is no spooling process; only one person may print a file at a time.  
    There is currently no way to print listings, only TEX DVI output
    IF Canon SPEWS PAPER, PULL OUT THE PAPER TRAY and reinitialize (page 9).
    There are no headers or title pages yet, so any listings lying around
	are fair game for use as samples.
    Since there is no spooler, your printing is done WHILE YOU WAIT, so
	when it has started printing, instead of waiting, PICK UP YOUR OUTPUT.

But don't stop here, the details are vital.  Read on!


TEX to ImPress, and TEX fonts

PREPARING YOUR TEX FILE

TEX:  
Compile  your  program in  MYFILE.TEX  with:
  .R  PTex  (report  any problems to IAZ) 
  *\input myfile 
This will create a file MYFILE.DVI on your directory.

DVIIMP:  
Make a  .ImP file  from your .DVI  file with  DviImp:
  .R  DviImp		(report any  problems to  RAS) 
and  to the  prompt, type  MYFILE (it  only accepts .DVI files).

    DviImp reworks the DVI  file so that it  is well-ordered and  includes
pictures of the characters  needed on each  page.  More information  about
DviImp and switches is on the next page.

TEX FONTS:   
    There are two  types of font  files, TFM files  contain dimensions  of
characters in a device independent  format.  Rst files contain the  images
of the characters at a particular resolution and magnification as well  as
pertinent dimensions.

    PTex gets its font information from  TFM files in some directory;  the
default is [TEX,SYS].  Most fonts  currently have TFM there.  DviImp  only
uses  Rst  files.   The  default   directory  is  [Can,Sys].   Below   are
instructions on creating fonts.

    Both PTex  and DviImp  look for  a font  file first  on the  directory
specified in the TEX  declaration, then on the  default directory.  If  no
directory is specified in the declaration, your current directory is used.
(TEX may not try the default if you specify an incorrect directory)

    If I have  my own special  TFM and Rst  files in my  FON directory,  a
proper TEX font definition is  thus "\font z=cmsy10[fon,ras]".  If I  wish
to use system fonts, I would say "\font z=cmsy10".  Note that there is  no
guarantee that the Rst font in  [Can,sys] actually corresponds to the  TFM
file in [Tex,sys].

    If a font  file is not  found, DviImp will  try substituting the  same
font unmagnified  and  if  this fails  it  will  give you  lots  of  error
messages.  Someday it will allow you to specify an alternative font.

    For more information on Rst fonts, see page 5.

CPrint: printing your IMP file 

    To print IMP (Impress) files, DO CPRINT[can,sys].  It will ask you for
the filename, on the end of which it will append the string `.IMP'.   Thus
you can  not  specify  a  directory, you  must  print  from  your  current
directory.

    If someone else is using Canon, you will be asked to wait.   Sometimes
this program never finished,  even though the printing  job is done.   You
might go downstairs and, if she is not using Canon, send her a message  to
type <call> and run some other program to free up the serial line.

    Currently, as the sending program runs, it dumps a horendous amount of
garbage on the screen (try ESC O on a Sail terminal to suppress output) as
well as into  a file IS.LOG.   You should, meanwhile,  hop downstairs  and
pick up your listing, checking Canon's error and supply lights.


    Canon can not yet print listings.

--- CLOSED DUE TO REMODELLING ---
    If you have text in a file MYFILE.ANY, to the prompt type MYFILE.ANY
and you will be prompted for a font file.  If you have a special one in
mind, give its name (it MUST be an FNT file available on (XGP,SYS) or 
hit return and FIX20 will be selected.  If you do choose another font 
and your listing contains characters not in the font, TS may very well 
blow up (spewing forth many lines of hex code) in which case you will 
have to reset the interface (with CStart) and run CPrint with a better 
choice of font.

If all goes well, you will be reprompted.  Typically the whole process 
takes 10-30 seconds/page.  To leave TS, type "/q" as a file name.

MULTIPLE COPIES of a listing can be produced by typing "#n" where n is
an integer > 0.  After this file has printed, this is reset to 1.

Fonts for the ImPrint-10

Currently, only Rst fonts are used by programs that talk to the ImPrint-10,
namely DviImp and Texto.  At Sail, they are kept in the directory [can,sys],
and can be made by running a special version of metafont that resides there.

MAKING Rst FONTS:  
    You can make an Rst font file by running the copy of MetaFont that  is
in [Can,sys] using mode=5.  Make sure you use the CMBASE file in [can,sys]
too.  The surest way  to do this  is by connecting  to [can,sys] with  the
monitor command: ".al can,sys".

    Rst fonts  come in  different magnifications;  an Rst  font's name  is
NAME.R## where ##  is one  or two  digits that  specify the  magnification
times 10.  Thus cmr10  at twice magnification is  in a file cmr10.r20,  at
half magnification is called cmr10.r5.

    So, to make an Rst file on can,sys:
.al can,sys
.ru mf
*mode=5; input cmr10		% to make a font at magnification 1.0 or:
*mode=-5; mag=1.2 input cmr10	% to make a font at magnification 1.2

OTHER PROGRAMS:
    RdRst allows you to look at the  inside of an Rst file.  It sends  its
output either  to the  screen  or to  a  file.  Type  \?  to it  for  more
information.  RdRstI  is  similar,  but only  gives  information  on  each
character's dimensions.

    Soon, hopefully, RdRst's ascii output file will have a standard format 
that can be edited and there will be a MakRst program to convert it back
into an Rst file.

    Also, we'll want a program to convert FNT files into the standard ascii
format.

SAMPLE FONTS
    The programs MakSam and MakSsm make samples of Rst fonts.  They are not
quite upto date, but will be up soon.  MakSam is for text fonts, displaying
each character plus text.  MakSsm makes a smaller sample excluding the text.

DviImp: switches

DviImp excepts several switches.  After the file name, type "/"
    and any combination of the following:
(Note: currently there is no way to produce multiple copies)

S s/l Size of paper- standard is 8.5x11 (the default), legal is 8x14.

P # # PAGE RANGE (default 1-250) If you only want to compile some of the 
	pages of your dvi file, type a first and last page number.
	eg /p1:2.  For just one page, enter its number.
	For DVI files, the numbers are TEX page numbers.  So if your
	pages are not numbered, every page is page number zero.

D #   DATA (default 16k, range 8k-48k); the maximum
	number of storage bytes available for glyphs on a page.
	These are allocated in 8k bytes, so your # entered is rounded
	up to the next 8k. 

L #   LMARG (default 264, range 0-2000); is the default left
	margin offset from the ImPrint's X=0.  This default currently
	gives the text a one inch left margin.
	TEX assumes there will be a margin and may write left of it
	by giving negative x-coordinates.  DviImp will get violent if s
	TEX location is left of zero.  If this happens, look at the
	number DviImp tells you and recompile, increasing the margin
	to at least that absolute quantity.  And do not increase it so 
	much that the page goes too far to the right!

T #   TMARG (default 132, range 0-2000); is the default top margin.
	This currently gives a one inch top margin.

M #  Magnification (range 0.1-9.9); This magnifies the whole document 
	by #.  Note that you can get into trouble by making the text 
	larger than the page.  Tex files include a recommended 
	magnification.  This magnification overrides that one.

E #  Expand-a-font; this is a special procedure written into DviImp.
	Giving "cmr10/e" will produce a blow up of the font cmr10 so
	you can see indiviual pixels- try it and see.

! The following are not up to date;
B#    deBugging flags, default-none. "+" gives 1,2,4;  "-" gives 1-6;
	1-diagnostics  2-flow of control  3-verbose flow  4-debugging data
	5-verbose data 6-  7-deletepack info  8-addnewchar info
	9-draw chars on last page
	All output goes to terminal and .ERC file.
 
DviImp will echo its values as it begins processing your file, eg:
    MAXD=22000 lmarg=264 standard-size pp:1→250 copies:1

        text output and errors

READING DviImp TEXT OUTPUT:
With no debugging flags set, DviImp prints a little output as it runs, eg:
    [5.][4.][3.][2.][1.]
The number is the page number of  the current page, the period is  printed
when the page  has been parsed,  the "]"  when the ImPress  page has  been
output to the Imp file.

    If any errors are encountered, a  .ERC file is opened and all  messags
go to that file as well as to the screen.

    When any debugging flag  has been set, DviImp  writes all output to  a
.ERC file and produces one line of output for every page, eg:
    [3⊂⊃⊂⊃.(c677)(ε91)(p4312→1110)  totpage=0 (o)]

    The first number is the current  page number according to TEX.  A  "⊂"
is printed whenever a  font file is  opened to be read;  when it has  been
read in, the "⊃" is printed.  The period signifies that the page has  been
parsed.

    The "(c#)" tells how many glyph objects are on the page, "(ε#)"  tells
the number of different glyphs that are currently defined, "(p#→#)"  means
a pack was done, and the amount of  glyph data went from A to B.   TotPage
is the  total number  of description  bytes on  the page.   Currently  the
numbers for the pack and Totpage are wrong.


USER ERRORS:
    A user error is that which causes  an error message and is most  often
caused by a missing font file or typesetting off of the page.  The  former
can presently only be  prevented by knowing which  fonts are in  [can,sys]
and generating any that are not there.   Both types of errors can be  most
easily caused by  exaggerated magnification.   Also, a  TEX error  message
telling of a box  that is grossly overfull  might cause a  "page-too-wide"
error.

DviImp ERRORS:
    DviImp is  a  research  project  of  fluxuating  priority.   Bugs  are
promptly addressed,  if not  fixed,  but there  have  been no  efforts  to
perform exhaustive testing.   Please report  any bugs.   Sending your  ERC
file and a pointer to the original DVI file will help immeasurably.

    The only crashing error of which I know, occurs if there are too  many
objects and  typesetting commands  on the  page.  Currently  20000  words,
80000 bytes are allocated to the command array, much more than the ImPrint
can handle and much more than appears on any reasonable page.  Because  of
the use of  Sail byte  pointers, bounds checking  is not  obvious and  not
done.  Overflowing this array could cause unpredictable errors...

ImPress format, Read-IMP program;

    ImPress format  is best  described in  the ImPress  Manual.   Stanford
users should send  enquiries to  RAS@Sail, although few  people need  one.
Others should contact their local Imagen representative.

    ImPress files are byte oriented, on  Sail 4 bytes are packed per  word
in the (left) high order bytes.

READING ImPress FILES- RdImp
    RdImp translates ImPress  files at  Sail into ascii  .IMR files.   The
format is not quite like the ascii format in the manual which I found hard
to read.  In addition, search for "!"'s in the text to find caught  errors
or warnings.  Comments  are enclosed in  parentheses.  Right before  POPs,
the current page coordinate is added as a comment.

    To run RdImp, just type  ".R RdImp" to Sail  and you will be  prompted
for an IMP file name.  Pictures of characters are not included in the  IMR
file.  To view these, add the switch "/c" to the file name and the  images
will be sent to a .IMC file.

WRITING ImPress FILES
    Currently, there is no IMR→IMP program, although it would be nice.

ImPrint-10: starting the CPU

The CPU has three states: Wait, Diagnostic monitor and 68k monitor.
Upon power-up, programs are read from PROM and Canon enters the Wait state.


WAIT STATE
This is the printing state.  The CPU is waiting for amy event, such as a
message from the serial line signalling a print request.  Thus turning on
the ImPrint puts it into the Wait state.

Typing the (Zenith)  console's BREAK  key will  force entry  into the  68k
monitor.  Typing any other character on the console will force entry  into
the Diagnostic Monitor.

DIAGNOSTIC MONITOR
This is used for software debugging.  Perhaps someday there'll be a 
pointer here to documentation about all the options...  For the moment, all
you have to know is that "Q <return>" quits the monitor, returning you to
the wait state.  And BREAK sends you to the 68k monitor.

68K MONITOR
The 68000 board comes with a small monitor for debugging, which, on Canon,
 can be activated by hitting the console's BREAK key.  Two commands are of
interest. "C <return>" causes program continuation and "Z <return>" causes
system initialization.

INITIALIZATION
To initialize the ImPrint-10, either power it up, with the on/off switch
on the back side of the card cage (on the right end), or press the console's
BREAK key and type "Z <return>".  It will enter wait state and be ready to
respond to print requests from Sail.

	    Console messages while printing

PRINTING MESSAGES
Upon beginning a print request, some information will appear about the
page size etc  -- TO BE CONTINUED --

ERROR MESSAGES
During printing,  Canon  sends  any  error messages  to  the  (Heath  Kit)
terminal.  Do not try to read them-  they are written in a South  American
dialect specially made to be scrolled off of the screen at high  velocity.
Some tanslations follow:

Object Area Overflow:  
    Too many instances of things are typeset on the page;

Invalid Glyph Dimensions:  
    Glyph's currently can not have zero height or width.

Undefined Glyph:  
    Printing a glyph that has not  been defined, or whose dimensions  were
invalide results in this error.

Something out of paper:		
    This is a euphemism for something being typeset OFF of the paper,  too
far to the right, left, too far up or down.


If you  think the  error  messages are  cryptic  and should  provide  more
information, that's  what I  thought,  too.  Much  later,  when we  get  a
spooler, intelligent  error  messages  will  be sent  back  to  the  print
requester...
	    Starting the ImPrint-10 Printer

Note: see next page for diagram of Canon's setup in the basement.

INITIALIZING THE PRINTER:  
    Turn on the printer using the large black plastic toggle on the front,
left side.  The green ready/wait light  will blink for a few seconds.   If
all of the lights are on, try waiting until the CPU is ready.  If the  CPU
IS ready, try turning it off and on again or panicking as outlined below.

BUTTONS:
    The Test/reset light does  not work.  But if  you push the  test/reset
button, you'll tell the CPU to print out pages of grid marks.  Plus you'll
get the message "Printing  Exercise Requested" on  the console.  Push  the
button again to disable it.  Soon it will be changed so that each press of
the button generates just  one exersize so you  won't have to worry  about
its state.

    The other two buttons are disabled.

ERROR CONDITIONS:  
    Documentation is in ImPrint's (red, spiral bound) notebook. Briefly...
When lit, the four lights (with  sketches above them) mean, from left  to
right: (the front of the printer is the side with the lights)

OUT OF PAPER: Either  the paper cassette is  installed incorrectly or  the
ImPrint needs more paper.  If the latter, remove the black paper tray from
the left side  of the  ImPrint (just pull  gently but  firmly).  Find  the
paper, NOTE (!)  carefully which side is up and add some paper face up  to
the tray.  Reinsert  the tray (put  it in approximately  the right  place,
push gently and the tray will be guided in).

NEEDS PREMIX:   Maybe the  ImPrint  needs more  premix.  Try  opening  and
closing the left front  panel.  If the light  persists it probably  really
needs it.  Find a bottle (a Canon bottle with a picture of a drop like the
picture above the  light, look  below the  ImPrint's table  and below  the
table near the door) and  shake it well.  Open  the middle panel and  pour
half of the bottle into the hole in the black tray that leads to the tank.

PAPER JAM: Some paper may be  caught in the ImPrint innards.  Try  opening
and closing the front left panel.  If this does not work, there may really
be some paper caught.  Remove it  carefully.  For help see pages 18-21  of
the "ImPrint LBP-10 Operation Manual".   Usually you can pull stuck  paper
out from where  it goes in  or where it  comes out.  You  can try  opening
things up,  but be  careful.  Remeber  to push  the red  reset lever  down
before closing the top left  lid. If you need help,  seek RAS, LTP or  LES
@Sail.

NEEDS TONER: if the little toner  bottle behind the front middel panel  is
empty, take it out (turn CCW `135 and pull it out), and replace it with  a
full one (probably below  the table) making sure  the toner is shaken  and
the black  valve is  on  the bottle  properly and  put  it back  into  the
ImPrint.  If it is not empty, the toner is clogging the valve, try turning
the bottle CW & CCW a few times.

	    Diagrams

			   top view:

							   CPU
___________						  on/off
|   |      |		------------------------------------/\---
| HeathKit |		|  Laser Printer   .            |       |
| (Zenith) |	--------+                  .            |       |
| Console  |	|       |                  .            |       |
| Terminal |	| paper |                  .            | CPU   |
|   |      |	|  tray |                  .            |  cage |
------------	|       |      top lid     .            |       |
		--------+                  .            |       |
			|                  .            |       |
			---\/----------------xxxxxxxxx-----------
			 printer     ↑        ↑ lights
			  on/off     |        |
				     |        |
				 side door   middle panel

	Note that only the location of the lights are shown 



	**************************************************

			and the insides:

				back
		------------------------------------/\---
		|                  .            |       |
	--------+!                 .            |       |
	|       |!                 .            |       |
	| paper |!          D  R  U. M       () | CPU   |
	|  tray |!                 .   INK   || |  cage |
	|       |!                 .   TRAY  || |       |
	--------+!                 .         || |       |
		|↑    X            .  O      -- |       |
	←left   -|-\/-↑---------------↑-------↑----------
		 |    |            Premix    Toner bottle
	       handle |		    hole
		      red reset lever