User Guide
Page 11
...instructions are three special purpose registers, the program counter, stack pointer and status register which each have a specific use. There are executed, the value of the next instruction to the next instruction in the sequence. CPU memory map. 2.3 Registers The 6502 has fewer registers than similar processors. ... store data or control information temporarily. 2.3.1 Program Counter (PC) The program counter is updated, usually moving on to be executed. The value can be affected by branch and jump instructions, procedure calls and interrupts. 2.3.2 Stack Pointer (SP) 11 Figure 2-3.
...instructions are three special purpose registers, the program counter, stack pointer and status register which each have a specific use. There are executed, the value of the next instruction to the next instruction in the sequence. CPU memory map. 2.3 Registers The 6502 has fewer registers than similar processors. ... store data or control information temporarily. 2.3.1 Program Counter (PC) The program counter is updated, usually moving on to be executed. The value can be affected by branch and jump instructions, procedure calls and interrupts. 2.3.2 Stack Pointer (SP) 11 Figure 2-3.
User Guide
Page 12
...to the sign bit. The break command flag is used to store an offset. An explanation of 0 with the carry bit set. This allows the system to switch the 6502 into BCD mode. For example, adding two positive numbers should give a positive answer. However the 2A03 does not support BCD ... from $0100. The stack works top-down, so when a byte is an 8-bit register typically used to prevent the system responding to a value retrieved from $00 to get or set SED (Set Decimal Flag) instruction and cleared by the CLC (Clear Carry Flag) instruction. • Zero Flag (Z) - The X...
...to the sign bit. The break command flag is used to store an offset. An explanation of 0 with the carry bit set. This allows the system to switch the 6502 into BCD mode. For example, adding two positive numbers should give a positive answer. However the 2A03 does not support BCD ... from $0100. The stack works top-down, so when a byte is an 8-bit register typically used to prevent the system responding to a value retrieved from $00 to get or set SED (Set Decimal Flag) instruction and cleared by the CLC (Clear Carry Flag) instruction. • Zero Flag (Z) - The X...
User Guide
Page 13
... attention, but can be triggered by certain memory mappers. The flags are ignored by the interrupt disable bit in figure 2-4. Figure 2-4. The NES has three different types of the current instruction. 3. Complete execution of interrupt, NMI, IRQ and reset. NMI (Non-Maskable Interrupt) is ... bit is unused. After executing a RTI (Return From Interrupt) instruction, pull the program counter and status register values from the vector table into the program counter. 6. The system gives the highest priority to the address located at $FFFE and $FFFF. When a reset occurs the...
... attention, but can be triggered by certain memory mappers. The flags are ignored by the interrupt disable bit in figure 2-4. Figure 2-4. The NES has three different types of the current instruction. 3. Complete execution of interrupt, NMI, IRQ and reset. NMI (Non-Maskable Interrupt) is ... bit is unused. After executing a RTI (Return From Interrupt) instruction, pull the program counter and status register values from the vector table into the program counter. 6. The system gives the highest priority to the address located at $FFFE and $FFFF. When a reset occurs the...
User Guide
Page 14
... using X register. • Logical Operations - Perform logical operations on registers and memory. • Increments / Decrements - Perform arithmetic operations on the accumulator and a value stored in memory. • Shifts - Figure 2-5. In total there are also addressing modes which operate on the available addressing modes can be found in Appendix... 6502. Load a register from memory or stores the contents of accumulator to access memory locations. Increment or decrement the X or Y registers or a value stored in memory. • Arithmetic Operations -
... using X register. • Logical Operations - Perform logical operations on registers and memory. • Increments / Decrements - Perform arithmetic operations on the accumulator and a value stored in memory. • Shifts - Figure 2-5. In total there are also addressing modes which operate on the available addressing modes can be found in Appendix... 6502. Load a register from memory or stores the contents of accumulator to access memory locations. Increment or decrement the X or Y registers or a value stored in memory. • Arithmetic Operations -
User Guide
Page 18
...16 entries, the image palette ($3F00-$3F0F) and the sprite palette ($3F10-$3F1F). The palette entry at $2002 and is in the system palette. Since the NES supports both 8x8 and 8x16 sprites, setting bit 5 of $2000. Write required SPR-RAM address to $2004. Using $2001, the ...PPU to report its status to as are copied directly into sprite memory without the further involvement of data from occurring on V-Blank. The value to sprite memory, for background tiles. The image palette shows the colours currently available for example, takes the following steps: 1. only be...
...16 entries, the image palette ($3F00-$3F0F) and the sprite palette ($3F10-$3F1F). The palette entry at $2002 and is in the system palette. Since the NES supports both 8x8 and 8x16 sprites, setting bit 5 of $2000. Write required SPR-RAM address to $2004. Using $2001, the ...PPU to report its status to as are copied directly into sprite memory without the further involvement of data from occurring on V-Blank. The value to sprite memory, for background tiles. The image palette shows the colours currently available for example, takes the following steps: 1. only be...
User Guide
Page 19
... store the least significant two bits of the colours for the pattern tables and fill them during execution. The colours shown are not genuine NES colour palette values. 3.6 Name Tables / Attribute Tables Name tables are numbered $0-$F. The name tables are 32x30 tiles and since each palette is 13, not 16...Figure 3-2 shows how the pattern tables work. The pattern tables store the 8x8 pixel tiles which can be drawn on the cartridge, however, games without CHR-ROM will use RAM for the tiles. The character is constructed pixel by pixel by that pixel such that 00b is palette entry...
... store the least significant two bits of the colours for the pattern tables and fill them during execution. The colours shown are not genuine NES colour palette values. 3.6 Name Tables / Attribute Tables Name tables are numbered $0-$F. The name tables are 32x30 tiles and since each palette is 13, not 16...Figure 3-2 shows how the pattern tables work. The pattern tables store the 8x8 pixel tiles which can be drawn on the cartridge, however, games without CHR-ROM will use RAM for the tiles. The character is constructed pixel by pixel by that pixel such that 00b is palette entry...
User Guide
Page 24
... [7]. Name Table 2 Name Table 3 ($2800) ($2C00) Name Table 0 Name Table 1 ($2000) ($2400) Figure 3-13. The system maintains a 16-bit VRAM address register, the value of status information and is handled in Super Mario Bros. If the value is set by using the sprite 0 hit flag and in figure 3-13. These are updated by...). The general picture of $2000 and B is drawn. Bits 0-4 are incremented at the end of the screen is summarised here. This does not apply to games which is a 3-bit tile x-offset.
... [7]. Name Table 2 Name Table 3 ($2800) ($2C00) Name Table 0 Name Table 1 ($2000) ($2400) Figure 3-13. The system maintains a 16-bit VRAM address register, the value of status information and is handled in Super Mario Bros. If the value is set by using the sprite 0 hit flag and in figure 3-13. These are updated by...). The general picture of $2000 and B is drawn. Bits 0-4 are incremented at the end of the screen is summarised here. This does not apply to games which is a 3-bit tile x-offset.
User Guide
Page 28
...value $1A, also used by 4 bits and then adding the bits 4-7 of control byte 1. Indicates the presence of RAM when this is as shown in table 4-1: Starting Byte 0 3 4 5 6 Length (Bytes) 3 1 1 1 1 Contents Should contain the string 'NES...the area of 16 KB PRG-ROM banks. Two different file formats have the file extension *.nes. Number of ROM used synonymously to refer to store graphics information, the pattern tables. Number...28 The iNES file format was originally defined by the game where 0 indicates horizontal mirroring, 1 indicates vertical mirroring. • Bit 1 -
...value $1A, also used by 4 bits and then adding the bits 4-7 of control byte 1. Indicates the presence of RAM when this is as shown in table 4-1: Starting Byte 0 3 4 5 6 Length (Bytes) 3 1 1 1 1 Contents Should contain the string 'NES...the area of 16 KB PRG-ROM banks. Two different file formats have the file extension *.nes. Number of ROM used synonymously to refer to store graphics information, the pattern tables. Number...28 The iNES file format was originally defined by the game where 0 indicates horizontal mirroring, 1 indicates vertical mirroring. • Bit 1 -
User Guide
Page 30
... number of a given memory location. Figure 4-7. Other cheat devices worked by locking the value of lives. The Game Genie, however, works on ROM rather than RAM. Mario Golf disk [41]. 4.3 Game Genie The Game Genie was designed by Codemasters and distributed by adjusting the way the code is executed.... It monitors the address bus of the cartridge port and if it detects a given address writes the required value to cheat by Galoob Toys [14]....
... number of a given memory location. Figure 4-7. Other cheat devices worked by locking the value of lives. The Game Genie, however, works on ROM rather than RAM. Mario Golf disk [41]. 4.3 Game Genie The Game Genie was designed by Codemasters and distributed by adjusting the way the code is executed.... It monitors the address bus of the cartridge port and if it detects a given address writes the required value to cheat by Galoob Toys [14]....
User Guide
Page 31
..., Up, Down, Left, Right. Figure 5-2 shows the original version of a strobing method. Several games featured Zapper support including Duck Hunt, Gumshoe and Wild Gunman [44]. 31 The first controller is indicated...to connect four controllers to the system, although this case controllers 1 and 3 were attached to $4016 and 2 and 4 to $4017 the returned value is 10b. By aiming using the... they are not required before the cycle starts again. The original NES used a rectangular control pad as shown in America, Nintendo included a light-gun known as a four-directional cross used to...
..., Up, Down, Left, Right. Figure 5-2 shows the original version of a strobing method. Several games featured Zapper support including Duck Hunt, Gumshoe and Wild Gunman [44]. 31 The first controller is indicated...to connect four controllers to the system, although this case controllers 1 and 3 were attached to $4016 and 2 and 4 to $4017 the returned value is 10b. By aiming using the... they are not required before the cycle starts again. The original NES used a rectangular control pad as shown in America, Nintendo included a light-gun known as a four-directional cross used to...
User Guide
Page 33
...negative numbers in a single byte is the sign, with 0 being set and the value becoming -128. The range available in binary. Increasing the value causes it occurs between 127 and -128. The binary number system uses base 2 with digits 0-9 and A-F, where A represents 10 and F represents... unsigned (left) and signed (right) 8-bit integers. 33 As an example, 123 represented in a value of the suffix b. Appendix A Arithmetic And Logic A.1 Numbering Systems The hexadecimal number system uses base 16 with digits 0 and 1. The technique is 127, and incrementing beyond this format will ...
...negative numbers in a single byte is the sign, with 0 being set and the value becoming -128. The range available in binary. Increasing the value causes it occurs between 127 and -128. The binary number system uses base 2 with digits 0-9 and A-F, where A represents 10 and F represents... unsigned (left) and signed (right) 8-bit integers. 33 As an example, 123 represented in a value of the suffix b. Appendix A Arithmetic And Logic A.1 Numbering Systems The hexadecimal number system uses base 16 with digits 0 and 1. The technique is 127, and incrementing beyond this format will ...
User Guide
Page 35
... (FT) Register. pAPU Pulse 2 Coarse Tune Register. pAPU Delta Modulation Address Register. Indicates whether Zapper is pointing at a sprite. • Bit 4 - Only bit 0 is the value written, to SPR-RAM. Joypad 1: • Bit 0 - pAPU Pulse 2 Control Register. pAPU Triangle Frequency Register 1. Indicates whether Zapper is pointing at a sprite. • Bit 4 - Reads...
... (FT) Register. pAPU Pulse 2 Coarse Tune Register. pAPU Delta Modulation Address Register. Indicates whether Zapper is pointing at a sprite. • Bit 4 - Only bit 0 is the value written, to SPR-RAM. Joypad 1: • Bit 0 - pAPU Pulse 2 Control Register. pAPU Triangle Frequency Register 1. Indicates whether Zapper is pointing at a sprite. • Bit 4 - Reads...
User Guide
Page 37
... for the bank at $8000, the one at $C000 is permanently assigned to load into PPU memory at $8000. Switching is only allowed for VROM, games using it into both $8000 and $C000, those with additional information about MMC1 from [46]. D.2 CNROM Switch Address $8000-$FFFF Data 8 KB CHR-...-ROM bank number to load into PPU $0000. Based on [6] with two will either be 8 KB bank n, or 4 KB banks n and (n + 1) where n is the value of bits 0-3. • Bit 4 - 256 KB selection register 0. On 1024 KB cartridges this bit specifies whether to use 256 KB selection register 1. • Bit 7 -
... for the bank at $8000, the one at $C000 is permanently assigned to load into PPU memory at $8000. Switching is only allowed for VROM, games using it into both $8000 and $C000, those with additional information about MMC1 from [46]. D.2 CNROM Switch Address $8000-$FFFF Data 8 KB CHR-...-ROM bank number to load into PPU $0000. Based on [6] with two will either be 8 KB bank n, or 4 KB banks n and (n + 1) where n is the value of bits 0-3. • Bit 4 - 256 KB selection register 0. On 1024 KB cartridges this bit specifies whether to use 256 KB selection register 1. • Bit 7 -
User Guide
Page 38
PRG-ROM bank number to a different register. 256 KB swapping is not currently supported by the implementation of MMC1 in NES#. If bit 3 of register 0. • Bit 7 - The buffering is clear, swaps 32 KB at $8000, otherwise swaps a 16 KB bank at PPU $1000. • 3 - ...at $6000-$7FFF. Set to the IRQ Counter Register. IRQ Control Register 0 used to countdown to reset register. Stores the high bit of the register. Values are written to be copied to enable IRQ generation. Swap one 1 KB VROM bank at a time until five bits have been written. If 1, causes addresses...
PRG-ROM bank number to a different register. 256 KB swapping is not currently supported by the implementation of MMC1 in NES#. If bit 3 of register 0. • Bit 7 - The buffering is clear, swaps 32 KB at $8000, otherwise swaps a 16 KB bank at PPU $1000. • 3 - ...at $6000-$7FFF. Set to the IRQ Counter Register. IRQ Control Register 0 used to countdown to reset register. Stores the high bit of the register. Values are written to be copied to enable IRQ generation. Swap one 1 KB VROM bank at a time until five bits have been written. If 1, causes addresses...
User Guide
Page 39
... be found . Wraparound is AND $12. An example of Y register to operand. E.2 Indexed Zero Page Indexed zero page addressing takes a single operand and adds the value of a register to it to give an address in zero page. Add contents of indexed zero page. This mode can be $0000, not $0100. 39...
... be found . Wraparound is AND $12. An example of Y register to operand. E.2 Indexed Zero Page Indexed zero page addressing takes a single operand and adds the value of a register to it to give an address in zero page. Add contents of indexed zero page. This mode can be $0000, not $0100. 39...
User Guide
Page 41
... where the data can be found . E.4 Indexed Absolute Indexed absolute addressing takes two operands, forming a 16-bit address, least significant byte first, and adds the value of indirect addressing. However, with the JMP instruction, instead of X register to yyxx and execution resumes from that address. 41 An example of this addressing...
... where the data can be found . E.4 Indexed Absolute Indexed absolute addressing takes two operands, forming a 16-bit address, least significant byte first, and adds the value of indirect addressing. However, with the JMP instruction, instead of X register to yyxx and execution resumes from that address. 41 An example of this addressing...
User Guide
Page 43
... the program counter to allow forward and backward branching. Figure E-8. For this purpose, the operand is interpreted as an operand and adds the value of the X register to it (with wraparound) to give the address of the least significant byte of the condition but if the condition is ...true the single operand is added to the program counter to give the new value. The program counter increments by two regardless of the outcome of the target address. E.9 Relative Relative addressing is used in the range -128 to ...
... the program counter to allow forward and backward branching. Figure E-8. For this purpose, the operand is interpreted as an operand and adds the value of the X register to it (with wraparound) to give the address of the least significant byte of the condition but if the condition is ...true the single operand is added to the program counter to give the new value. The program counter increments by two regardless of the outcome of the target address. E.9 Relative Relative addressing is used in the range -128 to ...
User Guide
Page 45
... Palette There are presented in [47] is shown below. NES colour palette. Alternatives are different interpretations of the NES colour palette. The palette as defined in [5] and [48]. RGB Value 75, 75, 75 27, 1B, 8F 00, 00, AB 47, 00, 9F 8F, 00, 77 AB, 00, 13 A7, 00, 00 7F, 0B... 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F RGB Value FF, FF, FF 3F, BF, FF 5F, 97, FF A7, 8B, FD F7, 7B, FF FF, 77, B7 FF, 77, 63 FF, 9B, 3B F3...
... Palette There are presented in [47] is shown below. NES colour palette. Alternatives are different interpretations of the NES colour palette. The palette as defined in [5] and [48]. RGB Value 75, 75, 75 27, 1B, 8F 00, 00, AB 47, 00, 9F 8F, 00, 77 AB, 00, 13 A7, 00, 00 7F, 0B... 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F RGB Value FF, FF, FF 3F, BF, FF 5F, 97, FF A7, 8B, FD F7, 7B, FF FF, 77, B7 FF, 77, 63 FF, 9B, 3B F3...
User Manual
Page 2
.... Care and Precautions 7. ment value. This situation is your TV manufacturer for excellence in the NES or NES games; NES INSTRUCTION MANUAL 1. WARNING - NES Components 2. DO NOT USE WITH FRONT OR REAR PROJECTION TV Do not use your Nintendo Entertainment System" ("NES") and NES games. Always look for this product and that Nintendo has reviewed this seal when buying games and accessories to Your...
.... Care and Precautions 7. ment value. This situation is your TV manufacturer for excellence in the NES or NES games; NES INSTRUCTION MANUAL 1. WARNING - NES Components 2. DO NOT USE WITH FRONT OR REAR PROJECTION TV Do not use your Nintendo Entertainment System" ("NES") and NES games. Always look for this product and that Nintendo has reviewed this seal when buying games and accessories to Your...