Difference between revisions of "Graphics ROM"

From Intellivision Wiki
Jump to: navigation, search
(GROM Picture Catalog)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Category:Memory Units]]
 
[[Category:Memory Units]]
The Graphics ROM (GROM) is an 2048 x 8-bit ROM, [[General Instruments|GI]] part number RO-3-9503.  The [[CP-1610]] sees GROM at addresses $3000-$37FF.  The Graphics ROM contains the default character set and is used by the [[STIC]] to render characters to the screen as directed by the program.  The Graphics ROM also includes decoding logic to allow the [[Graphics RAM]] to interface to the STIC.
+
The Graphics ROM (GROM) is an 2048 x 8-bit ROM, [[General Instruments|GI]] part number RO-3-9503.  The [[CP1610]] sees GROM at addresses $3000-$37FF.  The Graphics ROM contains the default character set and is used by the [[STIC]] to render characters to the screen as directed by the program.  The Graphics ROM also includes decoding logic to allow the [[Graphics RAM]] to interface to the STIC.
  
 
The GROM actually implements three address decoding modes:
 
The GROM actually implements three address decoding modes:
  
* The CPU-access memory map.  GROM is visible at $3000 - $37FF, and GRAM is visible at $3800 - $3FFF
+
* The CPU-access memory map.  GROM is visible at $3000 - $37FF, and [[Graphics RAM|GRAM]] is visible at $3800 - $3FFF
 
* The display generation memory maps:
 
* The display generation memory maps:
** Color Stack mode:  GROM is visible at $0000 - $07FF.  GRAM is visible at $0800 - $0FFF.  Addresses are fully decoded.
+
** Color Stack mode:  GROM is visible at $0000 - $07FF.  [[Graphics RAM|GRAM]] is visible at $0800 - $0FFF.  Addresses are fully decoded.
 
** Foreground/Background mode:  Same as Color Stack, except address bits 9 and 10 get ignored.  Thus, only the first 64 cards of GROM are available.  (GRAM only holds 64 cards, so there is no difference there.)
 
** Foreground/Background mode:  Same as Color Stack, except address bits 9 and 10 get ignored.  Thus, only the first 64 cards of GROM are available.  (GRAM only holds 64 cards, so there is no difference there.)
  
 
The GROM uses the [[STIC]]'s [[VBlank Interrupt]] to switch to the CPU-access memory map.  The CPU's BUSAK signal switches the GROM back to the display-generation memory map.  The GROM looks at the BAR' and DWS' signals from the STIC to choose between Color Stack and Foreground/Background decoding.  If both of these signals pulse positive together, the GROM switches to Foreground/Background mode until the next interrupt.
 
The GROM uses the [[STIC]]'s [[VBlank Interrupt]] to switch to the CPU-access memory map.  The CPU's BUSAK signal switches the GROM back to the display-generation memory map.  The GROM looks at the BAR' and DWS' signals from the STIC to choose between Color Stack and Foreground/Background decoding.  If both of these signals pulse positive together, the GROM switches to Foreground/Background mode until the next interrupt.
 +
 +
[[Picture Encoding|This article]] describes how pictures are encoded in graphics memory (both [[Graphics RAM|GRAM]] and GROM).
 +
 +
==GROM Picture Catalog==
 +
 +
GROM card #0 through #94 correspond directly to ASCII character codes #32 through #126.  Thus, you can convert an ASCII code to a GROM card number by simply subtracting 32.  The reason for this is that ASCII codes below 32 are "control characters" -- these charactes have no pictures associated with them.  Therefore, the GROM starts with the first printable ASCII character.<br/><br/>
 +
 +
The following table illustrates the ASCII character set, and how it corresponds to the first portion of the GROM.  Note that ASCII code #32 is the "space character".
 +
 +
        ASCII CODES    GROM CARDS  ASCII CHARACTERS
 +
        -----------    ----------  -------------------------------
 +
          32 - 47        0 - 15      ! " # $ % & ' ( ) * + , - . /
 +
          48 - 63      16 - 31    0 1 2 3 4 5 6 7 8 9 : ; < = > ?
 +
          64 - 79      32 - 47    @ A B C D E F G H I J K L M N O
 +
          80 - 95      48 - 63    P Q R S T U V W X Y Z [ \ ] ^ _
 +
          96 - 111      64 - 79    ` a b c d e f g h i j k l m n o
 +
        112 - 126      80 - 95    p q r s t u v w x y z { | } ~ 
 +
 +
The following maps hexadecimal GROM card numbers to both the ASCII characters shown above, as well as the generic graphic elements in the GROM.  The diagram omits the portion of GROM that contains EXEC code.  For the ASCII portion, it is the same information as the above table, in a slightly different form.  The column at the left gives the first hexadecimal digit, and the row across the top gives the second hexadecimal digit.  For instance, the letter A would be GROM card #$21.  Cards #$D5 and up contain EXEC code.
 +
 +
[[File:Grom index.png||GROM image tiles|]]

Latest revision as of 10:08, 4 December 2010

The Graphics ROM (GROM) is an 2048 x 8-bit ROM, GI part number RO-3-9503. The CP1610 sees GROM at addresses $3000-$37FF. The Graphics ROM contains the default character set and is used by the STIC to render characters to the screen as directed by the program. The Graphics ROM also includes decoding logic to allow the Graphics RAM to interface to the STIC.

The GROM actually implements three address decoding modes:

  • The CPU-access memory map. GROM is visible at $3000 - $37FF, and GRAM is visible at $3800 - $3FFF
  • The display generation memory maps:
    • Color Stack mode: GROM is visible at $0000 - $07FF. GRAM is visible at $0800 - $0FFF. Addresses are fully decoded.
    • Foreground/Background mode: Same as Color Stack, except address bits 9 and 10 get ignored. Thus, only the first 64 cards of GROM are available. (GRAM only holds 64 cards, so there is no difference there.)

The GROM uses the STIC's VBlank Interrupt to switch to the CPU-access memory map. The CPU's BUSAK signal switches the GROM back to the display-generation memory map. The GROM looks at the BAR' and DWS' signals from the STIC to choose between Color Stack and Foreground/Background decoding. If both of these signals pulse positive together, the GROM switches to Foreground/Background mode until the next interrupt.

This article describes how pictures are encoded in graphics memory (both GRAM and GROM).

GROM Picture Catalog

GROM card #0 through #94 correspond directly to ASCII character codes #32 through #126. Thus, you can convert an ASCII code to a GROM card number by simply subtracting 32. The reason for this is that ASCII codes below 32 are "control characters" -- these charactes have no pictures associated with them. Therefore, the GROM starts with the first printable ASCII character.

The following table illustrates the ASCII character set, and how it corresponds to the first portion of the GROM. Note that ASCII code #32 is the "space character".

       ASCII CODES    GROM CARDS   ASCII CHARACTERS
       -----------    ----------   -------------------------------
         32 - 47        0 - 15       ! " # $ % & ' ( ) * + , - . / 
         48 - 63       16 - 31     0 1 2 3 4 5 6 7 8 9 : ; < = > ? 
         64 - 79       32 - 47     @ A B C D E F G H I J K L M N O 
         80 - 95       48 - 63     P Q R S T U V W X Y Z [ \ ] ^ _ 
         96 - 111      64 - 79     ` a b c d e f g h i j k l m n o 
        112 - 126      80 - 95     p q r s t u v w x y z { | } ~   

The following maps hexadecimal GROM card numbers to both the ASCII characters shown above, as well as the generic graphic elements in the GROM. The diagram omits the portion of GROM that contains EXEC code. For the ASCII portion, it is the same information as the above table, in a slightly different form. The column at the left gives the first hexadecimal digit, and the row across the top gives the second hexadecimal digit. For instance, the letter A would be GROM card #$21. Cards #$D5 and up contain EXEC code.

Grom index.png