N,"Panason.bfc 9/06/89 11 am redo with esc %remove esc P"; {jsp} x: df=2; {init data format to 2} x: xd=1; {double horizontal density} x: yd=1; {one pass, normal vertical density} x: to=20; x: lo=0; x: cw=37; x: ch=24; a: aa=0; {not allow adjacent dots} a: fw=37; a: fh=cw; a: bl=to; a: d8=0; {d8=1 says downloading} E; {end initialization section.} KI; {start input font header.} EI; {end input font header.} L 8; j 12:fp,ge,fs; {L12 is end of file reached} u: zz; j 8: zz,ne,$1b; {look for esc} u: zz; j 8: zz,ne,$26; {look for x'26'} u: zz; j 8: zz,ne,$00; {look for 0 } u: cc; {decimal code of character} u: cc; {decimal code of character} L 1; {label 1 to indicate start of character.} $ : cc,"Loading code (hex) "; x: df=2; {init data format to 2} x: yd=1; {one pass, normal vertical density} x: cw=37; x: ch=24; u:zz; {lead cols} u: cw; {char cols} u: zz; {trail cols} g; {character data} ESL; {end character search, character loaded.} j 8:1,eq,1; {go get next char} L 12; {end of file reached} #:**,"Font loaded."; KT; {start input font trailer.} ET; {end font trailer.} KS; {start search for an input character.} z 10:fs-fp; L 9; u: zz; j 9: zz,ne,$1b; {look for esc} u: zz; j 9: zz,ne,$26; {look for x'26'} u: zz; j 9: zz,ne,$00; {look for 0 } d: zc; {decimal code of character} $: zc,"Encountered code (hex): "; #: fp,"At file position: "; j 9: zc,ne,cc; # : cc,"Found code (dec)"; j 1: 1,eq,1; {found, go get it} L 10; {char not found} ESU; {end character search program (unsuccessful search)} KO; {start output font header.} L 88; {for download} #:**, "Sending Font Header "; u:27; {check for esc for font mode code} u:120; u:1; u:$1b; {this starts rom cg copy to initialize char set to default} y:":"; u:$00; u:$00; u:$00; EO; {end output font header.} a:cc=0; {start with first possible code, zero} c; {select first valid code} j 57:1,eq,1; {bypass first code check} L 55; c; {select first valid code} j 59:cc,eq,0; {go to 59 if no more valid codes} L 57; KC; {start output character.} $ :cc,"Sending code (hex): "; u:$1b; u:$26; u:$00; u: cc; {decimal code of character} u: cc; {decimal code of character} u: 3; {left space} u: cw; {sends the width of each char} u: 2; {sends amount of right space} g; {character data} j 5: 1,eq,1; L 5; EC; {end output character.} a:cc=cc+1; j 55:1,eq,1; L 59; {end} KZ; {start output font trailer.} u:$1b; u:$25; u:$01; j 89:d8,eq,1; {go finish download if downloading} ET; {end font trailer.} KP; {start download} a:d8=1; {downloading indicator} j 88: 1,eq,1; {go save font to the printer} L 89; {now select download char set} a:d8=0; {turn off download indicator} u:$1b; u:$25; u:$01; EP; {end download} .