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; }
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); }
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); }
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); }
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(); } }
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); } }
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(); }
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; }
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; }
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); }
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; } }
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]); }
static WRITE8_HANDLER( ram_mirror_w ) { program_write_byte(0x1000+offset,data); }
static Z80DMA_WRITE(mario_dma_write_byte) { cpuintrf_push_context(0); program_write_byte(offset, data); cpuintrf_pop_context(); }
INLINE void WRITE_NIBBLE(SaturnAdr adr, SaturnNib nib) { saturn_ICount -= 3; program_write_byte(adr, nib); }
static WRITE8_HANDLER(main_obj_w) { cpuintrf_push_context(2); program_write_byte(offset | (v30_obj_addr << 16), data); cpuintrf_pop_context(); }
INLINE void WRITE_BYTE(UINT16 a,UINT8 v) { program_write_byte(a,v); }
static void cbmb_quick_sethiaddress(UINT16 hiaddress) { program_write_byte(0xf0046, hiaddress & 0xff); program_write_byte(0xf0047, hiaddress >> 8); }
static void cbm_c65_quick_sethiaddress(UINT16 hiaddress) { program_write_byte(0x82, hiaddress & 0xff); program_write_byte(0x83, hiaddress >> 8); }