[comp.sys.atari.st.tech] catch SLM DMA-calls --- How?

nico@cs.ruu.nl (Nico Verwer) (02/13/91)

I have a NEC SilentWriter LC-800 laserprinter.
It was cheap, but it doesn't understand postscript. All it can do is print
plain ascii (diablo emulation) and print bitmaps, apart from some exotic
features.
This is a shame, because I cannot use DTP programs now, or even print
DVI-files (the ones that are produced by TeX).

I have thought of the following:
The Atari SLM laserprinter is also not very smart. As far as I'm informed,
about all it can do is print bitmaps, which are built in memory. But there is
a lot of software which can use this capabitlity!
If only I could cath the SLM output, stick some LC-800 control codes in front
of it, and send it to the printerport. In other words: I'd like to make a
SLM-to-LC800 emulator.
This would not be too hard if the SLM were accessed via the printer port, via
the normal BIOS I/O routines. But here comes the problem: The SLM is accessed
via the DMA port, for speed.

Is there a way to catch the DMA-calls to the SLM, and redirect them to my
emulator, which drives the printerport? Of course, I still want my hard disk
to function properly.
Is there anyone out there who can give a hint on how to do this?

Thanks for any information,
--
Nico Verwer                                       | nico@cs.ruu.nl
Dept. of Computer Science, University of Utrecht  | phone: +31 30 533921
p.o. box 80.089, 3508 TB Utrecht, The Netherlands | fax:   +31 30 513791

apratt@atari.UUCP (Allan Pratt) (02/14/91)

nico@cs.ruu.nl (Nico Verwer) writes:
>about all [the SLM804] can do is print bitmaps, which are built in memory.

That's right.  But the WAY it prints bitmaps, and the way they are built,
and the way they get sent via DMA to the printer, are all pretty strange.

One thing you can do is have your program (whatever it is) write a page
image to memory, then use the DIAB630 software to send that page to the
printer.  There are escape codes which say, "Hey, printer driver! There's a
page image at location X in memory - print it!"

So if you can get a bitmap to appear in memory someplace, you can point
DIAB630 at it and it'll be printed.

============================================
Opinions expressed above do not necessarily	-- Allan Pratt, Atari Corp.
reflect those of Atari Corp. or anyone else.	  ...ames!atari!apratt