#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cpu.h"
#include "device.h"
#include "devices.h"
#include "interrupt.h"
#include "machine.h"
#include "memory.h"
#include "misc.h"
#include "timer.h"
#include "thirdparty/jazz_r4030_dma.h"
#include "thirdparty/pica.h"
Go to the source code of this file.
Classes | |
struct | jazz_data |
Macros | |
#define | DEV_JAZZ_LENGTH 0x280 |
#define | DEV_JAZZ_TICKSHIFT 14 |
#define | PICA_TIMER_IRQ 15 |
Functions | |
void | reassert_isa_interrupts (struct jazz_data *d) |
void | jazz_interrupt_assert (struct interrupt *interrupt) |
void | jazz_interrupt_deassert (struct interrupt *interrupt) |
void | jazz_isa_interrupt_assert (struct interrupt *interrupt) |
void | jazz_isa_interrupt_deassert (struct interrupt *interrupt) |
size_t | dev_jazz_dma_controller (void *dma_controller_data, unsigned char *data, size_t len, int writeflag) |
DEVICE_TICK (jazz) | |
DEVICE_ACCESS (jazz) | |
DEVICE_ACCESS (jazz_led) | |
DEVICE_ACCESS (jazz_a0) | |
DEVICE_ACCESS (jazz_20) | |
DEVICE_ACCESS (jazz_jazzio) | |
DEVINIT (jazz) | |
#define DEV_JAZZ_LENGTH 0x280 |
Definition at line 61 of file dev_jazz.cc.
#define DEV_JAZZ_TICKSHIFT 14 |
Definition at line 62 of file dev_jazz.cc.
#define PICA_TIMER_IRQ 15 |
Definition at line 63 of file dev_jazz.cc.
size_t dev_jazz_dma_controller | ( | void * | dma_controller_data, |
unsigned char * | data, | ||
size_t | len, | ||
int | writeflag | ||
) |
Definition at line 150 of file dev_jazz.cc.
References cpu::byte_order, jazz_data::cpu, data, jazz_data::dma0_addr, jazz_data::dma0_count, jazz_data::dma0_enable, jazz_data::dma0_mode, jazz_data::dma_translation_table_base, EMUL_BIG_ENDIAN, fatal(), cpu::mem, cpu::memory_rw, NO_EXCEPTIONS, PHYSICAL, R4030_DMA_ENAB_RUN, and R4030_DMA_ENAB_WRITE.
Referenced by MACHINE_SETUP().
DEVICE_ACCESS | ( | jazz | ) |
Definition at line 267 of file dev_jazz.cc.
References data, jazz_data::dma0_addr, jazz_data::dma0_count, jazz_data::dma0_enable, jazz_data::dma0_mode, jazz_data::dma1_mode, jazz_data::dma_translation_table_base, jazz_data::dma_translation_table_limit, fatal(), jazz_data::int_asserted, jazz_data::int_enable_mask, INTERRUPT_ASSERT, INTERRUPT_DEASSERT, jazz_data::interval, jazz_data::interval_start, jazz_data::isa_int_asserted, jazz_data::isa_int_enable_mask, jazz_data::jazz_timer_irq, MEM_READ, MEM_WRITE, memory_readmax64(), memory_writemax64(), jazz_data::mips_irq_3, jazz_data::mips_irq_6, jazz_data::pending_timer_interrupts, R4030_SYS_CONFIG, R4030_SYS_DMA0_REGS, R4030_SYS_DMA1_REGS, R4030_SYS_EXT_IMASK, R4030_SYS_ISA_VECTOR, R4030_SYS_IT_STAT, R4030_SYS_IT_VALUE, R4030_SYS_TL_BASE, R4030_SYS_TL_IVALID, and R4030_SYS_TL_LIMIT.
DEVICE_ACCESS | ( | jazz_20 | ) |
Definition at line 519 of file dev_jazz.cc.
References data, debug, fatal(), jazz_data::isa_int_asserted, jazz_data::isa_int_enable_mask, MEM_READ, MEM_WRITE, memory_readmax64(), memory_writemax64(), and reassert_isa_interrupts().
DEVICE_ACCESS | ( | jazz_a0 | ) |
Definition at line 467 of file dev_jazz.cc.
References data, debug, fatal(), jazz_data::isa_int_asserted, jazz_data::isa_int_enable_mask, MEM_READ, MEM_WRITE, memory_readmax64(), memory_writemax64(), and reassert_isa_interrupts().
DEVICE_ACCESS | ( | jazz_jazzio | ) |
Definition at line 571 of file dev_jazz.cc.
References data, fatal(), jazz_data::int_asserted, INTERRUPT_DEASSERT, jazz_data::jazz_timer_value, MEM_READ, MEM_WRITE, memory_readmax64(), memory_writemax64(), and jazz_data::mips_irq_3.
DEVICE_ACCESS | ( | jazz_led | ) |
Definition at line 421 of file dev_jazz.cc.
References data, debug, fatal(), jazz_data::led, MEM_READ, MEM_WRITE, memory_readmax64(), and memory_writemax64().
DEVICE_TICK | ( | jazz | ) |
Definition at line 234 of file dev_jazz.cc.
References jazz_data::int_enable_mask, INTERRUPT_ASSERT, jazz_data::interval, jazz_data::interval_start, jazz_data::jazz_timer_current, jazz_data::jazz_timer_irq, jazz_data::jazz_timer_value, jazz_data::mips_irq_6, and jazz_data::pending_timer_interrupts.
DEVINIT | ( | jazz | ) |
Definition at line 620 of file dev_jazz.cc.
References devinit::addr, CHECK_ALLOCATION, jazz_data::cpu, machine::cpus, DEV_JAZZ_LENGTH, DM_DEFAULT, interrupt::extra, interrupt::interrupt_assert, INTERRUPT_CONNECT, interrupt::interrupt_deassert, interrupt_handler_register(), devinit::interrupt_path, jazz_data::isa_int_enable_mask, jazz_interrupt_assert(), jazz_interrupt_deassert(), jazz_isa_interrupt_assert(), jazz_isa_interrupt_deassert(), jazz_data::jazz_timer_irq, interrupt::line, devinit::machine, machine::memory, memory_device_register(), jazz_data::mips_irq_3, jazz_data::mips_irq_4, jazz_data::mips_irq_6, interrupt::name, PICA_TIMER_IRQ, and timer_add().
void jazz_interrupt_assert | ( | struct interrupt * | interrupt | ) |
Definition at line 113 of file dev_jazz.cc.
References interrupt::extra, jazz_data::int_asserted, INTERRUPT_ASSERT, interrupt::line, jazz_data::mips_irq_3, and jazz_data::mips_irq_6.
Referenced by DEVINIT().
void jazz_interrupt_deassert | ( | struct interrupt * | interrupt | ) |
Definition at line 123 of file dev_jazz.cc.
References interrupt::extra, jazz_data::int_asserted, INTERRUPT_DEASSERT, interrupt::line, jazz_data::mips_irq_3, and jazz_data::mips_irq_6.
Referenced by DEVINIT().
void jazz_isa_interrupt_assert | ( | struct interrupt * | interrupt | ) |
Definition at line 133 of file dev_jazz.cc.
References interrupt::extra, jazz_data::isa_int_asserted, interrupt::line, and reassert_isa_interrupts().
Referenced by DEVINIT().
void jazz_isa_interrupt_deassert | ( | struct interrupt * | interrupt | ) |
Definition at line 139 of file dev_jazz.cc.
References interrupt::extra, jazz_data::isa_int_asserted, interrupt::line, and reassert_isa_interrupts().
Referenced by DEVINIT().
void reassert_isa_interrupts | ( | struct jazz_data * | d | ) |
Definition at line 104 of file dev_jazz.cc.
References INTERRUPT_ASSERT, INTERRUPT_DEASSERT, jazz_data::isa_int_asserted, jazz_data::isa_int_enable_mask, and jazz_data::mips_irq_4.
Referenced by DEVICE_ACCESS(), jazz_isa_interrupt_assert(), and jazz_isa_interrupt_deassert().