Vectrex Programming TOC

Timing

Vectrex uses a Motorola 68A09 microprocessor at 1.5Mhz. Thus one cycle is 1/1,500,000 seconds. In order to to have a 50Hz stable display (which is most desireable), we must do everything we want within a limit of 30,000 cycles. The BIOS uses Timer 2 to keep track of 'system time'. The Wait_Recal routine waits for that timer to expire before continuing and recalibrating the vector system. This BIOS timing information can be set at BIOS RAM location Vec_Rfrsh ($C83D), which is a word pointer, $C83D is the timer low byte, $C83E is the timer high byte. Thus a value of the above 30,000=$7530 would be stored to the BIOS RAM location with a sequence like:

LDD #$3075

STD Vec_Rfrsh

My experience: If you change the timer value, most of the time the vectors will 'shake' a bit, especially if you don't zero the beam frequently. The game speed will vary, and non moving vectors (fixed, like a court or so) will annoyingly 'shake'!

The second (there are only two timers) timer (actually timer 1) is used for drawing vectors within BIOS vector drawing routines. Actually while drawing vectors the timer is set with the SCALE factor (which IS the low byte of the timer 1, a VIA register, VIA_t1_cnt_lo ($D004)). Thus scaling DIRECTLY relates to timing. Using a large scale factor allways takes 'a lot' of time. If at all possible use small scaling values. See also the next Vectors->length!

 

Next page Last Page

Vectrex Programming TOC