Printer Driver

Date: 1985
Type: Program
Platform(s): TS 2068

The John Oliger Co. parallel printer port software handler. With contributions from Tom Kalogerson and Thornton E. Benson.

Related Products

Printer port for printers that have a Centronics interface. Uses the same port and BUSY bit as the AERCO 2068 printer interface. Port is fully decoded and contains a “PRINTER READY” LED to show printer current status. Also included are hi-res screen dumps for Okidata, Olivetti PR2300, Gemini 10X and Gorilla Banana printers.

Source Code

   10 LET o=0: INK 5: PAPER o: BORDER 0: CLS 
   20 PRINT AT 5,o;"  THE JOHN OLIGER CO. PARALLEL   PRINTER PORT SOFTWARE HANDLER"
   30 PRINT AT 12,o;"CODE LOADING...Leave recorder on"
   40 PRINT #1;AT o,o;"   \*1984 The John Oliger Co."'"      All rights reserved"
   50 INK o: PRINT AT o,o
   60 LOAD ""CODE : INK 5
   70 LET x=(PEEK 23631+PEEK 23632*256)+15: POKE x,11: POKE (x+1),91: POKE (x+2),o: POKE (x+3),91
   80 PRINT AT 1,6;"STOP YOUR RECORDER": BEEP 1,1: PAUSE 45: CLS : PRINT ''"Some printers require a line    feed after a carriage return,   while others do not."'''"Please press <y><ENTER> now if  your printer requires this line feed inserted, or <ENTER> only  if your printer doesn't need it or you don't know."'''"(If your printer prints on top  of previous printing, later, youcan reload this program and thenselect the ""y"" option)" 
   90 POKE 23545,o: LET z$(30)=CHR$ o
  100 INPUT "<y><ENTER> or <ENTER> only";a$: IF a$="y" OR a$="Y" THEN POKE 23545,10: LET z$(30)=CHR$ 10
  110 CLS : PRINT "  The software to control the   printer with the LPRINT, LLIST, PRINT #3, and LIST #3 has been  stored in the printer buffer of your TS2068 computer, and the   changes to the CHANNEL table    have been made for you."
  120 PRINT '"  The LPRINT command is used as with the TS2040 printer...same  applies to the LLIST command.   LPRINT TAB works up to a max.   column of 255, as will the AT   statement's column parimeter.   The comma can be used in LPRINT statements to tab out to the    next 16 column field, but it    will give you problems if used  many times and then using a TAB or AT command. (A CR would probably be inserted before the new  text printed with the AT or TAB)"
  130 INPUT AT 1,o;"<ENTER> for more...";a$
  140 CLS : PRINT "  The COPY command will still   do a screen dump to the 2040    printer. To dump the screen to  your full size printer enter    RANDOMIZE USR 24320. So far thissoftware supports HI-RES screen dumps via this USR call only forthe OKIDATA printers supporting APA graphics, the OLIVETTI      PR2300 ink jet printer, the Gem-ini 10X, and the Gorilla/Banana."
  150 PRINT '"  If your printer is not one of those shown above, There is one more screen copy routine that   will send the screen to your    printer as a file of ASCII      characters. All non-ASCII chars will be printed in this routine as a space. While this routine  is NOT a HI-RES dump, it WILL   work with ALL printers."
  160 INPUT AT 1,o;"<ENTER> for more.";a$
  170 CLS : PRINT '"  Select the screen copy routinethat you desire to be accessed  via the RANDOMIZE USR 24320     command."
  180 PRINT ''"  KEY IN:"
  190 PRINT '"<OK><ENTER> for the Okidata"''"<OL><ENTER> for the Olivetti"''"<AS><ENTER> for an ASCII dump"''"<GE><ENTER> for the Gemini 10X"''"<GB><ENTER> for Gorilla/Banana"
  200 INPUT AT 1,o;"<OK> <OL> <AS> <GE> <GB>??";a$
  210 IF a$="OK" OR a$="ok" THEN FOR n=24320 TO 24415: POKE n,CODE x$(n-24319): NEXT n: GO TO 250
  220 IF a$="OL" OR a$="ol" THEN FOR n=24320 TO 24414: POKE n,CODE y$(n-24319): NEXT n: GO TO 250
  230 IF a$="AS" OR a$="as" THEN FOR n=24320 TO 24379: POKE n,CODE z$(n-24319): NEXT n: GO TO 250
  235 IF a$="GB" OR a$="gb" THEN FOR n=24320 TO 24415: POKE n,CODE g$(n-24319): NEXT n: GO TO 250
  240 IF a$="GE" OR a$="ge" THEN FOR n=24320 TO 24459: POKE n,CODE w$(n-24319): NEXT n: GO TO 250
  245 BEEP .5,20: GO TO 170
  250 CLS : PRINT "  It is hoped that hi-res screendumps for other printers will beincluded on this tape in the    future. If you own another brandprinter capable of hi-res graph-ics, write a screen copy routinefor it in mc, and don't mind    sharing your software with otherusers of this port, please send a copy to The John Oliger Co forpossible inclusion on this tape in the future. Fully annoted    assembly listings are included  in the Oliger Printer I/F User  Manual to show you how these    work and use as examples."
  260 PRINT "  No payment can be made for useof your routine, but you WILL   be credited for writing it. I   would like to thank Ray Kingsleyof SINWARE for writing 99.9% of the ASCII character screen dump."
  270 INPUT AT 1,o;"<ENTER> for more...";a$
  272 CLS : PRINT '"  I would like to thank Tom     Kalogerson for his Gemini 10X   high resolution  screen dump.   I'm sure all of you Gemini own- ers will appreciate Tom's work  on this software for your       printer." 
  273 PRINT '"  Thanks also to Thornton E.    Benson for his work on the      Gorilla/Banana high resolution  screen dump. With the price of  the Banana what it is today,    there are bound to be many peo- ple very appreciative of Thorn- ton's labors. Also, because the Banana is manufactured by Pro-  writer, it is possible this dumpmay work on some of the other   Prowriter printers."
  274 INPUT "<ENTER> for more...";a$
  280 CLS : PRINT "  The hardware for the Oliger   Parallel Printer Port is I/O    mapped at port 7Fh (127d) and   only bit 4 of the port is read  back as a ""Printer Ready"" signalwhich is low if the printer is  ready for data (the ""READY"" LED on the port will also be lit at this time) or high if the       printer is NOT ready or ""BUSY""."
  290 PRINT '"  USER DEFINEABLE characters areprinted on the printer as thier normal ON POWER UP characters   (A-U), and the block graphics   characters will print as spaces."
  300 PRINT '"  The CR character is sent at   each ENTER character found      (CHR$ 13), so LLISTS will print out the full width that your    printer can handle on long lines"
  310 INPUT AT 1,o;"<ENTER> for more...";a$
  320 CLS : PRINT "  This printer I/F is nearly    compatible with software that   supports the AERCO 2068 printer I/F, as it uses the same IO portand BUSY bit that Aerco uses. Ifyou have software that supports the Aerco I/F and would like to make this port fully emulate theAerco I/F, see assy. instr. step5. (Done on preassembled units)"
  325 PRINT "  To check if the printer is    busy from Basic, INKEY$#3 will  return the letter R if ready or B if busy. Thus 100 IF INKEY$#3=""B"" THEN GOTO 100 will wait tillthe printer is ready  before    falling through."
  330 PRINT "  If you would like a hard copy listing  of this program's Basicprinted on your printer, enter  ""p""  at  this prompt."
  340 INPUT AT 1,0;"<p><ENTER> or <ENTER> only";a$
  350 IF a$="p" OR a$="P" THEN LLIST 
  360 CLS : PRINT '"  This BASIC program will erase itself when you next press the  <ENTER> key, ready to load in orkey in an application program   using the Oliger Printer Port.  The nec. MC and table changes   will stay."
  370 PRINT '"  For a back up copy of this    program, input <s><ENTER> at thenext prompt." 
  380 PRINT '"  Ignore error  report  given   after next prompt  if  <ENTER>  only is pressed."
  390 INPUT AT o,o;"<ENTER> To clear Basic AREA";AT 1,o;"or <S> SAVE";a$
  400 IF a$="s" OR a$="S" THEN SAVE "Oli PRCODE" LINE 10: SAVE "prcd"CODE 23296,256: BEEP 1,1: CLS : GO TO 360
  410 CLEAR 
  420 DELETE ,
Scroll to Top