Page 1 of 2

QL MODE 8 Flash Bit

Posted: Fri Oct 27, 2017 5:48 pm
by Peter
Hi,

today I noticed that my MODE 8 Flash Bit implementation in the Q68 was never completed. It is 11 years ago that I designed the video controller, and now I don't even remember how exactly the QL hardware used that bit at all. Especially, I don't know how the background colour for the flashing area is determined!

Could anyone enlighten me? Quick reply would be nice, release date nearing quickly...

All the best, Peter

Re: QL MODE 8 Flash Bit

Posted: Fri Oct 27, 2017 6:10 pm
by M68008
Flash has an off state - when the flash bit is ignored - alternating with an on state.
In the on state, the flash bit acts as a toggle: when the flash bit is encountered, that pixel color is also used for the following pixels, until either there is another flash bit set or the end of the scan line.
A flashing character has a vertical line of background pixels to the left and right where the background color is marked with the flash bit.

Re: QL MODE 8 Flash Bit

Posted: Fri Oct 27, 2017 9:29 pm
by Nasta
It is doubtful anyone would even notice the 'problem' :)
I did not bother with it on Aurora... it would have been much better if it was a 4th bit for 16 colors, but that's unfortunately water long gone under the bridge.
Also an addendum to the above descrioption:
There is a frame counter (6 bit), flash function is only active 32 frames out of 64 (hence flash) otherwise it would act more as a 'hold color' bit. Again, they could have implemented a 'hold and modify' scheme with it but... oh, well...

Re: QL MODE 8 Flash Bit

Posted: Fri Oct 27, 2017 10:01 pm
by Peter
I can not understand why David Karlin made this decision, adding hardware complexity for no benefit and bringing QL colour depth below the Spectrum.

I have just completed it on the Q68 now (not trivial on a machine that quadruples and tripels pixels).

Only to find out that SMSQ/E does not support FLASH. It works under QDOS Classic/Minerva though.

Remark about the ambigous "until either there is another flash bit set". "Until" means the after that pixel, not at that pixel.

Re: QL MODE 8 Flash Bit

Posted: Fri Oct 27, 2017 11:25 pm
by janbredenbeek
Peter wrote:I can not understand why David Karlin made this decision, adding hardware complexity for no benefit and bringing QL colour depth below the Spectrum.
In an interview with Urs König, David gives the answer himself:
Q: Why has a non-common FLASH option been implemented and not a more desirable and usable 16 colour option (BRIGHT of the 8 base colours or real 16 colours)? Was this because of Teletext/BBS/Videotex/MicroNet/Prestel or the like had flashing characters?

DK: I hardly remember this. The ZX8301 is purely digital, so to get multiple colour levels, we would have needed an extra output which would have fed a primitive DAC. This would have needed another pin, and we didn't have one.
(The interview can be found here)

Jan.

Re: QL MODE 8 Flash Bit

Posted: Fri Oct 27, 2017 11:38 pm
by martyn_hill
Of course, by the time Issue6 motherboards came along, the PCEN output on the 8301 became defunct (the HAL took-over that function) and with another output pin still available on the HAL, ROMOE on the 8301 could also have been been freed-up (the HAL already monitors A16 & A17).

Retrospection is easy...

I wonder how many apps ever made use of FLASH...

Re: QL MODE 8 Flash Bit

Posted: Sat Oct 28, 2017 12:31 am
by janbredenbeek
martyn_hill wrote: I wonder how many apps ever made use of FLASH...
I've done it in a Videotex/Viewdata/Prestel terminal program. But it was hard to implement as the standard supports block graphic characters which need to be fully contiguous, which the standard QL driver cannot produce (it always prints characters with a blank pixel in between). Videotex uses serial attributes which normally print as a space so you can use that as background colour, but it also has a 'hold graphics' mode which repeats the last graphic character at the position where the attributes change. So unlike the standard driver which turns flash on and off for each character, I needed to remember the flash state while printing a line of text and that made the logic a lot more complex. But the result was eventually a nearly perfect emulation. It's a pity that, to my best knowledge, there was never a Teletext interface for the QL...

Jan.

Re: QL MODE 8 Flash Bit

Posted: Sat Oct 28, 2017 12:52 am
by Peter
I've heard that "missing pin" story before, and for me it's not an explanation, even not back then. Just like the IPC decision. We are all human and we all make mistakes under pressure. But technically, I still don't understand it.

Re: QL MODE 8 Flash Bit

Posted: Sat Oct 28, 2017 12:56 am
by Peter
janbredenbeek wrote:I've done it in a Videotex/Viewdata/Prestel terminal program. [...]
That explains how well you knew about the Flash bit details! Thanks for explaining it on ql-users! Pity that your program will hardly be of use on the Q68...

Re: QL MODE 8 Flash Bit

Posted: Sat Oct 28, 2017 9:25 am
by janbredenbeek
Peter wrote:
janbredenbeek wrote:I've done it in a Videotex/Viewdata/Prestel terminal program. [...]
That explains how well you knew about the Flash bit details! Thanks for explaining it on ql-users! Pity that your program will hardly be of use on the Q68...
Now when I think of it... Teletext is still being used here in NL, it's even easy to extract the data from a DVB-C or IPTV stream so we do have a potential Q68 application here :D

Jan.