🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.msdos.programmer
1 messages
1 total messages Started by Fred Smith Sun, 03 Jun 1990 19:10
Programming the Parallel Printer Port
#503
Author: Fred Smith
Date: Sun, 03 Jun 1990 19:10
47 lines
3027 bytes
I am attempting, for various reasons too boring to discuss here to figure out
how to program the parallel printer port on my XT clone in such a way as to 
be able to drive the printer via interrupts. I have exhausted my knowledge
(as well as a good bit of guesswork) of how to do this to no avail. It is my
sincere hope that there is some kind person out there in news-land who knows
how to do this (or who knows more than I, anyhow) and who will be willing to
pass the information on to me.

I know that many older parallel ports are reputed to not generate interrupts
reliably, but I have reason to believe that mine does work properly. It is
the printer port built into the Taiwanese clone Hercules graphics card I have,
and I have a shareware print spooler that can use interrupts which works just
peachy with LPT1 (the clone Herc card), while failing miserably with LPT2
(the multifunction card in the machine). I must mention that both ports also
work fine when interrupts are NOT enabled by the spooler.

Now, here is how I am trying to program the sucker:

1: read from the printer control port the current settings.
2: read from port 0x21 the current setting of the 8259 programmable
   interrupt controller.
3: mask off the bit that enables interrupts (it should already be off)
   to ensure that it won't try to interrupt me while I am swapping vectors,
   and write this value back to the printer control port.
4: get (from DOS) the current vector for INT0Fh
5: install the vector for the new (my) interrupt service routine.
6: send a reset to the printer port
7: mask off the high-order bit (bit 7) of the value read in step 2 and
   write it back to the PIC. This should allow IRQ7 to interrupt the 
   processor chip.
8: enable interrupts on the printer port by taking the value read in step
   1 , ORing it with 0x10, and writing it back to the printer control port.

Now, having done this no interrupts occur. I have put a counter into the
ISR which increments when it is called and it does not change. I have tried
"priming the pump", so to speak, by blasting a character to the printer
data port as the last step in the process followed by strobing the sucker.
I have tried taking the printer off and back on-line. None of this works.
I am left to the conclusion that I have overlooked something important.
All help would be appreciated!

Please reply by e-mail, not by replying, as my site does not receive some
of the groups to which this is posted.

Fred Smith

uunet!samsung!wizvax!fredex
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads