N,"LQ2500 Draft"; {revised 6/13/89, Dean Anderson} { following are default assignments:} x: df=2; {init data format to 1} x: xd=1; {double horizontal density. Does not affect character data, merely the displayed density of dots.} x: yd=1; {one pass, normal vertical density} x: pw=8; {number of print wires used if multi-pass printing} x: to=20; {offset of character top to baseline.} x: lo=0; {left offset, ignore it} x: cw=9; {default character width} x: ch=24; {default character height} a: aa=0; {allow adjacent dots} a: fw=cw; {maximum font cell width, for Normalize function} a: fh=ch; {max font cell height, for Normalize} a: bl=to; {position of baseline relative to top of font cell.} E; {end initialization section.} KI; {start input font header.} z 12:fs-fp; {jump to L12 if end of file reached} u: zz; {read first byte} j 40: zz,ne,27; {check for ESC} u: zz; {read next byte} j 40: zz,ne,120;{check for 'x'} u: zz; {read next byte} j 40: zz,ne,48; {check for '0'} u: zz; {read next byte} j 40: zz,ne,27; {check for ESC} u: zz; {read next byte} j 40: zz,ne,58; {check for ':'} u: zz; {read next byte} j 40: zz,ne,0; {check for 0} u: zz; {read next byte} j 40: zz,ne,0; {check for 0} u: zz; {read next byte} j 40: zz,ne,0; {check for 0} EI; {end input font header.} #:**,"Using LQ2500 Draft to load font"; z 12:fs-fp; {will cause jump to L12 if end of file is reached} L 88; u: zz; {read a byte} j 40: zz,ne,27; {check for ESC} u: zz; {read a byte} j 40: zz,ne,38; {check for '&'} u: zz; {read a byte} j 40: zz,ne,0; {check for 0} u: cc; {get char code} u: zz; {get repeat of char code} j 40: cc,ne,zz; {check if valid} u: zz; {lead cols} u: zz; {char cols} u: zz; {trail cols} L 1; {label 1 to indicate start of character.} # : cc,"Loading code (decimal) "; g; {character data} ESL; {end character search, character loaded.} # : cc,"Loaded code (decimal) "; j 88:1,eq,1; {go get next char} L 12; {end of file reached} # : **,"Loaded."; j 41:1,eq,1; L 40; # : **,"Invalid font file for LQ2500 draft"; L 41; KT; {start input font trailer.} {This font does not use a trailer.} ET; {end font trailer.} KS; {start search for an input character.} # : **,"This configuration does not support search"; ESU; {end character search program (unsuccessful search)} KO; {start output font header.} u: 27; u: 120; u: 48; u: 27; u: 58; u: 0; u: 0; u: 0; EO; {end output font header.} {following lines select characters to output} a:cc=0; {start with first possible code, zero} c; {select first valid code} j 57:1,eq,1; {bypass first check to see if cc is back to zero} L 55; {jumped here to get next code} c; {select first valid code} j 59:cc,eq,0; {go to 59 if no more valid codes (cc is back to zero)} L 57; {valid code selected} KC; {start output character.} # : cc,"Sending code (decimal): "; u: 27; u: 38; u: 0; u: cc; u: cc; u: 1; u: 9; u: 2; g; EC; {end output character.} a:cc=cc+1; {increment to next code} j 55:1,eq,1; {jump to select it, or next higher valid code} L 59; {all characters have been written} KZ; {start output font trailer.} {This font does not use a trailer} ET; {end font trailer.} KP; {start download} # :**,"This configuration does not support download"; EP; {end download} .