Copy Link
Add to Bookmark
Report

NES information

Nintendo's profile picture
Published in 
Famicom
 · 15 Jan 2020

The system stats come from rec.games.video.misc:

 
|Bits (CPU)| 8
|Bits (Gx) | 8
|CPU | 6502
|MHz | 1.8
|Graphics | 256 x 240
|Planes | 1
|Colors | 16/52
|Sprites | 8
| - size | 8 x 8
|Audio | mono
|RAM | 2K+ 2Kgx


The CPU ROM area holds 32K at a time, starting at $8000. The data itself, however, is divided into 16K pages. Also, the NES Genie's codes begin at $0000. (Every other system's Genie uses the direct CPU address)

The NES has three main registers: A (accumulator), X (index), and Y (index). All are 8 bit. There are also a number of lesser registers (program counter, status bits, etc.) and a 256 byte stack. Finally, there is a large number of "registers" (actually protected locations in memory) used to communicate with hardware.

Yoshi's NES documentation (available in the file section) reveals this amusing factoid:

The 6502 has a bug in opcode $6C (jump absolute indirect). The CPU does not correctly calculate the effective address if the low-byte is $FF.
Example:

 
C100: 4F
C1FF: 00
C200: 23
..
D000: 6C FF C1 - JMP ($C1FF)


Logically, this will jump to address $2300. However, due to the fact that the high-byte of the calculate address is *NOT* increased on a page-wrap, this will actually jump to $4F00. It should be noted that page wrapping does *NOT* occur in indexed-indirect addressing modes. Due to limitations of zero-page, all indexed-indirect read/writes should apply a logical AND #$FF to the effective address after calculation. Example:

 
C000: LDX #3 ; Reads indirect address from $0002+$0003,
C002: LDA ($FF,X) ; not $0102+$0103.


In other words, look before you leap.

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT