pouët.net

3-lace

3-lace
------
I happened to read a description of interlaced video (again) when it dawned on me that interlacing is simply an analog function of the TV synchronisation hardware. The way interlacing works is by delaying the start of VSYNC for half a line period, every other frame. The delay shifts the start of the frame by half a line in height.
In this demo I use three different delays: none, 1/3 line or 2/3 line. This creates a frame with three fields, which for the ZX81 leads to:
 - a VERY flickery display
 - either a much higher resolution (up to at least 720 lines!)
 - or a height-compressed picture with many more free CPU cycles because of the extra empty rasters per field

Tested on several ZX81:s with my cheap 5" B/W TV and 9" Sony PVM8045Q. Both original ULA:s (2C184E and 2C210E) work, as well as Andy Reas new ULA replacement.

Source code is enclosed, plus several executables with different refresh rates. All use WRX high resolution mode. Pseudo-hires mode would be possible, but not plain text-mode.

Stair-stepped test pattern:
 - 3lace50.p for 312-line 50 Hz mode
 - 3lace60.p for 262-line 60 Hz mode
 - 3lace70.p for 224-line 70 Hz mode
 - 3lace75.p for 209-line 75 Hz mode

Lena test picture, 256x480 in three 160-line fields:
 - 3lace312.p for 312-line 50 Hz mode
 - 3lace262.p for 262-line 60 Hz mode

In summary I'd say 3-lace really is not very useful other than as a proof of concept and for understanding interlacing on old TV:s. And forget about running this correctly on any emulator. Also, it highlights the extreme flexibility of the ZX81 HW :D

/NollKollTroll, January 2019