ULA ZX8301 - TV Picture Capabilities
Re: ULA ZX8301 - TV Picture Capabilities
Derek,
a HAL cannot be "read out" like a GAL - it simply has no pins to read the gate logic.
As HALs are relative straight-forward devices, however, you could simply try and see what happens with the 5 (of 10) inputs used in the QL for the used 3 (of 8) outputs. Those are 2^5 = 32 bit combinations to test - Should not be too hard in case anyone really wants to know. The HAL in the QL doesn't seem to have any inner state machine.
Tobias
a HAL cannot be "read out" like a GAL - it simply has no pins to read the gate logic.
As HALs are relative straight-forward devices, however, you could simply try and see what happens with the 5 (of 10) inputs used in the QL for the used 3 (of 8) outputs. Those are 2^5 = 32 bit combinations to test - Should not be too hard in case anyone really wants to know. The HAL in the QL doesn't seem to have any inner state machine.
Tobias
ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
-
- Font of All Knowledge
- Posts: 3971
- Joined: Mon Dec 20, 2010 11:40 am
- Location: Sunny Runcorn, Cheshire, UK
Re: ULA ZX8301 - TV Picture Capabilities
Hi Tobias,
I was really wondering if a Gate Array can be analysed without destructive methods.
I was really wondering if a Gate Array can be analysed without destructive methods.
Regards,
Derek
Derek
Re: ULA ZX8301 - TV Picture Capabilities
Derek,
"simple" Gate Arrays like the HAL in the QL you surely can analyse from the outside by simply trying out all possible input combinations and monitoring the outputs. From that, you can generate a truth table and derive some logic equations you could burn into a GAL, for example. I've done that in the past by using a simple AVR MCU or Arduino. Can easily be done on a breadbord.
In the case of the HAL, it is even simpler - We know from issue 5 descriptions what the signals the HAL generates must be like (The HAL is an issue 6 board "fix" for a defect/omission in the 8301 - Incomplete address decoding - Instead of fixing the 8301, Sinclair put the fix into an external chip to keep cost low, apparently)
This works well as long as the GA has no "inner state machine", i.e. no flip-flops and/or registers. If that is the case (for chips of a complexity level of the 8301, for example), things become a bit complicated as outputs don't depend on inputs only, but also on register contents. This needs a bit more advanced technology to re-engineer. Depending on complexity of the GA, it might not be technically feasible to re-engineer the inner workings, but still theoretically possible.
Tobias
"simple" Gate Arrays like the HAL in the QL you surely can analyse from the outside by simply trying out all possible input combinations and monitoring the outputs. From that, you can generate a truth table and derive some logic equations you could burn into a GAL, for example. I've done that in the past by using a simple AVR MCU or Arduino. Can easily be done on a breadbord.
In the case of the HAL, it is even simpler - We know from issue 5 descriptions what the signals the HAL generates must be like (The HAL is an issue 6 board "fix" for a defect/omission in the 8301 - Incomplete address decoding - Instead of fixing the 8301, Sinclair put the fix into an external chip to keep cost low, apparently)
This works well as long as the GA has no "inner state machine", i.e. no flip-flops and/or registers. If that is the case (for chips of a complexity level of the 8301, for example), things become a bit complicated as outputs don't depend on inputs only, but also on register contents. This needs a bit more advanced technology to re-engineer. Depending on complexity of the GA, it might not be technically feasible to re-engineer the inner workings, but still theoretically possible.
Tobias
ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
Re: ULA ZX8301 - TV Picture Capabilities
Hi Derek,Tobias,
Thinking further about HAL. How about replacing HAL to GAL, keeping address logic decode + adding some `magic' to trigger extra 8 colours?
Tomas
Thinking further about HAL. How about replacing HAL to GAL, keeping address logic decode + adding some `magic' to trigger extra 8 colours?
Tomas
- 1024MAK
- Super Gold Card
- Posts: 592
- Joined: Sun Dec 11, 2011 1:16 am
- Location: Looking forward to summer in Somerset, UK...
Re: ULA ZX8301 - TV Picture Capabilities
A GAL used to replace the existing HAL would not be capable of the complex logic required to add extra colours like you suggest ![Sad :-(](./images/smilies/icon_e_sad.gif)
Really, to add extra colours, the ZX8301 needs to be replaced. You could piggy back a CPLD or a FPGA on an adaptor PCB above the ZX8301 to add extra colours and functions, but you then have to split the ZX8301 colour output pins to feed the data into the extra chip...
Mark
![Sad :-(](./images/smilies/icon_e_sad.gif)
Really, to add extra colours, the ZX8301 needs to be replaced. You could piggy back a CPLD or a FPGA on an adaptor PCB above the ZX8301 to add extra colours and functions, but you then have to split the ZX8301 colour output pins to feed the data into the extra chip...
Mark
![Exclamation :!:](./images/smilies/icon_exclaim.gif)
![Exclamation :!:](./images/smilies/icon_exclaim.gif)
“There are four lights!”
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
![Exclamation :!:](./images/smilies/icon_exclaim.gif)
Looking forward to summer in Somerset later in the year
![Smile :)](./images/smilies/icon_e_smile.gif)
QL, Falcon, Atari 520STFM, Atari 1040STE, more PC's than I care to count and an assortment of 8 bit micros (Sinclair and Acorn)(nearly forgot the Psion's)
Re: ULA ZX8301 - TV Picture Capabilities
Is this how Miracle Systems intended to give the QL 16 or 256 colours? I forget what their add-on was to have been called, although I'm sure it involved replacing the 8301 with some logic and a video output, but it never appeared in the end (I think it was to be called Masterpiece, I can see references to it in the International QL Report index for Volume 4 Issue 4 page 36 although my copy of hat issue is in the attic).1024MAK wrote:A GAL used to replace the existing HAL would not be capable of the complex logic required to add extra colours like you suggest
Really, to add extra colours, the ZX8301 needs to be replaced. You could piggy back a CPLD or a FPGA on an adaptor PCB above the ZX8301 to add extra colours and functions, but you then have to split the ZX8301 colour output pins to feed the data into the extra chip...
Mark
Perhaps if anyone is still in touch with Stuart or Mike of Miracle, they might be willing to discuss how they intended to implement this.
--
All things QL - https://dilwyn.qlforum.co.uk/index.html
All things QL - https://dilwyn.qlforum.co.uk/index.html
Re: ULA ZX8301 - TV Picture Capabilities
Dilwyn,dilwyn wrote: Is this how Miracle Systems intended to give the QL 16 or 256 colours? I forget what their add-on was to have been called, although I'm sure it involved replacing the 8301 with some logic and a video output, but it never appeared in the end (I think it was to be called Masterpiece, I can see references to it in the International QL Report index for Volume 4 Issue 4 page 36 although my copy of hat issue is in the attic).
The Miracle Systems Masterpiece was, as far as I remember, planned to be a complete replacement of the QL motherboard, just like the Aurora that came a bit later. And, just like the Aurora, it would have worked with Gold or SuperGoldCards only. But: Memory is fading...
Tobias
ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
Re: ULA ZX8301 - TV Picture Capabilities
Curiosity got the better of me, so I fished out the issue and scanned it. Interesting reading. It was indeed a replacement board, but not a complete replacement motherboard. Also, high resolution, not extra colours (it doesn't make that clear, but I guess 1024x512 would only fit in 128k video ram in QL colours). Anyone got any more information on this?tofro wrote: The Miracle Systems Masterpiece was, as far as I remember, planned to be a complete replacement of the QL motherboard, just like the Aurora that came a bit later. And, just like the Aurora, it would have worked with Gold or SuperGoldCards only. But: Memory is fading...
Tobias
--
All things QL - https://dilwyn.qlforum.co.uk/index.html
All things QL - https://dilwyn.qlforum.co.uk/index.html
Re: ULA ZX8301 - TV Picture Capabilities
A bit of barking up the wrong tree in this thread.
There is no simple way to get the flash bit converted into a fourth color bit using the signals the QL outputs in mode 8. However, with a fair bit of circuitry, it is possible to get it out of mode 0/4. The tricky part is getting the dot clock, which is available only internally to the ZX8301 ULA, which has a 15MHz crystal oscillator implemented in it. It internally divides the 15MHz clock by 1.5 to get the 10MHz dot clock for mode 0, or by 3 to get 5MHZ for mode 8. Also, it divides the 15MHz by 2 to get the 7.5MHz CPU clock for the 68008 CPU.
It is possible to use a clock doubler to get 15MHz back from 7.5, then divide by 1.5 and get 10MHz, then use this to re-sample the R and G lines (B is always 1 when R and G are 1 at the sa,e time so it is redundant for this sort of thing), to get two bits for each pixel, then concatenate two pixels into 1 4-bit pixel and generate 16 colors out of that. Most will already scratch their heads at division by 1.5
but it's not that complex a circuit.
There is no real way to do this with a PIC - it is simply far too slow.
The funny thing is, they could have done something like an intensity but by using pulse width modulation. Since the ULA is already capable at outputting RGB at a 10MHz rate, which means 512 pixels per display line, but needs only half of that for 256 pixels per line, it could have used the 4th bit to select a full or a half wide pixel, which would make it appear as if it was half the intensity. I am guessing, however, that this was not done due to dot crawl when a TV would be used. Additional passive components could have been used to fix this, but we all know how Sir Clive was stingy on that sort of thing.
Another funny thing is that they did use an extra TTL chip to generate autovectoring and a few other things (later replaced by the HAL chip), they could just as well have used part of it as a crystal oscillator and saved one pin on the ZX8301 and then... well, you know.
Also, there are other ways a ZX8301 can be manipulated by adding some external logic. For instance, there vould well have been 4 screen areas to chose from, not only 2. And an interlaced 512x512 mode. There is actually more than enough logic in the gate array, but I suspect routing was the problem. No extra pins needed, just a bit of internal logic to hold a control bit and some decoding logic for the CAS1L pin.
Regarding Miracle Systems' Masterpiece:
Initially this was to be a small internal board that would replace the 8301. However it got rather complicated and possibly too big. At the time I was experimenting eith a 'slave' LCD board that was also capable of higher resolutions, and in fat this became the first high res system on a QL. It was based on a 1024x512 bitmap implemented using static RAM, of which 640x480 was used on a monochrome LCD I recycled form a laptop![Razz :P](./images/smilies/icon_razz.gif)
Stuart Honeyball of Miracle Systems then decided to drop the Masterpiece since I was already working on a full blown graphics board, which in the end became the Aurora.
However, since there was still a market for people who did not want a motherboard replacement but rather an add-in board, Stuart decided to make a smaller board that would add only VGA like resolution in 4 colors, which most cleverly used the existing RAM chips. Unfortunately nothing ever came of this.
There is no simple way to get the flash bit converted into a fourth color bit using the signals the QL outputs in mode 8. However, with a fair bit of circuitry, it is possible to get it out of mode 0/4. The tricky part is getting the dot clock, which is available only internally to the ZX8301 ULA, which has a 15MHz crystal oscillator implemented in it. It internally divides the 15MHz clock by 1.5 to get the 10MHz dot clock for mode 0, or by 3 to get 5MHZ for mode 8. Also, it divides the 15MHz by 2 to get the 7.5MHz CPU clock for the 68008 CPU.
It is possible to use a clock doubler to get 15MHz back from 7.5, then divide by 1.5 and get 10MHz, then use this to re-sample the R and G lines (B is always 1 when R and G are 1 at the sa,e time so it is redundant for this sort of thing), to get two bits for each pixel, then concatenate two pixels into 1 4-bit pixel and generate 16 colors out of that. Most will already scratch their heads at division by 1.5
![Smile :)](./images/smilies/icon_e_smile.gif)
There is no real way to do this with a PIC - it is simply far too slow.
The funny thing is, they could have done something like an intensity but by using pulse width modulation. Since the ULA is already capable at outputting RGB at a 10MHz rate, which means 512 pixels per display line, but needs only half of that for 256 pixels per line, it could have used the 4th bit to select a full or a half wide pixel, which would make it appear as if it was half the intensity. I am guessing, however, that this was not done due to dot crawl when a TV would be used. Additional passive components could have been used to fix this, but we all know how Sir Clive was stingy on that sort of thing.
Another funny thing is that they did use an extra TTL chip to generate autovectoring and a few other things (later replaced by the HAL chip), they could just as well have used part of it as a crystal oscillator and saved one pin on the ZX8301 and then... well, you know.
Also, there are other ways a ZX8301 can be manipulated by adding some external logic. For instance, there vould well have been 4 screen areas to chose from, not only 2. And an interlaced 512x512 mode. There is actually more than enough logic in the gate array, but I suspect routing was the problem. No extra pins needed, just a bit of internal logic to hold a control bit and some decoding logic for the CAS1L pin.
Regarding Miracle Systems' Masterpiece:
Initially this was to be a small internal board that would replace the 8301. However it got rather complicated and possibly too big. At the time I was experimenting eith a 'slave' LCD board that was also capable of higher resolutions, and in fat this became the first high res system on a QL. It was based on a 1024x512 bitmap implemented using static RAM, of which 640x480 was used on a monochrome LCD I recycled form a laptop
![Razz :P](./images/smilies/icon_razz.gif)
Stuart Honeyball of Miracle Systems then decided to drop the Masterpiece since I was already working on a full blown graphics board, which in the end became the Aurora.
However, since there was still a market for people who did not want a motherboard replacement but rather an add-in board, Stuart decided to make a smaller board that would add only VGA like resolution in 4 colors, which most cleverly used the existing RAM chips. Unfortunately nothing ever came of this.
Re: ULA ZX8301 - TV Picture Capabilities
Good to know I am part of a long tradition of failure in the QL communityNasta wrote:Unfortunately nothing ever came of this.
![Wink ;)](./images/smilies/icon_e_wink.gif)