MOS Technology 8563
Encyclopedia
The 8563 Video Display Controller (VDC) was an integrated circuit
produced by MOS Technology
. It was used in the Commodore 128
computer to generate an 80-column (640×200 pixel
) RGB video display. The DCR models (as well as a few D-models) of the C128 used the later and more technically advanced 8568 [D]VDC
controller.
-based business computer, Commodore
designed the VDC into several prototype machines. Of these, only the Commodore 128 ever saw production. Unlike earlier MOS video chips such as the popular VIC-II
, the VDC had dedicated video RAM, 16 kilobyte
s (upgradable to 64 kilobytes) in the original or "flat" C128
and 64 kilobytes in the C128DCR. This RAM was not directly accessible by the microprocessor
.
The 8563 was more difficult to produce than most of the rest of the MOS Technology
line, and initial yields
were very low. http://www.commodore.ca/products/128/Commodore_128.htm Also, there were timing issues with the VDC that would cause indirect load and store operations on its registers to malfunction.
Officially, the VDC was a text-only chip, although a careful reading of the technical literature by MOS Technology
that was given to the early C128
developers did indicate that a high-resolution bitmap
mode was possible—it simply wasn't described in any detail. BASIC 7.0
, the Commodore 128
's built-in programming language, only supported high-resolution graphics in 40-column mode via the legacy VIC-II chip.
Shortly after the release of the C128
the VDC's bitmap
mode was described in considerable detail in a Data Becker
book (published in late 1985 in the USA by Abacus Software), and an assembly language program was provided by the authors, in which it was possible to set or clear any pixel or, using BASIC
to perform the necessary calculations, generate bitmapped geometric shapes on the 80 column screen. In February 1986, less than a year after the Commodore 128
's release, RUN magazine published "Ultra Hi-Res Graphics", an article describing the VDC's bitmapped mode and including a type-in program
(written in 8502
assembly language
) that extended BASIC 7.0's capabilities to support 640×200 high-resolution graphics using the 8563. http://cbmfiles.com/genie/geniefiles/C128Software/ULTRAHIRES.DOCS Authors Lou Wallace and David Darus later developed the Ultra Hi-Res utility into a commercial package, BASIC 8. One of the most popular third-party utilities for the C128, this offered more advanced VDC high-resolution capabilities to a wide audience of programmers.
Commodore finally offered complete official documentation on the VDC in the Commodore 128 Programmer's Reference Guide. VDC bitmap modes were used extensively in the C128 version of the GEOS
operating system
.
The VDC lacked sprite capabilities, which limited its use in gaming applications. However, it did contain blitting
capabilities to autonomously perform small block memory copies within its dedicated video RAM. While the VDC is performing such a copy, the system CPU can continue running code, provided no other VDC accesses are attempted before the copy is finished. These functions were used by the C128's screen editor ROM
to rapidly scroll or clear screen sections.
The following code is typical of a register write operation:
Owing to this somewhat cumbersome method of controlling the VDC, the maximum possible frame rate
in bit-mapped mode is generally too slow for arcade-style action video games, in which bit-intensive manipulation of the display is required.
Integrated circuit
An integrated circuit or monolithic integrated circuit is an electronic circuit manufactured by the patterned diffusion of trace elements into the surface of a thin substrate of semiconductor material...
produced by MOS Technology
MOS Technology
MOS Technology, Inc., also known as CSG , was a semiconductor design and fabrication company based in Norristown, Pennsylvania, in the United States. It is most famous for its 6502 microprocessor, and various designs for Commodore International's range of home computers.-History:MOS Technology, Inc...
. It was used in the Commodore 128
Commodore 128
The Commodore 128 home/personal computer was the last 8-bit machine commercially released by Commodore Business Machines...
computer to generate an 80-column (640×200 pixel
Pixel
In digital imaging, a pixel, or pel, is a single point in a raster image, or the smallest addressable screen element in a display device; it is the smallest unit of picture that can be represented or controlled....
) RGB video display. The DCR models (as well as a few D-models) of the C128 used the later and more technically advanced 8568 [D]VDC
MOS Technology 8568
The 8568 Video Display Controller was MOS Technology's graphics processor responsible for the 80 column or RGBI display on D[CR] models of the Commodore 128 personal computer...
controller.
History and characteristics
Originally intended for a planned (but unreleased) UNIXUnix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
-based business computer, Commodore
Commodore International
Commodore is the commonly used name for Commodore Business Machines , the U.S.-based home computer manufacturer and electronics manufacturer headquartered in West Chester, Pennsylvania, which also housed Commodore's corporate parent company, Commodore International Limited...
designed the VDC into several prototype machines. Of these, only the Commodore 128 ever saw production. Unlike earlier MOS video chips such as the popular VIC-II
MOS Technology VIC-II
The VIC-II , specifically known as the MOS Technology 6567/8562/8564 , 6569/8565/8566 , is the microchip tasked with generating Y/C/composite video graphics and DRAM refresh signals in the Commodore 64 and C128 home computers.Succeeding MOS's original VIC , the VIC-II was one of the two chips...
, the VDC had dedicated video RAM, 16 kilobyte
Kilobyte
The kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...
s (upgradable to 64 kilobytes) in the original or "flat" C128
Commodore 128
The Commodore 128 home/personal computer was the last 8-bit machine commercially released by Commodore Business Machines...
and 64 kilobytes in the C128DCR. This RAM was not directly accessible by the microprocessor
Microprocessor
A microprocessor incorporates the functions of a computer's central processing unit on a single integrated circuit, or at most a few integrated circuits. It is a multipurpose, programmable device that accepts digital data as input, processes it according to instructions stored in its memory, and...
.
The 8563 was more difficult to produce than most of the rest of the MOS Technology
MOS Technology
MOS Technology, Inc., also known as CSG , was a semiconductor design and fabrication company based in Norristown, Pennsylvania, in the United States. It is most famous for its 6502 microprocessor, and various designs for Commodore International's range of home computers.-History:MOS Technology, Inc...
line, and initial yields
Semiconductor fabrication
Semiconductor device fabrication is the process used to create the integrated circuits that are present in everyday electrical and electronic devices. It is a multiple-step sequence of photolithographic and chemical processing steps during which electronic circuits are gradually created on a wafer...
were very low. http://www.commodore.ca/products/128/Commodore_128.htm Also, there were timing issues with the VDC that would cause indirect load and store operations on its registers to malfunction.
Officially, the VDC was a text-only chip, although a careful reading of the technical literature by MOS Technology
MOS Technology
MOS Technology, Inc., also known as CSG , was a semiconductor design and fabrication company based in Norristown, Pennsylvania, in the United States. It is most famous for its 6502 microprocessor, and various designs for Commodore International's range of home computers.-History:MOS Technology, Inc...
that was given to the early C128
Commodore 128
The Commodore 128 home/personal computer was the last 8-bit machine commercially released by Commodore Business Machines...
developers did indicate that a high-resolution bitmap
Raster graphics
In computer graphics, a raster graphics image, or bitmap, is a data structure representing a generally rectangular grid of pixels, or points of color, viewable via a monitor, paper, or other display medium...
mode was possible—it simply wasn't described in any detail. BASIC 7.0
Commodore BASIC
Commodore BASIC, also known as PET BASIC, is the dialect of the BASIC programming language used in Commodore International's 8-bit home computer line, stretching from the PET of 1977 to the C128 of 1985...
, the Commodore 128
Commodore 128
The Commodore 128 home/personal computer was the last 8-bit machine commercially released by Commodore Business Machines...
's built-in programming language, only supported high-resolution graphics in 40-column mode via the legacy VIC-II chip.
Shortly after the release of the C128
Commodore 128
The Commodore 128 home/personal computer was the last 8-bit machine commercially released by Commodore Business Machines...
the VDC's bitmap
Raster graphics
In computer graphics, a raster graphics image, or bitmap, is a data structure representing a generally rectangular grid of pixels, or points of color, viewable via a monitor, paper, or other display medium...
mode was described in considerable detail in a Data Becker
Data Becker
Data Becker GmbH & Co. KG is a German publisher of computer books and software. It was founded in Düsseldorf in 1980 by Dr. Achim Becker and Harald Becker, and opened its first store in 1981...
book (published in late 1985 in the USA by Abacus Software), and an assembly language program was provided by the authors, in which it was possible to set or clear any pixel or, using BASIC
BASIC
BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code....
to perform the necessary calculations, generate bitmapped geometric shapes on the 80 column screen. In February 1986, less than a year after the Commodore 128
Commodore 128
The Commodore 128 home/personal computer was the last 8-bit machine commercially released by Commodore Business Machines...
's release, RUN magazine published "Ultra Hi-Res Graphics", an article describing the VDC's bitmapped mode and including a type-in program
Type-in program
A type-in program, or just type-in, is a computer program listing printed in a computer magazine or book, meant to be typed in by the reader in order to run the program on a computer....
(written in 8502
MOS Technology 8502
The MOS Technology 8502 was an 8-bit microprocessor designed by MOS Technology and used in the Commodore 128. Based on the MOS 6510 that was used in the Commodore 64, the 8502 added the ability to run at a double clock rate, in addition to the standard 1.024 MHz rate used by the Commodore 64.Since...
assembly language
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...
) that extended BASIC 7.0's capabilities to support 640×200 high-resolution graphics using the 8563. http://cbmfiles.com/genie/geniefiles/C128Software/ULTRAHIRES.DOCS Authors Lou Wallace and David Darus later developed the Ultra Hi-Res utility into a commercial package, BASIC 8. One of the most popular third-party utilities for the C128, this offered more advanced VDC high-resolution capabilities to a wide audience of programmers.
Commodore finally offered complete official documentation on the VDC in the Commodore 128 Programmer's Reference Guide. VDC bitmap modes were used extensively in the C128 version of the GEOS
GEOS (8-bit operating system)
GEOS is an operating system from Berkeley Softworks . Originally designed for the Commodore 64 and released in 1986, it provided a graphical user interface for this popular 8-bit computer.GEOS closely resembled early versions of Mac OS and included a graphical word processor and paint program...
operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
.
The VDC lacked sprite capabilities, which limited its use in gaming applications. However, it did contain blitting
Blitter
In a computer system, a blitter is a circuit, sometimes as a coprocessor or a logic block on a microprocessor, that is dedicated to the rapid movement and modification of data within that computer's memory...
capabilities to autonomously perform small block memory copies within its dedicated video RAM. While the VDC is performing such a copy, the system CPU can continue running code, provided no other VDC accesses are attempted before the copy is finished. These functions were used by the C128's screen editor ROM
Read-only memory
Read-only memory is a class of storage medium used in computers and other electronic devices. Data stored in ROM cannot be modified, or can be modified only slowly or with difficulty, so it is mainly used to distribute firmware .In its strictest sense, ROM refers only...
to rapidly scroll or clear screen sections.
Technical specifications
- RGBI output (RGB plus Intensity) compatible with IBM's CGAColor Graphics AdapterThe Color Graphics Adapter , originally also called the Color/Graphics Adapter or IBM Color/Graphics Monitor Adapter, introduced in 1981, was IBM's first color graphics card, and the first color computer display standard for the IBM PC....
video standard. - 16 or 64 kilobyteKilobyteThe kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...
address space for display, character shape and display attribute memory (dedicated, separate from system memory). - Up to 720×700 pixel video resolution in interlaced mode (maximum with 64 kilobyte video ram) http://www.c128.net/infos/image/pic_gfxbooster9-89.gif. Other image sizes are possible, depending on programmer's needs, such as 640×200 non-interlaced, 640×400 interlaced, etc.
- 80×25 characters text resolution (C128 kernel default); other sizes such as 80×50 or 40×25 are possible.
- 8 colors at 2 intensities.
Programming
Addressing the VDC's internal registers and dedicated video memory must be accomplished by indirect means. First the program must tell the VDC which of its 37 internal registers is to be accessed. Next the program must wait until the VDC is ready for the access, after which a read or write on the selected internal register may be performed. The following code is typical of a register read:
ldx #regnum ;VDC register to access
stx $d600 ;write to control register
loop bit $d600 ;check bit 7 of status register
bpl loop ;VDC not ready
lda $d601 ;read from VDC register
...
The following code is typical of a register write operation:
ldx #regnum ;VDC register to write to
stx $d600 ;write to control register
loop bit $d600 ;check bit 7 of status register
bpl loop ;VDC not ready
sta $d601 ;write to VDC register
...
Owing to this somewhat cumbersome method of controlling the VDC, the maximum possible frame rate
Frame rate
Frame rate is the frequency at which an imaging device produces unique consecutive images called frames. The term applies equally well to computer graphics, video cameras, film cameras, and motion capture systems...
in bit-mapped mode is generally too slow for arcade-style action video games, in which bit-intensive manipulation of the display is required.
Register Listing
This information was adapted from the Commodore 128 Programmer's Reference GuideRegister | Hexadecimal | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 | Description |
---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
Horizontal Total |
|
|
|
|
|
|
|
|
|
|
Horizontal Displayed |
|
|
|
|
|
|
|
|
|
|
Horizontal Sync Position |
|
|
|
|
|
|
|
|
|
|
Vertical/Horizontal Sync Width |
|
|
|
|
|
|
|
|
|
|
Vertical Total |
|
|
|
|
|
|
|
|
|
|
Vertical Adjust |
|
|
|
|
|
|
|
|
|
|
Vertical Displayed |
|
|
|
|
|
|
|
|
|
|
Vertical Sync Position |
|
|
|
|
|
|
|
|
|
|
Interlace Mode |
|
|
|
|
|
|
|
|
|
|
Character Total Vertical |
|
|
|
|
|
|
|
|
|
|
Cursor Mode, Start Scan |
|
|
|
|
|
|
|
|
|
|
Cursor End Scan Line |
|
|
|
|
|
|
|
|
|
|
Display Start Address High Byte |
|
|
|
|
|
|
|
|
|
|
Display Start Address Low Byte |
|
|
|
|
|
|
|
|
|
|
Cursor Position High Byte |
|
|
|
|
|
|
|
|
|
|
Cursor Position Low Byte |
|
|
|
|
|
|
|
|
|
|
Light Pen Vertical Position |
|
|
|
|
|
|
|
|
|
|
Light Pen Horizontal Position |
|
|
|
|
|
|
|
|
|
|
Update Address High Byte |
|
|
|
|
|
|
|
|
|
|
Update Address Low Byte |
|
|
|
|
|
|
|
|
|
|
Attribute Start Address High Byte |
|
|
|
|
|
|
|
|
|
|
Attribute Start Address Low Byte |
|
|
|
|
|
|
|
|
|
|
Character Total Horizontal, Character Display Horizontal |
|
|
|
|
|
|
|
|
|
|
Character Display Vertical |
|
|
|
|
|
|
|
|
|
|
Vertical Smooth Scrolling |
|
|
|
|
|
|
|
|
|
|
Horizontal Smooth Scrolling |
|
|
|
|
|
|
|
|
|
|
Foreground/Background color |
|
|
|
|
|
|
|
|
|
|
Address Increment per Row |
|
|
|
|
|
|
|
|
|
|
Character Base Address |
|
|
|
|
|
|
|
|
|
|
Underline Scan Line |
|
|
|
|
|
|
|
|
|
|
Word Count |
|
|
|
|
|
|
|
|
|
|
Data Register |
|
|
|
|
|
|
|
|
|
|
Block Start Address High Byte |
|
|
|
|
|
|
|
|
|
|
Block Start Address Low Byte |
|
|
|
|
|
|
|
|
|
|
Display Enable Begin |
|
|
|
|
|
|
|
|
|
|
Display Enable End |
|
|
|
|
|
|
|
|
|
|
DRAM Refresh Rate |