Cursor - Xerox Alto I Hardware Manual

A personal computer system alto series
Table of Contents

Advertisement

Alto Hardware Manual
Section 4: Display Controller
34
If a new DCB is required, DHT fetches all four words of the new DCB, and initializes all the registers.
During all scan lines of a DCB except the first, DHT only accesses the first doubleword of the block.
DWT has the sole task of transferring words from memory to the hardware. When it first awakens during
horizontal retrace, it checks HTAB.
If it is non-zero, it enters a loop which outputs HTAB D'S to the
display. When HTAB is zero, a second loop is entered which fetches a doubleword from the location
specified by DWA. DWA is compared with AECL, and if they are equal, DWT blocks until the next scan
line. DWA is incremented by 2, in preparation for the fetch of the next doubleword. If DWA:;CAECL,
DWT continues to supply words to the buffer whenever it becomes non-full.
4.4 Cursor
Because of the difficulty of inserting a cursor at the appropriate place in the display bit map at
reasonable speed, a hardware cursor is included in the Alto. The cursor consists of an arbitrary 16x16 bit
patch, which is merged with the video at the appropriate time. The bit map for the cursor is contained
in 16 words starting at location CURMAP(431B} in page one, and the X,y coordinates of the cursor are
specified by location CURLOC (426B) and CURLOC+1 (427B) in page
1.
The coordinate origin for the
cursor is the upper left hand comer of the screen. The cursor presentation is unaffected by changes in
display resolution. Its polarity is that of the current DCB, or the last DCB processed if it is located on an
area of the screen not defined by a DCB.
The cursor may be removed from view in a number of ways.
The most efficient in terms of processing time is to set the x coordinate to
-1.
The cursor hardware consists of a 16-bit shift register which holds the information to be displayed on the
current scan line, and a counter which is incremented by the bit clock, and determines the x coordinate
at which the shift register begins shifting. .
The hardware is loaded during horizontal retrace by the cursor task microcode, which simply copies the x
coordinate and bit map segment from the R memory into the hardware.
The values of x and the bit map are set up in R by a section of the memory refresh task, whose wakeup
and priority are arranged so that it runs during every scan line after DWT has done all necessary output
and DHT has set up the information required by DWT for the next scan line. MRT checks the current y
position of the display, and if it is in the range in which the cursor should be displayed, fetches the
appropriate bit map segment from CURMAP. When the cursor y position is exceeded by the display, a
flag is set in MRT to disable further processing. The x and y coordinates of the cursor are fetched from
CURLOC and CURLOC+ 1 at the beginning of each display field by a section of the display vertical task
microcode.
Cursor processing is distributed as it is to minimize the amount of processing which must be done during
the monitor's horizontal retrace time. This time is approximately 6 microseconds, and it must include the
worst case latency imposed by tasks at lower priority than the display, plus the worst case disk word
processing time (the disk word task is at higher priority than the display), plus the time necessary for
DWT to partially fill the display buffer, plus cursor processing time.

Advertisement

Table of Contents
loading

This manual is also suitable for:

Alto ii

Table of Contents