You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
					
						
							3.7 KiB
						
					
					
				
			
		
		
	
	
							3.7 KiB
						
					
					
				Terminology
GameBoy terminology.
Terminology
Hardware
| Name | Modern equivalent | Description | 
|---|---|---|
| APU | Sound card | Audio Processing Unit | 
| PPU | GPU | Pixel Processing Unit | 
| Bootrom | BIOS | |
| HRAM (High RAM) | CPU cache | Embedded memory inside the CPU, 127 bytes | 
| WRAM (Work RAM) | RAM | 
Flags
The half-carry flag H is set when an arithmetic operation on two numbers
causes a carry from bit #3 to bit #4 for 8-bit operations or a carry from bit
#11 to bit #12 for 16-bit operations. For 16-bit operation this indicates the
lower 4 bits of the second byte(3).
We start counting from the right as bit #0!
Opcode
| Name | Bits | Sign | Mnemonics | 1 | 2 | 3/3 | 4 | Description | Note | 
|---|---|---|---|---|---|---|---|---|---|
| immediate | 8 | unsigned | i8 | d8 | n8 | n | Next byte in memory | ||
| immediate | 16 | unsigned | i16 | d16 | n16 | nn | Next byte in memory | little-endian | |
| register | 8 | unsigned | r8 | r8 | r | Any of the registers | |||
| register | 16 | unsigned | r16 | r16 | rr | Any of the registers | little-endian | ||
| address | 8 | unsigned | a8 | (n) | Address at value | ||||
| address | 16 | unsigned | a16 or () | a16 | n16 | (nn) | nn | Address at value | little-endian | 
| immediate | 8 | signed | s8 | r8 | e8 | e | dd | Next byte in memory | |
| immediate | 8 | unsigned | io8 | (a8) | n16 | (n) | n | 0xff00 + next byte in memory | write to I/O-port | 
| condition | <ZNHC> | NZ | cc | f | Execute if condition met | 
d = data 
n = constant
Flag conditions
Flag conditions, sometimes referred to as cc, are the state the flags need to
be in to execute the opcode. There are four possible checks(4):
| Code | Meaning | State | 
|---|---|---|
| C | Carry flag is set | 1 | 
| NC | Carry flag is unset | 0 | 
| Z | Zero flag is set | 1 | 
| NZ | Zero flag is unset | 0 | 
Variables
| Name | Meaning | 
|---|---|
| length | amount of elements | 
| size | amount of bytes | 
| lhs | left hand side | 
| rhs | right hand side | 
References
- https://gbdev.io/pandocs/Memory_Map.html
- https://gbdev.io/pandocs/Specifications.html
- "A Visual Guide to the Gameboy's Half-Carry Flag". robdor.com. Retrieved 24 Aug 2022.
- "GameBoy Opcode Summary". devrs.com. Retrieved 25 Aug 2022.