| 
				
				 The GameBoy is based on the Zilog Z80 processor.  There are seven main 
				registers (A, B, C, D, E, H, L) all are 8bit registers, six of these can pair together to 
				make three 16bit registers (BC, DE, HL).  There is also a Flags (F) register, which 
				for the purposes of some commands is paired with the A register to make a 16bit register (AF)
				, a Stack Pointer and a Program	Counter.  Following is a table showing these as well as 
				the bits of the flags register.
				 
				
				
				REGISTERS
				 
				
				 
					
					
					| HIGH BYTE (bits 15 - 8 if paired) | 
					LOW BYTE (bits 7 - 0) | 
					DESCRIPTION | 
					 
					
					
					| A | 
					F | 
					Accumulator / Flags registers | 
					 
					
					| B | 
					C | 
					General Purpose Registers | 
					 
					
					| D | 
					E | 
					General Purpose Registers | 
					 
					
					| H | 
					L | 
					General Purpose Registers - Usually a memory pointer | 
					 
					
					| SP | 
					Stack Pointer | 
					 
					
					| PC | 
					Program Counter | 
					 
				 
				
				
				FLAGS REGISTER
				 
				
					
					
					| BIT NUMBER | 
					FLAG | 
					DESCRIPTION | 
					 
					
					
					| 7 | 
					Z | 
					Zero Flag. Set if the last math operation resulted in a zero | 
					 
					
					| 6 | 
					N | 
					Subtract Flag.  Set if the last math operation involved a subtraction | 
					 
					
					| 5 | 
					H | 
					Half Carry Flag.  Set if the last math operation cause a carry from the lower nibble (bit 3-4) | 
					 
					
					| 4 | 
					C | 
					Carry Flag.   Set if the last math operation cause a carry (bit 7-8) | 
					 
					
					| 3 | 
					X | 
					Not Used | 
					 
					
					| 2 | 
					X | 
					Not Used | 
					 
					
					| 1 | 
					X | 
					Not Used | 
					 
					
					| 0 | 
					X | 
					Not Used | 
					 
				 
				
				COMMAND DESCRIPTIONS
				 
				
					
					
					
						ADC x, y 
						ADD x, y 
						AND x
					 | 
					
						Add y + CF to x 
						Add y to x 
						And x to A
					 | 
					 
					
					| 
						BIT b, x
					 | 
					
						Test bit b of x
					 | 
					 
					
					
						CALL c, x 
						CALL x 
						CCF 
						CP x 
						CPL
					 | 
					
						If condition c is true, call subroutine	x 
						Call subroutine x 
						Complement carry flag 
						Compare A with x 
						Complement A
					 | 
					 
					
					
						DAA 
						DEC x 
						DI
					 | 
					
						Decimal adjust A 
						Decrement x by 1 
						Disable interrupts
					 | 
					 
					
					| 
						EI
					 | 
					
						Enable interrupts
					 | 
					 
					
					| 
						HALT
					 | 
					
						Halt (wait for interrupt or reset)
					 | 
					 
					
					| 
						INC x
					 | 
					
						Increment x by 1
					 | 
					 
					
					
						JP c, x 
						JP x 
						JR c, d 
						JR d
					 | 
					
						If condition c is true jump to location x 
						Jump to location x 
						If condition c is true jump relative by d 
						Jump relative by d
					 | 
					 
					
					
						LD x, y 
						LDD x, y 
						LDI x, y
					 | 
					
						Load x with y 
						Load A with (HL), DEC HL 
						Load A with (HL), INC HL | 
					 
					
					| 
						NOP
					 | 
					
						No operation
					 | 
					 
					
					| 
						OP x
					 | 
					
						OR x to A
					 | 
					 
					
					
						POP x 
						PUSH x
					 | 
					
						Pop x from the top of the stack, updating SP 
						Push x onto the top of the stack, updating SP
					 | 
					 
					
					
						RES b, x 
						RET 
						RET c 
						RETI 
						RST x
					 | 
					
						Reset bit b of x 
						Return from subroutine 
						If condition c is true, return from subroutine 
						Return from interrupt 
						Call subbroutine at x (x = 00h, 08h, 10h, 18h, 20h, 28h, 30h, 38h)
					 | 
					 
					
					
						SBC x 
						SCF 
						SET b, x 
						STOP 
						SUB x 
						SWAP x
					 | 
					
						Subtract y + CF from x 
						Set carry flag 
						Set bit b of x 
						Stop CPU until P1-P10 go high 
						Subtract x from A 
						Swap register nibbles
					 | 
					 
					
					| 
						XOR x
					 | 
					
						XOR x to A
					 | 
					 
				 
				
				COMMANDS
				 
				
				
				Please note that the timings for the instructions are given in Machine Cycles, to convert 
				these to Clock Cycles just multiply the number by four.  The four columns Z,N,H,C 
				refer to the flags in the  flags register, 0 means reset, 1 means set, X means set 
				as expected (i.e. if the result is zero then the zero flags would be set, else reset) and 
				blank means it is not effected.
				
				 
				
					
					
					|   | 
					Op-code | 
					Destination | 
					Source | 
					Z | 
					N | 
					H | 
					C | 
					M/C | 
					Bytes | 
					 
					
					
					A  | 
					
						ADC A, (HL) 
						ADC A, n8 
						ADC A, r8
					 | 
					
						A 
						A 
						A
					 | 
					
						(HL) 
						8bit integer 
						A, B, C, D, E, H, L
					 | 
					
						X 
						X 
						X
					 | 
					
						0 
						0 
						0
					 | 
					
						X 
						X 
						X
					 | 
					
						X 
						X 
						X
					 | 
					
						2 
						2 
						1
					 | 
					
						1 
						2 
						1
					 | 
					 
					
					
						ADD A,(HL) 
						ADD A, n8 
						ADD A, r8 
						ADD HL, r16 
						ADD SP, e8
					 | 
					
						A 
						A 
						A 
						HL 
						SP
					 | 
					
						(HL) 
						8bit integer 
						A, B, C, D, E, H, L 
						BC, DE, SP 
						8bit offset
					 | 
					
						X 
						X 
						X 
						 
						0
					 | 
					
						0 
						0 
						0 
						0 
						0
					 | 
					
						X 
						X 
						X 
						X 
						X
					 | 
					
						X 
						X 
						X 
						X 
						X
					 | 
					
						2 
						2 
						1 
						2 
						4
					 | 
					
						1 
						2 
						1 
						1 
						2
					 | 
					 
					
					
						AND (HL) 
						AND n8 
						AND r8
					 | 
					
						A 
						A 
						A
					 | 
					
						(HL) 
						8bit integer 
						A, B, C, D, E, H, L
					 | 
					
						X 
						X 
						X
					 | 
					
						0 
						0 
						0
					 | 
					
						1 
						1 
						1
					 | 
					
						0 
						0 
						0
					 | 
					
						2 
						2 
						1
					 | 
					
						1 
						2 
						1
					 | 
					 
					
					B  | 
					
						BIT n3, (HL) 
						BIT n3, r8
					 | 
					
						Zero Flag 
						Zero Flag
					 | 
					
						(HL) 
						A, B, C, D, E, H, L
					 | 
					
						X 
						X
					 | 
					
						0 
						0
					 | 
					
						1 
						1
					 | 
					
						  
						  
					 | 
					
						3 
						2
					 | 
					
						2 
						2
					 | 
					 
					
					| C | 
					
						CALL cc, n16 
						CALL n16
					 | 
					
						PC 
						PC
					 | 
					
						16bit address 
						16bit address
					 | 
					  | 
					  | 
					  | 
					  | 
					
						6/3 
						6
					 | 
					
						3 
						3
					 | 
					 
					
					| 
						CCF
					 | 
					
						Carry Flag
					 | 
					  | 
					  | 
					
						0
					 | 
					
						0
					 | 
					
						X
					 | 
					
						1
					 | 
					
						1
					 | 
					 
					
					
						CP (HL) 
						CP n8 
						CP r8
					 | 
					
						Flags 
						Flags 
						Flags
					 | 
					
						(HL) 
						8bit integer 
						A, B, C, D, E, H, L
					 | 
					
						X 
						X 
						X
					 | 
					
						1 
						1 
						1
					 | 
					
						X 
						X 
						X
					 | 
					
						X 
						X 
						X
					 | 
					
						2 
						2 
						1
					 | 
					
						1 
						2 
						1
					 | 
					 
					
					| 
						CPL
					 | 
					
						A
					 | 
					
						A
					 | 
					  | 
					
						1
					 | 
					
						1
					 | 
					  | 
					
						1
					 | 
					
						1
					 | 
					 
					
					| D | 
					
						DAA
					 | 
					
						A
					 | 
					
						A
					 | 
					
						X
					 | 
					  | 
					
						0
					 | 
					
						X
					 | 
					
						1
					 | 
					
						1
					 | 
					 
					
					
						DEC (HL) 
						DEC r16 
						DEC r8
					 | 
					
						(HL) 
						BC, DE, HL, SP 
						A, B, C, D, E, H, L
					 | 
					
						(HL) 
						BC, DE, HL, SP 
						A, B, C, D, E, H, L
					 | 
					
						X 
						 
						X
					 | 
					
						1 
						 
						1
					 | 
					
						X 
						 
						X
					 | 
					  | 
					
						3 
						2 
						1
					 | 
					
						1 
						1 
						1
					 | 
					 
					
					| 
						DI
					 | 
					  | 
					  | 
					  | 
					  | 
					  | 
					  | 
					
						1
					 | 
					
						1
					 | 
					 
					
					| E | 
					
						EI
					 | 
					  | 
					  | 
					  | 
					  | 
					  | 
					  | 
					
						1
					 | 
					
						1
					 | 
					 
					
					| H | 
					
						HALT
					 | 
					  | 
					  | 
					  | 
					  | 
					  | 
					  | 
					
						1
					 | 
					
						1
					 | 
					 
					
					| I | 
					
						INC (HL) 
						INC r16 
						INC r8
					 | 
					
						(HL) 
						BC, DE, HL, SP 
						A, B, C, D, E, H, L
					 | 
					
						(HL) 
						BC, DE, HL, SP 
						A, B, C, D, E, H, L
					 | 
					
						X 
						 
						X
					 | 
					
						0 
						 
						0
					 | 
					
						X 
						 
						X
					 | 
					  | 
					
						3 
						2 
						1
					 | 
					
						1 
						1 
						1
					 | 
					 
					
					| J | 
					
						JP (HL) 
						JP cc, n16
					 | 
					
						PC 
						PC
					 | 
					
						(HL) 
						16bit address
					 | 
					  | 
					  | 
					  | 
					  | 
					
						1 
						4/3
					 | 
					
						1 
						3
					 | 
					 
					
					
						JP n16 
						JR cc, e8 
						JR e8
					 | 
					
						PC 
						PC 
						PC
					 | 
					
						16bit address 
						8bit offset 
						8bit offset
					 | 
					  | 
					  | 
					  | 
					  | 
					
						4 
						3/2 
						3
					 | 
					
						3 
						2 
						2
					 | 
					 
					
					| L | 
					
						LD (C), A 
						LD (HL), n8 
						LD (HL), r8 
						LD (n16), A 
						LD (n16), SP 
						LD (r16), A 
						LD A, (C) 
						LD A, (n16) 
						LD A, (r16) 
						LD HL, SP + e8 
						LD r16, n16 
						LD r8, (HL) 
						LD r8, n8 
						LD r8, r8 
						LD SP, HL
					 | 
					
						(C) 
						(HL) 
						(HL) 
						(16bit address) 
						(16bit address) 
						(BC), (DE), (HL) 
						A 
						A 
						A 
						HL 
						BC, DE, HL, SP 
						A, B, C, D, E, H, L 
						A, B, C, D, E, H, L 
						A, B, C, D, E, H, L 
						SP
					 | 
					
						A 
						8bit integer 
						A, B, C, D, E, H, L 
						A 
						SP 
						A 
						(C) 
						(16bit address) 
						(BC), (DE), (HL) 
						SP + 8bit offset 
						16bit integer 
						(HL) 
						8bit integer 
						A, B, C, D, E, H, L 
						HL
					 | 
					
						0
					 | 
					
						0
					 | 
					
						X
					 | 
					
						X
					 | 
					
						2 
						3 
						2 
						4 
						5 
						2 
						2 
						4 
						2 
						3 
						3 
						2 
						2 
						1 
						2
					 | 
					
						1 
						2 
						1 
						3 
						3 
						1 
						1 
						3 
						1 
						2 
						3 
						1 
						2 
						1 
						1
					 | 
					 
					
					
						LDD (HL), A 
						LDD A, (HL)
					 | 
					
						(HL) 
						A
					 | 
					
						A 
						(HL)
					 | 
					  | 
					  | 
					  | 
					  | 
					
						2 
						2
					 | 
					
						1 
						1
					 | 
					 
					
					
						LDH (e8), A 
						LDH A, (e8)
					 | 
					
						(8bit offset) 
						A
					 | 
					
						A 
						(8bit offset)
					 | 
					  | 
					  | 
					  | 
					  | 
					
						3 
						3
					 | 
					
						2 
						2
					 | 
					 
					
					
						LDI (HL), A 
						LDI A, (HL)
					 | 
					
						(HL) 
						A
					 | 
					
						A 
						(HL)
					 | 
					  | 
					  | 
					  | 
					  | 
					
						2 
						2
					 | 
					
						1 
						1
					 | 
					 
					
					| N | 
					
						NOP
					 | 
					  | 
					  | 
					  | 
					  | 
					  | 
					  | 
					
						1
					 | 
					
						1
					 | 
					 
					
					| O | 
					
						OR (HL) 
						OR n8 
						OR r8
					 | 
					
						A 
						A 
						A
					 | 
					
						(HL) 
						8bit integer 
						A, B, C, D, E, H, L
					 | 
					
						X 
						X 
						X
					 | 
					
						0 
						0 
						0
					 | 
					
						0 
						0 
						0
					 | 
					
						0 
						0 
						0
					 | 
					
						2 
						2 
						1
					 | 
					
						1 
						2 
						1
					 | 
					 
					
					| P | 
					
						POP r16
					 | 
					
						AF, BC, DE, HL
					 | 
					
						(SP)
					 | 
					  | 
					  | 
					  | 
					  | 
					
						3
					 | 
					
						1
					 | 
					 
					
					| 
						PUSH r16
					 | 
					
						(SP)
					 | 
					
						AF, BC, DE, HL
					 | 
					  | 
					  | 
					  | 
					  | 
					
						4
					 | 
					
						1
					 | 
					 
					
					| R | 
					
						RES n3, (HL) 
						RES n3, r8
					 | 
					
						Bit in memory 
						Bit in register
					 | 
					
						(HL) 
						A, B, C, D, E, H, L
					 | 
					  | 
					  | 
					  | 
					  | 
					
						3 
						2
					 | 
					
						2 
						2
					 | 
					 
					
					
						RET 
						RET cc
					 | 
					
						PC 
						PC
					 | 
					
						 
						Condition Flag
					 | 
					  | 
					  | 
					  | 
					  | 
					
						4 
						5/2
					 | 
					
						1 
						1
					 | 
					 
					
					| 
						RETI
					 | 
					
						PC
					 | 
					  | 
					  | 
					  | 
					  | 
					  | 
					
						4
					 | 
					
						1
					 | 
					 
					
					
						RL (HL) 
						RL r8
					 | 
					
						(HL) 
						A, B, C, D, E, H, L
					 | 
					
						(HL) 
						A, B, C, D, E, H, L
					 | 
					
						X 
						X
					 | 
					
						0 
						0
					 | 
					
						0 
						0
					 | 
					
						X 
						X
					 | 
					
						4 
						2
					 | 
					
						2 
						2
					 | 
					 
					
					| 
						RLA
					 | 
					
						A
					 | 
					
						A
					 | 
					
						0
					 | 
					
						0
					 | 
					
						0
					 | 
					
						X
					 | 
					
						1
					 | 
					
						1
					 | 
					 
					
					
						RLC (HL) 
						RLC r8
					 | 
					
						(HL) 
						A, B, C, D, E, H, L
					 | 
					
						(HL) 
						A, B, C, D, E, H, L
					 | 
					
						X 
						X
					 | 
					
						0 
						0
					 | 
					
						0 
						0
					 | 
					
						X 
						X
					 | 
					
						4 
						2
					 | 
					
						2 
						2
					 | 
					 
					
					| 
						RLCA
					 | 
					
						A
					 | 
					
						A
					 | 
					
						0
					 | 
					
						0
					 | 
					
						0
					 | 
					
						X
					 | 
					
						1
					 | 
					
						1
					 | 
					 
					
					
						RR (HL) 
						RR r8
					 | 
					
						(HL) 
						A, B, C, D, E, H, L
					 | 
					
						(HL) 
						A, B, C, D, E, H, L
					 | 
					
						X 
						X
					 | 
					
						0 
						0
					 | 
					
						0 
						0
					 | 
					
						X 
						X
					 | 
					
						4 
						2
					 | 
					
						2 
						2
					 | 
					 
					
					| 
						RRA
					 | 
					
						A
					 | 
					
						A
					 | 
					
						0
					 | 
					
						0
					 | 
					
						0
					 | 
					
						X
					 | 
					
						1
					 | 
					
						1
					 | 
					 
					
					RRC (HL) 
					RRC r8 | 
					(HL) 
					A, B, C, D, E, H, L | 
					(HL) 
					A, B, C, D, E, H, L | 
					X 
					X | 
					0 
					0 | 
					0 
					0 | 
					X 
					X | 
					4 
					2 | 
					2 
					2 | 
					 
					
					| RRCA | 
					A | 
					A | 
					0 | 
					0 | 
					0 | 
					X | 
					1 | 
					1 | 
					 
					
					| RST f | 
					PC | 
					  | 
					  | 
					  | 
					  | 
					  | 
					4 | 
					1 | 
					 
					
					| S | 
					SBC A, (HL) 
					SBC A, n8 
					SBC A, r8 | 
					A 
					A 
					A | 
					(HL) 
					8bit integer 
					A, B, C, D, E, H, L | 
					X 
					X 
					X | 
					1 
					1 
					1 | 
					X 
					X 
					X | 
					X 
					X 
					X | 
					2 
					2 
					1 | 
					1 
					2 
					1 | 
					 
					
					| SCF | 
					Carry Flag | 
					  | 
					  | 
					0 | 
					0 | 
					1 | 
					1 | 
					1 | 
					 
					
					SET n3, (HL) 
					SET n3, r8 | 
					Bit in memory 
					Bit in memory | 
					(HL) 
					A, B, C, D, E, H, L | 
					  | 
					  | 
					  | 
					  | 
					3 
					2 | 
					2 
					2 | 
					 
					
					SLA (HL) 
					SLA r8 | 
					(HL) 
					A, B, C, D, E, H, L | 
					(HL) 
					A, B, C, D, E, H, L | 
					X 
					X | 
					0 
					0 | 
					0 
					0 | 
					X 
					X | 
					4 
					2 | 
					2 
					2 | 
					 
					
					SRA (HL) 
					SRA r8 | 
					(HL) 
					A, B, C, D, E, H, L | 
					(HL) 
					A, B, C, D, E, H, L | 
					X 
					X | 
					0 
					0 | 
					0 
					0 | 
					X 
					X | 
					4 
					2 | 
					2 
					2 | 
					 
					
					SRL (HL) 
					SRL r8 | 
					(HL) 
					A, B, C, D, E, H, L | 
					(HL) 
					A, B, C, D, E, H, L | 
					X 
					X | 
					0 
					0 | 
					0 
					0 | 
					X 
					X | 
					4 
					2 | 
					2 
					2 | 
					 
					
					| STOP | 
					  | 
					  | 
					  | 
					  | 
					  | 
					  | 
					1 | 
					2 | 
					 
					
					SUB (HL) 
					SUB n8 
					SUB r8 | 
					A 
					A 
					A | 
					(HL) 
					8bit integer 
					A, B, C, D, E, H, L | 
					X 
					X 
					X | 
					1 
					1 
					1 | 
					X 
					X 
					X | 
					X 
					X 
					X | 
					2 
					2 
					1 | 
					1 
					2 
					1 | 
					 
					
					SWAP (HL) 
					SWAP r8 | 
					(HL) 
					A, B, C, D, E, H, L | 
					(HL) 
					A, B, C, D, E, H, L | 
					X 
					X | 
					0 
					0 | 
					0 
					0 | 
					0 
					0 | 
					4 
					2 | 
					2 
					2 | 
					 
					
					| X | 
					XOR (HL) 
					XOR n8 
					XOR r8 | 
					A 
					A 
					A | 
					(HL) 
					8bit integer 
					A, B, C, D, E, H, L | 
					X 
					X 
					X | 
					0 
					0 
					0 | 
					0 
					0 
					0 | 
					0 
					0 
					0 | 
					2 
					2 
					1 | 
					1 
					2 
					1 | 
					 
				 
			 |