Glossary

From NerdConsole
Jump to navigationJump to search

The fields of hardware, software, and electrical engineering have many terms that make it seem like experts in these fields are speaking a different language. Worse, many of those terms are actually acronyms that are pronounced as a word which further hides their actual meaning. This glossary is my attempt to demystify some of these things for a casual reader.

7400 Series
A series of logic chips originally created by Texas Instruments. Keep in mind that 74HCT logic chips are recommended for NerdConsole, those can be mixed with 74LS logic chips if needed. 74HC (without the “T”) logic chips are not compatible.
ASCII
American Standard Code for Information Interchange. This is a standard that allows character data to be represented in a known way across multiple types of computers.
Assembler
Software that converts assembly language into machine code. Assembly language is much more human friendly than machine code, but still not especially friendly when compared to high level languages like C++ and Java.
Attribute Table
A table holding information such as palette selection for the name tables in an NES. In NerdConsole the attributes are incorporated per tile in the name table instead of being a separate table in PPU memory.
BCD
Binary Coded Decimal. This is a way of representing decimal data that uses 4 bits per digit. There is a BCD mode in the 65C02 CPU that alters how math routines function. In general this mode should be avoided.
BG
Background. This is the layer of graphics that make up the play area. Typically behind the Sprites.
Byte
An 8-bit value. Typically has a numeric value of either 0 to 255 or -128 to 127. Non-numeric representations of a byte are common and could include character encodings such as ASCII or bit level data fields.
CGA
Color Graphics Adapter. This was a common type of graphics card in the 1980s and 1990s.
Clamp
Numeric range limit. An individual number is clamped to a number range by the following rules. Numbers below the lower limit of the range are equal to the lower limit. Numbers above the upper limit of the range are equal to the upper limit. All numbers within the range (inclusive on both sides) are equal to the original number.
Controller
A device with multiple buttons that allows a user to inform the system of their intentions. These typically include buttons for controlling the movement of a player controlled character as well as multiple buttons that cause the character to perform various actions.
CPU
Central Processing Unit. This is the brain of NerdConsole and a program running on this chip drives the rest of the system.
DAC
Digital to Analog Converter. This device takes in a stream of digital data and outputs an analog waveform that matches it. These are commonly used in audio circuits for turning digital audio data from an audio processor into a signal that can be played over speakers.
DOS
Disc Operating System. This was a popular computer operating system in the 1980s and early 1990s.
EEPROM
Electrically Erasable Programmable Read Only Memory. Modern ROM that is rewritable with an appropriate programming device instead of truly programmed once. These chips are helpful for hobbyists due to reusability and ease of writing. Some chips can be written with only 5V (instead of the more typical 17V to 24V) and can be used in cartridge designs with save space as a means of saving user data.
EGA
Enhanced Graphics Adapter. This was a common type of graphics card in the 1980s and 1990s.
FG
Foreground. This is the layer of graphics that represent things closest to the player. The sprites typically exist in the foreground, allowing them to be drawn over the background play area.
Flip (PPU)
Vertically flipping of a graphics tile results in it occupying the same space, but visually the top side (in the original data) will be on the bottom and vice versa. This can be combined with Mirror.
FPS
Frames per second. This is how many frames are rendered per second by the PPU.
Frame Rate
The number of frames being graphically rendered by the PPU per second. Typically the target is 60 frames per second.
GPIO
General Purpose Input Output. These are the programmable input and output pins found on Raspberry Pi computers and Arduino style logic boards.
Hz
Hertz. This unit is used for general “cycles per second” and can apply to anything from the speed of a CPU to the speed that a monitor refreshes.
IRQ
Interrupt Request. This is a signal received by the CPU that tells it to handle something requesting attention. When enabled, the CPU will immediately jump to the location specified by the IRQ vector and start executing code. This code should be terminated with an RTI (return from interrupt) instruction to resume normal CPU activity.
KB
Kilobyte. In base 2 systems (binary) a kilobyte is 210 or 1,024 bytes.
MB
Megabyte. In base 2 systems (binary) a megabyte is 220 or 1,048,576 bytes.
Mirror (PPU)
Horizontal mirroring of a graphics tile results in it occupying the same space, but visually the left side (in the original data) will be on the right and vice versa. This can be combined with Flip.
ms
Milliseconds. This unit of time is one thousandth (1/1,000th) of a second.
Name Table
A structure used to assemble tiles into a background layer. These also contain attributes such as palette in NerdConsole.
NES
Nintendo Entertainment System. The classic 8-bit era console created by Nintendo. This system provided the inspiration for NerdConsole.
NMI
Non-Maskable Interrupt. Similar to an IRQ, but they cannot be disabled in software. NerdConsole uses these for VSync signals from the PPU. The CPU will immediately jump to the location specified by the NMI vector and start executing code. This code should be terminated with an RTI (return from interrupt) instruction to resume normal CPU activity.
ns
Nanoseconds. This unit of time is one billionth (1/1,000,000,000th) of a second.
OEM
Original Equipment Manufacturer. This is a company that makes things using parts acquired by other companies. For example, Nintendo is the OEM for the NES and SNES and their associated devices such as joysticks and cartridges.
Palette
A collection of colors. NerdConsole uses a collection of palettes that can be selected by the attributes in the name table or as part of sprite table records.
PCB
Printed Circuit Board. These are boards with circuits on them to connect between chips added to them later. NerdConsole is composed of multiple PCBs, each with dozens of components on them. Examples include the main board and the video board.
PPU
Picture Processing Unit. This is the graphics brain of NerdConsole, it is a software device running on a Raspberry Pi that converts graphics data placed in the Name Table, Sprite Table, Palette Tables, and Tile Tables into a picture on the screen.
RAM
Random Access Memory. This is the memory for NerdConsole. Software can utilize this space in any way needed during execution.
RGB
Red, Green, Blue. This is a common way of representing colors in a computer. The combination of the three color parts define the color that is made from them.
RGB444
Red, Green, Blue - 4, 4, 4. This is a specific way of representing a RGB color with 4 bits per color channel. Colors in a palette in this format are bitwise interleaved. Since bytes are 8 bits and this format requires 12 bits, every other color entry starts half way through a byte instead of at the beginning of one. 4,096 colors can be uniquely identified with this format.
RGB565
Red, Green, Blue - 5, 6, 5. This is a specific way of representing a RGB color with 5 bits for red, 6 bits for green, and 5 bits for blue. Human eyes are more sensitive to green, so the extra bit that is available in 2 bytes is allotted to green. 65,536 colors can be uniquely identified with this format.
RGB888
Red, Green, Blue - 8, 8, 8. This is a specific way of representing a RGB color with 8 bits per color channel. 16,777,216 colors can be uniquely identified with this format.
ROM
Read-Only Memory. This is the storage system for NerdConsole. This memory is found on the removable cartridges and contains all of the program and graphics data for the currently running software.

See Also: EEPROM

Save ROM
Save Read-Only Memory. This is memory that lives on the removable cartridge that serves the purpose of retaining information when the cartridge is not powered. This can be accomplished in any way that is desired and is completely optional, but is facilitated by a Read/Write flag on the cartridge port.
Scanline
A single horizontal line of the screen as rendered by classic systems. NerdConsole doesn’t support the concept of scanlines because the entire screen is rendered as a single image and doesn’t do so in any particular order.
SNES
Super Nintendo Entertainment System. The classic 16-bit era console created by Nintendo.
Sprite
A moving element in a game. Typically a single in-game character is made up of multiple individual sprites moving together. These are usually shown in front of the background.
Tile
An 8x8 pixel square piece of picture. These are the fundamental graphics units used in a tile-based graphics system and can be assembled together into larger pictures that make up backgrounds or multiple tile sprites.
μs
Microseconds. This unit of time is one millionth (1/1,000,000th) of a second.