[comp.sys.handhelds] Printing BIG GROBS

robert@longs.LANCE.ColoState.Edu (Robert D. Thompson) (06/22/91)

Thank you Matt Zufelt (cs499mz@cc.suu.edu) for sending this program back to
me.  This is the grob printer I mentioned yesterday.  Please read the
comments in the code before running.  As I said it has been a long time
since we wrote this thing so if you have any questions, please don't expect
an immediate reply.  

Hope this helps out...

-Robert


%%HP: T(3)A(R)F(.);
@ ROTATE: This program was written By Robert Craeger and Robert Thompson
@ 
@
@ In the hopes of being able to print GROBS that were too long to fit into 
@ the 166 dot requirement of the printer, the program below was written.  This
@ program will rotate a GROB and print it vertically on the IR printer that
@ so many of us wish we had. :-)
@
@ Unfortunately, this program is slow (Not *really* slow but slow
@ nevertheless)  A future version is planed that will be entirely in
@ m-code.  (6/21/91: sorry haven't had the time to learn M-CODE :-(  )
@
@ Please send any remarks to:
@		
@		 robert@longs.LANCE.ColoState.Edu
@				or
@		 rc943406@longs.LANCE.ColoState.Edu
@
@ REMARKS:
@		Remember to set the appropriate modes on your 48 when using
@	the old printer.  OLDPRT SHOULD NOT BE ENABLED! for the old printer
@
@ PSEUDOBENCHMARK:
@               This program takes approximatly 1.5 Minutes on a 50x63 GROB
@
@ BUGS:
@		This program needs an inane amount of memory to run!

DIR
  ROTATE
    \<< HEX STRIP
OVER 2 / FLOOR 83 -
NEG 27 CHR 4 PICK 3
PICK + CHR + SWAP 1
SWAP
      START 0 CHR +
      NEXT \-> x y
str pad
      \<< 8 STWS 0 x
8 / FLOOR 1 -
        FOR h h 2 *
1 + \-> cnst
          \<< pad y 1
- 0
            FOR i
"#" str i x * 4 /
cnst + DUP 1 + SUB
+ STR\-> RR RR RR RR
B\->R CHR + -1
            STEP PR1
          \>> DROP
        NEXT
      \>>
    \>>
  STRIP
    \<< DUP SIZE B\->R
SWAP B\->R 8 / CEIL 8
* SWAP ROT \->STR 1 3
      START DUP " "
POS 1 + OVER SIZE
SUB
      NEXT
    \>>
END

[End of file]