GameBoy Emulator 1
Game Boy emulator core and tooling
Loading...
Searching...
No Matches
ProcessingUnit Class Reference

Public Types

enum class  Register {
  B , C , D , E ,
  H , L , A , F
}
enum class  Flag { Z = 7 , N = 6 , H = 5 , C = 4 }

Public Member Functions

void reset ()
void printStatus () const
u16 get_pc () const
void set_pc (u16 value)
u16 get_sp () const
void set_sp (u16 value)
u16 get_bc () const
u16 get_de () const
u16 get_hl () const
u16 get_af () const
bool get_flag_z () const
bool get_flag_n () const
bool get_flag_h () const
bool get_flag_c () const
int step (MMU &mmu)
void check_interrupts (MMU &mmu)
void execute_interrupt (MMU &mmu, u16 address, int bit)
void setHalt (bool newValue)
bool isHalt () const
void setIME (bool newValue)
bool getIME () const
u8 & reg (Register r)
const u8 & reg (Register r) const
u16 inc_pc ()
void clearFlags ()
void normalizeFlags ()
void setFlag (Flag flag, bool value)
void setStop (const bool value)
bool isStop () const

Public Attributes

int last_instr_cycles = 0
u16 last_pc = 0
bool stop {}

Detailed Description

Definition at line 7 of file ProcessingUnit.hpp.

Member Enumeration Documentation

◆ Flag

enum class ProcessingUnit::Flag
strong

Definition at line 67 of file ProcessingUnit.hpp.

◆ Register

enum class ProcessingUnit::Register
strong

Definition at line 61 of file ProcessingUnit.hpp.

Constructor & Destructor Documentation

◆ ProcessingUnit()

ProcessingUnit::ProcessingUnit ( )

Definition at line 5 of file ProcessingUnit.cpp.

Member Function Documentation

◆ check_interrupts()

void ProcessingUnit::check_interrupts ( MMU & mmu)

Definition at line 34 of file ProcessingUnit.cpp.

◆ clearFlags()

void ProcessingUnit::clearFlags ( )
inline

Definition at line 83 of file ProcessingUnit.hpp.

◆ execute_interrupt()

void ProcessingUnit::execute_interrupt ( MMU & mmu,
u16 address,
int bit )

Definition at line 52 of file ProcessingUnit.cpp.

◆ get_af()

u16 ProcessingUnit::get_af ( ) const
inlinenodiscard

Definition at line 36 of file ProcessingUnit.hpp.

◆ get_bc()

u16 ProcessingUnit::get_bc ( ) const
inlinenodiscard

Definition at line 33 of file ProcessingUnit.hpp.

◆ get_de()

u16 ProcessingUnit::get_de ( ) const
inlinenodiscard

Definition at line 34 of file ProcessingUnit.hpp.

◆ get_flag_c()

bool ProcessingUnit::get_flag_c ( ) const
inlinenodiscard

Definition at line 42 of file ProcessingUnit.hpp.

◆ get_flag_h()

bool ProcessingUnit::get_flag_h ( ) const
inlinenodiscard

Definition at line 41 of file ProcessingUnit.hpp.

◆ get_flag_n()

bool ProcessingUnit::get_flag_n ( ) const
inlinenodiscard

Definition at line 40 of file ProcessingUnit.hpp.

◆ get_flag_z()

bool ProcessingUnit::get_flag_z ( ) const
inlinenodiscard

Definition at line 39 of file ProcessingUnit.hpp.

◆ get_hl()

u16 ProcessingUnit::get_hl ( ) const
inlinenodiscard

Definition at line 35 of file ProcessingUnit.hpp.

◆ get_pc()

u16 ProcessingUnit::get_pc ( ) const
nodiscard

Definition at line 64 of file ProcessingUnit.cpp.

◆ get_sp()

u16 ProcessingUnit::get_sp ( ) const
nodiscard

Definition at line 65 of file ProcessingUnit.cpp.

◆ getIME()

bool ProcessingUnit::getIME ( ) const
nodiscard

Definition at line 69 of file ProcessingUnit.cpp.

◆ inc_pc()

u16 ProcessingUnit::inc_pc ( )

Definition at line 80 of file ProcessingUnit.cpp.

◆ isHalt()

bool ProcessingUnit::isHalt ( ) const
nodiscard

Definition at line 67 of file ProcessingUnit.cpp.

◆ isStop()

bool ProcessingUnit::isStop ( ) const
inlinenodiscard

Definition at line 100 of file ProcessingUnit.hpp.

◆ normalizeFlags()

void ProcessingUnit::normalizeFlags ( )
inline

Definition at line 86 of file ProcessingUnit.hpp.

◆ printStatus()

void ProcessingUnit::printStatus ( ) const

Definition at line 63 of file ProcessingUnit.cpp.

◆ reg() [1/2]

u8 & ProcessingUnit::reg ( Register r)

Definition at line 70 of file ProcessingUnit.cpp.

◆ reg() [2/2]

const u8 & ProcessingUnit::reg ( Register r) const
nodiscard

Definition at line 79 of file ProcessingUnit.cpp.

◆ reset()

void ProcessingUnit::reset ( )

Definition at line 9 of file ProcessingUnit.cpp.

◆ set_pc()

void ProcessingUnit::set_pc ( u16 value)
inline

Definition at line 29 of file ProcessingUnit.hpp.

◆ set_sp()

void ProcessingUnit::set_sp ( u16 value)
inline

Definition at line 31 of file ProcessingUnit.hpp.

◆ setFlag()

void ProcessingUnit::setFlag ( Flag flag,
bool value )
inline

Definition at line 90 of file ProcessingUnit.hpp.

◆ setHalt()

void ProcessingUnit::setHalt ( bool newValue)

Definition at line 66 of file ProcessingUnit.cpp.

◆ setIME()

void ProcessingUnit::setIME ( bool newValue)

Definition at line 68 of file ProcessingUnit.cpp.

◆ setStop()

void ProcessingUnit::setStop ( const bool value)
inline

Definition at line 99 of file ProcessingUnit.hpp.

◆ step()

int ProcessingUnit::step ( MMU & mmu)

Definition at line 15 of file ProcessingUnit.cpp.

Member Data Documentation

◆ last_instr_cycles

int ProcessingUnit::last_instr_cycles = 0

Definition at line 49 of file ProcessingUnit.hpp.

◆ last_pc

u16 ProcessingUnit::last_pc = 0

Definition at line 50 of file ProcessingUnit.hpp.

◆ stop

bool ProcessingUnit::stop {}

Definition at line 97 of file ProcessingUnit.hpp.


The documentation for this class was generated from the following files: