| 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
|
| 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
|
|
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 ====*/
/*========================================================================*/
|