Home > Nintendo > Video Game Console > Nintendo 8 Bit Manual

Nintendo 8 Bit Manual

    Download as PDF Print this page Share this page

    Have a look at the manual Nintendo 8 Bit Manual online for free. It’s possible to download the document as PDF or print. UserManuals.tech offer 91 Nintendo manuals and user’s guides for free. Share the user manual or guide on Facebook, Twitter or Google+.

    							 
     
    41
    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. For example, if the operands are bb and cc, the address of the data will be ccbb + X. 
    There are two forms of indexed absolute addressing: 
     
    •  Absolute, X - Add contents of X register to operand. An example of this addressing mode 
    is AND $1234.X. 
    •  Absolute, Y - Add contents of Y register to operand. An example of this addressing mode 
    is AND $1234.Y. 
     
     
     
    Figure E-4. Indexed absolute addressing. 
     
    E.5 Indirect 
     
    Indirect addressing takes two operands, forming a 16-bit address, which identifies the least 
    significant byte of another address which is where the data can be found. For example if the 
    operands are bb and cc, and ccbb contains xx and ccbb + 1 contains yy, then the real target 
    address is yyxx. On the 6502, only JMP (Jump) uses this addressing mode and an example 
    is JMP ($1234). The diagram shows the general form of indirect addressing. However, with 
    the JMP instruction, instead of yyxx pointing to the data and the program counter being 
    increased by three, the program counter is set to yyxx and execution resumes from that 
    address. 
      
    						
    							 
     
    42
     
     
    Figure E-5. Indirect addressing. 
     
    E.6 Implied 
     
    Many instructions do not require access to operands stored in memory. Examples of implied 
    instructions are CLD (Clear Decimal Mode) and NOP (No Operation). 
     
    E.7 Accumulator 
     
    Some instructions operate directly on the contents of the accumulator. The only instructions 
    to use this addressing mode are the shift instructions, ASL (Arithmetic Shift Left), LSR 
    (Logical Shift Right), ROL (Rotate Left) and ROR (Rotate Right). 
     
    E.8 Immediate 
     
    Instructions which use immediate addressing operate directly on a constant supplied as an 
    operand to the instruction. Immediate instructions are indicated by prefacing the operand 
    with #, for example AND #$12. 
     
     
     
    Figure E-6. Immediate addressing. 
      
    						
    							 
     
    43
    E.9 Relative 
     
    Relative addressing is used in branch instructions. This addressing mode causes the value 
    of the program counter to change if a certain condition is met. The condition is dependant on 
    the instruction. The program counter increments by two regardless of the outcome of the 
    condition but if the condition is true the single operand is added to the program counter to 
    give the new value. For this purpose, the operand is interpreted as a signed byte, that is in 
    the range -128 to 127 to allow forward and backward branching. An example of this 
    addressing mode is BCS *+5 where * represents the current value of the program counter. 
     
     
     
    Figure E-7. Relative addressing. 
     
    E.10 Indexed Indirect 
     
    Indexed indirect (also known as pre-indexed) addressing takes a single byte 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 target address. For example, if the operand is bb, 00bb is xx and 00bb 
    + 1 is yy then the data can be found at yyxx. An example of this addressing mode is AND 
    ($12,X). 
     
     
     
    Figure E-8. Indexed indirect addressing.  
    						
    							 
     
    44
     
    E.11 Indirect Indexed 
     
    Indirect indexed (also known as post-indexed) addressing takes a single operand which 
    gives the zero page address of the least significant byte of a 16-bit address which is then 
    added to the Y register to give the target address. For example, if the operand is bb, 00bb is 
    xx and 00bb + 1 is yy, then the data can be found at yyxx. An example of this addressing 
    mode is AND ($12),Y. 
     
     
     
    Figure E-19. Indirect indexed addressing. 
      
    						
    							 
     
    45
    Appendix F 
    NES Colour Palette 
     
    There are different interpretations of the NES colour palette. The palette as defined in [47] is 
    shown below. Alternatives are presented in [5] and [48]. 
     
     
     
    Figure F-1. NES colour palette. 
     
    Palette 
    Entry RGB Value  Palette 
    Entry RGB Value 
    00  75, 75, 75  20  FF, FF, FF 
    01  27, 1B, 8F  21  3F, BF, FF 
    02  00, 00, AB  22  5F, 97, FF 
    03  47, 00, 9F  23  A7, 8B, FD 
    04  8F, 00, 77  24  F7, 7B, FF 
    05  AB, 00, 13  25  FF, 77, B7 
    06  A7, 00, 00  26  FF, 77, 63 
    07  7F, 0B, 00  27  FF, 9B, 3B 
    08  43, 2F, 00  28  F3, BF, 3F 
    09  00, 47, 00  29  83, D3, 13 
    0A  00, 51, 00  2A  4F, DF, 4B 
    0B  00, 3F, 17  2B  58, F8, 98 
    0C  1B, 3F, 5F  2C  00, EB, DB 
    0D  00, 00, 00  2D  00, 00, 00 
    0E  00, 00, 00  2E  00, 00, 00 
    0F  00, 00, 00  2F  00, 00, 00 
    10  BC, BC, BC  30  FF, FF, FF 
    11  00, 73, EF  31  AB, E7, FF 
    12  23, 3B, EF  32  C7, D7, FF 
    13  83, 00, F3  33  D7, CB, FF 
    14  BF, 00, BF  34  FF, C7, FF 
    15  E7, 00, 5B  35  FF, C7, DB 
    16  DB, 2B, 00  36  FF, BF, B3 
    17  CB, 4F, 0F  37  FF, DB, AB 
    18  8B, 73, 00  38  FF, E7, A3 
    19  00, 97, 00  39  E3, FF, A3 
    1A  00, AB, 00  3A  AB, F3, BF 
    1B  00, 93, 3B  3B  B3, FF, CF 
    1C  00, 83, 8B  3C  9F, FF, F3 
    1D  00, 00, 00  3D  00, 00, 00 
    1E  00, 00, 00  3E  00, 00, 00 
    1F  00, 00, 00  3F  00, 00, 00  
    						
    							 
     
    46
    References 
     
    [1]  Patrick Diskin, “Nintendo Entertainment System Emulator”, School of Computer 
    Science, The University of Birmingham, 2004 
    [2]  Andrew John Jacobs, “6502 Reference”, 
    http://www.obelisk.demon.co.uk/6502/reference.html, 2002 
    [3]  Andrew John Jacobs, “6502 Instructions”, 
    http://www.obelisk.demon.co.uk/6502/instructions.html, 2002 
    [4]  Andrew John Jacobs, “6502 Architecture”, 
    http://www.obelisk.demon.co.uk/6502/architecture.html, 2002 
    [5]  Chris Covell, “NES Technical / Emulation / Development FAQ 1.4”, NesDev, 
    http://nesdev.parodius.com/NESTechFAQ.htm#nessnescompat, 2002 
    [6]  Firebug, “Comprehensive NES Mapper Document 0.8”, NesDev, 
    http://nesdev.parodius.com/mappers.zip, 1999 
    [7]  Jeremy Chadwick, “Nintendo Entertainment System Documentation 2.0”, NesDev, 
    http://nesdev.parodius.com/ndox200.zip, 1999 
    [8]  Loopy, “The Skinny on NES Scrolling”, NesDev, 
    http://nesdev.parodius.com/loopyppu.zip, 1999 
    [9]  Marat Fayzullin, “Nintendo Entertainment System Architecture 2.4”, Department of 
    Computer Science, University of Maryland, http://fms.komkon.org/EMUL8/NES.html 
    (link no longer works, a copy of version 2.2 is at http://oldnes.sourceforge.net/doc/NES-
    %20by%20Marat%20Fayzullin.html), 2002 
    [10] David Sheff, Game Over: Nintendo’s Battle To Dominate An Industry, Hodder and 
    Stoughton, 1993 
    [11]  Nintendo, “Company History”, Nintendo of America Inc., 
    http://www.nintendo.com/corp/history.jsp, 2004 
    [12] Jonathan Smith, Construction Complete? Computer Gaming’s Battle To Take Over The 
    World, Future Publishing Ltd, 2000 
    [13]  Dale Hansen, “Nintendo Entertainment System / Famicom Console Information”, 
    Console Database, http://consoledatabase.retrofaction.com/consoleinfo/nes/ 
    [14]  GameSpy, “The Museum: Nintendo Entertainment System”, GameSpy, 
    http://www.classicgaming.com/museum/nes/ 
    [15]  Aaron Mims, The Video Game Museum, 
    http://www.vgmuseum.com/systems/topnes/nes.jpg 
    [16]  Marcus Liedholm and Mattias Liedholm, “The History of the Nintendo Entertainment 
    System or Famicom”, Nintendo Land,
     http://www.nintendoland.com/nes/history.htm 
    [17]  Marat Fayzullin, “How To Write a Computer Emulator”, Department of Computer 
    Science, University of Maryland, http://fms.komkon.org/EMUL8/HOWTO.html (link no 
    longer works, a copy is at http://people.ac.upc.es/vmoya/docs/HowToMarat.html) 
    [18]  Arnold Burdett, Diana Burkhardt, John Cushion, Aline Cumming, Alan Hunter, Frank 
    Hurvid, Thomas Ng, Tim Reeve, John Southall, Brian Jackson, John Jaworski and 
    Graham Rogers, The British Computer Society - A Glossary of Computing Terms 
    (Ninth Edition), pp. 30-31, Longman, 1998 
    [19]  Ian Buck, “Hardware Console Design”, Department of Computer Science, Princeton 
    University, http://graphics.stanford.edu/~ianbuck/proj/Nintendo/Nintendo.html, 1998 
    [20] Wikipedia, “Binary translation”, Wikipedia, 
    http://en.wikipedia.org/wiki/Binary_translation, 2003 
    [21]  Sam Michaels, “Zophar’s Domain: NES Emulators”, Zophar’s Domain, 
    http://www.zophar.net/nes.html, 2004 
    [22]  Nikolas Gavalas, “How to write an emulator”, Department of Computer Engineering and 
    Computer Science, College of Engineering, California State University Long Beach, 
    http://www.cecs.csulb.edu/~hill/cecs497/nestreme/howto.html, 2002 
    [23] TeamKNOx, “ChameleonNES”, 
    http://home.att.ne.jp/gamma/TeamKNOx/ChameleonNES/ChameleonNES.html, 2003  
    						
    							 
     
    47
    [24]  RealityMan, “UltraHLE - Nintendo 64 High Level Emulator”, www.ultrahle.com, 2003 
    [25]  Nintendo, “Legal Information (Copyrights, Emulators, ROMs, etc.)”, Nintendo of 
    America Inc., http://www.nintendo.com/corp/legal.jsp 
    [26]  The Scribe, “The Nintendo Emulation FAQ v2.0 - A Commentary”, EmulationZone, 
    http://www.emulationzone.org/articles/emufaq/NFAQ20_response.zip, 1999 
    [27]  Marcus Liedholm and Mattias Liedholm, “Nintendo Entertainment System (NES) or 
    Famicom Tech specs and Hardware”, Nintendo Land, 
    http://www.nintendoland.com/home2.htm?nes/tech.htm, 2000 
    [28]  Christian Nutt and Benjamin Turner, “Nintendo Famicom: 20 Years Of Fun”, GameSpy, 
    http://archive.gamespy.com/articles/july03/famicom/index.shtml, 2003 
    [29] Lance A. Leventhal, 6502 Assembly Language Programming (Second Edition), 
    McGraw-Hill, 1986 
    [30] Alan Clements, The Principles of Computer Hardware (Second Edition), pp. 363-366, 
    Oxford, 1991 
    [31] Stuart Anderson, Microprocessor Technology, Newnes, 1994 
    [32]  John Picken, “6502 Opcodes”, 6502.org, 
    http://www.6502.org/tutorials/6502opcodes.htm, 2001 
    [33]  Nintendo, “Nintendo Power Issue 22”, NESPlayer.com, 
    http://www.nesplayer.com/technical/tech.htm 
    [34]  Wikipedia, “NTSC”, Wikipedia, http://en.wikipedia.org/wiki/NTSC, 2004 
    [35]  Wikipedia, “PAL”, Wikipedia, http://en.wikipedia.org/wiki/PAL, 2004 
    [36]  Video Game Exchange, “NES 72-pin Repair”, Video Game Exchange, 
    http://www.videogex.com/repair.htm 
    [37]  Cory Archangel, “Game Mods”, 21C Magazine,
     
    http://www.21cmagazine.com/issue2/cory_clouds.html, 2003 
    [38]  Michael Martin-Banks, “Test Carts”, NESPlayer.com, 
    http://www.nesplayer.com/features/test%20carts/test.htm 
    [39]  Martin Nielsen, “The Nintendo Entertainment System (NES) FAQ 3.0A”, 
    http://www.neshq.com/hardware/general/nintendo_entertainment_system.txt, 
    NESHQ.com, 1997 
    [40]  Tennessee Carmel-Veilleux, “UNIF File Format Specifications”, NesDev, 
    http://www.parodius.com/~veilleux/UNIF_current.txt, 2000 
    [41]  Mikko Heinonen, Ville Heinonen and Manu Parssinen, “Nintendo Famicom Disk 
    System”, Pelikonepeijoonit, http://www.pelikonepeijoonit.net/cgi-
    bin/page.cgi?pkpcode=famidisk 
    [42]  Michael Martin-Banks, “Game Genie”, NESPlayer.com, 
    http://www.nesplayer.com/database/accessories/gg.htm 
    [43]  Michael Martin-Banks, “NES Controller (Basic)”, NESPlayer.com, 
    http://www.nesplayer.com/database/accessories/images/control.jpg 
    [44]  Jason Lunsford, “The Zapper FAQ 0.9”, NESHQ.com, 
    http://www.neshq.com/hardware/general/nes_zapper.txt, 2000 
    [45] RetroGames, http://www.retrogames.co.uk/stock/assets/images/Mach_-
    _Nes_Zapper.jpg 
    [46]  Matthew J. Richey, “Nintendo MMC1 info for 8-bit NES carts”, NesDev, 
    http://nesdev.parodius.com/mmc1.txt 
    [47]  Loopy, “NES Palette”, NesDev, http://nesdev.parodius.com/pal.txt 
    [48]  Matt Conte, “NES Palette”, NesDev, http://nesdev.parodius.com/nespal.txt  
    						
    All Nintendo manuals Comments (0)

    Related Manuals for Nintendo 8 Bit Manual