Module Cpu.Registers

registers.ml - Definitions for CPU registers and byte arithmetic

type registers = {
  1. af : Utils.U16.u16 Stdlib.ref;
  2. bc : Utils.U16.u16 Stdlib.ref;
  3. de : Utils.U16.u16 Stdlib.ref;
  4. hl : Utils.U16.u16 Stdlib.ref;
  5. sp : Utils.U16.u16 Stdlib.ref;
  6. pc : Utils.U16.u16 Stdlib.ref;
}

Struct for CPU registers - 8-bit registers are an abstraction

val high : int -> Utils.U8.u8

Get the highest 8 bits of an u16

val low : int -> Utils.U8.u8

Get the lowest 8 bits of an u16

val set_high : int Stdlib.ref -> [< `R16 of int | `R8 of char ] -> unit
val set_low : int Stdlib.ref -> [ `R16 of int | `R8 of char ] -> unit
val set_a : registers -> [< `R16 of int | `R8 of char ] -> unit
val set_f : registers -> [ `R16 of int | `R8 of char ] -> unit
val set_b : registers -> [< `R16 of int | `R8 of char ] -> unit
val set_c : registers -> [ `R16 of int | `R8 of char ] -> unit
val set_d : registers -> [< `R16 of int | `R8 of char ] -> unit
val set_e : registers -> [ `R16 of int | `R8 of char ] -> unit
val set_h : registers -> [< `R16 of int | `R8 of char ] -> unit
val set_l : registers -> [ `R16 of int | `R8 of char ] -> unit
val set_af : registers -> int -> unit
val set_bc : registers -> int -> unit
val set_de : registers -> int -> unit
val set_hl : registers -> int -> unit
val hli : registers -> unit
val hld : registers -> unit
val set_sp : registers -> int -> unit
val set_pc : registers -> int -> unit
val string_of_regs : registers -> string

Formats a register set as a string

val print_regs : registers -> unit

Prints a string representation of a set of registers

val _init_registers : unit -> registers

Default-initialized register contents after GB BIOS runs