Breaking news: The QIMSI Interface
Re: Breaking news: The QIMSI Interface
Great Peter!
This is good news for the QL world, QIMSI will surely be very well received by all QL enthusiasts.
(Thinking about the possible use cases of QIMSI, a question: In the future, would it be possible to implement a new faster and more reliable serial port accessible from QDOS (via a SER3_ for example) using MiniQ68 and its 115200 buad serial port?)
Many thanks to Peter and all the collaborators for this development.
This is good news for the QL world, QIMSI will surely be very well received by all QL enthusiasts.
(Thinking about the possible use cases of QIMSI, a question: In the future, would it be possible to implement a new faster and more reliable serial port accessible from QDOS (via a SER3_ for example) using MiniQ68 and its 115200 buad serial port?)
Many thanks to Peter and all the collaborators for this development.
Re: Breaking news: The QIMSI Interface
Excellent newsjanbredenbeek wrote: ↑Sun Oct 08, 2023 8:26 amJust a little patience, work is in progress... it was held up by the lack of a PS/2 to USB keyboard converter on this side, but I've been able to create a makeshift one from an old USB cable and an old-style DIN jack (sorry Peter, still haven't received the one you sent me).
I have taken the source code from the Q68 driver and adapted it for QIMSI. On the first test it loaded OK without crashing, but when I tried typing something I got characters which didn't even remotely resemble the keys pressed. So still a little debugging to do, but it's under way.
Jan
![Smile :-)](./images/smilies/icon_e_smile.gif)
Thank you for your work in this area Jan
- janbredenbeek
- Super Gold Card
- Posts: 639
- Joined: Wed Jan 21, 2015 4:54 pm
- Location: Hilversum, The Netherlands
- Contact:
Re: Breaking news: The QIMSI Interface
It's very easy to disable the F1/F2 prompt in Minerva by changing just one byte in the startup code (the byte that sets the startup options as specified in the CALL 390 parameter). But again, this requires a modification to the ROM.Peter wrote: ↑Sun Oct 08, 2023 1:50 pm Yes the idea to use the external keyboard already for F1/F2 was why I was asking. But I agree that this is very unimportant. I mostly use my QLs as they are, within their wonderful original case. External keyboard was never a key feature of QIMSI, it is not a big deal to wait for the F1/F2 timeout.
At first this seems very easy if you have an add-on ROM (just let the initialisation routine push F1/F2 into channel #0's keyboard queue), but the snag is that after your initialisation code is finished the ROM opens channel #1 and #2 and then waits for F1/F2 to be pressed, using the *last* channel openedBy the way, we tried (with Wolfgang's help) to optionally "feed" an F1/F2 into the keyboard buffer from the driver ROM, but it never worked reliably with all hardware setups.
![Sad :(](./images/smilies/icon_e_sad.gif)
You could probably do something using a polled or scheduler task, but I wonder if that's worth the trouble since replacing the keyboard driver in the Sinclair ROMs is not that easy as they are not vectored, unlike in Minerva.
Meanwhile, I've found the error in my driver (it creates a polled task but doesn't check whether the PS/2 keyboard is really activated, so it calls Minerva's decode routine instead of its own one. And the BASIC command which is supposed to activate it wasn't linked in by error...). Oh well, these things can happen with first builds...
Jan
Re: Breaking news: The QIMSI Interface
That's almost exactly the plan. At first I even considered to give the QL direct access to the SER port. But for debugging, it is better to have it on the MiniQ68 side. Nevertheless, it is simple to write a little program for the MiniQ68 which just forwards the SER data to/from the QL-MiniQ68 FIFOs.
It takes a little more effort to write a SER driver for the QL side. I started doing that using the IO.SERIO trap, but my assembler skills are rusted and I'm not in the mood to finish it at the moment. Sooner or later I guess it will be done. This should allow decent SERNET connections to emulators on PC. Would probably call it SER4, so SER3 remains for Hermes.
Re: Breaking news: The QIMSI Interface
Anyway to have the miniQ68 be the main computer and use the QL for its I/O? Could it act like a GC with the right software? Is there any memory that comes with it?martyn_hill wrote: ↑Fri Oct 06, 2023 5:45 pm But I'm even more excited at the prospect of leveraging the embedded 'miniQ68' !!!
Re: Breaking news: The QIMSI Interface
No, it has not enough memory.
As you can see in the manual, QIMSI has only 32 KB + 12 KB ROM/RAM, so different software won't help.
I can not rule out to add external SDRAM at a later time for what would be a different product.
But right now, the goal is to provide affordable QL mass storage and mouse, and the hardware has been cost optimized for that.
I tried to make clear in the manual, what the key features of QIMSI are. The MiniQ68 is not a key feature. Please don't expect it to be well supported.
Re: Breaking news: The QIMSI Interface
I'm sorry Peter, I hadn't read the manual. I was just curious, that's all.Peter wrote: ↑Sun Oct 08, 2023 9:55 pm As you can see in the manual, QIMSI has only 32 KB + 12 KB ROM/RAM, so different software won't help.
I can not rule out to add external SDRAM at a later time for what would be a different product.
But right now, the goal is to provide affordable QL mass storage and mouse, and the hardware has been cost optimized for that.
I tried to make clear in the manual, what the key features of QIMSI are. The MiniQ68 is not a key feature. Please don't expect it to be well supported.
- janbredenbeek
- Super Gold Card
- Posts: 639
- Joined: Wed Jan 21, 2015 4:54 pm
- Location: Hilversum, The Netherlands
- Contact:
Re: Breaking news: The QIMSI Interface
Here is my QIMSI keyboard driver for Minerva. Source code and manual will be available on my GitHub page asap.
To get started:
LRESPR QIMSIKBD_bin
Then enter KBD_PS2 to activate the external keyboard; KBD_QL switches back to the QL's own keyboard.
KBD_TABLE_PS2 n sets the keyboard language, currently supported are n=1 (US), 44 (UK) and 49 (German).
Have fun,
Jan
To get started:
LRESPR QIMSIKBD_bin
Then enter KBD_PS2 to activate the external keyboard; KBD_QL switches back to the QL's own keyboard.
KBD_TABLE_PS2 n sets the keyboard language, currently supported are n=1 (US), 44 (UK) and 49 (German).
Have fun,
Jan