
The following program is a BASIC screen dump program for the Gorilla Banana printer with the Aerco (or Oliger) printer interface. The “heart” of the program is the POINT (x,y) command. What it does is to test screen pixel (x,y) and return a 1 if it is INK color or a 0 if it is PAPER color. The program uses this information to expand each INK colored screen pixel into the resulting 2X2 dot printout.
To use the program, first LOAD, MERGE, or type in the GRAPHEX-PANDER program. Next LOAD or otherwise produce the screen that you want printed. Turn the printer ON and type GO TO 9800. DO NOT RUN the program as the screen will be cleared. Be patient…the program is written in BASIC and is therefore painfully slow. A full screen print-out will take approximately 21 minutes.

I have compiled the program and it does a full screen printout in only 4 minutes. It is 576 bytes long and resides at 60000. For those of you wanting this faster machine code version, please send $4.00 to: John McMichael, 1710 Palmer Dr., Laramie, WY 82070. I will also include a copy of the BASIC program as it is presented here, on the same tape.
The sample graphics screen printout shown, was made with the program ART STUDIO and GRAPHEX-PANDER.
GRAPHEX-PANDER
9800 REM Put Banana into GRAPHIC MODE & initialize variables.
9805 LET t=8: GO SUB 9950: LET x=0
9810 LET y=0
9815 LET t=128
9820 REM Expand to 2 dots X 2 dots each "ON" screen pixel using POINT (x,y).
9825 IF POINT (x,y) THEN LET t=t+3
9830 LET x=x+1: IF POINT (x,y) THEN LET t=t+12
9835 LET x=x+1: IF POINT (x,y) THEN LET t=t+48
9840 LET x=x+1: IF POINT (x,y) THEN LET t=t+64
9845 REM Loop to build a line of graphics in printers' buffer.
9850 GO SUB 9950: IF y<175 THEN LET y=y+1: LET x=x-3: GO TO 9815
9855 REM Print the graphic line.
9860 LET t=13: GO SUB 9950
9865 LET y=0
9870 REM Expand to 2 dots X 2 dots each "ON" screen pixel using POINT (x,y).
9875 LET t=128: IF POINT (x,y) THEN LET t=t+1
9880 REM If x=255 then GO TO 500 for special last line print-out.
9885 IF 254<x THEN GO TO 9930
9890 LET x=x+1: IF POINT (x,y) THEN LET t=t+6
9895 LET x=x+1: IF POINT (x,y) THEN LET t=t+24
9900 LET x=x+1: IF POINT (x,y) THEN LET t=t+96
9905 REM Loop to build a line of graphics in printers' buffer.
9910 GO SUB 9950: IF y<175 THEN LET y=y+1: LET x=x-3: GO TO 9875
9915 REM Print the graphic line.
9920 LET t=13: GO SUB 9950: LET x=x+1: GO TO 9810
9925 REM Special branch for last line print-out. Stops & returns printer to NORMAL MODE when done.
9930 GO SUB 9950: IF 174<y THEN LET t=13: GO SUB 9950: LET t=15: GO SUB 9950: STOP
9935 LET y=y+1: IF POINT (255,y) THEN LET t=129: GO TO 9930
9940 LET t=128: GO TO 9930
9945 REM Output to printer via Oliger or Aerco centronics I/F.
9950 LET b=1: IF 16<t THEN LET b=2
9955 IF IN 127=253 THEN GO TO 9955
9960 OUT 127,t: LET b=b-1: IF b THEN GO TO 9955
9965 RETURN
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.