New discovery? 'Life' by CAT Systems Ltd

Anything QL Software or Programming Related.
User avatar
Chr$
QL Wafer Drive
Posts: 1304
Joined: Mon May 27, 2019 10:03 am
Location: Sachsen, Germany
Contact:

Re: New discovery? 'Life' by CAT Systems Ltd

Post by Chr$ »

I wonder how I got it to work for the original qemulator screenshots then! I know that I was playing around with F1/F2 mode and that I was also entering Mode 4/Mode 8 after boot. Can't remember if it was Minerva or JS now though, but it certainly worked.

Thanks for the fixes.


https://QXL.WIN
Collector of QL related computers, accessories and QL games/software.
Ask me about felt pads - I can cut them to size and they have proved excellent for mdv data recovery.
User avatar
bwinkel67
QL Wafer Drive
Posts: 1187
Joined: Thu Oct 03, 2019 2:09 am

Re: New discovery? 'Life' by CAT Systems Ltd

Post by bwinkel67 »

mk79 wrote:I think there is more to it than meets the eye. As far as I can see it makes use of the second screen, meaning Minerva is needed. And it seems to switch mode mid-screen, meaning that the top part is displayed in mode 4 and the actual life part is displayed in mode 8. Quite tricky and will not work in QemuLator, only on original 50Hz QLs (have yet to try). For QemuLator the best bet is to boot it F4 mode, making everything mode 8. Text won't fit then but will work okay enough.
Cool...I saw a video on Elite for the BBC Mivto where it did the same thing (just inverted) so the display would be high-res but the radar would be in color. Has that technique been used on other QL programs?


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

Re: New discovery? 'Life' by CAT Systems Ltd

Post by RalfR »

bwinkel67 wrote:Has that technique been used on other QL programs?
Yes, ACT from Steve Sutton has used mixed Mode 4 and Mode 8 on a standard QL. Do not know, how he has managed this, but it worked.


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

Re: New discovery? 'Life' by CAT Systems Ltd

Post by dilwyn »

bwinkel67 wrote:
mk79 wrote:I think there is more to it than meets the eye. As far as I can see it makes use of the second screen, meaning Minerva is needed. And it seems to switch mode mid-screen, meaning that the top part is displayed in mode 4 and the actual life part is displayed in mode 8. Quite tricky and will not work in QemuLator, only on original 50Hz QLs (have yet to try). For QemuLator the best bet is to boot it F4 mode, making everything mode 8. Text won't fit then but will work okay enough.
Cool...I saw a video on Elite for the BBC Mivto where it did the same thing (just inverted) so the display would be high-res but the radar would be in color. Has that technique been used on other QL programs?
I had this on my hard drive, not sure where I got it from (hope it's not copyrighted). A short piece of assembler and a BASIC program showing how to apply a split screen mode, with mode 4 in one half and mode 8 in the other.
splitmode.zip


User avatar
vanpeebles
Commissario Pebbli
Posts: 2816
Joined: Sat Nov 20, 2010 7:13 pm
Location: North East UK

Re: New discovery? 'Life' by CAT Systems Ltd

Post by vanpeebles »

RalfR wrote:
bwinkel67 wrote:Has that technique been used on other QL programs?
Yes, ACT from Steve Sutton has used mixed Mode 4 and Mode 8 on a standard QL. Do not know, how he has managed this, but it worked.
From ACT Manual:

1.7.3 Split-MODE Screens
This feature is added by the use of a machine-code routine built into the ACT system when you use either of the special versions of LAST_dta that incorporate the additional code required to support illustrations. The use of split modes allows the illustrations of an adventure to be in mode 8, that is to use 8 display colours, while allowing the text to be in mode 4 and so benefit from smaller character size and increased amount of text on screen. A problem can occur when using split-mode screens on some QLs with some types of memory expansion. Depending on the type of memory expansion installed, it is possible for the code that controls the mode switching to "switch" at the wrong place on the screen. This is only likely to happen if you are using large areas from the Common Heap. As one example, most types of RAM disks will certainly cause problems if used in a game.

If you find that the mode change occurs before the end of the picture window while testing your game, you should re-start the test after removing whatever program or facility is occupying low memory. If in doubt, re-boot and re-run your game without running any other jobs first.This problem will not normally occur when most other programs are running along with your game, and it should never happen on an unexpanded QL.

7.4 More About ACT's Split-MODE Screens
In order to provide you with the maximum flexibility for the presentation of your game, we have left a number of options open to you, which, if all are used simultaneously, may produce unpredictable results. If split mode and the QFILL routines are used at the same time, flickering can occur at the top of the text window.

The two program-merge files mentioned in the preceding two sections contain the required code to support the screen's Split-Mode facility. In addition a switch is included to permit the feature to be switched ON or OFF when the game is first run.

The control of this is achieved through the spare Location 0 parameter number 2 bit flags 2 to 4. Bit 2 will directly control the operation of all of the CALLs (described in Section 1.7.3) to the Split routine; the flag must be set to enable the CALLs. Bits 3 and 4 are used by the new routine check_for_mode in the player program and tell it when to operate. A few additional lines in the EVENT program are also involved. You can use the program startup feature as it stands, or permanentlyenable or disable the split feature by:
a) editing the LOCN_dta file (with the LOCedt utility) to set Location #0 parameter #2 bit #2 as required; and
b) removing the following lines from the two merge files before using them to create their new PROG_dta file.
Player_Prog_Additions: Delete 155, 156, and 30620 to 30760.
Event_Prog_Additions : Delete 1063 and 1064.

As we have said many a time before, you should be aware that the split screen puts a great demand on processor time. The use of half-screen pictures noticeably delays the speed of the Mini_Adventure program. This
time penalty is increased for larger pictures. For this reason the use of pictures larger than half-screen is not recommended. The Split Screen mode available with ACT relies on a software timer that is set up to switch the QL's hardware between MODE 4 and MODE 8 at the correct point in each screen-refresh cycle. This timer-and-switching function is set up as a polled routine within the QL and relies on being started at the correct point in the correct screen display cycle, so that the mode switch is in the desired place on the screen, between the text and the picture windows.

This normally works reliably, provided nothing happens to delay the starting of the polled routine. It is possible, however, for certain other jobs in the QL to delay the start of the polled routine. In particular, the use of microdrives has such an effect. For this reason mode switching is disabled while a microdrive is running.

We do not generally recommend the use of repeating fills with an ACT adventure if the split-mode screen is also to be used. If you wish to combine both of these features in your game, we suggest that you keep the JOB priority of the repeating fills (set within Graphics Designer) to very low values AND have no more than one or two such fills active at any time. If you are planning your game for commercial release, we suggest that you make some comment about the possibility of any text-window flicker in the documentation accompanying your game.

Certain types of memory expansion can cause problems when using split modes in your display. This problem and some possible cures are detailed at the end of Section 1.7.3.


User avatar
tofro
Font of All Knowledge
Posts: 2685
Joined: Sun Feb 13, 2011 10:53 pm
Location: SW Germany

Re: New discovery? 'Life' by CAT Systems Ltd

Post by tofro »

The point is, the QL has only one reliable timing source, the 50/60Hz polling interrupt. This enables a software routine to detect the start of a screen frame. If you want to switch modes within that frame (which is the thing such programs do), the only way to determine the exact point in time (determining where the division line between the MODE8 and MODE4 part is going to be) is through a timed software loop in the interrupt service routine. Because the execution speed of an individual QL may vary wildly (depending whether it has an internal or external memory expansion, make of that and wait states introduced, not to mention Gold and SuperGold cards or other hardware expansions that use the polling interrupt, or god beware, external interrupt routines), such a timed software loop may or may not properly work (and because there is no finer-grained timing source than the polling interrupt, such programs can also not self-adjust).

All in all, it's a bit of a lucky game whether dual-mode screens work or don't. while it might work on one system, it might totally fail on others.


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
Derek_Stewart
Font of All Knowledge
Posts: 3929
Joined: Mon Dec 20, 2010 11:40 am
Location: Sunny Runcorn, Cheshire, UK

Re: New discovery? 'Life' by CAT Systems Ltd

Post by Derek_Stewart »

Hi,

There is a demo of split mlode in the QUanta Library, in Disk UG02

I think this is what Dilwyn posted earlier.


Regards,

Derek
Post Reply