int divide_init( void ) { int error, i; divide_idechn0 = libspectrum_ide_alloc( LIBSPECTRUM_IDE_DATA16 ); divide_idechn1 = libspectrum_ide_alloc( LIBSPECTRUM_IDE_DATA16 ); ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_DIVIDE_MASTER_EJECT, 0 ); ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_DIVIDE_SLAVE_EJECT, 0 ); if( settings_current.divide_master_file ) { error = libspectrum_ide_insert( divide_idechn0, LIBSPECTRUM_IDE_MASTER, settings_current.divide_master_file ); if( error ) return error; ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_DIVIDE_MASTER_EJECT, 1 ); } if( settings_current.divide_slave_file ) { error = libspectrum_ide_insert( divide_idechn0, LIBSPECTRUM_IDE_SLAVE, settings_current.divide_slave_file ); if( error ) return error; ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_DIVIDE_SLAVE_EJECT, 1 ); } module_register( ÷_module_info ); for( i = 0; i < 2; i++ ) divide_memory_map_romcs[i].bank = MEMORY_BANK_ROMCS; if( periph_register_paging_events( event_type_string, &page_event, &unpage_event ) ) return 1; return 0; }
int zxcf_init( void ) { int error; last_memctl = 0x00; zxcf_idechn = libspectrum_ide_alloc( LIBSPECTRUM_IDE_DATA16 ); ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_ZXCF_EJECT, 0 ); if( settings_current.zxcf_pri_file ) { error = libspectrum_ide_insert( zxcf_idechn, LIBSPECTRUM_IDE_MASTER, settings_current.zxcf_pri_file ); if( error ) return error; ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_ZXCF_EJECT, 1 ); } module_register( &zxcf_module_info ); if( periph_register_paging_events( event_type_string, &page_event, &unpage_event ) ) return 1; return 0; }
static int zxcf_init( void *context ) { int error, i; last_memctl = 0x00; zxcf_idechn = libspectrum_ide_alloc( LIBSPECTRUM_IDE_DATA16 ); ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_ZXCF_EJECT, 0 ); if( settings_current.zxcf_pri_file ) { error = libspectrum_ide_insert( zxcf_idechn, LIBSPECTRUM_IDE_MASTER, settings_current.zxcf_pri_file ); if( error ) return error; ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_ZXCF_EJECT, 1 ); } module_register( &zxcf_module_info ); zxcf_memory_source = memory_source_register( "ZXCF" ); for( i = 0; i < MEMORY_PAGES_IN_16K; i++ ) zxcf_memory_map_romcs[i].source = zxcf_memory_source; periph_register( PERIPH_TYPE_ZXCF, &zxcf_periph ); periph_register_paging_events( event_type_string, &page_event, &unpage_event ); return 0; }
int ide_insert( const char *filename, libspectrum_ide_channel *chn, libspectrum_ide_unit unit, int (*commit_fn)( libspectrum_ide_unit unit ), char **setting, ui_menu_item item ) { int error; /* Remove any currently inserted disk; abort if we want to keep the current disk */ if( *setting ) if( ide_eject( chn, unit, commit_fn, setting, item ) ) return 0; settings_set_string( setting, filename ); error = libspectrum_ide_insert( chn, unit, filename ); if( error ) return error; error = ui_menu_activate( item, 1 ); if( error ) return error; return 0; }