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 ,