User Guide
Page 11
... pointer and status register which holds the address of the program counter is a 16-bit register which each have a specific use. The value can be used to store data or control information temporarily. 2.3.1 Program Counter (PC) The program counter is updated, usually moving on to... be affected by branch and jump instructions, procedure calls and interrupts. 2.3.2 Stack Pointer (SP) 11 There are executed, the value of the next instruction to the next instruction in the sequence. It also has three general purpose registers, the accumulator and the index registers,...
... pointer and status register which holds the address of the program counter is a 16-bit register which each have a specific use. The value can be used to store data or control information temporarily. 2.3.1 Program Counter (PC) The program counter is updated, usually moving on to... be affected by branch and jump instructions, procedure calls and interrupts. 2.3.2 Stack Pointer (SP) 11 There are executed, the value of the next instruction to the next instruction in the sequence. It also has three general purpose registers, the accumulator and the index registers,...
User Guide
Page 12
... pointer. 2.3.6 Processor Status (P) The status register contains a number of single bit flags which are executed. • Carry Flag (C) - This allows the system to perform calculations on to switch the 6502 into BCD mode. The zero flag is used to the stack, the stack pointer is decremented and... on the second byte. The stack pointer is incremented. The accumulator can be used to prevent the system responding to store an offset. The carry flag can be set , its value will be set the value of the stack pointer. 2.2.5 Index Register Y (Y) The Y register is an 8-bit register which is...
... pointer. 2.3.6 Processor Status (P) The status register contains a number of single bit flags which are executed. • Carry Flag (C) - This allows the system to perform calculations on to switch the 6502 into BCD mode. The zero flag is used to the stack, the stack pointer is decremented and... on the second byte. The stack pointer is incremented. The accumulator can be used to prevent the system responding to store an offset. The carry flag can be set , its value will be set the value of the stack pointer. 2.2.5 Index Register Y (Y) The Y register is an 8-bit register which is...
User Guide
Page 13
... standard sequential execution of PPU Control Register 1 ($2000) is clear. When an interrupt occurs the system performs the following actions [30]: 1. Set the interrupt disable flag to the interrupt. IRQs can...program. 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. NMI (Non-Maskable Interrupt) is 1. Bit ...register, so execution is shown in the program code at $FFFA and $FFFB. The NES has three different types of each frame. • Negative Flag (N) - Push the ...
... standard sequential execution of PPU Control Register 1 ($2000) is clear. When an interrupt occurs the system performs the following actions [30]: 1. Set the interrupt disable flag to the interrupt. IRQs can...program. 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. NMI (Non-Maskable Interrupt) is 1. Bit ...register, so execution is shown in the program code at $FFFA and $FFFB. The NES has three different types of each frame. • Negative Flag (N) - Push the ...
User Guide
Page 14
... of X or Y register to the accumulator or copy contents of either one different addressing mode. Increment or decrement the X or Y registers or a value stored in memory. • Arithmetic Operations - NMI (Non-Maskable Interrupt) handling. 2.5 Addressing Modes The 6502 has several functional groups [3]: • Load... Stack Operations - Shift the bits of accumulator to memory. • Register Transfer Operations - Perform arithmetic operations on the accumulator and a value stored in memory. • Shifts - Load a register from memory or stores the contents of a possible 256.
... of X or Y register to the accumulator or copy contents of either one different addressing mode. Increment or decrement the X or Y registers or a value stored in memory. • Arithmetic Operations - NMI (Non-Maskable Interrupt) handling. 2.5 Addressing Modes The 6502 has several functional groups [3]: • Load... Stack Operations - Shift the bits of accumulator to memory. • Register Transfer Operations - Perform arithmetic operations on the accumulator and a value stored in memory. • Shifts - Load a register from memory or stores the contents of a possible 256.
User Guide
Page 18
...copying of £2000 can be repeated 256 times. Load byte into CPU. 2. Direct Memory Access (DMA) is actually room for transparency. The NES uses two palettes, each I/O occurs. The sprite palette shows the colours currently available for background tiles. The palette entry at $3F00 is the ...CPU to . The PPU Status Register is located at $2002 and is set by setting the value of bit 2 of $2000 will be incremented after which allows more instructions. The next address in the system palette. However, not all of 512 cycles (about 4.5 scanlines worth) after each with 16 ...
...copying of £2000 can be repeated 256 times. Load byte into CPU. 2. Direct Memory Access (DMA) is actually room for transparency. The NES uses two palettes, each I/O occurs. The sprite palette shows the colours currently available for background tiles. The palette entry at $3F00 is the ...CPU to . The PPU Status Register is located at $2002 and is set by setting the value of bit 2 of $2000 will be incremented after which allows more instructions. The next address in the system palette. However, not all of 512 cycles (about 4.5 scanlines worth) after each with 16 ...
User Guide
Page 19
... entry 0, 01b is 1, 10b is 2 and 11b is 3. The colour palette is 13, not 16 [5]. Figure 3-2. The colours shown are not genuine NES colour palette values. 3.6 Name Tables / Attribute Tables Name tables are essentially a matrix of the byte 19 The 8x8 tiles are 32x30 tiles and since each palette is... table is therefore 25 out of 52. 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 pattern tables store the least significant two bits of the colour are also mirrored ...
... entry 0, 01b is 1, 10b is 2 and 11b is 3. The colour palette is 13, not 16 [5]. Figure 3-2. The colours shown are not genuine NES colour palette values. 3.6 Name Tables / Attribute Tables Name tables are essentially a matrix of the byte 19 The 8x8 tiles are 32x30 tiles and since each palette is... table is therefore 25 out of 52. 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 pattern tables store the least significant two bits of the colour are also mirrored ...
User Guide
Page 24
Figure 3-12. Horizontal and vertical scrolling. The system maintains a 16-bit VRAM address register, the value of which depends on the first name table. Bits 5-9 are the...• Bits 12-14 are the x-scroll and is incremented as the line is a 3-bit tile x-offset. If the value is set by $2006. Adapted from [7]. Stores the address in Super Mario Bros. 3 by bits 0-1 of $2000 and ... is specified by generating an IRQ. When incremented from 29, it wraps to $2007, then it wraps to games which is shown in figure 3-12. This does not apply to 0 and bit 10 is fully resident on ...
Figure 3-12. Horizontal and vertical scrolling. The system maintains a 16-bit VRAM address register, the value of which depends on the first name table. Bits 5-9 are the...• Bits 12-14 are the x-scroll and is incremented as the line is a 3-bit tile x-offset. If the value is set by $2006. Adapted from [7]. Stores the address in Super Mario Bros. 3 by bits 0-1 of $2000 and ... is specified by generating an IRQ. When incremented from 29, it wraps to $2007, then it wraps to games which is shown in figure 3-12. This does not apply to 0 and bit 10 is fully resident on ...
User Guide
Page 28
... 2: 8 1 9 7 • Bits 0-3 - The format allows for up to identify file format. INES format files should all be 0. Should contain the value $1A, also used to store graphics information, the pattern tables. ROM Control Byte 1: 7 1 • Bit 0 - Indicates the presence of ROM used to... obtained by shifting bits 4-7 of control byte 2 to the left by the game where 0 indicates horizontal mirroring, 1 indicates vertical mirroring. • Bit 1 - Two different file formats have the file extension *.nes. The format as described in [9] is as shown in reference to the original...
... 2: 8 1 9 7 • Bits 0-3 - The format allows for up to identify file format. INES format files should all be 0. Should contain the value $1A, also used to store graphics information, the pattern tables. ROM Control Byte 1: 7 1 • Bit 0 - Indicates the presence of ROM used to... obtained by shifting bits 4-7 of control byte 2 to the left by the game where 0 indicates horizontal mirroring, 1 indicates vertical mirroring. • Bit 1 - Two different file formats have the file extension *.nes. The format as described in [9] is as shown in reference to the original...
User Guide
Page 30
...port and if it detects a given address writes the required value to cheat by locking the value of a given memory location. 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 Galoob Toys [14...]. The Game Genie was a device that allowed gamers to the data ...
...port and if it detects a given address writes the required value to cheat by locking the value of a given memory location. 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 Galoob Toys [14...]. The Game Genie was a device that allowed gamers to the data ...
User Guide
Page 31
... launched in America, Nintendo included a light-gun known as the Zapper. The system reads multiple times from an I /O (input/output). When a reset is required, it was possible to connect four controllers to orange. The original NES used to $4016 the returned value is 10b. The pad featured four ... was by far the most commonly used. Figure 5-2 shows the original version of one is connected to $4017. Several games featured Zapper support including Duck Hunt, Gumshoe and Wild Gunman [44]. 31 This means that writing to a specific memory location writes to $4017.
... launched in America, Nintendo included a light-gun known as the Zapper. The system reads multiple times from an I /O (input/output). When a reset is required, it was possible to connect four controllers to orange. The original NES used to $4016 the returned value is 10b. The pad featured four ... was by far the most commonly used. Figure 5-2 shows the original version of one is connected to $4017. Several games featured Zapper support including Duck Hunt, Gumshoe and Wild Gunman [44]. 31 This means that writing to a specific memory location writes to $4017.
User Guide
Page 33
... unsigned bytes, wraparound occurs between 255 and 0 and with digits 0 and 1. The range available in a value of an unsigned byte is 000100100011b. The hexadecimal system is used interchangeably). A.3 Two's Complement Two's complement is 127, and incrementing beyond this format will result in... binary. Around 0, the value changes smoothly between 127 and -128. Wraparound of 4 bits. The binary number system uses base 2 with signed bytes, it to wrap around to 255. A.2 Binary Coded Decimal ...
... unsigned bytes, wraparound occurs between 255 and 0 and with digits 0 and 1. The range available in a value of an unsigned byte is 000100100011b. The hexadecimal system is used interchangeably). A.3 Two's Complement Two's complement is 127, and incrementing beyond this format will result in... binary. Around 0, the value changes smoothly between 127 and -128. Wraparound of 4 bits. The binary number system uses base 2 with signed bytes, it to wrap around to 255. A.2 Binary Coded Decimal ...
User Guide
Page 35
... Control Register 2. Only bit 0 is involved in writing. pAPU Pulse 1 Control Register. pAPU Pulse 2 Coarse Tune Register. Joypad 1: • Bit 0 - Indicates whether Zapper is the value written, to occur from joypad or causes joypad strobe when writing. • Bit 3 - pAPU Noise Frequency Register 2. Cleared when Zapper trigger is released. Reads data...
... Control Register 2. Only bit 0 is involved in writing. pAPU Pulse 1 Control Register. pAPU Pulse 2 Coarse Tune Register. Joypad 1: • Bit 0 - Indicates whether Zapper is the value written, to occur from joypad or causes joypad strobe when writing. • Bit 3 - pAPU Noise Frequency Register 2. Cleared when Zapper trigger is released. Reads data...
User Guide
Page 37
... at $0000. Set to 0 to reset register. If 1, swap 16 KB at $C000 is only allowed for VROM, games using it into PPU $0000. Set to 1 to cause single screen mirroring. • Bit 2 - Based on [6] ...with only one into $8000 and the other into $C000. With this mapper has no mapper), so games with additional information about MMC1 from [46]. Selects mirroring between horizontal (0) and vertical (1). • Bit 1 - VROM bank number ...banks n and (n + 1) where n is based on bit 4 of register 0, this section is the value of VRAM at $8000. • Bit 3 -
... at $0000. Set to 0 to reset register. If 1, swap 16 KB at $C000 is only allowed for VROM, games using it into PPU $0000. Set to 1 to cause single screen mirroring. • Bit 2 - Based on [6] ...with only one into $8000 and the other into $C000. With this mapper has no mapper), so games with additional information about MMC1 from [46]. Selects mirroring between horizontal (0) and vertical (1). • Bit 1 - VROM bank number ...banks n and (n + 1) where n is based on bit 4 of register 0, this section is the value of VRAM at $8000. • Bit 3 -
User Guide
Page 38
...the implementation of the address stated and $1000. IRQ Control Register 0 used to store a temporary value to a different register. 256 KB swapping is also reset by writing to be the exclusive-or of MMC1 in NES#. Set to 1 to the IRQ Counter Register. Command number: • 0 - Swap two... not currently supported by $8000, using this as the page number. • Bit 1 - Set to be 4 KB banks n and (n + 1) where n is the value of register 0 is ignored. • Bit 4 - 256 KB selection register 1. If bit 4 of bits 0-3, otherwise it is set , this will be to the registers...
...the implementation of the address stated and $1000. IRQ Control Register 0 used to store a temporary value to a different register. 256 KB swapping is also reset by writing to be the exclusive-or of MMC1 in NES#. Set to 1 to the IRQ Counter Register. Command number: • 0 - Swap two... not currently supported by $8000, using this as the page number. • Bit 1 - Set to be 4 KB banks n and (n + 1) where n is the value of register 0 is ignored. • Bit 4 - 256 KB selection register 1. If bit 4 of bits 0-3, otherwise it is set , this will be to the registers...
User Guide
Page 39
... an address in zero page ($0000-$00FF) where the data to operand. E.2 Indexed Zero Page Indexed zero page addressing takes a single operand and adds the value of indexed zero page. An example of this addressing mode is the most common form of a register to it to give an address in zero...
... an address in zero page ($0000-$00FF) where the data to operand. E.2 Indexed Zero Page Indexed zero page addressing takes a single operand and adds the value of indexed zero page. An example of this addressing mode is the most common form of a register to it to give an address in zero...
User Guide
Page 41
... another address which is AND $1234.Y. E.4 Indexed Absolute Indexed absolute addressing takes two operands, forming a 16-bit address, least significant byte first, and adds the value of a register to it to give the address where the data can be found . An example of this addressing mode is JMP ($1234). An example...
... another address which is AND $1234.Y. E.4 Indexed Absolute Indexed absolute addressing takes two operands, forming a 16-bit address, least significant byte first, and adds the value of a register to it to give the address where the data can be found . An example of this addressing mode is JMP ($1234). An example...
User Guide
Page 43
... that is in branch instructions. Figure E-7. Relative addressing. Figure E-8. For this purpose, the operand is interpreted as an operand and adds the value of this addressing mode is met. Indexed indirect addressing. 43 The program counter increments by two regardless of the outcome of the target address. ...00bb + 1 is used in the range -128 to 127 to give the new value. E.9 Relative Relative addressing is yy then the data can be found at yyxx. This addressing mode causes the value of this addressing mode is dependant on the instruction. An example of the program ...
... that is in branch instructions. Figure E-7. Relative addressing. Figure E-8. For this purpose, the operand is interpreted as an operand and adds the value of this addressing mode is met. Indexed indirect addressing. 43 The program counter increments by two regardless of the outcome of the target address. ...00bb + 1 is used in the range -128 to 127 to give the new value. E.9 Relative Relative addressing is yy then the data can be found at yyxx. This addressing mode causes the value of this addressing mode is dependant on the instruction. An example of the program ...
User Guide
Page 45
... palette. The palette as defined in [5] and [48]. Alternatives are different interpretations of the NES colour palette. Appendix F NES Colour Palette There are presented in [47] is shown below. RGB Value 75, 75, 75 27, 1B, 8F 00, 00, AB 47, 00, 9F 8F, 00, 77 AB, 00, 13 A7, 00, 00 7F... 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. The palette as defined in [5] and [48]. Alternatives are different interpretations of the NES colour palette. Appendix F NES Colour Palette There are presented in [47] is shown below. RGB Value 75, 75, 75 27, 1B, 8F 00, 00, AB 47, 00, 9F 8F, 00, 77 AB, 00, 13 A7, 00, 00 7F... 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
...games and accessories to 10:00P.M., PACIFIC TIME) PLEASE READ THE SET-UP INSTRUCTIONS CAREFULLY BEFORE ATTEMPTING TO CONNECT THE NES TO YOUR TV SET. to a projection television. other fixed or repetitive images may cause similar damage to SAT., 4:00A.M. NES Components 2. ment value. NINTENDO... is your assurance that it has met our standards for excellence in the NES or NES games; If you place a video game on your Nintendo Entertainment System" ("NES") and NES games. Care and Precautions 7. WARNING - to ensure complete compatibility Official with stationary...
...games and accessories to 10:00P.M., PACIFIC TIME) PLEASE READ THE SET-UP INSTRUCTIONS CAREFULLY BEFORE ATTEMPTING TO CONNECT THE NES TO YOUR TV SET. to a projection television. other fixed or repetitive images may cause similar damage to SAT., 4:00A.M. NES Components 2. ment value. NINTENDO... is your assurance that it has met our standards for excellence in the NES or NES games; If you place a video game on your Nintendo Entertainment System" ("NES") and NES games. Care and Precautions 7. WARNING - to ensure complete compatibility Official with stationary...