Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
MOS Technology VIC-II
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Character graphics=== The C64 shipped with the PETSCII character set in a 4k ROM, but, like the VIC-20 before it, the actual data for the characters was read from memory at a specified location. This location is one of the VIC-II registers, which allowed programmers to construct their own characters sets by placing the appropriate data in memory; each character is an 8x8 grid, a byte representing 8 bits horizontally, so 8 bytes are required for a single character and thus the complete 256-character set uses a total of 2,048 bytes. Theoretically as many as eight character sets can be used if the entire 16k of video memory were filled.<ref name="map128" />{{rp|p=363}} In addition to charsets, the VIC-II also uses 1000 bytes to store the 25 lines of 40 characters per line, one byte for each character, which in power on default configuration sits at {{mono|$400}}-{{mono|$7E8}}.<ref name="map128">{{cite book|title=Mapping the Commodore 128|publisher=COMPUTE! Books|last=Cowper|first=Ottis R.|location=Greensboro, North Carolina|year=1986|isbn=0-87455-060-2|url=https://archive.org/stream/Compute_s_Mapping_the_Commodore_128#page/n0/mode/2up}}</ref>{{rp|pp= 117-119}} Color RAM is accessed as bits 8 to 11 of the video matrix;<ref name="vicspec">{{cite web|url=http://archive.6502.org/datasheets/mos_6567_vic_ii_preliminary.pdf|publisher=Commodore Semiconductor Group|title=6567 Video Interface Chip: Specification Sheet|at= sheets 2 and 5}}</ref> in the 64 and 128, it is located in I/O space at {{mono|$D800}}-{{mono|$DBFF}} and cannot be moved from that location. It contains the values for color 1 (color 3 in multicolor mode) of each character. The character ROM is mapped into two of the VIC-II's four "windows", at {{mono|$1000}}-{{mono|$1FFF}} and {{mono|$9000}}-{{mono|$9FFF}}, although the CPU cannot see it there (the character ROM may be switched into {{mono|$D000}}-{{mono|$DFFF}} where it is visible to the CPU, but not the VIC-II). Thus graphics data or video buffers cannot be placed at {{mono|$1000}}-{{mono|$1FFF}} or {{mono|$9000}}-{{mono|$9FFF}} because the VIC-II will see the character ROM there instead. Because these areas of RAM could not be used by the VIC-II graphics chip, they were frequently used for music/sound effects (the SID chip). The C64 has the ability to have RAM and ROM at the same address in memory but the CPU would "see" one and the VIC-II chip would "see" the other. In default high-resolution character mode, the foreground of each character may be set individually in the color RAM. In multicolor character mode, color 3 is limited to the first eight possible color values; the fourth bit is then used as a flag indicating if this character is to be displayed in high-resolution or multicolor, thus making it possible to mix both types on one screen.<ref name="map128" />{{rp|pp=460-462}} Colors 1 and 2 are set by the registers at {{mono|$D022}} and {{mono|$D023}} and are global for all characters.<ref name="map128" />{{rp|p=373}} If Extended Background Color Mode is used, the upper two bits of the character code are used to select one of four background color registers. This allows four different background colors on the screen, but at the expense of only allowing 64 different characters instead of 256. Because this is limiting, games seldom used it.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)