I've been looking at various documentations, and couldn't find a clear answer. I understand the Model 1 has no interrupt from the video generator, but I'm hoping there's at least a way to busy-wait for a VSYNC. And on the Model 3, although the built-in BASIC has a blinking cursor, I couldn't even find out if there's an interrupt source from video at all.

And of course if it turns out there is absolutely no way to find out when VSYNC occurs, the follow-up question is what are ways of working around this for any kind of real-time game development.


2 Answers 2


There's no way to do it on the Model 1.

The Model 3 has an interrupt that triggers every second vsync. Bit 2 of I/O port $E0 set to 0 indicates when the interrupt is active and can be enabled by setting bit 2 of I/O port $E0. The interrupt goes to $38 in the ROM which has RAM vectors you can change to handle it yourself.

Some examples of how to do this can be found here: http://48k.ca/beamhack2.html

Since the Z-80 clock speed was fixed games for the TRS-80 Model 1 and 3 didn't bother with timing based on interrupts. Instead, delay loops were added to adjust the speed.


I can tell you, from experience, that the Model 1 was indifferent to the video circuitry.

While the clock speed was half the 3.58 colorburst crystal speed, meaning video access of a character to display at the same rate as a processor cycle, letting them alternate in the same cycle, that isn't how they did things.

When the processor wanted to read or write to video circuitry, it simply yanked control from the video circuitry, putting a glitch on the screen (not for the whole character; just one line--and not the character being accessed, but rather the one that would have been displayed).

On the flip side, this meant that the accelerators that clipped the clock line to insert a faster speed could work without interfering with the video (well, any more than the basic machine, just with glitches increasing proportionally to clock speed).

The z80 was rated for 2.5mhz, with "hand picked" specimens reaching 4.0 (the speed of the z80-A).

So in theory, any model one could be clocked up to 2.5, but "word on the street" was that RS chose the 1.78 clock so that it could use "fallout" chips that failed the tests to run at 2.5.

In a similar cost-cutting measure, the processor was used to scan the keyboard.

If you wrote a program to spew text at the screen, it would noticably slow if you placed a hand down on the keyboard.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .