[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference hydra::amiga_v1

Title:AMIGA NOTES
Notice:Join us in the *NEW* conference - HYDRA::AMIGA_V2
Moderator:HYDRA::MOORE
Created:Sat Apr 26 1986
Last Modified:Wed Feb 05 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:5378
Total number of notes:38326

14.0. "Printer Hookup?" by HIGHFI::MICKOL (Videographer) Wed May 07 1986 17:44

Can someone who has an EIA (RS232) printer working with the AMIGA please send 
me the pin configuration. I would like to get an LA50 working with my AMIGA.
Thanks.

jim

T.RTitleUserPersonal
Name
DateLines
14.1Printer hookup for LA36MLOKAI::SANFORDWed May 07 1986 21:4316
    Should be as simple as this:
    
    	Pin 1 => 1
    	Pin 2 => 3
    	Pin 3 => 2
    	Pin 7 => 7
    
    	I have done this with an LA36 with no problems, you also want
    
    	to list to PRT: (Maybe using the Diabo-150) to get the CR/LF
    	right.
    
    	Good luck.
    
    Drew
    
14.2LA50 HOOKUP + MOREKAOM03::GOSLINGFri May 09 1986 10:4352
Jim, the following is the cable configuration for connection of an LA50
to the AMIGA.          

              AMIGA     LA50
	      -----    -----
		1 ------  1
		2 ------  3
		3 ------  2
		6 ------ 20
		7 ------  7
	       20 ------  6

I have my LA50 connected to the serial port and it works fine.  Obvious
problem (as pointed out by others in the old notes files) is that if you
are using a modem, your sunk if you want to echo to your printer.

I have a program, courtesy of Steve Drew of Calgary, that allows you to define
a generic driver for the LA50 (or any other printer for that matter), thus
allowing you to enable bolding, underscoring, variable CPI, enhanced mode, etc.
That at least permits its' use for text printing, without having to select some
"semi-close" driver from those available in Preferences.  Graphics, italics and
fancy stuff like that are not supported by this driver. 

I read in a recent issue of TPUG (Toronto Pet Users Group) magazine, that V1.1
of the developer's kit gave details on printer drivers - any developers out
there with LA50's who can, a) substantiate TPUG's claim, and b) if it's true -
how about someone developing a LA50 driver to support graphics!  I also saw in
the latest edition of Amazing Computer (in the section that they listed all the
software, hardware, documentation, etc., available for the AMIGA) reference to
a company (the name escapes me) that has 2 driver programs for sale, 1 for text
and an upgrade for graphics.  There was no phone number so I could'nt give them
a call to find out exactly what it was that they were offering.  If anyone does
contact them, how about posting their findings in this note! 

Also, with respect to tieing up the serial port, I saw an ad in BYTE (in the
last 1000 pages they devote to advertising) for a SERIAL-PARALLEL converter for
something in the neighborhood of $80.  Any technicrats out there who care to
comment on the viability of such a gadget?  Anyone bought one?  Anyone made
one?  I have the LA50, and intend to purchase an OKIMATE for color, but with
the cost of supplies for that unit, I plan on using the LA50 for general text
and would like to be able to use it for printing during terminal sessions. 

(Sorry for not being specific about magazine issue dates, pages, etc., but I'm
writing this at work, so I don't have the information readily at hand) 

If there is a need for the BASIC program I mentioned, let me know and I'll
make it available.
                                                                    
Hope this help you with your LA50 connection, as well as stimulates some
further activity with respect to the LA50 and AMIGA compatibility. 

Art
14.3SERIAL-PARALLEL gadgetMLOKAI::SANFORDWed May 21 1986 14:4611
    On the SERIAL-PARALLEL gadget for $80.00, DEC offers a SERIAL-PARALLEL
    interface for the LA180 and it works.  Instead of sending data in
    PARALLEL format to the LA180 you can send SERIAL data using the
    converter (I have the serial-parallel converter and use is on the
    serial port of the Amiga, no problems) and RS232 port.  
    
    You might be able to use the DEC product, but at a MLP of $600 ($300
    our price) it isn't worth it.
    
    Drew
    
14.4LAxx Driver GeneratorCOOKIE::WECKERDave L.I.P.S. WeckerThu Jun 05 1986 23:19130
Here is a copy of GOSLING's program, with data statements  added to configure
correctly for an LA50 (actually any LAxx). I have tried the driver with
TEXTCRAFT and it works fine (bold, underline, different pitches). I used
it to define DF0:devs/printers/la50 (using the suggested generic input driver)
------------------------------------------------------------------------------
10    REM program to add escape sequences to the generic driver
11    REM may also work on some other drivers.
12    PRINT "Type out file prt_edit.help for the list of escape"
13    PRINT "sequences and what each one does.":PRINT
14    PRINT "when modifying an escape sequence input the HEX value"
15    PRINT "of each character separated with a comma.":PRINT
16    PRINT "The best file to modify is 'DF0:devs/printers/generic'"
19    DIM escape$(76)
20    PRINT  "file to modify :";:LINE INPUT filein$
30    OPEN "i",1,filein$
40    size=LOF(1)
45    DIM d%(size+1)
50    FOR j=0 TO size-1
60    a$=INPUT$(1,1):d%(j)=ASC(a$)
70    NEXT j
72    PRINT "Working..."
75    CLOSE #1
80    FOR j=0 TO size-1
90    IF d%(j)=3 AND d%(j+1)=242 AND d%(j+2)=0 AND d%(j+3)=0 THEN indexsize=d%(j+9)+256*d%(j+8):index=j+10
100   IF indexsize>75 THEN GOTO 120
110   NEXT  j
120   REM put escapes into sep strings
130   indxst=index
140   indxloc=index+3
160   FOR x=0 TO 75
170   indxloc=index+3+(x*4)
180   escloc=d%(indxloc)+256*(d%(indxloc-1))+indxst
190   esclocend=d%(indxloc+4)+256*(d%(indxloc+3))+indxst-1
200   '?hex$(d%(indxloc)+256*(d%(indxloc-1))),hex$(d%(indxloc+4)+256*(d%(indxloc+3))-1)
210   PRINT x;"   ";
230   IF x=75 THEN esclocend=indxst+(indexsize*4)-1
235   FOR z=escloc TO esclocend
240   PRINT HEX$(d%(z));",";:escape$(x)=escape$(x)+CHR$(d%(z)):NEXT z
250   PRINT ""
255   NEXT x
      RESTORE
300   PRINT :PRINT "escape to modify [cr if done]: ";:READ x$:PRINT x$
301   IF x$="" THEN GOTO 500
302   x=VAL(x$)
305   PRINT  :PRINT  "Old contents: ";
310   PRINT x;"  ";:FOR y=1 TO LEN(escape$(x))
320   PRINT HEX$(ASC(MID$(escape$(x),y,1)));",";
330   NEXT y
340   PRINT  "   New contents: ";
350   READ i$:PRINT i$
351   IF i$="" THEN GOTO 300
352   tc=0
355   escape$(x)=""
360   FOR y=1 TO LEN(i$) STEP 3
370   t$="&h" + MID$(i$,y,2)
371   tc=tc+1
380   escape$(x)=escape$(x)+CHR$(VAL(t$))
390   NEXT y:escape$(x)=escape$(x)+CHR$(0):tc=tc+1
395   IF INT(tc/2)<>tc/2 THEN escape$(x)=escape$(x)+CHR$(0)
400   GOTO 300
500   REM all done now recalculate and save
510   PRINT  "file name to save as: ";:LINE INPUT file$
520   OPEN "o",2,file$
550   REM find length of all strings
555   length=0
560   FOR x=0 TO 75:length=length+LEN(escape$(x)):NEXT x
561   tmp=INT(length/4):IF tmp<>length/4 THEN escape$(75)=escape$(75)+CHR$(0)+CHR$(0):length=length+2
565   length=length/4:length=length+76
570   lh=INT(length/256):ll=length-lh*256
571   FOR q=1 TO 100
572   IF d%(q)+d%(q-1)*256=indexsize THEN GOTO 575
573   NEXT q
575   d%(q)=ll:d%(q-1)=lh
576   FOR z=0 TO index-3
577   PRINT #2,CHR$(d%(z));
578   NEXT z
580   PRINT #2,CHR$(lh);:PRINT #2,CHR$(ll);
585   PRINT  "Working..."
590   REM calc. new index table
595   first=304
605   indxloc=index+3
606   FOR x=0 TO 74
607   indxloc=index+3+(x*4)
610   offset=d%(indxloc)+d%(indxloc-1)*256+LEN(escape$(x))
620   offh=INT(offset/256):offl=offset-offh*256
630   indxloc=indxloc+4
635   d%(indxloc)=offl:d%(indxloc-1)=offh
640   NEXT x
650   REM print out index table
660   FOR z=0 TO 76*4-1
670   PRINT #2,CHR$(d%(index+z));
680   NEXT z
700   REM print out escapes
710   FOR x=0 TO 75
720   PRINT #2,escape$(x);:NEXT x
730   REM output reset of original file
740   start=indxst+(indexsize*4)
750   FOR z=start TO size-1
760   PRINT #2,CHR$(d%(z));
770   NEXT z
780   CLOSE #2

DATA "5","1B,5B,30,6D"
DATA "8","1B,5B,34,6D"
DATA "9","1B,5B,32,34,6D"
DATA "10","1B,5B,31,6D"
DATA "11","1B,5B,32,32,6D"
DATA "14","1B,5B,30,77"
DATA "15","1B,5B,32,77"
DATA "17","1B,5B,34,77"
DATA "19","1B,5B,36,77"
DATA "25","1B,5B,32,22,7A"
DATA "26","1B,5B,31,22,7A"
DATA "32","1B,4C"
DATA "33","1B,4B"
DATA "34","1B,28,42"
DATA "35","1B,28,52"
DATA "36","1B,28,4B"
DATA "37","1B,28,41"
DATA "38","1B,28,45"
DATA "39","1B,28,48"
DATA "40","1B,28,59"
DATA "41","1B,28,5A"
DATA "42","1B,28,4A"
DATA "43","1B,28,36"
DATA "44","1B,28,43"
DATA "55","1B,5B,32,7A"
DATA "56","1B,5B,31,7A"
DATA "",""
END
14.5"prt_edit.help"ANGORA::SMCAFEESteve McAfeeTue Jun 10 1986 10:1012
    
    Dave,
    
      Could you also post "prt_edit.help" if you have it.  I've got
    an LA100 and I would like to write my own data statements.  I
    tried it with these for the LA50 and it none of the sequences
    worked (bold, underline, etc.).
    
    Thanks in advance,
    
    Steve McAfee
    
14.6Escape sequence definitionsCOOKIE::WECKERDave L.I.P.S. WeckerTue Jun 10 1986 14:3595
re:	.5

Here is the .h file used to define all escape sequences... when you have a
version working for the LA100 you may want to post the data statments since
there are quite a few interested people..

regards,
dave

----------------------------------------------------------------------
#define aRIS     0  /* ESCc  reset          ISO */
#define aRIN     1  /* ESC#1 initialize       +++ */
#define aIND     2  /* ESCD  lf          ISO */               
#define aNEL     3  /* ESCE  return,lf          ISO */         
#define aRI      4  /* ESCM  reverse lf        ISO */      

#define aSGR0    5  /* ESC[0m normal char set       ISO */    
#define aSGR3    6  /* ESC[3m italics on       ISO */        
#define aSGR23   7  /* ESC[23m italics off       ISO */
#define aSGR4    8  /* ESC[4m underline on       ISO */
#define aSGR24   9  /* ESC[24m underline off       ISO */
#define aSGR1   10  /* ESC[1m boldface on       ISO */
#define aSGR22  11  /* ESC[22m boldface off       ISO */
#define aSFC    12  /* SGR30-39  set foreground color   ISO */
#define aSBC    13  /* SGR40-49  set background color   ISO */

#define aSHORP0 14  /* ESC[0w normal pitch      DEC */
#define aSHORP2 15  /* ESC[2w elite on          DEC */
#define aSHORP1 16  /* ESC[1w elite off       DEC */
#define aSHORP4 17  /* ESC[4w condensed fine on    DEC */
#define aSHORP3 18  /* ESC[3w condensed off         DEC */
#define aSHORP6 19  /* ESC[6w enlarged on       DEC */
#define aSHORP5 20  /* ESC[5w enlarged off       DEC */

#define aDEN6   21  /* ESC[6"z shadow print on       DEC (sort of) */
#define aDEN5   22  /* ESC[5"z shadow print off    DEC */
#define aDEN4   23  /* ESC[4"z doublestrike on       DEC */
#define aDEN3   24  /* ESC[3"z doublestrike off    DEC */
#define aDEN2   25  /* ESC[2"z  NLQ on          DEC */
#define aDEN1   26  /* ESC[1"z  NLQ off       DEC */

#define aSUS2   27  /* ESC[2v superscript on       +++ */
#define aSUS1   28  /* ESC[1v superscript off       +++ */
#define aSUS4   29  /* ESC[4v subscript on       +++ */
#define aSUS3   30  /* ESC[3v subscript off       +++ */
#define aSUS0   31  /* ESC[0v normalize the line    +++ */
#define aPLU    32  /* ESCL  partial line up       ISO */
#define aPLD    33  /* ESCK  partial line down       ISO */

#define aFNT0   34  /* ESC(B US char set       DEC */
#define aFNT1   35  /* ESC(R French char set       DEC */
#define aFNT2   36  /* ESC(K German char set       DEC */
#define aFNT3   37  /* ESC(A UK char set       DEC */
#define aFNT4   38  /* ESC(E Danish I char set       DEC*/
#define aFNT5   39  /* ESC(H Sweden char set       DEC*/
#define aFNT6   40  /* ESC(Y Italian char set       DEC */
#define aFNT7   41  /* ESC(Z Spanish char set       DEC */
#define aFNT8   42  /* ESC(J Japanese char set       +++ */
#define aFNT9   43  /* ESC(6 Norweign char set       DEC */
#define aFNT10  44  /* ESC(C Danish II char set    +++ */
                              
#define aPROP2  45  /* ESC[2p  proportional on       +++ */
#define aPROP1  46  /* ESC[1p  proportional off    +++ */
#define aPROP0  47  /* ESC[0p  proportional clear    +++ */
#define aTSS    48  /* ESC[n E set proportional offset    ISO */
#define aJFY5   49  /* ESC[5 F auto left justify    ISO */
#define aJFY7   50  /* ESC[7 F auto right justify    ISO */
#define aJFY6   51  /* ESC[6 F auto full justify    ISO */
#define aJFY0   52  /* ESC[0 F auto justify off      ISO */
#define aJFY3   53  /* ESC[3 F letter space (justify)   ISO (special) */
#define aJFY1   54  /* ESC[1 F word fill (auto center)   ISO (special) */

#define aVERP0  55  /* ESC[0z  1/8" line spacing    +++ */
#define aVERP1  56  /* ESC[1z  1/6" line spacing    +++ */
#define aSLPP   57  /* ESC[nt  set form length n    DEC */
#define aPERF   58  /* ESC[nq  perf skip n (n>0)   +++ */
#define aPERF0  59  /* ESC[0q  perf skip off        +++ */
                        
#define aLMS    60  /* ESC#9   Left margin set       +++ */
#define aRMS    61  /* ESC#0   Right margin set       +++ */
#define aTMS    62  /* ESC#8   Top margin set       +++ */
#define aBMS    63  /* ESC#2   Bottom marg set       +++ */
#define aSTBM   64  /* ESC[Pn1;Pn2r  T&B margins    DEC */
#define aSLRM   65  /* ESC[Pn1;Pn2s  L&R margin    DEC */
#define aCAM    66  /* ESC#3   Clear margins       +++ */
#define aHTS    67  /* ESCH    Set horiz tab       ISO */
#define aVTS    68  /* ESCJ    Set vertical tabs    ISO */
#define aTBC0   69  /* ESC[0g  Clr horiz tab        ISO */
#define aTBC3   70  /* ESC[3g  Clear all h tab      ISO */
#define aTBC1   71  /* ESC[1g  Clr vertical tabs    ISO */
#define aTBC4   72  /* ESC[4g  Clr all v tabs       ISO */
#define aTBCALL 73  /* ESC#4   Clr all h & v tabs    +++ */
#define aTBSALL 74  /* ESC#5   Set default tabs         +++ */
#define aEXTEND 75  /* ESC[Pn"x extended commands   +++ */
----------------------------------------------------------------------
14.7prt_edit.helpCGFSV1::DREWSteve DrewTue Jun 10 1986 19:3715
    Steve,
    
    I actually wrote the prt_edit program and gave it to Art Gosling
    since we were both trying to get our LA50's to work with Texcraft.
    The help file was just a small note to describe how to add escape
    sequences. Basicly the driver uses a table 0-75 different codes that the
    amiga can handle. The program originally gave you the current escape
    sequence for each of these codes. (normally all zeros for the generic
    driver). You do need to refer to the Include file that Dave sent
    to determine which number performs which function. Of course this
    utility only helps the driver understand the modes of text printing
    no graphics will work. It's a hacked up little program but it works!
    
    regards
    Steve Drew.
14.8Help prevent sore fingers!HIGHFI::MICKOLVideographerWed Jun 11 1986 11:107
Is there anyone in the greater Maynard area who can provide me with a copy (on
floppy) of the LA50 escape basic program listed earlier? I don't currently
have any terminal emulator software to downline load it and dont relish the
thought of typing it in. Thanks in advance...

jim

14.9CREDIT WHERE CREDIT IS DUE + GRAPHICS??KAOM03::GOSLINGWed Jun 11 1986 11:39150
       Following on with Steve's reply, he certainly deserves all the
       credit for getting so many LA50's working with our AMIGA's.  I
       simply acted as a middleman in the distribution of the source
       code to a number of folks who requested it of me.  It was not my
       desire nor intention of it becoming GOSLING's program - I ain't
       that smart as evidenced by the fact that I had to get the
       original from Steve in the first place! 
                                                                      
       As Steve mentioned, his program takes care of the LA50 in text
       mode, but not in graphics mode.  I have been reading in the
       USE.NET that release 1.2 (BETA version now in the hands of
       registered developers) has the features that allows you to design
       printer specific drivers.  I have included 2 of the latest bits
       of correspondance with regard to this for the information of
       anyone not reading USE.NET (I took the liberty of chopping
       out some of the repeated text in order to shorten the overall
       length of this note). 
       
       My questions to anyone (ANY DEVELOPERS OUT THERE??) who thinks
       they know the answers are: 
       
       1. while the basic topic of the attached is around text, does it
       follow that the ability to generate graphics will be accomodated
       in this (or a similar) fashion as well? 
       
       2. if yes to the above, will we have to wait for the USER release
       of 1.2 before we can realize the full potential of our LA50's (or
       LA100/210's), or will we be able to merge that portion of 1.2,
       specific to handling the printer activity, with 1.1 for the
       interim period?
       
       3. if yes to all of the above, any volunteers to create the
       necessary tables, etc., for the various DEC printers and then
       make them available to the "general public"?   We'd be forever
       grateful!! 
       
                                                
       						Thanks
       
            
       						Art
       
       
==============================================================================
Newsgroups: net.micro.amiga
Path: decwrl!pyramid!amiga!andy
Subject: Re: printer driver character mapping question
Posted: 9 Jun 86 14:24:12 GMT
Organization: Commodore Business Machines, 1200 Wilson Drive, West Chester, PA
19380 
Keywords: device dependent printer driver
 
In article <[email protected]> [email protected] (Gary L. Crum) writes:
>I'm posting this article for u-rlcarl%utah-ug@utah-cs.{UUCP,ARPA} .
>
>    I am writing an Amiga device dependent printer driver, but am having a
>problem sending plain text to the printer.  The device Independent printer
>code seems to assume that it can pass all printable characters directly to
>the printer, without consulting the device dependent code.  This is fine
>for the standard ASCII character set (codes from $20 to $7E), but doesn't
>work at all when printing the Amiga's extended set of foreign and other
>characters which have codes $A0 to $FF.  Most printers, including
>IBM-compatible ones, have defined a completely different set of characters
>in this range, and so an Amiga character usually has no resemblance at all
>to its symbol printed by the printer.
>
>    My printer has the capability of printing most of the Amiga's extended
>characters, but I need some way to convert an Amiga printable character
>into an equivalent character on my printer. Can the device dependent
>printer code include a lookup table for translating printable characters
>before they are sent to the printer?  Or is there a way to force the device
>independent code to call some routine in the device dependent driver
>whenever a printable character is to be sent to the printer?  I don't want
>to have to run all of my text files through a separate filter before I send
>them out to the printer!
>
>    Thanks.
>    Richard Carlson
 
 
This was one of the features we added for 1.2...a mapping table to
allow you to choose the character(s) send to the printer for each
of the codes in the Amiga extended character set.  This character
mapping table is part of the printer dependent code, so can be
entirely different for each printer.  (We just got finished defining
tables for our current crop of printers).  As an added bonus, there's
a default table with halfway reasonable values for use in the general
case, or when you don't feel like defining a table of your own.
 
Anyway, it will be along with 1.2....
 
			andy
 
-- 
 
			andy finkel
			Commodore(Amiga)
			{ihnp4|seismo|allegra}!cbmvax!andy
		or	 pyramid!amiga!andy
 
Any expressed opinions are mine; but feel free to share.
 
I disclaim all responsibilities, all shapes, all sizes, all colors.
 
"Remember, no matter where you grow, there you are." - Buckaroo Bonsai.
       
===============================================================================
       

Newsgroups: net.micro.amiga
Path: decwrl!pyramid!amiga!eric
Subject: Re: printer driver character mapping question
Posted: 9 Jun 86 15:15:15 GMT
Organization: Commodore Business Machines, 1200 Wilson Drive, West Chester, PA
19380 
Keywords: device dependent printer driver
 
In article <[email protected]> [email protected] (Gary L. Crum) writes:
>I'm posting this article for u-rlcarl%utah-ug@utah-cs.{UUCP,ARPA} .
>
>    I am writing an Amiga device dependent printer driver, but am having a
>problem sending plain text to the printer..........
 
Actually, characters $A0 to $FF are defined by a lookup table in each 
printer's dependent code.  In 1.1, however, a default ExtendedCharTable is
used by all the drivers.  This table uses characters in the standard ASCII
set to to mimic those in the extended set (ie. 'L' is used in place of the
English pound sign).  In a forthcoming 1.2 release, each printer will
have its own table specifying how to print one these characters.  Where
supported (by each printer) the actual character is used.  In those instances
where a character (ISO $A0 - $FF) is not supported by a printer, an attempt
was made to use the printer's resources to produce a character as close as
possible to the ISO counterpart.                    
                               
	Eric Cotton
 
-- 
 
"My hovercraft is full of eels."
 
/*========================================================================*/
/*====    UUCP: {ihnp4 | allegra | seismo}!cbmvax!eric                ====*/
/*====      or: pyramid!amiga!eric                                    ====*/
/*====    ARPA: cbmvax!eric@seismo                                    ====*/
/*==== US mail: Commodore Technology                                  ====*/
/*====          1200 Wilson Drive                                     ====*/
/*====          West Chester, PA 19380                                ====*/
/*====   phone: (215) 431-9180                                        ====*/
/*========================================================================*/