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
Author: Fred Smith
Date: Sun, 03 Jun 1990 19:10
Date: Sun, 03 Jun 1990 19:10
47 lines
3027 bytes
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