New Minerva ROMs for Q68

Anything QL Software or Programming Related.
User avatar
janbredenbeek
Super Gold Card
Posts: 629
Joined: Wed Jan 21, 2015 4:54 pm
Location: Hilversum, The Netherlands

New Minerva ROMs for Q68

Post by janbredenbeek »

New Minerva ROM images have been released for the Q68. These contain an improved keyboard driver. Key auto-repeat is now supported as well as job switching using CTRL-C, and IPC KEYROW emulation.

The ROM images can be found at: https://github.com/SinclairQL/Minerva4Q68

Jan.


User avatar
Dave
SandySuperQDave
Posts: 2765
Joined: Sat Jan 22, 2011 6:52 am
Location: Austin, TX
Contact:

Re: New Minerva ROMs for Q68

Post by Dave »

Good work!

Thank you, Jan.


User avatar
Peter
QL Wafer Drive
Posts: 1953
Joined: Sat Jan 22, 2011 8:47 am

Re: New Minerva ROMs for Q68

Post by Peter »

Cool. Many thanks! Also interesting would be MODE4 1024x768, which is no problem under Minerva, but unlike emulators it would not be nice to patch at startup.
Does it make sense to re-define F4 on boot, which is least likely to be used? Or add F5? Other ideas?


User avatar
janbredenbeek
Super Gold Card
Posts: 629
Joined: Wed Jan 21, 2015 4:54 pm
Location: Hilversum, The Netherlands

Re: New Minerva ROMs for Q68

Post by janbredenbeek »

Peter wrote:Cool. Many thanks! Also interesting would be MODE4 1024x768, which is no problem under Minerva, but unlike emulators it would not be nice to patch at startup.
Does it make sense to re-define F4 on boot, which is least likely to be used? Or add F5? Other ideas?
It would be fairly easy to add a DISP_MODE command, or perhaps redefine the MODE command itself, in the extension ROM space (or just a LRESPRable extension). Minerva's SCR/CON driver has to be modified too since the display size and video buffer's address will have changed. This is not too difficult as the linkage blocks are in RAM, but I'm not sure how this will interact with the PE extension.
Apart from that, it would also be nice if the startup options of Minerva itself (the 'CALL 390' parameter) were configurable (using a CONFIG block or configuration longword somewhere towards the end) so it would start up with a desired configuration and retain it when doing a reset (e.g. CTRL-SHIFT-ALT-TAB). This requires modifying the Minerva code, and could be part of a bigger plan to replace redundant MDV code with e.g. Q68 serial and network code. Obviously this version of Minerva would then be specific for the Q68 hardware (rather than the current version, which only has two minor changes to limit RAM to 16MB and avoid corruption of the Q68 RTC). My aim is to keep a single code base for Minerva, while hardware-specific builds can be generated by setting specific build options (like SMSQ/E).

Jan.


User avatar
Peter
QL Wafer Drive
Posts: 1953
Joined: Sat Jan 22, 2011 8:47 am

Re: New Minerva ROMs for Q68

Post by Peter »

janbredenbeek wrote:It would be fairly easy to add a DISP_MODE command, or perhaps redefine the MODE command itself, in the extension ROM space (or just a LRESPRable extension). Minerva's SCR/CON driver has to be modified too since the display size and video buffer's address will have changed. This is not too difficult as the linkage blocks are in RAM, but I'm not sure how this will interact with the PE extension.
That's why I thought it might be easier at startup with an F key, and not at runtime.
janbredenbeek wrote:Obviously this version of Minerva would then be specific for the Q68 hardware (rather than the current version, which only has two minor changes to limit RAM to 16MB and avoid corruption of the Q68 RTC).
I forgot what exactly caused the RTC corruption. Surely an issue that would best be fixed inside the FPGA, but not a good idea to update all the boards for such a minor issue. If you like, we can re-read the RTC in extra ROM, so this patch in main Minerva can be eliminated. Please let me know if you want a code snippet for that.
janbredenbeek wrote:My aim is to keep a single code base for Minerva, while hardware-specific builds can be generated by setting specific build options (like SMSQ/E).
Yes, and ideally the base ROM could remain the QL version, everything else in extra ROM. Is there a way to fix the 16 MB issue in Q68 extra ROM?


User avatar
janbredenbeek
Super Gold Card
Posts: 629
Joined: Wed Jan 21, 2015 4:54 pm
Location: Hilversum, The Netherlands

Re: New Minerva ROMs for Q68

Post by janbredenbeek »

Peter wrote:
janbredenbeek wrote:It would be fairly easy to add a DISP_MODE command, or perhaps redefine the MODE command itself, in the extension ROM space (or just a LRESPRable extension). Minerva's SCR/CON driver has to be modified too since the display size and video buffer's address will have changed. This is not too difficult as the linkage blocks are in RAM, but I'm not sure how this will interact with the PE extension.
That's why I thought it might be easier at startup with an F key, and not at runtime.
The F keys cannot be changed without modifying Minerva code. One possibility is using SX.CASE (Ctrl/Alt/Shift/Enter) to call your own routine from the keyboard extension ROM, but that's rather tricky as it executes within the polled interrupt code.
In any case, we either have to modify the Minerva SCR/CON driver or front-end it with new code to cater for mode changes and different screen base and size.
I forgot what exactly caused the RTC corruption. Surely an issue that would best be fixed inside the FPGA, but not a good idea to update all the boards for such a minor issue. If you like, we can re-read the RTC in extra ROM, so this patch in main Minerva can be eliminated. Please let me know if you want a code snippet for that.
It's caused by a word-sized write access to PC.TCTRL at $18002 at startup. I've changed it to two byte-sized accesses to avoid the issue.
Yes, and ideally the base ROM could remain the QL version, everything else in extra ROM. Is there a way to fix the 16 MB issue in Q68 extra ROM?
The 16MB issue has its cause in the slave block system. For every 512 bytes of RAM there must be one slave block, so more than 16MB RAM means more than 32K of slave blocks which causes word-sized pointers to overflow. Apart from that, the file system will slow down significantly while searching a large slave block table so it's even desirable to have less than 16MB. Fixing this would require a major rewrite of the memory allocation scheme (in SMSQ, the slave blocks are limited to the first 1MB and allocating in the Common Heap actually allocates memory in TRNSP to avoid eating up slave block space).
Minerva for Q68 will not enforce the 16MB limit (unless you set bit 2 in a CALL 390) so will still work on BBQLs or emulators with less memory.

Jan.


User avatar
Peter
QL Wafer Drive
Posts: 1953
Joined: Sat Jan 22, 2011 8:47 am

Re: New Minerva ROMs for Q68

Post by Peter »

janbredenbeek wrote:The 16MB issue has its cause in the slave block system.
I would surely not want more slave blocks - I just meant wether the RAM reduction could somehow be achieved without patching the original ROM. But if the patch has no side effects for the QL, it's all fine.


User avatar
RalfR
Aurora
Posts: 870
Joined: Fri Jun 15, 2018 8:58 pm

Re: New Minerva ROMs for Q68

Post by RalfR »

janbredenbeek wrote: The F keys cannot be changed without modifying Minerva code. One possibility is using SX.CASE (Ctrl/Alt/Shift/Enter) to call your own routine from the keyboard extension ROM, but that's rather tricky as it executes within the polled interrupt code.
In any case, we either have to modify the Minerva SCR/CON driver or front-end it with new code to cater for mode changes and different screen base and size.
Not sure, if I understand all correctly. You want Minerva to start with another view as the standard MODE 8? Martin Berndt has modified a quite early Minerva (bought in Eindhoven from QView), so it starts with mode 4 in black/black, as we always used Mode 4. This was quite easy for him to modify.

If this is, what you mean, I can look for the binary, beeing sure to have it on one of my disks.

Cheers...Ralf


4E75 7000
User avatar
Dave
SandySuperQDave
Posts: 2765
Joined: Sat Jan 22, 2011 6:52 am
Location: Austin, TX
Contact:

Re: New Minerva ROMs for Q68

Post by Dave »

Somebody just write a new filing system already!


User avatar
dilwyn
Mr QL
Posts: 2753
Joined: Wed Dec 01, 2010 10:39 pm

Re: New Minerva ROMs for Q68

Post by dilwyn »

Is there a specific reason why QDOS was implemented on Q68? For example, to give a choice, or to run/test software on it, or to just see if it could be done?

Good to have a choice, of course.


Post Reply