Interlace Demo is a program that uses the Amstrad CPC's video controller to interleave two different screens on the display. This implements a scan-doubling technique used by analogue broadcast PAL/NTSC standards to double the vertical resolution of the image.
At the time this program was written, interlaced displays were not implemented on any 8-bit computers, with the exception of the BBC B's Teletext MODE 7, with the help of a Mullard SAA5050-type chip designed for the purpose of overlaying ('GenLocking') text onto standard PAL broadcasts. The 640 × 400 resolution achieved by the Interlace Demo could only be seen on the Amiga or Atari ST, which were next-generation 16-bit computers, released five years after the CPC.
This effect cannot be reproduced by current CPC emulators. It is an analogue visual effect, of changing timings on the CRT's hardware, using a register on the CRT controller that has not been exploited by the operating system, nor (to our knowledge) any other software. This feature is not a priority for implementation on emulators, because nothing exploits it.
This implementation is just a demo of the effect, with limited practical application. It changes the video hardware before every frame, to change the 'read address' for the display memory, and changes the CRT beam's vertical timing. Other supporting routines draw characters to the screen using a customized mapping, appropriate to the interlaced display - the machine code in the listing does this much faster than BASIC could. To improve this prototype, interrupts could be implemented in assembler. I later improved this to output a whole text-line (faster), along with assembler routines that intercepted the system calls to draw lines and handle hardware scrolling offsets. I had intended to convert more routines, but the task proved too time-consuming, and was abandoned.