We try to do cycle accurate probing of the graphics chip in the Amstrad PC1512 from 1986, to try and find glitches and to figure out how to use it optimally. Amstrad Reference Manual: www.seasip.info/AmstradXT/151...
IIRC memory chips of this era tends to retain their memory far longer than specified at room temperature (and that's often still true), sometimes tens of times longer! So I suspect you likely can get away with just refreshing once per frame (say before the HLT) instead of having to do it 4 times per frame which might allow slightly closer timing. The CGA+16-color split seems almost custom-made for things like Elite... IIRC some versions of Elite on other computers actually had more colors in the lower "HUD" area than in the space display though it was probably 2 vs 4 colors, I think it was at least partially related to not having enough memory otherwise (more colors obviously using more memory), I think it was one of the 8-bit micros.
It's true they will hold their charge for much longer than 4 ms. But you only get away with that once. It's actually surprising how close to every 4 ms you have to refresh them if you want very stable operation over a long period of time. I experimented with this quite a bit on the PC and was surprised until I realised that eventually it got me one way or another if I ran them too long out of spec.
Somewhere there's a write-up on Risen From Oblivion - a Commodore 128 demo. The C128 VDC and CPU are on 2 different clocks, and the VDC clock is slightly different from machine to machine. They used some novel techniques at startup to figure out CPU cycles per VDC frame, and the CPU cycle the VDC frame starts, allowing them to do all sorts of cycle-exact timing tricks. Might be worth tracking down to see if it's relevant to your situation.
Sounds interesting. Similar techniques could be used here, but I'm not sure it's worth it given the other restrictions. It's a much more basic CGA implementation than I was imagining. I think they just did the minimum they could get away with assuming they only ever had to support one monitor.
Our family PC was a 1640MD, but we modded the B/W screen to support ega with 16 shades of grey. I want that machine back, the 20mb hdd made sooo soothing bird chirp sounds. ❤
Without being able to change the video memory address mid frame means there's a lot of demo effects that can't be done. No twisters, vertical stretch, vertical flip / rotate, no per line scrolling, no parallax and no 3d road games :(
Yeah, pretty disappointing huh! I did notice some of the mode changes would also reset the memory address. It's possible with some clever, very quick, mode changes something could be done. But it hardly seems worth it given the other constraints.
Can't resist a video about my favourite computer of all time. I still have mine after 36 years. Unfortunately the (PC-CM) monitor probably has (a) dead capacitor(s) and I'm not too confident poking inside of it. I think I remember you lived in germany for some time. Might you know, by any chance, of some shop or person that would be able to repair it in return for payment (in germany, benelux, france) ?
No, sorry, I don't know anyone there that does repair of those things. I got them shipped over from the UK when I was there. They come up pretty cheap from time to time. However, I can understand the attraction of keeping the one you've had 36 years. Working on monitors is unfortunately very dangerous, so not recommended if you don't know how. And I actually don't know much about the failure modes of these monitors, so can't give any clues unfortunately.
@@PCRetroTech It's probably even more dangerous since the power supply is also inside of it. Yes, I think until I find a solution to get it repaired, the best bet is to just find another working one. Thanks for your answer :)
@@PCRetroTech Yep. Standard UARTs use a 16x clock for internal operations, and baud rates are divided further from that. So the 1.8432Mhz crystal that you observed gives the maximum of 115.2k bits/sec that is found in traditional PC serial ports when the divisor is set to 1.
I had no idea there was one. I thought they just used an EGA chipset. I'm guessing you'd need a hardware mod to do that as there's likely only one path to the video out.
@@PCRetroTech I figure there must be some glue logic aboard the 1512 graphics chip and Amstrad just reused it for the 1640 to save respin costs, despite the 1640 already having a graphics chip. But yeah you''d need to do some soldering, the output pins are totally disconnected
That's the sort of thing I think you could probably do. It'd be easier if the start address could be manipulated mid-screen. It seems possible between certain modes, but then there are major glitches when switching between those modes.
@@root42I could, but I'm not sure it's worth it. The information isn't going to be usable either way. And yes, that was 2x the NTSC clock and the CPU was 8 MHz. Obviously they have dividers on these crystals.
One question, do you have a Rendition Vérité V1000 or V2100/V2200 in your collection? It would be a very interesting card from a programming point of view of early 3d accelerator videocards.
Just starting to view your video but must correct a bit. Maybe I misunderstand, but this is not the final machine in Amstrad's XT line. The same range had the PC1640, which I owned at the time. There was also the PPC. Then came the ranges with numbers, 2000 and etc.
Memories - I remember upgrading those PC1512 to 640k and often cutting myself on the shield over the motherboard. I had a PC1640 because I always hated CGA. Apart from the Western Digital Hard Drives the Amstrads were a very reliable system ... 🦘
Ah yeah, the shield in mine is missing. I can't remember if I took it out. I had one that was super rusty and had to get rid of it. I do have a 1640 as well, but bring it out less often as it is in pristine condition.
Would be great to see some specific PC1512 demo, perhaps a PC1640 one too, not sure a lot of hidden tricks may be found for those machines, that remains to be seen. What about adding the Mathematical co-CPU too ?