Graphic SCREEN$ Dump Revisited

See all articles from Update July 1992
Author(s): Abed Kahale
Publication: Update Magazine
Pub Details: Update July 1992
Date: July 1992
Pages: 25-26

The article on the “Graphic Screen$ Dump” generated responses from some readers, all of them are not able to do a graphic screen copy to their various printers, so here is a simplified program with REMarks ex-planations, less the TIMACHINE and Larken languages. You will have to use your interface and DOS/TOS/JLO languages.

While reading George Chambers‘s incompassing series of articles on printer interfaces in the Toronto Sinc-Link, I became aware that there are many more users that have a graphic screen copy problem including George; so here is what I know about the subject;

At work, I used a 33 MHz 386 PC with a 24-pin Toshiba printer, it took almost 6 minutes to screen dump the stock chart in my article to a full page worth; while my 2068 did a half page chart in 1 minute 40 seconds. Why? because all IBMs & compatibles are not bit-image mapped graphics, the Sinclairs are. The PCs have to go through an enormous amount of number crunching for every and each BIT before sending it to the printer. The program I was using was Microsoft’s Excel, a $300 spreadsheet software. It had a list of over 130 different make/model printers that I had to choose from prior to doing any printing, because the Excel is a 100% graphic software not unlike desktop publishing. This implies that most of the printers are not created equal even those made by the same manufacturer.

The object of the above is to bring out the fact that if you can not do a graphic copy, ENTER this simple program and experiment.

¶Activate your interface.

¶Open a stream/port to the printer using your interface language and/or POKE whatever needs to be POKEd.

¶Modify those lines in the program with LPRINT CHR$x; CHR$y; CHR$z; to your printer codes that should be in your manual.

   1 REM Dot Matrix Printer Driver by Abed Kahale 3/92
20 REM Activate your printer driver.
30 REM POKE whatever needs to be POKed to open stream/port to the printer.
40 REM POKE so as the LPRINTs and the CHR$s can go to the printer unmolested.(ASCII mode)
50 LPRINT CHR$ 27;CHR$ y;CHR$ z; REM Select your font style.
60 LPRINT CHR$ 27;CHR$ g;: REM Select Graphic Mode.
70 LOAD "your" SCREEN$
155 FOR Y=0 TO 175 STEP 8: LET R=175-Y: REM Vertical pixels from the top the screen (for 8-pin head)
160 FOR C=0 TO 255: REM Horizontal pixels.
170 LET B=0: REM Determines whether the BIT is INK or PAPER.
175 REM If the graphic pass is upside down, then use the right column only.
180 LET B=B+POINT (C,R-1): REM LET B=128*POINT (C,R)
190 LET B=B+2*POINT (C,R-2): REM LET B=B+64*POINT (C,R-7)
200 LET B=B+4*POINT (C,R-3): REM LET B=B+32*POINT (C,R-6)
210 LET B=B+8*POINT (C,R-4): REM LET B=B+16*POINT (C,R-5)
220 LET B=B+16*POINT (C,R-5): REM LET B=B+8*POINT (C,R-4)
230 LET B=B+32*POINT (C,R-6): REM LET B=B+4*POINT (C,R-3)
240 LET B=B+64*POINT (C,R-7): REM LET B=B+2*POINT (C,R-2)
250 LET B=128*POINT (C,R): REM LET B=B+POINT (C,R-1)
260 LPRINT CHR$ B;
270 NEXT C
280 LPRINT CHR$ 10: LPRINT CHR$ 13: REM Line feed : REM Carriage return
290 NEXT Y
300 LPRINT CHR$ x: REM Put it back into character mode.
320 REM : RUN
Screen dump of a woman's portrait above an ornamental pattern
Screen dump of a woman's portrait above an ornamental pattern

It will be slow in BASIC, if you have a compiler such as the TIMACHINE, by all means use it in your program.

If the graphic pass is upside down, then reverse the B*POINT, B*2 POINT, B*4 POINT.. to B*128 POINT, B*64 POINT, B*32 POINT etc. If the printer does not advance the paper, then add a line LPRINT CHR$ 10; if the print head does not return, add LPRINT CHR$ 13; if you get a blank line, then remove LPRINT CHR$ 10; and so on.

No guarantee that the program will work for your printer. Most printers will accept the CHR$ language. Some manuals give you a program that you will have to modify to T/S’s language. Then there is:- John McMichael Software

1710 Palmer Dr
Laramie WY 82070
307 742-4530

Stan Lemke, in his “Bit Image Graphics”, UPDATE January 89, article covered quite a few printers. I started with using his program; I worked on the program using the manual’s “Graphic Mode” pages that instructed me to:-

1. Specify the print density (resolution) by selecting the character style. (font)

Mine is PICA 480 dots/line code 27,19 (default); ELITE is 576 DPL code 27, 23 and CONDENSED is 800 DPL code 27, 20; density doubles in graphic mode!!

2. Specify Graphic mode code 18

3. Specify head positioning code 27, 16, N1?, N2?; where I got lost.

4. Specify the dot column (margin). Another subject.

I tried and tried different combinations to no avail on my odd printer, then told my story to Bob Swoger. He came in one evening and reviewed my work and said; “Let’s forget about all this head positioning for now and try the gut approach”; I said I was game. So this is how this program was developed; I could copy the screen but not locate it to a specific place on paper (at that time) which was just fine.

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.