Another question for Peter
Another question for Peter
Hi Peter,
Would I be correct in assuming that IRQ3 and IRQ4 on the Q40 ISA bus will only set bit 2 on the interrupt register, whereas IRQ2, 5, 6, 7, 10, 11, 14 & 15 will only set bit 4?
Would I be correct in assuming that IRQ3 and IRQ4 on the Q40 ISA bus will only set bit 2 on the interrupt register, whereas IRQ2, 5, 6, 7, 10, 11, 14 & 15 will only set bit 4?
Last edited by Nix on Sun Nov 24, 2024 1:34 pm, edited 2 times in total.
KaOS creator
-
- Font of All Knowledge
- Posts: 4610
- Joined: Mon Dec 20, 2010 11:40 am
- Location: Sunny Runcorn, Cheshire, UK
Re: A question for Peter (unless anyone else knows the answer)
Hi,Nix wrote: Tue Oct 01, 2024 10:25 pm Hi Peter,
Would I be correct in assuming that IRQ3 and IRQ4 on the Q40 ISA bus will only set bit 2 on the interrupt register, whereas IRQ2, 5, 6, 7, 10, 11, 14 & 15 will only set bit 4?
I am sorry, I am not Peter...
But if you read the Q40/Q60 Main Board User manual Page 15, there is information you reqwire:
The ISA I/O Card I used to fit to the Q60 has an information sheet:
Here is eaxmple setting for the ISA I/O Cards, which details IRQ setting for the Serial and Parallel Ports:
Regards,
Derek
Derek
Re: A question for Peter (unless anyone else knows the answer)
Thanks Derek, but I already have this information. This is about the master chip register and how it responds to the IRQs presented on the ISA bus.
KaOS creator
Re: A question for Peter (unless anyone else knows the answer)
Yes, you are correctNix wrote: Tue Oct 01, 2024 10:25 pm Would I be correct in assuming that IRQ3 and IRQ4 on the Q40 ISA bus will only set bit 2 on the interrupt register, whereas IRQ2, 5, 6, 7, 10, 11, 14 & 15 will only set bit 4?

Re: A question for Peter (unless anyone else knows the answer)
Another question: Interrupts again
I'm having a bit of difficulty with serial port interrupts in that once triggered, it just jabbers continuously and I can't seem to stop it. Unlike the frame interrupt and DAC interrupt, there doesn't appear to be any register to acknowledge ISA interrupts.
Is there something quirky I'm missing?
Addendum: it appears that IRQ3 (and possibly 4) are unaffected by the external interrupt enable register.
I'm having a bit of difficulty with serial port interrupts in that once triggered, it just jabbers continuously and I can't seem to stop it. Unlike the frame interrupt and DAC interrupt, there doesn't appear to be any register to acknowledge ISA interrupts.
Is there something quirky I'm missing?
Addendum: it appears that IRQ3 (and possibly 4) are unaffected by the external interrupt enable register.
KaOS creator
Re: Another question for Peter (unless anyone else knows the answer)
Ok, this is weird.
I'm trying to get interrupt driven serial IO working.
I currently have SER1 (COM1 0x3f8) being used as a polled debug port (no interrupts)
I am using SER2 (COM2 0x2f8 IRQ 3) for my test device.
Initially, I found that IRQ 3 jabbered incessantly regardless of the state of the Q40 external interrupt enable register (MC offset 0x10). However, this was due to the UART being left with its IER set after loading my ROM.
This happened when data was received before the driver had been installed into the kernel. Solution, forcibly reset the UART IER register on kernel initialisation.
This successfully shut it up.
The next issue is that when the driver is installed, it is attached to the IRQ handler, and the UART's IER reg is still set to 0. Only when the port is opened does it allow the interrupts and the UART's IER register is set to 0x0F.
But now, there is nothing. No interrupt is triggered regardless of the state of the Q40 external interrupt enable register.
Nothing in the Q40 interrupt register (yet clock ticks and keyboard activity works as expected).
Nothing in the External Interrupt register (offset 0x04)
I don't understand what's happening
I'm trying to get interrupt driven serial IO working.
I currently have SER1 (COM1 0x3f8) being used as a polled debug port (no interrupts)
I am using SER2 (COM2 0x2f8 IRQ 3) for my test device.
Initially, I found that IRQ 3 jabbered incessantly regardless of the state of the Q40 external interrupt enable register (MC offset 0x10). However, this was due to the UART being left with its IER set after loading my ROM.
This happened when data was received before the driver had been installed into the kernel. Solution, forcibly reset the UART IER register on kernel initialisation.
This successfully shut it up.
The next issue is that when the driver is installed, it is attached to the IRQ handler, and the UART's IER reg is still set to 0. Only when the port is opened does it allow the interrupts and the UART's IER register is set to 0x0F.
But now, there is nothing. No interrupt is triggered regardless of the state of the Q40 external interrupt enable register.
Nothing in the Q40 interrupt register (yet clock ticks and keyboard activity works as expected).
Nothing in the External Interrupt register (offset 0x04)
I don't understand what's happening

KaOS creator
Re: Another question for Peter
It seems that IRQ 3 (dunno about 4) is completely unaffected by the external interrupt enable register, and the only way I can stop it jabbering is to read IIR and then RHR on the UART.
KaOS creator
- Mark Swift
- Bent Pin Expansion Port
- Posts: 81
- Joined: Fri Jul 18, 2014 9:13 am
- Location: Blackpool, Lancs, UK
- Contact:
Re: Another question for Peter
Hi,
I don't know if this will be of any use diagnosing your issue but sometimes looking at similar code to your own can help.
So here is the SER related QDOS Classic source files for Q40/ISA/16650.
I don't know if this will be of any use diagnosing your issue but sometimes looking at similar code to your own can help.
So here is the SER related QDOS Classic source files for Q40/ISA/16650.
Re: A question for Peter (unless anyone else knows the answer)
Hi, sorry didn't see that you already posted on Nov 22.
You need to look into the documentation of the ISA devices, which is not part of the mainboard manual.
Quoting the manual regarding External Interrupt Enable Register: "request from external interrupt lines 2..7"
Interrupt line 0 (IRQ 3 Com 2/4) and interrupt line 1 (IRQ 4 Com 1/3) are not affected.
In the comments of the PLD source I see that I had removed the serial port from the enable register at some point.
This was probably following the request of one of the OS authors.
Few months ago I gifted one of my last cards to a Linux developer, who was using a crappy 16450 card and also had serial port problems.
With a working card, all was fine. You need a decent ISA card with 16550.
The ISA devices are not part of the mainboard, so they can not be acknowledged by mainboard registers.Nix wrote: Fri Nov 22, 2024 9:48 pm Unlike the frame interrupt and DAC interrupt, there doesn't appear to be any register to acknowledge ISA interrupts.
You need to look into the documentation of the ISA devices, which is not part of the mainboard manual.
Yes, just as documented.Nix wrote: Fri Nov 22, 2024 9:48 pm Addendum: it appears that IRQ3 (and possibly 4) are unaffected by the external interrupt enable register.
Quoting the manual regarding External Interrupt Enable Register: "request from external interrupt lines 2..7"
Interrupt line 0 (IRQ 3 Com 2/4) and interrupt line 1 (IRQ 4 Com 1/3) are not affected.
In the comments of the PLD source I see that I had removed the serial port from the enable register at some point.
This was probably following the request of one of the OS authors.
Sounds like a hardware problem, likely a faulty or unsuitable ISA I/O card.Nix wrote: Sun Nov 24, 2024 1:33 pm But now, there is nothing. No interrupt is triggered regardless of the state of the Q40 external interrupt enable register.
Few months ago I gifted one of my last cards to a Linux developer, who was using a crappy 16450 card and also had serial port problems.
With a working card, all was fine. You need a decent ISA card with 16550.