Q68 Powered Arcade Game

Anything QL Software or Programming Related.
User avatar
tofro
Font of All Knowledge
Posts: 2685
Joined: Sun Feb 13, 2011 10:53 pm
Location: SW Germany

Re: Q68 Powered Arcade Game

Post by tofro »

Zarchos wrote:
dilwyn wrote: I think SLUG works by putting delays in keyboard read systems IIRC, whereas Slowgold is written to use interrupts or scheduler lists IIRC (haven't got the sources to hand to check), so it's quite possible that both might be of use in situations where some software needs to be slowed down.
No way on the QL to do some consuming time CPU operations, triggered by a timer interrupt, synced to whatever the screen mode sync is ?
That is exactly what is hidden behind the "scheduler list" concept mentioned above - The scheduler is driven by basically the same 50/60Hz timer that also drives the vertical blank interrupt. Same concept, other name. A scheduler list is a routine address you hand over to the OS to be called during the 50Hz interrupt.

More differences: Because the scheduler lists also (obviously) fuel the scheduler (that is, a lot of code runs triggered from these lists), you cannot expect the same amount of predictability from this timer than you would expect from a system that has an otherwise unused VBI. A lot of game programmers on the original QL worked around this by effectively stopping the scheduler and running their game in supervisor mode. Whether this is beneficial (or needed) on the Q68 needs to be explored, as it also makes it difficult to call OS routines.

On the original QL, because of its OS (and, thus, the trap vectors) living in ROM, there is no other way to redirect the VBI to your own code. The Q68, having the vectors in RAM, could in fact do differently.

Tobias


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
User avatar
Zarchos
Trump Card
Posts: 152
Joined: Mon May 08, 2017 11:49 am

Re: Q68 Powered Arcade Game

Post by Zarchos »

Thanks Tobias, very clear explainations, highly appreciated.


Owner of various QLs including accelerated beasts, and also a happy Q68 owner ;)
Now porting SOTB to the Archies, to then port it to the Q68.
https://www.youtube.com/user/Archimedes ... +%28100%25
User avatar
janbredenbeek
Super Gold Card
Posts: 629
Joined: Wed Jan 21, 2015 4:54 pm
Location: Hilversum, The Netherlands

Re: Q68 Powered Arcade Game

Post by janbredenbeek »

tofro wrote: That is exactly what is hidden behind the "scheduler list" concept mentioned above - The scheduler is driven by basically the same 50/60Hz timer that also drives the vertical blank interrupt. Same concept, other name. A scheduler list is a routine address you hand over to the OS to be called during the 50Hz interrupt.
One small correction: there are actually two lists; the polled interrupt list (called 50/60 times per second, even in supervisor mode) and the scheduler list (only called in user mode). The frequency of the scheduler list is undetermined; it gets called each time the scheduler is entered (at least 50/60 times a second) but this can vary from zero (when in supervisor mode) to many times (when the machine is idle waiting for I/O and the scheduler just loops around). There is however a parameter passed to each routine which indicates how much time has passed since the last call (in 50/60ths of a second).
On the original QL, because of its OS (and, thus, the trap vectors) living in ROM, there is no other way to redirect the VBI to your own code. The Q68, having the vectors in RAM, could in fact do differently.
Both lists are linked lists originally in ROM, but you can add your own routines and link them using QDOS MT.LPOLL and MT.LSCHD calls and then they will get executed in front of the ROM routines.

Jan.


User avatar
Zarchos
Trump Card
Posts: 152
Joined: Mon May 08, 2017 11:49 am

Re: Q68 Powered Arcade Game

Post by Zarchos »

What does the Q68 offers to set the address of the video DMA ?
How precise in terms of bytes is it ?

Also : are the size of the borders programmable ?

A list and description of all hardware registers of the video chip, and the memory controller, would be great to know what could be achieved.

All this is interesting for hardware scrolling (saving a lot of time compared to moving an entire screen using the CPU).


Owner of various QLs including accelerated beasts, and also a happy Q68 owner ;)
Now porting SOTB to the Archies, to then port it to the Q68.
https://www.youtube.com/user/Archimedes ... +%28100%25
User avatar
Peter
QL Wafer Drive
Posts: 1953
Joined: Sat Jan 22, 2011 8:47 am

Re: Q68 Powered Arcade Game

Post by Peter »

Zarchos wrote:What does the Q68 offers to set the address of the video DMA ?
The Q68 has no DMA.
Zarchos wrote:Also : are the size of the borders programmable ?
There is no overall border, the full screen size is used. You can use windows if you want a border, see QDOS and SMSQ/E manuals.
Zarchos wrote:A list and description of all hardware registers of the video chip, and the memory controller, would be great to know what could be achieved.
There is the QL's MC.STAT register for QL hardware compatibility and the Minerva second screen, which you can ignore for highcolour.
One should use SMSQ/E DISP_MODE command to switch modes, not register access. Beyond that, read the manual - but there is not much.
Zarchos wrote:All this is interesting for hardware scrolling
As mentioned earlier, there is no hardware accelleration (on all QL style machines).


User avatar
Zarchos
Trump Card
Posts: 152
Joined: Mon May 08, 2017 11:49 am

Re: Q68 Powered Arcade Game

Post by Zarchos »

I don't get it, about video DMA.
How can the visible screen be displayed on screen if there is not the reading, under DMA, of a memory area, to then, through the video chip, serialise, and sync the data to send them to a DAC then outputting RGB or VGA signals ?

I can understand this video DMA address is not accessible, but it has to exist electronically speaking (or else I'd be curious to read hiw the elctronics of the QL works).
Same for H-Sync.

Slightly amending the VHDL code to make this video DMA address writable would be a very interesting feature.
Same idea to get a toggable on/off H-Sync interrupt.
That would be more than great, and would open a lot of new features, with near 0%CPU cost.


Owner of various QLs including accelerated beasts, and also a happy Q68 owner ;)
Now porting SOTB to the Archies, to then port it to the Q68.
https://www.youtube.com/user/Archimedes ... +%28100%25
User avatar
Peter
QL Wafer Drive
Posts: 1953
Joined: Sat Jan 22, 2011 8:47 am

Re: Q68 Powered Arcade Game

Post by Peter »

Zarchos wrote:I don't get it, about video DMA.
I thought you were inquiring a programmable DMA controller.
Of course, data is read from SDRAM by the video controller.
Zarchos wrote:Slightly amending the VHDL code to make this video DMA address writable would be a very interesting feature.
It is not VHDL, but schematics and Verilog. I don't have the time to explain the Q68 video controller here, but believe me, the issue is complex. Work on other places has higher priority for me.


User avatar
Zarchos
Trump Card
Posts: 152
Joined: Mon May 08, 2017 11:49 am

Re: Q68 Powered Arcade Game

Post by Zarchos »

Peter wrote:
Zarchos wrote:I don't get it, about video DMA.
I thought you were inquiring a programmable DMA controller.
Of course, data is read from SDRAM by the video controller.
Zarchos wrote:Slightly amending the VHDL code to make this video DMA address writable would be a very interesting feature.
It is not VHDL, but schematics and Verilog. I don't have the time to explain the Q68 video controller here, but believe me, the issue is complex. Work on other places has higher priority for me.
Very well understood.
You gave enough infos to know what is available, or not, with your marvel ;-)


Owner of various QLs including accelerated beasts, and also a happy Q68 owner ;)
Now porting SOTB to the Archies, to then port it to the Q68.
https://www.youtube.com/user/Archimedes ... +%28100%25
User avatar
tofro
Font of All Knowledge
Posts: 2685
Joined: Sun Feb 13, 2011 10:53 pm
Location: SW Germany

Re: Q68 Powered Arcade Game

Post by tofro »

Zarchos wrote:Slightly amending the VHDL code to make this video DMA address writable would be a very interesting feature.
Even if that's tempting:

I'm pretty sure that modifying the hardware and everyone having a slightly different implementation in their Q68 would not help with software availability. There's enough possible targets in the QL world already.

Tobias
(Who finds most of his challenges in retro computing in living within the given limits of the hardware rather than removing them - If I'd want super-fast 3D-accelerated graphics, I'd buy a PC ;) )


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
User avatar
Zarchos
Trump Card
Posts: 152
Joined: Mon May 08, 2017 11:49 am

Re: Q68 Powered Arcade Game

Post by Zarchos »

tofro wrote:
Zarchos wrote:Slightly amending the VHDL code to make this video DMA address writable would be a very interesting feature.
Even if that's tempting:

I'm pretty sure that modifying the hardware and everyone having a slightly different implementation in their Q68 would not help with software availability. There's enough possible targets in the QL world already.

Tobias
(Who finds most of his challenges in retro computing in living within the given limits of the hardware rather than removing them - If I'd want super-fast 3D-accelerated graphics, I'd buy a PC ;) )
Agreed.
I only wanted to express things which would have been easy to implement on the Archie (hardware H-Sync) and that Acorn missed, having no interest in having the Archies a little bit more gaming oriented ... At the time, had it been availbale from day one (instead of 28 years later) it could have changed A LOT ...
Don't misunderstand me : I just love the Q68 for what it is, and whatit will offer : it is a great device, and it will be very interesting (and challenging), to try to use it to its max, in particular if the incentive is there, thanks to putting efforts in common.
That's the power of a community, to me.


Owner of various QLs including accelerated beasts, and also a happy Q68 owner ;)
Now porting SOTB to the Archies, to then port it to the Q68.
https://www.youtube.com/user/Archimedes ... +%28100%25
Post Reply