#include <stdbool.h>
#include <stdio.h>
#include <string.h>
#include "../defs.h"
#include "../memory.h"
#include "addressing.h"
Go to the source code of this file.
|
enum | register_flags_t {
FLAG_CARRY = 0
, FLAG_ZERO = 1
, FLAG_INTERRUPT_DISABLE = 2
, FLAG_DECIMAL = 3
,
FLAG_B = 4
, FLAG_UNUSED = 5
, FLAG_OVERFLOW = 6
, FLAG_NEGATIVE = 7
} |
|
enum | register_flags_mask_t {
FLAG_MASK_CARRY = 0b00000001
, FLAG_MASK_ZERO = 0b00000010
, FLAG_MASK_INTERRUPT_DISABLE = 0b00000100
, FLAG_MASK_DECIMAL = 0b00001000
,
FLAG_MASK_B = 0b00010000
, FLAG_MASK_UNUSED = 0b00100000
, FLAG_MASK_OVERFLOW = 0b01000000
, FLAG_MASK_NEGATIVE = 0b10000000
} |
|
|
static void | chip_dbg_dump (chip_t *self) |
|
static void | chip_init (chip_t *self, allocator_t allocator, sz memory_size, u32 quota) |
|
static void | chip_memory_add_callback (chip_t *self, chip_memory_callback_t callback) |
|
static void | chip_load_rom (chip_t *self, byte *rom, size_t len, u16 rom_start) |
|
static byte | chip_memory_read_direct (chip_t *self, u16 at) |
|
static void | chip_memory_write_direct (chip_t *self, u16 at, byte value) |
|
static byte | chip_pc_inc (chip_t *self) |
|
static u32 | chip_memory_perform_read (chip_t *self, addressing_mode_t mode) |
|
static u16 | chip_memory_perform_write (chip_t *self, addressing_mode_t mode, byte value) |
|
static u16 | get_memory_addr (u32 read) |
|
static byte | get_memory_word (u32 read) |
|
static u16 | chip_memory_read_addr (chip_t *self, addressing_mode_t mode) |
|
static byte | chip_memory_read_word (chip_t *self, addressing_mode_t mode) |
|
static u16 | chip_memory_read_dword (chip_t *self, addressing_mode_t mode) |
|
static void | chip_stack_push (chip_t *self, byte value) |
|
static byte | chip_stack_pull (chip_t *self) |
|
static byte | chip_flags_get (chip_t *self, register_flags_t flag) |
|
static void | chip_flags_set (chip_t *self, register_flags_t flag, byte value) |
|
static void | chip_flags_update_carry (chip_t *self, byte value) |
|
static void | chip_flags_update_zero_negative (chip_t *self, byte value) |
|
static void | chip_flags_update_overflow (chip_t *self, byte value) |
|
◆ CHIP_MAXIMUM_MEMORY
#define CHIP_MAXIMUM_MEMORY 0x10000 |
◆ CHIP_STACK_BOTTOM_ADDR
#define CHIP_STACK_BOTTOM_ADDR 0x0100 |
◆ chip_external_call_f
typedef void(* chip_external_call_f) (chip_t *chip) |
◆ chip_memory_callback_node_t
◆ chip_memory_callback_t
typedef byte(* chip_memory_callback_t) (void *, bool is_write, u16 addr, byte value) |
◆ chip_t
◆ register_flags_mask_t
◆ register_flags_t
◆ register_flags_mask_t
Enumerator |
---|
FLAG_MASK_CARRY | |
FLAG_MASK_ZERO | |
FLAG_MASK_INTERRUPT_DISABLE | |
FLAG_MASK_DECIMAL | |
FLAG_MASK_B | |
FLAG_MASK_UNUSED | |
FLAG_MASK_OVERFLOW | |
FLAG_MASK_NEGATIVE | |
◆ register_flags_t
Enumerator |
---|
FLAG_CARRY | |
FLAG_ZERO | |
FLAG_INTERRUPT_DISABLE | |
FLAG_DECIMAL | |
FLAG_B | |
FLAG_UNUSED | |
FLAG_OVERFLOW | |
FLAG_NEGATIVE | |
◆ chip_dbg_dump()
static void chip_dbg_dump |
( |
chip_t * |
self | ) |
|
|
static |
◆ chip_flags_get()
◆ chip_flags_set()
◆ chip_flags_update_carry()
static void chip_flags_update_carry |
( |
chip_t * |
self, |
|
|
byte |
value |
|
) |
| |
|
static |
◆ chip_flags_update_overflow()
static void chip_flags_update_overflow |
( |
chip_t * |
self, |
|
|
byte |
value |
|
) |
| |
|
static |
◆ chip_flags_update_zero_negative()
static void chip_flags_update_zero_negative |
( |
chip_t * |
self, |
|
|
byte |
value |
|
) |
| |
|
static |
◆ chip_init()
◆ chip_load_rom()
static void chip_load_rom |
( |
chip_t * |
self, |
|
|
byte * |
rom, |
|
|
size_t |
len, |
|
|
u16 |
rom_start |
|
) |
| |
|
static |
◆ chip_memory_add_callback()
◆ chip_memory_perform_read()
◆ chip_memory_perform_write()
◆ chip_memory_read_addr()
◆ chip_memory_read_direct()
◆ chip_memory_read_dword()
◆ chip_memory_read_word()
◆ chip_memory_write_direct()
static void chip_memory_write_direct |
( |
chip_t * |
self, |
|
|
u16 |
at, |
|
|
byte |
value |
|
) |
| |
|
static |
◆ chip_pc_inc()
◆ chip_stack_pull()
◆ chip_stack_push()
static void chip_stack_push |
( |
chip_t * |
self, |
|
|
byte |
value |
|
) |
| |
|
static |
◆ get_memory_addr()
static u16 get_memory_addr |
( |
u32 |
read | ) |
|
|
static |
◆ get_memory_word()
static byte get_memory_word |
( |
u32 |
read | ) |
|
|
static |