Example #1
0
static WRITE8_HANDLER( spunchout_prot_w ) {

	switch ( offset ) {
		case 0x00:
			if ( prot_mode_sel == 0x0a ) {
				program_write_byte(0xd012, data);
				return;
			}

			if ( prot_mode_sel == 0x0b || prot_mode_sel == 0x23 ) {
				program_write_byte(0xd7c1, data);
				return;
			}

			prot_mem[offset] = data;
			return;
		break;

		case 0x02:
			if ( prot_mode_sel == 0x09 ) { /* PC = 0x20f7, 0x22d7 */
				prot_mem[offset] = data;
				return;
			}
		break;

		case 0x03:
			if ( prot_mode_sel == 0x09 ) { /* PC = 0x1e4c */
				prot_mem[offset] = data;
				return;
			}
		break;

		case 0x05:
			prot_mem[offset] = data;
			return;

		case 0x06:
			if ( prot_mode_sel == 0x09 ) { /* PC = 0x2287 */
				prot_mem[offset] = data;
				return;
			}
		break;

		case 0x0b:
			prot_mem[offset] = data;
			return;

		case 0x0d: /* PC = all over the code */
			prot_mode_sel = data;
			return;
		case 0x0f:
			prot_mem[offset] = data;
			return;
	}

	logerror("Wrote to unknown protection? port %02x ( %02x )\n", offset, data );

	prot_mem[offset] = data;
}
Example #2
0
static void cbm_pet1_quick_sethiaddress(UINT16 hiaddress)
{
	program_write_byte(0x80, hiaddress & 0xff);
	program_write_byte(0x7e, hiaddress & 0xff);
	program_write_byte(0x7c, hiaddress & 0xff);
	program_write_byte(0x81, hiaddress >> 8);
	program_write_byte(0x7f, hiaddress >> 8);
	program_write_byte(0x7d, hiaddress >> 8);
}
Example #3
0
static void cbm_pet_quick_sethiaddress(UINT16 hiaddress)
{
	program_write_byte(0x2e, hiaddress & 0xff);
	program_write_byte(0x2c, hiaddress & 0xff);
	program_write_byte(0x2a, hiaddress & 0xff);
	program_write_byte(0x2f, hiaddress >> 8);
	program_write_byte(0x2d, hiaddress >> 8);
	program_write_byte(0x2b, hiaddress >> 8);
}
Example #4
0
static void cbm_quick_sethiaddress(UINT16 hiaddress)
{
	program_write_byte(0x31, hiaddress & 0xff);
	program_write_byte(0x2f, hiaddress & 0xff);
	program_write_byte(0x2d, hiaddress & 0xff);
	program_write_byte(0x32, hiaddress >> 8);
	program_write_byte(0x30, hiaddress >> 8);
	program_write_byte(0x2e, hiaddress >> 8);
}
Example #5
0
static WRITE8_HANDLER(testcs_w)
{
	if(offset<0x800)
	{
		cpuintrf_push_context(1);
		program_write_byte(offset | (v30_gnd_addr << 16), data);
		cpuintrf_pop_context();

		cpuintrf_push_context(2);
		program_write_byte(offset | (v30_obj_addr << 16), data);
		cpuintrf_pop_context();
	}
}
Example #6
0
void darkedge_fd1149_vblank(void)
{
	program_write_word(0x20f072, 0);
	program_write_word(0x20f082, 0);

	if( program_read_byte(0x20a12c) != 0 )
	{
		program_write_byte(0x20a12c, program_read_byte(0x20a12c)-1 );

		if( program_read_byte(0x20a12c) == 0 )
			program_write_byte(0x20a12e, 1);
	}
}
Example #7
0
void cpunum_write_byte(int cpunum, offs_t address, UINT8 data)
{
	VERIFY_CPUNUM(cpunum_write_byte);
	cpuintrf_push_context(cpunum);
	program_write_byte(address, data);
	cpuintrf_pop_context();
}
Example #8
0
static WRITE8_HANDLER( apple3_indexed_write )
{
	UINT8 *addr;

	addr = apple3_get_indexed_addr(offset);
	if (!addr)
		program_write_byte(offset, data);
	else if (addr != (UINT8 *) ~0)
		*addr = data;
}
Example #9
0
static int general_cbm_loadsnap(mess_image *image, const char *file_type, int snapshot_size,
	offs_t offset, void (*cbm_sethiaddress)(UINT16 hiaddress))
{
	char buffer[7];
	UINT8 *data = NULL;
	UINT32 bytesread;
	UINT16 address = 0;
	int i;

	if (!file_type)
		goto error;

	if (!mame_stricmp(file_type, "prg"))
	{
		/* prg files */
	}
	else if (!mame_stricmp(file_type, "p00"))
	{
		/* p00 files */
		if (image_fread(image, buffer, sizeof(buffer)) != sizeof(buffer))
			goto error;
		if (memcmp(buffer, "C64File", sizeof(buffer)))
			goto error;
		image_fseek(image, 26, SEEK_SET);
		snapshot_size -= 26;
	}
	else
	{
		goto error;
	}

	image_fread(image, &address, 2);
	address = LITTLE_ENDIANIZE_INT16(address);
	snapshot_size -= 2;

	data = malloc(snapshot_size);
	if (!data)
		goto error;

	bytesread = image_fread(image, data, snapshot_size);
	if (bytesread != snapshot_size)
		goto error;

	for (i = 0; i < snapshot_size; i++)
		program_write_byte(address + i + offset, data[i]);

	cbm_sethiaddress(address + snapshot_size);
	free(data);
	return INIT_PASS;

error:
	if (data)
		free(data);
	return INIT_FAIL;
}
Example #10
0
static void primo_setup_pp (UINT8* quickload_data, UINT32 quickload_size)
{
	int i;

	UINT16 load_addr;
	UINT16 start_addr;

	load_addr = quickload_data[0] + quickload_data[1]*256;
	start_addr = quickload_data[2] + quickload_data[3]*256;

	for (i=4; i<quickload_size; i++)
		program_write_byte(start_addr+i-4, quickload_data[i]);

	cpunum_set_reg(0, Z80_PC, start_addr);

	logerror ("Quickload .pp l: %04x r: %04x s: %04x\n", load_addr, start_addr, quickload_size-4);
}
Example #11
0
static WRITE8_HANDLER( i8257_LMSR_w )
{
	if(!data)
	{
		INT32 src=e00x_d[0][1]*256+e00x_d[0][0];
		INT32 dst=e00x_d[2][1]*256+e00x_d[2][0];
		INT32 size=(e00x_d[1][1]*256+e00x_d[1][0])&0x3ff;
		INT32 i;

		size++; /*?? */

		for(i=0;i<size;i++)
		{
			program_write_byte(dst++, program_read_byte(src++));
		}

		e00x_l[0]=0;
		e00x_l[1]=0;
		e00x_l[2]=0;
		e00x_l[3]=0;
	}
}
Example #12
0
static void primo_setup_pss (UINT8* snapshot_data, UINT32 snapshot_size)
{
	int i;

	/* Z80 registers */

	cpunum_set_reg(0, Z80_BC, snapshot_data[4] + snapshot_data[5]*256);
	cpunum_set_reg(0, Z80_DE, snapshot_data[6] + snapshot_data[7]*256);
	cpunum_set_reg(0, Z80_HL, snapshot_data[8] + snapshot_data[9]*256);
	cpunum_set_reg(0, Z80_AF, snapshot_data[10] + snapshot_data[11]*256);
	cpunum_set_reg(0, Z80_BC2, snapshot_data[12] + snapshot_data[13]*256);
	cpunum_set_reg(0, Z80_DE2, snapshot_data[14] + snapshot_data[15]*256);
	cpunum_set_reg(0, Z80_HL2, snapshot_data[16] + snapshot_data[17]*256);
	cpunum_set_reg(0, Z80_AF2, snapshot_data[18] + snapshot_data[19]*256);
	cpunum_set_reg(0, Z80_PC, snapshot_data[20] + snapshot_data[21]*256);
	cpunum_set_reg(0, Z80_SP, snapshot_data[22] + snapshot_data[23]*256);
	cpunum_set_reg(0, Z80_I, snapshot_data[24]);
	cpunum_set_reg(0, Z80_R, snapshot_data[25]);
	cpunum_set_reg(0, Z80_IX, snapshot_data[26] + snapshot_data[27]*256);
	cpunum_set_reg(0, Z80_IY, snapshot_data[28] + snapshot_data[29]*256);
	

	/* IO ports */

	// KI-1 bit 7 - NMI generator enable/disable
	primo_nmi = (snapshot_data[30] & 0x80) ? 1 : 0;

	// KI-1 bit 4 - speaker
	speaker_level_w(0, (snapshot_data[30]&0x10)>>4);


	/* memory */

	for (i=0; i<0xc000; i++)
		program_write_byte(i+0x4000, snapshot_data[i+38]);
}
Example #13
0
static WRITE8_HANDLER( ram_mirror_w )
{
	program_write_byte(0x1000+offset,data);
}
Example #14
0
static Z80DMA_WRITE(mario_dma_write_byte)
{
	cpuintrf_push_context(0);
	program_write_byte(offset, data);
	cpuintrf_pop_context();
}
Example #15
0
INLINE void WRITE_NIBBLE(SaturnAdr adr, SaturnNib nib)
{
	saturn_ICount -= 3;
	program_write_byte(adr, nib);
}
Example #16
0
static WRITE8_HANDLER(main_obj_w)
{
	cpuintrf_push_context(2);
	program_write_byte(offset | (v30_obj_addr << 16), data);
	cpuintrf_pop_context();
}
Example #17
0
INLINE void WRITE_BYTE(UINT16 a,UINT8 v)
{
	program_write_byte(a,v);
}
Example #18
0
static void cbmb_quick_sethiaddress(UINT16 hiaddress)
{
	program_write_byte(0xf0046, hiaddress & 0xff);
	program_write_byte(0xf0047, hiaddress >> 8);
}
Example #19
0
static void cbm_c65_quick_sethiaddress(UINT16 hiaddress)
{
	program_write_byte(0x82, hiaddress & 0xff);
	program_write_byte(0x83, hiaddress >> 8);
}