Context
The Amstrad CPC 464 has a very stable RGB video output. By "stable" I mean that the image on the CRT monitor does not move, wiggle, shake in any way. The electron beam draws every pixel with the same color and intensity on the same spot each time. (Many other computers at the time (1984) had less pleasing display, sometimes because of noise, often because of composite video output, which causes patterns on alternating lines, sometimes moving.)
Different context
I always noticed that when the Amstrad CPC was reading from a cassette tape, the image on the monitor would very slightly wave, somehow like a flag, with a period about one second or a little smaller. The effect is subtle (the displacement may be a fraction of a line width) but real.
It's not an effect at the scale of one line or a couple of lines. Rather the whole image appears to wave.
I don't know if the 464+ were affected.
More precisely, how to reproduce
- Turn monitor and computer on (obviously a real one, not any sort of emulator or even hardware reimplementation).
- If it's a CPC 664 or 6128, issue '|TAPE' to select tape instead of disc.
- Issue command
LOAD"
orCAT
and press Enter.
As soon as the command is entered, a mechanical relay activates, allowing tape motor start and the effect on the display appears.
The effect disappears as soon as the relay deactivates, stopping motor, whatever the reason (program finished or aborted loading, Esc
pressed, whatever).
I think that the effect appears even if the motor is not actually turning (motor only starts if the user press mechanical "play" button on the tape drive, user can press "stop" at any time to stop the motor). The relay being activated is enough for the effect to appear.
Considered experiments
I'm considering the following experiments:
- reproduce in basic conditions (I have CPC464 and a green screen GT65).
- confirm if relay is enough by starting and stopping tape motor while relay is activated
- use MP1 SCART adapter plugged to a TV to see if the effect appears on the TV (alas since the effect is typically analog and I no longer have a CRT TV, no effect will probably happen on a digital TV).
- figure out how to activate the relay through a BASIC or assembly
OUT
command, to see if the relay itself is enough, or if effect comes from something else that the ROM does when reading tape - with a modern device, record a movie of the screen when stable and when weaving to show the effect
- (won't have time) process the movie to showcase and measure the effect
Question: what causes this effect?
What causes this effect? Is it some kind of power distribution change in the computer or monitor when the relay is active? Something that affects signals going out from the computer, or the way the monitor displays them, like flakey sync signals? Is it some kind of hardware priority change to ensure computer stability or something like that? Why does this happen only when tape is active?