Пример #1
0
// create processor, organize devices
void zx_init()
{
    zxcpu = z80ex_create(zxcpu_memread, NULL,
        zxcpu_memwrite, NULL,
        zxcpu_portread, NULL,
        zxcpu_portwrite, NULL,
        zxcpu_intread, NULL);
    //z80ex_set_tstate_callback(zxcpu, zxcpu_tstate, NULL);

    // init device mechanism
    zx_device_count = 0;
    zx_device = NULL;

    // construct machine
    SDevice *zxtest[] = {
            &zxdevice_pentagon128,
            //&zxdevice_gmx,
            //&zxdevice_sid,
            &zxdevice_ay,
            //&zxdevice_megaay,
            &zxdevice_kempston_mouse,
            &zxdevice_saa,
            &zxdevice_tape,
    };
    zx_create_machine(zxtest, sizeof(zxtest) / sizeof(SDevice*));
}
Пример #2
0
void InitAll(void)
{
	int i;
	for (i = 0; devs[i]; i++) devs[i]->Init();

	InitDevMaps();

	for (i = 0; i < 0x10; i++) colors[i] = colors_base[i];

	InitSurfaces();
	InitFont();
	FileDialogInit();
	C_Tape::Init();

	for (i = 0; i < 0x10000; i++) breakpoints[i] = false;

	cpu = z80ex_create(
		ReadByte, NULL,
		WriteByte, NULL,
		InputByte, NULL,
		OutputByte, NULL,
		ReadIntVec, NULL
	);

#if defined(__APPLE__)
	updateScreenThreadSem = SDL_CreateSemaphore(0);
	upadteScreenThread = SDL_CreateThread(UpdateScreenThreadFunc, NULL);
#endif
}
Пример #3
0
Z80CPUBase::Z80CPUBase() : m_isHalted(true), m_intPending(false)
{
    m_context = z80ex_create(
                ex_readMemory, this,
                ex_writeMemory, this,
                ex_readIO, this,
                ex_writeIO, this,
                ex_int, this
                );    
}
Пример #4
0
int main() {
    Z80EX_CONTEXT *cpu;
    MACHINE machine;

    load("a.bin", machine.mem, 0xffff);

    cpu = z80ex_create(
            read_memory, &machine,
            write_memory, &machine,
            read_port, &machine,
            write_port, &machine,
            interrupt_vector_read, &machine
    );

    for(int i = 0; i < 64; i++) {
        z80ex_step(cpu);
    }

    return 0;
}